Aseprite 中文文档 下载 App

Sprite Sheet 导出|一键打包给 Unity / Godot 的精灵图集

Sprite Sheet 是什么

Sprite Sheet(精灵图集)是把动画的所有帧拼成一张网格大图:

┌─────┬─────┬─────┬─────┐
│ 帧1 │ 帧2 │ 帧3 │ 帧4 │  ← 走路循环的 4 帧排成一行
├─────┼─────┼─────┼─────┤
│ 帧5 │ 帧6 │ 帧7 │ 帧8 │  ← 攻击动作的 4 帧排成第二行
└─────┴─────┴─────┴─────┘

游戏引擎不会直接导入 GIF 来做动画——GIF 文件体积大、帧时长不稳定、不支持半透明。所有主流游戏引擎(Unity / Godot / GameMaker / Unreal)都统一用 Sprite Sheet + 元数据的方式来加载和播放像素动画。

Aseprite 的 Sprite Sheet 导出是它最强大的导出功能之一——支持多种布局 + JSON/XML 元数据,引擎拿到就能直接用,不需要手动切片。

Sprite Sheet 导出
Sprite Sheet:一键拼网格 + 导出元数据

怎么导出

桌面版

  1. File → Export → Sprite Sheet
  2. 在弹出的对话框里选择:
  1. 勾选 Export JSON data(或 XML)→ 引擎读这个文件自动获取帧信息
  2. 选保存位置,导出

安卓端

画板完成后找"精灵表导出"选项,布局选择可能简化。

四种布局详解

布局效果适合
Horizontal(水平)所有帧排成一行帧不多时,引擎最容易处理
Vertical(垂直)所有帧排成一列单列方便,不常用
Grid(网格)指定每行几帧(Columns),自动换行多帧动画,最常用
By Tag(按标签)同一标签的帧放一起,不同标签分块一个文件有多段动作(走路/攻击/待机)

推荐 Grid 或 By Tag——Horizontal 在帧数多的时候会变成一条超长的图片,有些引擎加载会有问题(GPU 有最大纹理尺寸限制)。

元数据导出(重要)

一定要勾选 JSON 或 XML 导出。Aseprite 导出的 JSON 包含:

{
  "frames": {
    "walk/1": { "frame": {"x": 0, "y": 0, "w": 32, "h": 32} },
    "walk/2": { "frame": {"x": 32, "y": 0, "w": 32, "h": 32} }
  },
  "meta": {
    "image": "character-walk.png",
    "size": { "w": 128, "h": 32 },
    "frameTags": [
      { "name": "walk", "from": 0, "to": 7, "direction": "forward" }
    ]
  }
}

引擎(Unity / Godot)可以自动读取这个 JSON——帧尺寸、标签名、播放方向,全部自动配置好,不用手动切片。

帧尺寸统一——最容易被忽略的细节

Sprite Sheet 导出能自动切片的前提是所有帧的画布尺寸相同。如果你中途改过画布尺寸(比如从 32×32 改成 48×48),导出的 Sprite Sheet 里不同帧可能大小不一样——引擎切片时会错位。

检查方法:导出前在 Aseprite 里按帧浏览,或者导出后打开 Sprite Sheet 手动核对每格宽度是否一致。

贴图尺寸优化

移动端游戏有GPU 最大纹理尺寸限制(常见是 2048×2048 或 4096×4096)。如果 Sprite Sheet 太大超过限制,引擎加载会出问题。

Aseprite 导出时: