Initial commit
This commit is contained in:
246
commands/pixel-palette.md
Normal file
246
commands/pixel-palette.md
Normal file
@@ -0,0 +1,246 @@
|
||||
---
|
||||
description: Manage sprite palettes - set, optimize, or load preset palettes
|
||||
argument-hint: <action> [palette-name|color-count]
|
||||
allowed-tools: Read, Bash, mcp__aseprite__set_palette, mcp__aseprite__get_palette, mcp__aseprite__quantize_colors
|
||||
---
|
||||
|
||||
## /pixel-palette - Palette Management
|
||||
|
||||
Manage sprite color palettes with presets, optimization, and custom palettes.
|
||||
|
||||
### Usage
|
||||
|
||||
```
|
||||
/pixel-palette <action> [palette-name|color-count]
|
||||
```
|
||||
|
||||
### Actions
|
||||
|
||||
**set** - Set palette to a preset or custom colors
|
||||
```
|
||||
/pixel-palette set nes
|
||||
/pixel-palette set gameboy
|
||||
/pixel-palette set custom #000000,#ffffff,#ff0000
|
||||
```
|
||||
|
||||
**optimize** - Reduce colors to optimal palette
|
||||
```
|
||||
/pixel-palette optimize 16
|
||||
/pixel-palette optimize 32
|
||||
```
|
||||
|
||||
**show** - Display current palette
|
||||
```
|
||||
/pixel-palette show
|
||||
```
|
||||
|
||||
**export** - Export current palette to file
|
||||
```
|
||||
/pixel-palette export my-palette.gpl
|
||||
```
|
||||
|
||||
### Palette Presets
|
||||
|
||||
**Retro Consoles:**
|
||||
- **nes**: 54-color NES palette
|
||||
- **gameboy**: 4-color Game Boy palette (#0f380f, #306230, #8bac0f, #9bbc0f)
|
||||
- **gameboy-gray**: 4-shade grayscale Game Boy
|
||||
- **c64**: 16-color Commodore 64 palette
|
||||
- **cga**: 4-color CGA palette
|
||||
- **snes**: Rich 256-color SNES-style palette
|
||||
|
||||
**Generic Palettes:**
|
||||
- **retro16**: Generic 16-color retro palette
|
||||
- **retro8**: Generic 8-color palette
|
||||
- **retro4**: Generic 4-color palette
|
||||
- **grayscale4**: 4 shades of gray
|
||||
- **grayscale8**: 8 shades of gray
|
||||
- **grayscale16**: 16 shades of gray
|
||||
|
||||
**Modern Palettes:**
|
||||
- **pico8**: PICO-8 fantasy console 16-color palette
|
||||
- **sweetie16**: Popular 16-color palette by GrafxKid
|
||||
- **db16**: DawnBringer's 16-color palette
|
||||
- **db32**: DawnBringer's 32-color palette
|
||||
|
||||
### Examples
|
||||
|
||||
```
|
||||
/pixel-palette set nes
|
||||
→ Sets sprite to NES 54-color palette (indexed mode)
|
||||
|
||||
/pixel-palette optimize 16
|
||||
→ Reduces sprite to optimal 16 colors
|
||||
|
||||
/pixel-palette set custom #000000,#ffffff,#ff0000,#00ff00,#0000ff
|
||||
→ Sets custom 5-color palette
|
||||
|
||||
/pixel-palette show
|
||||
→ Displays current palette colors
|
||||
|
||||
/pixel-palette set pico8
|
||||
→ Sets PICO-8 16-color palette
|
||||
```
|
||||
|
||||
### Palette Definitions
|
||||
|
||||
**NES Palette (54 colors):**
|
||||
```
|
||||
#7C7C7C, #0000FC, #0000BC, #4428BC, #940084, #A80020, #A81000, #881400,
|
||||
#503000, #007800, #006800, #005800, #004058, #000000, #000000, #000000,
|
||||
#BCBCBC, #0078F8, #0058F8, #6844FC, #D800CC, #E40058, #F83800, #E45C10,
|
||||
#AC7C00, #00B800, #00A800, #00A844, #008888, #000000, #000000, #000000,
|
||||
#F8F8F8, #3CBCFC, #6888FC, #9878F8, #F878F8, #F85898, #F87858, #FCA044,
|
||||
#F8B800, #B8F818, #58D854, #58F898, #00E8D8, #787878, #000000, #000000,
|
||||
#FCFCFC, #A4E4FC, #B8B8F8, #D8B8F8, #F8B8F8, #F8A4C0, #F0D0B0, #FCE0A8,
|
||||
#F8D878, #D8F878, #B8F8B8, #B8F8D8, #00FCFC, #F8D8F8, #000000, #000000
|
||||
```
|
||||
|
||||
**Game Boy Palette:**
|
||||
```
|
||||
#0f380f (darkest green)
|
||||
#306230 (dark green)
|
||||
#8bac0f (light green)
|
||||
#9bbc0f (lightest green)
|
||||
```
|
||||
|
||||
**PICO-8 Palette:**
|
||||
```
|
||||
#000000, #1D2B53, #7E2553, #008751, #AB5236, #5F574F, #C2C3C7, #FFF1E8,
|
||||
#FF004D, #FFA300, #FFEC27, #00E436, #29ADFF, #83769C, #FF77A8, #FFCCAA
|
||||
```
|
||||
|
||||
**DawnBringer 16:**
|
||||
```
|
||||
#140c1c, #442434, #30346d, #4e4a4e, #854c30, #346524, #d04648, #757161,
|
||||
#597dce, #d27d2c, #8595a1, #6daa2c, #d2aa99, #6dc2ca, #dad45e, #deeed6
|
||||
```
|
||||
|
||||
**DawnBringer 32:**
|
||||
```
|
||||
#000000, #222034, #45283c, #663931, #8f563b, #df7126, #d9a066, #eec39a,
|
||||
#fbf236, #99e550, #6abe30, #37946e, #4b692f, #524b24, #323c39, #3f3f74,
|
||||
#306082, #5b6ee1, #639bff, #5fcde4, #cbdbfc, #ffffff, #9badb7, #847e87,
|
||||
#696a6a, #595652, #76428a, #ac3232, #d95763, #d77bba, #8f974a, #8a6f30
|
||||
```
|
||||
|
||||
**Commodore 64 Palette:**
|
||||
```
|
||||
#000000 (black), #ffffff (white), #880000 (red), #aaffee (cyan),
|
||||
#cc44cc (purple), #00cc55 (green), #0000aa (blue), #eeee77 (yellow),
|
||||
#dd8855 (orange), #664400 (brown), #ff7777 (light red), #333333 (dark gray),
|
||||
#777777 (gray), #aaff66 (light green), #0088ff (light blue), #bbbbbb (light gray)
|
||||
```
|
||||
|
||||
**CGA Palette:**
|
||||
```
|
||||
#000000 (black), #00aaaa (cyan), #aa00aa (magenta), #aaaaaa (white)
|
||||
```
|
||||
|
||||
### Implementation
|
||||
|
||||
Parse $ARGUMENTS to determine action:
|
||||
|
||||
**For "set" action:**
|
||||
1. Check if argument is preset name
|
||||
2. If preset, load predefined palette colors
|
||||
3. If "custom", parse comma-separated hex colors
|
||||
4. Use `mcp__aseprite__set_palette` with color array
|
||||
5. Convert sprite to Indexed mode if needed
|
||||
6. Confirm palette set
|
||||
|
||||
**For "optimize" action:**
|
||||
1. Parse target color count from argument
|
||||
2. Use `mcp__aseprite__quantize_colors` with count
|
||||
3. Show before/after color counts
|
||||
4. Confirm optimization
|
||||
|
||||
**For "show" action:**
|
||||
1. Use `mcp__aseprite__get_palette`
|
||||
2. Display colors in readable format (hex codes)
|
||||
3. Show color count
|
||||
|
||||
**For "export" action:**
|
||||
1. Get palette with `mcp__aseprite__get_palette`
|
||||
2. Format as .gpl (GIMP Palette) or .pal file
|
||||
3. Write to specified file path
|
||||
4. Confirm export
|
||||
|
||||
### GIMP Palette Format (.gpl)
|
||||
|
||||
```
|
||||
GIMP Palette
|
||||
Name: My Palette
|
||||
Columns: 4
|
||||
#
|
||||
0 0 0 Black
|
||||
255 255 255 White
|
||||
255 0 0 Red
|
||||
```
|
||||
|
||||
### Validation
|
||||
|
||||
**For set action:**
|
||||
- Validate preset name exists
|
||||
- For custom, validate hex color format (#RRGGBB)
|
||||
- Ensure palette fits indexed mode limits (max 256 colors)
|
||||
|
||||
**For optimize action:**
|
||||
- Target color count must be 2-256
|
||||
- Cannot optimize blank/empty sprites
|
||||
|
||||
**For export action:**
|
||||
- Validate file path and permissions
|
||||
- Ensure output directory exists
|
||||
|
||||
### Error Handling
|
||||
|
||||
**Invalid action:**
|
||||
```
|
||||
Invalid action. Use: set, optimize, show, or export
|
||||
```
|
||||
|
||||
**Invalid preset:**
|
||||
```
|
||||
Unknown palette preset: xyz
|
||||
Available: nes, gameboy, c64, pico8, db16, db32, etc.
|
||||
```
|
||||
|
||||
**Optimization failed:**
|
||||
```
|
||||
Cannot optimize: sprite has no content or target color count invalid (2-256)
|
||||
```
|
||||
|
||||
**Export failed:**
|
||||
```
|
||||
Cannot export palette to: /path/file.gpl
|
||||
Check path and permissions.
|
||||
```
|
||||
|
||||
### Notes
|
||||
|
||||
- Setting palette converts sprite to Indexed color mode
|
||||
- Optimize action reduces colors while preserving visual quality
|
||||
- Custom palettes: comma-separated hex colors (#RRGGBB)
|
||||
- Palette files use .gpl (GIMP) or .pal (Adobe) format
|
||||
- Maximum 256 colors for indexed mode
|
||||
- Show action displays colors in grid format
|
||||
- Export creates portable palette files
|
||||
|
||||
### Tips
|
||||
|
||||
**For retro authenticity:**
|
||||
- Use NES palette with 4-color limit per sprite
|
||||
- Use Game Boy palette for monochrome green aesthetic
|
||||
- Use PICO-8 for modern retro/fantasy console look
|
||||
|
||||
**For optimization:**
|
||||
- Start with high color count (64+)
|
||||
- Gradually reduce with optimize action
|
||||
- Use quantization before dithering for best results
|
||||
|
||||
**For custom palettes:**
|
||||
- Start with base colors you need
|
||||
- Add shade variations (darker/lighter)
|
||||
- Keep count even for better organization
|
||||
- Test palette on actual sprite content
|
||||
Reference in New Issue
Block a user