Resprite 动画片段与播放:Clip 管理、循环次数、时间轴片段间切换
为什么需要动画片段
一个项目里可能同时有多个独立动画:角色的待机循环、走路循环、攻击循环、死亡动画。如果全部堆在一个线性时间轴上,管理起来很混乱。
Resprite 的动画片段(Clip) 让你把时间轴切成多个片段,每个片段是一组连续帧,可以:
- 单独控制每个片段的播放范围。
- 给每个片段单独设置循环次数。
- 切换播放时只播放当前片段。
- 导出时按片段分别导出(见 输出与导出 的精灵表拆分功能)。
创建片段
桌面端
时间轴面板底部有"片段行(Clip Row)":
- 在时间轴上框选一个帧范围(比如第 1~8 帧)。
- 点击片段行上的"从选区创建片段"按钮。
- Resprite 自动命名为 "Clip 1"、"Clip 2"…你可以重命名为 "Idle"、"Walk"、"Attack"。
iOS 端
在时间轴面板里长按帧范围 → 从选区创建片段。
片段的属性
每个片段可以设置:
| 属性 | 作用 |
|---|---|
| 名称 | 给片段起语义名,方便管理("Idle" / "Walk" / "Attack") |
| 起始帧 / 结束帧 | 播放范围 |
| 循环次数 | 1(单次播放)、无限循环、或具体数字 |
| 帧速 | 单独覆盖全局帧速,给不同片段不同节奏 |
多片段配合
播放行为
有多个片段时,Resprite 有几种播放模式(见 时间轴概览 的播放行为设置):
- 只播当前片段:在一个片段的帧上点播放,只播这个片段。
- 跨片段连续播放:从当前位置开始一直播到底。
- 跳到下一片段:当前片段循环完后自动跳到下一片段的起始帧。
导出时的片段
Resprite 的精灵表导出支持"按动画片段拆分文件"——这意味着你可以让 Resprite 自动把每个片段导出为一个独立的精灵表 PNG + JSON,命名可以自定义(按片段名)。这对游戏引擎直接读取多个动画特别方便。
与游戏引擎的衔接
一个推荐的工作流:
- 在 Resprite 里把角色的所有动画(Idle / Walk / Run / Attack)都放在同一个时间轴上。
- 每个动画用片段标记清楚。
- 导出精灵表时选择"按片段拆分" → Resprite 输出多个文件(Idle.png / Walk.png / Attack.png… + 每个 PNG 的 JSON 元数据)。
- 游戏引擎读取这些文件 → 根据 JSON 知道每个动画的帧范围、循环方式等。
这比"每个动画一个单独的 .resprite 工程"要好——统一管理同一个角色的所有动画,图层(比如身体层、头发层)在所有片段间共享,修改时改一次、所有片段同步更新。
片段的边界提示
- 片段之间可以不连续——比如第 1~8 帧是 Walk、第 20~28 帧是 Attack,中间的 9~19 帧可以留空或放别的东西。
- 删除片段不会删除帧内容——它只是"标记范围",帧还是那些帧。
- 把一个帧同时标记到两个片段里是允许的——但播放时会有重叠。
功能可能随版本变化,以官方最新版为准。精灵表按片段拆分的导出从 iOS R60 / DA v1.32.1 开始提供。