Unreal Engine4でMMDモデルに表情を付ける方法

unrealengine4-mmd-improve-eyecatch

以前にもMMDBridgeを使ったVMD出力を試みましたが、AVI出力時に100%クラッシュしていたので記事に出来ませんでした。ところが32bit版MMDBridgeを使うと、うまい具合にVMDの出力とUnreal Engine4へのインポートが出来た次第です。(利用PCは64bitです)

 

 

本記事で出来ること

・マテリアル関連付け作業をスキップ
・モーフ情報を持ったモーションの適用

 

 

1.MMDとMMDBridgeをダウンロードする

1.1 MMDとは

MikuMikuDance』(みくみくだんす)は、「樋口M」こと樋口優氏が個人で開発し、自身のウェブサイト「VPVP(Vocaloid Promotion Video Project)」で無償公開しているフリーの3DCGムービー製作ツールである。

 

参考:ニコニコ大百科

上記の樋口M氏のホームページよりMMD(MikuMikuDance)をダウンロードします。私の環境では、「MikuMikuDance(DirectX9 Ver)」で正常に起動することを確認できました。

 

1.2 MMDBridgeとは

MMDBridgeは、MikuMikuDanceに外部レンダラーでのレンダリングを可能とするソフトウェアです。(動画略)このように、MMDBridgeは、物理演算済みのデータを各種レンダラに引き渡すための橋渡しをします。MikuMikuDanceを使用した、さらなる表現の追及や、独自レンダラのテストデータとしてどうでしょうか。

 

参考:公式サイト

公式サイトより「MMDBridge ver 0.69 Alembic(32bit)」をダウンロードしました。私の環境では64bit版にてデータを出力すると、100%クラッシュしてしまいました。

 

1.3 MMDのメニューにMMDBridgeを追加

公式サイトにも使い方は載っていますが、MMDのメニューにMMDBridgeを表示させるためには、ダウンロードしたMMDとMMDBridgeのフォルダ内容を同じディレクトリに入れてしまえばOKです。

 

 

MMDフォルダ内容

unrealengine4-mmd-improve-1-1

+(プラス)

 

MMDBridgeフォルダ内容

unrealengine4-mmd-improve-1-2

 

=(イコール)

unrealengine4-mmd-improve-1-3

 

MMDを起動した時にMMDBridgeという項目がメニューにあればOK!

unrealengine4-mmd-improve-1-4

 

 

2.MMDでVMDを出力する

VMDを出力する方法はこちらの動画で詳しく説明されているので、2章の内容で分かりにくい部分は動画を参考にして下さい。

 

【MMDBridge】 VMD出力機能
http://www.nicovideo.jp/watch/sm26236562

 

2.1 モデルを読み込む

起動時に上部メニューにMMDBridgeが表示されていることを確認して下さい。下部メニューの「モデル操作」からモデルデータを読み込みます。私は前回の記事同様「クロエ・ルメール.pmx」を読み込みました。

unrealengine4-mmd-improve-2-1

 

unrealengine4-mmd-improve-2-2

 

 

2.2 モーションデータを読み込む

モーションデータは「ファイル>モーションデータ読込」から読み込みます。スクリーンショットのモーションは、前回の記事でも利用した「11.やったぁ」というモーションです。ちなみに複数のモーション一気に読み込むことも可能でしたが、モーションを出力してUnreal Engineにインポートするときにアニメーションシーケンスが1つになってしまいますので、分けたい場合は読み込むモーションは1つにした方が良さそうです。また、MMDにモーションを読み込むと、現在のフレーム位置に挿入されるので注意が必要でした。

unrealengine4-mmd-improve-2-3

 

 

2.3 VMDを出力する(物理/IKのみ)

VMDを出力するためにMMDBridgeを使います(上部メニューのMMDBridgeからプラグイン設定をクリック)。ここで出力されるVMDをUnreal Engineにインポートする訳ではないので注意が必要です。MMDBridgeによって出力されるVMDは物理演算情報とIK情報のみが入っているとのことです。MMDBridgeのプラグイン設定では、使用するスクリプトに「mmdbridge_vmd.py」を選択し、出力対象フレームに0~40(読み込んだモーションの最大フレーム数)に設定しました。

unrealengine4-mmd-improve-2-4

 

上記の設定ができたら「ファイル>AVIファイルに出力」からVMDを出力します。

unrealengine4-mmd-improve-2-5

 

こちらでもフレームを0~40に設定します(MMDBridgeのプラグイン設定と同じにしないとダメっぽいです)。その他の設定は特に触らなくてOKでした。

unrealengine4-mmd-improve-2-6

 

出力完了!

unrealengine4-mmd-improve-2-7

 

今回はoutフォルダをAVIファイルの出力先に設定していました。同ディレクトリにVMDが生成されていることを確認できます。

unrealengine4-mmd-improve-2-8

 

 

2.4 VMD(物理/IKのみ)を適用する

2.3章で生成したVMDをフレーム部分にドラッグアンドドロップして、物理演算情報とIK情報を適用します。この操作で情報を読み込むと、現在のフレーム位置に挿入されるので注意が必要でした。

unrealengine4-mmd-improve-2-9

 

 

2.5 VMDを出力する

ここで出力するVMDをUnreal Engineにインポートします。VMDを出力する前に各フレームを選択しておきます。「編集>ボーンフレームすべて選択」、「編集>表情フレームすべて選択」、「編集>表示・IK・外観フレームすべて選択」をそれぞれ実行します。

unrealengine4-mmd-improve-2-10

 

上記の選択が完了したら「ファイル>モーションデータ保存」からVMDを出力します。ここで出力するVMDの名前は、PMXの名前と被らないようにする必要がありました。同じ名前だった場合は、正常にUnreal Engineにインポートできずクラッシュしてスケルタルメッシュが消滅しました\(^o^)/

unrealengine4-mmd-improve-2-11

 

クロエ・ルメール_ジャンプ.vmd」としてみました。

unrealengine4-mmd-improve-2-12

 

 

3.Unreal Engineにインポートする

3.1 PMXとVMDをインポート

モデルをUnreal EngineにPMX形式でインポートする方法については前回の記事を参考にして下さい。コンテンツブラウザを開き、モデルをインポートしたフォルダにVMDをインポートしました。

unrealengine4-mmd-improve-3-1

 

インポートオプションではインポートしたモデルのスケルトンを選択します。ここで、「Import Morph Targets」や「Import Materials」、「Import Textures」にチェックが入っていない場合は、PMXをインポートした時にチェックが入っていない事などが考えられます。その時はPMXをもう一度インポートし直します。

unrealengine4-mmd-improve-3-2

 

無事にインポートできると、コンテンツブラウザ内にアニメーションシーケンスが生成されているので開くと…

unrealengine4-mmd-improve-3-3

 

 

3.2 既存アニメーションとの比較

アニメーションにモーフ情報が入っているため前回の記事で作成したアニメーションと比較すると、より自然な感じになっていることが分かりました。アニメーションコンポジットを作るので問題はないのですが、今回のアニメーションシーケンス作成方法の場合、なぜか無駄なアニメーションフレームが入っていました。

 

 

以前のアニメーションシーケンス作成方法

unrealengine4-mmd-improve-3-4

 

 

今回のアニメーションシーケンス作成方法

unrealengine4-mmd-improve-3-5

 

 

4.まとめ

アニメーションにモーフ情報が入っているため、キャラクターの特徴を引き出すことができたように思えます。欲を言えばPMXのインポート時にマテリアル情報が落ちなければといったところです。MMDでモデルを読み込んだ時の状態のまま、Unreal Engineにインポートできるとものすごく良いですね。

LINEで送る
Pocket

おすすめ記事