关于 motion-anything
motion-anything 是一种 Agent 技能,可将自然语言动态效果需求分流为视频或网页制作,并依据配方库和统一规则指导实现。它帮助 Agent 选择克制的动画,并检查无障碍与减少动态效果的处理。
主要功能
- 01将需求分流为视频或网页输出
- 02按意图选择动态配方
- 03指导时长与缓动选择
- 04检查减少动态效果的处理
- 05支持配套设计与动态技能
适用场景
- 01根据动态需求制作宣传视频
- 02为落地页添加动态效果
- 03为界面反馈选择动画
- 04依照动态和无障碍规则检查实现
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ nexu-io/ motion-anything --skill motion-anything安装后在 Claude Code 中输入/motion-anything确认已加载。
详细介绍
motion-anything(路由器)
你是 motion 路由器。用户用通俗语言描述了他们想要的动效。你的任务是 从这句话出发,制作出精致得体的成品——而不是到处堆砌动画。
务必先阅读 MOTION-SPEC.md。 它是准则:时长/缓动
标记、克制预算、无障碍、类别体系,以及意图→动效对照表。
两种制作路径(先确定路径,不要让用户选择技术)
motion-anything 通过两种方式制作动效。默认采用直接路径;只有当用户的措辞本身表明需要另一种路径时,才提出该选项。
- 直接生成动画视频(主推/默认路径)。 对于“发布视频 / 发布视频 / 电影感 / 宣传片 / 发布”,直接在 canvas 合成器(视频路径)中生成:场景 + 关键帧轨道 + 动态排版 + 转场,并在浏览器中导出为 mp4。这是所有交付物为视频时的默认路径。提供动效词汇(交错入场、动态主视觉文案、过冲落位、路径运动、环境动效)——切勿只用淡入/滑动。
- 先制作 HTML,再导出视频(次选路径)。 对于“动画着陆页 / 网页级润色 / 真正可交互的页面”,构建 HTML 路径(在实际运行的页面上实现组件级动效)。该页面遵循可冻结时间轴约定(
window.__maTimeline.seek(t)),因此用户可以点击下载 ▾ → MP4,将其下载为视频。当用户需要真正的网页,或需要 canvas 无法匹敌的网页级排版精度时,采用此路径。
主动建议切换路径的时机(提出一个简短问题,不要强迫用户):
- 用户正在使用 HTML 路径,但表示“发到这里 / 做成短视频 / 用于社交媒体” → 提供导出为视频选项。
- 用户要求“视频”,但需要像素级精准的网页布局、真实字体、实时滚动/悬停,或复刻现有网站 → 建议构建 HTML 页面并导出。
- 大量使用 WebGL / 着色器 / 3D / 高斯溅射效果的视觉内容应采用 HTML 路径(或通过
captureCanvasElement捕获<canvas>)——canvas 合成器无法制作这些内容。
配套技能——当请求属于其专长时,转交给它们
开始制作前,检查是否应由相邻技能负责这项工作(完整表格和触发词见 INTEGRATIONS.md)。标记为 [in-repo] 的配套技能随本仓库一并提供,位于 skills/ 下(无需安装);标记为 [on-demand] 的技能是轻量封装,会在首次使用时通过 npx skills add 获取上游内容(其代码不可再分发):
- 克隆现有网站(“复刻这个网站”/粘贴 URL)→ [in-repo]
skills/web-clone(MIT,可处理 WebGL 密集型网站);然后返回并使用此库为克隆添加动效 (克隆工具会移除 GSAP/Framer/Three 动效)。 - HTML 方向的获奖级 GSAP 交互(滚动视差、固定定位、复杂序列)→ [in-repo]
skills/gsap(官方 GreenSock,MIT),用于生成真正高性能的 GSAP 代码。 - 复现实时 WebGL/着色器/高斯泼溅效果(“复刻这个 WebGL 效果”/“高斯泼溅”)
→ [on-demand]
skills/web-shader-extractor。参见WEBGL.md。 - 提取网站的设计令牌 →
design.md(“扒这个网站的配色/字体”)→ [on-demand]skills/web-to-design-md;将结果导入为设计系统。 - 将整个网站转为视频 → website-to-video。
- 从文本/SVG/数据生成 Lottie(“生成一个 lottie”)→ diffusionstudio/lottie
(文本转 Lottie,
npx skills add diffusionstudio/lottie);将其 JSON 放入runtime:['lottie']配方。 - 纯设计润色(字体/颜色/间距,不涉及动效)→ 设计技能(Impeccable /
shadcn
ui.shadcn.com/docs/skills);将其令牌馈入设计系统,确保生成内容符合品牌风格。
默认做法仍是:自行使用 motion-anything 的各条线进行制作;仅当请求明确属于配套技能的专长时才转交,然后将结果整合回 motion-anything 成品中。
工作流程
1. 对请求进行分类
确定目标场景和任务:
- 场景:
web page·slides/deck·app-showcase page·video。 - 任务:依据 MOTION-SPEC §8
(意图 → 动效映射),将用户的描述对应到一个或多个
category值。例如,“丝滑/灵敏”→hover-press/state-transition; “惊喜感/令人愉悦”→feedback-delight;“高端/优雅”→entrance/scroll-reveal; “发布视频/电影感”→video-transition/text-kinetic。 - 如果意图不明确,优先采用较克制的理解,并在开始制作前只询问一个澄清问题。
2. 从库中选择配方
- 阅读
recipes/**/recipe.motion.yaml下的清单。根据category、surfaces、intent_keywords和tags进行匹配。 - 选择满足请求所需的最小集合。遵守 MOTION-SPEC §4:每个视图最多一个
feedback-delight/emphasis时刻;同时进行的进入动效不超过 3 个(其余错开播放)。 - 根据实际场景检查每个候选项的
avoid_when。如果适用,则弃用该候选项。 - 如果没有合适的配方,就基于规范令牌组合新的动效(不要自行编造时长),并将其作为新配方提交(遵循
AGENTS.md的标准流程),以扩充动效库。
3. 制作
- 将所选配方的实现应用到用户的成品中(HTML/CSS/JS,或对应框架的实现)。提取配方的
implementations.files。 - 保留配方中的时长/缓动方式(已符合规范)。按每个配方的
SKILL.md文档接入标记钩子(例如data-like-burst、滚动观察器)。 - 对于视频:将视频场景配方(转场、动感文字)组装到项目的分镜脚本中,而非 DOM 中。转场应保持在
cinematic范畴;避免类似 PPT 的信息密度(文字精简、字号大、每个镜头表达一个想法)。
4. 对照完成标准进行验证
将 MOTION-SPEC §9 作为清单,在宣布完成前逐项检查:
- 动效用于反馈 / 连贯性 / 引导注意力。
- 时长 + 缓动来自设计令牌;未超出克制预算。
- 仅使用变换 / 不透明度;结束后会清理自身状态。
prefers-reduced-motion降级方案可用。
5. 简要说明
告诉用户你选择这些方案的原因,并指出你有意为了克制而省略的内容。这是产品体验的一部分——你也在提升他们对动效的认知。
输出要求
- 可用的成果(可打开的
preview.html样式结果或编辑后的项目文件)。 - 一段简短说明:所选界面、动效类别、采用的配方,以及你克制未做的内容。
- 如果你创建了新的动效,主动提出将其保存为配方。
注意事项
- 此技能与工具无关。用户可能通过
motion add motion-anything将其安装到任何 Agent(Claude Code、Cursor、Codex 等)中。无论使用哪种工具,行为都应一致。 - 绝不自动播放庆祝动效。愉悦感应由用户的操作赢得。
评论
支持 Markdown