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

このページの内容は古いものです。更新もしません。
動画ファイルへのリンク


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

Blender Ver2.83 LTS とblender_mmd_tools Addonを使い、EEVEEでMMDモデルをレンダリングして動画を作成する覚え書きです。
blender_mmd_tools Addonの導入方法や各オプションについてはBlender 2.8 mmd_tools Addonページをご覧下さい。

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

MMDモデルの構造(特に物理周り、稀にボーン構造)によっては正常に動きません。
PMXエディタやBlenderでの調整、改造が必要となる場合があります。
(MMDでは動作するがMMMでは動かないモデルなどは特に正常に動かない)

このページでは、例としてImagineGirls ヴィエンヌ - Version 2/VRキャラクター製作所VienneV2_modA_Swimsuit.pmxを利用させてもらいます。

ImagineGirls ヴィエンヌ - Version 2/VRキャラクター製作所には.blendファイルも付属していますがVer2.79で作成されたファイルでVer2.8xでは正常に開けないようなので.pmxファイルをmmd_toolsを使ってインポートしました。

.vmdモデルモーション/カメラモーションは下記の動画の物をお借りします。
下記動画の投稿者コメント欄にモーションファイルへのリンクがあります。



EEVEEの設定

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


今回はアンビエントオクルージョン(AO)ブルームスクリーンスペース反射(とその中の屈折オプション)にチェックを入れます。

立方体サイズを下げると影が柔らかく、上げるとくっきりします。ただし、光源(ライト)がないと効果はありません。
今回はHDRIを光源(ライト)の代わりに使うのであまり弄る必要はないです。
Blender2.83のEEVEEではデフォルトの設定ではHDRIなどを用いたIBLのみだと影が生成されません。影が欲しい場合は別途光源(ライト)を用意します。

HDRI+光源あり

HDRI+光源なし


カラーマネージメントの項目を開くとビュー変換という設定があります。
デフォルトではこれがFilmicになっており、リアル系のカラーマネジメントになっています。
好みや作りたい映像などにもよりますが、セルルックな映像を作る場合はこれを標準にした方が良いとされています。(このページでは標準にして進めていきます)
(例えばMMDモデルを使って実物のフィギュアを撮影したかのような画像を作りたい場合はFilmicの方が良いかもしれません)

ビュー変換/Filmic

ビュー変換/標準

ライティング

HDRI/IBL

HDRI(High Dynamic Range Image)は明るさの情報を持っています。
HDRIなど、画像を利用してライティングするのをIBL(Image Based Lighting)と言います。

MMD風に簡単に言えば、光源情報が含まれたスカイボックスという感じです。
本当はHDRIに追加でライトオブジェクトなどを設定して複数から光を当てる方が良いのですが、今回はHDRIのみで進めて行きます。(Blenderに初期配置されているライトオブジェクトは削除しています)

※ライティングの基本として三点照明というものがあります。3DCGのみならず写真撮影などでも使われる手法です。興味のある方は検索してみて下さい。

"HDRI CC0"などで検索すればフリーなHDRIファイルが配布されています。
※ちなみに、blender-[ver]-windows64\[ver]\datafiles\studiolights\worldフォルダ内にデフォルトの.exrファイルがあります。(forest.exrがマテリアルプレビューのデフォルトです)

今回はマテリアルプレビューでデフォルトのforest.exrを使ってみますが、その前にBlenderへバンドルされているNode Wranglerアドオンを有効化します。
HDRIを用いたIBLの設定以外にも、ノードを利用する際に便利です。

Node Wranglerアドオンの有効化



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


背景ノードを選択した状態で[Ctrl]+[T]キーを押して環境テクスチャノードの開くから”blender-[ver]-windows64\[ver]\datafiles\studiolights\world\forest.exr”を開きます。


上図のように背景にforest.exrの画像が表示され、明るくなったはずです。(マウスカーソルを3Dビュー上に持っていって[Z]キーからレンダーを選択していないと変わりません)

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

HDRIの背景とライティングを別々に調整したい場合(例えば背景画像の明るさはそのままでライトの強度だけ強めたい/弱めたい)


光源情報は欲しいけど、背景に画像が写って欲しくない...という場合



映像編集ソフトで合成するなど、背景を透過したい場合には、レンダープロパティのフィルム透過にチェックを入れます。

MMDモデルの読み込み(.pmxファイルのインポート)


メニューバーからファイルインポートMikuMikuDance Model (.pmd .pmx)から読み込むか、3Dビュー画面上で[N]キーを押してサイドバーを出し、MMDタブのModel:下のImportからモデルを読み込みます。


インポート時のオプションについて詳しくはmmd_tools/インポートをご覧ください。

拡大縮小0.08にして、MMDとBlenderでサイズを一致させないと物理演算の結果が意図しないものになります。
例えば拡大縮小:1で読み込んだ場合、剛体のサイズが(MMD上と比べて)大きいのに剛体に設定された質量がそのままのため、相対的に軽くふわふわになります。
何らかの理由で拡大縮小の値を1にしたい場合は、Blenderのフィールドの重み重力を12.5にするとMMD上の物理演算と似た状態になります。
(たとえ0.08倍でインポートしてもソフトウェアの仕様や物理エンジンのVerの違いなどでMMDの物理演算を完全に再現する事はできません)

”Separate By Materials”で材質ごとにメッシュオブジェクトを分割する

MMDモデルをインポートした初期状態ではメッシュオブジェクトが一つに結合されています。これを.pmxの材質ごとに分割します。


インポートしたMMDモデルのメッシュオブジェクトを選択して、サイドバーのMMDタブからSeparate By Materialsをクリックします。
※材質や頂点数、PCスペックによってはBlenderが一時的に応答しなくなるかもしれませんが、落ち着いて待ちましょう。

※インポートしたMMDモデルの親エンプティやアーマチュア(ボーン)を選択した状態だとSeparate By Materialsがグレーアウトして押せません。メッシュオブジェクトを選択しましょう。

アーマチュア(ボーン)を一時的に非表示にする

MMDモデルの質感を設定したいのですが、今のままではアーマチュア(ボーン)が邪魔です。なので一時的に非表示にします。


サイドバーのその他タブからMMD Display項目のアーマチュアのチェックボックスをOFFにします。


アーマチュアが表示されなくなりました。

その他タブのMMD Shading項目から3Dビュー上でのモデルの表示方法を変える事ができますが、レンダリングには反映されません。
誤ってクリックした場合はリセットをクリックしましょう。

※もう一度、アーマチュアを表示させたい場合はアーマチュアチェックボックスをONにすればOKです。

インポートしたMMDモデルが紫色になる場合


メニューバーの編集→プリファレンス...アドオンから検索バーに"mmd"と入力してmmd_toolsの項目を表示させます。
設定:Shared Toon Texture FolderMikMikuDance_[version]/Dataへのパスを指定します。

これでToon関係のファイルが読み込まれて正常に表示されるはずですが、それでも紫色になる場合はなんらかの理由でベーステクスチャ(あるいはスフィア、Toonファイル)が読み込まれていない可能性があります。
例えばテクスチャの名前やパスに中国語が含まれていて正常に.zipファイルを解凍できなかった場合(文字化けしてテクスチャを見失っている)...など
MMDで正常に表示されるか確認してみましょう。(ついでにPmxEditorのPMXデータの状態検証で異常がないか検証してみる)

シェーダーノードの設定

mmd_toolsで.pmxファイルをインポートした際に作られるMMDShaderDevグループノードでもそれなりに綺麗ですが、せっかくBlenderにインポートしたのにノーマルマップやSSSが使えないなど不満点もあります。


上の画像はデフォルトのMMDShaderDevグループノードでレンダリングしたものです。

ノードとかよくわからない、上の画像のような質感で不満がない...という方はこの項目を飛ばして下さい

下記の文章はノードを弄ってみたいという方向けのものになります。
また、ノードの組み方はあくまで一例です。あんまり正しくないかもしれません。


ノードを操作する前にトップバーからShadingタブを開きます。
画面中央下部のシェーダーエディターのワールドオブジェクトにします。
適当なメッシュオブジェクト(材質)を画面上の3Dビューから選択してから、シェーダーエディター上で[Home]キーを押してMMDShaderDevグループノードを表示させます。

画面上の3Dビュー上で[Z]キーを押してマテリアルプレビューからレンダーに切り替えておきましょう。

MMDShaderDevグループノードを開いてグループノードの中でノードを追加したり編集する方がいいです。
これは後述するモーフのバインドで材質モーフやUVモーフなどを正常に動かすためです。

※ちなみにサイドバーMMDタブ→Convert Materials for Cycles→[3Dビューの左下に表示されるオプション]でConvert to Principled BSDFを選択するとレンダリングエンジンがCyclesに切り替わり、MMDShaderDevPrincipled BSDFシェーダーに置き換えられますが、モーフのバインドが機能しないバグがあります。(バインド後にコンバート、コンバート後にバインド共に機能しない,2020/12/06のVer)


MMDShaderDevグループノードをクリックして選択し、[TAB]キーを押して開きます。


上図のような画面になったはずです。
この中にノードを追加したり接続したりします。
もう一度、[TAB]キーを押すとMMDShaderDevグループノードを閉じれます。

MMDShaderDevにPrincipled BSDFを組み込む

mmd_toolsでMMDモデルなどをインポートした際にデフォルトで作られるMMDShaderDevグループノードはNPR(Non-Photorealistic Rendering ,非写実的レンダリング)の実装の一つです。
MMDモデルに設定されたスフィアマップやToonなどを利用でき、テクスチャではなく材質色環境色などで色を表現している古いモデルやアクセサリでもMMD上と完全に同じではありませんが描画されます。
ただし、MMDではMMEとシェーダーを導入する事で(シェーダーにもよりますが)ノーマルマップなどを利用できますが、デフォルトのMMDShaderDevでは利用できません。

この項目ではMMDShaderDevPrincipled BSDFを追加(一部置き換え)する事でMMDShaderDevによるNPRな表現を維持しつつ、Principled BSDFのSSSやノーマルマップなどの機能を利用する方法を記載します。

※ただし、SSSなどを効かせる場合などはライティングや望む質感にもよるが、後述する方法などでToon等をOFFにした方が良い。

  • プリンシプルBSDFの追加、ベースカラーの設定

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


[Shift]+[A]キーからコンバーターシェーダーからRGBへを選択、追加します。


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


[Shift]+[A]キーからカラーRGBミックスノードを追加します。
シェーダーからRGBへノードのカラー出力ソケットとRGBミックスノード色2入力ソケットを接続します。
RGBミックスノード係数0.020に設定します。


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


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

  • プリンシプルBSDFのアルファの設定

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

両面描画(Double Sided)が有効(または無効)な(半)透明材質のアルファが抜けずに黒くなる場合


  • プリンシプルBSDFのBSDF出力をグループ出力のシェーダーへ接続

プリンシプルBSDFBSDF出力ソケットとグループ出力シェーダーを接続します。
おそらく、見た目がちょっと変わったはずです。

  • グループ入力へプリンシプルBSDFのノーマルなどを接続

プリンシプルBSDF粗さの値を1.0にします。
プリンシプルBSDFメタリックスペキュラー粗さ放射ノーマル各ソケットをグループ入力の一番下の半透明なソケットに順に接続します。
これはノーマルなどをMMDShaderDevグループノードの外から操作したいためです。

スペキュラーは基本的に操作しない!

MMDShaderDevグループノードのシングルユーザー化

今ののままではMMDShaderDevグループノードの中を編集するとすべてのマテリアルの質感が変わってしまいます。
シングルユーザー化する事で、例えばボディや衣装といった個別のマテリアルごとに質感を設定、割り当てる事ができます。


上記画像の赤丸で囲んだ部分をクリックするとシングルユーザーにできます。
ノードの名前がおそらく、MMDShaderDev.001となっているはずです。
名前はお好きなものにできますが、日本語にするより”Skin”など英語の方がBlender上で検索しやすいです。



さらに上記画像の赤丸で囲んだ部分をクリックしてフェイクユーザーを有効にしておきます。
フェイクユーザーを有効にしていないと、使っていない(孤立した)ノードが.blendファイル保存時に消されてしまいます。(.blendファイルに保存されない)


シングルユーザー化したノードをマテリアルに割り当てるには、シェーダーエディターでマテリアルを選択(Shadingタブ、画面中央)し、MMDShaderDevグループノードのマテリアルアイコンをクリックして選択します。
ボディなど肌
Principled BSDFのSSS(Subsurface Scattering, サブサーフェススキャタリング)を利用します。


MMDShaderDevグループノードをシングルユーザー化し、名前を”Skin”とでもしておきます。

  • サブサーフェスカラーの設定
サブサーフェスの色の設定です。
サブサーフェスカラーとしてベーステクスチャ(or材質色)を補正して利用します。
(よくわからなければベーステクスチャ(or乗算ノード)をそのままサブサーフェスカラーに接続しても良い気がする...)


[TAB]キーでMMDShaderDevグループノードを開き、[Shift]+[A]からカラーガンマガンマノードを、カラー色相/彩度からHSV(色相/彩度/輝度)ノードを追加します。
MMDShaderDevグループノード左上の乗算ノードのカラー出力ソケットとガンマノードのカラー入力ソケットを接続します。
ガンマノードとHSV(色相/彩度/輝度)ノード、プリンシプルBSDFのサブサーフェスカラーをそれぞれ接続します。
ガンマノードのガンマの値を3.000程度に設定し、HSV(色相/彩度/輝度)ノードの色相の値を0.480程度に設定します。

  • サブサーフェスの設定
サブサーフェスの強度の設定です。
AOノードとカラーランプノードを使って疑似Thicknessマップ(Fake Thickness map)を作り、利用します。
(こちらもよくわからなければ0.1~0.2程度に設定しておいても良い気がする)


[Shift]+[A]から入力アンビエントオクルージョン(AO)を、コンバーターカラーランプをそれぞれ追加します。
アンビエントオクルージョン(AO)AO出力ソケットとカラーランプ係数入力ソケットを接続し、カラーランプカラー出力ソケットをプリンシプルBSDFサブサーフェスに接続します。
カラーランプをクリックしてカラーランプを反転を選択し、色を反転させます。
カラーランプの黒い方のカラーストップ(矢印)を選択してカラー(係数の上の黒い所)をクリックしてHSVのVを0.5にして灰色に設定します。

カラーストップの位置や色(白黒)で範囲や強度を設定できます。

  • マテリアルプロパティの設定

SSSを有効にしたマテリアルは、マテリアルプロパティから設定サブサーフェスの透光にチェックを入れます。
衣装や布など
本来ならプリンシプルBSDFシーンシーンチントを操作するのですが、今回の例ではあまり効果がなかったので触っていません。
ノーマルマップやバンプマップなどを適用して表現した方が良いかもしれません。
金属
メタリック粗さを操作、設定します。
プリンシプルBSDFのお約束としてメタリックの値は0 or 1なのですが、別に0.5とかでもエラー吐いたりレンダリング時に停止したりはしません。
粗さは値を入力しても良いですが、roughness map等を指定する事もできます。(非カラーデータとする必要がある)

Toon、スフィアを無効にしたい場合

望む質感、絵柄などにもよりますが、Toonやスフィア(特にToon)を効かせるとよろしくない場合もあります。


簡単な方法としては、シェーダーエディターでMMDShaderDevノードとMmd Toon TexMmd Sphere Texノードとの接続を[Ctrl]+[マウス右クリック移動]で切断します。


ただし、マテリアルプロパティのMMD Material項目の設定を操作すると自動的に再接続されます。ご注意下さい。
これを避けたい場合はマテリアルプロパティのMMD Material項目でToon、スフィアテクスチャの割り当てを解除するか、MMDShaderDevを開いてToonやスフィアとの接続を解除する必要があります。

  • MMDShaderDevを開いてToonやスフィアとの接続を解除する場合

[TAB]キーを押してMMDShaderDevを開き、グループ入力Toon Tex FacToon TexSphere Tex FacSphere Texを[Ctrl]+[マウス右クリック移動]で切断します。
Base Tex FacBase Tex等は切断してはいけません。(ベーステクスチャが描画されなくなる)

ノーマルマップとラフネスマップやバンプマップの使い方

ノーマルマップやバンプマップを使って擬似的に凹凸を表現したり、ラフネスマップ(Roughness Map)で(反射の)粗さを設定したりします。
いずれのマップも、Blender上では非カラーデータ(Non-Color Data)とする必要があります。
ノーマルマップ
ノーマルマップは法線マップとも言われ、法線方向を示すマップです。
擬似的に凹凸を表現するのに使われます。青っぽいテクスチャです。

このページでは、https://cc0textures.com/Leather 007(2k PNG)を利用させてもらいます。
”CC0 PBR Textures”等で検索すると、上記のサイト以外にもフリー(CC0)なノーマルマップ等を含む、PBR Texturesが配布されています。

Node Wranglerアドオンを有効にしておいて下さい。


[Shift]+[A]キーからベクトルノーマルマップを選択してノーマルマップノードを追加します。


ノーマルマップノードを選択した状態で[Ctrl]+[T]キーを押すと、Node Wranglerアドオンの機能で画像テクスチャノードやマッピングノードが自動的に接続されます。


画像テクスチャノードの開くからLeather 007からダウンロードしたLeather007_2K_Normal.pngを開きます。
画像テクスチャノードの色空間を、Non-Colorにします。


画像テクスチャノードのカラー出力ソケットをノーマルマップノードのカラー入力ソケットに接続し直します。
ノーマルマップノードのノーマル出力をノーマル入力に接続します。
  • ノーマルマップノードの強さからノーマルマップの強さを、マッピングノードの拡大縮小からノーマルマップの密度を調整できます。
複数のノーマルマップを使う場合

複数のノーマルマップを適用(合成)したい場合もあるでしょう。
そういった場合は[Shift]+[A]→カラーから、RGBミックスノードを二つ追加し、係数を共に1にします。
一つめのRGBミックスノードを乗算にして画像テクスチャノードのカラーを色1色2にそれぞれ接続し、二つめのRGBミックスノードを除算にします。
乗算にしたRGBミックスノードのカラーを二つめのRGBミックスの色1に接続します。
ノーマルマップノードの[カラー]の上にマウスカーソルを持っていき、[Ctrl]+[C]でカラーをクリップボードにコピーしたら、二つめのRGBミックスの色2の上で[Ctrl]+[V]でペーストします。
最後に、除算にした二つめのRGBミックスノードのカラーをノーマルマップノードのカラーに接続します。
DirectX形式のノーマルマップを使う場合
BlenderなどではOpenGL形式のノーマルマップですが、MMDではDirectX形式のノーマルマップが一般的です。
Blender上でDirectX形式のノーマルマップをそのまま適用すると、凸凹が反転してしまいます。


カラーRGBカーブを追加し、ノーマルマップノードと画像テクスチャノードとの間に挿入します。
RGBカーブRと、Gカーブを反転させます。
ラフネス(粗さ)マップ
これは擬似的に凹凸を表現するものではなく、光を反射したときの粗さを指定するマップです。白黒のテクスチャです。


ノーマルマップ同様に、色空間Non-Colorにして粗さに接続します。
バンプマップ
こちらも擬似的に凹凸を表現するのに使われますがノーマルマップと違い、白黒のテクスチャです。
適当なバンプマップが無かったので、ノイズテクスチャで代用しています。


[Shift]+[A]からテクスチャノイズテクスチャコンバーターカラーランプベクトルバンプマップをそれぞれ追加し、画像のように接続します。

ノイズテクスチャやカラーランプ、バンプマップの強さなどを操作します。

レンガの壁などに使えるかもしれません。
ノイズテクスチャノードとバンプマップノードで肌っぽくする(ラフネスマップとバンプマップの代用)

ノイズテクスチャノードとバンプマップノードで肌っぽくする際のメモです。
ノイズテクスチャノードの拡大縮小300から400程度に、粗さ1に、歪み0.5程度にする。
バンプマップノードは強さ0.1から0.2程度に設定(ライティング次第?)
あとは上記の画像の用に接続する。

MMDのAutoLuminousみたいに発光させる

MMDのAutoLuminousのみたいに材質を発光させてみます。(プリンシプルBSDFシェーダーの放射を利用します)


[Shift]+[A]から入力を、カラーRGBミックスをそれぞれ追加します。


上記の画像のように接続します。


RGBミックスノードのミックス乗算にして係数1にします。


あとはノードの値を操作すれば発光量が変わります。(値が0で発光しない)

※Blender 2.91からプリンシプルBSDFシェーダー単体で放射の強度が調整できるらしいです。(2.9xを利用していない為、未確認)

シングルユーザー化したMMDShaderDevグループノードを.blendファイルに保存して再利用する

一度組んだノードを何度も組み直すのは面倒ですので再利用します。
基本だけ組んでしまえば例えばモデルキャラが違ってもある程度は流用できます。(もちろんモデルごとに、ライティングごとに微調整は必要だけど)

ノードだけでなく、モデルごとに調整した.blendファイルを作っておいて作りたい動画ごとにリンクorアペンドする...といった使い方もできます。


メニューバーのファイルからリンク...アペンド...を選択して.blendファイルを指定するか、ウインドウにD&Dしてリンクorアペンドを指定します。


リンクorアペンドで開いたら上記のようなウインドウになるのでグループノードをリンクorアペンドしたい場合はNodeTreeを開き、該当ノードを開きます。


[Shift]+[A]からグループの項目にリンクorアペンドしたグループノードが表示されているのがわかります。
このまま追加して接続すればOKです。
リンク
.blendファイルの中のノードなど、選択したものとリンクします。
例えばA.blendファイルのAグループノードをB.blendファイルにリンクするとします。
その状態でA.blendファイルのAグループノードを編集するとB.blendファイルにも編集が適用されます。(A.blendファイルを参照している)
ただし、リンクしたオブジェクト等はリンク先では基本的に変更できません。
アペンド
単なるコピーです。
上記の例えで言うなら、A.blendファイルのAグループノードを編集してもB.blendファイルにはなんの影響もありません。
変更等も自由にできます。

マテリアルプロパティの設定

先端が半透明な前髪や頬染めなど半透明なテクスチャを含む材質


黒柚式五劫院ミユモデルは前髪が半透明なテクスチャが利用されているのですが、ご覧の通りノイジーになってます。


こういった半透明なテクスチャが使われていて、ノイジーな場合は該当マテリアルのマテリアルプロパティからブレンドモードアルファブレンドにします。
必要に応じて、背面を表示のチェックをONorOFFにします。

顔面などが黒い場合


ハイフェン3モデルなど、特定のモデルは顔面や目が黒くなる場合があります。
これは照れ/頬染めモーフ等のメッシュのノーマル(法線)が逆向きだからです。

該当材質のメッシュオブジェクトを選択して頂点編集モードでノーマルを反転させても良いですが、面倒なので裏面の非表示オプションをOFFにして対処します。


治りました。


もし裏面の非表示オプションをOFFにしても治らない場合は、該当材質のメッシュオブジェクトを選択して[TAB]キーを押して頂点編集モードに入って[A]キーで全選択→トップバー下のメッシュからノーマル反転で反転させます。
さらに裏面の非表示オプションをONorOFFしてみます。

SSSを使った場合に変な色が乗る場合


上記の画像はボディ材質にSSSを有効にしています。
胸の辺りなどに緑っぽいアザのような色が載っています。

これはSSSを有効にしたボディ(材質)に近接する材質のマテリアル設定を変更する事で解決できます。

  • スクリーンスペース屈折を有効にする

このモデルの例では、cloth材質のマテリアルプロパティから、設定スクリーンスペース屈折のオプションを有効にします。
(レンダープロパティでスクリーンスペース反射とその中の屈折を有効にしていないと効果がありません)


  • アルファブレンドにする

もう一つの方法は、cloth材質のマテリアルプロパティから、設定ブレンドモードアルファブレンドにします。(デフォルトではアルファハッシュです)
こちらはレンダープロパティでスクリーンスペース反射とその中の屈折を有効にしていなくても効果があります。



上記の画像は衣装や髪などのマテリアルプロパティを変更した例です。

”白目”材質などが暗くなってしまう場合

該当材質のマテリアルプロパティから、設定スクリーンスペース屈折のオプションを有効にするとちょっとだけマシになります。(ライティング次第だけど)
本当はポイントライトなどで顔を照らして影を飛ばす方が良いでしょう。

ライティングを弄りたくない、スクリーンスペース屈折を有効にしても暗いという場合は、ノードの放射で発光させてしまうしかありません。
当たり前ですが、発光させすぎるとホラーっぽくなります。

モーションファイル読み込み前の準備

ボーンコンストレイントの適用(Bone Constraints)


MMDとBlenderは異なる方法でボーンによる動きを処理します。
これらの相互変換を行うために、適用でBlenderで扱えるようにボーンコンストレントを付加します。

念の為、モデルのエンプティを選択してサイドバーからMMDタブ→Bone Constraints:適用をクリックします。
(モデルのアーマチュア(ボーン)を選択して適用でも良い気がする...)

モーフのバインド


Blenderでは頂点モーフ(シェイプキー)はそのまま扱えますが、材質モーフやグループモーフ、ボーンモーフをBlender上で操作できるようにバインドします。

念の為、モデルのエンプティを選択してサイドバーからMMDタブ→Morph Toolsbindをクリックします。
(こちらはモデルのメッシュオブジェクトを選択して適用でも良い気がする...)

SDEFのバインド


BlenderはMMDのSDEFに対応していないのでモデルにSDEFが使われている場合、SDEF変形を行うドライバを追加する必要があります。

モデルのエンプティを選択してサイドバーその他タブ→MMD SDEF Driverバインドでバインドします。
バインド時のオプションはデフォルトのままで良いです。

モデルにSDEFが使われていない場合はドライバーは追加されません。
よくわからなければとりあえずバインドしておきましょう。

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

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


モデルモーションを読み込みます。
必ずモデルのエンプティを選択した状態でサイドバーからMMDタブ→運動:importで.vmdファイルを選択します。

これはmmd_toolsの仕様でメッシュオブジェクトを選択してモーションをインポートすると該当する材質のモーフアニメーションのみ、アーマチュア(ボーン)を選択してインポートするとボーンアニメーションのみインポートされるからです。

通常はモデルのエンプティを選択してモーフ類とボーンアニメーションの両方を読み込みます。


.vmdファイルの選択ウインドウ表示されます。

拡大縮小はモデルのインポート時に指定した値と同じでないといけません。(今回は0.08
余白は物理演算が暴れる際に指定します。(今回は0にしています)

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


3Dビュー上で[Shift]+[A]キーを押してカメラオブジェクトを追加します。

カメラオブジェクトを選択した状態でサイドバーからMMDタブ→運動:importで.vmdファイルを選択します。


こちらもモデルモーション同様、拡大縮小をモデルのインポート時の値と同じにします。
モデルモーションを読み込む際に余白を指定した場合は同じ値を入力します。
  • TIPS:カメラモーションではなくモデルモーションをカメラに読み込ませるとMMDデフォルトのカメラと同様の位置や焦点距離になる。

カメラモーションを読み込むとMMD_Cameraというエンプティが作られます。カメラオブジェクトはエンプティの子になります。

物理演算のベイク


現状では再生しても胸や髪が揺れません。
MMDと違ってBlenderでは物理演算はベイク(焼き込み)する必要があります。

まずはMMDの物理構造をBlenderの物理演算に対応させます。
モデルのエンプティを選択してサイドバーからMMDタブ→Physics:Buildでビルド(変換)します。


ベイクしただけでは上記の画像のように物理が置いてけぼりされてしまいます。


ベイク(焼き込み)します。
シーンプロパティリジットボディワールドキャッシュベイクでベイクします。
(ベイクしても物理がおかしい場合は全物理演算をベイクや、いったんベイクを削除してもう一度ベイクしてみる)
※モーション読み込み前にBuildした場合、物理演算がおかしな挙動になるので、いったんクリーンしてからモーション読み込み→Buildする
  • TIPS:[ESC]キーでベイクを中断できます。

音源の読み込み

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


トップバーのScriptingの右にある+ボタンをクリックし、Video EditingVideo Editingを選択します。


ビデオシーケンサー(画面下部の領域)のタイムライン上に音源データをD&Dします。
タイムライン上の音源はマウスで位置やトラックなどを変えられます。

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

動画へ出力

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


右下の出力プロパティから寸法解像度から解像度を設定できます。
寸法の右の短冊状のアイコンをクリックするとプリセットを呼び出せます。(ただし、プリセットから解像度を変更した場合はフレームレート30FPSに設定し直しましょう)

出力項目から出力先の指定などが行えます。


出力の項目でファイルフォーマットFFmpeg動画にした場合、エンコーディングという項目が表示されます。
エンコーディングの右の短冊状のアイコンをクリックするとプリセットを呼び出せます。
  • TIPS:他の動画編集ソフト等に持っていくならファイルフォーマットを”AVI Raw”か、FFmpeg動画でプリセットからh264 in MP4にして出力の品質ロスレスにします。(ただし、ファイルのサイズがかなり大きくなってしまいます)


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

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

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

Menu

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

Blender 2.9 LTS


※下記のページは古いものです

エンコード

コーデック

エンコード/動画編集ソフトウェアなど

その他

波形編集ソフト

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