Unity+Oculus+MMD とりあえず書き留めておく場所

Unity+Oculus+MMD VRでキャラクターと遊ぶ

2. MMD4Mechanimのインポート・モデルの読み込み

今回は、UnityにMMDモデルを読み込むというあたりまでやっていこうと思います。 

MMD4Mechanimのインポート

UnityにMMDモデルを読み込める状態にするには、専用のプラグインが必要です。

Noraさんが開発された「MMD4Mecanimを以下のサイトからダウンロードします。

少し下の方の「MMD4Mecanim Beta~」と書いてあるzipファイルのリンクから。

Stereoarts Homepage

f:id:emifuwa:20171117101644j:plain

ダウンロードする場所はどこでもいいですが、中にはチュートリアルのpdfも入っているので、すぐに参照できる場所に置いておくのが良いでしょう。

ダウンロードしたフォルダを開くと、中にUnityアイコンのパッケージが入っています。

「MMD4Mecanim」(Standardじゃない方)をダブルクリック・もしくはUnity画面のProjectビューの中の「Assets」フォルダに直接D&Dします。

(メニューバー「Assets」→「Import Package」→「Custom Package...」からでもOK)

f:id:emifuwa:20171117104303j:plain

するとPackageの内容が表示されたウィンドウが表示されますので、「Import」を押せば、インポートが始まります。

インポートが終わると、ProjectビューのAssetsフォルダの中に「BulletXNA」「MMD4Mechanim」の2つのフォルダが増えているのがわかりますね。

f:id:emifuwa:20171117104915j:plain

この2つのフォルダに関しては、何か特別な用がない限りは何もいじらず(※中身の移動やフォルダ名の変更などをしない)放っておいてください。うっかり削除などをしてしまうと、当然使用できなくなってしまいます。

 MMD4Mechanimのインポートが終わったら、これでもうUnityにMMDモデルを読み込める状態になっています。 

MMDモデルを読み込む 

いよいよMMDモデルを読み込みます。 

※なお、MMDモデルは、当たり前ですが「Unityに読み込むことを前提に作られていない」です。

また、「Unityに読み込むこと・VRで鑑賞すること」などを許可していないモデルもあります。

使用する前には、必ずモデルに同梱のReadMeなど、取扱に関する規約を確認してください。よろしくお願いします。

 

MMDモデルとモーションを準備する

まずMMDモデルを用意します。モーションはvmd形式のものを用意します(モーションがなくても読み込み可能)。

今回は、「Tda初音ミク・アペンドVer1.00」モデルを読み込み、モーションは筆者がMMDで作成したものを使用します。

モデルはダウンロードして解凍した、フォルダそのままの状態です。

②UnityにモデルをD&Dする

MMDモデルを、フォルダごとProjectビューのAssetsフォルダにドラッグ・アンド・ドロップします。

f:id:emifuwa:20171117112648j:plain

モーションはモデルフォルダの中に同梱しておいても良いですし、あとから単体でAssetsフォルダの中に直接D&Dすることも出来ます

また、音楽ファイルや画像ファイルなども、このようにAssetsフォルダに直接D&Dして使用することが出来ます。

筆者は、同梱するにしてもあとから入れるにしても、モーションを見失わないよう該当のモデルフォルダの中に入れておくようにしています。

(なにせUnityは字が小さい!上にデータの数がたくさんあって、目当てのものを見失いやすいのです…)

 

さて、問題なく読み込めれば、Assetsフォルダの中にモデルフォルダがそのまま入っているのがわかりますね。

f:id:emifuwa:20171117112948j:plain

モデルをD&Dしたらエラーが表示された時

さて、稀にですがモデルの読み込みに問題が生じることがあります。

例えば「テクスチャやtoonが読み込めないエラー」

このようなエラーが生じた場合、モデルフォルダをUnityにD&Dした時点でUnityの下部にエラーメッセージが表示されます。

f:id:emifuwa:20171117114635j:plain

エラーメッセージをダブルクリックすると、メッセージを表示するConsole画面が現れます。

f:id:emifuwa:20171117115053j:plain

(※モデル名の部分を白く塗りつぶしています)

エラーメッセージを読むと、toonのbmpファイルが読み込めなかったよ…という内容。

このように画像データが上手く読み込めなかった場合、実際にモデルをUnityで表示させてみると、テクスチャがまったく反映されず全身グレーになってしまったり、透明になってしまったりということがあります。

:なぜこのようなことが起きるか。

bmpという保存形式は、実は種類が非常に多いです。

そのため、Unity側で数多いbmp保存形式をすべてフォローしきれないことがあります。

なので、bmpで保存されたテクスチャやtoonがMMDでは表示されるけどUnityでは表示されない…」ということが、たまにですがあります。

Unity用に作られたモデルではないので、これは仕方のないことです。

 

 このようなエラーが出た場合の対応策は以下の通り。モデルをUnityに読み込む前に、処理をしておきましょう。

Windowsの「ペイント」で該当するbmpファイルを開き、そのままbmpで保存し直す。

ファイルを開いて上書き保存、開いて上書き保存を繰り返すだけです。

80%はこれでうまくいきます。それでも駄目だった場合は②へ。

Photoshopで該当するbmpファイルを開き、そのままbmpで保存し直す。

これでだいたいうまくいきます。Photoshopだと自動処理も出来るので、ファイルが複数あってもサッと終わるのが楽です。

③該当するbmpファイルをpngファイルなどに保存し直し、PMXエディタでテクスチャを貼り直す。

①で駄目→Photoshopを持ってない…などの場合の最終手段はここ。

私は今まで何百体というモデルを使ってきましたが、ここまで行ったのは本当に1体くらいしかないです。たいてい①でうまくいきます。

今まで経験したケースで③までいっても駄目だったのは、「モデルの情報MMDにモデルを読み込むと最初に表示されるやつ)の英語バージョンの方に機種依存文字が使われていて、そこで処理がひっかかりテクスチャを変換できなかった」というのが一度だけありました。

どうしても駄目!となった場合は…ご相談ください…

また、MMD4Mechanim開発者のNoraさんはとても頼りになる方なので(めちゃくちゃお世話になってます)、Twitter等で直接聞くのが早いかもしれません。

 

モデル変換の前に

特にエラーメッセージも出ずAssetフォルダにモデルファイルを読み込めたら、フォルダを開いてみましょう。

Assetフォルダの中のモデルフォルダをダブルクリックすると、最初はフォルダの中身がこんな感じで表示されると思います。

f:id:emifuwa:20171117124527j:plain

アイコン表示が大きすぎて使いにくいので、リスト表示に変更しましょう。

Projectビューの右下にあるスライダーを左右に動かすことで、フォルダ内のアイコン表示の大小を調節します。

フォルダ内のファイルの視認性が高くなるので、一番アイコンが小さい状態にします。

f:id:emifuwa:20171117125128j:plain

また、各ビューの大きさも、境目のあたりを左ドラッグすることで広さを変えられるので、その時々で都合のいいよう調節しましょう。 

MMDモデルの変換

読み込んだモデルフォルダの中にある、自動生成されたMMD4Mechanimファイルを選択します(もともとpmx/pmdファイルだったものです)。

Inspectorビューには、モデルファイルに同梱されている利用規約が表示されます

f:id:emifuwa:20171117135909j:plain

利用規約を確認後、利用に問題がなければ、一番下までスクロールし、チェック欄を確認・チェックを入れ「同意する」をクリックします。

f:id:emifuwa:20171117135840j:plain

すると、Inspectorビューがvmdファイルを登録・変換画面に遷移します。

モーションを準備してある場合は「VMD」の「None(Object)」と書いてある場所に、直接ファイルをD&Dします

f:id:emifuwa:20171117170352j:plain

モーションが登録されると、「VMD」のところにモーション名(ここでは「1基本モーション」という名前のファイル)が表示されます

間違えて登録してしまった場合は、vmd欄左の「-」のマークを押すと消えます。

f:id:emifuwa:20171117171311j:plain

モーションの登録が終わったら、「Process」のボタンを押すと、変換が開始されます。

f:id:emifuwa:20171117171808j:plain

こんな感じに処理が走ります。しばらく待ちましょう。

モーションが長かったりすると、やや時間がかかることもあります。

無事変換が終了すると、モデルのフォルダの中に、水色のキューブの形をしたアイコンが増えています。

f:id:emifuwa:20171117172904j:plain

(※ちなみに、フォルダ内のアイコン表示を大きくした状態だと、以下のようにモデルの姿が映ったものになります)

f:id:emifuwa:20171117172846j:plain

これが、Unity表示用に変換されたMMDモデルです。

また、上の方には「1基本モーション」という名のvmdファイルがanim形式のファイルに変換されたものもあります。

f:id:emifuwa:20171117173044j:plain

右下の画面を見ると、どうやらテクスチャはちゃんと反映されているようです。

(※この時点でUnity画面左下にメッセージが出ることがありますが、ちゃんと変換されていたらとりあえず無視してください。赤い「!」メッセージは何かしらまずいですが、白い「!」メッセージは「処理終わったよ~」的なアレだったりします)

 

では次回、変換が終わったモデルを遂にSceneビューに表示させてみましょう。