Resprite 帧与单元格:帧计数、新建、删除、多帧单元格批量编辑
帧 vs 单元格
Resprite 里"帧"和"单元格"是两个相关但不同的概念:
- 帧(Frame):时间轴上的一个时间点。一张 Resprite 文档的时间轴上有 N 个帧,N 就是动画总帧数。帧是横向概念。
- 单元格(Cell):某一帧 × 某一图层上的具体内容。Resprite 的时间轴是一个表格:行 = 图层,列 = 帧,每个格子就是一个单元格。单元格是格点概念。
举个例子:一张 8 帧 × 3 图层的文档,有 8 个帧、24 个单元格。如果第 1 帧"背景层"是空的,那这个单元格也是空的。
帧的基本操作
| 操作 | 桌面 | iOS |
|---|---|---|
| 新建帧 | 动作栏 + 按钮 | 动作栏 + 按钮 |
| 在指定帧位置插入 | 右键帧 → 插入帧 | 长按帧 → 插入帧 |
| 复制帧 | 右键帧 → 复制 | 长按帧 → 复制 |
| 删除帧 | 右键帧 → 删除 | 长按帧 → 删除 |
| 跳转到帧 N | 点击帧头里的那个帧 | 点击帧头里的那个帧 |
| 选择连续帧范围 | Shift + 点击 | 长按进入多选 |
单元格的两种类型
独立单元格(Independent Cell)
新建帧时 Resprite 默认创建独立单元格——每个单元格的内容都是独立的,修改一帧不影响其他帧。适合逐帧手绘动画(每一帧都要重新画)。
继承单元格(Inherited Cell)
Resprite 支持"继承":一个单元格可以继承上一帧(或指定帧)同图层的内容。修改继承帧不影响被继承帧,但修改被继承帧时,所有继承它的帧会一起更新。
这个机制特别适合"角色身体不动、只有头发在动"这种局部动画场景——身体层只画一次,后续帧全部继承,头发层逐帧画。
继承单元格的批量变换(v1.32.1+)
Resprite DA v1.32.1 / iOS R60 增强了继承单元格的动画能力:可以对"继承单元格"做位置和透明度动画——也就是说继承帧不只是静态复制,还可以有自己的偏移和 alpha 变化。这比之前只能"完全一样或完全独立"灵活很多。
多单元格批量操作
Resprite DA v1.32.1 / iOS R60 引入了多单元格批量变换:
批量变换(Batch Transform)
明确选中多个单元格后,可以对这些单元格里的选区内容同时变换:移动、旋转、缩放、翻转。
- 所有选中的单元格会应用相同的相对参数——比如"向右 +2 像素"会让每个选中单元格里的内容都向右移 2 像素。
- 可以统一撤销或重做,不用逐帧撤回。
- 未锁定的隐藏图层也会参与,避免"把隐藏层也改了"的意外。
批量粘贴(Batch Paste)
把剪贴板里的同一内容粘贴到多个可编辑单元格,然后统一调整位置 / 旋转 / 缩放。
适用场景
- 8 帧动画里角色的手臂整体向右移 3 像素 → 一次批量移动搞定。
- 16 帧动画里角色整体变大一点 → 一次批量缩放搞定。
- 给一个 8 帧动画里每帧的眼睛位置做微调 → 用批量粘贴 + 批量变换,比逐帧画快得多。
帧数管理建议
- 帧速(FPS):Resprite 默认 12 FPS(像素画动画常见节奏),可改成 8 / 15 / 24。游戏动画一般 8~12 帧循环。
- 帧数不要浪费:每帧都要有实际变化的内容。如果两帧完全相同,删掉其中一帧让它"继承"前一帧。
- 每帧大小尽量一致:画面尺寸突然变大会影响导出 GIF / 精灵表时的整体尺寸。
功能可能随版本变化,多单元格批量变换从 DA v1.32.1 / iOS R60 开始提供;继承单元格的位置与透明度动画也在该版本引入。