onetake
一镜到底的连贯动效。 一个 Claude Agent Skill,用来制作产品发布片、预告片和功能演示:每一个画面都从上一个画面里长出来——是一整条连续的镜头,而不是一张张轮流出场的"PPT"。
来自 onetake 自己的发布片:一个输入框展开成它所要求的广告;下一个输入框压成一条线,划过桌面,展开成一块节日大屏。全程没有一次剪切。观看完整有声影片 →
问题:动效是散的
如今大多数 AI 生成的动效视频——以及大多数模板工具的产出——都很散。标题卡、淡出、界面镜头、淡出、功能卡片、淡出、Logo。每一镜单看也许都不错,合起来仍然像在翻 PPT,因为画面之间没有任何联系:场景只是在互相替换。
onetake 不一样:每个画面都被"接住"
onetake 把两个画面之间的交接处当作设计的重点。在每一个交接处,屏幕上都有某个东西活下来,并且看得见地变成下一个画面:
- 输入框展开成 App 窗口;窗口再重排成手机界面;
- 一根横条压成一条线,这条线划过桌面,变成下一条片子的第一根网格线;
- 一张卡片长成整个页面;舞台从角色身上打开;镜头穿过一张卡片,穿过去它就是下一个场景;
- 结尾,所有元素收拢成标志——在发布片里,是块状光标一笔写出名字。
而且有一个镜头把这一切串起来。它从不剪断:提前半拍跟随主体,抢在下一个东西落地前甩过去,像手持摄影师一样轻微浮动,东西撞上来时跟着一震——然后又能纹丝不动地停住,因为正是停顿让动作落得下来。
连贯是量出来的,不是靠感觉
每条片子在人观看之前,都会先经过一个 oracle(自动验收)检查。probe.py 记录每一帧画面上有什么,找出每一个交接处,并判断有什么东西从这边带到了那边。画面互相替换的片子直接判不合格。
| 片子 | 结果 | 连贯度(carry score) |
|---|---|---|
| 更早的一条发布片 v1:节奏完美,仍然像 PPT | 被否 | 0.00 |
| 同一条片子 v2 | 被否 | 0.40 |
| 同一条片子 v3:每个画面从上一个里长出来 | 通过 | 0.75 |
| onetake 发布片 | 通过 | 0.83 |
同一套 oracle 还会否掉这些问题:镜头长度全都一样、没有静止段落、音频削波、快动作没有运动模糊、主体离开画面。
为什么看起来像成品
- 复刻的真实界面。 按截图用 HTML 重建产品界面,放在镜头所在的平面上,镜头可以推入任意缩放级别,不需要录屏。
- 实测过的动作。 约 38 种动作(弹簧、入场、衔接、碰撞、物理模拟、镜头、流体光场),每个都是时间的纯函数,速度曲线都经过实测——从不用随手写的缓动。
- 真实运动模糊。 每个运动帧都是 180° 快门张开期间的多次采样,在线性光下取平均。快动作拖出残影,而不是一格一格地闪。
- 同一个空间里的声音。 音效和合成声按影片自身的事件摆放,放在同一个混响里,打点处音乐自动让位。
- 结果确定。 跳到任意时间点,得到的都是同一帧。草稿 1080p30,成片 4K60。
🌟 用它制作的影片
每个案例都附带成片和拆解文档(概念、节拍表、数据、被否掉的版本及原因)。影片的源代码不包含在内。
- onetake launch——三个提示词,三条影片,一个镜头:每个提示词都看得见地变成它的影片。
- one-dot——一个点就是整部影片:光标 → 菜单 → 加载环 → 弹簧曲线 → i 上的那个点。
- knockon——一场连锁反应:每个画面都是引发下一个画面的碰撞。
- clearing——从一年缩放到空闲的半小时:1× 到 300× 再回来,从不开剪。
- pith——窗口从一颗荧光像素里长出来:一个动作完成 440× → 0.52×。
- ebb——一片光场带着镜头穿过五个场景;每一次漫溢都流进下一个。
- overlap——两遍印刷滑入套准,一个藏在两者之中的 & 浮现出来。
- unbroken——一笔从不提起的墨迹:程序化笔刷,没有贴图。
- motion-web——节奏规则的来源:小界面、大底面、停顿,然后爆发。
- skill-demo——从零开始的操作演示:选中的菜单行飞进输入框变成一个 chip,然后继续。
one-dot 和 skill-demo 制作时该 skill 还叫 ohmymotion,影片中显示的是旧名字。
一条片子是怎么做出来的
- 把参考片拆成数字: 静止占多少、在哪里剪、动作怎么缓动。
- 出三个概念,选一个。 每个概念是一句关于画面的话——“一个点变成一切"“一个镜头穿过所有尺度”——而不是用同一套卡片讲三个故事。
- 写节拍表,节奏和衔接都要写。 镜头长短相差至少 4 倍,每个交接处都写明是什么东西活了下来。
- 在动作库上合成一个 HTML 文件,带运动模糊渲染,按影片事件配声音。
- 验收,然后再给人看。
📦 安装
# Claude Code
git clone https://github.com/feitangyuan/onetake.git ~/.claude/skills/onetake
# Codex / 其他读取 skills 的 Agent
git clone https://github.com/feitangyuan/onetake.git ~/.agents/skills/onetake
然后直接说:“给我的 App 做个 15 秒发布视频"“按这几张截图复刻界面做功能演示,不要录屏"“我的动效视频像 PPT,帮我改”。
依赖:python3 及 playwright(chromium)、numpy、scipy、Pillow、matplotlib(分析参考片需要 opencv-python)、ffmpeg、node。配音需要 faster-whisper 和 Kokoro TTS。音乐默认使用免版权曲库。
| 文件 | 说明 |
|---|---|
SKILL.md | 协议以及每一次被否掉的剪切换来的硬规则 |
lib/motion.js · lib/ui_kit.js | 动作库;界面重建套件 |
scripts/ | 渲染(运动模糊、4K60)、验收(oracle)、probe、静帧、参考片分析、素材、旁白、声音 |
gallery/ | 每个动作一个实时演示和一张六帧分解图 |
references/ | 节奏、衔接、构图、镜头、声音、产品演示——带数字的方法论 |
许可证
PolyForm Noncommercial 1.0.0:个人、教育、研究等非商业用途免费使用。不允许商业使用。