MixamoのアニメーションをUE4でリターゲットするmemo
MixamoのアニメーションをUE4に持ってくるのに少し手間取ったので備忘録として残しておく。
Mixamoの3Dモデルにはrootボーンが含まれていない。これ自体は別に困る話でもないが、UE4で他のモデルにリターゲットするとなぜか足が宙に浮いてしまうという問題が発生した。
この問題は海外のフォーラムでも散見されていて、rootボーンが存在しないことでリターゲットがうまく機能しないのが理由に思われる。色々ググったがUE4内でうまいこと解決する方法は見つからなかった。
BlenderでMixamoのモデルにrootボーンを追加してUE4に持っていく方法で解決できたが、ここにもちょっとした罠があるので手順を示す。ただの備忘録なので詳しい真偽、他の環境での動作は保証しない。
まずMixamoから落としてきたデータにrootボーンを追加、mixamorig:Hipsと親子付け
その際rootボーンはX軸で-90度回転させた状態 = (この場合は)Y軸を向いていないといけない。 真上を向いているとUE4に持ってきた時rootボーンのX回転が90度になる
アニメーションをUE4に持っていく場合はrootボーンをX軸で90度回転させる。こうしないとアニメーションが-90度回転し半分地に埋まった状態で読み込まれる
この状態でFBXエクスポートをすると正しく読み込めるデータになる。軸の方向とか余計なオプションを弄る必要はない
BlenderからUE4に持っていく際によく言われるScale100倍問題については、メッシュをインポートしてエクスポートすれば相殺されるのでこの場合は気にする必要はない。逆にUE4のエクスポートに対応したアドオンを使うと100倍に引き伸ばされてアニメーションが壊れるので普通のFBXエクスポーターを使うのが無難。
リターゲットをUE4で行うにはSkeletal MeshとSkeletonのデータが必要になる。1個だけWith Skinの状態でアニメーションを落とせばいいだろう。
あとは読み込んだSkeletonにHumanoid Rigを設定してリターゲットしておわり。