2015年9月11日金曜日

MMDBridgeを使用したobj連番出力によるMMDモデル & モーションのAfterEffects(Element 3D)連携 その3

中々簡単にはいかないことが分かったMMDBridgeを使用してのMMDとElement3Dの連携ですが、ありがたいことにMMDBridgeの作者である八田和磨様よりリプライをいただきました。

それを参考に切り分け作業をやってみたところ、紹介した時のようにお手軽ポンって訳にはいきませんでしたが、かなりのケースで問題回避できることがわかったので、備忘録的ご紹介。

1 いただいたリプライの内容
中身のテクスチャが日本語名だとうまくいかないのと、1回出力してもう1回出力するとうまくいかないので、常に起動しなおして出力いただけると回避できるかもしれません

2 切り分け作業
2.1 試したモデル
・初音ミク.pmd(標準モデル)
・Tda式初音ミク・アペンド_Ver1.00.pmx
・Appearance Miku.pmx
・Lat式ミクVer2.31_Normal.pmd

2.2 使用したモーション
・走歩ス3.0 S02_IK_スキップ_s1000_p28.vmd

2.3 実験内容
・MMM起動
・モデル読み込み
・モーション読み込み
・モーション保存
・MMD起動
・モデル読み込み
・MMMで保存したモーション読み込み
・avi、obj出力(フレーム:0-100、fps:30fps、解像度:192*108、コーデック:未圧縮)

これで出力されたobjシーケンスを、
・MMDBridgeから出力されたものをそのままE3Dに読み込み
・モデルのフォルダからテクスチャをコピー
 png以外のテクスチャをpngに変換(.spaと.sphは拡張子をbmpに変更してから変換)
 シーケンス先頭のmtlファイルのテクスチャの拡張子でpngでないものをpngに置換
 E3D読み込み
の2パターンでインポート

また、前提条件として、MMM及びMMDは、モデルを変更する前に起動し直しています。

3 結果
3.1 初音ミク.pmd(標準モデル)
3.1.1 MMDBridgeから出力されたものそのまま

真っ黒。マテリアルも真っ黒。

3.1.2 テクスチャを色々準備したもの

変わらず。標準モデルは時代から、spaと.sphが多用されており、mtlファイルを見ると、これらがまったく出力されていない様子。

3.1.3 テクスチャを少しだけ手作業で適用してみた。













少しだけマシになった。でも面倒だし、何となく適用してみたけど、テクスチャどれか分からないし、オフセットも分からないから、手作業はちょっと無理があるかも。

3.2 Tda式初音ミク・アペンド_Ver1.00.pmx
3.2.1 MMDBridgeから出力されたものそのまま













やっぱり真っ黒。モデルからテクスチャ持ってこないと基本ダメっぽい。

3.2.2 テクスチャを色々準備したもの













お!やっとまともな表示に。
mtlファイル内部のテクスチャが全部指定されており、そのファイルが全て存在していると上手くいく模様。当たり前といえば当たり前ですが。

3.3 Appearance Miku.pmx
3.3.1 MMDBridgeから出力されたものそのまま













最初にあぴミクさんを選んだので、簡単に上手くいくと思ってしまったのですが、このモデル、もともとテクスチャが全てpngだった上、MMDBridgeのパイプラインに日本語がいなかったのか知りませんが、ファイル名も正常に出力されていたため、何もしなくても綺麗に表示されていたのでした。

3.3.2 テクスチャを色々準備したもの













元々綺麗に表示されているので、変わりません。

3.4 Lat式ミクVer2.31_Normal.pmd
3.4.1 MMDBridgeから出力されたものそのまま













怖いってwww
中途半端にpngとbmpが混じっているのでこうなります。顔の一部だけテクスチャ適用できてますね。

3.4.2 テクスチャを色々準備したもの













おしいけど、やっぱり怖いってwww
目のテクスチャだけ適用が上手くいっていないのでこんな感じに。

4 結論
いくつかの手順を踏めば何とか使えるかな。
・MMDBridgeの出力を行うたびにMMDを再起動する。
・テクスチャの出力は当てにせず、モデル配下のテクスチャをコピーして持ってくる。
・Element3Dはpng、jpg、hdr、exr以外のテクスチャに対応していないので、bmp等の非対応フォーマットのファイルはpng等の対応フォーマットに変換する。
・シーケンス先頭のmtlファイルをテキストエディタで開き、テクスチャの拡張子を先ほどの変換フォーマットに合わせて編集する。
・MMD独自形式テクスチャの.spaと.sphはMMDBridgeでは出力できなさそうなので、spaと.sphファイルの拡張子をbmpに変更し、pngに変換、さらにElement3D側で手作業でマテリアル配置を行う必要がある。
・obj読み込みのパスに2バイト文字が入ってはいけない。
・これだけやっても、相性の悪いものもある。Element3Dは全てのポリゴンを三角ポリゴンに変換してしまうらしく、その辺りにも原因が?

5. 終わりに
・趣味の日曜動画制作者にはCinema4DやらMayaやらはさすがに金額的に荷が重いのですよ。
・ANDREW氏ならきっとAlembicフォーマットのインポートを作ってくれる、はず…。Toonレンダリングもお願いします。
・MMM版MMDBridgeがほしいな・・・(独り言)

1 件のコメント:

  1. 初歩的な質問かもしれませんが「・テクスチャの出力は当てにせず、モデル配下のテクスチャをコピーして持ってくる。」これはどういうことでしょうか。

    返信削除