GIF 导出|动图分享的标准格式
GIF 适合什么场景
GIF 是纯分享格式——发朋友圈、微博、论坛、Discord 群展示动画作品。所有主流社交平台都原生支持 GIF 自动循环播放。
它不是游戏引擎的素材格式——引擎里一律用 Sprite Sheet + JSON。GIF 文件体积大、帧时长不稳定、不支持半透明,引擎处理起来很麻烦。
怎么导出 GIF
桌面版
- File → Export → Animated GIF
- 设置选项:
- Loop Forever:勾选 → GIF 自动循环播放(默认)
- No Loop:不勾选 → 只播放一次(用于开屏动画等一次性动效)
- Duration:默认"从时间轴读取",也可以强制所有帧统一时长
- Tags:多段动画时选"导出哪个标签",避免所有动作挤进一张 GIF
- 选保存位置,导出
安卓端
画板完成后在导出里选"GIF 动图",选项类似。
GIF 的三个硬限制
导出 GIF 时必须知道 GIF 格式本身的限制——这些不是 Aseprite 的问题,是 GIF 规范决定的:
1. 最多 256 色
GIF 格式最多支持 256 种颜色。如果你的 Aseprite 画面里超过 256 色(RGBA 模式下很常见),导出时会发生量化(Quantization)——把相似颜色合并,可能导致颜色丢失。
预防措施:导出前先把调色板收敛到 256 色以内。Aseprite 会自动做量化,但你可以在 Sprite → Color Mode → Indexed 里先手动控制调色板。
2. 没有半透明
GIF 不支持 Alpha 通道的半透明像素——要么完全透明、要么完全不透明。Aseprite 导出时的规则:
- Alpha < 128 → 导出为完全透明
- Alpha ≥ 128 → 导出为完全不透明(原来的半透明变实心)
后果:发光效果、运动模糊等半透明像素在 GIF 里可能变成奇怪的硬边。如果你的作品依赖半透明效果,不要导出 GIF,改用 PNG 序列或 Sprite Sheet。
3. 帧时长不精确
GIF 的帧间隔精度有限——大部分播放器的最小间隔是 50ms 左右,设置 10ms 的帧实际会变成 50ms。导出前整体加快一档(Aseprite 里设 80ms,GIF 播放器会拉到约 100ms)。
导出 GIF 的检查清单
- [ ] 颜色数量 256 以内(或接受自动量化)
- [ ] 没有依赖半透明像素的特效(GIF 会丢失)
- [ ] 循环设置正确(循环 Forever 还是只播一次)
- [ ] 标签范围选对了(多段动画时)
- [ ] 导出前预览一遍节奏,必要时整体加快帧时长
- [ ] 导出后在相册/浏览器里打开再确认一遍(不同播放器表现可能略有差异)
GIF vs APNG
APNG(Animated PNG)是 GIF 的现代替代品——支持半透明、无损、体积更小。但 Aseprite 不支持 APNG 导出(截至 v1.3.18)。
如果确实需要半透明动图分享,有两个变通方式:
- 用 Aseprite 导出 PNG 序列 → 用外部工具(比如 ScreenToGif)合成 APNG
- 直接导出 Sprite Sheet PNG(带透明通道)→ 用 GIF 不透明版本做社交媒体预览