mcpField
B
blender-shader-nodes

blender-shader-nodes

github.com/ra100クリエイティブ・メディア2446 回インストール26 週間前に更新
リポジトリ

blender-shader-nodes について

Blender 5.x のマテリアルやシェーダーノードを扱うスキルです。ノードツリーの構築や Python スクリプト作成に使え、ノード資料、マテリアル例、レンダーエンジンの違い、デバッグ方法を含みます。

主な機能

  1. 01マテリアルとノードツリーの設計
  2. 02Python スクリプトでノードを構築
  3. 03ノードカタログと API の参照
  4. 04Cycles と EEVEE の比較
  5. 05マテリアル表示問題の診断

活用シーン

  1. 01テクスチャベースの PBR マテリアル作成
  2. 02プロシージャルマテリアルやガラスの作成
  3. 03法線マップや透過の問題の調査
  4. 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 — ライブセッションで bpy Python を実行します(主な操作)
  • 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 でマテリアルを作成する場合:

  1. 正しい API のパターンとノードタイプ文字列について、references/python_api.md を読みます
  2. 次のパターンに従ってスクリプトを構成します:
    • use_nodes = True でマテリアルを作成する
    • デフォルトのノードを消去する
    • 正しいタイプ文字列ですべてのノードを追加する
    • ノードを左から右に配置する(x 間隔は約 300、y 間隔は約 200)
    • 入力のデフォルト値を設定する
    • ノード間のリンクをすべて作成する
    • 対象オブジェクトにマテリアルを割り当てる
  3. 複雑な設定を論理的なセクションに整理するには、Frame ノードを使用します
ノードタイプ文字列の規則
  • ほとんどのシェーダーノード:ShaderNode<PascalCaseName>(例:ShaderNodeBsdfPrincipled、ShaderNodeTexNoise)
  • ジオメトリ入力:ShaderNodeNewGeometry(ShaderNodeGeometry ではありません)
  • カラー属性:ShaderNodeVertexColor
  • Mix ノード:data_type を 'RGBA'、'FLOAT'、または 'VECTOR' に設定した ShaderNodeMix
  • Color Ramp:ShaderNodeValToRGB
  • 正確なタイプ文字列がわからない場合は、references/python_api.md を参照してください

マテリアルのレシピ

PBR マテリアル(テクスチャベース)
  1. Texture Coordinate -> Mapping -> Image Texture(s) -> Principled BSDF -> Material Output
  2. マップを接続します:Base Color(sRGB)、Roughness(Non-Color)、Metallic(Non-Color)、Normal Map(Non-Color)-> Normal Map ノード -> Normal 入力
  3. Non-Color 画像には image_tex.image.colorspace_settings.name = 'Non-Color' を設定します
プロシージャルマテリアル
  1. Texture Coordinate → Noise/Voronoi/Wave Texture → Color Ramp → Principled BSDF
  2. Mix ノードを使用して複数のテクスチャを重ね、複雑さを加えます
  3. Texture Coordinate に Separate XYZ を使用して、軸に応じたパターンを作成します
ガラス/透明
  1. Principled BSDF の Transmission Weight を 1.0、Roughness を 0.0(透明)または 0 より大きい値(すりガラス)、IOR を 1.45-1.52 に設定します
  2. 代替方法:より簡単に設定するには Glass BSDF ノードを使用します
  3. EEVEE:マテリアルとレンダー設定の Screen Space Refraction を有効にします
金属
  1. Principled BSDF の Metallic を 1.0、Base Color を金属の色合い(金:1.0, 0.766, 0.336)、Roughness を 0.1-0.4 に設定します
  2. 代替方法(5.0):物理的に正確な複雑な IOR には Metallic BSDF ノードを使用します
  3. 指紋や傷を加えるには、プロシージャルテクスチャと Roughness をミックスします
皮膚/サブサーフェス
  1. Principled BSDF の Subsurface Weight を 0.3-1.0、RGB の散乱に合わせて Subsurface Radius を (1.0, 0.2, 0.1) に設定します
  2. 皮膚のテクスチャを Base Color に、ディテール用の法線マップを Normal に接続します
  3. Cycles:最高品質を得るには Random Walk メソッドを使用します
発光/ネオン
  1. Principled BSDF の Emission Color に任意の色、Emission Strength に 1-50+ を設定します
  2. または、スタンドアロンの Emission ノードを Material Output(Surface)に接続します
  3. 発光効果を得るには、レンダー設定(EEVEE)で Bloom を有効にします
トゥーン/セルシェーディング(EEVEE)
  1. Principled BSDF(または任意の BSDF)→ Shader to RGB → Color Ramp(補間を Constant に設定)→ Material Output(Emission またはカスタム出力経由)
  2. Color Ramp の停止位置で、段階的なシェーディング帯を作成します
  3. Shader to RGB は EEVEE 専用です
ワールド/HDRI 環境
  1. Environment Texture(.exr/.hdr を読み込み)→ Background → World Output
  2. 回転させるには、Texture Coordinate(Generated)と Environment Texture の間に Mapping ノードを追加します
  3. Background Strength で強度を設定します
ディスプレイスメント
  1. Texture → Displacement ノード → Material Output(Displacement ソケット)
  2. マテリアルのディスプレイスメント方式を設定します:mat.cycles.displacement_method = 'BOTH' 96#HB|3. メッシュに細分化が必要です(Subdivision Surface モディファイアー、または Cycles の Adaptive Subdivision)
Raycast ノード(Blender 5.1)
  1. ShaderNodeRaycast はシェーディング点からレイを投射し、ヒット情報を返します
  2. 出力:Position、Normal、Distance、Object、Is Hit
  3. マテリアル駆動の近接効果、オクルージョン、交差判定に役立ちます
  4. レイの方向と長さの制限を指定できます
  5. Cycles と EEVEE の両方で動作します
法線マップの改善(Blender 5.1)
  1. 法線マップのタンジェント空間規約を設定する、新しい OpenGL/DirectX 切り替え機能
  2. OpenGL(デフォルト)と DirectX を切り替えて、ゲームエンジンで反転した法線マップを修正します
  3. 変位後のメッシュ上で法線マップを計算する新しいオプション(Cycles のみ)
  4. normal_map_node.invert_y または normal_map_node.tangent_space_convention を使用して切り替えます
ボリューム(霧/煙)
  1. Principled Volume → Material Output(Volume ソケット)
  2. または、Volume Absorption + Volume Scatter → Add Shader → Material Output(Volume)
  3. 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 を使用する、またはノイズ除去を行います
パフォーマンスのヒント
  1. 個別のシェーダーより Principled BSDF を使用する:Principled BSDF は内部で最適化されています。Diffuse + Glossy + Glass を手動で組み合わせると、処理が遅くなります
  2. テクスチャの解像度を抑える:ほとんどの場合は 2K テクスチャを使用し、クローズアップで細部が必要な場合にのみ 4K を使用します
  3. Noise Texture の過剰な重ね合わせを避ける:ノイズの計算はそれぞれコストがかかります。アニメーション用の複雑なプロシージャルテクスチャはベイクします
  4. EEVEE のスクリーンスペースエフェクト:スクリーンスペース反射、屈折、SSS はマテリアルごとの処理負荷を増加させます。必要なマテリアルでのみ有効にします
  5. ビューポート用に簡略化する:ビューポートのプレビューモードでは、テクスチャ解像度を下げるか、よりシンプルなシェーダーを使用します
EEVEE と Cycles の簡易ガイド
機能CyclesEEVEE
レンダリングパストレーシング(正確)ラスタライズ(高速、近似)
SSSRandom 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 を参照してください。

コメント