seam-craft

seam-craft

热门

场景间拼接的渲染正确性准则,适用于 HyperFrames 发布视频中的场景过渡——确保过渡在主时间线上正确合成的先决条件。在组装主时间线 / index.html 时加载;当剪切或交叉淡入淡出拼接处出现白色闪光(尤其在暗色影片上)时加载;在推理过渡不透明度下降为何透出时加载;或在验证重叠场景包装器如何混合的渲染端机制时加载。涵盖不透明舞台背景(#root 背景)白色闪光防护,以及注入器如何重叠包装器、保持最终帧、乒乓轨道、并将无 lint 错误的模板代码印刻到主时间线上。不包含每个过渡的目录——请参阅过渡注册表以获取单个过渡条目。

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

Render-correctness doctrine for scene-to-scene seams in HyperFrames launch videos — the prerequisites that make transitions composite correctly on the master timeline. Load when assembling the master timeline / index.html, when a white flash appears at a cut or crossfade seam (especially on dark films), when reasoning about why a transition opacity dip shows through, or when verifying the render-side mechanics of how overlapping scene wrappers blend. Covers the opaque stage-ground (#root background) white-flash guard and how the injector overlaps wrappers, holds final frames, ping-pongs tracks, and stamps lint-clean template code onto the master timeline. Does NOT contain the per-transition catalog — see the transition registry for individual transition entries.

Seam Craft — 场景间过渡的渲染先决条件

这是 PLV 场景间拼接的渲染正确性准则:使任何过渡正确合成的先决条件和主时间线机制,与具体选择哪个过渡无关。每个过渡的目录(交叉淡入淡出、推拉滑动、缩放穿越、切曲线等)位于过渡注册表中——本页面是支撑所有这些过渡的准则。

本准则管理的过渡是Tier-B-ready:在两个场景剪辑包装器#el-<sid>)上使用纯 transform / opacity / filter,无需注入覆盖 DOM,无需每个场景协作。覆盖系列(交错块、百叶窗、漏光、网格溶解、页面燃烧)和着色器过渡推迟到后续阶段。

舞台背景先决条件(白色闪光防护)

多个模板会打开一个窗口,其中两个包装器的总不透明度 < 1(切曲线的中间窗口剪切、缩放穿越的 0.15 下限、普通交叉淡入淡出的功率曲线下降)。在此期间,包装器后面的任何内容都会透出。如果组装的 index.html #root 没有不透明背景,渲染器会将下降部分合成到其默认的白色页面上 → 每个拼接处出现白色闪光,在暗色影片上尤为刺眼(在修复前两次 Spotify 运行中观察到)。组装器必须绘制舞台: #root { background: var(--canvas-deep, var(--canvas, #000)) } —— assemble-index.mjs 现在会发出此代码;这些模板的任何其他消费者也承担相同的保证。

注入器如何应用过渡

在场景 ifrom)和场景 i+1to)之间的 break 边界处,注入器:

  1. #el-<from> 包装器的 data-duration 延长 duration_s(保持其最终帧——已验证:core/src/runtime/init.ts:1393-1410 外部插槽分支)。
  2. #el-<to> 包装器的 data-start 提前 duration_s(创建重叠窗口)。
  3. 将所有剪辑的 data-track-index 重新分配为 0/1 乒乓,使两个重叠的包装器永远不会共享一个轨道(相同轨道重叠是非法的——core/src/lint/rules/composition.ts)。较高轨道合成在顶部。
  4. gsap_template 印刻到 window.__timelines["main"] 中,位置为 T = overlap-start

通过原型渲染验证(2026-05-31):主时间线包装器补间被寻址并渲染(不会与子合成自己的暂停时间线双重寻址——运行时独立驱动它们),扩展的包装器保持场景 i 的最终帧,较高轨道的传入包装器合成在传出包装器之上并与之混合。

模板占位符

注入器在每个 gsap_template 行中替换以下标记:

标记 含义
__OLD__ "#el-<from>" — 传出剪辑包装器选择器(带引号)
__NEW__ "#el-<to>" — 传入剪辑包装器选择器(带引号)
__T__ 重叠开始时间(秒,主时钟)
__DUR__ 此边界的 duration_s
__DX__ 方向类型的水平移动:-1920(左)/ 1920(右)
__DY__ 垂直移动:-1080(上)/ 1080(下)
__ORIGIN_OUT__ / __ORIGIN_IN__ squeeze 的 transformOrigin 对

filter / scaleX / transformOrigin 在主时间线上无 lint 错误(已验证:core/src/lint/rules/gsap.ts 没有按属性白名单,并将其检查范围限定到 data-composition-id 范围;x/y/scale/rotation/opacity 白名单仅是_场景工作器_提示规则——它不绑定 index.html)。