[blender]マテリアルで簡単に立体感を出す方法[ノード]

blender2.82a使用
フィギュア(人形の方ね)の世界では凹んだ部分に影色を塗る事で立体感や質感を増す塗装技法があるそうですがblenderでも似たようなことが簡単に出来ます。

使うのは当サイトお馴染み(?)トゲトゲボール。

こんな感じになります。
左は全体に一つのシェーダーを適用した例
右は今回紹介する方法で左のシェーダーに加えて別のシェーダーをミックスした例


まずはトゲトゲボールを作る
お馴染みトゲトゲボールを作りましょう。
ちなみに詳しくは[blender]編集モードの各種「押し出し」機能を紹介で紹介しています。

まずCubeにサブディビジョンサーフェスモディファイアをかけます。
適当に細かくしたらモディファイアを適用します。
その後、編集モードにして面選択モードにします。
Aキーで全部の面を選択したら、押し出しを長押しして押し出し(個別)を選択して押し出しします。
再び、サブディビジョンサーフェスをかけて滑らかにします。
スムーズシェーディングをかけます。
完成です。



ジオメトリノードの凸部分
画面を分割してシェーダーエディターにしましょう。
(ノードの効果を確認するのにレンダープレビューが適しているからです)
新規マテリアルを作ります。
入力→ジオメトリノードを追加します。
(動画ではプリンシプルBSDFを削除し、ディフューズBSDFにしていますが個人的にプリンシプルが嫌いなだけです)
ジオメトリノードの凸部分をカラーに追加します。
ジオメトリとカラーの間にカラーランプノードを追加します。
カラーランプを調整して凹んだ部分が暗くなるようにします。
(レンダープレビューだと分かり易いです)













凸部分を材料にシェーダーを合成
このままだと味気ないのでもう少し手を加えます。
凸部分のグレースケールの情報を使ってシェーダーミックスなどで質感を作ります。

シェーダーミックスを追加して、係数にカラーランプで調整した凸部分を繋ぎます。
明るい部分と暗い部分のシェーダーを追加してシェーダーミックスに繋ぎます。
出力のサーフェスに繋いで完成です。



最終的にこんなノードになりました。


ベイクではないのでアニメーションや変形にも対応可
処理を軽くするためにベイクしてテクスチャとして貼ることで陰影の処理を省く手法もありますが画像なので変形には対応できません。

今回はマテリアルノードなので変形してもそれらが反映されます。トゲを凹ましたとしたらその形状に凸部分も反映されるのです。なのでキャラクターなどのアニメーションにも対応出来るという事です。

マテリアルによる凸部分が変形によって変わる様子