mcpField
U
Unity Shader Generator

Unity Shader Generator

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

Unity Shader Generator について

Unity Shader Generatorは、Unityプロジェクト向けにShaderLab/HLSLのシェーダーとマテリアル設定手順を生成するスキルです。一般的な視覚効果に対応し、レンダーパイプラインに合わせたコードとモバイル最適化を扱います。

主な機能

  1. 01Unityのレンダーパイプライン検出
  2. 02ShaderLab/HLSLシェーダーの生成
  3. 03一般的な視覚効果への対応
  4. 04マテリアル設定手順の提示
  5. 05モバイル向け最適化

活用シーン

  1. 01ディゾルブや輪郭効果の作成
  2. 02ホログラム、水面、力場シェーダーの作成
  3. 03URPまたはHDRP向けシェーダーの設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/juliankerignard/unity-skills --skill unity-shader-generator

インストール後、Claude Code で/unity-shader-generatorを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
hlsl-utils.md
shader-templates.md
shader-recipes.md

詳細

Unity Shader Generator

このスキルでできること

プロジェクトのレンダーパイプラインに合わせた、完全な Unity シェーダー(.shader ファイル)を生成します。dissolve、outline、toon、hologram、force field、water、triplanar、vertex displacement など、一般的なエフェクトに対応しています。モバイル向けに最適化された、整った HLSL/ShaderLab コードと、Material のセットアップ手順を作成します。

前提条件

  • Packages/manifest.json を含む既存の Unity プロジェクト
  • 使用するエフェクトに関する知識(テキストでの説明またはビジュアルリファレンス)
  • Assets/ フォルダーへの書き込みアクセス

判断フロー

Type de shader demande ?
|
+-- Effet sur un materiau (dissolve, outline, toon, hologram) ?
|   +-- --> Recettes dans references/shader-recipes.md
|
+-- Post-processing / fullscreen effect ?
|   +-- URP 6.3+ --> Fullscreen Shader Graph (prefere, zero code)
|   +-- URP custom --> Custom render pass avec Render Graph API
|   +-- HDRP --> Custom Pass Volume
|
+-- Custom render pass (injection dans le pipeline) ?
|   +-- Unity 6+ --> Render Graph API (RecordRenderGraph)
|   +-- Pre-Unity 6 --> ScriptableRenderPass.Execute (deprecie)
|
+-- Modification de vertices (displacement, wind, snow) ?
    +-- --> Vertex shader avec noise (voir references/hlsl-utils.md)

クイックスタート

  1. ユーザーが目的のエフェクトを説明します(例:「発光する縁取り付きの dissolve シェーダー」)
  2. スキルがプロジェクトのレンダーパイプラインを検出します
  3. スキルが .shader ファイルと Material の設定手順を生成します

手順ガイド

ステップ 1:目的のエフェクトを特定する

ユーザーのリクエストを分析します。既知のレシピからエフェクトを分類します:

  • Dissolve:しきい値による段階的な破壊
  • Outline:オブジェクトの周囲に色付きの輪郭を付ける
  • Toon/Cel-shading:明暗の段階を付けたカートゥーン風の描画
  • Hologram:走査線と透明度を使ったホログラム効果
  • Force field:フレネル効果と交差判定を使ったエネルギーシールド
  • Water surface:波と透明度を持つ水面
  • Triplanar mapping:ワールド空間での UV 投影
  • Vertex displacement:ノイズによる頂点の変形
  • Custom:上記の手法を組み合わせる

各種エフェクトの詳細なレシピについては、references/shader-recipes.md を参照してください。

ステップ 2:レンダーパイプラインを検出する

プロジェクトの manifest.json ファイルに対して Grep を使用します:

Grep "com.unity.render-pipelines.universal" dans Packages/manifest.json → URP
Grep "com.unity.render-pipelines.high-definition" dans Packages/manifest.json → HDRP
Aucun match → Built-in Render Pipeline

コードを生成する前に、この検出を必ず行ってください。

ステップ 3:シェーダー形式を選択する

検出したパイプラインに応じて、references/shader-templates.md の該当するテンプレートを使用します:

パイプライン形式主なタグ
Built-inShaderLab + CG/HLSLCGPROGRAM/ENDCG、surface shader
URPShaderLab + HLSL"RenderPipeline"="UniversalPipeline"、CBUFFER_START(UnityPerMaterial)
HDRPShaderLab + HLSL(HDRP includes)Shader Graph を推奨

URP での重要事項:SRP Batcher との互換性を確保するため、必ず CBUFFER_START(UnityPerMaterial) を含めてください。

ステップ 4:シェーダーを生成する

プロジェクト内に .shader ファイル全体を書き込みます:

  • 配置場所:Assets/Shaders/ または Assets/Art/Shaders/
  • 命名規則:Game_Category_EffectName.shader(例:Game_FX_Dissolve.shader)
  • 含めるもの:Properties、SubShader、Pass(es)、vertex/fragment、Fallback
ステップ 5:Material の設定手順

Material のセットアップ手順を必ず提示します:

  1. Unity で Assets > Create > Material を選択します
  2. Material のドロップダウンでシェーダーを割り当てます(Game/Category/EffectName を検索)
  3. 公開されている Properties(テクスチャ、色、しきい値)を設定します
  4. 対象の GameObject に Material を適用します

Render Graph API(Unity 6+)

Unity 6 では、URP と HDRP のバックエンドに Render Graph が使用されます。カスタムレンダーパスは RecordRenderGraph に移行する必要があります(従来の Execute は非推奨です)。

パターンと移行の詳細については、references/shader-templates.md#render-graph-api を参照してください。

URP の ShadowCaster Pass

オブジェクトが URP で影を落とすために必要な Pass です。テンプレートについては、references/shader-templates.md#shadowcaster-pass を参照してください。

厳格なルール

  • 必ず コードを生成する前にレンダリングパイプラインを特定してください
  • 必ず Fallback シェーダーを含めてください
  • 必ず 主要なパラメーターを Properties として公開してください(値をハードコードしないでください)
  • 必ず シェーダーの後に Material の設定手順を記載してください
  • 必ず ファイルを Assets/Shaders/ またはそのサブフォルダーに配置してください
  • 必ず Game/Category/EffectName のパターンでシェーダーに名前を付けてください
  • 必ず URP では ShadowCaster パスを含めてください(専用セクションを参照)
  • 決して 同じシェーダー内で CGPROGRAM/ENDCG と HLSLPROGRAM/ENDHLSL を混在させないでください
  • 決して URP/HDRP でサーフェスシェーダーを使用しないでください(頂点/フラグメントのみ)
  • 決して URP で CBUFFER_START(UnityPerMaterial) を忘れないでください(SRP Batcher に必要です)
  • モバイル向けのターゲットでは half 精度を優先してください
  • 技術に詳しくないアーティスト向けには Shader Graph を優先してください(ノード構成の説明を記載してください)

関連スキル

  • シェーダーは迅速なプロトタイプ用ですか?シーンのセットアップには /proto(Unity Rapid Proto)を使用してください
  • シェーダーの後にビルドを設定しますか?/build-config(Unity Build & CI/CD Configurator)を使用してください
  • レンダリングのパフォーマンスを確認しますか?/perf-audit(Unity Perf Audit)を使用してください

トラブルシューティング

問題解決策
シェーダーがピンク/マゼンタになるコンパイルエラーです。パイプラインのインクルード、関数名、セマンティクスを確認してください
SRP Batcher と互換性がないすべての Properties を CBUFFER_START(UnityPerMaterial) / CBUFFER_END に含めてください
シェーダーが URP で動作しないタグ "RenderPipeline"="UniversalPipeline" と "LightMode"="UniversalForward" を確認してください
透明度が表示されないTags { "Queue"="Transparent" }、Blend SrcAlpha OneMinusSrcAlpha、ZWrite Off を追加してください
影が表示されない適切なインクルードを含む ShadowCaster パスを追加してください(ShadowCaster セクションを参照)
モバイルでパフォーマンスが低いテクスチャサンプル数を減らし、half に切り替え、動的な if を削除してください
テクスチャがぼやける/タイリングが正しくないTRANSFORM_TEX(IN.uv, _MainTex) と、CBUFFER 内の _ST 変数を確認してください
深度の交差が機能しない_CameraDepthTexture が有効になっていることを確認してください(URP:パイプラインアセットで Depth Texture を有効にします)

参考資料

  • エフェクトの詳細なレシピについては、references/shader-recipes.md を参照してください
  • HLSL のユーティリティ関数とモバイル向け最適化については、references/hlsl-utils.md を参照してください

コメント