UE5のAdd Movement Input
UE5のAdd Movement Inputのノードはキャラの移動を行うことができるノードだ。
キャラを瞬時に動かすのではなく、時間をかけて移動させられるのが重要。
使い方次第でキャラの通常移動・ダッシュ・ノックバックなど様々なアクションで活用することができる。
詳しく詳細を紹介していく。
Add Movement Inputの一覧目次
Add Movement Inputの詳細Add Movement Inputの使い方
目次にもどる
Add Movement Inputの詳細
.jpg)
Targetには移動させたいキャラを入力する。このブループリントクラス自体を動かしたいならselfのままでOKだ。
World Directionにはワールドベクトルを入力する。
ワールドベクトルとは3D空間上の向きと長さを表す。
A地点とB地点があった場合、「B地点の位置」から「A地点の位置」を減産すればAからBへ向かうワールドベクトルを求められる。
Scale Valueに入力した数値で掛け算を行うことができる。
後述するがこのノードはEvent Tickノード(1フレームごとに呼び出される)と組み合わせて使われることが多く、その場合はEvent Tickから出力されたDeltaSecondsを入れることになる。
Forceにチェックを入れることで他の移動操作を無視して、キャラを移動させることができる。
目次にもどるAdd Movement Inputの使い方
例えば以下のようにノードを配置して使う。
.jpg)
Event Tickノードがあるので毎フレーム処理が行われる。
上のGet Actor Location(移動目標)から下のGet Actor Locationを減算する。
それをNormalizeノードで正規化する。ベクトルの長さを1にできる(今回必要なのは向きであり長さは必要ないので一定にしたい)
その後に100倍しているが、これは正規化で数値が小さくなりすぎると、なぜか移動量に影響が出るため。
そのベクトルをAdd Movement InputのWorld Directionに入力している。
Event TickのDelta Secondsからは1フレームの長さを出力できる。それをAdd Movement InputのScale Valueに入れている。
これでマシンスペックが異なる場合でも移動量を同じにできる。
例えば、マシンスペックが低くフレーム数が少ない場合はEvent TickによってAdd Movement Inputが起こる回数は減るが、1フレームの長さは長いためScale Valueに入る値が大きくなるため、同等の移動量となる。