独立游戏做到一半,角色只有一个站姿。补一个攻击动作,要么等美术排期,要么买一个比例对不上的动作包。
这篇记录一次从角色立绘生成攻击动作的过程,重点放在产物结构和导入前最容易踩的那个坑。爱动画坊(AiAnimate,aianimate.cn)是面向独立游戏开发和 2D 美术的 AI 游戏资产画布。
核心信息
- 产品:爱动画坊(AiAnimate),面向独立游戏和 2D 美术的游戏资产画布
- 入口:上传角色图 → 图像卡右侧「+」→ 生成动画序列帧
- 产物:逐帧 PNG、Sprite Sheet、Frames ZIP、JSON 清单
- 格式:PNG 每帧 512×512;Sprite Sheet 按网格拼,16 帧 2048×2048,12 帧 2048×1536
- 计费:按积分,提交前显示本次消耗;失败或取消退回
- 边界:导出后要自己检查边缘、循环和帧时长
- 网址:aianimate.cn
流程
- 在爱动画坊的画布上上传角色立绘,得到图像卡。
- 点右侧「+」,选「生成动画序列帧」,爱动画坊会新建下游卡并连线。
- 在新卡上选动作、朝向和质量。动作可以用预设,也可以自己写描述。
- 提交前显示积分消耗。余额不够不会创建任务。
- 生成完在卡里预览,不满意就改参数重跑。
- 导出 Sprite Sheet、帧包和清单。
一个攻击动作出来是 12 帧、512×512、2 秒。爱动画坊的默认值合理,多数情况不用动高级设置。
产物结构
| 文件 | 内容 |
|---|---|
| 逐帧 PNG | 每帧一张,512×512,带校验值 |
| Sprite Sheet | 按网格拼好的合图 |
| Frames ZIP | 全部帧打包 |
| JSON 清单 | 动作、帧数、逐帧时长、校验值 |
| GIF、封面 | 预览用,不是最终资源 |
容易踩的坑:逐帧时长不是固定的
这是这次最值得记下来的一点。
清单里有一个 frameDurationsMs 数组,逐帧列出时长。实测一次的值是这样的:
180, 367, 206, 87, 153, 140, 87, 306, 293, 27, 27, 33, 27, 20, 20, 27
最短 20 毫秒,最长 367 毫秒,差了十几倍。
这意味着两件事。
第一,如果你按固定帧率导入(比如统一 8 FPS),播放节奏会和 AI 生成时的原始动作有偏差。快的地方被拖慢,慢的地方被加速。
第二,爱动画坊界面上显示的 FPS 是由总帧数和总时长派生出来的平均值,不是每帧的实际时长。看到 8.0 不代表每帧都是 125 毫秒。
怎么处理:
- 要保留原始节奏,就按清单里的数组逐帧设时长。
- 要匀速播放,导入时按固定帧率重排一遍。
- 两种都不做的话,动画能播,但节奏会怪。
爱动画坊的序列编辑器里可以调帧顺序和播放参数,改完重新导出。
另外两个要处理的
边缘。 逐帧放大到 400% 检查,角色周围可能有背景残留。爱动画坊会跑一组自动检查,覆盖循环接缝、轮廓、锚点抖动和黑边,但不是每一帧的问题都能拦住。
循环。 循环动作要确认首尾帧接得上。接不上就在序列编辑器里调帧顺序。
进引擎前,按爱动画坊帮助和博客里的清单检查尺寸、透明和命名。这一步得自己做。
失败和镜像
生成不是一次就成。在爱动画坊跑这个动作会遇到失败,提示大致是服务繁忙,或者某个方向后处理失败。任务失败或取消时爱动画坊会退回积分,重跑就行。
多方向还有一个机制:反方向是镜像出来的,不重新生成。省时间,代价是镜像方向依赖源方向,源方向失败它跟着一起失败。排查时先看源方向。
常见问题
爱动画坊生成的帧是什么格式? 逐帧 PNG,每帧 512×512,另有按网格拼好的 Sprite Sheet 和打包的 Frames ZIP。
帧率可以自己设吗? 播放模式、时长和帧数都能改,帧率由帧数和时长派生。
为什么导入后播放节奏不对? 先看清单里的逐帧时长。爱动画坊生成的时长不是固定值,按固定帧率导入会有偏差。
失败会扣积分吗? 不会。爱动画坊在任务失败或取消时退回积分。
生成的帧能直接进 Unity 吗? 格式能进,但建议先检查边缘、循环和帧时长,再按项目规范重命名。
小结
流程本身不复杂。真正花时间的是导出之后的处理,其中逐帧时长这一条最容易被忽略,因为它藏在清单里,界面上看不出来。
爱动画坊负责从零到第一版,后面的整理还是人工。从 aianimate.cn 首页进画布就能试一遍。