UnityでMMDする方法

既にいろんな記事が出ているけれど、自分なりの言葉でまとめたかったのでまとめてみる。

MMD4Mecanimを使ってPMXをFBXに変換する

MMD4Mecanimを使用してMMDモデルにUnityで踊って頂いてみた。

DL: http://stereoarts.jp ダウンロードリンクは下の方にあるので注意。

  • ダウンロードしたらフォルダ内にあるMMD4Mecanim.unitypackageをimportする。
  • その後PMXが入っているディレクトリごとプロジェクトに丸ごとドラッグ&ドロップで読み込ませる。 またこの際に変換したいアニメーションがある場合は事前にファイルを読み込ませておく。
  • するとPMXがあるディレクトリに[PMXのファイル名].assetという名前のファイルがあるので、これをクリックして選択する。
  • するとInspectorに利用規約に関する表示が出るので、規約を確認したあと左のチェックボックスをすべてクリックして同意を押す。
  • ボタンをクリックしたあと変換画面に移るので、そこでアニメーションも変換する場合はVMDに変換したいアニメーションを指定してProcessを押す。 またこの際Advanced Modeチェックボックスをクリックすることで詳細な設定が可能。例えばRigの設定など。
  • 黒い画面が出てなにやら処理が行われたあと、同じくPMXのディレクトリにPrefabがあるので、それをいつも通りHierarchyなどにドラッグアンドドロップすれば読み込める

アニメーションも変換した場合

アニメーションも変換した際は実際に動かすまでもう一手間かかる。

アニメーションコントローラの設定

  • まず初めに、Prefabのと表示されている箇所をクリックする。

  • するとPrefab内にあるコンテンツが展開されて表示される。

  • 次に.animで始まるアニメーションファイルがあることを確認する。 これで確認作業は完了。もしアニメーションファイルが無い場合はモデル変換時にVMDファイルを指定し忘れた可能性があるのでもう一度確認する。

  • 次にHierarchyからSceneに追加したモデルを選択する。

  • Inspectorの一番下のAdd ComponentsをクリックしてAnimatorを追加。

  • Assetsを右クリックしてCreateからAnime Controllerを追加。

  • .controllerという名前のファイルが作成されるので、それを開く

  • するとアニメーションウィンドウ(矢印などが表示されている)が開く。

  • そこにPrefab内にあるアニメーションファイルをアニメーションウィンドウにドラッグアンドドロップする。

  • するとEnterから矢印が伸びた状態になる。これでコントローラの設定は完了。

次にアニメーションコントローラをモデルに適用する

  • Hierachyから対象のオブジェクトを選択する。
  • InspectorからAnimatorControllerをクリック。
  • メニューから先に作ったAnime Controllerを選択。 これでAnime Controllerが適用された。画面上の再生ボタンを押せばアニメーションが再生されるはずだ。

マテリアルが正しく適用されない問題

ディレクトリ構造によってテクスチャが正しく適用されない問題がある。これは後日詳しく調べたい。少なくとも自分の場合、テクスチャとモデルデータが別のディレクトリにある場合に発生しているので、恐らくそれが原因だと考えている。

モデルを微調整したい

ここからは変換したモデルの形状がおかしかったので、それを修正するために行ったことを書いていく。

シチュエーション

MMD4Macineで変換した3Dモデルのメッシュの一部が変形していて、それを直した上でアニメーションを適用させたい。

UnityはBlenderプロジェクトを読み込める

UnityはBlenderプロジェクトをそのまま読み込めるので、それを利用してモデルの修正とアニメーションを適用させた状態のBlenderプロジェクトをUnityで読み込んで再生できるか試してみる。

なおBlenderでのMMD読み込みはmmd-toolsを利用した。