# Hidden-cut transitions

Three hidden-cut transitions — foreground occlusion invisible cut, versus-slam opener, and warm light-leak burn; the hard cut hides inside 1-3 frames of occlusion/impact/light peak, so the viewer never sees the scissors.

- Category: transition · Tags: shotcraft, remotion, transition
- Spec: 1920×1080 @ 30 fps · 4.05s (16:9)
- License: Apache-2.0 · Tier: free
- JSON: https://gimgs.net/motion/transition-hidden-cut.json
- Kind: remotion
- Source (TSX): https://gimgs.net/motion/transition-hidden-cut/template.html
- Repo: https://github.com/Vincentwei1021/video-shotcraft
- Credits: video-shotcraft (Vincent Wei) — https://github.com/Vincentwei1021/video-shotcraft
- Page: https://gimgs.net/motion/transition-hidden-cut.html

## Params

_No params._

Default params (base64url for `?p=`): `e30`

## Prompt

## When to use

When two shots need a "seamless scene change" or a "ceremonial reveal" at the join (a technique card, chosen from the same tier as the six shot-transitions moves)

## Intention

Same family as shot-transitions style A, flash-cut: flash-cut covers a hard cut with one layer of white flash; these three swap in three different "decoys" — a sweeping foreground card (A), a collision-impact frame (B), a light leak climbing to its peak (C). The shared principle is magician's misdirection: the viewer's eyes get pulled away by a big motion/bright flash for those 1-3 frames while the hard cut happens, and when they refocus the scene has already changed, all "without ever seeing the scissors." flash-cut is the plainest version; pick A for a sense of direction, B for ceremony, C for warmth.

## Duration & energy

- Duration: n/a (a technique card; each style's frame count is in its parameter table, drawn from the neighboring shots' budget)
- Energy: n/a (a technique card, doesn't occupy an energy slot)

## Shot recipe (original Chinese — timing, easing, parameter table, known pitfalls)

## 意图
与 shot-transitions A 式 flash-cut 同族：flash-cut 用一层白闪盖住硬切，
这三式换了三种"障眼物"——扫过的前景卡片（A）、对撞的撞击帧（B）、
爬到顶峰的漏光（C）。共同原理是魔术误导：观众的眼睛被大动作/强光
吸走的那 1-3 帧里完成硬切，回过神来景已经换了，全程"看不见剪刀"。
flash-cut 是最素的一款；要方向感选 A，要仪式感选 B，要温度选 C。

## 三式选型
| 式 | 做法 | 适用接缝 |
|----|------|----------|
| A invisible-cut 前景遮挡隐形切 | 一张超画幅卡片带重运动模糊贴脸横扫，糊满全屏的遮挡帧内背景 A→B 硬切，卡片飞出观众以为还是同一镜 | 想让换景完全无痕的页面→页面；伪"一条 take"的主力款 |
| B versus-slam 对撞开屏 | 左右两半屏带斜切边从画外加速对冲撞合，撞击帧白闪+震屏+VS 盖章，切点就是撞击本身 | 对比/对阵语义的开屏或章节头（新旧方案、双产品、before/after）|
| C light-leak-burn 暖色漏光 | 三团暖色柔光沿对角线斜扫，光峰帧吞掉旧页约七成时硬切新页，光退散时新页已就位 | 想要暖调/胶片味的章节过渡；比白闪柔、有方向、有温度 |

## 参数表
| 参数 | 典型值 | 调节手感 |
|------|--------|----------|
| A 横扫 | 卡片 1600x1000 再 scale(1.6)，x 从 -2200→2600 共 14f，bezier(0.3,0,0.7,1)；切点在扫掠中点全遮帧（demo 里 f47） | 中点必须覆盖 -280..2280 糊满 1920 画幅；两端完全出画 |
| A 糊感 | 全场包 `<CameraMotionBlur shutterAngle={300} samples={12}>` + 卡片自身 blur(8px)/skewX(-v·0.018°) + 4 层手动残影（opacity 0.35→0.07、blur 14px、间隔 0.55f） | 三层糊叠出"贴脸呼啸"；只靠 CameraMotionBlur 糊不满遮挡窗口 |
| A 带风推挤 | 背景 ±40px：切前 A 被拖向扫掠方向（ease-in），切后 B 从反侧 13f 回稳（ease-out） | 卖"同一镜被风带了一下"的错觉，是无痕感的一半功劳 |
| B 斜缝几何 | clip-path polygon 斜边约 78°（缝顶 x=1075→缝底 x=845）；两半屏从 ±1200px 以 ease-in(cubic) 10f 对冲到位 | ease-in 加速才有"砸"感；垂直缝读作 PPT 分屏 |
| B 撞击三件套 | 撞击帧同发：白闪 0.9→0 共 3f + 整机 shake 12px·e^(−t/1.6) 约 5f 收干 + VS 字块 scale 1.6→1 back(2.6) overshoot 6f 压出 | 三件必须同帧起跑，错开一帧就散；震屏幅度须过肉眼阈值（可感性判例）|
| C 光层 | 3 团径向渐变（#f6c878/#e8a44a/#d98a2b，直径 1500/1950/2400px，blur 90px，mixBlendMode screen）沿右上→左下扫约 70f | 光团偏移沿扫掠方向拖尾排布，避免完美同心的"手电筒感" |
| C 光强包络 | ease-in 爬升 27f（蓄力）→ 峰值帧藏切 → ease-out 收敛 43f（余温）；峰值叠 8% 全屏暖罩 + 近白热核（opacity=intensity²） | 爬升慢收敛快会读作故障闪光；热核只在临近峰值烧起来 |
| C 冲淡 | 峰值时页面 filter：contrast 降 45%、brightness 抬 35% | 这是"烧穿"感的来源——光只叠不冲淡，读作贴了张贴纸 |

## 已知坑
- demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿，
  首次实战须以真实素材回验
- C 式是 Q4 光效判例解封后首个入库光效手法——严守 Q4 三约束：
  单点使用（一支片一处，不群发）、正常速度回放自检好看才算过、
  光效服务切点而非装饰；与 flash-cut 同片混用算两次光效藏切
- A 式遮挡物必须真的全遮：demo 里 1600x1000 的卡要 scale(1.6) 才盖满
  1920 画幅——换素材尺寸后先逐帧检查切点帧有没有露出背景边缘，
  露一条缝整个魔术就穿帮
- B 式 VS 字块语义仅适配"对比/对阵"内容——没有两方对峙关系时
  别当通用转场用；去掉 VS 只留对撞则退化为一款斜缝 wipe，语义要求同降
- 转场不叠加（规矩同 shot-transitions）：一个接缝只用一式；
  这三式与六式同层选型，同片同类接缝别既用 flash-cut 又用 C 式
- 分镜表阶段就逐接缝标注（写进"关键动效"列），帧预算从相邻镜头划（R3）

## 参考实现
demos/transition/transition-hidden-cut/
（InvisibleCut.tsx / LightLeakBurn.tsx / VersusSlam.tsx）

## Reference implementation (Remotion)

- demos/transition/transition-hidden-cut/InvisibleCut.tsx — https://raw.githubusercontent.com/Vincentwei1021/video-shotcraft/main/demos/transition/transition-hidden-cut/InvisibleCut.tsx
- demos/transition/transition-hidden-cut/LightLeakBurn.tsx — https://raw.githubusercontent.com/Vincentwei1021/video-shotcraft/main/demos/transition/transition-hidden-cut/LightLeakBurn.tsx
- demos/transition/transition-hidden-cut/VersusSlam.tsx — https://raw.githubusercontent.com/Vincentwei1021/video-shotcraft/main/demos/transition/transition-hidden-cut/VersusSlam.tsx

The component imports shared fixtures from `demos/_fixtures` and helpers from `assets/lib` in the repo; SKILL.md there documents the render workflow.


## Flow

1. **Read the recipe**
   Prompt = when to use, intention, parameter table with typical values and how each one feels, known pitfalls. Treat values as calibrated starting points.
2. **Get the code** — tool: git
   `git clone https://github.com/Vincentwei1021/video-shotcraft && cd video-shotcraft && npm install`
3. **Register + render** — tool: remotion
   `npx remotion render <CompositionId> out.mp4   # component: demos/transition/transition-hidden-cut/InvisibleCut.tsx, demos/transition/transition-hidden-cut/LightLeakBurn.tsx, demos/transition/transition-hidden-cut/VersusSlam.tsx`
4. **Or re-implement**
   Port the timing/easing from the recipe to HTML + WAAPI (gimgs motion contract) or any engine; keep the same segment windows and easing.

## Render

Clone https://github.com/Vincentwei1021/video-shotcraft (npm install). The component lives under demos/{category}/{name}/ and imports shared fixtures from demos/_fixtures and helpers from assets/lib. Copy it (with those imports) into a Remotion project, register a <Composition> with the template's width/height/fps/duration in Root.tsx, then `npx remotion render <CompositionId> out.mp4`. SKILL.md in the repo documents the full Claude Code / Codex workflow. The prompt below is the shot recipe (timing, easing, parameter table, pitfalls) — enough to re-implement the shot in HTML/WAAPI or another engine if you prefer.

## Contract

React/Remotion composition (TSX) from the open-source video-shotcraft library (Apache-2.0). It is not a browser-playable template: clone the repo, register the component in a Remotion project and render with `npx remotion render`. The recipe (prompt) describes timing, easing and parameters so you can also re-implement the shot in any engine.
