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が作成されます。
モーション再生
モーションデータ(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をドラッグ&ドロップします。
メインカメラの位置を調整し、中央上部の再生ボタンをクリックします。
一応再生されたましたが、肩の角度が正しく再現されていないのと、スカートが胴体を突き抜けたり不安定です。
参考ページ
- Oculus Riftが到着してからやったこと(随時更新) - develog.me
- 【MMDforUnity】UnityでMMDモデルを動かす: 名も無き製作室
- Oculus Unity Integration & MMD for Unity 事始め - 凹みTips
- VPVP wiki - MikuMikuDance_for_Unity
- テラシュールウェア [Unity3D]UnityでMMDを使う
- テラシュールウェア [Unity3D]続・MMD for Unity 1.1系を試す
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」をクリックしてライトを配置します。
モーション再生
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ビュー内の任意の位置にドラッグ&ドロップします。
メインカメラの位置を調整し、中央上部の再生ボタンをクリックします。
再生されました。こちらも肩の角度が正しく再現されていないようですが、スカートの動きなどは安定しています。
参考ページ
- PMD を Mecanim 出来る PMD2FBX & MMD4Mecanim を試してみた - 凹みTips
- プログラミング不要。Unityを使えば誰でも2時間で作れちゃう。OculusRiftでLiveを体感するLukalive!! - develog.me
まとめ
手順はやや面倒ですが、「PMD2FBX & MMD4Mecanim」の方が綺麗に再現されるようです。
次回はUnityでRazer Hydraを使ってみます。
関連記事
- Oculus Riftで遊ぶ
- 岡嶋二人「クラインの壺」 究極のVRの先にあるもの
- MMDでモーションを再生する
- MMMでモーションを再生する
- UnityでMMDのモデルとモーションを読み込む
- Unity Free版でRazer Hydraを使う
- Unity Free版でOculus Riftを使う
- UnityとHydraでMMDモデルの髪やスカートに触る