💻 Développement

dev-pixel-art-advisor

Guide de création de pixel art pour jeux et interfaces rétro.

⚡ Installation & lancement en 1 commande

Copiez-collez dans votre terminal : le skill s'installe dans ~/.claude/skills et Claude Code se lance directement dessus.

macOS / Linux
curl -fsSL https://raw.githubusercontent.com/khalilbenaz/claude-skills-collection/main/install.sh | sh -s -- dev-pixel-art-advisor --launch
Windows (PowerShell)
iex "& { $(iwr -useb https://raw.githubusercontent.com/khalilbenaz/claude-skills-collection/main/install.ps1) } dev-pixel-art-advisor -Launch"

🚀 Déjà installé ?

claude "/dev-pixel-art-advisor"

Ou tapez /dev-pixel-art-advisor dans une session Claude Code, ou décrivez simplement votre besoin — le skill se déclenche automatiquement via le skill-router.

🔑 Déclencheurs automatiques

Le skill s'active automatiquement quand votre demande contient :

pixel artspritetilesetpixelretro art8-bit16-bitAsepritegame artspritesheet

📦 Installation manuelle

git clone https://github.com/khalilbenaz/claude-skills-collection.git cp -r claude-skills-collection/skills/dev-pixel-art-advisor ~/.claude/skills/

Payload du plugin : skills/dev-pixel-art-advisor · source éditable : dev-skills/pixel-art-advisor

📖 Manuel

Pixel Art Advisor

Critères de décision — Résolution et style

Contexte cibleCanvas spritePalette maxOutil recommandé
NES / 8-bit strict8×8 à 16×164 couleurs/spriteAseprite, LibreSprite
Game Boy (mono)8×8 à 16×164 niveaux de grisAseprite
SNES / 16-bit16×16 à 32×3216–32 couleursAseprite, Pyxel Edit
Moderne pixel art32×32 à 64×64Illimité (palette cohérente)Aseprite
Interface UI rétro8×8 à 24×248–16 couleursAseprite, Shoebox

Règle de départ : choisir la plus petite résolution qui rend la silhouette lisible. Agrandir plus tard est coûteux.


Workflow en étapes

1. Canvas et grille

Aseprite > File > New
  Width:  32  Height: 32
  Color mode: Indexed  (limite la palette dès le début)
  Background: Transparent

2. Palette de couleurs

Construire des color ramps (minimum 3 teintes par couleur principale) avec hue shifting :

Couleur base : H=30, S=70, V=80   (brun chaud)
Ombre       : H=240, S=40, V=40   (bleu froid — pas de gris pur)
Lumière     : H=50,  S=30, V=95   (jaune chaud)
Pattern checkerboard 2×2 :
  ▓░▓░      = 50 % mélange entre couleur A et B
  ░▓░▓

3. Formes et contours

4. Animation sprite — Walk cycle (exemple 4 frames)

Frame 1 : Contact  — pied gauche à terre, pied droit levé
Frame 2 : Passage  — poids au centre, corps légèrement bas
Frame 3 : Contact  — pied droit à terre, pied gauche levé
Frame 4 : Passage  — poids au centre (miroir F2)

Paramètres Aseprite :

Timeline > Frame duration : 100–120 ms (8–10 fps) pour walk
Timeline > Frame duration : 60–80 ms (12–16 fps) pour effets rapides

5. Tilesets et autotile

Structure bitmask 4-bit (16 tiles, transitions simples) :

Tile ID  Voisins (N S E O)   Usage
  0       0000               Isolé
  15      1111               Plein entouré
  5       0101               Corridor horizontal
  10      1010               Corridor vertical

6. Export et intégration moteur

Spritesheet Aseprite CLI (automatisable en CI) :

aseprite -b character.aseprite \
  --sheet character_sheet.png \
  --sheet-type packed \
  --data character_sheet.json \
  --format json-array \
  --trim

Unity — paramètres d'import PNG :

Texture Type      : Sprite (2D and UI)
Sprite Mode       : Multiple
Pixels Per Unit   : 16   (ou la valeur projet)
Filter Mode       : Point (no filter)   ← CRITIQUE pour pixel art net
Compression       : None
Max Size          : 2048  (power-of-two)

Godot 4 — import settings :

[importer = "texture"]
params/filter = false          # Point filtering
params/compress/mode = 0       # Lossless
params/mipmaps/generate = false

GameMaker : Sprite Editor > Import Strip → définir Frame Width, Frame Height, Number of Frames.


Anti-patterns et pièges fréquents

PiègeSymptômeCorrection
Palette trop grandeIncohérence visuelle entre assetsCréer une palette maître .pal, l'imposer à tous les sprites
Outline noir uniformePersonnages collés au fondPasser en outline coloré ou supprimer l'outline sur les décors
Filter Mode BilinearSprites flous en jeuForcer Point (no filter) dans l'import moteur
Canvas non power-of-twoArtefacts GPU, atlas fragmentéToujours exporter en 256×256, 512×512, 1024×512, etc.
Lone pixelsBruit, manque de lisibilitéRegel : chaque pixel doit avoir ≥ 1 voisin de même famille
Animation trop fluidePerd le charme rétroRéduire à 6–8 fps et ajouter un hold explicite sur les frames clés
Ignorer la silhouetteDesign illisible à petite tailleToujours valider en noir et blanc à 100 % avant de coloriser

Bonnes pratiques 2026

```lua -- Exemple : swap palette slot 3 (rouge) → bleu local sprite = app.activeSprite local pal = sprite.palettes[1] pal:setColor(3, Color{r=30, g=80, b=200}) ```