この記事にはプロモーションが含まれています。

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

blender

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

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

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

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

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

難易度 2.0

Blenderの4.3で新しく変わったサブサーフェス・スキャタリングの設定、使い方を解説します。

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

スポンサーリンク

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

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

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

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

人間の肌や、生き物は内部の血液や赤身が表現できると柔らかく活き活きとして見えます。リアルで魅力的なキャラクターを作るときに必須な項目なのでマスターしていきたいところです。

スポンサーリンク

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

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

Principled BSDF のサブサーフェス

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

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

Weight 0で元のBase Colorの色(サブサーフェス効果無し)

Weight 1でサブサーフェス効果Maxで表示

Subsurface Scattering ノード

基本的にPrincipled BSDFノードのSubsurfaceと同じですが、Subsurface独自のIORがついていることが特徴です。

また、Random WalkのときにRoughnessの項目があります。

Roughness 0

Random Walkのときに出る補色の色の際がくっきりします。

Roughness 1

Random Walkのときに出る補色の色の際がぼけます。

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

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

スポンサーリンク

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

Subsurface Method

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

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

三種類あります。

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

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

① Christensen-Burley

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

調整できる項目

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

② Random Walk

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

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

調整できる項目

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

自分が使ってみた印象は、補色の色がすごい出ます。右図みたいに、赤を強くすると補色の緑もすごく強く出ます。

どうも重なったところでバグって補色が出てるみたいです。

目とか口とか内側にメッシュを折りこむところでバグって補色がでているらしい…。

③ Random Walk(Skin)

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

半径(Radius)を「カラー・異方性・IOR」などから自動で調整。微妙なディテールや色合いの変化をより忠実に再現できる

調整できる項目

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

IORを調整できるようになっているので数値を上げると多少マシになるけど、やはり目など、メッシュが中に折れているところで補色が出るバグが出現している

3種類の中で一番リアルな肌っぽい複雑な表現ができています。

スポンサーリンク

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

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

Roughnessは「Subsurface Scattering ノード」の項目で少々触れたのと、よくわからないのでパスします。

❶Weight

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

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

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

❷Radius

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

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

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

※表面下の散乱半径なのでかなり小さい値にするのが普通らしいです。(0.001~0.05くらいとか)そうするとバグの補色が出にくくなります。

❸Scale

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

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

❹IOR

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

数値を大きくすると、元の色と混ざっていくような(効果が小さくなる)変化があります。

❻Anisotropy

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

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

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

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

スポンサーリンク

人間の肌の赤みを出す

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

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

なるべくPrincipled BSDF ノードのサブサーフェスだけでやってみます。

全体の設定

Base Colorに赤みがかった肌色

全体のIORが人間の肌は0.58(下記リンク参照)

Roughnessを少し上げます。

Subsurfaceの設定

  • Subsurface Method…Random Walk(Skin)
  • Weight…1
  • Scale…1.4(適当に調整)
  • Radius…R:0.03 G:0 B:0(数値を小さくするとバグの補色が出にくくなります)
  • IOR…1.2(適当に調整)
  • Anisotropy…0.8(Blenderマニュアルより)

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

レンダーエンジン:Cycles
View Transform: AgX
Look: High Contrast
ライト:後ろからのリムライト(白)と左からのライト(少し黄色)

Radiusを小さくしないといけないので赤みを誇張することが難しかったですが、このくらいまで赤くなります。

左からのライトにより、鼻周辺もサブサーフェスの効果が出ています。

唇周辺に補色の緑のような色がうっすら見えますが、テクスチャで唇の色が乗ったらわからないんじゃないかな…多分。

血色がよくなるとそれだけでぐんと生きた人間らしくなりますね。