ゲーム開発備忘録

ゲームプログラマー UE4・5向けの記事を書いておりますので見ていただけるとありがたいです。

【ゼロからアンリアルエンジン5】〔AI編〕⑬横歩き(Strafing)アニメーションを実装しよう

目次

 

はじめに

 

注意

UE5.0.3の現在の情報です。

今後のアップデートによりUIや機能が変更される可能性があることをあらかじめご理解ください。

前回

namiton.hatenablog.jp

 

三人称キャラクターの移動には主に2種類あります。

 

それは、常に進行方向と体の向きが合っている移動と、進行方向と体の向きが合っていない移動です。

 

前者はカメラの方向を自由に動かせる場合、後者は何かを注視している場合に起こります。またこの動きをStrafingといいます。

 

▼常に進行方向と体の向きが合っている移動

 

▼常に進行方向と体の向きが異なる移動

 

今回はこのアニメーションロジックをキャラクターに実装してみたいと思います。

 

解説

 

①アニメーションの移植とリターゲット

この移動アニメーションはAdvancedLocomotionSystemVに存在するのでそれを流用して使用します。

 

ALS_N_Walk_B~ALS_N_WalkPose_Fまでを選択して移行します。

 

NPCSampleに戻りリターゲットしたいアセットを選択して右クリックからリターゲット

 

以前の記事で作成したIKリターゲッタを選択して出力フォルダを指定します。

 

リターゲット完了!

 

ブレンドスペースの作成

XとYの入力からアニメーションを決定するブレンドスペースという機能を使います。

 

コンテンツ右クリックからブレンドスペースを選択します。

 

SK_Mannequinを選択します。

 

名前はブレンドスペースの頭文字BS_を付けてBS_StrafingWalkとしました。

 

③BS_StrafingWalkの編集

まず軸を定義します。

 

画像のように組みます。

ALSV4のアセット、FB,RBが特殊なためこのような形にしました。


45度などのアセットがある場合は画像のように組むと理想でしょう。

 

またアニメーション速度が遅いと感じたので、再生速度を1.2倍にしています。

 

④ABP_Mannyに組み込み

ABP_Mannyを開きます。

イベントグラフのUpdateノードから画像のようにキャラクターの向きを取得するノードを組み、Directionという変数に昇格します。

 

切り替えるための変数CanStrafingを新たに作成しておきます。

 


アニメーショングラフからLocomotionを開きます。

 

Walk/Runを開き、作成したブレンドスペースを配置します。

 

作成したCanStrafingをブレンドPosesByBoolで分岐させます。

 

リターゲットしたものはik_foot系がついてこないのでコントロールリグがあると正しく動かないのでIK_foot系を無理やりfoot_系へ移動します。

 

CR_Mannequin_BasicFootIKを開いて

画像のようにノードを追加しましょう。

 

⑤BP_ThirdPersonCharacterから制御する

BP_ThirdPersonCharacterを開きます。

同名の変数CanStrafingを作成しておきます。

 

カスタムイベントChangeMovementを作成しておきインプットの結果からセットするシンプルなイベントを作成します。

 

Aimイベントからノードを移植します。

 

Strafingが有効になったら速度とモードを移動方向を変更します。

 

Aimイベントからは、このカスタムイベントを呼ぶようにしましょう。

 

最後にアニメーションブループリントから変数をセットするようにすれば完成です。

 

デバッグでホイールクリックをしている間、横歩きをするようにしてみます。

 

完成!!

 

最後に

UE4やUE5向けの記事を書いています。

皆様の応援が投稿のモチベーションになりますので

コメントやTwitterのフォローなどしていただけるとありがたいです。

それではよきゲーム開発を。