motion-doctrine

motion-doctrine

热门

GATEWAY — 在创作任何 HyperFrames 动画或视频前,请先加载此技能。这是一条高级运动法则,能让多场景视频感觉像是一次连续的摄像机运动,而非一堆独立动画幻灯片的堆叠。涵盖向量法则(如何退出决定如何进入,包括 Z 轴缩放符号规则)、影片流向、载体元素、因果运动、接缝门(构建-门控强制)、禁止空闲抖动(运动必须执行,而非呼吸)、高潮前的静止以及持续运动路径。指向底层技术技能(cut-the-curve — 完整目录,包括瀑布式入场 + 微调曲线、oversized-cursor、seam-craft)。这些规则取代通用/上游运动指导。[连续性、方向、向量、动量、接缝、过渡、缓动、表现、空闲运动、叙事运动、电影语法]

3.6万Star
3412Fork
更新于 2026/7/19
SKILL.md
readonly只读
name
motion-doctrine
description

GATEWAY — 在创作任何 HyperFrames 动画或视频前,请先加载此技能。这是一条高级运动法则,能让多场景视频感觉像是一次连续的摄像机运动,而非一堆独立动画幻灯片的堆叠。涵盖向量法则(如何退出决定如何进入,包括 Z 轴缩放符号规则)、影片流向、载体元素、因果运动、接缝门(构建-门控强制)、禁止空闲抖动(运动必须执行,而非呼吸)、高潮前的静止以及持续运动路径。指向底层技术技能(cut-the-curve — 完整目录,包括瀑布式入场 + 微调曲线、oversized-cursor、seam-craft)。这些规则取代通用/上游运动指导。[连续性、方向、向量、动量、接缝、过渡、缓动、表现、空闲运动、叙事运动、电影语法]

运动法则(网关)

在创作任何动画前请先阅读此文档。它决定了每个接缝处发生什么以及每个场景如何表现;技术技能负责实现它。这些规则取代通用/上游运动指导。它要防止的失败是:场景孤立创作——眼睛的动量在每个剪辑处消失,场景在入场和出场之间原地抖动。

路线图

决策(本技能) 实现技能
接缝过渡选择 + 参数 + 代码 cut-the-curve §1–5(目录)
文本/元素入场级联 cut-the-curve §6(瀑布式入场)
场景内组重新定位(无剪辑) cut-the-curve §7(微调曲线)
光标引导动作/场景启动/变形触发 oversized-cursor
接缝渲染机制/白色闪光防护 seam-craft
产品发布/解说/字幕工作 在上游技能基础上叠加 text-beat-economicsbrand-faithfulcaptions-overlay

创作顺序:向量账本(ledger.json)→ 从中生成主接缝(scripts/seam-stamp.mjs --ledger ledger.json --write index.html)→ 按阶段确定持续运动路径 → 载体和原因 → 构建合成 → 验证(scripts/seam-gate.mjs)。 仅手动创作 A 级变形/匹配剪辑;生成的接缝通过构造即可通过门控。


第一部分 — 接缝法则

向量法则

场景 A 如何退出决定了场景 B 如何进入:相同轴、相同方向、匹配速度、两侧均在运动中剪辑。

  1. — x 保持 x,y 保持 y,Z 保持 Z。切勿在剪辑间交换轴。
  2. 方向 — 切勿镜像。在 Z 轴上,方向 = 缩放变化的符号:增大 = 推进(摄像机向前),缩小 = 拉远(摄像机向后)。一个后退的退出被一个从小变大的入场回应是镜像向量——最常见的违规,因为从小变大是默认的元素入场方式。
  3. 速度 — 入场初始速度 ≈ 退出最终速度,通过镜像缓动实现(退出 power4.in + 入场 power4.out,相同距离和时长;进入侧在概念路径上完成 ≥50%)。具体机制见 cut-the-curve
  4. 相位 — 剪辑落在两侧的运动中。在剪辑前静止,或剪辑后从静止开始,都是死拍。

流向

每部影片选择一个主导方向(默认:向左)。每个普通接缝使用它。其他向量是保留的——使用一个意味着某种含义:

向量 含义
流向(向左) “下一个节拍”——中性前进
向上 提升——结论或揭示高于之前的内容
Z 向前(缩放穿过) 深入同一想法
Z 向后(反向缩放) 到达——更大的事物降临
缩放爆发(爆炸式退出) 离开一个世界——表面飞过摄像机
  • 切勿连续运行相反方向的接缝——来回摆动被视为错误。
  • 方向变化需要可见原因(点击/弹跳/撞击)或章节边界。

向量账本

在创作任何主时间线之前编写它——作为项目根目录下的 ledger.json(模式:references/seam-gate.md)。每个接缝一行:剪辑时间、退出和入场向量(轴 + 有符号方向;Z 行携带缩放符号)、选择器、技术。退出和入场必须匹配;如果某行不匹配,修复计划,而非缓动。验证器在运行时采样前静态检查行一致性。

载体

眼睛跟随物体,而非抽象概念。最强的接缝在匹配位置和速度下将一个具体载体传递过剪辑:路径中的光标、收缩/停靠到下一个布局的容器、飞入其精确位置的标记、瀑布式剪辑的词组。如果没有自然载体,场景主角承载它(部分移动 + 早期淡出,入场中途飞行)。切勿使用交叉淡入淡出——它根本没有载体。

因果运动

链式运动,使每个移动明显由上一个触发:点击 → 挤压 → 释放弹簧 → 飞行 → 撞击 → 回弹 → 揭示。

  • 效果在触发帧开始——相同时间线位置,切勿“稍后”。
  • 反应与隐含质量成比例:大元素回弹较慢,小元素快速。
  • 力是改变方向的许可;无原因的翻转是来回摆动。

接缝门(构建门控——运行验证器,退出码为 0 否则接缝未完成)

node <SKILL_DIR>/scripts/seam-stamp.mjs --ledger ledger.json --write index.html  # 生成
node <SKILL_DIR>/scripts/seam-gate.mjs  verify --ledger ledger.json --project .  # 验证

该脚本(用法 + 账本模式:references/seam-gate.md)对每个接缝进行数值强制:账本行一致性、退出时仍在运动、入场中途飞行(非静止)、测量方向 = 账本方向、入场/退出速度匹配(警告)、零重叠(每帧仅一侧可见——剪辑不是溶解)、Z 符号规则(两侧 d(scale)/dt 符号相同;入场场景自身的入场被扫描以检查符号冲突)、以及包含祖先缩放的载体矩形连续性。在创作账本时,使用 seam-gate.mjs probe --t <cut> 查找每个接缝的真实载体选择器。

脚本无法检查的规则——仍需你负责:

  1. 编辑会重新打开接缝。 对场景首尾约 1 秒的任何更改(包括重新计时以适应新配音)会使该边界的审计失效——重新运行验证器。
  2. 音频是时钟。 根据配音的真实单词时间戳重新计时场景;切勿为了适应时间段而匆忙朗读。配音重新生成会重新打开其接缝。
  3. 剪辑门控陷阱(零重叠失败的常见原因):data-start 早于入场补间的剪辑在其初始不透明度下取消隐藏——设置初始 autoAlpha: 0data-start = 剪辑时间,切勿更早。

第二部分 — 表现(场景持续表现)

无空闲抖动

空闲正弦循环(呼吸、浮动、漂移、发光脉冲)被禁止作为持续运动——它们读作“视频在等待”。一个场景在入场后还有几秒空闲是规划错误:添加故事,而非抖动。入场和出场之间的每个阶段由以下路径之一拥有(在计划中命名路径):

路径 说明
分阶段揭示 保留内容;在解说节拍上呈现——画面持续获取信息(默认用于 ≥2 个内容组)
有意图的摄像机 映射的缩放+平移路径:建立全景 → 移动 → 到达主体
序列化 UI 生命周期 产品随时间行为:进度前进、高亮步骤、计数跳动
动画序列 元素表演一个节拍:卡片归档到堆栈、项目被拖动、结果组装
光标引导动作 超大光标引导眼睛到触发器;其点击触发下一个节拍(oversized-cursor

测试:在任何秒暂停——必须有意义的事物正在运动中(揭示落地、摄像机移动、UI 执行解说所述内容)。

高潮前的静止

在主要动作及其结果之间安排 0.3–0.75 秒的暂停——戏剧性的逗号。直接从动作跳到结果的场景会失去它。

时间意图

  • 单次入场 ≤ 约 800ms;更长的积累 = 多元素交错,而非一个慢元素。
  • 退出 ≈ 入场的 75%。例外:cut-the-curve 反转此比例(入场约 127% 的退出)。
  • 总交错 ≤ 500ms;有 8 个以上元素时,收紧每个元素的延迟或仅交错前几个。
  • 禁止的缓动:bounce.out / elastic.out。入场过冲 back.out(1.4–1.7) 可以。
  • 相似元素共享一个缓动+时长意图——切勿每个元素使用独特组合。

过渡词汇

每部影片仅使用 2–3 种场景间过渡并重复使用;默认边界是 沿流向方向的 cut-the-curve。手写的共享元素变形(intent: morph)不计入预算。


反模式

不要这样做 改为这样做
孤立创作每个场景的入场 先编写向量账本
场景间交叉淡入淡出 沿流向方向的 cut-the-curve
退出完成,然后场景变化 两侧均在运动中剪辑
剪辑后入场从静止开始 在概念路径上完成 ≥50% 时入场
反向缩放退出 → 从小变大入场(或推进 → 过大回缩) 匹配缩放速度符号(接缝门 7)
入场场景在 Z 接缝交接下自身的弹出式开场 保持其开场帧已合成,或匹配符号
空闲抖动/呼吸/浮动以填充时间 分配持续运动路径;或添加故事
无原因的方向翻转 使用一个力,或保持流向
保留向量用作多样性 默认使用流向;在意义上使用它们
反应在其原因后几帧 同帧触发
动作直接跳到结果 安排高潮前的静止(0.3–0.75 秒)