【Blender】リアル系肌マテリアルを作る(シェーダーエディターでノードだけを利用して作る)

Node Wranglerというアドオンは入れておくこと。

パターン①

上のYoutubeを参考に、というかもろにそのままやってみたという内容。肌をフォトリアルとまではいかないまでもそこそこリアル寄りにできると思う。

肌に自然なむらを出す作業

肌の色が均一化しすぎないようにするため、Add – Texture – NoiseTexture Add-Input-TextureCordinateの二つのノードを追加(NoiseTexture を出してから、NoiseTexture 選択状態でControl + T 、新しく出てきたノードの紫のMappingを削除することでも可能)

つなぎ方は下記の通り。

これでむらが描写される。

ColorRampで基本の肌の色を設定する

Converter-ColorRampでカラーランプノードを作成し、NoiseTextureとPrincipleBSDFの間に挿入する。

赤丸で囲ったマークが二つある。ここにそれぞれ色を設定し、その2色間でグラデーションを作っていく。

マークをクリックしてから下の波線を選択するとカラーパレットが開くので、それを左右両方で行う。

そうするとむらがだいぶ自然に描写されるようになる。

肌の凹凸を作っていく

肌に凹凸をつけるシェーダーを作成していく。使うのはNoiseTexture。

上で作ったNoiseTextureノードを選択した状態で Shift – D で複製する。それを同じくTextureCordinateノードのObjectとVectorに接続。

ここから少し数値を調整したいので、Controlキー – Shiftキー を押した状態で先ほど作った NoiseTextureノードをクリックする。と画像のようにViewerと自動で接続されて、こちらのNoiseTextureノードだけでプレビューが可能になる。

あとはScaleとDetailの数値を上げて、まだら模様が細かくなるようにする。

そしたらBumpノードをAddして、NoiseTexture – Bump.Height – Normal と接続する。そしてControl – Shiftを押したままBumpノードをクリックしてみる。 画像のようになればOK。

Control – Shiftを押したまま今度は BSDFノードを選択すると各ノードが効いた状態に戻る。

これだとぼこぼこし過ぎなので、BumpノードのStrength項目を小さくして調整する。

こんな感じの肌質になる。

もうひとつ凹凸を加えてより自然に

こっちではVoronoiTextureというノードを使っていく。VoronoiTextureをAddして同じようにObjectとVectorで接続する。

上から2つ目の項目を DistanceToEdgeに変更し、Scaleの数値を上げる。できたらShift+CtrlでVoronoiTextureをクリックしてみてみる。画像のようにタイル状の感じになる。

次いで上で作ったBump①を複製する(Bump②とする)。

Bump②をVoronoiTextureとHeightで接続、さらにBump②とBump①を接続する。そしたら画像のような質感になる。

この時点でも十分かもしれない。が続ける。

さらにVoronoiTextureを加える

同じようにVoronoiTextureとBumpを作成し、間にColorRampノードを挿入する。

このColorRampの右側のスライダーをいじることで角質をどれくらいくっきり描写するかを調整する(右よりなほどくっきり、左に寄せるとマイルドになる)

出来上がりはこんな感じ。(モデルは別モデル)

調整方法

シェーダーの全体図はこんな感じ。

Ver1
Ver2
Ver3

調整を行う前にSubsurfaceをゼロにしておいた方がわかりやすい。

全体の陰影や角質の感じは各TextureのScaleの値と、BumpのStrengthをいじって調整しよう。

色の調整は一番初めに作ったRampをいじってまず行いつつ、ついでSubsurfaceの数値やSubsurfaceColorを調整してやる。

パターン2

細かい説明は省略。パターン①と似ているのでそっちを参照。

全体図

ベースカラーの部分

ノーマルマップの拡大

注意点

UV展開している人体モデルに当てるときの注意

UV展開しているモデルがあり、かつUVのサイズバランスを相当いじっている場合。当然のことながらマテリアルの描写の精密さにもバラけが生じる。(画像だと顔は精細だが首はやたら雑になっている)

これを解消するにはTextureCoodinateノードの出力をGeneratedにする。

コメント

タイトルとURLをコピーしました