Unreal Engine4でMMDモデルに表情を付ける方法
以前にもMMDBridgeを使ったVMD出力を試みましたが、AVI出力時に100%クラッシュしていたので記事に出来ませんでした。ところが32bit版のMMDBridgeを使うと、うまい具合にVMDの出力とUnreal Engine4へのインポートが出来た次第です。(利用PCは64bitです)
本記事で出来ること
・マテリアル関連付け作業をスキップ
・モーフ情報を持ったモーションの適用
1.MMDとMMDBridgeをダウンロードする
1.1 MMDとは
参考:ニコニコ大百科
上記の樋口M氏のホームページよりMMD(MikuMikuDance)をダウンロードします。私の環境では、「MikuMikuDance(DirectX9 Ver)」で正常に起動することを確認できました。
1.2 MMDBridgeとは
参考:公式サイト
公式サイトより「MMDBridge ver 0.69 Alembic(32bit)」をダウンロードしました。私の環境では64bit版にてデータを出力すると、100%クラッシュしてしまいました。
1.3 MMDのメニューにMMDBridgeを追加
公式サイトにも使い方は載っていますが、MMDのメニューにMMDBridgeを表示させるためには、ダウンロードしたMMDとMMDBridgeのフォルダ内容を同じディレクトリに入れてしまえばOKです。
MMDフォルダ内容
+(プラス)
MMDBridgeフォルダ内容
=(イコール)
MMDを起動した時にMMDBridgeという項目がメニューにあればOK!
2.MMDでVMDを出力する
VMDを出力する方法はこちらの動画で詳しく説明されているので、2章の内容で分かりにくい部分は動画を参考にして下さい。
【MMDBridge】 VMD出力機能
http://www.nicovideo.jp/watch/sm26236562
2.1 モデルを読み込む
起動時に上部メニューにMMDBridgeが表示されていることを確認して下さい。下部メニューの「モデル操作」からモデルデータを読み込みます。私は前回の記事同様「クロエ・ルメール.pmx」を読み込みました。
2.2 モーションデータを読み込む
モーションデータは「
2.3 VMDを出力する(物理/IKのみ)
VMDを出力するためにMMDBridgeを使います(上部メニューのMMDBridgeからプラグイン設定をクリック)。ここで出力されるVMDをUnreal Engineにインポートする訳ではないので注意が必要です。MMDBridgeによって出力されるVMDは物理演算情報とIK情報のみが入っているとのことです。MMDBridgeのプラグイン設定では、使用するスクリプトに「mmdbridge_vmd.py」を選択し、出力対象フレームに0~40(読み込んだモーションの最大フレーム数)に設定しました。
上記の設定ができたら「ファイル>AVIファイルに出力」からVMDを出力します。
こちらでもフレームを0~40に設定します(MMDBridgeのプラグイン設定と同じにしないとダメっぽいです)。その他の設定は特に触らなくてOKでした。
出力完了!
今回はoutフォルダをAVIファイルの出力先に設定していました。同ディレクトリにVMDが生成されていることを確認できます。
2.4 VMD(物理/IKのみ)を適用する
2.3章で生成したVMDをフレーム部分にドラッグアンドドロップして、物理演算情報とIK情報を適用します。この操作で情報を読み込むと、現在のフレーム位置に挿入されるので注意が必要でした。
2.5 VMDを出力する
ここで出力するVMDをUnreal Engineにインポートします。VMDを出力する前に各フレームを選択しておきます。「編集>ボーンフレームすべて選択」、「編集>表情フレームすべて選択」、「編集>表示・IK・外観フレームすべて選択」をそれぞれ実行します。
上記の選択が完了したら「ファイル>モーションデータ保存」からVMDを出力します。ここで出力するVMDの名前は、PMXの名前と被らないようにする必要がありました。同じ名前だった場合は、正常にUnreal Engineにインポートできずクラッシュしてスケルタルメッシュが消滅しました\(^o^)/
「クロエ・ルメール_ジャンプ.vmd」としてみました。
3.Unreal Engineにインポートする
3.1 PMXとVMDをインポート
モデルをUnreal EngineにPMX形式でインポートする方法については前回の記事を参考にして下さい。コンテンツブラウザを開き、モデルをインポートしたフォルダにVMDをインポートしました。
インポートオプションではインポートしたモデルのスケルトンを選択します。ここで、「Import Morph Targets」や「Import Materials」、「Import Textures」にチェックが入っていない場合は、PMXをインポートした時にチェックが入っていない事などが考えられます。その時はPMXをもう一度インポートし直します。
無事にインポートできると、コンテンツブラウザ内にアニメーションシーケンスが生成されているので開くと…
3.2 既存アニメーションとの比較
アニメーションにモーフ情報が入っているため前回の記事で作成したアニメーションと比較すると、より自然な感じになっていることが分かりました。アニメーションコンポジットを作るので問題はないのですが、今回のアニメーションシーケンス作成方法の場合、なぜか無駄なアニメーションフレームが入っていました。
以前のアニメーションシーケンス作成方法
今回のアニメーションシーケンス作成方法
4.まとめ
アニメーションにモーフ情報が入っているため、キャラクターの特徴を引き出すことができたように思えます。欲を言えばPMXのインポート時にマテリアル情報が落ちなければといったところです。MMDでモデルを読み込んだ時の状態のまま、Unreal Engineにインポートできるとものすごく良いですね。