MMDモデルを3DCGソフトに持っていく方法【MMDBridge使用】

ブログリレー'20夏

モーションさせたMMDモデルを外部3DCGソフト(Cinema4D)に持っていく方法 【MMDBridge使用】

Model:ぽんぷ長式初音ミク/ぽんぷ長

目次

  1. この技術でできること
  2. MMDBridge導入
  3. モデルの下準備
  4. MMDからのエクスポート
  5. CGソフトにインポート
  6. まとめ
  7. 最後に

1.この技術でできること

まず初めに、この技術によって何が可能になるかということを説明します。 最も単純に言うと、「MMD上でモデルにモーション、シミュレーションを行い、それをそのまま3DCGソフト(MAYA/3DSMAX/Cinema4D/Blenderなど)にインポートする技術」です。特にC4Dについて説明します。ただ他ソフトであってもある程度学べることがあると思うので、そういったことも考慮して描きたいと思います。 これの強みとして一番に挙げられることは、MMD上でモーションを流し込み、シミュレーションさせて、CGソフトでマテリアル調整をするという工程が可能になることです。一からモーションを作るというのは非常に難しく、流し込みができるならそうした方が非常に楽です。また、BlenderやC4Dであればリグ付きのMMDモデルをインポートすることは可能ですが、当たり前ですがシミュレーションのセットアップはされていないので、そこに新たに再設定するのはまた知識と時間が膨大にかかります。MMDモデルはすでにMMD用のシミュレーションがしっかり設定されています。よって、シミュレーションも極力MMD上で行った方が良いと考えられます。 弱点として挙げられる点は、一番大きなものとして「CGソフト上で大きなモーション・ポーズ変更はできない」です。当たり前ですがMMDからエクスポートするときにポリゴンをベイクするので、大きな変更はできません。ただ、C4D上でデフォーマを使って変形させることは可能なので、後から修正したくなったときはそういったことでなんとか対応できなくはないです。  もう一つ「MMDBridgeのAlembicファイル出力に対応していないソフトは少し面倒」ということがあります。現時点で対応していのは、Blender/Cinema4D/Houdini/Maya2014/Maya2015/3dsmax/Guerilla Renderということです。私はC4Dしかやったことないので他のソフトは未検証です。またこの他にもいくつかのレンダーに対応しているらしいので、興味ある方は試してみてください。これらのソフト以外でも、OBJ連番出力も可能です。AfterEffects Plugin / Element3D でインポート可能なのは確認しました。ただかなり重かったです。

2.MMDBridge導入

さて、それではいよいよ導入に入っていきます。こちらのサイト(https://mmdbridge.vec4d.xyz/%E3%83%9B%E3%83%BC%E3%83%A0) からMMDBridgeをダウンロードしてください。サイトの「使い方」を見て、MMDに導入してください。 ここで一つ注意ですが、MMDは新しくダウンロードしなおして、元々使っていたものと分けてください。理由としてはMMDBridgeが他のMMDpluginと競合するらしいからです。何もインストールされていないものを落としてきて、今まで使っていたMMDと分かりやすく分けるようにしましょう。ちなみに、僕が使っているバージョンは、MMDが 64bit版 Ver9.31、MMDBridgeが 64bit版 Ver 0.71です。これで正常に動いてます。 ということでMMDとMMDBridgeをダウンロードできたら、どちらも解凍して、MMDの中のMIkuMikuDance.exeと同じ階層にMMDBridgeの中身をコピーペーストしてください。 そしてMMDを起動して、上のバーのところにMMDBridgeの表示が出ていればインストール成功です。出ていなければサイトに書いてある「使い方」を再読しましょう。一応ですが、MMDBridge以外に他のプラグインの表示がないことを確認してください。

3. モデルの下準備

次に下準備です。この工程は場合によっては省略しても構いませんが、ここを怠るとCGソフトへのインポートが上手くいかなかったり、インポートが上手くいっても結果が上手くいかなかったりするのでしっかり行いましょう。 まずテクスチャの修正です。MMDのテクスチャは色々な拡張子があるんですが、CGソフトは基本pngやjpg(のはず)なので、変換しておきましょう。また、テクスチャ名称が日本語のものは文字化けしてAlembicのスクリプトが上手く動作しないので、すべて半角英数字に変えておきましょう。それらが終わったら、PMXEditorでテクスチャのファイルパスを修正したものに変えます。 Texのところのテクスチャを半角英数字.png/.jpgに変更する。スフィアやトゥーンは3DCGソフトでは扱わないので無視して良い

次に材質の編集です(一応言っておきますが、MMDにおける材質とは3DCGソフトにおけるマテリアルと同義です)。Alembicでの出力では、C4DやHoudiniの場合材質ごとにメッシュが分けられて出力されます。OBJ連番ではメッシュが一つになって出力されます。そういう点もありAlembicの方が取り回しがしやすいので基本Alembicで出力するんですが、材質ごとに分けられることでいろいろと困ることがあります。なのでそういうことが起きないように、事前に材質を編集して後々困らないようにしておきます。PMXEの材質編集の方法においてはこちらのサイト(https://ch.nicovideo.jp/spectacler/blomaga/ar733632 )がおススメです。また、Blender使えるのならmmd_tools使って編集するのもいいかもしれません。 ・材質を素材ごとに分ける 材質を後々のことを考えて分けます。材質分けが元々しっかりしているモデルであったら必要ないかもしれません。また、3DCGソフトの工程に行ってもテクスチャで分けることもできるのであまり重要ではないかもしれません。 ・顔と体パーツを一つの材質にする MMDではしばしば顔の材質が分かれていることがあります。これを分けたままで3DCGソフトで、顔のマテリアルにSSS(内部拡散反射)を設定すると、材質の分かれる場所で線が引かれてしまいます。考えてみれば当たり前のことで、SSSはそのマテリアルが設定されているオブジェクトの形状や深さから計算しているので、顔がパーツごとに分けられていると思ったように計算してくれません。よって、この工程は非常に重要です。 また顔のパーツももちろんのこと体のパーツも全部一緒の材質にしておくと、首のところにSSSの線が出ないようにできます。ただ、しばしば顔と体のテクスチャは分かれていることが多いので、PMXEで顔と体の材質を全て一つにまとめて、MMDの工程で顔&体のオブジェクトにどちらかのテクスチャを設定しておいて、3DCGソフトにインポートしたときに顔&体のオブジェクトに顔と体のマテリアルを再設定するというゴリ押しみたいな方法でできます。 同様に、SSSを設定するマテリアルでは上記のようなことを考えて予め材質の編集を行っておくといいでしょう。ここまで書きましたが、Alembicインポートのオブジェクトの扱いはソフト/レンダラによって仕様が異なる(はず)なので細かいことはご自分で検証してください。Cinema4D R21 / Redshiftではこれで上手くいきました。 最後に編集を行ったモデルを保存します。当たり前ですが上書きしないようにね!

4. MMDからのエクスポート

その次に、MMDからのエクスポートです。この工程は、モーション修正以外ほぼMMDBridgeの使い方に沿ってもらっても構わないです。一応軽く説明をしておきます。 MMDモデルやその他のステージ、アクセサリをD&Dします。モーション付けるなり、流し込むなりします。モーフは特殊なもの(UV移動など)でなければちゃんと反映してくれるはずなので心配なく。またAlembic出力の場合はカメラモーションも持っていくことができます。カメラ編集モードにしてから出力することをお忘れなく。ここで、モーション修正を行います。何度もアニメーションを確認して、できるだけ貫通がないようにモーションを修正してください。3DCGソフトでは、MMDより正確にシェーディングされるので、めり込みや破綻があるとより目立ちます。後からの修正というのもなかなか難しいので、めんどくさがらずにしっかりやりましょう。 全てアニメーションを付け終わったら、MMDBridgeの設定をします。MMDの上帯にあるMMDBridgeを右クリックして、設定ウィンドウを開きます。扱うソフトを選択、実行するにして、対象フレームを設定します。ここで、0フレームを範囲内にすると出力したときに0フレームだけバグることがあるらしいです。僕は起きたことないです。 設定し終わったら、次に出力サイズを弄ります。上の帯から表示を右クリック、一番上の出力サイズで設定します。MMDBridgeはMMDが動画を出力するときに実行される仕組みになっているので、動画本体は特に必要ないものになります。よって、動画はできるだけ小さくするのが推奨です。ただでさえAviファイルは容量食うので。僕は128*72で出しています。 そして出力する前に一つ確認することがあります。エクスプローラーを開いて、MMDBridgeの方のMMDのフォルダを開いて、~/MikuMikuDance_v931x64/outを開いてください。この中に何も入ってないのを確認してください。中に何かファイルが入ってると上手くいかないので、出力する前に空にするか他の場所に移動しておいてください。 最後に出力です。上の帯からファイルを選択し、Aviファイルを出力を選択して、適当に設定してエンコードしてください。当たり前ですが出力時のフレームレートの設定は、MMDBridgeの設定と同一のものにしてください。Alembic出力の場合は最初に少し時間がかかってからそこからすぐ終わります。obj連番の場合は毎フレーム時間かかるのでレンダリングが長くなります。

5. 外部CGソフトにインポート

やっと外部CGソフトのところまで来られました。ここからは基本Cinema4Dでの解説になります。他ソフトの方はMMDBridgeの配布元サイトの各ソフトの使い方を参照してください。ただ、そこに書かれていない落とし穴もあるので一応ここも読んでおいた方がいいかもしれません。 先ほど開いたoutファイルを開いてください。出力でできた.abcファイルやテクスチャがそこにあるはずです。この.abcファイルをC4DにD&Dします。特にインポート設定は弄らなくて大丈夫ですが、少しスケールが小さいので5~10ぐらいを入れた方がいいかもしれません。 これでビューポート上にMMDモデルがやっと現れます。ただこの状態のままだとマテリアルが貼られてないのでデフォルトポリゴンのままdす。ここからテクスチャを自動で入れていきます。C4Dの一番上の帯から、機能拡張→ユーザースクリプト→スクリプトを実行を選択して、MMDBridgeの方の ~/MikuMikuDance_v931x64/alembic_assign_scripts/c4d.py を選択してください。 するとファルダーの参照という小窓が出てきます。そこでMMDBidgeの方の MikuMikuDance_v931x64/out を選択してOKを押してください。これで一気にマテリアルが付くはずです。ここで一つ気を付けることがあって、outファイル以外は上手くいかないということです。outファイルの中身を別階層のファルダに入れて、スクリプト実行のときにそのフォルダを選択してもスクリプトは実行されません。これだけは気をつけてください。つまり相対パスがこのoutのところに設定されているので、後々めんどくさいことが起こらないようにパスを変更しておくことも大事です。 ということで、ほぼ全ての工程は終わりです。お疲れ様でした。ここからはC4DにおけるAlembicオブジェクトの扱いについてちょっと書きます。 今の状態だと、このようにオブジェクトのアイコンの左下にaがついていて、この状態のままだとポリゴンモードにしても弄れません。 一回このAlembicオブジェクトを全選択して、「編集可能にする」コマンドを押します。すると各オブジェクトが子になって親にヌルが付きます。これをまた全選択して、「子階層は残して消去」コマンド(見当たらない人はUI上の余白を左クリック→コマンドをカスタマイズ→検索→「子階層は残して消去」をUI上に追加)を選択してください。これで下のSSのようになったはずです。 このときモーションデータはAlembicタグで管理されます。また頂点追加などはできませんが、移動などは可能になります。Alembicタグを見ると分かりますが、これに.abcファイルが参照されていてそこからモーションデータを取ってきているんですね。なので、.abcファイルを消すとモーションしなくなるのでちゃんと管理しておいてください。outファイルから移動して、パスも変更しておくことを推奨します。 後は、現状オブジェクト名が xform_0_material_n となっているのでリネームして整理した方がいいかもしれません。必要ないモーフのオブジェクトとかもあるので削除した方がいいこともあります。ここは個人の裁量の問題ですが。

6. まとめ

外部CGソフトへのインポート、上手くできたでしょうか。やはりこの方法は比較的簡単ですし、いい結果が生まれると思っています。ただ、大きなモーションの修正ができないことや外部CGソフト内で何かのオブジェクトと干渉させるときは難しいなど、いくつかのデメリットがあります。そういう点を考慮して使いましょう。 また、フリープラグインなので、現状のソフトに対応していないこともあります。Cinema4DではR20、R21でしっかり動くことを確認していますが、他ソフトは確認できていません。上手く行かなかったらバージョン変更してリトライしてみてください。

7. 最後に

最後になりますが、一番大事なことがあります。MMDは借り物文化です。MMDを扱うときは必ずReadmeを確認して規約を守って、制作者の名前をしっかり表記して感謝して利用しましょう。改変してはいけない、MMD外で使ってはいけない、というモデルもしばしばあるのでしっかり守りましょう。 また、こちらは宣伝になりますが、こちらのYoutubeリンク(https://www.youtube.com/watch?v=q5fSCdj0bxs )の一番初めのリンクにて、このMMDBridgeの使い方説明や、その他の「MMDを他ソフトで扱う方法」について説明しています。気になる方は見てみてください。 以上です。駄文でしたがここまで読んでくださってありがとうございました。