Format: Sprite Sheet
Specification for the sprite sheet export formats (.png and Aseprite .json).
The add-on exports sprite sheet animations in two formats: PNG (.png) and Aseprite JSON (.json). Both render animation frames into a grid-based sprite sheet image. The difference is how metadata and the image are delivered.
- PNG (
.png) — A single sprite sheet image with no metadata. - Aseprite JSON (
.json) — Aseprite-compatible JSON metadata alongside a sidecar PNG image.
All exportable animations are packed sequentially into a single sheet. Frames are laid out left-to-right, top-to-bottom in the grid.
PNG format (.png)
A single PNG image containing all animation frames arranged in a grid. No metadata is included — the consumer must know the frame size and count ahead of time.
Aseprite JSON format (.json)
An Aseprite-compatible JSON metadata file alongside a sidecar PNG sprite sheet image. This format can be imported by Aseprite and any engine with Aseprite sprite sheet support (Godot, Phaser, LibGDX, etc.).
Schema
{
"frames": [
{
"filename": "idle 0",
"frame": { "x": 0, "y": 0, "w": 256, "h": 256 },
"rotated": false,
"trimmed": false,
"spriteSourceSize": { "x": 0, "y": 0, "w": 256, "h": 256 },
"sourceSize": { "w": 256, "h": 256 },
"duration": 42
}
],
"meta": {
"app": "Playable Workshop Tools for Blender",
"image": "character.png",
"format": "RGBA8888",
"size": { "w": 1024, "h": 1024 },
"scale": "1",
"frameTags": [
{
"name": "idle",
"from": 0,
"to": 23,
"direction": "forward"
}
]
}
}
Field reference
Frame
| Field | Type | Description |
|---|---|---|
filename | string | Frame identifier ("animation_name index") |
frame | object | Region in the sheet: x, y, w, h (pixels) |
rotated | bool | Always false (no rotation packing) |
trimmed | bool | Always false (no trim packing) |
spriteSourceSize | object | Same as frame (no trimming) |
sourceSize | object | Original frame dimensions: w, h |
duration | int | Frame duration in milliseconds (1000 / fps) |
Meta
| Field | Type | Description |
|---|---|---|
app | string | Exporter identifier |
image | string | Filename of the sidecar PNG image |
format | string | Pixel format (always "RGBA8888") |
size | object | Total sheet dimensions: w, h (pixels) |
scale | string | Scale factor (always "1") |
frameTags | array | Animation tag definitions |
Frame tag
| Field | Type | Description |
|---|---|---|
name | string | Animation name |
from | int | First frame index (inclusive) |
to | int | Last frame index (inclusive) |
direction | string | Playback direction (always "forward") |
Frame indices in
frameTagsare global across all animations. For example, if “idle” uses frames 0–23 and “run” uses frames 24–31, the run tag would have"from": 24, "to": 31.
Notes
- The sidecar PNG (for the
.jsonformat) is saved alongside the JSON file with the same base name. - Image data in the metadata refers to raw PNG file bytes, not decoded pixel data.