onetake 八步制作协议,最容易被抄错的是第一步:参考片量化不是"看个大概"
【免费下载链接】onetakeMotion films that never cut to the next slide: every beat grows out of the one before, one continuous camera, continuity measured by an oracle. Product launch films and feature demos, made with a coding agent.项目地址: https://gitcode.com/gh_mirrors/on/onetake
把一条 10–30 秒的产品发布片做成"一镜到底",onetake 把它写成了一套 8 步工程协议:参考片逆向 → 概念 → 节拍表 → 素材 → 合成 → 渲染 → 声音 → 自动验收。社区里围绕这套协议的拆解文章不在少数,但几乎都默认读者理解了第一步。事实恰恰相反——八步里最容易被抄错的就是第一步。很多人把它理解为"找几条参考片,看个大概感觉",然后在节拍表阶段接连爆雷,最后把锅甩给节奏感。onetake 的仓库里存着完整的翻车记录:motion-web 这条"worked example"砍了三版才过,前两版都被判「PPT」,原因不是审美,而是第一步没做对。本文用仓库源码逐条还原:参考片量化到底量的是什么、为什么"看个大概"一定会在节拍表阶段爆雷,以及最小可用的正确姿势。
八步协议全景与常见误读
协议全貌写在 SKILL.md 里,八步顺序严格、不可跳步:
- Deconstruct the reference before touching anything(硬规则)——先拆参考片,后动任何东西;
- 概念——先给三个关于画面的中心思想,用户选一个;
- 节拍表——节奏与衔接都要写,每个交接处写明"什么活下来进入下一拍";
- 素材——真实页面录屏,或按截图用 HTML 复刻 UI;
- 合成——单个 HTML 文件,每个值都是时间
t的纯函数; - 渲染——1080p30 草稿、4K60 终片,真实快门运动模糊;
- 声音——一套合成材料放进同一个混响房间;
- 验收——
verify_promo.py在人类观看前判定节奏与连贯性。
注意第一步的措辞:它被标记为"硬规则",且前缀是before touching anything。这意味着它不是"参考一下",而是流水线的输入契约——后面的概念、节拍表、验收阈值全部以它的输出为地基。常见误读有两种:一是把"分析参考片"等同于"观赏参考片",看一遍就凭印象开工;二是把第一步的产出物当成"对参考片的模仿清单",逐帧照抄。
第一种误读最致命。仓库里的一句话可以当作反例总结:参考片"34% dead-still、7 处硬切集中在两段爆发、元素始终小而留白大——这些没有一项是看一遍能看出来的,而一条不做测量就开工的片子,两次都栽在均匀节拍上"(SKILL.md §1)。"看个大概"恰好漏掉了这个参考片最重要的属性:它三分之一的时间是静止的。
为什么"感觉化"分析会在节拍表阶段爆雷
motion-web 是这套 skill 的第一条片,参考片是 Daniel Ch 的 Shipper 发布片(26.6 秒)。同一批素材、同一个 15 秒时长,三版剪辑三个结果。
v1 被拒:「PPT 式一个一个展示」。九张页面卡片摆在 2.5D 场地上,镜头匀速推过每张 0.74 秒,带景深模糊和标签。测量值:静止帧占比 0.02——镜头从没停过,每张卡片停留时长完全相等(references/rhythm.md)。对照参考片 0.34 的静止占比,这条片子的能量曲线从形状上就是错的。
v2 被拒:「也没有节奏变化 依然是 ppt」。改成七张页面全屏、每张 1.55 秒、手绘指针、逐镜推进和弹簧落定。可读性好了,仍然是七张幻灯片——七个等长镜头配同一种"切入-推进-落定"的形状,是一条节拍器。均匀节拍恰恰是第 8 步验收脚本要抓的第一个违规项。
v3 通过。结构完全照参考片的测量值重建:三词入场 0.4 秒/词 → 字标 1.4 秒 → 提示词卡 1.8 秒 → 清单逐行勾选 2.2 秒 → 三屏飞入各 0.9 秒(爆发)→ 微交互卡片重叠 → 浏览器窗口静推 1.15 秒(停顿)→ 结尾 0.22–0.25 秒的硬切连打 → 黑场字标。镜头长度从 0.22 秒到 2.2 秒,变异系数 0.78,静止占比 31%,一个爆发、一处停顿(cases/motion-web-15s/README.md)。
爆雷的机制值得拆开看。节拍表不是创作灵感的产物,而是测量值的下游:verify_promo.py的cadence腿要求镜头长度变异系数 ≥ 0.25,"等长镜头 = 幻灯片";rest腿要求至少 25% 的帧完全静止、且存在一处 ≥ 1 秒的静默段(scripts/verify_promo.py)。这两条阈值直接来自参考片的量化结果——0.34 的静止占比、15–18.8 秒那段近 4 秒的慢推静默。没测过参考片的人,写节拍表时根本不知道这些数字的存在,于是所有镜头等长、全程在动,两条腿一起 FAIL。注意:这不是"节奏感差"的玄学问题,是输入缺了量化步骤导致的确定性输出错误。
量化参考片的最小正确姿势
正确姿势不是"更仔细地看",而是把观看替换为测量。最小闭环有四步。
第一步:跑 scripts/analyze_ref.py。
python3 scripts/analyze_ref.py ref.mp4 --out ana/它产出四样东西:energy.txt(每 1/12 秒一个字符的能量图,4 秒一行)、summary.json(时长、静止占比、剪切点、爆发窗口、最长静默、光流指纹)、4fps 的接触表sheet_NN.png、以及均匀分布在片长的 9 张全幅帧。能量图长这样(参考片 Shipper 实测):
0.0s | . . . | 4.0s | . ..........:::... .....| 8.0s |...::::::::::::::::::::::::.... .::=*++=+| 12.0s |*@% ........:-::.. .| 16.0s |. @...:.:.::-:-:| 20.0s |-:=:=:-:-@ @ | still (<0.5): 0.34 low (<2): 0.57 cuts: 11.6 12.0 12.1 12.2 18.8 20.8 23.4第二步:读四个数字,而不是四段印象。静止占比(0.34——片子会呼吸);爆发位置(11.6–12.2 的 0.6 秒 UI 卡片连飞、18.8–20.8 的字词打点——两段爆发而非全程高能);最长静默(15–18.8 秒的 3.8 秒慢推——这就是停顿对比的秘诀);剪切数量(26 秒 7 处硬切——每秒一剪不是这个体裁)。这四个数字直接决定节拍表的骨架(references/reference-deconstruction.md)。
第三步:读运动线(motion line),区分"快"与"怎么快"。光流模块按 30fps 采样(慢于 30 的源按其原生帧率,避免插帧制造伪静止),输出每个动作的t80——移动走完 80% 路程所花的时间占比:0.23 是 expo 猛甩,0.67 是对称 S 曲线。还要读smear:快速帧的梯度能量沿运动方向与垂直方向的比值,低于 0.78 说明带快门模糊,0.9 以上说明是锐渲染。这两个数字是"看个大概"彻底无能为力的地方——肉眼分不清一条 expoOut 猛甩和一条 smootherstep 缓动,更分不清运动模糊是渲染出来的还是 CSSblur()滤镜假装出来的(motion-web 的飞屏smear 0.88就被识别为"CSS 模糊,不是快门模糊")。而它们直接决定你从 lib/motion.js 里选哪条曲线:ease.expoOut(t80 .23)用于落点,smootherstep(t80 .67)用于旅行,选错就是"全片同一条软 S 曲线"的廉价感。
第四步:把数字写进节拍表,并让验收对照它。节拍表是五列:t · beat · 什么在动 · 什么静止 · 什么活下来进入下一拍。写完第一版可播故事板后,用probe.py逐拍读出carried / anchored / bare——bare 的交接就是未来读起来像幻灯片的拍;成片后跑:
python3 scripts/verify_promo.py draft.mp4 --comp comp.html --ref ref.mp4 --shots 0,1.6,3.0,4.8,7.0,9.6,12.1,13.25,14.3--ref会让验收把成片与参考片的能量图、静止占比、剪切数与光流指纹并排打印(scripts/verify_promo.py)。至此"量化参考片"才真正闭环:测量 → 写数字 → 节拍表 → 成片对照。
有一个容易混淆的边界需要划清:风格参考不是节拍表。仓库里记录了一次 part-kit 风格研究在 draft 1 就被叫停——把新主题硬套参考片的节拍,被判「完全抄袭复刻没意义」。风格参考能转译的是"规则"而非"帧":每个物体遵守的那一条规则、背后的制作工具、用数字量出来的调色板/栅格/字号、以及参考片的硬切(那是它的风格的一部分,不是你的)。把这些写进合成文件的头部,再用 lib/motion.js 的 carry 动作(morphRect、iris、zoomThrough、hop、gather、seal)接住每个交接处——参考片的剪切不属于它的风格,你的片子也不需要照抄它剪(references/reference-deconstruction.md)。
最后回到那个最容易抄错的第一步。onetake 把参考片分析从"审美活动"改写成了"测量活动":静止占比、爆发窗口、最长静默、t80、smear——这些是眼睛读不出来、但节拍表和验收阈值认得出来的数字。motion-web 的三版剪辑就是代价本身:前两版只差一次analyze_ref.py。参考片量化是全协议里成本最低的返工预防,也是最容易被"看个大概"四个字省掉的环节——省掉它的后果,则全部按协议预定,在节拍表阶段准时爆雷。
【免费下载链接】onetakeMotion films that never cut to the next slide: every beat grows out of the one before, one continuous camera, continuity measured by an oracle. Product launch films and feature demos, made with a coding agent.项目地址: https://gitcode.com/gh_mirrors/on/onetake
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考