A spritesheet is just your animation frames arranged on a single image, in a grid, so a game engine can slice them apart at runtime instead of loading dozens of separate files. The idea is the same everywhere, but each engine has its own expectations about layout, spacing, and metadata — getting these wrong is the most common reason an animation looks broken the first time it's imported.
The Basics That Apply Everywhere
- Consistent frame size. Every frame in the sheet should occupy the same width and height, even if the actual artwork within a frame varies — a punch animation with an extended arm still needs the same frame bounds as the resting pose, or the sprite will jitter in place during playback.
- No unintended padding. Extra transparent pixels around a frame will offset the sprite when it's sliced, since most engines assume the frame boundary is exactly where the artwork starts.
- A predictable grid. Frames read left-to-right, top-to-bottom, with animations either sharing one sheet (one row per animation) or split into separate sheets per animation — both are common, and the choice mostly comes down to project preference.
Unity
Unity's Sprite Editor can slice a spritesheet automatically as long as the frames are a uniform grid size, which it detects via its "Grid By Cell Size" slicing mode. Import the sheet as a Sprite (2D and UI) with Sprite Mode set to Multiple, then let the Sprite Editor's automatic slicing handle the grid — this is the most forgiving of the three engines about exact pixel alignment, since slicing happens after import rather than depending on baked-in metadata.
Godot
Godot works with spritesheets through its AnimatedSprite2D or SpriteFrames resource, which also expects a uniform grid and lets you specify the frame width/height and total frame count directly in the editor. Godot is particularly strict about pixel-perfect frame boundaries when Filter is disabled for pixel art (which it generally should be) — any stray padding becomes visibly obvious as a shifted or clipped frame during playback.
GameMaker
GameMaker's Sprite Editor imports a strip and splits it based on a fixed frame width and height that you specify on import, similar to Godot. GameMaker sprites also carry their own origin point (used for positioning and rotation), which is set after import and independent of anything baked into the spritesheet image itself — worth remembering if character positioning looks off even though the sheet itself is correctly sliced.
Exporting from Pixelsito
The spritesheet export in Pixelsito lays frames out on a uniform grid with no accidental padding between them, using the composite preview to confirm the layout before saving — what you see in the preview is exactly what gets exported. Export animated GIFs when you just need to preview or share timing, and export a spritesheet specifically when the frames are headed into an engine.
Animate it, then export it.
Open the Editor