ぬるいモデラーのモデル置き場

ぬるモデラーが作った素材になりそうなものを放置するブログ

EEVEE Very Easy Toon Shader の使い方。

某所で公開してたBlender・EEVEE専用ToonShaderの解説です。

公開はpixivとMisskey3DCGすきー!で細々後悔してます(誤字ではない)

BlenderVer4.X以上で動作します、それ以下の動作は保証いたしません。

 

1:基本NodeGroup

このグループはtexture作るのだるいな・UV展開だるいなと言うものぐさ時に使用します、接続nodeはshadeが必要な場合はgeometry(ジオメトリ)のnormal(ノーマル)とincoming(入射)が必須です。 既にtextureが設定されてるモデルでは使う必要はないです。

base color node group
右側がshade付き 左側がベースカラーのみ

shade付きと、ベースカラーのみの二種類があります、必要に応じて使い分けてください。各パラメーターは日本語で書かれている通りです適当にいじって見てください。

nodeの構築構成例は下記の画像の通りです、textureか頂点ペイントを用いて予めグレースケールの影面と明るい面のグラデーション塗り分けを用意して、影テクスチャ/影頂点ペイント入力に接続してください。 textureの場合はpaint baseをアドオン等からベイクしたものでもある程度は大丈夫です。

予め用意してね

ベースカラー例1

 


2:RGBカラーパーツマスク

RGBで色分けしたパーツに乗算(内部を書き換えれば他も可)で色を乗せれます、入力は頂点ペイントもしくはtextureでRGB色を利用してください。又、処理の都合色が混じると正しく色分けできません、RGBで色分けする際は混じらないように留意してください。

RGBカラーパーツマスク

3:MatCap/スフィアマップ

MatCap(MMD等で言うところのスフィアマップ)を使う際の基本部分のnode groupです、単体では機能しません。使用の際は、必ずtexture nodeに接続しMatCap textureを選択した上で、colorMix等で他の出力と合成してください。

MatCap/スフィアマップ

MatCap/スフィアマップ使用例

4:顔用IDマスクshade用

shadeが顔で汚くなる場合、頂点カラー(もしくはtexture)を利用し法線に介入します、あらかじめ顔の中央から縁にかけて白から黒のグラデーションを設定し、このNode Groupに接続します。 出力はgeometryのnormalの代わりに使用します。又、この方法ではモデル自体の法線を変更しない為、Subdivisionモディファイアを使用していてもGPUSubdivisionのオプションが切れない為、動作が重くなりません。

顔用IDマスクshade用

そうばーとなshadeが入ってるやん?

頂点ペイント/テクスチャでこの様にグラデーションをかける

geometry nodeのnormalの代わりに接続する

Shader内での法線が変更されshadeがなだらかになる

5:疑似影設定パーツ

光源に依存しない影を生成します。

fake shadow 3 maskとfake shadow bis2はカメラの入射角度により疑似影を生成します、カメラの動きにより影が有る程度移動します、アニメーションや多方位からモデルを見る場合に有効です。fake shadow 3 maskは最大3か所にマスクを設定しマスク箇所ごとに影の影響度を指定できます、マスクは白黒の頂点ペイントかtextureを利用してください。fake shadow bis2はマスク機能をオミットしたものです。

fake shadow select object typeは指定した疑似光源オブジェクトを起点に疑似影を生成します、使用の際にはテクスチャ座標nodeのオブジェクトoutを接続しテクスチャ座標から疑似光源オブジェクトをセットする必要があります。

疑似影設定パーツ

fake shadow 3 mask接続例
この例では2か所のマスクをセットしています

fake shadow select object typeの接続例
赤丸のところに疑似光源オブジェクトをセット

6:Signed Distance Fieldパーツ

EEVEE上でSigned Distance Field(符号付距離場)を実装するNode Groupです、Signed Distance Fieldって何ぞ?って方もいらっしゃるとは思いますが、いーじーに言うとゲーム「原神」や「崩壊シリーズ」等で用いられている顔等の影のつくり方とざっくり理解して頂ければ…。

Signed Distance Fieldデモ

Signed Distance Field用のテクスチャを用意する必要があります、作り方についてはココでは解説いたしません、下記の動画等から学習してください、下記の動画ではpngを1bitにするように解説していますが動画のURLから入手できるルーツは現行では8bitのモノクロpngにのみ対応しているのでご注意ください。

 

Nodeの解説と接続

SDF select object typは疑似光源の座標で影を移動させます。SDFを適応するオブジェクトと疑似光源のオブジェクトをテクスチャ座標nodeを介して接続します、内部処理はatan2関数を代替計算式で無理やり再現しているため挙動が怪しいです…。 又、2点間の座標差(x1x2、y1y2)でZ軸の角度を導き出しているため、モデルと疑似光源の距離が近すぎると表示がおかしくなります。

(Signed Distance Field)SDF select object typeの接続例
赤側に顔のオブジェクト 青側に疑似光源オブジェクトを選択

テクスチャはGroup内部ですのでココをクリックし

内部のtexture nodeから作成したSDFテクスチャを選択してください

SDF select object typの挙動が余りに不安定な為、Var1.03からEEVEE Very Easy Toon SDF select object type X coordinateを追加しました。指定した疑似光源オブジェクトのX座標が-1m 0m 1mで影の入れ替わりができるようにしたタイプです。頭部のボーン・顔オブジェクトとチルドレン関係かボーンで子にすることで扱いやすいく狙った位置にSDFの影を生成できると思います。

EEVEE Very Easy Toon SDF select object type X coordinate

接続例:テクスチャ座標nodeを接続し
赤丸の部分に疑似光源オブジェクトを設定する

疑似光源の方は顔オブジェクト・頭部オブジェクト親として
移動制限や親子設定をすると扱いやすいかと思います。

SDF select object type X coordinateの動作デモ

最後に、SDF select object type同様にNode Group内でtextureを入れ替える必要があります。


SDF set light Z axis rotationは光源のZ軸の値を参照値に影の入れ替えを行います、Shader内から光源のZ軸の値を参照するためにドライバを使う必要があります。

SDF set light Z axis rotationの接続例
値(Value node)に光源Z軸の値のドライバを設定する。

光源のZ軸の値をアイテムタブのトランスフォームから右クリック

新規ドライバーとしてコピーを選択

Shader editorに戻りValue node上で右クリックしドライバーを貼り付け

ドライバーを設定後再度右クリックでドライバ編集を選択し
上記の画像の様に値を変更する

ドライバーの変更箇所

    • タイプをスプリクト型の式に変更
    • 式を(rotation_euler-var)/piと書き換える
    • +入力値を追加押し新しいクラスを追加
    • 新しいクラスのプロバティでSDFを適応するオブジェクト(顔)を選択
    • パスにrotation_euler.zを追加

最後に、SDF select object type同様にNode Group内でtextureを入れ替える必要があります。

 


7:光源影・リムライト設定パーツ

光源由来の影とリムライトを設定します、Sun light shadow bisは光源由来の影を生成します”ディフュースBSDF”と”シェーダーをRPG化”を使用していますつまりベイクできません、リムライトはモデル縁に光を入れます。rim lightは光源由来の影生成を無くしリムライト機能だけにしたものです、双方ともに放射強度とリムライトだけの放射強度の設定が可能です。 BlenderのEEVEE側の設定でブルームをオンにした場合値相応の輝きを再現します。 Sun light shadow bisは光源が無い場合は不要です(疑似光源・疑似影のみで完結するなら不要)rim lightだけで良いでしょう。

光源影・リムライト設定パーツ

接続例:出力がシェーダーであるため全てのnodeの最後に接続し使用する

以上が現状のEEVEE Very Easy Toon Shaderのセット内容です、必要に合わせてGroupをつないで必要な質感を再現してください。

blender入門はじめの一歩向け教材のサメちゃんモデル

サメちゃんが来たぞ

初心者が難しい事をやろうとすると詰む

blender初心者向けにあまり難しくない、サンプルモデルのサメちゃんを作ってみたりしたのでいじり倒してみてくだしゃ。 blenderモデリングツールではなく総合3Dソフトなので映像や画像作品を作るにあたって初心者が無理にエクスポート前提でやたら複雑な工程を経てモデルを作る必要はあんま無い…のだが日本ではなぜかエクスポート前提の入門しかない不思議。

最低限のリグ済みなのである程度のポーズやアニメーションはすぐに付けれるはず…。

使用環境:blender2.93以上のバージョン

著作権は放棄していません、無償で公開される作品並びに教育現場での教材使用に限り制限なく使用を認めます。 また、いかなる理由であっても宗教・国家・政治団体等を賛美・批判・広告するような目的への使用は認めません。

https://drive.google.com/file/d/16mY1kFFQbmf-UjH6gz6XEsVBqwRXGzRe/view?usp=share_link