Communitygithub.com

heygen-com/hyperframes

鏡頭切換技術目錄:五種速度匹配的無縫剪輯技巧(縮放穿越、反向縮放穿越、切曲線、瀑布剪輯、焦點模糊剪輯),加上兩種場景內技巧——瀑布入場和微調曲線。涵蓋部分移動、Z軸符號規則、比例縮放模糊、逐字剪輯、級聯節奏和滑動比例。

hyperframes 是什麼?

Hyperframes 是一份詳盡的技術目錄,專為需要在不同平台(如 Claude Code、Cursor、Codex)上創作動態圖形、過場動畫和文字節奏的 AI 代理開發者設計。它定義了五種主要的「無縫剪輯」(SEAM) 過場技術,用於場景間或場景內的文字替換與狀態切換,並額外提供兩種場景內的動畫技巧。這些技術的核心原則是「在峰值速度時進行剪輯,並匹配剪輯前後的方向與速度」,以達成視覺流暢且富有電影感的過場效果。此外,該技能詳細說明了每種技術的具體參數,包括縮放比例、模糊程度、透明度變化、持續時間和緩動函數(如 power3.in、expo.out),並提供了針對不同元素(如文字、全螢幕表面)的模糊邏輯規則。它也明確指出了常見的錯誤模式(反模式),例如禁止使用全螢幕推拉鏡頭或雙向級聯,確保開發者能避免常見的實作陷阱,並遵循統一的視覺法則(如向量定律、Seam Gate 規則),從而產出高品質且風格一致的動態作品。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/heygen-com/hyperframes/tree/HEAD/.agents/skills/cut-the-curve

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

切曲線 — 技術目錄

五種 SEAM 技巧,一個原則:在峰值速度時剪輯,匹配剪輯兩側的方向和速度 — 加上兩種場景內技巧(§6 入場,§7 滑動)。 無縫剪輯法則 — 向量法則、電流、分類帳、Seam Gate — 位於 motion-doctrine 中;請先閱讀該文檔。本技能提供的是參數和機制。 所有 GSAP 程式碼範本(worker + registry):examples/gsap-implementation.md。

目錄

#技巧範圍軸線用途
1縮放穿越(向前)場景內文字替換Z,朝向觀看者在同一思想脈絡中深入探討
2反向縮放穿越到場 / 轉折點Z,遠離觀看者某個更大的事物落地
3切曲線場景之間X / Y預設邊界,影片的「電流」
4瀑布剪輯文字到文字的接縫X,逐字大字幕節拍之間的逐字過渡
5焦點模糊剪輯同一表面的狀態切換X / Y / Z你想讓人「看見」的那個剪輯 — 一種 DSLR 焦距拉動的效果
6瀑布入場場景內到場(無接縫)Y,從下方標題卡、段落開場、列表介紹
7微調曲線場景內群組滑動(無接縫)X / Y重新定位已編排的群組以騰出空間

Z 方向是一個符號

在 Z 軸上僅靠「同一軸線」是不夠的 — d(scale)/dt(縮放變化率)的符號必須在剪輯兩側匹配:

Z 向量出場縮放入場縮放變體
推(向前)增大 1 → 1.2增大 0.75 → 1縮放穿越
拉(向後)縮小 1 → 0.8縮小 1.25 → 1反向縮放穿越

被禁止的鏡像:一個後退的出場被一個從小變大的入場所回應(拉動翻轉為推動 — 這是常見的,因為從小變大是預設的元素入場方式),以及一個推動的出場被一個過大的收回所回應。這在接縫窗口期間(剪輯 + 約 0.5 秒)約束了進入場景自身的入場動畫,而不僅僅是包裝器補間:保持進入影格已構圖,或撰寫其入場動畫以匹配符號。根據 Seam Gate 規則 7 進行驗證。

模糊邏輯(所有 Z 變體)

主體峰值模糊原因
文字縮放(標題、詞組)10px20px 會弄髒字母形狀 — 剪輯看起來像故障,而非速度
全螢幕表面(視窗、卡片、截圖)18–20px在大表面上使用較輕的模糊會讀起來像是渲染問題

在交換影格處,兩側使用相同的峰值模糊。模糊包裝器(WRAPPER),永遠不要模糊子元素。


1. 縮放穿越(向前)

Z 軸速度匹配剪輯;絕不讓兩個文字同時可見。 所有元素都在「增大」:出場文字向攝影機加速,硬切換在峰值模糊處隱藏,入場文字持續增大進入焦平面。僅限標題和短語。總時長約 0.4 秒。

階段縮放模糊透明度緩動持續時間
出場1 → 1.20 → 10px1 → 0.15power3.in(透明度:使用單獨的 none 補間)0.2 秒
剪輯 (tl.set)入場: 0.7510px出場: 0 / 入場: 0.15——
入場0.75 → 110 → 0px0.15 → 1expo.out0.5 秒

出場透明度必須是其自身的線性補間 — power3.in 會讓透明度在接近 1 的位置停留過久。入場時所有屬性共享 expo.out。

2. 反向縮放穿越(向後)

拉回鏡像:出場元素「後退」;入場元素以「過大」的狀態到來(彷彿就在攝影機後方)並縮回焦平面。所有元素都在「縮小」。用於「到場 / 轉折點」節拍 — 一句轉折台詞、一個巨大的回應、一個持久的結束狀態 — 永遠不要用於普通邊界。總時長約 0.7 秒(30% 出場 / 70% 入場)。

階段縮放模糊透明度緩動持續時間
出場1 → 0.80 → 10px1 → 0.15power3.in(透明度:使用單獨的 none 補間)約 0.2 秒
剪輯 (tl.set)入場: 1.2510px出場: 0 / 入場: 0.15——
入場1.25 → 110 → 0px0.15 → 1expo.out約 0.5 秒

模糊為 10px 文字級別;僅當兩側都是滿版表面時才使用 18–20px。

符號紀律: 進入場景以一個已構圖的影格形式,在縮回的包裝器內到達 — 在接縫窗口內禁止從小變大的介紹。階段性入場應在縮回穩定後發生,或從 ≥1 開始並縮回。

3. 切曲線(預設場景邊界)

X/Y 軸速度匹配剪輯 — 所有場景到場景邊界的預設方式,位於影片的「電流」中,而非一種強調效果。出場主角向一個方向加速,剪輯在半途中發生,入場主角繼續朝「相同」方向並減速。總時長約 0.6 秒;方向:左 / 右 / 上 / 下(預設為左)。

部分移動: 約影格的 12%(在 1920 解析度下約 230px) — 永遠不要進行全螢幕離場移動。

方向出場入場 開始 → 結束
向左x: 0 → −230x: +230 → 0
向右x: 0 → +230x: −230 → 0
向上y: 0 → −230y: +230 → 0
向下y: 0 → +230y: −230 → 0

機制:

  • 鏡像緩動: 出場 power4.in + 入場 power4.out,相同的距離和持續時間 — 相當於一個 power4.inOut 的兩半,因此速度在剪輯處精確匹配。
  • 淡出技巧: 出場透明度在其移動的約 25–30% 處完成(淡出約 0.18–0.3 秒 vs 移動 0.3–0.34 秒);入場在路徑中段以約 0.35 透明度開始。安排最後一個淡出的元素正好在剪輯處消失 — 一個沒有任何東西在移動的間隙會讀起來像死寂。
  • 出場 0.2–0.4 秒;入場 ≥ 出場。可選模糊 8–10px。
  • 舞台背景: #root 必須是不透明的(background: var(--canvas-deep, var(--canvas, #000))) — 中段窗口剪輯會打開一個總和透明度 < 1 的窗口,否則會閃白(參見 seam-craft)。

「推拉滑動」存在但違反了部分移動和中段運動相位;優先使用切曲線。

4. 瀑布剪輯(逐字切曲線)

在「單詞」粒度上的切曲線 — 用於文字到文字接縫的最強的左向剪輯。出場單詞沿其自己的曲線加速退出;入場單詞在半空中級聯進入 — 形成一道眼睛可以跨越接縫的波浪。

範圍: 在 worker 內部創作,用於一個多節拍組合(堆疊的滿版 .beat 層),不是 registry/injector 類型 — 它補間的是單詞跨度,而不是剪輯包裝器。進出文字節拍塊的邊界仍然會獲得一個正常的 registry 過渡。不計入 2–3 次過渡預算。

參數值原因
移動距離±230px(約 12% 影格)部分移動 + 速度 > 全螢幕推拉
出場0.34 秒 power4.in加速本身就是剪輯
出場淡出0.18 秒,與 x 同時開始單詞在約 25–30% 移動處消失 — 沒有拖影
出場交錯+0.022 秒 閱讀順序線條像剝離一樣,而非整體滑塊
入場0.3 秒 power4.out複合曲線的後半段 — 速度匹配
入場起始透明度0.35路徑中段點火;二進制 0→1 會產生突兀感
入場間隔0.05 秒 × 0.84 衰減加速級聯,最終穩定為已構圖狀態

規則:

  • 每個鏈條只有一個方向,沿著電流前進。反向縮放僅作為該鏈條的「到場」節拍。
  • 在構建時將所有單詞預設為 x: +230, opacity: 0 — 僅靠 immediateRender: false 會讓未啟動的單詞在靜止時可見。
  • 一個短的第一節拍可能以整行方式退出:其淡出在剪輯前約 0.02 秒結束,以便在下一個單詞點火時仍在飛馳 — 沒有死寂間隙。
  • 僅變換 / 透明度(查找安全);不透明的舞台背景適用。

5. 焦點模糊剪輯(可見的剪輯)

唯一一種剪輯本身被「看見」的變體:一個失焦模糊「尖峰」隱藏了一個單影格的硬切換 — 類似手持 DSLR 的焦距拉動。用作同一視覺主題內「相同表面」狀態切換的偶爾點綴;永遠不要用作預設邊界。

與其他變體的差異:出場元素保持「完全不透明」直到剪輯(模糊隱藏了切換 — 沒有早期淡出);緩動使用 power2.in / power2.out(柔和的視覺效果,而非動量)。

規則:

  • 僅在敘事節拍時觸發,每約 8 秒 ≤ 一次;切勿在字幕進行中或保持狀態時使用。
  • 在「峰值」模糊時剪輯(≥6px;峰值 8–12px,最大 ≤16–18px) — 在模糊上升過程中切換會暴露剪輯。
  • 一個微妙的縮放(約 1.06 的鏡頭呼吸效果)讓它看起來像光學效果。
  • 兩側方向相同 — 向量法則仍然成立。入場 ≥ 出場持續時間。
  • 模糊包裝器;切勿在一個元素的一個補間中同時使用模糊和透明度(無頭合成錯誤);切勿直接模糊 <video> 元素(請將其包裹)。

6. 瀑布入場(場景內到場 — 非接縫)

交錯的「到場」級聯:單詞 / 元素從下方(一個一致的方向)快速進入,每個元素在前一個穩定之前就開始 — 一道加速的波浪,最終穩定為一個已構圖的佈局。用於標題卡、段落開場、列表 / 功能介紹。其接縫兄弟是 §4;不要混合它們的規則:

§6 入場(到場)§4 瀑布剪輯(接縫)
透明度二進制 0→1 通過 tl.set 在入場時 — 永不淡入在路徑中段以 0.35 點火 — 淡出本身就是速度技巧
預設軸線Y,從下方X,沿著電流
出場側無單詞在鏡像的 power4.in 上加速退出

編排:

  • 重疊,不要排隊 — 下一個元素在前一個穩定的 ±2 影格內開始;間隔在級聯中「縮小」;最後一個元素瞬間到位。
  • 速度因元素權重而異 — 重型 / 錨定元素移動更遠、更久;輕量單詞 / 標點符號緊湊到位:
參數錨定 / 重型普通單詞輕量 / 標點符號
Y 偏移60–80px40–50px30–48px
持續時間0.16–0.20 秒0.13–0.16 秒0.10–0.13 秒
重疊0–2 影格間隔1 影格重疊1–2 影格重疊
  • 緩動使用 power4.out(額外乾脆可用 expo.out);在入場動畫上永遠不要使用 .inOut。
  • 每個級聯只有一個方向。
  • 將「最終」單詞拆分為片段以延長高潮;片段移動更遠。
  • 穩定後,群組通常會滑動以為下一個節拍騰出空間 — 這就是 §7。

7. 微調曲線(場景內群組滑動 — 非接縫)

慢-快-慢地重新定位一個已構圖的群組(單詞行、卡片堆疊、列表)以揭示內容或騰出空間。沒有一個內建的緩動能產生這種效果 — power4.inOut 會猛然停止。將三個補間鏈接到一個屬性上:

階段緩動距離時間感受
1 加速開始power3.in約 10%約 20%幾乎不動 — 運動被記錄,沒有衝擊
2 爆發none(線性)約 65%約 18%約 2 倍平均像素 / 影格 — 有目的感
3 尾聲power4.out約 25%約 62%衰減蠕行至靜止 — 消除猛然停止的感覺

規則:

  • 尾聲的時間 ≥ 加速開始時間的 3 倍。如果仍有猛然停止的感覺:延長尾聲的時間(不是距離)或使用 power5.out。
  • 階段 2 保持線性 — 為其添加緩動會失去爆發的對比度。
  • 在「階段 2」期間揭示新內容 — 爆發會掩蓋其出現。
  • 垂直方向使用相同比例;按比例縮放距離,保持時間比例。

選擇變體

縮放穿越反向縮放穿越切曲線瀑布剪輯
範圍場景內文字替換到場 / 轉折點節拍場景之間文字到文字接縫
Z 符號 / 軸線增大(推動)縮小(拉動)X / YX,逐字
移動 / 縮放1→1.2,然後 0.75→11→0.8,然後 1.25→1±230px±230px
峰值模糊10px 文字 / 18–20 全螢幕10px 文字 / 18–20 全螢幕8–10px 可選無
緩動power3.in / expo.outpower3.in / expo.outpower4.in / power4.outpower4.in / power4.out
感覺深入探索抵達被橫向帶著走一道橫跨接縫的波浪

反模式

不要這樣做原因
對拉動縮放使用 >1 的入場縮放並期望它縮小反向縮放「從」>1「縮小」— 如果你將縮放設為 in: 1.5,它必須從 1.5 縮小到 1.0。當你期望縮小時,這會意外地產生一個推入效果。

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

general-video

>

heygen-com/animejs

Anime.js adapter patterns for HyperFrames. Use when writing Anime.js animations or timelines inside HyperFrames compositions, registering animations on window.__hfAnime, making Anime.js seek-driven and deterministic, or translating Anime.js examples into render-safe HyperFrames HTML.

heygen-com/claude-design-hyperframes

Use when running inside Claude Design specifically. Produces a valid, brand-accurate HyperFrames video draft using pre-valid skeletons. For Claude Code / Cursor / Codex, use the `hyperframes` skill instead.

heygen-com/contribute-catalog

Author a new HyperFrames registry block (caption style, VFX block, transition, lower third) or component (text effect, overlay, snippet) and ship it as an upstream PR to the hyperframes repo. Use ONLY when the user wants to CONTRIBUTE to the public catalog — for in-project caption/transition authoring use the `hyperframes` skill, for installing existing registry items use the `hyperframes-registry` skill.

heygen-com/css-animations

CSS animation adapter patterns for HyperFrames. Use when authoring CSS keyframes, animation-delay based timing, animation-fill-mode, animation-play-state, or CSS-only motion that HyperFrames must seek deterministically during preview and rendering.

heygen-com/gsap

GSAP animation reference for HyperFrames. Covers gsap.to(), from(), fromTo(), easing, stagger, defaults, timelines (gsap.timeline(), position parameter, labels, nesting, playback), and performance (transforms, will-change, quickTo). Use when writing GSAP animations in HyperFrames compositions.

heygen-com/hyperframes

A tiled headline surface flips cell by cell under a sweeping depth field to reveal the rear headline. HyperFrames block, 1920×1080, 8s, 18 variables.

heygen-com/hyperframes

Leaves sweep through the frame and part to reveal the headline. HyperFrames block, 1920×1080, 12s, 11 variables.

heygen-com/hyperframes

GATEWAY — load FIRST before composing any HyperFrames animation or video. The high-level motion law that makes a multi-scene video feel like ONE continuous camera move instead of a stack of independently-animated slides. Covers the vector law (how you exit determines how you enter, incl. the Z scale-sign rule), the film's current, carrier elements, causal motion, the Seam Gate (build-gate enforcement), the ban on idle wobble (motion must PERFORM, not breathe), stillness-before-climax, and the sustained-motion routes. Routes to the low-level technique skills (cut-the-curve — the full catalog incl. waterfall entry + nudge curve, oversized-cursor, seam-craft). These rules SUPERSEDE generic / upstream motion guidance. [continuity, direction, vector, momentum, seam, transition, ease, performance, idle-motion, narrative-motion, film-grammar]

heygen-com/hyperframes

A single feature card orbits a dot sphere on approved Blender camera motion. HyperFrames block, 1920×1080, 10s, 4 variables.

heygen-com/hyperframes

A wireframe portal bursts open, the title comes through, then its letters swap into a second phrase. HyperFrames block, 1920×1080, 8s, 9 variables.

heygen-com/hyperframes

Glass shards fly in through fog and tile themselves into the headline. HyperFrames block, 1920×1080, 12.16s, 19 variables.

heygen-com/hyperframes

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.

heygen-com/hyperframes

An orbiting camera follows an ice logo as it breaks apart, reforms into two text moments, and fades. HyperFrames block, 1920×1080, 22.5s, 216 variables.

heygen-com/hyperframes

name: embedded-captions

heygen-com/hyperframes

A chain of bevelled cuboids rides a travelling wave as a content carousel. HyperFrames block, 1920×1080, 6.666666666666667s, 40 variables.

heygen-com/hyperframes

Turn arbitrary text — an article, notes, a topic, a brief — into a faceless explainer video: there is no site or footage to capture, so the visuals are invented per scene (typography, abstract graphics, diagrams, data-viz). Use for topic explainers, concept breakdowns, how-tos, listicles. Not a video built from a website (/product-launch-video — promo or tour). Unclear → /hyperframes.

heygen-com/hyperframes

Import Figma content into a HyperFrames composition — rendered assets, brand tokens, components, storyboard sections → reconstructed motion (frames read as states, not slides) (REST/CLI), connector-assisted motion when available, and shaders from a connector or native export. Use when the user pastes a figma.com link or asks to bring a Figma design, frame, logo, brand, or animation into a video/composition.

heygen-com/hyperframes

House-style oversized macOS cursor technique for HyperFrames launch videos. Load whenever a scene involves cursors or a pointer-led action, when kicking off a UI scene, when igniting a morph/transition/typing run with a click, or when a scene reads as static, dead, or stale and needs a cheap high-yield source of motion to carry the viewer's eye and segment them out of the stale state. Covers cursor size/look (incl. brand-motif cursors), the off-screen entry law, tip-targeting and the click tap, click-ignites-the-next-beat, and exit / cross-scene handoff.

heygen-com/hyperframes

Turn a weekly changelog .md into a finished branded changelog video (square 1080, ~45-60s, Annie VO, animated brand background, mock-UI visualizations, lowkey captions). Use when the user provides a changelog/digest markdown and wants the weekly video, or says "changelog video". Self-contained — fonts, background, lexicon, and scripts ship in this skill.

相關技能