UnrealEngineのALSでロールアニメーションを差し替える方法

結論

AdvancedLocomotionV4 → Blueprints → CharacterLogic → ALS_AnimMan → GetRollAnimation関数の中で呼び出されているアニメーションモンタージュの変数を差し替える。

解説

  1. AdvancedLocomotionV4 → Blueprints → CharacterLogic → ALS_Base_CharacterBP にInput Action StanceAction に続く処理に RollEventが存在。
  2. EventRollでモンタージュを実行するノードがある。
  3. モンタージュは AdvancedLocomotionV4 → Blueprints → CharacterLogic → ALS_AnimMan → GetRollAnimation関数 から取得される。
  4. GetRollAnimation関数の中では、OverLayStateに応じて変数に格納したアニメーションモンタージュを取得して、モンタージュアニメーションを再生へ、モンタージュデータを渡す。

 

大まかな手順

  1. 新しいアニメーションを用意
  2. リターゲットでALSのキャラクターでもアニメーションが動くように変換
  3. リターゲットしたアニメーションからモンタージュを作成
  4. GetRollAnimation関数の中で呼び出されているアニメーションモンタージュの変数を差し替える。

 

今回は特に難しいことがなくアニメーションモンタージュの変数を変更するだけで差し替えが完了します。しかし途中でリターゲットしたアニメーションがずれる、ルートモーションの設定で一苦労すると差し替える以外の部分で苦戦しました。

 



 

リターゲットがずれる問題の解決方法

リターゲット時のアニメーションがずれる問題を解決する方法。Unreal Engine5

ポイント

  1. チェーンマップを正確に行う。
  2. Pelvisを選択して詳細パネルから、平行移動のアルファをNoneからAbsoluteに変更する。

 

ルートモーションの設定方法

ルートモーションを含むリターゲット・アニメーション作成の方法。Unreal Engine5

ポイント

  1. チェーンマップを正確に行う。
  2. ルートの情報もチェーンマップで関連付けてリターゲットアニメーションを書き出し。
  3. エクスポートしたアニメーションファイルを開き、EnableRootMotoinのチェックをつける。
  4. モンタージュを作ると元のアニメーションファイルの設定を引き継いでルートモーションの処理も設定した通りに処理されている(はず)
  5. 特に問題がなければルートモーションの移動量に応じてキャラクターが移動してくれる。

 

 

 

 



 

 

 

 

コメント

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