animate
Converts static Aseprite art into tagged animations and optional sprite sheets without modifying the source, using presets and layer tracks for game-ready output.
Instructions
Static art -> animations. Reads source (never modified), writes output .aseprite with one tag per animation, optionally exports a sheet. Each animation: {name, preset?, frames?, durationMs?, loop?, pivot?:bottom|center|top|[x,y], sourceFrames?|sourceTag?, tracks?}. preset: name | {name, amount?, layers?, lag?:{layer:0.1}, color?, colors?, parts?:{head:"skull"}} | list (combined). Presets: bob: idle up/down bob (amount px, 1); breathe: squash/stretch breathing, feet planted (amount px, 1); float: smooth hover (amount px, 2); hop: squash, jump, land (amount = height px, 6); walk: two-step bounce + tilt for walking without leg frames (amount px, 1); hit: knockback shake + white flash, one-shot (amount px, 2); flash: alternate flash color (color, #fff); blink: invincibility blink; shake: fast horizontal jitter (amount px, 1); sway: plants/hair/flames bend, base fixed (amount = shear, 0.15); wobble: jelly wobble (amount px, 1); pulse: grow/shrink from center (amount px, 1); spin: full rotation, RotSprite-smoothed; swing: pendulum from the top (amount degrees, 15); spawn: pop in with overshoot, one-shot; death: flash, sink and dither-dissolve, one-shot (amount = sink px, 2); fade_out: fade (alpha in RGB, dither otherwise), one-shot; fade_in: reverse of fade_out, one-shot; wave: horizontal ripple: flags, water, heat (amount px, 1); cycle: palette cycling: colors rotate each frame (colors, required); idle_rig: rigged idle: torso breathes, head and arms follow 1-2 frames later (amount px, 1); walk_front: rigged front-facing walk: alternating leg lifts, body bob + weight shift, opposite arm swing (amount = lift px, 2). tracks: [{layer?:"*"|name, x,y,sxPx,syPx,sx,sy,rot,shear,waveAmp,alpha,flash,dissolve,visible,pose: curve}] (pose = source frame whose drawing the layer shows: draw alternate part poses on extra source frames, swap them per frame). curve = number | {seq:[per frame]} | {keys:[[t,v,ease?]]} (ease in|out|inout|step|back) | {wave:sine|triangle|square|saw,amp,base?,phase?,cycles?}. Use padding when motion leaves the canvas. saveRecipe writes a re-runnable recipe (CLI: aseprite-mcp build recipe.json).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| export | No | {sheet, ...export sheet options, scale?} | |
| output | No | ||
| recipe | No | load recipe JSON file instead of inline fields | |
| source | No | ||
| padding | No | px or [left,top,right,bottom] | |
| preview | No | default true | |
| animations | No | ||
| saveRecipe | No |