Overview
Sprite sheets (also called texture atlases) pack multiple animation frames or sprites into a single image file. This is the standard format for delivering game assets, as it reduces file count, improves loading performance, and simplifies asset management.Aseprite provides powerful sprite sheet export options with automatic packing, trimming, and metadata generation.
Why Use Sprite Sheets?
Better Performance
One image loads faster than hundreds of individual frames. Reduces HTTP requests and disk I/O.
Smaller File Size
Eliminates redundant headers and metadata. Can be compressed more efficiently.
Easier Management
One file instead of many. Simpler version control and asset pipeline.
GPU Efficiency
Single texture binding. Enables efficient batching and rendering.
Exporting Sprite Sheets
Choose Layout
Select how frames should be arranged:
- Horizontal Strip: All frames in one row
- Vertical Strip: All frames in one column
- Square: Packed into a square grid
- Packed: Optimal automatic packing
Configure Options
Set export parameters:
- Trim empty pixels
- Add borders/padding
- Include metadata (JSON/XML)
- Split layers or tags
Export Layouts
- Horizontal Strip
- Vertical Strip
- Grid (Rows/Columns)
- Packed
All frames arranged in a single row, left to right.Best for:
- Simple animations with few frames
- Side-scrolling game sprites
- Quick manual implementation
Export Options
Trimming
Trimming
Remove transparent pixels around each frame to save space:
- Trim Cels: Remove empty space from individual frames
- Trim Sprite: Remove border space from entire sheet
- Keep Sprite Size: Maintain original canvas size
Trimming significantly reduces texture memory but requires metadata to correctly position frames.
Borders and Padding
Borders and Padding
Add spacing between frames and around edges:
- Border Padding: Space around entire sheet
- Shape Padding: Space between individual frames
- Inner Padding: Space inside each frame
Metadata Formats
Metadata Formats
Export frame position data in various formats:JSON Hash:JSON Array:XML:
JSON is recommended for modern game engines. Most frameworks parse it automatically.
Layer Export Options
Layer Export Options
Control how layers are exported:
- Merge Layers: Flatten all visible layers (default)
- Split Layers: Export each layer as separate sheet
- Split Tags: Export each animation tag as separate sheet
- Split Grid: Export based on grid selection
Use
{tag}, {layer}, or {tagframe} placeholders in filenames for automatic naming.Command Line Export
Automate sprite sheet generation with the Aseprite CLI:CLI Placeholders:
{title}: Sprite filename without extension{tag}: Current tag name{layer}: Current layer name{frame}: Current frame number{tagframe}: Frame within current tag
Importing Sprite Sheets
Aseprite can also import sprite sheets back into frames:Define Frame Layout
Tell Aseprite how frames are arranged:
- Grid dimensions (rows × columns)
- Or select frames manually
Game Engine Integration
- Unity
- Godot
- Phaser
- Custom Engine
Import sprite sheets into Unity:
- Import the PNG file into your Assets folder
- Select it in the Project panel
- Set Texture Type to Sprite (2D and UI)
- Set Sprite Mode to Multiple
- Open Sprite Editor
- Use Slice → Automatic or import JSON metadata
- Apply and create animations
Optimization Tips
Use Power of 2 Sizes
Export sheets with dimensions like 512×512, 1024×1024, or 2048×2048 for best GPU compatibility.
Trim Transparent Pixels
Enable trimming to remove wasted space, especially for sparse animations.
Add Padding
Include 1-2px padding between frames to prevent texture bleeding with mipmaps.
Compress Wisely
Use PNG-8 for indexed color, PNG-24 for RGBA. Consider WebP for web games.
Split Large Sheets
Keep sheets under 2048×2048 for mobile compatibility. Split by animation or character.
Include Metadata
Always export JSON metadata. It’s tiny and makes integration much easier.
Advanced Techniques
Scripting Automation
Scripting Automation
Automate sprite sheet export with Lua:
Batch Processing
Batch Processing
Process entire directories:
Multi-Character Sheets
Multi-Character Sheets
Combine multiple sprites into one sheet:
Troubleshooting
Frames cut off or missing
Frames cut off or missing
Cause: Trim settings are too aggressiveFix: Disable trimming or adjust sprite canvas size to include padding
Texture bleeding between frames
Texture bleeding between frames
Cause: No padding between frames with texture filtering enabledFix: Add 1-2px shape padding in export settings
Metadata not loading in game
Metadata not loading in game
Cause: Incorrect format or file pathFix: Verify JSON format matches engine expectations. Check file paths are relative.
Sprite sheet too large
Sprite sheet too large
Cause: Too many frames or not using packed layoutFix: Split into multiple sheets by animation tag or character state
Related Features
Animation Timeline
Learn how to create the animations you’ll export
CLI Overview
Master command-line batch processing
GIF Export
Export animations as GIF files instead
Scripting API
Automate exports with Lua scripts

