blender-materials について
blender-materialsは、PythonでBlenderオブジェクトに物理ベースのマテリアルを設定するスキルです。Principled BSDFを中心に、金属、ガラス、プラスチック、布、肌、自発光マテリアルの手順を紹介します。
主な機能
- 01Principled BSDFのマテリアル手順
- 02金属と非金属の設定指針
- 03透明・着色ガラスの手順
- 04プラスチック、布、肌のレシピ
- 05光源用の自発光マテリアル
活用シーン
- 01ヘアライン鋼や磨いた金属の適用
- 02透明または色付きガラスの作成
- 03プラスチック、ベルベット、シリコンの設定
- 04発光する電球や看板の作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ roble3/ cc-blender-skill --skill blender-materialsインストール後、Claude Code で/blender-materialsを入力して読み込まれたか確認します。
同梱ファイルevals/evals.jsonreferences/overview.md
詳細
Blender マテリアル
オブジェクトに物理ベースのマテリアルを適用します。Principled BSDF のみを使用してください。glTF にクリーンにエクスポートされ、ほかの DCC ツールが想定する仕様に合うシェーダーはこれだけです。
Metallic の切り替え — 中間の値は使わない
最も重要なルールは、Metallic はスライダーではなくスイッチであることです。0.0(誘電体:プラスチック、木材、ガラス、肌)または 1.0(金属:スチール、金、銅)に設定します。0.2 から 0.8 の値はほぼ常に不適切です。エネルギー保存則に反し、「プラスチックっぽい」見た目になるレンダーが生成されます。
例外:暗色のミラーレンズ(サングラス)では、強い反射とわずかな色味を両立させるために、約 0.8 を使用します。これはスタイル上の選択であり、厳密な PBR ではありません。
判断フロー
What is it made of?
├── Raw metal (steel, gold, copper, etc.)
│ → Metallic=1.0, Base Color = F0 reflectance from physicallybased.info
│ → Roughness controls polish (0.05 mirror → 0.4 brushed → 0.7+ weathered)
│
├── Glass / clear / refractive
│ → Metallic=0, Transmission=1.0, IOR=1.5 (glass), Roughness=0.0
│ → Add Volume Absorption for thick tinted glass
│
├── Plastic / wood / stone (dielectric, opaque)
│ → Metallic=0, IOR=1.45 (plastic) or 1.5 (most others)
│ → Roughness per finish (0.15 glossy / 0.6 matte)
│ → Coat Weight 0.5+ for varnished/lacquered surfaces
│
├── Skin / wax / marble (subsurface scattering)
│ → Metallic=0, Subsurface Weight=1.0
│ → Subsurface Radius RGB tuned per material (skin: red scatters deepest)
│
├── Cloth / fabric (sheen)
│ → Metallic=0, Sheen Weight 0.2-0.5
│ → Roughness 0.6+, Sheen Roughness 0.5
│
└── Mirror / chrome (special metal)
→ Metallic=1.0, Roughness=0.02-0.05, near-white base
リファレンスの見た目を引き継ぐ場合
一般的に魅力的なレンダーを作るのではなく、元画像やリファレンス画像に合わせることが目的であれば、reference-look-calibration を連鎖して読み込みます。色相・彩度・明度、オブジェクトの範囲、グローやオーラの色、変更前後の見た目の指標の測定を担当します。このスキルでは、調整済みの目標に沿って、要求されたマテリアル・ライティング・レンダーの変更を適用してください。
レシピ(覚えておきたい 12 種類)
各レシピではマテリアルを作成し、対象オブジェクトに割り当てます。'GEO-target' は実際のオブジェクト名に置き換えてください。
set_input ヘルパー — 一部の Blender 5.x BSDF 入力で必須
Blender 5.x の Principled BSDF v2 では、データ API 上で 2 つの入力が enabled=False に設定されています。Weight と Subsurface IOR です。これらには イテレーションまたはインデックスでアクセスできますが、文字列キーによる検索はできません。入力が存在し、レンダー時にその値が反映されるにもかかわらず、bsdf.inputs['Subsurface IOR'] は KeyError を発生させます。これは、v0.4.0 から v0.5.0 への検証時に明らかになった Blender 5.x の仕様上の問題です。
入力が無効化されていても機能する状態になっている可能性がある場合は、このヘルパーを使ってください。有効・無効を問わずすべての入力で動作し、今後の Blender バージョンで無効化される入力が増えても互換性を保てます。
def set_input(node, name, value):
"""Set a node input by name. Works on inputs with enabled=False
that fail string-key lookup (e.g. 'Subsurface IOR' on Blender 5.x).
"""
for inp in node.inputs:
if inp.name == name:
inp.default_value = value
return True
return False
確実に有効な入力(Base Color、Metallic、Roughness、IOR、Transmission Weight、Sheen Weight など)には、これまでどおり文字列キーによる直接代入を使えます。このヘルパーが必要なのは、条件付きで無効化される入力だけです。レシピ 9(肌)では、影響を受ける入力の 1 つである Subsurface IOR を設定するため、このヘルパーを使用します。
レシピ 1 — ブラッシュドスチール
import bpy
mat = bpy.data.materials.new('MAT-steel_brushed')
mat.use_nodes = True
bsdf = mat.node_tree.nodes['Principled BSDF']
bsdf.inputs['Base Color'].default_value = (0.56, 0.57, 0.58, 1.0)
bsdf.inputs['Metallic'].default_value = 1.0
bsdf.inputs['Roughness'].default_value = 0.25
obj = bpy.data.objects['GEO-target']
if obj.data.materials:
obj.data.materials[0] = mat
else:
obj.data.materials.append(mat)
print(f"material:MAT-steel_brushed→{obj.name}")
レシピ 2 — ポリッシュドゴールド
import bpy
mat = bpy.data.materials.new('MAT-gold_polished')
mat.use_nodes = True
bsdf = mat.node_tree.nodes['Principled BSDF']
bsdf.inputs['Base Color'].default_value = (1.022, 0.782, 0.344, 1.0)
bsdf.inputs['Metallic'].default_value = 1.0
bsdf.inputs['Roughness'].default_value = 0.05
bpy.data.objects['GEO-target'].data.materials.append(mat)
print('material:gold_polished')
レシピ 3 — ポリッシュドカッパー
import bpy
mat = bpy.data.materials.new('MAT-copper_polished')
mat.use_nodes = True
bsdf = mat.node_tree.nodes['Principled BSDF']
bsdf.inputs['Base Color'].default_value = (0.926, 0.721, 0.504, 1.0)
bsdf.inputs['Metallic'].default_value = 1.0
bsdf.inputs['Roughness'].default_value = 0.05
bpy.data.objects['GEO-target'].data.materials.append(mat)
print('material:copper_polished')
レシピ 4 — ミラークローム
import bpy
mat = bpy.data.materials.new('MAT-chrome')
mat.use_nodes = True
bsdf = mat.node_tree.nodes['Principled BSDF']
bsdf.inputs['Base Color'].default_value = (0.55, 0.56, 0.55, 1.0)
bsdf.inputs['Metallic'].default_value = 1.0
bsdf.inputs['Roughness'].default_value = 0.02
bpy.data.objects['GEO-target'].data.materials.append(mat)
print('material:chrome')
レシピ 5 — 透明なガラス
import bpy
mat = bpy.data.materials.new('MAT-glass_clear')
mat.use_nodes = True
bsdf = mat.node_tree.nodes['Principled BSDF']
bsdf.inputs['Base Color'].default_value = (1.0, 1.0, 1.0, 1.0)
bsdf.inputs['Metallic'].default_value = 0.0
bsdf.inputs['Roughness'].default_value = 0.0
bsdf.inputs['Transmission Weight'].default_value = 1.0
bsdf.inputs['IOR'].default_value = 1.5
bpy.data.objects['GEO-target'].data.materials.append(mat)
print('material:glass_clear')
レシピ 6 — すりガラス
import bpy
mat = bpy.data.materials.new('MAT-glass_frosted')
mat.use_nodes = True
bsdf = mat.node_tree.nodes['Principled BSDF']
bsdf.inputs['Base Color'].default_value = (1.0, 1.0, 1.0, 1.0)
bsdf.inputs['Transmission Weight'].default_value = 1.0
bsdf.inputs['IOR'].default_value = 1.5
bsdf.inputs['Roughness'].default_value = 0.3
bpy.data.objects['GEO-target'].data.materials.append(mat)
print('material:glass_frosted')
レシピ 6b — 色付きガラス(ワインボトル、色付きバイアル、装飾ガラス)
Base Color だけを使って Principled BSDF に色を付けると、色付きガラスは平坦、または金属的に見えます。実際の色付きガラスには体積吸収があります。光は通過した距離に応じて色が付き、厚い部分は暗く、薄い部分は明るく見えます。これが、ガラスをガラスらしく見せる奥行きに基づいた豊かな表現です。
パターン:表面をわずかに粗さのあるほぼ白色に保ち、Material Output の Volume 入力に Volume Absorption シェーダーを接続します。
import bpy
def set_input(node, name, value):
for inp in node.inputs:
if inp.name == name:
inp.default_value = value
return True
return False
mat = bpy.data.materials.new('MAT-glass_wine')
mat.use_nodes = True
nodes = mat.node_tree.nodes
links = mat.node_tree.links
bsdf = nodes['Principled BSDF']
output = nodes['Material Output']
# Surface: near-white with tiny roughness (breaks mirror-finish look)
set_input(bsdf, 'Base Color', (0.85, 0.95, 0.85, 1.0)) # near-white
set_input(bsdf, 'Metallic', 0.0)
set_input(bsdf, 'Roughness', 0.025) # critical: not 0.0; that looks metallic
set_input(bsdf, 'Transmission Weight', 1.0)
set_input(bsdf, 'IOR', 1.52) # bottle glass
# Volume Absorption — depth-based tint
volume = nodes.new('ShaderNodeVolumeAbsorption')
set_input(volume, 'Color', (0.10, 0.45, 0.18, 1.0)) # saturated wine-bottle green
set_input(volume, 'Density', 30.0) # higher = more colour over short distance
links.new(volume.outputs['Volume'], output.inputs['Volume'])
bpy.data.objects['GEO-target'].data.materials.append(mat)
print('material:glass_wine_volume_absorption')
密度の調整:0~10 = ごくわずかな色合い(透明なボトル)、20~40 = 透明なボトルグリーンまたは琥珀色、60~100 以上 = ほぼ不透明(コバルトブルーの薬瓶)。
色の調整:直感とは逆に考えてください。Volume の Color は、通過する光から取り除かれる色です。そのため、「ワインのような緑」には彩度の高い緑、「琥珀色」には彩度の高い黄橙色を使います。
その他の色付きガラスの例(被写体クラスのライティング修正後、v0.9.0 で密度の値を更新):
| 名前 | Volume Color | 密度 | 表面の色合い |
|---|---|---|---|
| ワインボトル(深緑) | (0.05, 0.32, 0.10) | 80 | ほぼ白色 |
| 淡い色付き(透明なバイアル) | (0.10, 0.45, 0.18) | 15 | ほぼ白色 |
| シャンパン/淡いゴールド | (0.85, 0.65, 0.30) | 25 | ほぼ白色 |
| コバルトブルー(薬瓶) | (0.10, 0.20, 0.85) | 80 | ほぼ白色 |
| 琥珀色/茶色のビール瓶 | (0.80, 0.40, 0.10) | 70 | ほぼ白色 |
| ルビーレッド | (0.85, 0.10, 0.15) | 100 | ほぼ白色 |
ニュートラル/ガラスクラスのライティングでの密度調整の目安:
- 密度 5~15 = かすかな色合い(透明+色付き)
- 密度 30~50 = 薄い部分で確認できる中程度の色合い
- 密度 60~100 = ワイン/ビール/コバルトのボトルらしい見た目(ヒーローショットに推奨)
- 密度 100 以上 = ほぼ不透明(芸術的/装飾的な表現)
標準的な 4:1:2 の金属クラスのライティングで Volume の色合いが薄れる場合(v0.7.0 の問題)は、補うために密度を上げないでください。代わりに blender-lighting のレシピ 0a で subject_class='glass' のライティングに切り替えてください。こちらは、Volume の色を保つ柔らかなリムライトを使用します。
重要:厚みのある色付きガラスや重ねた色付きガラスでは、Cycles の transmission_bounces を 16 以上(デフォルトは 12)にする必要があります。そうしないと、光線が途中で終了し、ガラスの内側が黒くレンダリングされます。
scene.cycles.transmission_bounces = 24
注意点:Base Color を色合いの色に設定し、さらに Volume も接続しないでください。色が二重に付いて不自然になります。表面はほぼ白色にし、色は Volume で付けます。
レシピ 7 — マットなプラスチック(赤)
import bpy
mat = bpy.data.materials.new('MAT-plastic_matte_red')
mat.use_nodes = True
bsdf = mat.node_tree.nodes['Principled BSDF']
bsdf.inputs['Base Color'].default_value = (0.8, 0.1, 0.05, 1.0)
bsdf.inputs['Metallic'].default_value = 0.0
bsdf.inputs['Roughness'].default_value = 0.6
bsdf.inputs['IOR'].default_value = 1.45
bpy.data.objects['GEO-target'].data.materials.append(mat)
print('material:plastic_matte_red')
レシピ 8 — ラッカー塗装のプラスチック(自動車塗装のような見た目)
import bpy
mat = bpy.data.materials.new('MAT-plastic_lacquered')
mat.use_nodes = True
bsdf = mat.node_tree.nodes['Principled BSDF']
bsdf.inputs['Base Color'].default_value = (0.8, 0.1, 0.05, 1.0)
bsdf.inputs['Metallic'].default_value = 0.0
bsdf.inputs['Roughness'].default_value = 0.15
bsdf.inputs['IOR'].default_value = 1.45
bsdf.inputs['Coat Weight'].default_value = 0.8
bsdf.inputs['Coat Roughness'].default_value = 0.05
bpy.data.objects['GEO-target'].data.materials.append(mat)
print('material:plastic_lacquered')
レシピ 9 — 肌(明るい肌色)
Subsurface IOR は Blender 5.x で enabled=False になっており、文字列キーによる検索では取得できないため、set_input ヘルパーを使用します。他の入力はどちらの方法でも問題ありませんが、一貫してヘルパーを使うことで、バージョンをまたいでも安全にレシピを利用できます。
import bpy
def set_input(node, name, value):
for inp in node.inputs:
if inp.name == name:
inp.default_value = value
return True
return False
mat = bpy.data.materials.new('MAT-skin_light')
mat.use_nodes = True
bsdf = mat.node_tree.nodes['Principled BSDF']
set_input(bsdf, 'Base Color', (0.85, 0.65, 0.55, 1.0))
set_input(bsdf, 'Metallic', 0.0)
set_input(bsdf, 'Roughness', 0.4)
set_input(bsdf, 'Subsurface Weight', 1.0)
set_input(bsdf, 'Subsurface Radius', (1.0, 0.2, 0.1))
set_input(bsdf, 'Subsurface IOR', 1.4) # ← string-key fails on Blender 5.x; helper bypasses it
bpy.data.objects['GEO-target'].data.materials.append(mat)
print('material:skin_light')
レシピ 10 — ベルベット/シーンのある布地
import bpy
mat = bpy.data.materials.new('MAT-velvet_red')
mat.use_nodes = True
bsdf = mat.node_tree.nodes['Principled BSDF']
bsdf.inputs['Base Color'].default_value = (0.6, 0.0, 0.1, 1.0)
bsdf.inputs['Roughness'].default_value = 0.9
bsdf.inputs['Sheen Weight'].default_value = 0.5
bsdf.inputs['Sheen Roughness'].default_value = 0.5
bsdf.inputs['Sheen Tint'].default_value = (0.8, 0.6, 0.6, 1.0)
bpy.data.objects['GEO-target'].data.materials.append(mat)
print('material:velvet_red')
レシピ 11 — 柔らかなシリコン
import bpy
mat = bpy.data.materials.new('MAT-silicone')
mat.use_nodes = True
bsdf = mat.node_tree.nodes['Principled BSDF']
bsdf.inputs['Base Color'].default_value = (0.65, 0.63, 0.60, 1.0)
bsdf.inputs['Metallic'].default_value = 0.0
bsdf.inputs['Roughness'].default_value = 0.7
bsdf.inputs['IOR'].default_value = 1.4
bpy.data.objects['GEO-target'].data.materials.append(mat)
print('material:silicone')
レシピ 11b — エミッション(ランプの電球、ネオンサイン、画面の発光など、光を放つメッシュ)
Emission は Principled BSDF とは別のシェーダーです。BSDF を ShaderNodeEmission に置き換え、Material Output の Surface 入力に接続します。メッシュ自体が光源になり、Cycles ではシーンの照明に寄与します。
import bpy
mat = bpy.data.materials.new('MAT-bulb_emission')
mat.use_nodes = True
nodes = mat.node_tree.nodes
links = mat.node_tree.links
# Remove the default Principled BSDF
for n in list(nodes):
if n.type == 'BSDF_PRINCIPLED':
nodes.remove(n)
emission = nodes.new('ShaderNodeEmission')
emission.inputs['Color'].default_value = (1.0, 0.92, 0.78, 1.0) # warm tungsten
emission.inputs['Strength'].default_value = 1500.0 # see strength guide below
output = nodes['Material Output']
links.new(emission.outputs['Emission'], output.inputs['Surface'])
bpy.data.objects['GEO-bulb'].data.materials.append(mat)
print('material:bulb_emission')
強度の調整 — メッシュエミッターでは重要です
メッシュの放射輝度は、Strength の値だけでなく、メッシュの表面積に応じて変化します。Strength=50 の小さな球体はほとんど見えませんが、同じ球体でも Strength=1500 にすると、実際の電球のように机を照らします。おおよその値は次の表を参考にしてください。
| メッシュのサイズ | 電球に換算した場合 | Strength |
|---|---|---|
| 1-2 cm の球体(エジソン電球) | 40W の暖色電球 | 800-1500 |
| 3-5 cm の球体(LED グローブ) | 60-100W の電球 | 1500-3000 |
| 10×10 cm の平面パネル(LED パネル) | 室内照明パネル | 100-300 |
| 100×30 cm のストリップ(ネオン管) | ネオンサイン | 50-150 |
| 大きな窓の平面(空のシミュレーション) | 昼光 | 5-20 |
目安:表面積が小さいほど、Strength を高くします。球体の半径を 2 倍にすると、必要な Strength は約 4 分の 1 になります(表面積に反比例します)。
色温度を設定するには (R, G, B) を使用します。
- タングステン(3200K) —
(1.0, 0.85, 0.6) - 暖色 LED(3000K) —
(1.0, 0.8, 0.6) - 昼光(5500K) —
(1.0, 1.0, 1.0) - 昼白色蛍光灯(4500K) —
(0.95, 0.95, 1.0)
ランプシェード — 法線を反転させた内側を分離する
電球がシェードの内側にある場合、電球の光を現実的に反射させるには、シェードの内側の面を明るいマットな白色にする必要があります。単一メッシュのシェードでは外側のマテリアルしか表示されません。解決策:シェードのメッシュを複製し、法線を反転させ、サイズを 97% に縮小して、明るい白色のマテリアルを適用します。これにより、電球がシェードを照らしたときに内側が適切に光ります。
import bpy
# Assuming `shade` is the outer cone with the dark exterior material already applied
shade = bpy.data.objects['GEO-lamp_shade']
bpy.ops.object.select_all(action='DESELECT')
shade.select_set(True); bpy.context.view_layer.objects.active = shade
bpy.ops.object.duplicate()
shade_in = bpy.context.active_object
shade_in.name = shade.name + '_interior'
# Flip normals so the inside surface faces inward
bpy.ops.object.mode_set(mode='EDIT')
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.flip_normals()
bpy.ops.object.mode_set(mode='OBJECT')
# Bright white interior
mat_in = bpy.data.materials.new('MAT-shade_interior')
mat_in.use_nodes = True
b = mat_in.node_tree.nodes['Principled BSDF']
b.inputs['Base Color'].default_value = (0.95, 0.93, 0.88, 1.0)
b.inputs['Roughness'].default_value = 0.5
shade_in.data.materials.clear()
shade_in.data.materials.append(mat_in)
shade_in.scale = (0.97, 0.97, 0.97)
print('material:shade_interior_white')
レシピ 12 — プロシージャルな木材(10 ノード)
import bpy
mat = bpy.data.materials.new('MAT-wood_procedural')
mat.use_nodes = True
nodes = mat.node_tree.nodes
links = mat.node_tree.links
bsdf = nodes['Principled BSDF']
# Texture coordinate
tex_coord = nodes.new('ShaderNodeTexCoord')
tex_coord.location = (-800, 0)
# Mapping
mapping = nodes.new('ShaderNodeMapping')
mapping.location = (-600, 0)
mapping.inputs['Scale'].default_value = (3, 3, 3)
# Wave (the grain)
wave = nodes.new('ShaderNodeTexWave')
wave.location = (-400, 100)
wave.wave_type = 'BANDS'
wave.bands_direction = 'X'
wave.inputs['Scale'].default_value = 5.0
wave.inputs['Distortion'].default_value = 4.0
# Noise (variation)
noise = nodes.new('ShaderNodeTexNoise')
noise.location = (-400, -100)
noise.inputs['Scale'].default_value = 8.0
# Mix wave + noise
mix = nodes.new('ShaderNodeMixRGB')
mix.location = (-200, 0)
mix.blend_type = 'MULTIPLY'
mix.inputs[0].default_value = 0.5
# ColorRamp (tonal range)
ramp = nodes.new('ShaderNodeValToRGB')
ramp.location = (0, 0)
ramp.color_ramp.elements[0].color = (0.15, 0.07, 0.03, 1.0) # dark wood
ramp.color_ramp.elements[1].color = (0.6, 0.35, 0.18, 1.0) # light wood
# Wire
links.new(tex_coord.outputs['Generated'], mapping.inputs['Vector'])
links.new(mapping.outputs['Vector'], wave.inputs['Vector'])
links.new(mapping.outputs['Vector'], noise.inputs['Vector'])
links.new(wave.outputs['Color'], mix.inputs[1])
links.new(noise.outputs['Color'], mix.inputs[2])
links.new(mix.outputs['Color'], ramp.inputs['Fac'])
links.new(ramp.outputs['Color'], bsdf.inputs['Base Color'])
bsdf.inputs['Roughness'].default_value = 0.7
bpy.data.objects['GEO-target'].data.materials.append(mat)
print('material:wood_procedural')
注:プロシージャルマテリアルは glTF にエクスポートされません。Web/ゲーム向けにエクスポートする場合は、まず画像テクスチャにベイクしてください。
PBR 値のリファレンス
金属の正確な F0 反射率の値は、physicallybased.info を参照してください。50 種類以上のマテリアルが掲載されています。上記のレシピでは、このデータベースの値を使用しています。
マテリアルの命名規則
MAT-{purpose}_{subtype}_{finish}。例:
MAT-frame_metal_brushedMAT-lens_glass_dark_mirrorMAT-pad_silicone_warm_grayMAT-wood_oak_glossy
Material.001 や Material.027 のような名前は避けてください。必ず名前を変更します。
よくある問題
| 症状 | 修正方法 |
|---|---|
| 金属が「プラスチックっぽい」 | Metallic は必ず 0 か 1 にします |
| 金属が黒い | ベースカラーが暗すぎます。金属は 30–100% を反射するため、sRGB で ≥0.5 にしてください |
| Roughness が 0 だとアーティファクトが出る | 最小値は 0.01–0.05 にします |
| ガラスが黒くレンダリングされる | Cycles の透過バウンス数を増やします(Recipe セクション 11-rendering) |
| glTF でマテリアルが表示されない | プロシージャルシェーダーが原因です。まず画像にベイクしてください |
| ノーマルマップがおかしく見える | 画像テクスチャのカラー空間を「Non-Color」に設定します |
| ラフネスマップが sRGB になっている | 画像テクスチャを「Non-Color」に設定します |
KeyError: 'Subsurface IOR'(またはその他の入力) | Blender 5.x の仕様です。入力の enabled=False が原因です。bsdf.inputs['Name'] ではなく、このファイルの先頭にある set_input ヘルパーを使用してください |
references/overview.md を読み込むタイミング
次の場合に読み込みます。
- 必要なレシピが上記の 12 個にない場合
- 異方性(ブラッシュドメタルの方向)、体積吸収(色付きの厚いガラス)、または高度なシェーダーノードの組み合わせが必要な場合
- ユーザーが 1 つのメッシュ内でのマテリアルのバリエーション(Mix Shader のパターン)を求めている場合
- エクスポート用にプロシージャルテクスチャを画像テクスチャにベイクする場合
リファレンスには、Principled BSDF の全パラメーター一覧、50 種類以上のマテリアルを掲載したデータベースへのリンク、プロシージャルテクスチャの組み合わせ(Voronoi、Wave、Noise)、Sheen と Subsurface の詳細解説、エクスポート用のベイクのワークフローが含まれています。