歩く、走る、基本的なロコモーションの設定です。
プロジェクトの作成
ゲーム > サードパーソンでプロジェクトを作成します。
マーケットプレイスでアニメーションを入手
アニメーションをプロジェクトに追加 Frank Action RPG Sword 1 (Basic Set)
マーケットプレイスにある無料のFrank Action RPG Sword 1 (Basic Set)をプロジェクトに導入。
今回は剣のアニメーションを使っていますが、銃のアニメーションでもやり方は同じです。
マーケットプレイスにある無料のFrank Action RPG Sword 1 (Basic Set)をプロジェクトに導入。
今回は剣のアニメーションを使っていますが、銃のアニメーションでもやり方は同じです。
アニメーションの準備
アニメーションシーケンスのリターゲット
Frank Action RPG Sword 1 (Basic Set)のアニメーションシーケンスはUE4のマネキン用のアニメーションです。これをUE5のマネキンにリターゲットします。
コンテンツ > Frank_RPG_Sword1 > Animationsにある
・03_Frank_ActionRPG_Sword_Combat_Idle
・05_Frank_ActionRPG_Sword_Run02
・19_Frank_ActionRPG_Sword_4way_Left
・20_Frank_ActionRPG_Sword_4way_Right
・21_Frank_ActionRPG_Sword_4way_Front
・22_Frank_ActionRPG_Sword_4way_Back
6つのアニメーションシーケンスを全て選択した状態で右クリックしてアニメーションアセットのリターゲティング > アニメーション アセット / ブループリントを複製してリターゲティングを選択。
IK リターゲッタの設定
IK リターゲッタにRTG_UE4Manny_UE5Mannyを指定。
ターゲット スケルタル メッシュにSKM_Quinnを指定。
サフィックスに「_UE5」と入力。
フォルダは/Game/Characters/Mannequins/Animationsを指定。
リターゲットを押す。
Frank Action RPG Sword 1 (Basic Set)のアニメーションシーケンスはUE4のマネキン用のアニメーションです。これをUE5のマネキンにリターゲットします。
コンテンツ > Frank_RPG_Sword1 > Animationsにある
・03_Frank_ActionRPG_Sword_Combat_Idle
・05_Frank_ActionRPG_Sword_Run02
・19_Frank_ActionRPG_Sword_4way_Left
・20_Frank_ActionRPG_Sword_4way_Right
・21_Frank_ActionRPG_Sword_4way_Front
・22_Frank_ActionRPG_Sword_4way_Back
6つのアニメーションシーケンスを全て選択した状態で右クリックしてアニメーションアセットのリターゲティング > アニメーション アセット / ブループリントを複製してリターゲティングを選択。
IK リターゲッタの設定
IK リターゲッタにRTG_UE4Manny_UE5Mannyを指定。
ターゲット スケルタル メッシュにSKM_Quinnを指定。
サフィックスに「_UE5」と入力。
フォルダは/Game/Characters/Mannequins/Animationsを指定。
リターゲットを押す。
EnableRootMotionとForce Root Lockにチェックを入れる
リターゲットしたアニメーションシーケンスを開き、左メニューのルートモーション > EnableRootMotionとForce Root Lockにチェックを入れておいてください。
このチェックが入っていないと、実装した時に不自然に滑ります。
リターゲットしたアニメーションシーケンスを開き、左メニューのルートモーション > EnableRootMotionとForce Root Lockにチェックを入れておいてください。
このチェックが入っていないと、実装した時に不自然に滑ります。
アニメーションブループリントの編集
プレイヤーキャラクターのアニメーションブループリントを開いてください。
ThirPersonTemplateのデフォルトならCharacters > Mannequins > Animations > ABP_Mannyになります。ABP_Quinnは子ブループリントですから、アニメーションは親であるABP_Mannyを編集します。
Idleアニメーション
Idleアニメーションは立ち止まっている時のアニメーションです。
Idleアニメーションの置き換えはシンプルです。アニメーションブループリントのAnimGraphを開き、Locomotion ステートマシンの中にIdleアニメーションシーケンスを配置して「アニメーションポーズを出力」に繋ぐだけです。
AnimGraphの編集
アニメーションブループリントを開く。
左メニューのアニメーショングラフ > AnimGraphをダブルクリック。
Locomotion ステートマシンをダブルクリック。
Idleをダブルクリック。
MM_Idleがデフォルトのアニメーションですから置き換えます。アセットブラウザから03_Frank_ActionRPG_Sword_Combat_Idle_UE5をドラッグ&ドロップで配置。それを「アニメーションポーズを出力」に繋ぐ。
これでコンパイルしてテストプレイすると、Idleアニメーションが変わっています。
アニメーションブループリントを開く。
左メニューのアニメーショングラフ > AnimGraphをダブルクリック。
Locomotion ステートマシンをダブルクリック。
Idleをダブルクリック。
MM_Idleがデフォルトのアニメーションですから置き換えます。アセットブラウザから03_Frank_ActionRPG_Sword_Combat_Idle_UE5をドラッグ&ドロップで配置。それを「アニメーションポーズを出力」に繋ぐ。
これでコンパイルしてテストプレイすると、Idleアニメーションが変わっています。
ブレンドスペースの作成
Run(Jog)とWalk、左右と後ろのアニメーションを良い具合にブレンドしてくれるブレンドスペースというものを作成します。
ブレンドスペースの作成
Animationsフォルダで右クリックしてアニメーション > ブレンドスペースを選択。
スケルトンの選択はSK_Mannequinを選択。
名前はBS_SwordWalkRunにしました。
Animationsフォルダで右クリックしてアニメーション > ブレンドスペースを選択。
スケルトンの選択はSK_Mannequinを選択。
名前はBS_SwordWalkRunにしました。
ブレンドスペース(BS_SwordWalkRun)の編集
ブレンドスペースを開いて編集します。
軸の設定
左メニューのAxis Settings > 水平軸 > NameをDirectionにします。方向という意味です。
Minimum Axis Valueを-180、Maximum Axis Valueを180にします。合わせて360度ですね。0度が正面、90度が右、-90度が左、-180度と180度は同じで後ろ。
左メニューのAxis Settings > 垂直軸 > NameをSpeedにします。
Minimum Axis Valueを100、Maximum Axis Valueを500にします。ここの入力はMaximumから入力する必要があります。
軸の設定
左メニューのAxis Settings > 水平軸 > NameをDirectionにします。方向という意味です。
Minimum Axis Valueを-180、Maximum Axis Valueを180にします。合わせて360度ですね。0度が正面、90度が右、-90度が左、-180度と180度は同じで後ろ。
左メニューのAxis Settings > 垂直軸 > NameをSpeedにします。
Minimum Axis Valueを100、Maximum Axis Valueを500にします。ここの入力はMaximumから入力する必要があります。
パネルにアニメーションシーケンスを配置する
中央下のパネルの上側5個・下側5個にアセットブラウザからドラッグ&ドロップでアニメーションシーケンスを配置します。パネルの意味を理解して配置できるようになる必要があります。
【Forward(正面)】
縦軸が移動スピードですから、上側(500)にはRun(Jog)のアニメーションシーケンスを配置し、下側(100)にはWalkのアニメーションシーケンスを配置するわけです。
05_Frank_ActionRPG_Sword_Run02_UE5は正面に走っているアニメーションです。走っていますから上側(500)、正面ですから中央(Forward)。
21_Frank_ActionRPG_Sword_4way_Front_UE5は正面に歩いているアニメーションです。歩いていますから下側(100)、正面ですから中央(Forward)。
【Right(右)】
横軸が移動する方向です。上側の右から2番目と下側の右から2番目が90度でありRight(右に移動)です。
しかし、今回の右移動のアニメーションは20_Frank_ActionRPG_Sword_4way_Right_UE5しかありません。これは見た感じWalkの動きです。ですから、下の右から2番目に20_Frank_ActionRPG_Sword_4way_Right_UE5を配置します。
上の右から2番目には正面で使った21_Frank_ActionRPG_Normal_Run_UE5を配置します。
Left(左に移動)も同じ考え方で配置できます。
【Back(後ろ)】
180度と-180度は同じBack(後ろに移動)ですから、パネルの4隅はBackのアニメーションシーケンスを配置します。今回の場合は22_Frank_ActionRPG_Sword_4way_Back_UE5を4隅に配置します。
【注意点】上側(500)に配置する時、しっかり上に配置しないで隙間があると、MAXスピード時にWalkのアニメーションが再生されてしまいます。
中央下のパネルの上側5個・下側5個にアセットブラウザからドラッグ&ドロップでアニメーションシーケンスを配置します。パネルの意味を理解して配置できるようになる必要があります。
【Forward(正面)】
縦軸が移動スピードですから、上側(500)にはRun(Jog)のアニメーションシーケンスを配置し、下側(100)にはWalkのアニメーションシーケンスを配置するわけです。
05_Frank_ActionRPG_Sword_Run02_UE5は正面に走っているアニメーションです。走っていますから上側(500)、正面ですから中央(Forward)。
21_Frank_ActionRPG_Sword_4way_Front_UE5は正面に歩いているアニメーションです。歩いていますから下側(100)、正面ですから中央(Forward)。
【Right(右)】
横軸が移動する方向です。上側の右から2番目と下側の右から2番目が90度でありRight(右に移動)です。
しかし、今回の右移動のアニメーションは20_Frank_ActionRPG_Sword_4way_Right_UE5しかありません。これは見た感じWalkの動きです。ですから、下の右から2番目に20_Frank_ActionRPG_Sword_4way_Right_UE5を配置します。
上の右から2番目には正面で使った21_Frank_ActionRPG_Normal_Run_UE5を配置します。
Left(左に移動)も同じ考え方で配置できます。
【Back(後ろ)】
180度と-180度は同じBack(後ろに移動)ですから、パネルの4隅はBackのアニメーションシーケンスを配置します。今回の場合は22_Frank_ActionRPG_Sword_4way_Back_UE5を4隅に配置します。
【注意点】上側(500)に配置する時、しっかり上に配置しないで隙間があると、MAXスピード時にWalkのアニメーションが再生されてしまいます。
Ctrlキーを押しながらパネルの上にマウスカーソルを持ってくると、その位置のアニメーションが再生されます。
500にRunを配置し、100にWalkを配置しました。300あたりを再生してみるとRunとWalkの中間くらいのアニメーションになっています。
ブレンドスペースとはRun(Jog)とWalkのアニメーションを速度や方向によって良い具合にブレンドしてくれるわけです。
500にRunを配置し、100にWalkを配置しました。300あたりを再生してみるとRunとWalkの中間くらいのアニメーションになっています。
ブレンドスペースとはRun(Jog)とWalkのアニメーションを速度や方向によって良い具合にブレンドしてくれるわけです。
アニメーションブループリントの編集
プレイヤーキャラクターのアニメーションブループリントを開いてください。
AnimGraphの編集 Idleアニメーション
左メニューのアニメーショングラフ > AnimGraphをダブルクリック。
Locomotion ステートマシンをダブルクリック。
Walk/Runをダブルクリック。
BS_MM_WalkRunがデフォルトのアニメーションですから、先ほど作成したBS_SwordWalkRunに置き換えます。アセットブラウザからBS_SwordWalkRunをドラッグ&ドロップで配置。それを「アニメーションポーズを出力」に繋ぐ。
Ground SpeedをSpeedに繋げてください。
左メニューのアニメーショングラフ > AnimGraphをダブルクリック。
Locomotion ステートマシンをダブルクリック。
Walk/Runをダブルクリック。
BS_MM_WalkRunがデフォルトのアニメーションですから、先ほど作成したBS_SwordWalkRunに置き換えます。アセットブラウザからBS_SwordWalkRunをドラッグ&ドロップで配置。それを「アニメーションポーズを出力」に繋ぐ。
Ground SpeedをSpeedに繋げてください。
この状態でコンパイルしてテストプレイするとロコモーションが反映されています。
コメント