AE动画怎么导出JSON给手机播放
讲清从 After Effects 到手机播放的完整链路:装哪个插件、导出时避开哪些坑、文件怎么传到手机上预览。相关文档:动画JSON文件怎么打开播放.md · 手机动画播放卡顿掉帧怎么排查.md
一、整条链路长什么样
Lottie 这套方案的核心思路:动画在 After Effects 里做完,用一个导出插件把它变成一个 JSON 文件;手机端的播放器读这份文件,在本机实时画出来——播的不是视频,是一段几十 KB 的描述文本。所以完整链路是三段:
- 电脑端:AE 做动画 → 装导出插件 → 导出 JSON;
- 中间:把文件弄到手机上(数据线、网盘、聊天工具传文件都行);
- 手机端:用播放器打开验收效果。
想做的是「在真机上确认这条动画能不能用」,缺的就是第三段那台播放器——Lottie 手机预览播放器这篇介绍里有完整的获取与安装路径。
二、要装的是 Bodymovin 插件
导出环节靠 Bodymovin——给 After Effects 用的插件,也是整套方案里历史最久的部件。安装路径:
- 先关掉 After Effects;
- 装 ZXP Installer(用来安装 AE 插件的
.zxp包); - 从 lottie-web 开源仓库的 build/extension 目录下载最新的
bodymovin.zxp; - 把
.zxp拖进 ZXP Installer 装完; - 重开 After Effects,菜单 Window > Extensions 里出现 Bodymovin 即装好。
LottieFiles 也出了一款 AE 插件,多带真机测试功能,装哪个都行;但多数教程的设置说明都按 Bodymovin 写,照着走不容易对不上号。
三、导出设置里最要紧的几个开关
打开 Bodymovin 面板,选中合成,点齿轮进设置:
| 设置 | 怎么选 | 原因 |
|---|---|---|
| Glyphs(字形) | 只播固定文案就勾上(文字转形状,不依赖字体);要改文字就别勾 | 勾上后只能渲染实际用到的那几个字 |
| Hidden(隐藏图层) | 表达式指向隐藏图层时必须勾 | 不勾动画加载不出来;勾了文件变大 |
| Assets 图片选项 | 有位图时让图片进 images 文件夹(别改名) | 图片没跟着走,手机上就是空白一块 |
| Demo | 建议勾上 | 额外生成 demo.html,电脑浏览器先验一遍 |
另外几条按需:Split 把长合成切成多个 json;Standalone 把播放器与动画打成单文件。
四、导出前先避开不支持的东西
「导出来效果不对」的最大来源是用了播放端不支持的特性:
- 表达式与效果菜单里的效果一概不支持——用 wiggle 之类前,先用「关键帧辅助 > 将表达式转换为关键帧」烘成关键帧;
- 调整图层、摄像机、灯光图层不会被导出;3D 旋转只部分支持;
- 亮度遮罩(Luma Matte)在安卓端不支持,要遮罩就选 Alpha 遮罩;
- 遮罩与蒙版越大越费性能,能盖小就盖小(这条直接决定手机上掉不掉帧,排查思路见 手机动画播放卡顿掉帧怎么排查.md);
- 渐变与图层样式是常见的导出异常项,颜色变实色先查这两处。
五、尺寸与帧率:按手机来,别按视频来
- 尺寸:播放端把 AE 里的 px 当安卓的 dp 渲染,同一份动画在各尺寸屏上大小一致。别按 1920×1080 的视频思路做合成,接近主流手机的 dp 量级(约 411×731)更合适;
- 帧率:24fps 文件最小,30fps 是常规选择,60fps 更顺但体积约翻倍。拿不准就 30fps。
文件做完,w/h(画布尺寸)与 fr(帧率)就写在 json 开头,文本编辑器打开就能核对。
六、传到手机上预览
- 导出后先在电脑浏览器里过一遍
demo.html,能排除一半问题; - 把 json 传到手机的
Download目录(带图片的连同 images 文件夹打成 zip,图片文件名别改); - 手机上用播放器加载——三种片源(内置 / 本机文件 / 网络直链)的入口与注意事项,见 动画JSON文件怎么打开播放.md;
- 有卡顿就开渲染图表看哪一段超了帧预算,回 AE 里逐层简化。
导出环节还拿不准的,直接查项目文档里的特性支持表(Supported Features),它按 Android / iOS / Web 逐项列出结论——安卓端与网页端不完全一致,同一个文件网页上好好的、手机上不对,很常见。