blender-shader-nodes について
Blender 5.x のマテリアルやシェーダーノードを扱うスキルです。ノードツリーの構築や Python スクリプト作成に使え、ノード資料、マテリアル例、レンダーエンジンの違い、デバッグ方法を含みます。
主な機能
- 01マテリアルとノードツリーの設計
- 02Python スクリプトでノードを構築
- 03ノードカタログと API の参照
- 04Cycles と EEVEE の比較
- 05マテリアル表示問題の診断
活用シーン
- 01テクスチャベースの PBR マテリアル作成
- 02プロシージャルマテリアルやガラスの作成
- 03法線マップや透過の問題の調査
- 04Cycles と EEVEE に合わせたマテリアル調整
MCP 対応
公式 Blender MCP Server を優先し、実行中の Blender セッションでマテリアル作成、ノード接続、ビューポートレンダーの取得を行います。未接続時は Python スクリプトを使い、変更前のシーン確認とスクリーンショットまたは要約による検証を推奨します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ ra100/ blender-claude-plugin --skill blender-shader-nodesインストール後、Claude Code で/blender-shader-nodesを入力して読み込まれたか確認します。
同梱ファイルreferences/node_reference.mdreferences/python_api.md
詳細
Blender Shader Nodes Expert
概要
このスキルでは、Blender 5.x のシェーダーノードに関する専門的なガイダンスを提供します。マテリアル設定の設計、シェーダーノードツリーをプログラムで構築する Python スクリプトの作成、レンダーエンジンの違い(Cycles と EEVEE)の理解、シェーダーノードの完全なカタログへのアクセスを扱います。5.0 および 5.1 の変更点(Raycast ノード、Normal Map の OpenGL/DirectX 切り替え、OpenColorIO 2.5)も含みます。
MCP を優先するアプローチ
マテリアルの作成、シェーダーツリーの接続、実行中の Blender セッションでのビューポートレンダーの直接サンプリングには、公式 Blender MCP Server(Blender Lab、Blender 5.1 以降)を優先してください。MCP サーバーに接続されていない場合に限り、Python スクリプトの出力に切り替えてください。
検出: セッション開始時に、名前が execute_blender_code、get_objects_summary、search_api_docs に一致するツールを探してください。これらは公式の blender-mcp サーバーに属します。いずれかが存在すれば、MCP を利用できます。
このスキルで使用するツール:
execute_blender_code— ライブセッションでbpyPython を実行します(主な操作)get_objects_summary、get_object_detail_summary— 変更前にシーンの状態を調べますget_blendfile_summary_datablocks/_missing_files/_of_linked_libraries/_path_info/_usage_guess— ファイルの内容を一覧表示しますsearch_api_docs、get_python_api_docs、search_manual_docs— API/オペレーターの正しい名前を確認してから呼び出しますget_screenshot_of_window_as_image/_as_json、get_screenshot_of_area_as_image— スクリーンショットで視覚的な結果を確認しますjump_to_tab_by_name、jump_to_tab_by_space_type、jump_to_view3d_object_by_name、jump_to_view3d_object_data_by_name— 変更が見えるように UI を操作しますrender_thumbnail_to_path、render_viewport_to_path— 視覚的なフィードバックをすばやく取得します
ワークフロー: get_* / search_* ツールで調査し、execute_blender_code で変更してから、スクリーンショットまたは要約ツールで確認します。失敗箇所を特定しやすいように、コードブロックは小さく、冪等にしてください。
セットアップについては、docs/blender-mcp-setup.md を参照してください。
タスクの判断ツリー
- 「X のマテリアルを作成する」 -> マテリアルの種類を特定し、ノードツリーを設計して、Python コードを生成します(マテリアルのレシピを参照)
- 「マテリアルの表示がおかしい」 -> デバッグのワークフローに従います
- 「X を行うノードはどれ?」 ->
references/node_reference.mdを参照します - 「ワールドライティング/HDRI を設定する」 -> Python API リファレンスのワールド/環境パターンを参照します
- 「シェーダーノードツリーをスクリプト化する」 -> API のパターンについて
references/python_api.mdを参照します - 「Cycles と EEVEE のどちらを使うべき?」 -> node_reference.md のレンダーエンジン互換性セクションを確認します
シェーダーノードツリーの生成
Python でマテリアルを作成する場合:
- 正しい API のパターンとノードタイプ文字列について、
references/python_api.mdを読みます - 次のパターンに従ってスクリプトを構成します:
use_nodes = Trueでマテリアルを作成する- デフォルトのノードを消去する
- 正しいタイプ文字列ですべてのノードを追加する
- ノードを左から右に配置する(x 間隔は約 300、y 間隔は約 200)
- 入力のデフォルト値を設定する
- ノード間のリンクをすべて作成する
- 対象オブジェクトにマテリアルを割り当てる
- 複雑な設定を論理的なセクションに整理するには、Frame ノードを使用します
ノードタイプ文字列の規則
- ほとんどのシェーダーノード:
ShaderNode<PascalCaseName>(例:ShaderNodeBsdfPrincipled、ShaderNodeTexNoise) - ジオメトリ入力:
ShaderNodeNewGeometry(ShaderNodeGeometryではありません) - カラー属性:
ShaderNodeVertexColor - Mix ノード:
data_typeを'RGBA'、'FLOAT'、または'VECTOR'に設定したShaderNodeMix - Color Ramp:
ShaderNodeValToRGB - 正確なタイプ文字列がわからない場合は、
references/python_api.mdを参照してください
マテリアルのレシピ
PBR マテリアル(テクスチャベース)
- Texture Coordinate -> Mapping -> Image Texture(s) -> Principled BSDF -> Material Output
- マップを接続します:Base Color(sRGB)、Roughness(Non-Color)、Metallic(Non-Color)、Normal Map(Non-Color)-> Normal Map ノード -> Normal 入力
- Non-Color 画像には
image_tex.image.colorspace_settings.name = 'Non-Color'を設定します
プロシージャルマテリアル
- Texture Coordinate → Noise/Voronoi/Wave Texture → Color Ramp → Principled BSDF
- Mix ノードを使用して複数のテクスチャを重ね、複雑さを加えます
- Texture Coordinate に Separate XYZ を使用して、軸に応じたパターンを作成します
ガラス/透明
- Principled BSDF の Transmission Weight を 1.0、Roughness を 0.0(透明)または 0 より大きい値(すりガラス)、IOR を 1.45-1.52 に設定します
- 代替方法:より簡単に設定するには Glass BSDF ノードを使用します
- EEVEE:マテリアルとレンダー設定の Screen Space Refraction を有効にします
金属
- Principled BSDF の Metallic を 1.0、Base Color を金属の色合い(金:1.0, 0.766, 0.336)、Roughness を 0.1-0.4 に設定します
- 代替方法(5.0):物理的に正確な複雑な IOR には Metallic BSDF ノードを使用します
- 指紋や傷を加えるには、プロシージャルテクスチャと Roughness をミックスします
皮膚/サブサーフェス
- Principled BSDF の Subsurface Weight を 0.3-1.0、RGB の散乱に合わせて Subsurface Radius を (1.0, 0.2, 0.1) に設定します
- 皮膚のテクスチャを Base Color に、ディテール用の法線マップを Normal に接続します
- Cycles:最高品質を得るには Random Walk メソッドを使用します
発光/ネオン
- Principled BSDF の Emission Color に任意の色、Emission Strength に 1-50+ を設定します
- または、スタンドアロンの Emission ノードを Material Output(Surface)に接続します
- 発光効果を得るには、レンダー設定(EEVEE)で Bloom を有効にします
トゥーン/セルシェーディング(EEVEE)
- Principled BSDF(または任意の BSDF)→ Shader to RGB → Color Ramp(補間を Constant に設定)→ Material Output(Emission またはカスタム出力経由)
- Color Ramp の停止位置で、段階的なシェーディング帯を作成します
- Shader to RGB は EEVEE 専用です
ワールド/HDRI 環境
- Environment Texture(.exr/.hdr を読み込み)→ Background → World Output
- 回転させるには、Texture Coordinate(Generated)と Environment Texture の間に Mapping ノードを追加します
- Background Strength で強度を設定します
ディスプレイスメント
- Texture → Displacement ノード → Material Output(Displacement ソケット)
- マテリアルのディスプレイスメント方式を設定します:
mat.cycles.displacement_method = 'BOTH'96#HB|3. メッシュに細分化が必要です(Subdivision Surface モディファイアー、または Cycles の Adaptive Subdivision)
Raycast ノード(Blender 5.1)
- ShaderNodeRaycast はシェーディング点からレイを投射し、ヒット情報を返します
- 出力:Position、Normal、Distance、Object、Is Hit
- マテリアル駆動の近接効果、オクルージョン、交差判定に役立ちます
- レイの方向と長さの制限を指定できます
- Cycles と EEVEE の両方で動作します
法線マップの改善(Blender 5.1)
- 法線マップのタンジェント空間規約を設定する、新しい OpenGL/DirectX 切り替え機能
- OpenGL(デフォルト)と DirectX を切り替えて、ゲームエンジンで反転した法線マップを修正します
- 変位後のメッシュ上で法線マップを計算する新しいオプション(Cycles のみ)
normal_map_node.invert_yまたはnormal_map_node.tangent_space_conventionを使用して切り替えます
ボリューム(霧/煙)
- Principled Volume → Material Output(Volume ソケット)
- または、Volume Absorption + Volume Scatter → Add Shader → Material Output(Volume)
- Density、Color、Anisotropy を設定します
デバッグと最適化
よくある表示上の問題
- マテリアルが黒く見える:Material Output に有効な Surface 接続があることを確認します。テクスチャで UV 座標が必要な場合は、オブジェクトに UV 座標があることを確認します
- マテリアルが白く/平坦に見える:テクスチャの接続がないか、すべてのテクスチャの色空間が正しく設定されていません
- EEVEE でガラス/透明効果が機能しない:レンダー設定とマテリアル設定の両方で Screen Space Refraction を有効にします。ブレンドモードを Alpha Hashed または Alpha Blend に設定します
- 法線マップがでこぼこ、または正しく見えない:法線マップ画像の色空間が Non-Color に設定されていることを確認します。Normal Map ノードの空間が正しく設定されていることを確認します(ほとんどの場合は Tangent)
- テクスチャが伸びる:オブジェクトに適切な UV 展開が必要です。または、Mapping ノードとともに Object または Generated テクスチャ座標を使用します
- Cycles のレンダーにファイアフライノイズが出る:ライトのバウンスを減らす、レンダー設定で Clamp Direct/Indirect を使用する、またはノイズ除去を行います
パフォーマンスのヒント
- 個別のシェーダーより Principled BSDF を使用する:Principled BSDF は内部で最適化されています。Diffuse + Glossy + Glass を手動で組み合わせると、処理が遅くなります
- テクスチャの解像度を抑える:ほとんどの場合は 2K テクスチャを使用し、クローズアップで細部が必要な場合にのみ 4K を使用します
- Noise Texture の過剰な重ね合わせを避ける:ノイズの計算はそれぞれコストがかかります。アニメーション用の複雑なプロシージャルテクスチャはベイクします
- EEVEE のスクリーンスペースエフェクト:スクリーンスペース反射、屈折、SSS はマテリアルごとの処理負荷を増加させます。必要なマテリアルでのみ有効にします
- ビューポート用に簡略化する:ビューポートのプレビューモードでは、テクスチャ解像度を下げるか、よりシンプルなシェーダーを使用します
EEVEE と Cycles の簡易ガイド
| 機能 | Cycles | EEVEE |
|---|---|---|
| レンダリング | パストレーシング(正確) | ラスタライズ(高速、近似) |
| SSS | Random Walk(正確) | スクリーンスペース(近似) |
| 反射 | レイトレーシング | スクリーンスペース + プローブ |
| 透明度 | レイトレーシング | アルファブレンディング/ハッシュ |
| ボリューム | 完全なボリュームレンダリング | 限定的なボリューム対応 |
| ディスプレイスメント | 真の変位 + 適応細分化 | 非対応(Normal Map を使用) |
| OSL | 対応(CPU のみ) | 非対応 |
| シェーダーから RGB | 非対応 | 対応(トゥーンシェーディング) |
ノードリファレンス
カテゴリ(Input、Output、Shader、Texture、Color、Vector、Converter、Script)ごとに整理されたすべてのシェーダーノードの完全なカタログについては、references/node_reference.md を参照してください。
検索する主なセクション:
- BSDF/シェーダーの種類:「BSDF」または「Shader」を node_reference.md で検索します
- テクスチャノード:「Texture」を検索します
- Principled BSDF の入力:「Principled BSDF - Detailed」を検索します
- レンダリングエンジンの互換性:「Cycles Only」または「EEVEE」を検索します
- Blender 5.0 の変更点:「5.0」を検索します
- Blender 5.1 の変更点:「5.1」、「Raycast」、または「Normal Map」を検索します
- OpenColorIO 2.5:表示変換が改善されたカラー管理
Python API リファレンス
ノードタイプ文字列、ソケットタイプ、リンク、マテリアルの割り当て、ワールドの設定、Color Ramp の設定など、Python API のパターン全般については、references/python_api.md を参照してください。