2016年8月26日金曜日

UE4でMMDモデルを読み込む方法

UnrealEngine4でMikuMikuDance向けのモデルを読み込む方法は以下のとおりです。
使用するモデルによってはMMD系列以外での使用を禁止する物がありますので、
ご注意ください。
1.IM4Uを使用する。
 この動画のようになります。プラグインなどを導入し、MMDBridgeを用いるので少々めんどくさいですし、IK周りが少々おかしい場合がありますが、マテリアルを自動で組んでくれて、一度使ったモデルを使いまわせるのが利点ですね。
2.Alembicを用いる。 
これは先ほど使用したMMDBridgeを用いますが、私の環境、Windows10 64bit,i5-4460,DRAM8GB,GTX960 VRAM2GBではDRAMが足りないかしてクラッシュしました。
更に言うと、MMDBridgeから直接出したAlembicは使えず、Blender2.78 TB2で読み込み、書きだしたものを使用しました。50フレーム程度ならスケルタルでキチンと動きましたが、1200となると動きませんでした。
32GBなどの大容量のメモリを積んでいると動作が可能みたいです、きしめんAllstarで25GBだそうです。
また、daeやfbxに変換しようにも形式があっていないせいかして上手く行きませんでした。
また、mddファイルに書き出す作戦ではあまりにも容量が大きく、変換するソフトがごねて動かなくなり、クラッシュしました。
要検証なので、皆さんのコメントをいただけると嬉しいです。
3.pmx2fbxを使用する。
非常にシンプルですが、まぁまぁUE4では後処理が面倒なのであまり好きじゃないです。
とは言え、非常に確実です。

なので、おすすめ順としては1>3>2です。
ただ、正確性を求めるのであれば2のalembicを用いた方法でmayaやhoudiniなどのゲームエンジンに直接フック出来るソフトを用いての使用がおすすめです。

今回の動画で使用しようと思ったモデルはSPSさん作成のなつちゃん、以下なっちゃんです。



このモデルは非常に複雑で大量のIKが仕組まれており、1の方法では哀れな姿になりました。
2の方法では先程述べたとおりUE4では使えないですが、統合型ソフトでレンダリングするにはいいかと思います、これが一番早く、正確です。
結果として3番を利用しましたが、後処理がめんどくさいです^^;
しかし、非常に目立つエラーはなくほぼ見た感じキチンと動いています。

現時点ではalembicはどちらもテスト版(2016/8/26現在)なので 、今後に期待ですね。