Bodymovin 导出常见故障排查
导出按钮点了没反应
原因 1:AE 版本权限没开
"允许脚本写入文件和访问网络"必须勾选。这个选项在 AE CC 2019+ 默认关闭。
解决:编辑 → 首选项 → 常规 → 勾选"允许脚本写入文件和访问网络"。
原因 2:导出目录权限
如果选了系统盘根目录、Program Files 或受保护的文件夹,可能没有写权限。
解决:选一个你肯定有写权限的目录,比如桌面或项目文件夹。
导出的 JSON 文件体积异常小(< 1KB)
通常意味着 Bodymovin 没有成功解析合成。
检查清单
- 合成里有没有只有单个静态图层、没有任何动画属性?(至少要有一个图层属性有关键帧)
- 所有图层是不是 3D 图层?(3D 图层目前不支持,可能导致解析失败)
- 有没有图层名包含特殊字符(emoji、全角符号)?(重命名为英文 + 下划线再试)
JSON 能导出但在 LottieFiles 预览器里渲染异常
这是最常见的情况——在 AE 里好好的,拖到预览器里不是丢图层就是位置错乱。
问题:图层类型不支持
对照 图层类型支持一览 检查你的合成:
- 位图 + Mask → 重写为形状图层 + 修剪路径
- 调节图层 → 预烘焙到底图
- 3D 运动 → 改为 2D 平面化
问题:表达式没预烘焙
如果某个图层用了表达式来驱动运动但忘了 Convert to Keyframes,Bodymovin 导出时只会记录该时间点的静态值,整个动画"死"掉。
解决:选中所有含表达式的属性 → 右键 → Convert Expression to Keyframes → 再导出。
问题:Duik / RubberHose 等脚本生成的控制器
这些脚本内部用了复杂的表达式链和控制器图层,Lottie SDK 没法理解。
解决:
- 用 Convert Expression to Keyframes 烘焙
- 或者手工复制关键帧,重建为纯形状图层动画
文字图层渲染错乱
- 字体缺失:如果用了 Convert to Outlines(转轮廓)模式,应该没有这个问题。如果保留了文字模式,确认目标设备上有该字体。
- 行高/字间距不对:导出时勾选 Glyphs 选项并把所有用到的字符都放进去(Bodymovin 默认只导出用到的字形)。
建议工作流
每导出一个新的合成,养成这个习惯:
- 导出 JSON。
- 立刻拖到 LottieFiles 在线预览器。
- 同时下载到 Android/iOS/Web 的 Lottie Sample App 里各看一遍。
- 有问题在 AE 里改,别等到开发集成阶段才发现。
开发同学最怕的就是"设计说导出了,结果 SDK 上跑不起来"——这个验证步骤 30 秒就能做,省掉后续大量返工。