Communitygithub.com

Cut the Curve — テクニックカタログ

5 つの速度一致型 SEAM テクニック(ズームスルー、逆ズームスルー、カーブカット、ウォーターフォールカット、ラックフォーカスブラーカット)と 2 つのシーン内テクニック(ウォーターフォールエントリー、ナッジカーブ)を収録。部分移動、Z スケールサイン則、ブラー、ワード単位のカット、カスケード、スライド比をカバー。

Cut the Curve — テクニックカタログ とは?

このスキルは、速度一致型カット(SEAM)とシーン内モーションテクニックの包括的なカタログを提供します。Claude Code、Cursor、Codex などの AI エージェントが、トランジション、テキストビートのハンドオフ、キネティックテキストのエントリー、グループの再配置をオーサリングするための厳密なパラメータとメカニズムを定義しています。カタログには 5 つの SEAM テクニックが含まれています: ズームスルー(Z 軸前方)、逆ズームスルー(Z 軸後方)、カーブカット(X/Y 軸、デフォルトのシーン境界)、ウォーターフォールカット(X 軸、ワード単位)、ラックフォーカスブラーカット(あらゆる軸、可視カット)です。さらに、ウォーターフォールエントリー(Y 軸、タイトルカードやセグメントオープナー用の段階的到着カスケード)とナッジカーブ(スローファストスローの 3 フェーズグループスライド)の 2 つのシーン内テクニックが含まれています。各テクニックは、スケール、移動距離、ブラー、イージング、継続時間などの正確なパラメータを指定しており、GSAP コードテンプレートも提供されています。Z 軸のスケールサイン則や部分移動など、速度一致のための重要なルールもカバーされています。このスキルは、速度、連続性、運動量の原則に従い、プロフェッショナルなモーショングラフィックスとシネマティックなトランジションを保証します。推奨されないアンチパターンも列挙されています。

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

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Cut the Curve — テクニックカタログ は何をしますか?

5 つの SEAM テクニック、1 つの原則: カットはピーク速度で、カットの両側で方向と速度を一致させる — さらに 2 つのシーン内テクニック(§6 到着、§7 スライド)。 SEAM の法則 — ベクトル法則、カレント、台帳、シームゲート — は motion-doctrine に記述されています。まずそちらをお読みください。このスキルはパラメータとメカニズムを扱います。 すべての GSAP コードテンプレート(ワーカー + レジストリ): 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(スケール)/dt の符号がカット全体で一致している必要があります:

Z ベクトル出口スケール入口スケールバリアント
押す(前方)拡大 1 → 1.2拡大 0.75 → 1ズームスルー
引く(後方)縮小 1 → 0.8縮小 1.25 → 1逆ズームスルー

禁止ミラー: 後退する出口が小さくからの成長で応答される(プルがプッシュに反転 — 一般的なもの。小さくからの成長がデフォルトの要素エントランスであるため)、そして押す出口が特大の収縮で応答される。これにより、シームウィンドウ(カット + 約 0.5 秒)中に、ラッパーツイーンだけでなく、入ってくるシーン自身のエントランスがバインドされます。入ってくるフレームを構成されたまま保持するか、そのエントランスを符号に一致するようにオーサリングしてください。シームゲートルール 7 に従って確認してください。

ブラーロジック(すべての Z バリアント)

被写体ピークブラー理由
テキストスケール(見出し、ワードグループ)10px20px では文字がにじむ — カットが速度ではなくグリッチとして読まれる
フルフレームサーフェス(ウィンドウ、カード、スクリーンショット)18–20px大きなサーフェスでの軽いブラーはレンダリングの不具合として読まれる

スワップフレームで両側に同じピークブラー。ラッパーをブラーし、子要素には決してブラーをかけない。


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、同じ距離と継続時間 — 1 つの power4.inOut の 2 つの半分であり、速度がカットで正確に一致する。
  • フェードトリック: 出口の不透明度は移動の約 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 参照)。

push-slide は存在するが、部分移動とモーション途中フェーズに違反する。カーブカットを推奨する。

4. ウォーターフォールカット(ワード単位のカーブカット)

ワード粒度でのカーブカット — テキスト間シームのための最強の左方向カット。出口のワードは独自のカーブでランプアウトし、入口のワードは飛行中にカスケードインする — 目がシームを横切る波。

スコープ: 1 つのマルチビートコンポ(積み重ねられたフルフレーム .beat レイヤー)内でワーカーがオーサリングする。レジストリ / インジェクタータイプではない — クリップラッパーではなくワードスパンをツイーンする。テキストビートブロックへの境界とそこからの境界は、通常のレジストリトランジションを取得する。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 減衰加速するカスケード、構成されて解決する

ルール:

  • チェーンごとに 1 方向、カレントに乗る。逆ズームはチェーンの到着ビートのみ。
  • ビルド時にすべてのワードを x: +230, opacity: 0 にプリセットする — immediateRender: false だけでは未開始のワードが静止状態で表示されたままになる。
  • 短い最初のビートは行全体で終了してもよい。そのフェードはカットの約 0.02 秒前に終了するため、次のワードが点火するときにまだストリーキングしている — デッドギャップなし。
  • トランスフォーム / 不透明度のみ(シークセーフ)。不透明なステージグラウンドが適用される。

5. ラックフォーカスブラーカット(可視カット)

カットが見える唯一のバリアント: デフォーカスブラーのスパイクが 1 フレームのハードスワップを隠す — ハンドヘルド DSLR フォーカスプル。同じビジュアルテーマ内の同一サーフェスの状態スワップのための時折の華やかさとして使用する。デフォルトの境界としては使用しない。

他のものとの違い: 出口はカットまで完全に不透明のまま(ブラーがスワップを隠す — 早期フェードなし)。イージング power2.in / power2.out(ソフトな光学、運動量ではない)。

ルール:

  • ナラティブビートでのみ発火。約 8 秒に 1 回以下。キャプション中やホールド中には決して使用しない。
  • ピークブラー(≥6px。ピーク 8–12px、最大 ≤16–18px)でカットする — 上がり途中でスワップするとカットが見える。
  • 微妙なスケール(約 1.06 のレンズブリージング)で光学効果として売り込む。
  • 両側で同じ方向 — ベクトル法則は依然として有効。入口 ≥ 出口の継続時間。
  • ラッパーをブラーする。1 つの要素でブラーと不透明度を 1 つのツイーンで同時に行わない(ヘッドレスコンポジットバグ)。<video> を直接ブラーしない(ラップする)。

6. ウォーターフォールエントリー(シーン内到着 — シームではない)

段階的到着カスケード: ワード / 要素が下方から(一貫した 1 方向)鞭のように飛び込む。それぞれが前のものが落ち着く前に開始する — 加速する波が構成されたレイアウトに解決する。タイトルカード、セグメントオープナー、リスト / 機能イントロ。シームの兄弟は §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–2f ギャップ1f オーバーラップ1–2f オーバーラップ
  • イージング power4.out(追加のスナップには expo.out)。入口に .inOut は使用しない。
  • カスケードごとに 1 方向。
  • 最後のワードをフラグメントに分割してクライマックスを延長する。フラグメントはより遠くに移動する。
  • ポストセトル後、グループは通常、次のビートのためのスペースを作るためにスライドする — それが §7。

7. ナッジカーブ(シーン内グループスライド — シームではない)

構成されたグループ(ワード行、カードスタック、リスト)のスローファストスロー再配置。コンテンツを明らかにするか、スペースを作る。単一の組み込みイージングでは生成されない — power4.inOut は停止にぶつかる。1 つのプロパティに 3 つのツイーンを連鎖させる:

フェーズイージング距離時間感触
1 ランプインpower3.in約 10%約 20%ほとんど動かない — モーションが登録される、衝撃なし
2 バーストnone(リニア)約 65%約 18%平均の約 2 倍 px/フレーム — 意図的
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
感触通過する到着する横に運ばれるシームを横切る波

アンチパターン

してはいけないこと代わりに
カーブカットの代わりにプッシュスライドを使用する(全体移動、シームでの速度ゼロ)カーブカットは速度を一致させ、部分移動のみを使用する
ウォーターフォールカットで出口が消えるまで入口ワードを隠す(デッドギャップ)入口は出口のフェードが完了する前に点火する。波を維持する
Z バリアントで不透明度を 0 までフェードする(ブラーを無効にする)不透明度 0.15 で保持する。ブラーがスワップを隠す
ズームスルーですべてのプロパティに power3.in を使用する(不透明度が長すぎる)出口不透明度は個別の none(リニア)ツイーンにし、約 0.18 秒で 0.15 にする
ラックフォーカスカットで早期フェードする(カットを露出する)出口はブラーがピークに達するまで完全に不透明のままにし、その後ハードスワップする
ウォーターフォールエントリーで z ベクトルを使用する(回りくどい)Y、下方からの一貫した方向を維持する。ウォーターフォールエントリーは到着であり、シームではない

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.

関連スキル