ARPG開発 005 ロコモーション

走る、ジャンプなどのロコモーションを設定しました。

歩く、走る、基本的なロコモーションの設定です。

マーケットプレイスでアニメーションを入手

キャラクターの基本動作は非常に重要度が高いですから、マーケットプレイスでカッコいいアニメーションを購入しました。
Ultimate Ninja Anims:アニメーション – UE マーケットプレイス
6,272円。こういうアニメーションを自作する大変さを考えると安いです。


Idleアニメーションは野球っぽくしたかったので、Mixamoでバッティングの構えのアニメーションをダウンロードしました。

アニメーションの準備

今回は歩く、走る、ジャンプを使います。
Ultimate Ninja Animsの中では、Ninja_Walkの中に8方向の歩きモーション、Ninja_Shuffleの中に8方向の走りモーション、Ninja_Acrobaticの中にジャンプモーションがありました。

これらのアニメーションシーケンスはUE4マネキン用ですから、UE5マネキンにリターゲットします。
アニメーションシーケンスを選択した状態で右クリックしてアニメーションアセットのリターゲティング > アニメーション アセット / ブループリントを複製してリターゲティングを選択。

IK リターゲッタの設定
IK リターゲッタにRTG_UE4Manny_UE5Mannyを指定。
ターゲット スケルタル メッシュにSKM_Quinnを指定。
サフィックスに「_UE5」と入力。
フォルダは/Game/Characters/Mannequins/Animationsを指定。
リターゲットを押す。
EnableRootMotionとForce Root Lockにチェックを入れる
リターゲットしたアニメーションシーケンスを開き、左メニューのルートモーション > EnableRootMotionとForce Root Lockにチェックを入れておきます。
このチェックが入っていないと、実装した時に不自然に滑ります。
IdleポーズはLoopにチェックを入れる
Idleポーズはアニメーションが止まってほしくないですから、アセット詳細 > Animation > Loopにチェックを入れます。

アニメーションブループリントの編集 Idle

プレイヤーキャラクターのアニメーションブループリントを開きます。
私はプレイヤーブループリントにBP_ThirdPersonCharacterのコピーを使っていますから、そこにセットされているアニメーションブループリントはABP_Quinnです。しかし、ABP_Quinnは子ブループリントですから、親であるABP_Mannyを編集します。

Idleアニメーション

アニメーションブループリントのAnimGraphをダブルクリックで開く。
Locomotion ステートマシンの中にダブルクリックで入る。
Idleの中にダブルクリックで入る。

ノードを組む

アセットブラウザからベースボールのIdleアニメーションをドラッグ&ドロップで配置。それを「アニメーションポーズを出力」に繋ぐ。
詳細 > 設定 > Loop Animationにチェックを入れておく必要もあります。

これでコンパイルしてテストプレイすると、Idleアニメーションが変わっています。

ブレンドスペースの作成と編集

WalkとShuffleのアニメーションを良い具合にブレンドしてくれるブレンドスペースというものを作成します。
Animationsフォルダで右クリックしてアニメーション > ブレンドスペースを選択。
スケルトンの選択はSK_Mannequinを選択。
名前はBS_WalkShuffleにしました。

ブレンドスペースの編集

BS_WalkShuffleを開く。

アセット詳細 > Axis Settings > 水平軸

NameをDirectionにします。方向という意味です。
Minimum Axis Valueを-180にします。
Maximum Axis Valueを180にします。
0度が正面、90度が右、-90度が左、-180度と180度は同じで後ろ。
Grid Divisionsは8にします。
今回は8方向のアニメーションを使うので8ですが、4方向(前後左右)のアニメーションであれば4になります。
アセット詳細 > Axis Settings > 垂直軸

NameをSpeedにします。
Minimum Axis Valueを100にします。
Maximum Axis Valueを500にします。
ここの入力はMaximumから先に入力する必要があります。Minimum<Maximumですから。
パネルにアニメーションシーケンスを配置する
中央下のパネルの上側9個・下側9個にアセットブラウザからドラッグ&ドロップでアニメーションシーケンスを配置します。パネルの意味を理解して配置できるようになる必要があります。

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

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

プレイヤーキャラクターのアニメーションブループリントを開く。
左メニューのAnimGraphをダブルクリックで開く。
Locomotion ステートマシンをダブルクリックで開く。
Walk/Runをダブルクリックで開く。

ノードを組む

アセットブラウザからBS_WalkShuffleをドラッグ&ドロップで配置。それを「アニメーションポーズを出力」に繋ぐ。
Ground SpeedをSpeedに繋げる。

この状態でコンパイルしてテストプレイするとロコモーションが反映されています。

アニメーションシブループリントの編集 Jump

アニメーションブループリントのAnimGraphをダブルクリックで開く。
Main States ステートマシンの中にダブルクリックで入る。
Jumpの中にダブルクリックで入る。

ノードを組む

今までと同様にアニメーションシーケンスを置き換えるだけです。

ジャンプの調整

新たに導入したジャンプのアニメーションシーケンスがデフォルトのフワフワしたジャンプの挙動と合っていませんので修正します。

キャラクターブループリントの編集

詳細 > キャラクタームーブメント(基本セッティング) > Gravity Scaleを3にすると落下速度が速くなります。デフォルトは1.75です。

詳細 > キャラクタームーブメント: 跳躍/落下 > Jump Z Velocityを1200にしてジャンプ力を上げます。デフォルトは700.0cm/sです。

詳細 > キャラクタームーブメント: 跳躍/落下 > Air Controlを0にするとジャンプ中の空中移動操作ができなくなります。デフォルトは0.35です。

詳細 > キャラクター > Jump Max Countを2にすると2段ジャンプができます。もちろん3以上の設定もできます。

コメント

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