创建、编辑或修复用于本地 Skia Skottie 播放器的 Lottie/Bodymovin JSON 动画。适用于文本转 Lottie、SVG/标志/文字动画、加载器/图标、状态反馈、UI 微交互、下三分之一、图表、数据/统计/图表动画、产品宣传、场景/摄像机运动、视觉效果、场景编辑、插槽/控件以及 Skottie 调试。
文本转 Lottie
为官方本地 Skia Skottie 播放器制作生产就绪的 Lottie JSON。
交付物是播放器中可渲染的场景,而非孤立的 JSON。
操作模型
- 使用官方播放器项目并在 Skia Skottie 中验证。不要自行构建自定义查看器或切换渲染器进行验证。
- 保持技能在 Agent Skills 客户端之间可移植。避免在技能说明中使用特定主机的命令、命令模式或编排约定。
- 优先减少问题并使用更强的默认值。仅当决策会实质性改变输出时才提问,例如透明与全帧背景、品牌约束、目标格式或提供的源素材。
- 优先考虑干净、有意图、专业的运动,而非仅仅满足字面提示。
参考加载
此 SKILL.md 是薄控制平面。仅加载与任务匹配的一级参考。不要打开整个参考库。
在创建、编辑、修复或验证场景之前,始终阅读 references/player-contract.md。如果路由的参考不可用,则继续使用此文件中的内联规则。
| 用户意图 | 存在时需读取的参考 |
|---|---|
| 任何新建/编辑/修复 Lottie 场景 | references/player-contract.md |
| JSON 结构、关键帧、插槽、形状、素材 | references/lottie-spec-map.md |
| 标志动画 | references/recipe-logo.md, references/motion-taste.md, references/design-taste.md |
| 排版、标题、引用、文字揭示 | references/recipe-typography.md, references/design-taste.md, references/motion-taste.md |
| 下三分之一、名称标签、字幕条、叠加层 | references/recipe-lower-thirds.md, references/design-taste.md, references/motion-taste.md |
| 加载器、图标、旋转器、徽章动画 | references/recipe-loaders-icons.md, references/motion-taste.md |
| 成功、错误、警告、完成、空状态 | references/recipe-loaders-icons.md, references/design-taste.md, references/motion-taste.md |
| UI 微交互 | references/recipe-ui-microinteractions.md, references/design-taste.md, references/motion-taste.md |
| 通用“动画化此 SVG”或 SVG 转 Lottie | references/recipe-svg-animation.md, references/svg-compatibility.md, references/motion-taste.md |
| 摄像机跟随、平移、缩放、视差、场景运动 | references/recipe-camera-scene-motion.md, references/design-taste.md, references/motion-taste.md |
| 图表、技术线条动画、标注、流程追踪 | references/recipe-diagram-technical.md, references/design-taste.md, references/motion-taste.md |
| 数据、统计、KPI、图表、指标、仪表盘数字 | references/recipe-data-stats.md, references/design-taste.md, references/motion-taste.md |
| 产品发布、功能公告、社交媒体宣传 | references/recipe-product-promo.md, references/design-taste.md, references/motion-taste.md |
| 长文本、多个想法、列表/功能/步骤、时间线、前后对比、问题/解决方案、引用+证明、回顾/故事、产品导览、多语言变体、章节、多节拍序列、剧集、跳跃/硬切、过渡语法 | references/chapterization-transition-grammar.md, references/motion-taste.md |
| 发光、玻璃、金属、渐变、填充、气泡/爆发效果 | references/recipe-visual-effects.md, references/design-taste.md, references/motion-taste.md |
| 标志/图标/UI/下三分之一工作中的 SVG 输入 | 任务配方加上 references/svg-compatibility.md |
| 启动简报或可复用项目方向 | references/recipe-starter-projects.md, references/design-taste.md, references/motion-taste.md |
| 任何“高级”、“干净”、“简约”、“现代”、“时尚”或“精致”限定词 | references/design-taste.md(克制默认值),加上路由的配方 |
对于混合提示,从主要交付物中选择一个主要配方,然后为源格式或视觉处理添加次要参考。示例:带发光的 SVG 标志使用标志作为主要配方,加上 SVG 兼容性和视觉效果;带平移/缩放的产品发布使用产品宣传加上摄像机场景运动;技术 SVG 图表追踪使用图表/技术加上 SVG 兼容性;带玻璃扫过的动态标题使用排版加上视觉效果。
工作流程
- 使用上表路由任务。仅读取存在的相关参考。
- 定位官方播放器项目并使用下面的目标优先级解析目标场景。编辑前,确认解析路径为
public/projects/<project>/<scene-N>/lottie.json;立即重新读取该当前文件,因为 UI 可能将插槽编辑写回源文件。 - 在创作前决定背景策略。
- 写入或更新
public/projects/<project>/<scene-N>/lottie.json,并在有用时更新controls.json。 - 验证 JSON,运行或复用开发服务器,使用
?frame=N检查精确帧,并在完成前修复渲染/设计/运动问题。
内联规则
设计默认值(始终适用)
这些少数默认值是不可协商的,适用于每个设计的场景。加载 references/design-taste.md 以获取完整推理,特别是对于任何“高级”、“干净”、“简约”、“现代”或“卡片”提示。
- 高级意味着减法,而非加法。当提示说高级、干净、简约、现代、时尚或精致时,默认克制:在添加镀铬效果之前先移除它。高级由缩放、重量、亮度、间距和时机承载,绝不由卡片、边框、分隔线、阴影、发光或叠加色调承载。
- 镀铬/容器预算默认为
0。除非它完成空白和对齐无法完成的工作,否则不要添加框架卡片、容器、边框或分隔线。首先使用负空间和对齐分隔网格和列,其次使用单线,最后且仅在明确必要时使用填充或带边框的卡片。 - 单一表面色调。使用一种背景色调。不要叠加两种近黑或近白色调来伪造“表面”;这看起来浑浊。如果卡片表面必须与背景不同,则使其成为一个有明确目的的有意步骤。
- 一种分隔线处理,一种颜色。如果确实需要分隔线,则对所有分隔线(包括标题规则和列规则)使用一种粗细和一种颜色。绝不要为每个分隔线使用略有不同的颜色或粗细。
场景规则
- 场景文件位于
public/projects/<project>/<scene-N>/lottie.json。 - 按权威性解析目标场景:显式文件路径优先;浏览器 URL 路由如
/<project>/<scene>次之;任务已知的项目/场景再次之;否则创建新的安全场景。仅将/__context用于发现、验证或播放状态,除非任务明确说明要编辑当前屏幕上的内容且没有更具体的目标。不要让/__context.live覆盖已知的文件路径、URL 或项目/场景。仅当main-project/scene-1仍然是未修改的占位符时才覆盖它;否则创建新场景。 - 全帧独立合成应包含一个可见的背景层,带有
bgColor插槽和controls.json条目。 - 默认透明的输出包括标志、图标、加载器、叠加层、下三分之一和 SVG 派生素材,除非用户要求背景。
- 包含顶级
v、fr、ip、op、w、h、nm、assets和layers。将op视为独占。 - 使用有目的的缓动和分阶段。避免默认使用线性运动。从
motion-taste.md中基于行为的锚点推导缓动(由运动行为选择,焦点元素最强);不要为每个图层回退到统一的缓动。 - 对重要的可编辑值使用插槽,并在它们改进属性面板时添加
controls.json标签/范围。 - 对于 SVG 输入,保留 viewBox,规范化样式,注意填充规则和交叉点,并在 Skottie 中验证结果。
- 原生 Lottie 文本/文本插槽(
ty:5)在此播放器中渲染,当场景附带其字体时:将.ttf/.otf/.ttc放在lottie.json旁边,在fonts.list中声明它,fFamily匹配字体的嵌入系列名称,并从文本文档中引用它。加载器将每个场景字体传递给 Skottie。优先使用原生文本;仅在有意的路径效果(描边、字形变形、手写)时才使用矢量/形状文本。请参阅 player-contract 中的“原生文本”参考。
验证
在完成之前:
-
确认目标文件路径为
public/projects/<project>/<scene-N>/lottie.json。 -
验证 JSON:
node -e "JSON.parse(require('fs').readFileSync('public/projects/<project>/<scene-N>/lottie.json','utf8'))" -
确认官方播放器正在运行,并且场景出现在
GET /__context中。 -
在浏览器中检查固定帧。对于新场景,检查第
0帧、中间帧和op - 1。 -
确认背景策略与用例匹配。
-
检查空白画布、缺失素材、未样式化的形状、错误的图层顺序、不良缓动、尴尬的时机、裁剪的内容、文本溢出和可见的 SVG 伪影。
-
仅在动画渲染清晰且感觉有意图时完成。
维护评估
在正常动画工作期间不要读取评估文件。仅在测试或更改此技能时使用它们:
evals/trigger-prompts.jsonevals/routing-prompts.jsonevals/reference-loading-prompts.jsonevals/output-rubric.md






