キャラクターの方向(Direction)を取得する

8方向のロコモーションを設定する時に必要なキャラクターの方向(Direction)を取得します。ついでに8方向のブレンドスペースの復習。

アニメーションブループリント

イベントグラフ

テンプレートのアニメーションブループリントに最初からあるイベント Blueprint Update AnimationSequenceピンを追加

ノードを組む

【変数】Direction – Float
Calculate DirectionReturn Valueから線を伸ばして変数へ昇格

ブレンドスペース

作成したDirectionと元々あったGround Speedは、歩く8方向&走る8方向のブレンドスペースなどで使います。

8方向のアニメーションとは、前、左斜め前、右斜め前、左、右、左斜め後ろ、右斜め後ろ、後ろという8方向です。
8方向の歩きと走りに対応したアニメーションシーケンスは、マーケットプレイスで多数販売されています。

BP: アニメーション > ブレンドスペース
スケルトン: SK_Mannequin ※UE5デフォルト
名前: BS_WalkRun
ブレンドスペースの編集
アセット詳細 > Axis Settings > 水平軸

NameをDirectionにします。方向という意味です。
Minimum Axis Valueを-180にします。
Maximum Axis Valueを180にします。
0度が正面、90度が右、-90度が左、-180度と180度は同じで後ろ。
Grid Divisionsは8にします。
今回は8方向のアニメーションを使うので8ですが、4方向(前後左右)のアニメーションであれば4になります。
Snap to Gtidにチェックを入れます。線と線が交わるポイントにアニメーションシーケンスを配置できるようになります。
Smoothing Timeに値を入れるとアニメーションの切り替えがスムーズになります。悪く言えば鈍くなります。切り替えがカクッとするようなら1.0~2.0くらいを入力しましょう。
アセット詳細 > Axis Settings > 垂直軸

NameをSpeedにします。
Minimum Axis Valueを100にしましたが、歩きモーションになる速度ですから50でも構いません。
Maximum Axis Valueを500にしましたが、走りモーションになる速度ですから好きなように決めてください。
ここの入力はMaximumから先に入力する必要があります。Minimum<Maximumですから。
パネルにアニメーションシーケンスを配置する
中央下のパネルの上側9個・下側9個にアセットブラウザからドラッグ&ドロップでアニメーションシーケンスを配置します。パネルの意味を理解して配置できるようになる必要があります。

縦軸がSpeedですから、上側9点は全てRun(Jog/Shuffle)のアニメーションシーケンスを配置し、下側9点は全てWalkのアニメーションシーケンスを配置します。
横軸はDirection(方向)であり、45度単位で区切られています。0度が正面、90度が右、-90度が左です。
これを理解していれば、「後ろに走るアニメーションシーケンス」は上側の両角に配置するのがわかります。180度と-180度はまったく同じ方向であり、後ろを意味します。
「斜め右前に歩くアニメーションシーケンス」は、まず「歩く」ですから縦軸は下側(Speed100)になり、斜め右前は45度ですから、中央から1つ右に配置します。
Ctrlキーを押しながらパネルの上にマウスカーソルを持ってくると、その位置のアニメーションが再生されます。ビューポートを背中側からの視点にした方がわかりやすいです。切り替えがカクッとするならSmoothing Timeに値を入れてみてください。
今回は500にRun(Jog/Shuffle)を配置し、100にWalkを配置しました。300あたりを再生してみるとRunとWalkの中間くらいのアニメーションになっています。
ブレンドスペースとはRun(Jog/Shuffle)とWalkのアニメーションを速度や方向によって良い具合にブレンドしてくれるわけです。

コメント

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