井戸底より

とりとめのない散文、水底に沈んだ駄文

MixamoのアニメーションをUE4でリターゲットするmemo

MixamoのアニメーションをUE4に持ってくるのに少し手間取ったので備忘録として残しておく。

 

Mixamoの3Dモデルにはrootボーンが含まれていない。これ自体は別に困る話でもないが、UE4で他のモデルにリターゲットするとなぜか足が宙に浮いてしまうという問題が発生した。

 この問題は海外のフォーラムでも散見されていて、rootボーンが存在しないことでリターゲットがうまく機能しないのが理由に思われる。色々ググったがUE4内でうまいこと解決する方法は見つからなかった。

 

BlenderでMixamoのモデルにrootボーンを追加してUE4に持っていく方法で解決できたが、ここにもちょっとした罠があるので手順を示す。ただの備忘録なので詳しい真偽、他の環境での動作は保証しない。

 

まずMixamoから落としてきたデータにrootボーンを追加、mixamorig:Hipsと親子付け

f:id:tevasan:20200909210759p:plain

 

その際rootボーンはX軸で-90度回転させた状態 = (この場合は)Y軸を向いていないといけない。 真上を向いているとUE4に持ってきた時rootボーンのX回転が90度になる

 

アニメーションをUE4に持っていく場合はrootボーンをX軸で90度回転させる。こうしないとアニメーションが-90度回転し半分地に埋まった状態で読み込まれる

f:id:tevasan:20200909210729p:plain

 この状態でFBXエクスポートをすると正しく読み込めるデータになる。軸の方向とか余計なオプションを弄る必要はない

 

BlenderからUE4に持っていく際によく言われるScale100倍問題については、メッシュをインポートしてエクスポートすれば相殺されるのでこの場合は気にする必要はない。逆にUE4のエクスポートに対応したアドオンを使うと100倍に引き伸ばされてアニメーションが壊れるので普通のFBXエクスポーターを使うのが無難。

 

リターゲットをUE4で行うにはSkeletal MeshとSkeletonのデータが必要になる。1個だけWith Skinの状態でアニメーションを落とせばいいだろう。

あとは読み込んだSkeletonにHumanoid Rigを設定してリターゲットしておわり。