How to import AI sprite sheets into Unity, Godot, GameMaker, RPG Maker and Phaser
To import an AI sprite sheet into a game engine, download it as a PNG grid, a set of frames or a sheet plus JSON, then tell the engine how the grid is laid out. Ludo.ai's Sprite Generator lays every sheet out as a square grid (36 frames is 6 columns by 6 rows) read left to right, top to bottom, and writes the frame count, rows and columns into the file name. Unity and Godot slice the PNG by column and row count, GameMaker imports the frames or a strip, Phaser loads the TexturePacker-format JSON as an atlas, and RPG Maker needs the frames arranged into its own character sheet layout.
Last updated September 2026
What you need
- A finished animation in Ludo.ai's Sprite Generator
- Your engine: Unity, Godot, GameMaker, RPG Maker MZ or Phaser
- For RPG Maker, an image editor to arrange frames into a character sheet
1Choose the export in Ludo.ai
Open the result's menu in the Sprite Generator. Download Sprite Sheet gives the PNG grid, for Unity, Godot and GameMaker. Download All Frames gives a zip of PNGs named frame_000.png, frame_001.png and so on, for GameMaker and RPG Maker. Download Sheet + JSON gives a zip with the PNG and a TexturePacker-format JSON, for Phaser. For several animations of one character, use Export > Animation Pack so every sheet shares one frame size and ground line, and choose Pixel Art there for nearest-neighbor scaling on pixel art.
2Unity: slice the sheet in the Sprite Editor
Drag the PNG into your Assets folder. In the Inspector set Texture Type to Sprite (2D and UI) and Sprite Mode to Multiple; for pixel art, set Filter Mode to Point (no filter). Click Open Sprite Editor, open Slice, set Type to Grid By Cell Count and enter the column and row counts from the file name (6 and 6 for a 36 frame sheet). Set the Pivot, click Slice, then Apply. Turn on Keep Empty Rects if a frame is fully transparent, so the frame order stays intact. See Unity's Sprite Editor guide and sprite import settings.
3Godot: build SpriteFrames from the sheet
Add an AnimatedSprite2D node, give it a new SpriteFrames resource, and in the SpriteFrames panel choose "Add frames from a Sprite Sheet". Select the PNG, set Horizontal and Vertical to the column and row counts, select the frames and add them. Set the animation speed to the frame count divided by the duration in seconds (36 frames over 3 seconds is 12 FPS) and turn on looping if needed. As an alternative, set Hframes and Vframes on a Sprite2D and animate its frame property with an AnimationPlayer. For pixel art, set the node's Texture Filter to Nearest, or set the project default in rendering/textures/canvas_textures/default_texture_filter. See Godot's 2D sprite animation tutorial and CanvasItem reference.
4GameMaker: import frames or a strip
Create a Sprite, click Import and select all the PNGs from Download All Frames; selecting multiple files adds each one to the sprite as a sub-image. To use the grid sheet instead, use the Inspector's Import Strip option, which opens the Convert to Frames window where you set the number of frames, the frame width and height, and any offsets. Then set the origin, the point placed at the instance's position, and the frame speed in frames per second. For pixel art, turn off "Interpolate colours between pixels" in the Game Options for your target platform. See GameMaker's Sprite Editor, Image Editor and Windows Game Options pages.
5RPG Maker: arrange frames into a character sheet
RPG Maker MZ reads map characters as PNG files from img/characters. Per its asset standards, each character has 3 patterns for each of 4 directions (up, down, left, right), and the pattern size comes from the file: 1/12 of its width and 1/8 of its height, which is 48x48 pixels at MZ's default tile size. A standard file holds 8 characters in 2 rows of 4, and a "$" at the start of the file name makes the file a single character, 3 patterns across and 4 directions down. The Sprite Generator does not export this layout, so assemble it: in Transfer Motion, generate the same walk once per direction with identical settings, use Download All Frames for each, pick 3 frames per direction, scale them to your character size and arrange them in an image editor, following the direction order of a character sheet already in your project. Walk presets are humanoid-only; for other characters, use a reference video in Transfer Motion or describe the motion in Animate.
6Phaser: load the atlas or a fixed-size sheet
Unzip Download Sheet + JSON and load both files with
this.load.atlas('hero', 'hero.png', 'hero.json'). Phaser reads JSON Hash and JSON Array atlases; the export is a hash with frames namedframe_000,frame_001and so on, sothis.anims.generateFrameNames('hero', { prefix: 'frame_', start: 0, end: 35, zeroPad: 3 })returns a 36 frame sequence to pass tothis.anims.createwith aframeRate. Without the JSON, load the plain sheet withthis.load.spritesheet('hero', 'hero.png', { frameWidth: 128, frameHeight: 128 })using the cell size, and reference frames by number. For pixel art, setpixelArt: truein the game config. See Phaser's LoaderPlugin, animations and game config docs.
Specs
| Downloads per result | Sprite sheet PNG, GIF, all frames as PNGs, sheet plus TexturePacker-format JSON |
|---|---|
| Sheet grid | Square, read left to right and top to bottom: 4 frames 2 x 2, 9 frames 3 x 3, 16 frames 4 x 4, 25 frames 5 x 5, 36 frames 6 x 6, 49 frames 7 x 7, 64 frames 8 x 8 |
| File name | Carries the frame size, frame count, rows and columns, for example ...-128px-frames-36-rows-6-cols-6.png |
| JSON format | TexturePacker JSON Hash: frames keyed frame_000, frame_001 and so on, each with its rectangle and a duration in ms, plus meta image name and sheet size |
| Cell size | 32, 64, 96, 128, 192, 256 or 384 px, Max, True Size or Upscale 1.5x |
| Animation Pack export | Spritesheets, Spritesheets + JSON or Individual Frames; one frame size for every sheet, with a Global Ground Offset in px |
| Animation Sequence export | Single Spritesheet, Single Spritesheet + JSON, Separate Spritesheets, Separate Spritesheets + JSON, Individual Frames |
| Art mode (Pack and Sequence) | Smooth Art (default) or Pixel Art, which scales with nearest-neighbor |
Tips
- Read the grid from the file name rather than assuming the Max Frames you picked: Max Frames is a ceiling, and the name records the frames, rows and columns the sheet actually has.
- Keep Sprite Size and Max Frames the same across a character's animations, or export them together as an Animation Pack, so every clip slices with the same numbers and lines up in the engine.
- An Animation Sequence exported as a Single Spritesheet is not always square: it uses as many columns as the square root of the total frames rounded up, so the last row can have empty cells. Enter the real frame count when you import it.
- For pixel art, export with Pixel Art and also switch the engine to nearest or point filtering, so the engine does not blur what the export kept sharp. The pixel art sprites guide covers the full workflow.
- Walk presets render one direction per generation. For an 8-direction set, see how to make an 8-direction sprite sheet and import each direction as its own clip.
FAQ
How many rows and columns does the sprite sheet have?
A result from the Sprite Generator is a square grid: 4 frames is 2 by 2, 9 is 3 by 3, 16 is 4 by 4, 25 is 5 by 5, 36 is 6 by 6, 49 is 7 by 7 and 64 is 8 by 8. Frames run left to right, then top to bottom, and the downloaded file name ends with the frame count, rows and columns.
Is the JSON a TexturePacker hash or array?
A hash. The frames object is keyed frame_000, frame_001 and so on, each entry holding the frame rectangle, rotated and trimmed set to false, and a duration in milliseconds; meta names the PNG and gives the sheet size. Phaser's load.atlas reads it directly.
Do I need the JSON for Unity, Godot or GameMaker?
No. All three slice a grid sheet from the column and row counts or the frame size, which you can read from the file name, so Download Sprite Sheet or Download All Frames is enough. The JSON is for engines that load TexturePacker-format atlases, such as Phaser.
Does Ludo.ai export RPG Maker character sheets?
Not as a ready layout. Generate the walk once per direction in Transfer Motion, download the frames, and arrange 3 patterns per direction into the character sheet described in the RPG Maker MZ asset standards. Walk presets are for humanoid characters; for anything else, use a reference video. The walk cycle guide covers the walk itself.
How do I keep idle, walk and attack sheets aligned in the engine?
Export them together with Export > Animation Pack. Every sheet gets the same Export Frame Size, the character's feet sit on a shared ground line, and the Global Ground Offset tells you how many pixels the ground line sits above the bottom of the frame, which you can use to set the pivot or origin.
What frame rate should I set?
Divide the frame count by the animation's duration in seconds: 36 frames over 3 seconds plays at 12 frames per second. The JSON from Download Sheet + JSON stores the same timing as a per-frame duration in milliseconds.
Related
More guides for Sprite Generator
- How to make a walk cycle for a 2D character with AIApply a walk preset to one character image, pick perspective and direction, export a looping sheet.
- How to turn a character image into an animated sprite sheet with AIAnimate one character image into a sprite sheet using a prompt, keyframes, a preset or a reference video.
- How to make an 8-direction sprite sheet with AIRotate a character to 8 views, animate each view in its direction, export 8 matching sheets.
- How to make and animate pixel art sprites with AIGenerate in a pixel art style, animate with Forge Pixel, export with nearest-neighbor scaling.
- How to make VFX sprites for explosions, magic and hits with AIGenerate an effect as a Sprite VFX still, animate it as a loop or a one-shot, export frames with alpha.
- How to make a tileset for a 2D game with AIGenerate map tiles and tiling sprites in one style and perspective, then build the tileset in your engine.
