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
からAnimator
のController
をクリック。- メニューから先に作った
Anime Controller
を選択。 これでAnime Controller
が適用された。画面上の再生ボタンを押せばアニメーションが再生されるはずだ。
マテリアルが正しく適用されない問題
ディレクトリ構造によってテクスチャが正しく適用されない問題がある。これは後日詳しく調べたい。少なくとも自分の場合、テクスチャとモデルデータが別のディレクトリにある場合に発生しているので、恐らくそれが原因だと考えている。
モデルを微調整したい
ここからは変換したモデルの形状がおかしかったので、それを修正するために行ったことを書いていく。
シチュエーション
MMD4Macineで変換した3Dモデルのメッシュの一部が変形していて、それを直した上でアニメーションを適用させたい。
UnityはBlenderプロジェクトを読み込める
UnityはBlenderプロジェクトをそのまま読み込めるので、それを利用してモデルの修正とアニメーションを適用させた状態のBlenderプロジェクトをUnityで読み込んで再生できるか試してみる。
なおBlenderでのMMD読み込みはmmd-tools
を利用した。