← Back to Blog Godot

How to Prep Sprite Sheets for Godot 4

July 2026  ·  By ORH Studio  ·  5 min read

Godot 4 handles sprite animation differently from Unity or GameMaker, and those differences affect how you should prepare your sprite sheets before importing. Get the setup right once, and every subsequent animation import takes under three minutes. Get it wrong, and you'll spend that time adjusting node properties to compensate for misaligned frames or bleeding artifacts.

This guide covers the complete pipeline from deciding on frame dimensions through setting up a reusable SpriteFrames resource — with browser-based tools handling the slicing so you don't need to install anything extra.

Understanding Godot's AtlasTexture System

Godot 4 provides two approaches to sprite animation. The first uses individual PNG frames loaded directly into a SpriteFrames resource. The second uses AtlasTexture, which references a sub-region of a larger sprite sheet PNG as a single texture, letting the GPU load one image and sample different regions per frame.

For most 2D game projects, the individual-frames approach is simpler to manage and debug — you can see each frame as a named asset in the FileSystem panel. The atlas approach saves draw calls and is worth considering for larger projects with many animated characters. Both approaches work with the workflow described here; the slicing step is the same regardless of which you choose in Godot.

💡 Godot's AnimatedSprite2D node can hold frames from multiple source textures in a single SpriteFrames resource. You don't need to keep all animations on one sheet — separate sheets per animation state is perfectly valid.

Recommended Frame Size and Padding

Godot 4 uses Vulkan and OpenGL ES 3.0 renderers, both of which handle non-power-of-two textures without issue. That said, sticking to power-of-two frame dimensions (32×32, 64×64, 128×128) still offers two practical benefits: cleaner mental math when calculating sheet dimensions, and better compatibility if you later target older or embedded hardware.

Pixel Art Characters
32×32 or 48×48. Keeps sheets small and fast to iterate on. Scales up cleanly with Godot's texture_filter set to Nearest.
Detailed Sprites
64×64 or 128×128. Better for HD-2D style art with more detail per frame. Godot handles large frames efficiently with its atlas batching.

For padding, add 1–2 pixels of transparent gutter between frames when exporting from Aseprite. This prevents texture bleeding when Godot's renderer samples adjacent pixels at frame boundaries. Without padding, you may see thin edge artifacts on moving sprites, particularly noticeable on lower-resolution pixel art.

Slicing Your Sheet in the Browser

Open Sprite Slicer Pro and upload your exported sprite sheet PNG. Enter the frame dimensions in the Cell Width and Cell Height fields. If your sheet includes padding between frames, enter the gap size in Padding X and Padding Y.

For the naming mode, choose Animation Rows. This outputs files like hero_idle_000.png, hero_idle_001.png, hero_walk_000.png — each row in your sheet gets its own named prefix. When you drag these into Godot's FileSystem panel, you can select all frames for a given animation state by filtering on the prefix, which makes the import step much faster.

Click Slice and a ZIP downloads automatically. Extract it to find a folder of numbered PNGs ready for Godot.

💡 Use the live preview grid in Sprite Slicer Pro to confirm your cell dimensions before slicing. A clean grid with lines landing exactly between frames confirms your measurements are correct.

Importing into Godot's AnimatedSprite2D

Drag the extracted PNG files into your Godot project's FileSystem panel — create a dedicated sprites/character/ folder to keep assets organized by character. Godot will import them automatically as Texture2D resources.

For pixel art, select all imported sprite PNGs in the FileSystem, go to the Import tab in the bottom panel, and set:

Click Reimport after changing settings. Then add an AnimatedSprite2D node to your scene and proceed to the SpriteFrames setup.

Setting Up SpriteFrames Resource

In the Inspector for your AnimatedSprite2D node, click SpriteFrames and select New SpriteFrames. The SpriteFrames editor opens at the bottom of the screen.

  1. Click Add Animation and name it idle
  2. In the FileSystem panel, select all frames for the idle animation (Shift+click, or filter by prefix)
  3. Drag the selected frames into the frame list in the SpriteFrames editor
  4. Set the FPS to match your original animation speed (typically 8–12 FPS for pixel art)
  5. Enable Loop for animations that repeat (idle, walk); disable for one-shot animations (death, attack)
  6. Repeat for each animation state: walk, run, attack, jump

Once your animations are set up, save the SpriteFrames resource as an external .tres file (Resource → Save in the Inspector). Externalizing it lets multiple characters share the same resource file, and allows you to update animations without modifying the scene file.

💡 Preview animations directly in the SpriteFrames editor by pressing the Play button at the bottom. Catch timing issues and wrong frame order before testing in-game.