Flash 与 Animate 文件
Rive 可以将 Adobe Animate 文件转换为 Rive 文件。库元件、时间轴、补间、按钮、帧脚本和声音都会被重建为可编辑的 Rive 内容,让你无需手动重做就能把现有的 Flash 动画带进 Rive。
Rive 支持两种文件类型:
- 在 Animate CC 或更高版本中保存的
.fla文件 - 打包成单个
.zip文件的 XFL 文件夹
转换 Flash 文件(Converting a Flash file)
打开文件浏览器,选择要放入文件的项目和文件夹。
将
.fla或打包好的 XFL 文件拖入文件浏览器。
Rive 会转换该文件,并在文件夹中新增一个 Rive 文件。新文件沿用原文件的名称。
原始的 .fla 或 .zip 文件不会被保留。如果之后还想在 Animate 中修改,请自行保留一份副本。
Animate 内容如何转换(How Animate content converts)
转换器会使用与原 Animate 功能行为一致的 Rive 功能。
| Animate | Rive |
|---|---|
| 主时间轴(Main timeline) | 一个名为 Scene 1 的画板,尺寸与舞台一致,并以舞台颜色作为背景 |
| 库元件(Library symbol) | 每个元件对应一个画板,以组件形式放置 |
| 时间轴(Timeline) | 每个画板上的一条时间轴,由状态机播放 |
| 传统补间、动作补间和形状补间 | 带插值的关键帧,包括自定义缓动和补间旋转 |
| 逐帧动画 | Solo |
| 运动引导层(Motion guides) | Follow Path 约束,包括沿路径调整方向 |
| 图层父子关系 | 按图层层级嵌套的组 |
| 遮罩层 | 裁剪形状(Clipping shapes) |
| IK 骨骼与姿势 | 骨骼及其动画 |
| 位图 | 嵌入的图像资源。位图填充变换、平滑和实例透明度都会保留 |
| 9 切片缩放 | N-Slicing |
| 帧声音(MP3、WAV、FLAC) | 音频事件 |
| 静态、动态和输入文本 | 文本 |
形状、基本图形、纯色和渐变填充、虚线和点线描边,以及引导层和文件夹图层也会一并保留。
帧标签与脚本(Frame labels and scripts)
帧标签会变成画板状态机中的状态。调用 stop()、gotoAndPlay() 或 gotoAndStop() 的帧脚本会变成这些状态之间的过渡。目标可以是帧号或标签。脚本可以是 ActionScript 2、ActionScript 3 或 HTML5 Canvas JavaScript。
只有顶层调用会被转换。函数、事件处理器或条件语句中的调用依赖状态机不具备的信息,因此会被跳过。
按钮(Buttons)
按钮元件会获得一个带 Up、Over 和 Down 状态的状态机。Hit 帧会变成一个不可见的点击区域,并带有跟踪悬停和按下的监听器。如果 Hit 帧为空,则和 Animate 中一样改用 Up 帧。
悬停和按下状态存储为以该元件命名的视图模型上的 hovered 和 pressed 属性。每个放置的按钮都有自己的视图模型实例,因此每个按钮各自独立响应。
图形元件(Graphic symbols)
图形元件会保留其播放设置:Loop、Play Once、Single Frame 以及两种反向模式,还有首帧和末帧。它们的播放与父时间轴保持同步。
字体(Fonts)
字体名称会保留到文本样式中。默认嵌入 Inter 字体。如果某个字体在 Rive 中不可用,请导入该字体并将其指定给受影响的文本。
限制(Limitations)
部分 Animate 功能无法转换:
- 额外的场景: 只转换第一个场景。跳转到其他场景的脚本会被跳过。
- 色彩效果、滤镜和混合模式: 色调、亮度、高级色彩效果、滤镜和混合模式会被移除。Alpha 会转换为不透明度。
- ActionScript 逻辑: 只转换帧标签与脚本中所述的帧脚本调用,其他代码会被移除。
- 无法解码的图像: 这些图像不会出现在转换后的文件中。
转换之后(After converting)
转换后的文件只是一个起点。请检查并按需调整:
- 检查字体是否显示正确,并导入缺失的字体。
- 用 Rive 功能重建色彩效果和滤镜,例如填充、不透明度或混合模式。
- 删除不需要的画板。为了匹配 Animate 的 9 切片行为,以多种不同缩放比例放置的元件会为每种比例单独生成一个画板。
- 按项目需要重命名状态、时间轴和视图模型。