text-to-lottie:让智能体写 Lottie 动画,并在 Skia 播放器里逐帧验收
Diffusion Studio 开源的 Lottie Skill(MIT):智能体写完 JSON,要在自带播放器逐帧验收,适合做 Logo 动效。
Skill 资料
npx skills add diffusionstudio/lottie --skill text-to-lottie
让智能体直接写一份 Lottie JSON,写出来看着像那么回事,一放进播放器却常常是空白画布、图层错位,或者缓动全是线性。text-to-lottie 是 Diffusion Studio 开源的 Agent Skill(MIT 协议,截至 2026-10-08 约 5.5k 星),装进 Claude Code、Codex 或其他支持 Skill 的编码智能体后,智能体写完 JSON 要在仓库自带的 Skia Skottie 播放器里把画面看一遍才算完成。

上图出自仓库 README 的演示:左边智能体在报告「改回 150 帧,每根蜡烛逐个出现」,右边就是它写的动画,在 frame=149 处验过没有 CanvasKit 解析错误。
它让智能体按什么顺序做事
text-to-lottie 的 SKILL.md 只当调度台,真正的内容拆在 references/ 里,按任务类型加载,不一次读完。每次新建、修改或修复场景,必读 player-contract.md;之后按任务路由:做 Logo 读 recipe-logo.md,做标题字读排版配方,做加载图标、UI 微交互、下三分之一字幕条、数据图表、产品宣传、SVG 转动画,各有一份配方,涉及「高级感」「极简」的提示词,还要加读 design-taste.md。流程五步:路由、找到目标场景文件、决定背景策略、写 lottie.json(需要时加 controls.json)、验证。
场景统一放在 public/projects/<项目>/<scene-N>/lottie.json,改已有场景之前要重新读一遍磁盘上的文件,因为界面里改槽位会写回源文件。
它严格约束什么
- 只认官方播放器:不许自己写查看页,也不许切到
lottie-web验证,渲染以 Skia Skottie 为准。 - 验证有清单:先验 JSON 能解析,再确认场景出现在
/__context,然后在浏览器里用?frame=N看第 0 帧、中间帧和op - 1帧,检查空白画布、缺资源、图层顺序、裁切和文字溢出。 - 克制是默认:提示词里出现 premium、clean、minimal,就做减法。容器、边框、分隔线预算默认为 0,一个背景色,分隔线只许一种粗细和颜色。
- 背景看用途:全幅作品要有带
bgColor槽位的背景层;Logo、图标、加载器、字幕条和 SVG 衍生素材默认透明。 - 缓动要有理由:不许默认线性,缓动按运动行为取,主体最强。
上手
按 README,先装 Skill,再让智能体调用它:
npx skills add diffusionstudio/lottie
示例提示词是「把这个 SVG 路径做成动画,沿路径方向描出来,加苹果风渐变,ease-in-out,透明背景,保留原始几何」。SKILL.md 里写了播放器缺失时的初始化方式:npx degit diffusionstudio/lottie my-animation,然后 npm install、npm run dev,Vite 默认端口 3030,以终端打印的端口为准。出来的 JSON 可以直接给 lottie-web,或用 Lottie 的 iOS、Android、Flutter、React Native 播放器,也能导入 After Effects 继续改。
README 的提示词建议里有几条值得照做:给 SVG、真实数据或截图当依据;用 ease-in-out 这类动效术语;像摄影师那样写推拉摇移;需要可调参数就明说要控件,默认通常只给背景色一个控件;帧率和总帧数写清楚。
和 srt-whiteboard-animation 那种出 MP4 的视频 Skill 不同,text-to-lottie 的产出是矢量 JSON,能放进网页和 App,随时缩放,还可以改槽位。
适合谁
适合前端和移动端开发者,以及需要 Logo 动效、加载动画、成功或失败反馈、UI 微交互的设计师。想看动效提示词怎么写,可以参考动效 Showreel Prompt。
要先说清的限制:验收只认 Skottie,它支持的是 Lottie 的一个子集,换到别的播放器可能表现不同,SKILL.md 里也有 svg-compatibility.md 专门列 SVG 的兼容问题,上线前仍要在目标播放器里再看一遍。它需要智能体能起本地开发服务器、开浏览器看画面,纯聊天环境用不了。仓库最后一次推送在 2026 年 7 月 25 日,之后没有更新;README 也没给出生成成功率之类的数据,效果以你的任务为准。