Skip to content
Content
Skill

/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",

From plugin
pixel-plugin
4024 skills5 commands1 MCP

Claude Code

$ npx -y skills add willibrandon/pixel-plugin --skill pixel-art-animator --agent claude-code

SKILL.md

pixel-art-animator.SKILL.md
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

Read more
@willibrandon
Ships withpixel-plugin

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.

4024 skills1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
402
Star history of willibrandon/pixel-plugin on GitHub, a chart by star-history.com

Other skills on pixel-plugin.

More skills from other plugins.

prompt-lookup

prompt-lookup

Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use…

@gh-f@gh-fInstall Skill
ppt-master

ppt-master

AI-driven presentation workflow for generating editable PPTX decks and slides, reconstructing page visuals, creating reusable…

@hugohe3@hugohe3Install Skill
morph-ppt

morph-ppt

Use this skill when the user wants a .pptx with smooth cross-slide animation — PowerPoint Morph transitions, Keynote-style…

officecli11d33k
@iofficeai@iofficeaiInstall Skill

Questions about pixel-art-animator.

Which coding agents can use pixel-art-animator?
pixel-art-animator installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.