見出し画像

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

サムネモデル:ぽんぷ長式初音ミク/ぽんぷ長

※注意※

この方法を試す前に試してみるMMDモデルのReadmeをしっかり読んでください。モデルの中にはMMD等ソフト以外に持っていっていけないものもあります。その場合はもちろんダメなのでMMDで遊びましょう。特に問題ないようであっても、しっかりと規約を守り、制作者さまからお借りしていることを忘れずに使用しましょう。

目次

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

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

 まず初めに、この技術によって何が可能になるかということを説明します。 最も単純に言うと、「MMD上でモデルにモーション、シミュレーションを行い、それをそのまま外部3DCGソフトにインポートする技術」です。特にCinema4Dについて説明します。ただ他ソフトであってもある程度学べることがあると思うので、そういったことも考慮して書きたいと思います。

 途中PmxEditorや MikuMikuDanceを使う工程があります。この記事では基本ある程度MMDを触ったことがある人向けで書いてあるので、あまり触ったことがない方はとりあえずPmxEやMMDを導入してから始めてください。

 MMDBridgeを使うメリット

これの強みとして一番に挙げられることは、MMD上でモーションを流し込み、シミュレーションさせて、CGソフトでマテリアル調整をするという方法が可能になることです。もちろん他3DCGソフト上でボーン付きのMMDモデルをインポートしてそれを動かすということは可能です。Blenderならmmd_tools、Cinema4DではMMD ToolというPluginが可能にします。しかし、一からモーションを作るというのは非常に難しく、流し込みができるならそうした方が非常に楽です。また、当たり前ですがシミュレーションのセットアップはされていないので、そこに新たに再設定するのはまた知識と時間が膨大にかかります。しかしMMDモデルはすでにMMD用のシミュレーションがしっかり設定されています。よって、シミュレーションも極力MMD上で行った方が良いと考えられます。 

MMDBridgeを使うデメリット

弱点として挙げられる点は、一番大きなものとして「CGソフト上で大きなモーション・ポーズ変更はできない」です。当たり前ですがMMDからエクスポートするときにモーションをベイクするので、外部CGソフトの工程で「このモーション変更したい」となってもできません。ただ、デフォーマやモディファイア(?)を使って変形させることは可能なので、後から修正したくなったときはそういったことでなんとか対応できなくはないです。そしてもう一つ、「MMDBridgeのAlembicファイル出力に対応していないソフトは少し面倒」ということがあります。現時点で対応しているのは、Blender/Cinema4D/Houdini/Maya/3dsmax/Guerilla Renderです。私はC4Dしかやったことないので他のソフトは未検証です。またこの他にもいくつかのレンダーに対応しているらしいので、興味ある方は検証してみてください。またAlembic出力以外でもOBJ連番出力が可能です。AfterEffects Plugin / Element3D でインポート可能なのは確認しました。ただかなり重かったです。

2.MMDBridge導入

さて、それではいよいよ導入に入っていきます。こちらのサイト からMMDBridgeをダウンロードしてください。ここで一つ注意ですが、MMDは新しくダウンロードしなおして、元々使っていたものと分けてください。

理由としてはMMDBridgeが他のMMDpluginと競合するらしいからです。何もインストールされていないものを落としてきて、今まで使っていたMMDと分かりやすく分けるようにしましょう。ちなみに、僕が使っているバージョンは、MMDが 64bit版 Ver9.31、MMDBridgeが 64bit版 Ver 0.71です。これで正常に動いてます。 

ということでMMDとMMDBridgeをダウンロードできたら、どちらも解凍して、MMDの中のMikuMikuDance.exeと同じ階層にMMDBridgeの中身をコピーペーストしてください。 そしてMMDを起動して、上のバーのところにMMDBridgeの表示が出ていればインストール成功です。出ていなければサイトに書いてある「使い方」を再読しましょう。一応ですが、MMDBridge以外に他のプラグインの表示がないことを確認してください。

コメント 2020-08-28 013525

3. モデルの下準備

次に下準備です。この工程は場合によっては省略しても構いませんが、ここを怠ると外部CGソフトへのインポートが上手くいかなかったり、インポートが上手くいっても結果が上手くいかなかったりするのでしっかり行いましょう。 

テクスチャの修正

まずテクスチャの修正です。MMDのテクスチャは色々な拡張子があるんですが、CGソフトは基本pngやjpg(のはず)なので変換しておきましょう。また、テクスチャ名称が日本語のものは文字化けしてAlembicのスクリプトが上手く動作しないので、すべて半角英数字に変えておきましょう。それらが終わったら、PMXEditorでテクスチャのファイルパスを修正したものに変えます。

コメント 2020-08-29 033708

↑ Texのテクスチャを半角英数字.png/.jpgに変更する。スフィアやトゥーンは3DCGソフトでは扱わないので無視して良い

材質の編集

次に材質の編集です(一応言っておきますが、MMDにおける材質とは3DCGソフトにおけるマテリアルと同義です)。Alembicでの出力では、C4DやHoudiniの場合材質ごとにメッシュが分けられて出力されます。OBJ連番ではメッシュが一つになって出力されます。よって、メッシュが分かれているAlembicの方が取り回しがしやすいので基本Alembicで出力するんですが、材質ごとに分けられることでいろいろと困ることがあります。そういうことが起きないように、事前に材質を編集して後々困らないようにしておきます。PMXEの材質編集の方法においてはこちらのサイトがおススメです。また、Blender使えるのならmmd_tools使って編集するのもいいかもしれません。

 ・材質を素材ごとに分ける・・・材質を後々のことを考えて分けます。材質分けが元々しっかりしているモデルであったら必要ないかもしれません。また、3DCGソフトの工程に行ってもマテリアルで分けることもできるのであまり重要ではないかもしれません。

 ・顔のパーツを一つの材質にする・・・MMDではしばしば顔の材質が分かれていることがあります。これを分けたままで、3DCGソフトで顔のマテリアルにSSS(内部拡散反射)を設定すると、材質の分かれている場所(つまりメッシュが分かれている場所)で線が引かれてしまいます。考えてみれば当たり前のことで、SSSはそのマテリアルが設定されているオブジェクトの形状や深さから計算しているので、顔が材質ごとに分けられていると思ったように計算してくれません。よって、この顔材質を一つの材質にしておくという工程は非常に重要です。 また顔のパーツももちろんのこと体のパーツも全部一緒の材質にしておくと、頭と体の繋ぎ目、つまり首のところにSSSの線が出ないようにできます。ただ、しばしば顔と体のテクスチャは分かれていることが多く、二つの材質でなければならないことがあります。これは、PMXEで顔と体の材質を全て一つにまとめて、顔&体の新規材質にどちらかのテクスチャを設定しておいて、3DCGソフトにインポートしたときに顔&体のオブジェクトに顔と体のマテリアルを再設定するというゴリ押しみたいな方法でできます。 同様に、SSSを設定する別のマテリアルでも上記のようなことを考えて予め材質の編集を行っておくといいでしょう。ここまで書きましたが、Alembicインポートのオブジェクトの扱いはソフト/レンダラによって仕様が異なる(はず)なので細かいことはご自分で検証してください。

Cinema4D R21 / Redshiftではこれで上手くいきました。 最後に編集を行ったモデルを保存します。当たり前ですが上書きしないようにね!

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

その次に、MMDからのエクスポートです。この工程は、モーション修正以外ほぼ配布元サイトのMMDBridgeの使い方に沿ってもらっても構わないです。一応軽く説明をしておきます。

MMDでのアニメーション制作

 MMDモデルやその他のステージ、アクセサリをD&Dします。モーション付けるなり、流し込むなりします。モーフは特殊なもの(UV移動など)でなければちゃんと反映してくれるはずなので心配なく。またAlembic出力の場合はカメラモーションも持っていくことができます。カメラ編集モードにしてから出力することをお忘れなく。(MMDモデル配布場所は基本ニコニ立体、モーションに関してはニコニコ動画で「モーション配布」を検索して気に入ったものを探してください)

モーションの修正

流し込みをした場合ですが、ここでモーション修正を行います。何度もアニメーションを確認して、できるだけ貫通がないようにモーションを修正してください。3DCGソフトではMMDより正確にシェーディングされるので、めり込みや破綻があるとより目立ちます。後から外部CGソフトで修正というのもなかなか難しいので、めんどくさがらずにしっかりやりましょう(モーション修正についてはこちらのサイトが詳細で参考になります)。

MMDBridgeでの設定

 全てアニメーションを付け終わったら、MMDBridgeの設定をします。MMDの上帯にあるMMDBridgeを右クリックして、設定ウィンドウを開きます。扱うソフトを選択、実行するにして、対象フレームを設定します。ここで、0フレームを範囲内にすると出力したときに0フレームだけバグることがあるらしいです。僕は起きたことないです。

コメント 2020-08-29 025724


その他設定

設定し終わったら、次に出力サイズを弄ります。上の帯から表示を右クリック、一番上の出力サイズで設定します。MMDBridgeはMMDが動画を出力するときに実行される仕様になっているので、動画本体は特に必要ないものになります。よって、動画はできるだけ小さくするのが推奨です。ただでさえAviファイルは容量食うので。僕は128*72で出しています。 

そして出力する前に一つ確認することがあります。エクスプローラーを開いて、MMDBridgeの方のMMDのフォルダを開いて、~/MikuMikuDance_v931x64/outを開いてください。この中に何も入ってないのを確認してください。中に何かファイルが入ってると上手くいかないので、出力する前に空にするか他の場所に移動しておいてください。 初めてのときは気にしないでも大丈夫ですが、二回目以降はこれでよくミスります。もしこれをやってしまうと、元々あった.abcファイルに新しいデータもマージされてしまうようで、それを他CGソフトで開くとヒドイことになります。一番気をつけてください。

最後に出力です。上の帯からファイルを選択し、Aviファイルを出力を選択して、適当に設定してエンコードしてください。当たり前ですが出力時のフレームレートの設定は、MMDBridgeの設定と同一のものにしてください。Alembic出力の場合は最初に少し時間がかかってからそこからすぐ終わります。obj連番の場合は毎フレーム時間かかるのでレンダリングが長くなります。

コメント 2020-08-29 031832

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

やっと外部CGソフトのところまで来られました。ここからは基本Cinema4Dでの解説になります。他ソフトの方はMMDBridgeの配布元サイトの各ソフトの使い方を参照してください。ただ、そこに書かれていない落とし穴もあるので一応ここも読んでおいた方がいいかもしれません。

C4Dでのインポート

 先ほど開いたoutファイルを開いてください。出力でできた.abcファイルやテクスチャがそこにあるはずです。この.abcファイルをC4DにD&Dします。特にインポート設定は弄らなくて大丈夫ですが、少しスケールが小さいので5~10ぐらいの値を入れた方がいいかもしれません。

コメント 2020-08-30 212806

MMDBridgeのScript実行

これでビューポート上にMMDモデルが現れます。ただこの状態のままだとマテリアルが貼られてないので、デフォルトポリゴンのままです。ここからテクスチャを自動で入れていきます。C4Dの一番上の帯から、機能拡張→ユーザースクリプト→スクリプトを実行 を選択して、MMDBridgeの方の ~/MikuMikuDance_v931x64/alembic_assign_scripts/c4d.py を選択してください。

コメント 2020-08-30 213403

するとファルダーの参照という小窓が出てきます。そこでMMDBidgeの方の MikuMikuDance_v931x64/out を選択してOKを押してください。これで一気にマテリアルが付くはずです。ここで一つ気を付けることがあって、outファイル以外は上手くいかないということです。outファイルの中身を別階層のファルダに入れて、スクリプト実行のときにそのフォルダを選択してもスクリプトは実行されません。これだけは気をつけてください。つまり相対パスがこのoutのところに設定されているので、後々めんどくさいことが起こらないようにマテリアルに設定されたパスを変更しておくことも考えておいてください。

 ということで、ほぼ全ての工程は終わりです。お疲れ様でした。ここからはC4DにおけるAlembicオブジェクトの扱いについてちょっと書きます。 

C4DでのAlembicオブジェクト取り扱い

今の状態だと、このようにオブジェクトのアイコンの左下にaがついていて、この状態のままだとポリゴンモードにしても弄れません。

コメント 2020-08-30 232957

一回このAlembicオブジェクトを全選択して、「編集可能にする」コマンドを押します。すると各オブジェクトが子になって親にヌルが付きます。これをまた全選択して、「子階層は残して消去」コマンド(見当たらない人はUI上の余白を左クリック→コマンドをカスタマイズ→検索→「子階層は残して消去」をUI上に追加)を選択してください。これで下のSSのようになったはずです。

コメント 2020-08-30 234156

このときモーションデータはAlembicタグで管理されます。また頂点追加などはできませんが、頂点移動などは可能になります。Alembicタグを見ると分かりますが、これに.abcファイルが参照されていてそこからモーションデータを取ってきているんですね。なので、.abcファイルを消すとモーションしなくなるのでちゃんと管理しておいてください。outファイルから移動して、パスを変更しておくことを推奨します。 ちなみに、ポリゴンをいじれることになったことで、頭&体オブジェクトに選択範囲タグを使って二つのマテリアルを設定できるようになりました。

後は、現状オブジェクト名が xform_0_material_n となっているのでリネームして整理した方がいいかもしれません。必要ないモーフのオブジェクトとかもあるので削除した方がいいこともあります。ここは個人の裁量の問題ですが。

6. まとめ

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

7. 最後に

最後になりますが、もう一度大事なことを書いておきます。MMDは借り物文化だということです。MMDを扱うときは必ずReadmeを確認して規約を守って、制作者の名前をしっかり表記して感謝して利用しましょう。改変してはいけない、MMD外で使ってはいけない、というモデルもしばしばあるのでしっかり守りましょう。 

また、こちらは宣伝になりますが、こちらのリンクの一番初めにて、このMMDBridgeの使い方説明や、その他の「MMDモデルを他ソフトで扱う方法」について説明しています。気になる方は見てみてください。 

以上です。駄文でしたがここまで読んでくださってありがとうございました。

この記事が気に入ったらサポートをしてみませんか?