【Blender4.5】サブサーフェス スキャタリングを画像付き解説。人間の肌の赤みを出す方法

blender
記事内に広告が含まれています。

BlenderでのSubsurface Scattering(SSS:サブサーフェス スキャタリング)は、強い光が当たったときに現れる人間の肌の赤みのような、内部の色が鮮やかに出てくるときに使えるシェーダーノードです。

この効果を使うことで、人間や毛のない動物などの肌が活き活きとし、やわらかく生命に溢れた表現ができるようになります。

人間をせっかくモデリングしたのにマテリアルをつけたら人形みたいになってしまう…というときに絶対やってみた方がいい改善策です。

人間の肌だけではなく、障子、レースなど薄くて、光が中を通り抜けるけどぼやけるものにも使えます。

この記事は、Blenderのマテリアルノードの「Subsurfaceサブサーフェス)」について詳しく知りたい初心者~中級者向けの記事です。

難易度 2.0

※2025/5月時点でBlender4.4のノードの使い方を解説しています。旧バージョンとはノードのパラメータ項目が変わっているので注意してください。

※2025/9月時点でBlender4.5のノードの使い方を解説しています。Blender4.3でUIやパラメータが変化していますので注意してください。

スポンサーリンク

サブサーフェス・スキャタリング(SSS)とは?

サブサーフェス・スキャタリング(SSS)光

光が物体の表面を通過し、内部で散乱した後に再び外へ出る現象のこと。肌、ワックス、大理石、ミルク、ロウソク、果物などの半透明な素材に見られる。通常の表面反射(スペキュラー)とは異なり、光が内部に入ってから拡散するため、柔らかく透けるような見た目になる。

光が表面の下に入り、内部の色を反射するので、内部の色が鮮やかに見えるようになります。

光を当てる方向

光を当てる方向によってサブサーフェス・スキャタリング(SSS)光の見え方が違います。

正面から光を当てたとき、SSS光は物体の内部に入り別の方向へ散乱し出ていきます。影の部分にも光が広がり、内部の色が出てくるので、柔らかい見え方になります。

背面から光を当てると、SSS光は影になってる部分全体に散乱しこちらに光が透過してきて、内部の色が強く出てくるときがあります。

手を光にかざすと、赤みが増して指先などが赤く発光して見えますが、あれがSSS光の特徴の1つです。

SSS光を表現するときは光の当て方も重要になります。うまく表現できない、と言う方はまずオブジェクトの裏側にライトを置いて光を当ててみましょう。

人間の肌や、生き物は内部の血液や赤身が表現できると柔らかく活き活きとして見えます。リアルで魅力的なキャラクターを作るときによく使われる効果です。

スポンサーリンク

Principled BSDF のサブサーフェスとSubsurface Scattering ノードの違い

BlenderのサブサーフェスはPrincipled BSDFノードのサブサーフェスパラメータとSubsurface Scattering ノードで調整することができます。

※使えるメソッドが限定されますが、EEVEEでも使うことができる表現です。

Principled BSDF のサブサーフェス

Principled BSDFノードのSubsurfaceタブの中にメニューがあります。

Subsurface Scattering ノードとの主な違いはWeightの項目があり、サブサーフェスの効果を0~1で調整できることです。

Subsurface Scattering ノード

基本的にPrincipled BSDFノードと同じですが、Random WalkメソッドでIORのパラメータがついています。

他の材質と合わせたいときにはMix ShaderAdd Shaderなどでミックスします。

サブサーフェス・スキャタリング(SSS)は人間の肌や果物など、他の材質と組み合わせて使いたい場面が多いと思いますので、初心者はPrincipled BSDFノードのサブサーフェスを使った方が簡単かと思います。

スポンサーリンク

サブサーフェスのメソッドについて

Subsurface Method

サブサーフェススキャタリングをシミュレートするレンダリング方法。によって調整できるパラメータが違います。

  • Christensen-Burley
  • Random Walk(EEVEE使用不可
  • Random Walk(Skin)(EEVEE使用不可

三種類あります。

簡単に言うと❶Christensen-Burleyはノイズも少ない簡易なもの、❷Random Walkはより正確に散乱を計算したリアルな効果、❸Random Walk(Skin)は肌に最適化したレンダリング手法です。

※EEVEE使用不可の二つは、EEVEEのときに使うと自動的にChristensen-Burley方式に変換されます。

① Christensen-Burley

物理ベース風の近似計算。ざっくり速くて軽いが、やや正確さに欠ける。ノイズが出にくい。

EEVEEでも使えますが全体的に色が拡散しすぎてリアルな表現はできません

調整できる項目

  • Radius(RGBそれぞれの光の散乱距離)
  • Scale(Radiusにかける値)

② Random Walk

よりリアルなSSS、でもレンダリングが重い

光を散乱させて計算するのでよりリアルな表現ができる。薄い部分・カーブが多い物体に強い。ただし、メッシュが「閉じていない」とバグりやすい(穴・重なりに弱い)

調整できる項目

  • Scale
  • Anisotropy
  • IOR(Subsurface Scatteringノードのみ)
  • Roughness(Subsurface Scatteringノードのみ)

メッシュの穴・重なった部分に、散乱光の補色の色にじみ出てくる。

例えば赤を強く散乱しようとすると、重なったところでバグって補色の緑が出るという感じです。

↑目とか口とか内側にメッシュを折りこむところで散乱する光の色の補色が出てしまっています。

Anisotropyで透過してくる光を増やし、Scaleで散乱距離を抑えると比較的マシになります。

③ Random Walk(Skin)

肌に最適化された繊細で柔らかい描写

半径(Radius)を「カラー・異方性・IOR」などから自動で調整。肌の色をリアルに再現するように特化したメソッド。

調整できる項目

  • Scale
  • Anisotropy
  • IOR
  • Roughness(Subsurface Scatteringノードのみ)

他のパラメータなどを見て自動でリアルな肌の色に寄せるよう調整するので、赤が強く出るように設定しても、少し赤身を抑えてくれて黄色もいれてくれてます。

やはり目の周辺など、メッシュが中に折れているところで補色が出るバグが出現していますが、3種類の中で一番リアルな肌の複雑な表現ができています。

スポンサーリンク

サブサーフェスの各パラメーターについて

  • Weight(効果の強さ。0だとただのDiffuseの色になる)
  • Radius(RGBそれぞれの光の散乱距離、大きい方が広がる)
  • Scale(Radiusにかける値)
  • IOR(表面下への入射光の屈折率)
  • Roughness(Subsurface ScatteringノードのRandom Walkにしかない)
  • Anisotropy(散乱する方向のランダムさ)

❶Weight

Principled BSDFノード のサブサーフェスにしかありません。

サブサーフェスの効果を0~1で調整できます。

0のときは効果なし(元の色)

❷Radius

光がサーフェスの下を散乱する平均距離。RGBそれぞれの光の散乱距離として使用する。数値が大きい方が色が広がり、柔らかく見えます。

この色を変えると、散乱、透過して見える光の色が変わります。見えてほしい色の値を大きくすればOKです。

RGBノードをつなぐと視覚的に見やすいです。

RadiusにはRGBノードなどをつないで色を決めてから、Scaleで散乱半径を全体調整するという方法が一番簡単でわかりやすいのではないかと思っています。

スポンサーリンク

❸Scale

Scaleは❷Radiusの散乱平均半径にかける値です。

なので数値を大きくするとサブサーフェスの光の距離が広がります。0をかけると0になるのでサブサーフェスの効果が消えます。

大きさによって適切な距離は違う

また、オブジェクトの大きさによって、適切な散乱距離は違います。

そのオブジェクトの中をどのくらい広がるかなので、オブジェクトが小さい方がすぐ明るく光が広がってくる傾向にあります。

オブジェクトの大きさに合った、適切な距離に調整しましょう。

Radiusで散乱する色を決めて、Scaleで効果の大きさを調整する、というように使うのがオススメ

❹IOR

IORは表面ではなくて、表面下への入射光の屈折率らしいです。(Blenderマニュアルより)

数値を大きくすると、光が内部へいってしまうのでSSSの効果がなくなるような変化があります。

❺Roughness

Random Walkメソッドのときのみ、Roughnessの項目があります。

Roughness 0

散乱する色の際がくっきりします。

Roughness 1

散乱する色の際がぼけます。

❻Anisotropy

Anisotropyは異方性で、サブサーフェス・スキャタリング(光が物体表面を透過して内部で拡散・散乱する現象)の散乱が特定の方向に偏る度合いです。0だと全方向に均一に散乱し、数値が高いほど前方に偏ります。

効果が微妙ですが、右図で違いが出ています。

0のときは光の方向が散乱し暗いですが、1のときはこちらに向けて光が透過してきているので逆光では少し明るめになります。

物質固有の数値がある程度決まっていて。Blenderのマニュアルでは人間の肌は0.8だと書いてあります。数値が高いほど、透き通ったように光が透過してくるようになります。

スポンサーリンク

人間の肌の赤みを出す

各パラメータの内容が大体把握できましたので、人間の肌の赤みを出していきたいと思います。

人間の肌の各パラメータの設定

Principled BSDF ノードのサブサーフェスを使います。

全体の設定

Base Color…下の画像のような色合い、テクスチャを使いました。(マテリアルプレビュー)

IOR…全体のIORと、SSSのIORがあり、どちらも影響してくるんですが、まとめて調整しました。人間の肌のIORは0.58だとか1.4とかいうデータあるんですが、赤みの調整に使うので無視。ちなみに1.0以下は実際の物質として不自然な数値になるので、なるべく1.0以上を心がけました(IORは小さくすればするほど赤みが出てきます)

Roughness…見た目の質感が不自然にならないよう、光が柔らかく広がるように上げました。

Subsurfaceの設定

  • Subsurface Method…Random Walk(Skin)
  • Weight…1
  • Scale…0.01 補色が出ないくらいに調整
  • Radius…赤寄りオレンジ(赤みの調整)
  • IOR…1.05 全体のIORとまとめて設定
  • Anisotropy…0.8(Blenderマニュアルより)

レンダリング設定、撮影条件

レンダーエンジン:Cycles
View Transform: AgX
Look: None
Composite: Glare Bloom
ライト:耳や鼻などにSSS光を出すためキャラクターの後ろ側にエリアライト2個(ホワイト)。Spreadの値もSSS光に影響が出る。あまりに光が拡散しているとSSS光も弱くなる。

キャラの前方にポイントライト1つ

スポンサーリンク

完成

左図のようにSSS光を表現できました。

調整の順番としては、

  • Radiusで色を決めて、
  • Scaleで補色のバグが出ないように抑え、
  • IORで効果を調整する

ような感じにするとやりやすいのではないかと思います。

血色がよくなるとそれだけでぐんと生きた人間らしくなるというか、人形っぽくなくなると思います。

SSS光はサブサーフェスのパラメータ+全体のパラメータ+ライト など多数の要素で表現が変わってくるので、初心者には結構難しいかもしれません。ライトは後ろ側においた方が効果を実感しやすいです。