主にMMDやBlenderの個人的なメモ用です。一部に成人向けの内容を含みます!未成年の方はご覧にならないでください!


mmd_toolsでBlenderにMMDモデルを読み込み、プリンシプルBSDFとEEVEEを使ってレンダリングする際の覚え書きです。



ある程度MMDとBlenderの操作に慣れている人向けです。
非効率的な方法を取っていたり間違いがあるかもしれません。

モデルの構造(とくに物理周り)によっては正常に動きません。
PMXエディタでの調整が必要となります。

MMDと比べ、Blenderの方が機能などが豊富ではありますが、一般的にレンダリングや物理演算のベイクに時間がかかる欠点もあります。
Cyclesと比べて高速なEEVEEでもレンダリングに5、6時間かかるケースもありますし、MMDでは簡単に表現できた水面などもBlenderではちょっと面倒です。
それでもMMDにない機能(クロスシミュレーションやソフトボディなど)は魅力的です。

モデルやモーションの規約によっては改造だけでなくMMDとその派生型以外のソフトウェアにモデルを持っていくこと自体を禁止しているものもあります。ご注意ください!!

このページでは黒柚式五劫院ミユモデルを使わせてもらいます。
モーション/カメラモーションは下記の動画の物をお借りします。



2020/05/06 ノードの組み方を修正


EEVEEの設定

EEVEEはデフォルトでは全ての機能が有効ではありません。
必要なオプションだけ有効にしていく方式です。


カラーマネージメントビュー変換標準にします。
今回はアンビエントオクルージョン(AO)にチェックを入れてみます。

立方体サイズを下げると影が柔らかく、上げるとくっきりします。ただし、光源(ライト)がないと効果はありません。
今回はHDRIで済ませてしまうのであまり弄る必要はないです。
Blender2.81ではHDRIのみだと影が生成されません。影が欲しい場合は別途光源(ライト)を用意します。

HDRI+光源あり

HDRI+光源なし

HDRI

HDRIとはMMD風に簡単に言えば光源情報が含まれたスカイボックスという感じです。
"HDRI CC0"などで検索すればフリーなHDRIファイルが配布されています。
ちなみに、blender-[ver]-windows64\[ver]\datafiles\studiolights\worldフォルダ内にデフォルトの.exrファイルがあります。(forest.exrがマテリアルプレビューのデフォルトです)

今回はマテリアルプレビューでデフォルトのforest.exrを使ってみますが、その前にNode Wranglerアドオンを有効化します。

Node Wrangler アドオンの有効化


トップバーの編集プリファレンス...からBlenderプリファレンスウインドウのアドオン→検索欄に”node”と入力し、Node: Node Wranglerのチェックをオンにします。
これでNode Wrangler アドオンが有効化されました。


アドオンを有効化したら、トップバーからShadingタブを開き、画面中央のオブジェクトワールドにします。
背景ノードを選択した状態でCtrl+Tキーを押して環境テクスチャノードの開くから”blender-[ver]-windows64\[ver]\datafiles\studiolights\world\forest.exr”を開きます。

右の画像のようになります。

背景ノードの強さから全体的な強さを調整できます。
マッピングノードの位置回転拡大縮小からそれぞれを操作できます。

モデルの読み込み


トップバーからファイルインポートMikuMikuDance Model (.pmd .pmx)から読み込むか、3Dビュー画面上でNキーを押してプロパティシェルフを出し、MMDタブのModel:下のImportからモデルを読み込みます。
詳しくはmmd_tools/インポートをご覧ください。

ボーンを非表示にする


このままではマテリアルの作業がしづらいのでアウトライナーから、”モデルネーム_arm”の右側にある目玉アイコンをクリックして一時的に非表示にします。

MMDShaderDevにプリンシプルBSDFを追加する

SSSやノーマルマップ、メタリックなどを使いたいのでプリンシプルBSDFを追加します。
ただし、MMDShaderDev内に追加しないと材質モーフやUVモーフが機能しませんので、MMDShaderDevの中にプリンシプルBSDFを追加します。

下記の組み方はデフォルトのMMDShaderDevの見た目をそのままにプリンシプルBSDFを追加する例です。
ペースカラー(とアルファ)をグループ入力のBase texと直接接続しても問題ないでしょう。


トップバーからShadingタブを開き、画面中央のワールドオブジェクトにします。


モデルのオブジェクトを選択した状態でシェーダーエディター上でHOMEキーを押します。


MMDShaderDevというノード(グループ)があるのでそれを選択してTABキーを押します。


HOMEキーを押してノード全体を表示させ、右下の方でShift+Aキーを押してコンバーターシェーダーからRGBへを選択してシェーダーからRGBへノードを追加します。


光沢BSDFBSDFソケットと追加したシェーダーからRGBへノードのシェーダーソケットを接続します。


Shift+Aキーを押してカラーRGBミックスノードを追加します。


シェーダーからRGBへノードのカラーソケットとRGBミックスノードの色2ソケットを接続し、係数0.020に設定します。


中央のミックスノードのカラーソケットと追加したミックスノードの色1ソケットとを接続します。


Shift+Aキーを押してシェーダープリンシプルBSDFを選択してプリンシプルBSDFノードを追加します。


追加したミックスノードのカラーソケットとプリンシプルBSDFベースカラーソケットを接続します。


上部右の最小ノードのソケットとプリンシプルBSDFアルファソケットを接続します。


プリンシプルBSDFスペキュラーの値を0にして出力のBSDFグループ出力ノードのシェーダーソケットと接続します。


プリンシプルBSDFノーマルソケットをグループ入力の一番下の半透明なソケットに接続します。


TABキーを押して戻ります。

アンビエントオクルージョン(AO)を使う場合


レンダープロパティからアンビエントオクルージョン(AO)にチェックを入れ、シェーダーエディター上で[Shift]+[A]キーを押してカラーからRGBミックスプリンシプルBSDFベースカラーRGBミックスの間に入れます。
RGBミックス乗算にします。

Shift+Aキーを押して入力→アンビエントオクルージョン(AO)を選択し追加します。
アンビエントオクルージョン(AO)のカラーをRGBミックスの色2へ接続します。

RGBミックスの係数を増加させるとAOが強くなります。

アンビエントオクルージョン(AO)RGBミックスの間にカラーランプを挿入する事でAOの影の範囲や強弱などを操作する事ができます。

マテリアルの設定

PBR Materialsアドオンを追加しておきます。


このままだと扱いにくいのでMMDの材質ごとにオブジェクトを分割します。
トップバーからLayoutタブに戻り、MMDモデルを選択した状態でプロパティシェルフのMMDタブからSeparate By Materialsをクリックします。


トップバーからShadingタブを開き、マテリアルの設定を行いたいオブジェクトを選択してシェーダーエディターやマテリアルプロパティからいろいろ弄ります。

材質ごとにノードを作る


材質を設定したいオブジェクトを選択して上図の赤丸部分をクリックしてシングルユーザー化します。
シングルユーザー化しないとすべての材質で同じMMDshaderDevグループノードが使用されます。
これを材質ごとに分けることで手間を省きます。
ボディ(肌)

SSS(表面下散乱)を使います。

肌の材質のオブジェクトを選択してシングルユーザー化します。
名前をskinとでもしておきます。


TABキーを押して、skinノードグループを開き、Shift+Aキーを押してカラーガンマノードを追加します。
中央のミックスノードのカラーガンマノードのカラーソケットを接続し、ガンマノードのガンマの値を3程度に設定します。

プリンシプルBSDFサブサーフェス0.20.3程度に設定します。値を上げすぎると蝋人形や大理石っぽくなってしまいます。


Shift+Aキーを押して入力RGBからRGBノードを追加し、ノード下部をクリックして色をRED(R:1 G:0 B:0)にしてプリンシプルBSDFサブサーフェス範囲ソケットと接続します。


別途、光源(ライト)を追加している場合


材質の周辺が青白くなる場合



クリアコートの値を上げると表面にニスを塗ったかのような艶が出ます。
お好みで設定してください。


TABキーを押して戻り、シェーダーエディター上でNキーを押してプロパティシェルフを出し、PBR Materialsタブを開きます。


Scratches Textureとなっている画像をクリックし、Leather Textureを選択します。


Shift+Aキーを押してベクトル→バンプからバンプノードを追加します。
Leather TextureのLeatherとバンプノードの高さを接続し、バンプノードのノーマルをskinのノーマルへ接続します。
Leather Textureノードの拡大縮小を15〜30にします。
バンプノードの強さを0.7程度に設定します。(お好みで)


Leather TextureバンプをShiftキーを押しながら選択し、Ctrl+Cでコピーします。


顔などほかの肌材質オブジェクトを選択し、Ctrl+VでLeather Textureバンプノードを貼り付け、接続します。
MMDShaderDev左のアイコンをクリックし、skinを選択します。
これをほかの肌材質オブジェクトにも行っていきます。
衣装

肌(skin)と同様に布材質のオブジェクトを選択し、シングルユーザー化し、名前をclothとでもしておきます。
PBR MaterialsタブからFabric Textureを追加し、バンプノードへ接続します。
本来ならMMDShaderDev内のプリンシプルBSDFのシーンやシーンチントを操作するのですが今回の例ではあまり効果がなかったので触っていません。

あとは肌(skin)と同様に布材質のオブジェクトにclothを割り当てて行きます。
金属
該当材質をシングルユーザー化して、MMDShaderDev内のプリンシプルBSDFのメタリックを操作します。
本来はメタリックの項目は0か1のどちらかなのですが、0.7とかでも問題ないです。

先端が半透明な前髪や頬染めなど半透明な材質


該当材質(オブジェクト)を選択してマテリアルプロパティから設定ブレンドモードアルファブレンドにします。
それでも表示がおかしい場合は裏面の非表示背面を表示のチェックボックスをon/offしてみます。

顔面などが黒い場合


一部モデルで顔面や眼球が黒い場合があります。
これは照れ/頬染めモーフ用材質などのメッシュが裏返っているためです。


該当材質(オブジェクト)を選択してTABキーで頂点編集モードへ入り、Aキーで全頂点を選択してトップバー下のメッシュノーマル反転で反転させます。


プリンシプルBSDFではなく、KiryToonShaderを使う場合(NPRやToon調にする場合)

モーション読み込み前の準備


3Dビューで[N]キーを押し、MMDタブからMorph Toolsの+-の下の三角をクリックしてBindを押します。
これで頂点モーフ(シェイプキー)以外のモーフ(材質モーフやUVモーフなど)をblender上で操作できます。

この作業には数分かかることもあります。Blenderがフリーズしますが落ち着いて待ちましょう。

モデル/カメラモーションの読み込み

モデルモーションの読み込み


アウトライナーからモデル名の階層を選択します。


プロパティシェルフのMMDタブからら運動:Inportを選択して.vmdファイルを読み込ませます。
その際、拡大縮小倍率をモデルを読み込んだ際の値と同じにする必要があります。今回は余白は0にしておきます。
(読み込むモーションが男性モデルで作られていて、適用するモデルが小柄な女性の場合などはモデルを読み込んだ時の値より小さめの方がいいかな?)

カメラモーションの読み込み


カメラオブジェクトを選択し、プロパティシェルフのMMDタブから運動:Inportを選択してカメラモーション.vmdファイルを読み込ませます。
もし、カメラオブジェクトを削除してしまっていたら3Dビュー上でshift+Aキーを押してカメラオブジェクトを追加させてください。
こちらも拡大縮小倍率をモデルと同じ値にする必要があります。余白も0にしておきます。

物理演算のベイク


アウトライナーからモデル名の階層を選択した状態でプロパティシェルフのMMDタブからPhysics:下のBuildボタンをクリックしてMMDの物理演算(剛体やJoint)をBlenderの物理演算(リジッドボディやリッドボディコンストレイント)へ変換します。
モデルやマシンスペックにもよりますが4,5分はかかります。途中からBlenderが応答しなくなりますが気長に待ちましょう。


次に、プロパティのシーンからリジットボディワールドキャッシュ全物理演算をベイクボタンをクリックします。
こちらもマシンスペックによりますがそれなりに時間がかかります。
[ESC]キーで中断できます。

Blenderのクロスシミュレーションを使う場合

音源の読み込み

まずは音源を用意します。
モーション配布元の動画から入手するのが音ズレもなく良いのですが楽曲によっては著作権等の理由で利用できないものもあります。ご注意ください!!


トップバーのScripting横の+ボタンをクリックし、Video EditingVideo Editingをクリックします。


Video Editingのタイムライン上に音源データをD&Dします。
必ず1フレーム目で行います。[Shift+←]キーで1フレーム目まで飛べます。
1フレーム以外にD&Dしてしまった場合はGキーを押して移動させます。

キーボードの[space]キーを押して再生してみます。
右下、ストリップより調整サウンドボリュームで音量を調整できます。
音がズレている場合は波形を表示オプションで波形を表示させて調整するといいかもしれません。

動画へ出力


トップバーからLayoutタブに戻り、キーボードの[space]キーを押して再生してみます。
この際、テンキーの[0]キーを押すとカメラの視点になります。


右下プロパティの出力から解像度を設定し、出力から出力先のフォルダを選択します。
ファイルフォーマットをFFmpeg動画にし、カラーがRGBになっているのを確認したらエンコーディング下のコンテナをMPEG-4にします。(エンコーディング右のアイコンをクリックするとプリセットが用意されています)
オーディオから音声コーデック音声なしからAACあたりに設定します。


別のエンコードソフトを利用する場合は、ファイルフォーマットAVI Rawにします。


メニューバーからレンダーアニメーションレンダリングを選択するか、[Ctrl]+[F12]キーを押してレンダリングを開始します。

レンダリングにはマシンスペックにもよりますが数時間かかります。

レンダリング中にキーボードの[ESC]キーを押すことでレンダリングをキャンセルできます。

mmd_toolsのデフォルトでは30fpsで出力されますが60fpsで出力したい場合、Blender+mmd_toolsで60fps出力をご覧ください。
タグ

Menu

モデル/アクセサリ/素材など

エンコード

コーデック エンコードソフトウェア

その他

波形編集ソフト


【メニュー編集】

管理人/副管理人のみ編集できます