Communitygithub.com

itswenxin/motion-replicate

当用户粘贴 Pinterest、Behance、Dribbble、Vimeo、YouTube 或直接视频链接(或拖入视频文件)并希望动画在 After Effects 中复刻时使用。获取或采样参考,测量时间和运动,用可编辑的关键帧重建,并逐帧比较直至匹配。

motion-replicate 是什么?

Motion Replicate 是一个专门用于将参考动画(来自社交媒体链接或视频文件)重建为 After Effects 可编辑项目的 AI 技能。它严格遵循“先测量后构建”的原则:首先从平台(如 Pinterest、Behance、YouTube 等)获取参考视频,通过逐帧分析测量每个运动元素的位置、缩放、旋转和时间曲线,然后使用贝塞尔关键帧(而非表达式)在 AE 中精确重建,最后通过并排帧对比验证匹配度。该技能支持 Claude Code 等命令行 AI 代理,提供 Python 工具链(`fetch_reference.py`、`analyze_reference.py`、`measure.py`、`sheet.py`)以及浏览器端帧采样脚本,用于处理受限于反爬策略的视频。它在“复刻参考片失败的五个根因”和“复刻参考片”章节中详细记录了常见陷阱和工作流程,强调尊重版权(不提交参考视频或帧),并建议在每个结构变更前保存备份。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/itswenxin/motion-agent/tree/HEAD/agent-skills/motion-replicate

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Motion Replicate — 从参考链接到可编辑的 AE 重建

先阅读 skill/SKILL.md 的“复刻参考片失败的五个根因”和“复刻参考片:先逐帧量,再动手”章节。 规则:先测量,后构建。 重建中的每一个数字都来自参考。

1. 获取参考视频

python3 tools/fetch_reference.py "<link>" --slug <short-name>
  • Pinterest(pin.it 或 /pin//):通过 Pinterest 公开的 widget API 下载 pin 的视频,包括 idea/story 类型。如果 pin 只是图片,工具会说明并打印出站链接:真正的动画通常在那里(Instagram 或 Behance 帖子)。请跟随该链接。
  • 直接视频 URL(.mp4/.mov/.webm/.gif):直接下载。
  • Behance、Vimeo、YouTube、作品集网站:通常拒绝命令行请求(退出码 3)或嵌入播放器。此时应观看而非下载:
    1. 在浏览器中打开项目页面,列出所有播放器: [...document.querySelectorAll('iframe,video')].map(n => n.src || n.currentSrc)。
    2. 打开播放器 URL 本身(例如 https://player.vimeo.com/video/<id>),将 tools/browser_frame_sampler.js 粘贴到浏览器的 JavaScript 工具中,运行 await motionAgentSample({ fps: 12 }),然后截图:你将得到一张带时间戳的联系表以及每帧的运动能量。await motionAgentShowFrame(t) + 截图功能可提供一个全分辨率帧用于测量位置。
    3. 将截图和返回的 JSON 保存到 refs/<slug>/。
  • 绝不要绕过登录、付费墙或机器人检测,也绝不要伪造标头来拉取受保护文件。如果页面阻止你,请使用浏览器方式或请用户下载片段。

refs/ 下的所有内容都被 git 忽略。参考视频属于它们的创作者:绝不要提交它们或发布它们的帧;在使用案例中需注明创作者(meta.json)。

2. 测量

python3 tools/analyze_reference.py refs/<slug>/reference.mp4 --fps 24

阅读 refs/<slug>/ANALYSIS.md:尺寸、帧率、时长、停顿、切换、最快时刻、是否循环、调色板,以及联系表和运动能量图。然后从 frames/ 中测量每个运动元素(像素位置、缩放、旋转在开始、结束和转折点的值;tools/measure.py 有帮助),并编写一个简短的规格说明:元素 → 关键帧(时间,值)→ 速度形状(缓入/缓出/两者皆含,过冲)。

在构建前,用 3-5 行文字告诉用户你测量了哪些内容以及将如何构建。

3. 在 After Effects 中重建

  • 合成设置应使用参考视频的尺寸和帧率(对于小参考视频,尺寸放大 2 倍,并说明)。
  • 在查看器中打开合成并边工作边移动播放头,以便用户可以实时观看。
  • 优先使用带有贝塞尔缓动的关键帧(明确的速度/影响,以复现测量的速度曲线);仅当关键帧无法实现时才使用表达式。
  • 合成和图层名称保持简短,每个名称一个单词。
  • 每次结构性更改前保存备份。

4. 比较和迭代

将我们渲染的相同时间戳帧与参考帧并排放置:

python3 tools/sheet.py "<our frames glob>" refs/<slug>/compare.png --pair "refs/<slug>/frames/f_*.jpg"

检查时间(停顿和切换是否落在相同的帧号上)、位置(在相同缩放比例下,误差在几个像素内)、速度形状和颜色。首先修复最大的不匹配,然后再次比较。每次比较都附上对比图。当用户满意时停止。

5. 保留学到的内容

当用户确认渲染后,运行 agent-skills/motion-retrospective。该案例需注明原始创作者和来源链接,仅包含我们自己重建的帧,并记录测量的数字以及复现这些数字的关键帧。

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

相关技能