UE5.3.1を使用。
前回の記事、UnrealEngineでキャラクターの差し替えに四苦八苦した話(未解決)でアニメーションには大苦戦したので改めて基本の仕組みから調べ直してまとめました。
アニメーションの基本構造
基本用語
スケルトン = ボーン
スケルタルメッシュ = ボーンが入ってリギングされているキャラクターなどのメッシュ
アニメーション制御の基本
キャラクターなどのアニメーションを使用するにはまず、スケルトン(ボーン)の入ったスケルタルメッシュを用意する。各キャラクターに応じてスケルトンの構造が異なるので、アニメーションブループリントを作成するときには、どのスケルトンでアニメーションを制御するのかを選択する必要がある。
サードパーソンテンプレートで登場するSKM_Quinn(以下クイン)ではすでにアニメーションイベントグラフとアニメーションステートが用意されていますが、このキャラクターはABP_Mannyのアニメーションブループリントを継承して再利用されているようです。大本(ABP_Manny)をたどると画像のようなステートとイベントグラフで制御されているアニメーション制御処理が実装されています。
ブループリント・アニメーションブループリントの構造
ブループリントクラスキャラクターでは、各スケルトンに対応させて作ったアニメーションブループリントをセットすることができる。アニメーションブループリント内には大きく5つの要素が入っている。
アニメーションやモデルの改造
差し替えに成功したのは親を継承してスケルトンをリターゲットしたため?
Mesh(CharacterMesh0)の子にSkeltalMesh_Dazを作成してスケルトンをリターゲットしてアニメーショングラフのアウトプットに接続すると、標準のクインモデルからダズスタジオで作成したモデルに差し替えることができました。
これは差し替えたというよりもキャラクターを2体親と子で作って、親に設定されたアニメーション制御を再利用しつつ、見た目は親のメッシュを非表示にして子のメッシュのみ見えるようにしたという、半ば既存のキャラクターに合体させたというような方法での差し替えでした。
差し替えではなく一からダズスタジオのスケルトンを利用してアニメーションブループリントからブループリントクラスキャラクターから、アニメーショングラフ、アニメーションイベントを作成すれば、差し替えることなく新規でダズスタジオで作ったキャラクターを作ることができそうですね。
また標準のキャラクターではなく、すでに色々な動作が組み込まれたテンプレートアセットに含まれるキャラクターからプロジェクトをスタートさせることの方が多いと思うので、新規で作ることはあまりないと思いますが、改造するに当たってどのような構造と仕組みで動いているのかを知っておくことは必須になりそうですね。
市販のスケルトンの違うアニメーションを利用するには?
直接UE標準のSKM_Quinn(以下クイン)に購入したアニメーションを適応して再生することはできませんでした。
やりたいこと
The Immersive Templeteのキャラクターのアニメーション・アクション制御などを利用しつつ、最終的にUnityで購入したアニメーションを、ダズスタジオで作ったキャラクターで動かしたい。
- The Immersive Templeteのキャラクターにダズスタジオのキャラクターを差し替える
- Unityで購入したアニメーションをIKリターゲット機能を利用して、The Immersive Templeteのキャラクターでも再生できるアニメーションを作成する
IKリターゲットとは?
公式UE5リファレンス https://docs.unrealengine.com/5.0/ja/ik-rig-animation-retargeting-in-unreal-engine/
複数の異なるスケルトン間でアニメーション データを共有する手段を提供します。
参考動画などを見ていると、複数の異なるスケルトンのボーンの構造を手動で同じような名前とボーン位置の構造に設定して、異なるスケルトンで再生できないアニメーションを再生できるようにボーンの位置構造を教えて上げた上で、アニメーションファイルを出力することで、アニメーションデータを共有できるようにしている、ように見えます。
また色々やってみてわかったらここか新規の記事に続きを書いていきたいと思います。
コメント