Production workflows at scale
A character with idle, walk, attack, hurt, and death is a different kind of project from a single icon. The frame count is high and the layer stack is deep, so you need to plan the budget up front and use publish checkpoints to keep the work recoverable. The structure comes first below, then a full 36-frame boss as the worked example.
Plan the frame budget first
Section titled “Plan the frame budget first”Before drawing anything, decide what the project needs to ship. A typical character might be: idle 1–6, walk 7–12, attack_1 13–18, hurt 19–20, death 21–24. A bigger boss might run to 36 frames or more across idle, intro, three attacks, hurt, and death. Write the budget down. It becomes the frame plan, the tag plan, and the export plan in one.
Knowing the budget up front prevents two failure modes. One is scope creep: adding an attack late doubles the work for that animation. The other is running out of frames mid-build and having to renumber everything, which is when tags break and exports start landing in the wrong columns.
Layer groups
Section titled “Layer groups”With many frames and several layers per frame, the timeline becomes unreadable without structure. Use Layer Groups to cluster related layers: body, weapon, fx, shadow for a character; base, highlights, shadows, text-safe for a UI kit. A collapsed group keeps the timeline short and lets you solo or hide a whole cluster at once.
Keep layers consistent across frames. If body is the second layer on frame 1, it should be the second layer on frame 36; the grid timeline assumes the same layer order across the whole animation.
Publish checkpoints
Section titled “Publish checkpoints”Publish a version at each milestone. An error late in a multi-animation build is costly to redo, so the checkpoints are worth the small effort. Use comments that describe what’s true at that point:
silhouette: outlines read at 1× across all frames.palette_locked: colors finalised, palette locked so no stray shades sneak in.rough_anim: every animation’s frames are blocked in.timing_locked: frame durations set, the animation feels right at playback speed.export_ready: exports generated and checked against the budget.final_v1: signed off.
Each published version is a restore point, so if timing_locked turns out to have broken a silhouette you liked, you can restore it in one click. The full mechanics are in Version history and publishing.
Worked example: a 36-frame boss
Section titled “Worked example: a 36-frame boss”A boss needs idle (1–6), intro (7–14), attack_1 (15–20), attack_2 (21–27), attack_3 (28–32), hurt (33–34), and death (35–36), which comes to 36 frames.
Start with the layer groups: shadow, body, weapon, fx. Block in the idle first, on the body layer across frames 1–6, with onion skinning on so neighbouring poses stay consistent. Publish silhouette once every frame’s outline looks correct at 1×.
Set the palette and generate shading ramps; lock the palette; publish palette_locked. Move to the intro (7–14), a more elaborate animation where the boss enters. This is a good place to use the Tween generator for the smooth approach and hand-draw the anticipation and landing poses. Block in the three attacks (15–32) and the hurt and death reactions (33–36). Publish rough_anim.
Switch to the grid timeline and set frame durations so the animation has consistent timing: idle around 100 ms per frame, attacks faster on the strike and slower on the recovery, death with long holds at the end. Publish timing_locked.
Tag every range (idle, intro, attack_1, attack_2, attack_3, hurt, death) with appropriate directions. Idle and the attacks are Forward, while death might be Play Once rather than looping. Export each tag, either as a sprite sheet row or a PNG sequence, document the layout in the publish comment, and publish export_ready. After review and any final tweaks, publish final_v1.
AI automation
Section titled “AI automation”At this scale, the AI Assistant suits the deterministic parts rather than the expressive ones. generateMirroredVariants turns a facing-right walk into a facing-left walk without redrawing. loadPalette into a variation builds a skin family in seconds. generateTween between two hand-drawn key poses fills the in-betweens, which you then clean up. Keep expressive work (attack poses, death reactions) manual. Let the AI handle motion that can be described as a direct translation from one position to another.
Shipping the family
Section titled “Shipping the family”If the boss has skin variants (a base form and an enraged form), use Variations so both forms share one frame set, differing only in palette and visibility. Export all variations together, document the column layout for each, and the engine gets a clean, tagged, versioned handoff.
