Installable skillMIT

Unity Shader Generator

Genere des shaders Unity (HLSL/ShaderLab) pour effets visuels. Triggers: /shader, /shader-gen, 'creer un shader', 'effet visuel shader', 'dissolve', 'outline', 'toon shading', 'hologram', 'water shader'. Detecte automatiquement le render pipeline (URP/HDRP/Built-in) et produit un fichier .shader ...

BY JulianKerignardUPDATED Oct 27, 2026
INTENDED FOR◈OpenClawInstall in a listed agent.

instructions.md

---
name: unity-shader-generator
description: "Genere des shaders Unity (HLSL/ShaderLab) pour effets visuels. Triggers: /shader, /shader-gen, 'creer un shader', 'effet visuel shader', 'dissolve', 'outline', 'toon shading', 'hologram', 'water shader'. Detecte automatiquement le render pipeline (URP/HDRP/Built-in) et produit un fichier .shader pret a l'emploi avec instructions de Material."
---

# Unity Shader Generator

## Ce que fait cette skill

Genere des shaders Unity complets (fichiers `.shader`) adaptes au render pipeline du projet. Couvre les effets courants : dissolve, outline, toon, hologram, force field, water, triplanar, vertex displacement. Produit du code HLSL/ShaderLab propre, optimise mobile, avec instructions de setup Material.

## Prerequis

- Un projet Unity existant avec un `Packages/manifest.json`
- Connaissance de l'effet souhaite (description textuelle ou reference visuelle)
- Acces en ecriture au dossier `Assets/`

## Arbre de decision

```
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)
```

## Demarrage rapide

1. L'utilisateur decrit l'effet voulu (ex: "un shader de dissolve avec bordure lumineuse")
2. Le skill detecte le render pipeline du projet
3. Le skill genere le fichier `.shader` et les instructions Material

## Guide etape par etape

### Etape 1 : Identifier l'effet desire

Analyser la demande utilisateur. Classifier l'effet parmi les recettes connues :
- **Dissolve** : destruction progressive avec seuil
- **Outline** : contour colore autour d'un objet
- **Toon/Cel-shading** : rendu cartoon avec paliers de lumiere
- **Hologram** : effet holographique avec scanlines et transparence
- **Force field** : bouclier energetique avec fresnel et intersection
- **Water surface** : eau avec vagues et transparence
- **Triplanar mapping** : projection UV en world-space
- **Vertex displacement** : deformation de vertices par noise
- **Custom** : combiner les techniques ci-dessus

Pour les recettes d'effets detaillees, voir `references/shader-recipes.md`.

### Etape 2 : Detecter le render pipeline

Utiliser Grep sur le fichier `manifest.json` du projet :

```
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
```

Cette detection est **obligatoire** avant de generer le moindre code.

### Etape 3 : Choisir le format shader

Selon le pipeline detecte, utiliser le template correspondant dans `references/shader-templates.md` :

| Pipeline | Format | Tags cles |
|----------|--------|-----------|
| Built-in | ShaderLab + CG/HLSL | `CGPROGRAM/ENDCG`, surface shader |
| URP | ShaderLab + HLSL | `"RenderPipeline"="UniversalPipeline"`, `CBUFFER_START(UnityPerMaterial)` |
| HDRP | ShaderLab + HLSL (HDRP includes) | Preferer Shader Graph |

**Important URP** : Toujours inclure `CBUFFER_START(UnityPerMaterial)` pour la compatibilite SRP Batcher.

### Etape 4 : Generer le shader

Ecrire le fichier `.shader` complet dans le projet :
- **Emplacement** : `Assets/Shaders/` ou `Assets/Art/Shaders/`
- **Nommage** : `Game_Category_EffectName.shader` (ex: `Game_FX_Dissolve.shader`)
- Inclure : Properties, SubShader, Pass(es), vertex/fragment, Fallback

### Etape 5 : Instructions Material

Toujours fournir les instructions de setup Material :
1. Dans Unity : `Assets > Create > Material`
2. Assigner le shader dans le dropdown Material (chercher `Game/Category/EffectName`)
3. Configurer les Properties exposees (textures, couleurs, seuils)
4. Appliquer le Material sur le GameObject cible

## Render Graph API (Unity 6+)

Unity 6 utilise le **Render Graph** comme backend pour URP et HDRP. Les custom render passes doivent migrer vers `RecordRenderGraph` (l'ancien `Execute` est deprecie).

Pattern et migration detailles dans `references/shader-templates.md#render-graph-api`.

## ShadowCaster Pass URP

Pass **requis** pour que l'objet projette des ombres en URP. Template dans `references/shader-templates.md#shadowcaster-pass`.

## Regles strictes

- **TOUJOURS** detecter le render pipeline avant de generer du code
- **TOUJOURS** inclure un `Fallback` shader
- **TOUJOURS** exposer les parametres cles comme Properties (jamais de valeurs hardcodees)
- **TOUJOURS** fournir les instructions Material apres le shader
- **TOUJOURS** placer le fichier dans `Assets/Shaders/` ou sous-dossier
- **TOUJOURS** nommer le shader avec le pattern `Game/Category/EffectName`
- **TOUJOURS** inclure un pass `ShadowCaster` en URP (voir section dediee)
- **JAMAIS** melanger `CGPROGRAM/ENDCG` et `HLSLPROGRAM/ENDHLSL` dans le meme shader
- **JAMAIS** utiliser des surface shaders en URP/HDRP (vertex/fragment uniquement)
- **JAMAIS** oublier le `CBUFFER_START(UnityPerMaterial)` en URP (necessaire pour SRP Batcher)
- **PREFERER** `half` precision pour les targets mobiles
- **PREFERER** Shader Graph pour les artistes non-techniques (fournir une description nodale)

## Skills connexes

- Le shader est pour un prototype rapide ? Utiliser `/proto` (Unity Rapid Proto) pour le setup scene
- Configurer le build apres les shaders ? Utiliser `/build-config` (Unity Build & CI/CD Configurator)
- Performance de rendu ? Utiliser `/perf-audit` (Unity Perf Audit)

## Troubleshooting

| Probleme | Solution |
|----------|----------|
| Shader rose/magenta | Erreur de compilation : verifier les includes du pipeline, les noms de fonctions, les semantiques |
| SRP Batcher incompatible | Mettre toutes les Properties dans un `CBUFFER_START(UnityPerMaterial)` / `CBUFFER_END` |
| Shader ne fonctionne pas en URP | Verifier les tags `"RenderPipeline"="UniversalPipeline"` et `"LightMode"="UniversalForward"` |
| Transparence ne s'affiche pas | Ajouter `Tags { "Queue"="Transparent" }`, `Blend SrcAlpha OneMinusSrcAlpha`, `ZWrite Off` |
| Ombre absente | Ajouter un pass `ShadowCaster` avec les includes appropriees (voir section ShadowCaster) |
| Performance faible mobile | Reduire les samples texture, passer en `half`, supprimer les `if` dynamiques |
| Textures floues / tiling incorrect | Verifier `TRANSFORM_TEX(IN.uv, _MainTex)` et les `_ST` variables dans le CBUFFER |
| Depth intersection ne fonctionne pas | S'assurer que `_CameraDepthTexture` est active (URP : cocher Depth Texture dans le pipeline asset) |

## References

- Pour les recettes d'effets detaillees, voir `references/shader-recipes.md`
- Pour les fonctions utilitaires HLSL et l'optimisation mobile, voir `references/hlsl-utils.md`
COMPATIBILITY & REFERENCES

Platform guidance

Imported from the listed AgentSkill.sh category. Complete supplied package files and notices are retained. Required external tools and credentials are not installed. No bundled code was executed during import. Individual agent task behavior has not been tested.