UnityでMMDのモデルとモーションを読み込む

UnityでMMDのモデルとモーションを読み込むには「MMD for Unity」を使う方法と、「PMD2FBX & MMD4Mecanim」を使う方法があります。

それぞれ試してみました。なお、Unityは4.1.5を使用しています。

MMD for Unity

準備

下記ページからmmd-for-unity2.0b.zipをダウンロードします。

解凍したフォルダをProjectビューのAssets内にドラッグ&ドロップします。

メニューを操作すると「Plugins」の項目が追加されています。

モデル表示

モデルデータ(さとうささら_N式β)をフォルダごとProjectビューのAssets内にドラッグ&ドロップします。

メニューから「Plugins」→「MMD Loader」→「PMD Loader」をクリックします。

表示されたダイアログの「PMD File」欄にAssets内に追加した.pmdをドラッグ&ドロップして「Convert」をクリックします。

画面にモデルが表示され、.pmdと同階層に.prefabが作成されます。

MMD for Unity - モデル表示 MMD for Unity - モデル表示

モーション再生

モーションデータ(Dance.vmd)をProjectビューのAssets内にドラッグ&ドロップます。

メニューから「Plugins」→「MMD Loader」→「VMD Loader」をクリックします。

表示されたダイアログの「PMD Prefab」欄に先ほど作成された.prefabをドラッグ&ドロップします。また、「VMD File」欄にAssets内に追加した.vmdをドラッグ&ドロップします。

「Create Asset」欄にチェックして「Convert」をクリックします。

.prefabと同階層にAnimation/<モデル名>_<モーション名>.animが作成されます。

.prefabを選択してInspectorビューの「Animation」欄にAnimation/<モデル名>_<モーション名>.animをドラッグ&ドロップします。

メインカメラの位置を調整し、中央上部の再生ボタンをクリックします。

MMD for Unity - モーション再生 MMD for Unity - モーション再生

一応再生されたましたが、肩の角度が正しく再現されていないのと、スカートが胴体を突き抜けたり不安定です。

参考ページ

PMD2FBX & MMD4Mecanim

準備

下記ページからPMD2FBX_MMD4Mecanim_Prototype_20130913.zipをダウンロードします。

コマンドプロンプトから以下のように実行して必要なファイルの変換を行います。(.pmdのフォルダ内に変換されたファイルが出力されます)

> C:\Path\to\pmd2fbx.exe C:\Path\to\さとうささら_N式β.pmd C:\Path\to\Dance.vmd

MMD4MecanimとMMD4Mecanim(Plugins)のフォルダをProjectビューにドラッグ&ドロップします。

メニューを操作すると「Plugins」の項目が追加されています。

モデル表示

Projectビューにモデルデータ格納用のフォルダを作成し、その中にpmd2fbx.exeで出力された下記ファイルをドラッグ&ドロップします。

さとうささら_N式β.exp.bytes
さとうささら_N式β.fbx
さとうささら_N式β.phy.bytes
さとうささら_N式β.pmd.xml

該当フォルダ内にTexturesフォルダを作成し、その中にテクスチャファイルをドラッグ&ドロップします。

.fbxを選択した状態でInspectorビューからNormals&TangentsのTngents欄をImportに変更します。

メニューから「Plugins」→「MMD4MecanimLoader」をクリックします。

表示されたダイアログの「FBX File」欄に.fbxをドラッグ&ドロップして「Convert」をクリックします。(何も変化がないように見えますが、Projectビューで何かを選択するなど操作すると確認ダイアログが出るのでApplyを選択します)

処理が終わると.fbxのプレビューがテキスチャの貼られた状態に変化します。

.fbxをHierarchyビューへドラッグ&ドロップして配置します。

メニューから「GameObject」→「Create Other」→「Directional Light」をクリックしてライトを配置します。

PMD2FBX & MMD4Mecanim - モデル表示 PMD2FBX & MMD4Mecanim - モデル表示

モーション再生

Hierarchyビューに配置したモデルを選択した状態で、メニューから「Component」→「Scripts」→「MMD4Mecanim Expression」をクリックします。

Inspectorビューに「MMD4Mecanim Expression(Script)」が追加されるので、以下のとおり設定します。

「Exzpression File」欄に.exp.bytesをドラッグ&ドロップ
「Index File」→「Size」欄を1に設定
「Index File」→「Element 0」に.idx.bytesをドラッグ&ドロップ

Projectビューでモデルデータ格納用フォルダ内の右クリックメニューから「Create」→「Animator Controller」をクリックします。

作成したAnimator ControllerをHierarchyビューに配置したモデルの「Animator」→「Contoller」欄にドラッグ&ドロップします。

Projectビュー内のAnimator Controllerをダブルクリックします。(中央ペインがAnimatorビューに切り替わります)

Projectビュー内で.fbx項目を展開した中にある再生対象のモーションをAnimatorビュー内の任意の位置にドラッグ&ドロップします。

メインカメラの位置を調整し、中央上部の再生ボタンをクリックします。

PMD2FBX & MMD4Mecanim - モーション再生 PMD2FBX & MMD4Mecanim - モーション再生

再生されました。こちらも肩の角度が正しく再現されていないようですが、スカートの動きなどは安定しています。

参考ページ

まとめ

手順はやや面倒ですが、「PMD2FBX & MMD4Mecanim」の方が綺麗に再現されるようです。

次回はUnityでRazer Hydraを使ってみます。

関連記事

blog comments powered by Disqus