Aseprite 与 Unity 集成|官方 Importer 自动导入 .ase 文件
Unity 官方支持 Aseprite
从 Unity 2020.3 开始,Aseprite Importer 成为 Unity 官方包——你在 Aseprite 里保存的 .ase 或 .aseprite 工程文件,Unity 可以直接导入,自动切片、自动生成 Animator 动画片段。
这意味着:你不再需要手动导出 Sprite Sheet、手动切片、手动配置 Animator——Unity 读取 .ase 文件时自动帮你做完这一切。
安装 Aseprite Importer
- 在 Unity 里 Window → Package Manager
- 搜索 Aseprite Importer
- 点击 Install(Unity 2021.2+ 直接内置)
安装完成后,Unity 就能直接识别 .ase 文件。
三种导入方式对比
| 方式 | 做法 | 自动程度 | 适合 |
|---|---|---|---|
| 直接导入 .ase | 把 Aseprite 工程文件拖进 Unity 项目 | 全自动 | Aseprite Importer 已安装,推荐 |
| 导出 Sprite Sheet + JSON | Aseprite File → Export → Sprite Sheet → 同时导出 JSON | 半自动(JSON 辅助切片) | Unity 版本较老没有 Importer |
| 导出 Sprite Sheet(无 JSON) | Aseprite File → Export → Sprite Sheet | 手动切片 | 最基础方式 |
直接导入 .ase 的工作流
第一步:在 Aseprite 里保存工程
画完动画后,直接 File → Save 保存为 .ase 或 .aseprite 文件——不需要手动导出 Sprite Sheet。
第二步:拖进 Unity
把 .ase 文件从文件管理器拖进 Unity 的 Project 窗口。Unity 会自动:
- 读取所有帧、图层、标签
- 根据每个标签创建对应的 Animation Clip(动画片段)
- 根据画布尺寸自动切片
- 生成 Sprite 资源
第三步:配置 Animator
- 把
.ase文件拖进场景,Unity 自动生成 Sprite Renderer + Animator 组件 - 在 Animator Controller 里,每个标签名(
walk、idle、attack……)自动变成一个状态 - 设置状态之间的切换条件(比如速度 > 0 时从
idle切到walk)
标签名就是 Animator 状态名——所以标签命名必须清晰(全小写、用下划线分隔)。
导入设置
选中 Project 窗口里的 .ase 文件,Inspector 里会出现导入设置:
| 选项 | 说明 | 建议 |
|---|---|---|
| Frame Rate | 播放帧率 | 默认即可,Aseprite 里的帧时长会自动换算 |
| Animation Clip Type | 动画片段类型 | Sprite Animated(有动画)或 Sprite(静态) |
| Generate Physics Shape | 自动生成碰撞体 | 2D 物理游戏勾选 |
| Pixels Per Unit | 单位缩放 | 像素画通常设为画布宽度值(比如 32) |
多标签角色的推荐结构
一个典型的 RPG 角色应该这样组织标签:
.character.ase
├── idle (2-6帧,乒乓播放)
├── walk (4-8帧,正向循环)
├── run (6-10帧,正向循环)
├── attack-light (4-6帧,正向,不循环)
├── attack-heavy (6-10帧,正向,不循环)
├── hit (2-4帧,正向,不循环)
└── death (4-8帧,正向,不循环)
每个标签对应 Animator Controller 里的一个状态,脚本里通过 anim.SetTrigger("attack-light") 就能触发对应动画。