12 KiB
name, description, allowed-tools
| name | description | allowed-tools |
|---|---|---|
| Pixel Art Professional | Apply advanced pixel art techniques including dithering, palette optimization, shading, antialiasing, and color theory. Use when the user mentions "dithering", "dither", "Bayer", "Floyd-Steinberg", "palette", "colors", "reduce colors", "optimize palette", "color limit", "shading", "shadows", "highlights", "lighting", "light source", "antialiasing", "smooth", "smoothing", "anti-alias", "AA", "color ramp", "gradient", "hue shifting", "saturation", "value", "contrast", or wants to "refine", "polish", "improve", "enhance", "make better", "add depth", "add dimension" to existing pixel art. Trigger on retro palette names (NES, Game Boy, C64, PICO-8), texture terms ("metal", "fabric", "stone", "wood"), and visual quality terms ("professional", "clean", "smooth", "vibrant"). | Read, Bash, mcp__aseprite__get_sprite_info, mcp__aseprite__draw_pixels, mcp__aseprite__set_palette, mcp__aseprite__get_palette, mcp__aseprite__quantize_palette, mcp__aseprite__apply_auto_shading, mcp__aseprite__draw_with_dither, mcp__aseprite__add_layer, mcp__aseprite__flatten_layers |
Pixel Art Professional
Overview
This Skill provides advanced pixel art techniques for refining and polishing sprites. It handles dithering patterns, palette optimization, color theory, shading techniques, and antialiasing for professional-quality pixel art.
When to Use
Use this Skill when the user:
- Wants to apply "dithering" or mentions dither patterns
- Asks about "palette optimization" or "color reduction"
- Mentions "shading", "highlights", "shadows", or "lighting"
- Requests "antialiasing", "smoothing", or "edge refinement"
- Talks about "color ramps", "gradients", or "color theory"
- Wants to "polish" or "refine" existing pixel art
- Mentions specific techniques like "Bayer dithering" or "Floyd-Steinberg"
Trigger Keywords: dithering, palette, shading, antialiasing, smooth, gradient, color ramp, polish, refine, color theory, quantize
Instructions
1. Understanding Dithering
Dithering creates the illusion of additional colors by mixing pixels of available colors in patterns.
When to Use Dithering:
- Reducing color count (e.g., 256 colors → 16 colors)
- Creating smooth gradients with limited palettes
- Simulating textures (fabric, metal, stone)
- Retro aesthetic (classic games used dithering extensively)
Dithering Algorithms:
Ordered Dithering (Bayer Matrix):
- Uses fixed pattern matrix (2x2, 4x4, 8x8)
- Predictable, regular pattern
- Best for: textures, backgrounds, retro look
- Fast and consistent
Error Diffusion (Floyd-Steinberg):
- Distributes color error to neighboring pixels
- More organic, less regular pattern
- Best for: gradients, natural images, smooth transitions
- Slower but higher quality
Common Dithering Patterns:
- Checkerboard: Simple 2-color alternating pattern
- Bayer 2x2: Basic ordered dithering
- Bayer 4x4: More subtle ordered dithering
- Bayer 8x8: Very subtle, near-gradient appearance
- Floyd-Steinberg: Error diffusion for smooth gradients
2. Palette Management
Color Quantization:
Use mcp__aseprite__quantize_palette to reduce sprite colors intelligently:
- Analyzes sprite colors
- Finds optimal limited palette
- Remaps pixels to new palette
- Preserves visual quality
Palette Optimization Workflow:
- Get current sprite info and palette
- Decide target color count (4, 8, 16, 32, 64, 256)
- Apply quantization with optional dithering
- Review and adjust palette if needed
Common Palette Sizes:
- 4 colors: Game Boy, ZX Spectrum per-sprite
- 8 colors: CGA, early arcade
- 16 colors: NES, Master System, early VGA
- 32 colors: SNES per-background, Amiga OCS
- 64 colors: Genesis, PC Engine
- 256 colors: VGA, SNES full palette, Amiga AGA
Palette Theory:
- Color Ramps: Gradual transitions from dark to light for shading
- Hue Shifting: Changing hue slightly in shadows/highlights for vibrant look
- Saturation: Higher saturation in midtones, lower in shadows/highlights
- Contrast: Ensure sufficient contrast between key elements
3. Shading Techniques
Types of Shading:
Flat Shading (No Shading):
- Single color per surface
- Simple, iconic look
- Best for: UI icons, simple sprites, minimalist style
Cell Shading (Hard Shading):
- Distinct color bands with hard edges
- 2-3 colors per surface (base, shadow, highlight)
- Best for: cartoon style, bold graphics, readable sprites
Soft Shading (Dithered Shading):
- Gradual transitions using dithering
- Smooth appearance with limited colors
- Best for: realistic look, smooth surfaces, gradients
Pixel Clusters:
- Manual dithering with strategic pixel placement
- Organic, hand-crafted appearance
- Best for: metal, fabric textures, custom look
Shading Workflow:
- Identify light source direction
- Determine base color
- Create darker shade for shadows (hue shift toward blue/purple)
- Create lighter shade for highlights (hue shift toward yellow/white)
- Apply shadows on surfaces away from light
- Apply highlights on surfaces toward light
- Add reflected light in deep shadows (subtle)
Common Shading Mistakes:
- Pure black shadows (use dark hue-shifted colors instead)
- Pure white highlights (use light tinted colors instead)
- No hue shifting (shadows/highlights same hue as base)
- Pillow shading (shading around edges instead of from light source)
4. Antialiasing
Purpose: Smooth jagged edges and diagonal lines by adding intermediate colors.
When to Use Antialiasing:
- Diagonal lines look jagged
- Curves appear stepped
- Edges need smoothing
- Higher resolution sprites (64x64+)
When NOT to Use Antialiasing:
- Very small sprites (16x16 or smaller)
- Intentional pixelated aesthetic
- High-contrast situations (AA reduces contrast)
- Limited palette (need intermediate colors)
Manual Antialiasing Technique:
- Identify jagged edge
- Find intermediate color between edge and background
- Place intermediate pixels at edge "steps"
- Use 1-pixel wide AA (avoid thick fuzzy edges)
- AA selectively (not every edge needs it)
Automated Antialiasing:
- Some tools offer automatic edge smoothing
- Use with caution (can blur intended sharpness)
- Manual AA gives better control
5. Color Theory for Pixel Art
HSV/HSB Model:
- Hue: Color type (red, blue, green, etc.)
- Saturation: Color intensity (vivid vs. gray)
- Value/Brightness: Lightness (dark vs. light)
Creating Color Ramps:
- Start with base color (midtone)
- Create shadow: lower value, optionally shift hue toward cool (blue/purple)
- Create highlight: raise value, optionally shift hue toward warm (yellow/white)
- Create midtone between base and shadow
- Create midtone between base and highlight
- Result: 5-color ramp (deep shadow, shadow, base, highlight, bright highlight)
Hue Shifting:
- Shadows: shift toward blue, purple, or complementary color
- Highlights: shift toward yellow, orange, or light source color
- Creates vibrant, lively colors instead of flat gradients
Contrast:
- Ensure important elements have high value contrast
- Background should contrast with foreground
- Silhouette should be readable in solid black
Color Harmony:
- Monochromatic: Variations of single hue
- Analogous: Adjacent hues on color wheel
- Complementary: Opposite hues on color wheel
- Triadic: Three evenly spaced hues
6. Professional Workflows
Workflow 1: Palette Reduction with Dithering
User Request: "Reduce this sprite to 16 colors with dithering"
Approach:
- Get current sprite info
- Check current palette size
- Use
mcp__aseprite__quantize_palettewith:- target_colors: 16
- algorithm: "median_cut" or "kmeans"
- dither: true (enables Floyd-Steinberg dithering)
- Review result and adjust if needed
Workflow 2: Adding Shading to Flat Sprite
User Request: "Add shading to this sprite with light from top-left"
Option A - Automatic Shading (Quick):
- Use
mcp__aseprite__apply_auto_shadingwith:- light_direction: "top_left"
- intensity: 0.3-0.7 (adjust to preference)
- style: "smooth", "hard", or "pillow"
- hue_shift: true (for vibrant results)
- Tool automatically detects regions and adds shading
- Review and manually refine if needed
Option B - Manual Shading (Precise):
- Analyze sprite structure
- Identify base colors
- Create shadow colors (darker, hue-shifted)
- Create highlight colors (lighter, hue-shifted)
- Update palette with new colors
- Draw shadows on bottom-right surfaces
- Draw highlights on top-left surfaces
- Add subtle reflected light in deep shadows
Workflow 3: Smoothing Jagged Edges
User Request: "Smooth out the edges on this character"
Approach:
- Identify jagged diagonal lines and curves
- Find edge color and background color
- Create intermediate colors (1-2 shades between)
- Place AA pixels at edge steps
- Review and refine (avoid over-smoothing)
Workflow 4: Converting to Retro Palette (Full Palette Conversion)
User Request: "Convert this to NES palette"
Approach:
- Use
mcp__aseprite__quantize_palettewith retro palette colors - Specify target palette (e.g., 54 NES colors, 4 Game Boy colors, 16 C64 colors)
- Algorithm maps each pixel to nearest palette color
- Pixels are remapped to new palette indices
- Optionally apply dithering for smoother transitions
- Verify all colors match target palette
IMPORTANT: Use quantize_palette, NOT set_palette. The set_palette tool only replaces the color table without remapping pixel data, which will produce incorrect colors in indexed mode.
Example:
quantize_palette(
sprite_path: "sprite.aseprite",
target_colors: 54, # NES full palette
algorithm: "median_cut",
convert_to_indexed: true,
dither: false # or true for Bayer dithering
)
7. Dithering Patterns Reference
2-Color Patterns:
Checkerboard (50% mix):
A B A B
B A B A
A B A B
B A B A
25% Pattern:
A A B A
A A A A
B A A A
A A A A
75% Pattern:
B B A B
B B B B
A B B B
B B B B
Bayer 2x2:
Threshold matrix:
0 2
3 1
If pixel value > threshold, use lighter color
Bayer 4x4:
0 8 2 10
12 4 14 6
3 11 1 9
15 7 13 5
Note: See dithering-patterns.md for comprehensive pattern library.
8. Technical Details
Quantization Parameters:
- Target colors: 2-256
- Dithering: optional, specify algorithm
- Alpha handling: preserve transparency or flatten
Palette Constraints:
- RGB mode: No palette constraints
- Indexed mode: Max 256 colors
- Grayscale: 256 shades of gray
Performance:
- Quantization: ~100-500ms depending on sprite size
- Dithering: ~200-800ms depending on algorithm and size
- Manual pixel operations: <50ms per operation
9. Common Patterns
Pattern: Quick Polish For "make this look better" requests:
- Check palette (reduce if too many colors)
- Add basic shading (light source from top-left)
- Add selective antialiasing on curves
- Adjust contrast if needed
Pattern: Retro Conversion For "make this look retro" requests:
- Reduce to appropriate palette (4, 8, or 16 colors)
- Apply ordered dithering (Bayer)
- Remove antialiasing (make edges sharp)
- Ensure pixel-perfect alignment
Pattern: Smooth Gradient For "smooth out the colors" requests:
- Analyze color distribution
- Apply Floyd-Steinberg dithering
- Optional: slight quantization to clean up palette
- Verify smooth transitions
Integration with Other Skills
- Start with pixel-art-creator for base sprite before polishing
- Use pixel-art-animator for animation, then polish with this Skill
- Hand off to pixel-art-exporter when refinement is complete
Error Handling
Quantization fails:
- Target color count must be 2-256
- Sprite must have content (not blank)
Dithering issues:
- Requires sufficient color depth
- May not work well with very limited palettes
- Some algorithms better for certain content
Palette conflicts:
- Indexed mode has strict limits
- Converting to indexed may require quantization first
Success Indicators
You've successfully used this Skill when:
- Dithering applied produces smooth gradients or textures
- Palette reduced while preserving visual quality
- Shading adds depth and dimension
- Antialiasing smooths edges without blurring
- Colors follow good color theory principles
- Sprite has professional, polished appearance