Sprite Sheet 导出教程:Unity / Godot 完整工作流
一、什么是 Sprite Sheet
Sprite Sheet(精灵图集/精灵表)是将动画的所有帧排列在一张图片上,配合数据文件描述每帧的位置和大小。游戏引擎只需加载一张图,就能播放完整动画,大幅减少绘制调用(Draw Call),提升性能。这是将 Aseprite 动画导入游戏引擎的标准方式。
二、导出设置
在 Aseprite 中按 Ctrl+E 打开导出对话框:
- Output File 选择 .png 格式
- 在 Sprite Sheet 区域:
- Sheet Type:选择排列方式
- Horizontal:水平排列
- Vertical:垂直排列
- Packed:自动紧凑排列(推荐)
- Constraints:固定行数/列数(可选)
- Padding:帧间距,建议 1-2 像素避免纹理采样溢出
- Sheet Type:选择排列方式
- 勾选 JSON Data,选择 Hash 或 Array 格式
- 点击 OK 导出,会生成 .png 和 .json 两个文件
三、JSON 数据格式
导出的 JSON 文件包含:
- frames:每帧的位置(x, y)、尺寸(w, h)、时长(duration)
- meta:图片尺寸、帧标签(frameTags)、图层信息、切片数据
如果使用了帧标签,JSON 中会包含 frameTags 数组,引擎可直接按名称识别动画片段。
四、导入 Unity
方式一:官方 Aseprite Importer(推荐)
- Unity 2021.3.15+ 版本,打开 Window → Package Manager
- 搜索 "2D Aseprite Importer" 并安装
- 直接将 .aseprite 文件拖入 Project 窗口
- 在 Inspector 中设置 Pixels Per Unit(通常 16 或 32)
- 勾选 Generate Animation Clips 和 Generate Physics Shape
- 点击 Apply,自动生成精灵图集和动画控制器
详细步骤见Aseprite 与 Unity 2D 集成教程。
方式二:手动导入 PNG + JSON
- 将导出的 .png 和 .json 放入 Unity 项目
- 选中 PNG,Sprite Mode 设为 Multiple
- 打开 Sprite Editor,根据 JSON 数据手动切片或使用第三方插件
五、导入 Godot
Godot 4 原生支持 Aseprite 导入:
- 将 .aseprite 文件放入项目文件夹
- Godot 会自动识别并生成 AnimatedSprite2D 资源
- 在 Import 面板设置裁剪、过滤等选项
- 帧标签自动成为动画名称
详细步骤见Aseprite 与 Godot 4 集成教程。如果使用 PNG + JSON,可安装 Godot Aseprite Wizard 插件自动导入。
导出时 Padding 设为 1-2 像素非常重要。如果帧之间没有间距,GPU 纹理采样时可能会把相邻帧的像素混入,导致精灵边缘出现细线。
六、导出注意事项
- 确保所有帧尺寸一致(Aseprite 默认 Canvas 大小统一)
- 如果角色有空白边缘,勾选 Trim 自动裁剪空白
- 合并图层后导出可减小文件体积,但会丢失图层信息
- 不同方向的动画(左/右)可以只画一个方向,在引擎中翻转
还没有 Aseprite?
立即下载 Aseprite