2015年10月07日

[UE4] mixamoのモーションをUE4で使用する方法と注意点(更新)

mixamoというのはゲームやムービー制作等で使える3Dモーションの販売を行っているオンラインショップである。 モーションキャプチャされたであろう高品質なモーションを多数取り扱っており、 3D関連の情報をネットで調べるとかならずと言っていいほど目にする有名なサービスである。 1モーションから買える手軽さがウリだったが、高品質な分か、やはりちょっとお高かった。以前までは。

そのmixamoがAdobeに買収されたことをきっかけに10月5日からリニューアルされ、 現在Adobe ID(無料)さえあればなんと フリーでモーションが落とし放題 になっているのだ。 これは我々のようなホビーゲームプログラマなら活用しない手はない。 (ここによると現在サービス全体がPreviewバージョンにつきフリー、For a Limited Time(期間限定)ということらしい。また以前より取り扱いモーションの数が大幅に減っている。しかたないね)

なおこの記事で使用しているUEのバージョンは4.9.2である。

ダウンロードまで

mixamoのモーションをダウンロードするには以下の流れになる。

  1. まずベースとなるキャラクターを選択(charactersページから)
  2. モーションを適用 ( Find AnimationsAdd to My Assets )
  3. ファイル形式を選択 (My Animationsページから Que Download )
  4. ダウンロード (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モデルは失敗する可能性が高いように感じる。しかしいくつかのモデルでは次のように成功を確認している。

私の感触では、いわゆる「水着」「全身タイツ」「中身あり」のように、足から頭まで一つのオブジェクトとして繋がっているモデルは通りやすい気がする。逆に、意図的に中身のポリゴンが削られていて上半身と下半身が分離しているモデルは失敗しやすい気がする。ミクモデルのほとんどは腰位置(および手首)で切断されている事が多い。でもレア様は通ったので気のせいかもしれない。もしお目当てのモデルで失敗するようなら、近い体型のモデルでモーションを登録しておいて後でリターゲットする方向ですすめよう。

無事登録ができたら、あとは同じようにモーションを割り当てれば良い。 ダウンロードする時は 「 FBX for Unreal Engine 4 」形式を指定するのを忘れないように。

(ガンナムスタイルとか、マイケル・ジャクソンのスリラーのダンスモーションもあるよ)

UE4で使う

さてFBXがダウンロードできたら、UE4にインポートしてみる。

ボーン構造は問題ないはずだ。しかし、アニメーションをRoot Motion周りの挙動がいろいろとおかしい事に気づく。 Root Motionはモーションに含まれている移動量をキャラクターの移動量に反映させる機能で、詳しくは こちら を見ていただきたい。

まず、モーションをリターゲットする際に気をつけるべき事がある。 リターゲットする際の設定で 「スペースを新規スケルトンい変換」(原文ママ)のチェックを外すこと。 外しておかないと、リターゲット先でルートの移動量が反映されない。

また、リターゲット先のアニメーションを見ていると向きがおかしくなったりする。

そういう時はルートモーションの設定でRoot Motion Root Lock設定をAnim First Frameに設定する。 これで軸がおかしくなったりする問題を回避できる。

以上の手順を踏まえて、今回のはっちゃんモデルで試してみた結果。(右のグレイマンはそれをリターゲットした結果)

この前転モーションはルートボーンがプレビューではぐりんぐりん左右に動くので かなり不安になるが、ゲーム内で再生してみるとしっかり直進しているので問題はない。

まとめ

以上をまとめると、UE4でmixamoのモーションを使う際の注意点は

  1. AUTO RIGGERを通し、FBX for Unreal Engine 4 形式でダウンロードすること。
  2. リターゲットする際に「スペースを新規スケルトンい変換 」(原文ママ)のチェックを外すこと。
  3. ルートモーションのRoot Motion Root Lock設定をAnim First Frameに設定すること。

以上、UE4でmixamoモーションを使う時の注意点でした。 手探りで検証しつつやっているので、間違っている点あればツイッター@chom等から ご連絡願いたい。イカよろしく〜

2016.07.04 : MMDモデルのmixamo読み込みについて追記

タグ:3DCG UE4
posted by ちょむ at 01:39| Comment(0) | TrackBack(0) | UnrealEngine
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/165147610
※ブログオーナーが承認したトラックバックのみ表示されます。
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック