こんにちは。
株式会社アドグローブ ゲーム事業部のデザイナー飯塚です。
今回はUnreal Engine5(以後、UE5)の機能【IKリターゲッタ】を使用したアニメーションのリターゲットと調整のフローの一例をご紹介させていただきます。
【IKリターゲッタ】はUE4でのRetargetManagerに代わる機能で、ジョイント構造や命名規則が異なっている場合でも簡単にリターゲットができる機能となっています!
はじめに
モーションキャプチャデータをゲームに組み込む場合、ゴミ取りやパーツのめり込み処理、繋ぎの細かい調整など結構手間がかかりますよね。
プロジェクトのプロト段階で【フリーのモーションを使って工数削減をしようとした結果、結局調整に時間がかかってしまった」ということになったりすることも…。
今回ご紹介する【IKリターゲッタ】はDCCツールを経由せずにUE5内で完結するフローでこの辺りの工数を最低限にできる機能となっています。
作業の流れ
IKリグの設定
まずサンプルとしてMixamoから落としてきたモーションデータとスケルタルメッシュをインポートします。
続いてUE5マネキンとMixamoのモデルそれぞれのスケルタルメッシュを参照した【IKリグ】アセットを作成します。
「IKリターゲティング」で「右腕」や「左足」などのチェーンを設定することで、リターゲットの際に「ソースジョイントからターゲットジョイントに直接モーションを流し込む」のではなく、「IKリターゲティング」同士を接続してジョイント階層や命名規則の違いを吸収してくれます!
考え方としてはMayaのHumanIKやUnityのHumanoidと近いかと思いますが、【IKリグ】のチェーン設定は自由に行えるので四足のキャラや腕の多いモンスター等にも柔軟に対応できるかと思います!
IKリターゲッタの設定
ソース/ターゲット双方の【IKリグ】が設定できたら、【IKリターゲッタ】を作成します。
作成の際のソースアセットはMixamoモデルの【IKリグ】を選択します。
作成した【IKリターゲッタ】の編集画面を開き、「Target IKRig Asset」の項目にUE5マネキンの【IKリグ】を設定することでモーションをリターゲットできるようになります!
しかし、そのままだと↓のように腕の動きがだいぶおかしくなってしまいます…!
こういったデフォルトポーズの違いを吸収する調整は他のツールで行おうとすると面倒かつ時間がかかることも多いのですが、UE5ではこの【IKリターゲッタ】上で簡単に調整が可能です!
【IKリターゲッタ】編集画面上部の「ポーズの編集」を押すことでターゲットのジョイントを回転することができるようになり、ここで設定したポーズをそのまま新しいデフォルトポーズとして使用することができます。
あとは書き出すだけ!
ここまでの設定を一度やってしまえば、以降はMixamoモデルのスケルトンを参照するモーションをプロジェクトに追加するだけで【IKリターゲッタ】編集画面右下のアセットブラウザに表示されていくので
書き出しを行うだけでUE5マネキンのスケルトンにリターゲットされたアニメーションシーケンスが書き出されます!
その後の調整もUE5上で行える
書き出したアニメーションシーケンスは、そのままだとモーション間の繋ぎなど綺麗にいかないところが出てくるかと思います。
その際には、UE5の機能「アニメーションリグ」にジョイントの動きをベイクすることで、レベルシーケンス上でIK/FK/AIMなど自分好みのリグで動きを調整することができるようになります。
このあたりの詳しい解説はまた次の機会に書かせていただこうと思います!
まとめ
ざっくりではありますが、UE5上でのモーションのインポートからリターゲットモーションの書き出しまでの流れを紹介させていただきました。
最近ではフリーのモーションキャプチャー素材を配布しているサービスも増えてきており、プロト開発の際などに非常に有用なデータが簡単に手に入るようになってきました。
DCCツールを経由せずに実装まで持っていける今回のような機能は、今後のゲーム開発でもメインになっていくと思いますので、皆さんもお時間のある時に試してみていただければと思います!
最後まで読んでいただき、ありがとうございました!
現在アドグローブでは3Dデザイナーを含め、さまざまなポジションで一緒に働く仲間を募集しています。
詳細については下記からご確認ください。みなさまからのご応募お待ちしております。