Aseprite 中文文档 下载 App

切片(Slice)与角色定制|让 Sprite Sheet 能被游戏引擎按部件读

Slice 是什么

Slice 是 v1.3 新增的功能——把一张画布按矩形区域切分成多个命名的"块"。

┌─────┐
│ 头   │ ← 一个 Slice,名叫 "head"
├─────┤
│身体  │ ← 一个 Slice,名叫 "body"
├─┬─┤
│左│右│ ← 两个 Slice,名叫 "arm-L" / "arm-R"
└─┴─┘

导出 Sprite Sheet + JSON 后,Slice 信息会一起写入 JSON——Unity / Godot 等引擎可以按 Slice 名字自动把大图拆成多个小 Sprite,然后分别放到不同的 Sprite Renderer / Sprite2D 节点上。

最实用的场景:角色定制系统。一个角色可以拆成头、身体、武器三个 Slice——玩家选不同的头、不同的武器组合,Aseprite 导出一张大图,引擎按 Slice 自动切出三块,重新组合即可。

怎么创建 Slice

桌面版

  1. 选框工具(M) 框选你想做 Slice 的区域
  2. Edit → Slices → New Slice(或按快捷键 Shift+C)
  3. 给 Slice 起个名字(head / body / arm-left)
  4. 继续框选其他区域、继续创建 Slice

Slice 面板

Window → Slices 打开 Slice 面板——列出所有 Slice 的名字、位置 (x, y, w, h)。在面板里可以:

v1.3.15 新增了拖拽调整 Slice 边界和Edit → Copy & Paste 复制粘贴 Slice的功能——改 Slice 位置比以前方便。

Slice 和 Layer Group 的区别

概念是做什么的影响导出
Slice画布空间的矩形区域划分✅ 导出 JSON 时写入,引擎能按 Slice 切 Sprite
Layer Group图层层级的组织方式❌ 导出 JSON 时不写入(只是帮你在 Aseprite 里整理图层)

Slice 是空间上的切分(头在画布的哪个矩形区域),Layer Group 是时间上的组织(头的像素在哪个图层)。两者可以同时用。

Slice 在游戏引擎里的应用

Unity

Aseprite Importer 会自动读取 Slice 信息——在 Sprite Editor 里可以看到所有 Slice 已经被标记好,点击某个 Slice 区域就能单独选中它。Unity 的 Sprite Swap 功能可以让"身体"节点替换成不同 Slice。

Godot

Godot 4 导入 .ase 文件后,Slice 信息写入 JSON——可以通过脚本按名字获取不同 Slice 的 Texture2D:

var aseprite = preload("res://character.ase")
var head = aseprite.get_slice_texture("head")
var body = aseprite.get_slice_texture("body")

切片 vs 导出多个 PNG

方式优点缺点
Slice 一张大图只用一张 Texture Atlas,引擎加载效率高Slice 尺寸固定后不好改
导出多个独立 PNG灵活,每个部件独立文件文件多了引擎加载慢、管理麻烦

角色定制系统推荐用 Slice 一张大图——引擎一次加载就拿到所有部件,内存里只占一张纹理的空间。