mixamoというのはゲームやムービー制作等で使える3Dモーションの販売を行っているオンラインショップである。 モーションキャプチャされたであろう高品質なモーションを多数取り扱っており、 3D関連の情報をネットで調べるとかならずと言っていいほど目にする有名なサービスである。 1モーションから買える手軽さがウリだったが、高品質な分か、やはりちょっとお高かった。以前までは。
そのmixamoがAdobeに買収されたことをきっかけに10月5日からリニューアルされ、 現在Adobe ID(無料)さえあればなんと フリーでモーションが落とし放題 になっているのだ。 これは我々のようなホビーゲームプログラマなら活用しない手はない。 (ここによると現在サービス全体がPreviewバージョンにつきフリー、For a Limited Time(期間限定)ということらしい。また以前より取り扱いモーションの数が大幅に減っている。しかたないね)
なおこの記事で使用しているUEのバージョンは4.9.2である。
ダウンロードまで
mixamoのモーションをダウンロードするには以下の流れになる。
- まずベースとなるキャラクターを選択(charactersページから)
- モーションを適用 ( Find Animations → Add to My Assets )
- ファイル形式を選択 (My Animationsページから Que Download )
- ダウンロード (Downloadページから)
さてmixamoのモーションをUE4で活用するには、いくつか重要な問題がある。 まずひとつめは、標準で用意されているモデルはボーン構造がUE4には対応してない という点だ。
対応していないというのは正確にはUE4標準マネキンのヒューマノイドリグとは違う構造になっているという意味で、 ダウンロードしてきたモデルをそのまま置いて躍らせるなどの用途では実際問題なかったりするのだが、 そのモーションをリターゲットして別のモデルに持って行きたい時などに困ることになる。
しかし、mixamo内のこちらも無料で公開されているAUTO-RIGGERというサービスを通して 自前でなんらかのモデルを登録すると、Que Download時のDownload Settingにて 「FBX for Unreal Engine 4 」形式を選択できるようになる。 この形式はUE4マネキンに近いボーン構造になっているので、これによって上記の問題について言えば(ほぼ)解決する。
用意するモデルは、例えばゲームのプレイヤーのモーションとして使う予定であれば プレイヤーモデルを直接アップしてしまうのが一番良いが、 とりあえず試したいのであれば体格が似ているであろう適当なモデルで良い。
ちょうど手元につくりかけの自作「伊8(以下はっちゃん)」モデルがあるので今回はこれを使う。
まず対象のモデルをOBJ形式かFBX(ボーンが入ってない場合)形式のどちらかでまず保存する。 なおどのような形式であってもテクスチャやマテリアル設定は抜け落ちてしまうようなので、 最終的にUE4上でマテリアルを再設定するか、設定済みのモデルにリターゲットする必要がある。
注意:すでにボーン入りのFBXをアップロードするとリギング処理そのものがスキップされてしまい作業の意味が無くなってしまう。配布されているFBXモデルを今回の手法でリギングする場合、予めボーンを抜いておくかOBJ形式に変換する必要がある。結論としてはとりあえずOBJにしておけばあんしん。
注意:なぜかPMXEditorから出力したobjモデルではうまくいかない。 私の試したところではMetasequoiaから出力したobjと、Blenderから出力したobjでは成功したが、PMXEditorから出力したobjではたとえ同じモデルでも成功しなかった。また、モデルのサイズが小さすぎると失敗するようなので、(放っておくと極小モデルを出力してしまう)Blenderでは、出力時の倍率をx10などに設定して調整すること。
アップロードはログインした後の一番上にあるUPLOADボタンから行う。

あとは指示にしたがってアゴ、両手、両肘、両膝、骨盤の中心を指定すればリグ済のモデルが登録される。
なお、なぜかよく失敗する。失敗したらBACKボタンを押してもう一回アップロードするところからやり直せばだいたいうまくいく。2回連続で失敗したら、モデルデータに問題がある可能性が高い。
注意:MMDモデルは失敗する可能性が高いように感じる。しかしいくつかのモデルでは次のように成功を確認している。
とらはぜ式潮はmixamo通った。全身が閉じているモデル(要するに中身あり)は通りやすいのかもしれない。あとPMXEditorから出力したobjはNGで、これはMetaseqoiaから出力したobj。 pic.twitter.com/cgHetCx5ba
— ちょむ[C90]3日西k-24a (@chom) 2016年7月3日
細かすぎPの黒い人モデルもmixamo通過。まあこれは通って当然か…これもMetasequoiaのobj。 pic.twitter.com/TIUrfjC8p9
— ちょむ[C90]3日西k-24a (@chom) 2016年7月3日
あれ?レア様も通った。上半身まで中身ありのモデルではないのだが、腰で一旦オブジェクトが閉じていればいいのか? pic.twitter.com/BosZ2iTeMt
— ちょむ[C90]3日西k-24a (@chom) 2016年7月3日
私の感触では、いわゆる「水着」「全身タイツ」「中身あり」のように、足から頭まで一つのオブジェクトとして繋がっているモデルは通りやすい気がする。逆に、意図的に中身のポリゴンが削られていて上半身と下半身が分離しているモデルは失敗しやすい気がする。ミクモデルのほとんどは腰位置(および手首)で切断されている事が多い。でもレア様は通ったので気のせいかもしれない。もしお目当てのモデルで失敗するようなら、近い体型のモデルでモーションを登録しておいて後でリターゲットする方向ですすめよう。
無事登録ができたら、あとは同じようにモーションを割り当てれば良い。 ダウンロードする時は 「 FBX for Unreal Engine 4 」形式を指定するのを忘れないように。
Mixamoのオートリガーを試すのに自作8ちゃんを読ませてみた。なんでYMCAモーションなんてあるんだよ… pic.twitter.com/XoLcj9SVGv
— ちょむ (@chom) 2015, 10月 5
(ガンナムスタイルとか、マイケル・ジャクソンのスリラーのダンスモーションもあるよ)
UE4で使う
さてFBXがダウンロードできたら、UE4にインポートしてみる。
念のためUE4での読み込みまで確認 pic.twitter.com/2iSxhKLDld
— ちょむ[C90]3日西k-24a (@chom) 2016年7月3日
ボーン構造は問題ないはずだ。しかし、アニメーションをRoot Motion周りの挙動がいろいろとおかしい事に気づく。 Root Motionはモーションに含まれている移動量をキャラクターの移動量に反映させる機能で、詳しくは こちら を見ていただきたい。
まず、モーションをリターゲットする際に気をつけるべき事がある。 リターゲットする際の設定で 「スペースを新規スケルトンい変換」(原文ママ)のチェックを外すこと。 外しておかないと、リターゲット先でルートの移動量が反映されない。
また、リターゲット先のアニメーションを見ていると向きがおかしくなったりする。
そういう時はルートモーションの設定でRoot Motion Root Lock設定をAnim First Frameに設定する。 これで軸がおかしくなったりする問題を回避できる。

以上の手順を踏まえて、今回のはっちゃんモデルで試してみた結果。(右のグレイマンはそれをリターゲットした結果)
別のモーションでもRootMotion取れた。 pic.twitter.com/48Fv6SZbwW
— ちょむ (@chom) 2015, 10月 6
この前転モーションはルートボーンがプレビューではぐりんぐりん左右に動くので かなり不安になるが、ゲーム内で再生してみるとしっかり直進しているので問題はない。

まとめ
以上をまとめると、UE4でmixamoのモーションを使う際の注意点は
- AUTO RIGGERを通し、FBX for Unreal Engine 4 形式でダウンロードすること。
- リターゲットする際に「スペースを新規スケルトンい変換 」(原文ママ)のチェックを外すこと。
- ルートモーションのRoot Motion Root Lock設定をAnim First Frameに設定すること。
以上、UE4でmixamoモーションを使う時の注意点でした。 手探りで検証しつつやっているので、間違っている点あればツイッター@chom等から ご連絡願いたい。イカよろしく〜
2016.07.04 : MMDモデルのmixamo読み込みについて追記
