UE5解説:ワープ時にほかのキャラも連れて行こう!

※本サイトはアフィリエイト広告を利用しています。

本日は当ブログ内でご質問頂きました「ワープしたときにAIキャラも連れていきたい」件について方法をご紹介します。

ワープ装置に関してはこちらの記事や動画をご参照ください。

Unreal Engine 5.4で製作しています(UE5.3でも全く同じで動きます。)

前準備:ワープ機能を関数化して何度も使おう

コリジョンにぶつかったことをきっかけにワープしますが、実際にワープさせているのは「Set Actor Location」関係のノードと、その直前の相対位置関係の計算部分でしたね。

この部分を何度も使える「関数」という自作ノードにして、そのノードに入力されたキャラクター(アクターなら何でも可)をワープさせてあげればOKです。
まずは関数にしてコンパクトにしましょう

赤枠部分をそれぞれ範囲選択して右クリックから「関数に折りたたむ」で新しい関数ができます。

よっしー
よっしー

上図の一番左のように合流点まで選択に含めると、分岐する前の「Target」が1つの入力ピンになり、含めない場合は2つそれぞれ入力ピンになります。関数化してからでも変更はできますけどね。

NewFunctionじゃあとでわからないので「TeleportFront2Back」(前から後ろにテレポート)的な名前に変えておきました。
出来立ての関数の中はこうなっています

「Return」という関数の終わりのノードを末尾につなぎます。

後ろ側にぶつかったときのワープ処理も同様です。
ワープ装置レベル3くらいまではほとんど同じですが、レベル4以降の場合はキャラクター自体を動かす部分だけを関数化しましょう。
このとき、プレイヤーのコントローラの回転はプレイヤー専用でほかのキャラクター用には必要ないので含めません。

よっしー
よっしー

移動速度の反転は今回の紹介では含めていませんが、あったほうがより自然にワープするかもしれません。

他のキャラクターもワープさせよう

冒頭と同じ話ですが、ワープ装置と接触しているかどうかには関係なく、プレイヤーがワープ装置に接触したときのワープ装置と一緒にワープさせたいキャラクターの位置関係はプレイヤーと同じ計算でできます。

なので、ワープさせる処理は、ワープさせたいアクターをさきほど作った関数に入力するだけでOKです。

ここではだれを一緒にワープさせたいかがわかっているものとして単純に「Get Actor Of Class」で「BP_Tama」クラスを指定して、玉ねぎちゃんを連れていく仕様としています。

一緒にワープさせたい敵や味方が数人ならこれをどんどん挟めばよいですし、もっと大勢ワープさせたい場合は、For-loopやFor-Each-loopなんかを使うことになるかと思います。

また、検索はやや重めな処理らしいので、何度もやらずにBeginPlayでやれる状況なら、やって変数に保存してそれを参照するとよいと思います。

おわり

あえて光の反射でワープしたことがわかる状態で後ろから後ろにワープするとこんな感じです。
見切れていますがワープした瞬間も玉ねぎ頭が着いてきてますね。

コメント

  1. アッカ より:

    よっしーさん記事にして頂きありがとうございました!
    とても助かりました!
    今後ともお世話になります^^

タイトルとURLをコピーしました