/pixel-art-animator
Create and manage sprite animations with multiple frames, animation tags, frame durations, and linked cels. Use when the user wants to animate a sprite, add animation, create movement, make it move, mentions "animation", "animated", "frames", "keyframes", "frame rate", "FPS",
$ npx -y skills add willibrandon/pixel-plugin --skill pixel-art-animator --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/pixel-art-animator
Context preview
The summary Claude sees to decide when to auto-load this skill.
Create and manage sprite animations with multiple frames, animation tags, frame durations, and linked cels. Use when the user wants to animate a sprite, add animation, create movement, make it move, mentions "animation", "animated", "frames", "keyframes", "frame rate", "FPS",
SKILL.md
pixel-art-animator.SKILL.mdname: Pixel Art Animator
description: Create and manage sprite animations with multiple frames, animation tags, frame durations, and linked cels. Use when the user wants to animate a sprite, add animation, create movement, make it move, mentions "animation", "animated", "frames", "keyframes", "frame rate", "FPS", "timing", "duration", "walk cycle", "run cycle", "idle animation", "attack animation", "jump", "movement", "motion", or describes actions like "walking", "running", "jumping", "attacking", "breathing", "bobbing", "bouncing". Trigger on animation tags, loops, playback, sequences, "add frames", "duplicate frame", "frame timing", "ping-pong", "loop", "sequence". Also for linked cels, static backgrounds, and frame optimization.
allowed-tools: Read, Bash, mcp__aseprite__add_frame, mcp__aseprite__delete_frame, mcp__aseprite__duplicate_frame, mcp__aseprite__set_frame_duration, mcp__aseprite__create_tag, mcp__aseprite__delete_tag, mcp__aseprite__link_cel, mcp__aseprite__get_sprite_info, mcp__aseprite__draw_pixels, mcp__aseprite__draw_line, mcp__aseprite__draw_rectangle, mcp__aseprite__draw_circle
Pixel Art Animator
Overview
This Skill handles all animation-related tasks for sprites, including frame management, timing, animation tags (sequences), and linked cels for efficient animation.
When to Use
Use this Skill when the user:
- Wants to "animate" a sprite or "add animation"
- Mentions "frames", "keyframes", or "frame rate"
- Describes motion: "walk cycle", "run cycle", "idle animation", "attack animation"
- Asks about "animation tags", "loops", or "playback"
- Wants to create "sprite sheets" for animation (coordinate with exporter Skill)
**Trigger Keywords:** animate, animation, frames, walk cycle, run, idle, attack, loop, movement, motion
Instructions
1. Understanding Animation Basics
**Frame**: A single image in an animation sequence. Sprites start with 1 frame.
**Frame Duration**: How long each frame displays (in milliseconds). Default: 100ms (10 FPS).
**Animation Tag**: Named sequence of frames (e.g., "walk" frames 1-4, "idle" frames 5-8).
**Linked Cel**: A cel that shares image data with another cel. Editing one updates all linked cels.
**Playback Direction**:
- **Forward**: Frames play 1 → 2 → 3 → 4, then loop
- **Reverse**: Frames play 4 → 3 → 2 → 1, then loop
- **Ping-pong**: Frames play 1 → 2 → 3 → 4 → 3 → 2 → 1, then loop
2. Creating Animation Frames
**Adding Frames:** Use `mcp__aseprite__add_frame` to create new frames:
- Frames are numbered starting from 1
- New frames start as copies of the current frame (or blank)
**Common Frame Counts:**
- **Idle Animation**: 2-4 frames (subtle movement)
- **Walk Cycle**: 4-8 frames (legs alternate)
- **Run Cycle**: 6-8 frames (faster, exaggerated)
- **Attack Animation**: 3-6 frames (windup, strike, recovery)
- **Jump**: 4-6 frames (crouch, ascend, peak, descend, land)
**Duplicating Frames:** Use `mcp__aseprite__duplicate_frame` to copy existing frames:
- Useful for creating variations
- Starting point for similar frames
**Deleting Frames:** Use `mcp__aseprite__delete_frame` to remove frames:
- Cannot delete the last remaining frame
- Frames are renumbered after deletion
3. Setting Frame Timing
**Frame Duration:** Use `mcp__aseprite__set_frame_duration`:
- Duration in milliseconds (ms)
- 100ms = 10 FPS
- 50ms = 20 FPS
- 33ms ≈ 30 FPS
- 16ms ≈ 60 FPS
**Common Timing Patterns:**
**Even Timing:** All frames same duration. Simple and predictable.
- Walk cycle: all frames 100ms (smooth 10 FPS)
**Variable Timing:** Different durations for emphasis.
- Idle: slow frames (150ms) for breathing effect
- Attack: fast strike (30ms), slower recovery (100ms)
**Hold Frames:** Longer duration for dramatic effect.
- Jump peak: 200ms (hang time)
- Impact: 50ms (quick flash)
4. Creating Animation Tags
**Purpose:** Organize frames into named sequences.
Use `mcp__aseprite__create_tag`:
- Name: "walk", "idle", "attack", etc.
- From Frame: starting frame (1-indexed)
- To Frame: ending frame (inclusive)
- Direction: "forward", "reverse", or "ping-pong"
**Example Tags:**
- Tag "idle": frames 1-2, ping-pong direction
- Tag "walk": frames 3-6, forward direction
- Tag "attack": frames 7-10, forward direction
**Benefits:**
- Export specific animations separately
- Organize complex sprite sheets
- Game engines can reference tags
5. Using Linked Cels
**Purpose:** Share image data across frames to save memory and maintain consistency.
Use `mcp__aseprite__link_cel`:
- Useful when frame content doesn't change
- Example: background layer stays same across animation
- Editing one linked cel updates all
**When to Use:**
- Static background elements
- Character face in walk cycle (if body animates separately)
- Repeated frames in animation
**Workflow:** 1. Create frames with content 2. Link cels that should share data 3. Edit once, updates everywhere
6. Animation Workflows
**Workflow 1: Walk Cycle (4 frames)**
1. Create base sprite (or use existing) 2. Add 3 more frames (total 4) 3. Edit each frame for walk positions:
- Frame 1: Left foot forward
- Frame 2: Contact (both feet touching)
- Frame 3: Right foot forward
- Frame 4: Contact (both feet touching)
4. Set all frames to 100ms duration 5. Create tag "walk": frames 1-4, forward direction
**Workflow 2: Idle Animation (2 frames)**
1. Create base sprite 2. Add 1 more frame (total 2) 3. Slight variations:
- Frame 1: Normal stance
- Frame 2: Subtle movement (breathing, blinking)
4. Set frames to 500ms duration (slow, subtle) 5. Create tag "idle": frames 1-2, ping-pong direction
**Workflow 3: Complex Multi-Animation Sprite**
1. Create base sprite 2. Add enough frames for all animations:
- Idle: 2 frames
- Walk: 4 frames
- Jump: 4 frames
- Total: 10 frames
3. Arrange frames sequentially 4. Create separate tags:
- Tag "idle": frames 1-2
- Tag "walk": frames 3-6
- Tag "jump": frames 7-10
5. Set appropriate fram
Read more
name: Pixel Art Animator description: Create and manage sprite animations with multiple frames, animation tags, frame durations, and linked cels. Use when the user wants to animate a sprite, add animation, create movement, make it move, mentions "animation", "animated", "frames", "keyframes", "frame rate", "FPS", "timing", "duration", "walk cycle", "run cycle", "idle animation", "attack animation", "jump", "movement", "motion", or describes actions like "walking", "running", "jumping", "attacking", "breathing", "bobbing", "bouncing". Trigger on animation tags, loops, playback, sequences, "add frames", "duplicate frame", "frame timing", "ping-pong", "loop", "sequence". Also for linked cels, static backgrounds, and frame optimization. allowed-tools: Read, Bash, mcp__aseprite__add_frame, mcp__aseprite__delete_frame, mcp__aseprite__duplicate_frame, mcp__aseprite__set_frame_duration, mcp__aseprite__create_tag, mcp__aseprite__delete_tag, mcp__aseprite__link_cel, mcp__aseprite__get_sprite_info, mcp__aseprite__draw_pixels, mcp__aseprite__draw_line, mcp__aseprite__draw_rectangle, mcp__aseprite__draw_circle
Pixel Art Animator
Overview
This Skill handles all animation-related tasks for sprites, including frame management, timing, animation tags (sequences), and linked cels for efficient animation.
When to Use
Use this Skill when the user:
- Wants to "animate" a sprite or "add animation"
- Mentions "frames", "keyframes", or "frame rate"
- Describes motion: "walk cycle", "run cycle", "idle animation", "attack animation"
- Asks about "animation tags", "loops", or "playback"
- Wants to create "sprite sheets" for animation (coordinate with exporter Skill)
**Trigger Keywords:** animate, animation, frames, walk cycle, run, idle, attack, loop, movement, motion
Instructions
1. Understanding Animation Basics
**Frame**: A single image in an animation sequence. Sprites start with 1 frame.
**Frame Duration**: How long each frame displays (in milliseconds). Default: 100ms (10 FPS).
**Animation Tag**: Named sequence of frames (e.g., "walk" frames 1-4, "idle" frames 5-8).
**Linked Cel**: A cel that shares image data with another cel. Editing one updates all linked cels.
**Playback Direction**:
- **Forward**: Frames play 1 → 2 → 3 → 4, then loop
- **Reverse**: Frames play 4 → 3 → 2 → 1, then loop
- **Ping-pong**: Frames play 1 → 2 → 3 → 4 → 3 → 2 → 1, then loop
2. Creating Animation Frames
**Adding Frames:** Use `mcp__aseprite__add_frame` to create new frames:
- Frames are numbered starting from 1
- New frames start as copies of the current frame (or blank)
**Common Frame Counts:**
- **Idle Animation**: 2-4 frames (subtle movement)
- **Walk Cycle**: 4-8 frames (legs alternate)
- **Run Cycle**: 6-8 frames (faster, exaggerated)
- **Attack Animation**: 3-6 frames (windup, strike, recovery)
- **Jump**: 4-6 frames (crouch, ascend, peak, descend, land)
**Duplicating Frames:** Use `mcp__aseprite__duplicate_frame` to copy existing frames:
- Useful for creating variations
- Starting point for similar frames
**Deleting Frames:** Use `mcp__aseprite__delete_frame` to remove frames:
- Cannot delete the last remaining frame
- Frames are renumbered after deletion
3. Setting Frame Timing
**Frame Duration:** Use `mcp__aseprite__set_frame_duration`:
- Duration in milliseconds (ms)
- 100ms = 10 FPS
- 50ms = 20 FPS
- 33ms ≈ 30 FPS
- 16ms ≈ 60 FPS
**Common Timing Patterns:**
**Even Timing:** All frames same duration. Simple and predictable.
- Walk cycle: all frames 100ms (smooth 10 FPS)
**Variable Timing:** Different durations for emphasis.
- Idle: slow frames (150ms) for breathing effect
- Attack: fast strike (30ms), slower recovery (100ms)
**Hold Frames:** Longer duration for dramatic effect.
- Jump peak: 200ms (hang time)
- Impact: 50ms (quick flash)
4. Creating Animation Tags
**Purpose:** Organize frames into named sequences.
Use `mcp__aseprite__create_tag`:
- Name: "walk", "idle", "attack", etc.
- From Frame: starting frame (1-indexed)
- To Frame: ending frame (inclusive)
- Direction: "forward", "reverse", or "ping-pong"
**Example Tags:**
- Tag "idle": frames 1-2, ping-pong direction
- Tag "walk": frames 3-6, forward direction
- Tag "attack": frames 7-10, forward direction
**Benefits:**
- Export specific animations separately
- Organize complex sprite sheets
- Game engines can reference tags
5. Using Linked Cels
**Purpose:** Share image data across frames to save memory and maintain consistency.
Use `mcp__aseprite__link_cel`:
- Useful when frame content doesn't change
- Example: background layer stays same across animation
- Editing one linked cel updates all
**When to Use:**
- Static background elements
- Character face in walk cycle (if body animates separately)
- Repeated frames in animation
**Workflow:** 1. Create frames with content 2. Link cels that should share data 3. Edit once, updates everywhere
6. Animation Workflows
**Workflow 1: Walk Cycle (4 frames)**
1. Create base sprite (or use existing) 2. Add 3 more frames (total 4) 3. Edit each frame for walk positions:
- Frame 1: Left foot forward
- Frame 2: Contact (both feet touching)
- Frame 3: Right foot forward
- Frame 4: Contact (both feet touching)
4. Set all frames to 100ms duration 5. Create tag "walk": frames 1-4, forward direction
**Workflow 2: Idle Animation (2 frames)**
1. Create base sprite 2. Add 1 more frame (total 2) 3. Slight variations:
- Frame 1: Normal stance
- Frame 2: Subtle movement (breathing, blinking)
4. Set frames to 500ms duration (slow, subtle) 5. Create tag "idle": frames 1-2, ping-pong direction
**Workflow 3: Complex Multi-Animation Sprite**
1. Create base sprite 2. Add enough frames for all animations:
- Idle: 2 frames
- Walk: 4 frames
- Jump: 4 frames
- Total: 10 frames
3. Arrange frames sequentially 4. Create separate tags:
- Tag "idle": frames 1-2
- Tag "walk": frames 3-6
- Tag "jump": frames 7-10
5. Set appropriate fram
Create, animate, and export pixel art using Aseprite through natural language and commands in Claude Code. Powered by pixel-mcp - a Model Context Protocol server for Aseprite.
Other skills on pixel-plugin.
- /pixel-art-creator
Create new pixel art sprites from scratch with canvas creation, layer management, and basic drawing primitives. Use when the user wants to create a sprite, draw pixel art, make a new canvas, start a new image, begin a new project, or mentions pixel dimensions like "64x64",
Open skill - /pixel-art-exporter
Export sprites to PNG, GIF, or spritesheet formats with JSON metadata for game engines. Use when the user wants to "export", "save", "output", "render", "generate", "create file", mentions file formats like "PNG", "GIF", "animated GIF", "spritesheet", "sprite sheet", "texture
Open skill - /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",
Open skill

