# Light play moves

Three light styles: spotlight-sweep sweeping a spotlight across text, sheen a single sheen sweep, and halation-bloom a crash-stop glow bloom.

- Category: effects · Tags: shotcraft, remotion, effects, typography
- Spec: 1920×1080 @ 30 fps · 5.38s (16:9)
- License: Apache-2.0 · Tier: free
- JSON: https://gimgs.net/motion/light-play-moves.json
- Kind: remotion
- Source (TSX): https://gimgs.net/motion/light-play-moves/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/light-play-moves.html

## Params

_No params._

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

## Prompt

## When to use

Treats light as a fourth kind of brushstroke (sweep/wipe/bloom): a dark-scene title reveal (A), crowning a hero card (B), impact on a crash-stop frame (D).

## Intention

The library previously only had one "light" technique; these three styles build light into a system, three brushstrokes with three jobs: A is **sweeping** — a title, almost invisible in the dark, gets swept bright by an oscillating cone of light; B is **wiping** — a 45° highlight band sweeps once across a deep-ink hero card, clipped by its rounded corners, a silent coronation; D is **blooming** — on a white-text crash-stop frame, a ring of soft glow surges up and bursts, then settles into a resting breathing glow. All of this lives on dark backgrounds or dark hero subjects — **glow is invisible on white backgrounds** is the bedrock of this whole card.

## Duration & energy

- Duration: A: ~5.3s / B: ~4.7s / D: ~4.8s
- Energy: A: Medium / B: Low / D: High

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

## 意图
库内"光"一直只有 spotlight-hero-card 一个点射手法；这三式把光做成
体系，三种笔触三种职责：A 是**扫**——暗场里几乎不可见的标题被锥形
光摆动扫亮，光到哪哪亮，与 spotlight-hero-card 的区别是那个打卡片、
这个扫文字；B 是**擦**——深墨主角卡上一道 45° 高光带缓扫一次，被
圆角裁住，无声的加冕；D 是**晕**——白字撞停帧一圈柔晕猛涨炸开再
回落成驻留呼吸光，与 B 的区别是 B 移动扫过、D 驻留在高光边缘。
全部深底或深主角——**白底上提亮不可见**（判例）是这整张卡的地基。

## 三式选型
| 式 | 做法 | 适用 |
|----|------|------|
| A spotlight-sweep | 双层同文本：暗版 0.07 常驻，亮版 radial mask 随光斑走，锥形光摆两个来回后全亮定格 | 暗场大标题揭示开场 |
| B sheen-sweep | 深墨卡上 45° 高光带 translateX 扫一次，overflow hidden 圆角裁剪 | 主角卡静止段的一次加冕 |
| D halation-bloom | 文字复制底层 blur+brightness 当晕层，撞停帧起猛涨一圈回落成稳态柔光 | crash-zoom 撞停帧的冲击加成 |

## 参数表
| 参数 | 典型值 | 调节手感 |
|------|--------|----------|
| A 反差 | 暗版 0.07 vs 全亮 1.0，白 #f5f5f3 对 #2a2a28 暗场 | 反差是本式全部；暗版 >0.15 就没有"点亮"了 |
| A 光斑 | circle 380px（0.95 硬芯+柔边），x = 960+560·sin(2πf/55)，两来回至 f110 | f110–125 全亮 out-cubic、光效线性消散（扩散/消散解耦判例） |
| B 高光带 | 宽 1.6×卡宽，115° 渐变峰值 rgba(255,255,255,0.32)，40–68f inOut cubic 扫一次 | 0.32 在深墨底上足够响；双向 clamp 保证只扫一次 |
| D 晕层 | blur 22px + brightness 1.8；scale 1→1.3 用 6f out-cubic 猛涨，opacity 20f 线性回落 0.35 再 15f 缓收 0.22 稳态 | 扩散 out-cubic/消散线性解耦（判例）；同快涨快消读作闪光灯 |
| 摘罩 | 三式光效层全部条件挂载，扫完/消散完即卸载 | opacity 0 残留 = 永不真静止（feTurbulence 摘罩判例同族） |
| 收尾 | A 35f / B 72f / D 89f 真静止 | — |

## 已知坑
- demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿，
  首次实战须以真实素材回验
- **全片光效合计 ≤2 次**——光是最快掉价的手法，每个卡都闪一下
  等于廉价模板
- B 式是高标准重试通过：旧否决（2026-07-13 判例）针对当时实现不好看，
  非路径不可行；四约束 = 单点+主角+圆角裁剪+只扫一次，违反任何
  一条回到否决区
- 深底是地基：三式全部依赖深底/深主角，白底上做光效直接跳过本卡
- D 与 crash-zoom-punch 撞停帧天然联动（撞停即起晕）；A 与
  spotlight-hero-card 同片二选一，都是"聚光"语汇

## 参考实现
demos/effects/light-play-moves/
（HalationBloom.tsx / SheenSweepRetry.tsx / SpotlightSweepReveal.tsx）

## Reference implementation (Remotion)

- demos/effects/light-play-moves/HalationBloom.tsx — https://raw.githubusercontent.com/Vincentwei1021/video-shotcraft/main/demos/effects/light-play-moves/HalationBloom.tsx
- demos/effects/light-play-moves/SheenSweepRetry.tsx — https://raw.githubusercontent.com/Vincentwei1021/video-shotcraft/main/demos/effects/light-play-moves/SheenSweepRetry.tsx
- demos/effects/light-play-moves/SpotlightSweepReveal.tsx — https://raw.githubusercontent.com/Vincentwei1021/video-shotcraft/main/demos/effects/light-play-moves/SpotlightSweepReveal.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/effects/light-play-moves/HalationBloom.tsx, demos/effects/light-play-moves/SheenSweepRetry.tsx, demos/effects/light-play-moves/SpotlightSweepReveal.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.
