blender2.8のNPR表現について

blender2.8のアニメ風マテリアルの作成の基本的な考え方

blender2.8EEVEEではshaderノードのソケットをshaderノード以外に直接繋ぐことは出来ません。緑の出力ソケットを緑以外の入力ソケットにつないでもエラーになって結果は赤紫色になります。

画像2

shader to RGBノードを間に挟むことで陰影を色に変換できます。

それにcolor rampノードやmixRGBノードを用いて色味や階調をつけるのが一般的なやり方となります。

画像2

たまに下の動画のように変換した色のソケットをそのままoutputにつなげているものを見かけますが。この方法だとビューポートでは思ったとおりに見えていますが、実際にレンダリングしてコンポジットすると出力されるパスが真っ黒になっているため例えばAO等を合成する場合不具合が起きます

動画のようにoutputの前にemissionシェーダーを追加することでパスが出力されます。

ここまでが基本形です。


個人的に最近使う方法

emissionを使うのが一般的で癖が無い方法ですが、個人的にはprincebled BSDFのbasecolorを黒にしてemitに色を繋ぐ方法もよく使います。

見た目はemissionを使った場合とさほど代わりが無いか、わずかに暗い程度ですが、こちらの場合だと金属反射やSSSなどもうひと要素加える場合楽です。


※補足的なこと。未検証なことなど

・shadertoRGBノードは現状反射をワールドと光源の形しか反映しないため色味のある光沢を付けるのに向いてません。
 色味のある光沢をつけたい場合はspecularの色を黒にしてADD shaderで繋ぐと良いと思います。

・2.8xデフォルトのカラーマネージメントfilmicでは色がくすんだ感じになるのでしっかり色を指定する場合はstandardに切り替えたほうが良いです
 (ただしfilmicは後調整するときに色飛びしにくいらしいので敢えてこっちを使って調整する手もあり?)

・blender2.79のときと違ってワールドの光源の影響もしっかり受けるので敢えてワールドのstrengthを0ないし弱い値にしておくと良いかもしれません(当然背景は真っ黒になるので後合成するか便宜法線反転した大きな玉オブジェクトをback face calingしてemissionシェーダー当てて背景代わりに使います)




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