Communitygithub.com

hyperframes-keyframes

キーフレームはポーズのコントラクトです。可視状態、連続した被写体同一性、シーク安全なランタイム、検証済みピクセルを定義します。

hyperframes-keyframes とは?

HyperFrames Keyframes は、視覚的な動き(モーション)をポーズのコントラクトとして定義し、検証するためのスキルです。このスキルは、クリップアセンブリではなく、ズーム、パン、クロップ、マスク、テキストアニメーション、SVG、3D、Canvas/WebGL など、視覚的なモーションを担当します。GSAP、CSSキーフレーム、Anime.js、WAAPI といった複数のランタイムをサポートし、シーク安全で決定論的なアニメーションを実現します。ユーザーは、被写体、ポーズ、最終状態を宣言し、最小限のメカニズムで意図した動きを証明します。`hyperframes lint`, `hyperframes check`, `hyperframes keyframes` などのCLIツールを使用して、キーフレームを検証し、スナップショットでピクセル単位の正確性を確認できます。このスキルは、特に Claude Code, Cursor, Codex などのAIエージェントと組み合わせて使用することを想定しており、エージェントが指示に従って正確なビジュアルモーションを生成・検証できるように設計されています。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/heygen-com/hyperframes/tree/main/skills/hyperframes-keyframes

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

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

ドキュメント

プラグインインストール: セットアップまたはフレッシュネスコマンドの前に、このスキルがHyperFramesプラグイン内にある場合は、プラグイン実行ルールに従ってください。スタンドアロンインストールの場合は、以下の更新手順を維持します。

HyperFrames Keyframes

キーフレームはポーズのコントラクトです:可視状態、連続した被写体同一性、シーク安全なランタイム、検証済みピクセル。

広範なシーンレシピにはhyperframes-animationを使用します。完全なコマンドドキュメントにはhyperframes-cliを使用します。実装メカニズムを選択するとき(視覚スタイルではなく)にのみreferences/keyframe-patterns.mdを参照してください。

クリエイター編集境界

キーフレームはクリップアセンブリではなく、視覚的な動きを担当します。ソース範囲のハードカット、トリム、スプライス、並べ替えは/hyperframes-coreに属します:保持範囲ごとに1つのメディア要素を作成し、data-startとdata-durationで配置し、data-media-startでソースオフセットを選択します。隣接する範囲はハードカットになります。クロスフェードは異なるトラック上のオーバーラップするクリップと視覚的な不透明度キーフレームを使用します。サウンドフェードは/hyperframes-audioを使用します。

クリエイターリクエスト真実のメカニズム
パンチイン / パンチアウトクリップ内の非タイミングのビジュアル/クロップラッパーに対して、x/yまたはパーセンテージ変換によるキーフレームscaleを使用します。ハードパンチにはset/shortトゥイーンを、スムーズな動きにはトゥイーンを使用します。
スムーズなマルチステートズームまたはリフレーム1つの被写体ラッパーを生存させ、複数のズーム/リフレーム状態をセグメントごとのイージングを持つポーズラダーとして作成します。
パン、リフレーム、またはケンバーンズカメラ移動ラッパーの平行移動とスケールをアニメーション化します。ジオメトリは作成されます。これは顔追跡や自動意味論的リフレームではありません。
チェーンされたカメラ移動1つの登録されたシーク安全タイムライン上でラベル付けされたトランスフォームビートをチェーンします。
マッチカットまたはウィップパン/hyperframes-animationがビジュアルの引き継ぎを担当し、/hyperframes-registryがプリミティブを提供します。キーフレームは作成されたジオメトリ、方向、速度を保持します。自動マッチングフレーム発見はありません。
クロップとマスクリフレーム内側のビジュアルラッパーでclip-pathまたはマスクを補間して、ソース時間を変更せずにクロップ/リフレームします。ポリゴンキーフレームはポリゴン/マスクトランジションを形成できます。
方向性ワイプカットまたはアイリス/リビールカットオーバーラップするビジュアルクリップ間でマスク/クリップ境界をアニメーション化します。/hyperframes-animationが引き継ぎの振り付けを担当します。
分割画面引き継ぎコアが配置した両方のビジュアルクリップを維持し、その内部のクロップ/マスクラッパーと仕切りジオメトリをキーフレーム化します。
一定ソースリタイム/hyperframes-coreは、レンダー安全な画像とピッチ保持サウンドのために正規化されたdata-playback-rate(0.1..10)を所有します。メディア要素全体で一定です。
ソーススピードランプ<video>/<audio>のdata-automation内のrateレーン(クリップ秒単位のt、v 0.1..10、対数補間)。これは一定レートよりも優先されます。
フリーズ / ホールドビジュアルポーズ、最終ソースフレーム、または完了したサブコンポジションを保持できます。任意の中間ソースフリーズはサポートされていません。静止画/派生セグメントをプリプロセスし、それを独自のクリップとして配置し、別のソース範囲で再開します。

画像と音声を一緒に編集する場合は、/hyperframes-core、このスキル(視覚的な動き用)、および/hyperframes-audio(フェード、クロスフェード、ボリュームオートメーション、ダッキング/カービング、または配置されたトラックへのエフェクト用)をロードします。

視覚的なトランジションやクロッピング処理は、時間的なソーストリムやスプライスではありません。/hyperframes-coreはタイムライン、クリップタイミング、ソース範囲を所有します。キーフレームは、それらのクリップ内のラッパー上の可視的な引き継ぎやクロップのみをアニメーション化します。コピー可能な画像/音声複合レシピについては、/hyperframes-core → references/creator-editing-recipes.mdを使用してください。

手順

  1. アニメーション化する被写体、可視状態、最終状態、ランタイムを特定します。
  2. プロンプトを証明する最小のメカニズムを選択します。メカニズムが不明確な場合のみreferences/keyframe-patterns.mdを読んでください。
  3. 宣言されたランタイム内でシーク安全なキーフレームを作成します。同期的に構築し、ランタイムインスタンスを登録します。
  4. hyperframes lint、hyperframes check、hyperframes keyframes、1つのフォーカスされた--shot、および証明時点のスナップショットで検証します。
  5. 証明が失敗した場合は、ソースキーフレームを修正し、レンダリング前に最も小さな失敗診断を再実行します。

コントラクト

  • 動く被写体に名前を付けます。
  • 意図した動き(最終状態を含む)を証明するために必要なポーズに名前を付けます。
  • 隠れたヘルパー状態ではなく、可視チャンネルをキーフレーム化します。
  • 連続性が重要な場合は、オブジェクトIDを保持します。
  • 意図した動きが置き換えまたはディゾルブである場合にのみクロスフェードします。
  • 読み取り可能または意味論的な状態を、見えるのに十分な時間保持します。
  • 最終フレームはアニメーションの一部であり、クリーンアップではありません。
  • 要求がない限り、静止状態にリセットしないでください。
  • 要求がない限り、黒で終了しないでください。
  • スターターシーンを編集する場合は、再設計を要求されない限り、レイアウト、コピー、アセット、色、最終状態を保持します。

ランタイムルール

GSAP:

  • ページ読み込み時に同期的に構築する
  • gsap.timeline({ paused: true })を使用する
  • window.__timelines[compositionId]として登録する
  • レジストリキーはdata-composition-idと一致する必要があります
  • レンダリングクリティカルなモーションにtl.play()を呼び出さないでください
  • 繰り返しは有限に保ってください

CSSキーフレーム:

  • 有限の持続時間と反復回数
  • 決定論的な遅延
  • animation-fill-mode: both
  • タイミングがクリップに属する場合はdata-startを使用する

Anime.js:

  • 同期的に作成する
  • autoplay: false
  • 有限の持続時間とループ
  • すべてのインスタンスをwindow.__hfAnimeにプッシュする

WAAPI:

  • 有限のduration
  • fill: "both"
  • 決定論的な構築
  • テキストサーフェスはWAAPIをリストしません。--shotで検証します(WAAPIをシークします)

レンダリングクリティカルなモーションに絶対使用しないもの:

  • Date.now()
  • performance.now()
  • シードされていないMath.random()
  • ホバー/スクロールトリガー
  • タイマー
  • 非同期作成タイムライン
  • 未登録のrequestAnimationFrame
  • 無限ループ

GSAP スケルトン

const root = document.querySelector("[data-composition-id]");
const compositionId = root.dataset.compositionId;
const tl = gsap.timeline({ paused: true });

tl.addLabel("state-a", 0);
tl.to(".subject", {
  keyframes: [
    { x: 0, opacity: 1, duration: 0.2 },
    { x: 120, opacity: 1, duration: 0.4, ease: "power2.out" },
    { x: 100, opacity: 1, duration: 0.2, ease: "power2.inOut" },
  ],
  ease: "none",
});

window.__timelines = window.__timelines || {};
window.__timelines[compositionId] = tl;

意味論的な状態にはラベルを使用します。チェーンされた遅延の代わりに位置パラメータを使用します。同じプロパティに触れる後続のfrom()/fromTo()トゥイーンにはimmediateRender: falseを使用します。

キーフレーム形式

  • 配列キーフレーム:ステップごとの持続時間/イージングを持つポーズラダー。
  • パーセンテージキーフレーム:1つのトゥイーン内の正確なタイミング。
  • プロパティ配列:コンパクトなマルチストップ変更。
  • 各ストップが独自のイージングを持つ場合、親でease: "none"。
  • すべてのセグメントが同じ感触を共有する必要がある場合のeaseEach。

例から数値距離やタイミングをコピーしないでください。実際のコンポジションジオメトリと持続時間から導出してください。

2つのボックス間を移動する1つの被写体の場合は、1つの連続トランスフォームトゥイーンまたはFLIPを優先します。ビューアが異なるビートを感じるべき場合にのみ、x/y/scaleを複数のイージング付きキーフレームに分割します。すべてのセグメントは速度を変更し、ヒッチとして読まれる可能性があります。

チャンネル

コンポジター/ビジュアルチャンネルを優先する:x/y/z、xPercent/yPercent、scale、rotationX/Y/Z、skew、transformOrigin、svgOrigin、opacity、autoAlpha、clip-path、マスク、CSS変数、SVGパス/ダッシュ値、カメラトランスフォーム、シェーダーユニフォーム。

レイアウト/ライフサイクルチャンネルを避ける:top/left/right/bottom、width/height、margin/padding、display、visibility、後期DOM作成、被写体モーションを行うヘルパーオーバーレイ。

可視性の変更には、登録されたシーク可能なGSAPタイムライン上のautoAlpha、または明示的な境界でのゼロ持続時間tl.set()を使用します。クリップ以外の要素またはクリップ内のラッパーのみをターゲットにします。.clip自体は決してターゲットにしないでください。生のvisibilityをトゥイーンしないでください。また、displayをトゥイーンしないでください。

メカニズムの選択

プロンプトを証明する最小のメカニズムを選択してください:

ニーズメカニズム
同じ被写体がボックスまたは階層を変更する共有要素 / FLIP
被写体が可視ルートを移動するパス移動
ストロークが成長またはトレースするストローク描画
形状が別の形状になる形状補間
リビール境界が可視であるクリップ、マスク、またはシェーダーユニフォーム
多くのアイテムが順序を持って移動するスタガー / インデックス付き遅延
テキスト自体が移動する行、単語、文字、またはバンド細分化
サーフェスが曲がる、伸びる、またはクロップされる親/子カウンタートランスフォーム
UIに状態がある明示的なステートマシン
シーンに深さがあるDOM 3D、Three.js、またはWebGLカメラ/オブジェクトキーフレーム

メカニズムは組み合わせることができますが、それぞれがアイデアを明確にする必要があります。装飾は証明ではありません。

タイミング

  • 原因や方向を明確にする場合にのみ予備動作。
  • 加速は静止から始まります。
  • ピーク証明はメカニズムを間違いなく示します。
  • フォロースルーはエネルギーと方向を伝えます。
  • オーバーシュートは、被写体が弾力性または触感を持つべき場合にのみ使用します。
  • 等速パス移動には通常ease: "none"が必要です。
  • 離散UI状態には通常、シャープなイーズアウトが必要です。
  • 繰り返し要素には、同一のタイミングではなく、順序付けられたオフセットが必要です。
  • 最終ロックアップは、遷移ポーズよりも長いホールドが必要です。
  • 滑らかさとは、同じ被写体上の連続した速度を意味します。
  • 同じトランスフォームプロパティを書き込むトゥイーンを重ねないでください。意図的で検証済みの場合を除きます。
  • 同じヒーローサーフェスがスケーリングまたは移動中に、大きなclip-path/マスクの変更をアニメーション化しないでください。メインの動きが落ち着いた後に、ネストされたリビールを使用します。

テキスト

ラインボックス、単語間隔、可読性、最終的なフィットを保持します。テキストが内部で移動する場合は、テキストの周りの装飾だけでなく、グリフまたはマスクされたバンドを移動します。読み取り可能なフレームをスナップショットします。

SVG

ストローク成長にはDrawSVGPluginを優先し、次にstroke-dasharray/stroke-dashoffsetを優先します。形状補間にはMorphSVGPluginを優先します。必要に応じてプリミティブをパスに変換し、複雑なシルエットをより単純な部分に分割します。

3D

スケールだけでは偽の奥行きです。安定した親にパースペクティブ、transform-style: preserve-3d、z移動、回転、カメラ/ワールドモーション、オクルージョン、およびオブジェクトが交差するときのレイヤー順序を使用します。

奥行き関係を公開する1つまたは2つの診断角度を使用します。角度付き証明が奥行きの交差を示さない場合は、z/カメラ/オクルージョンを改善します。

Canvas / WebGL

決定論的状態を通じて、カメラ位置、カメラターゲット、オブジェクトトランスフォーム、マテリアル不透明度、シェーダーユニフォーム、ポストプロセス強度をキーフレーム化します。HyperFrames時間からレンダリングします。マーカーボックスが内部のキャンバスモーションを見ることができないため、--ghostを使用します。

CLI 証明

npx hyperframes lint
npx hyperframes check
npx hyperframes keyframes .
npx hyperframes keyframes . --json
npx hyperframes keyframes . --runtime all
npx hyperframes keyframes . --selector "<selector>" --shot "<file>" --samples <n>
npx hyperframes keyframes . --selector "<selector>" --shot "<file>" --layout strip --from <t0> --to <t1>
npx hyperframes keyframes . --shot "<file>" --ghost --angle <angle>
npx hyperframes snapshot . --at <times>

実際のアニメーション被写体には<selector>を選択します。最初のフレーム、証明ポーズ、最終マイナスホールド、正確な最終には<times>を選択します。深さを証明する必要がある場合のみ<angle>を選択します。

ツール証明内容
keyframesターゲット、明示的な停止、パス、トレース、構成された親/子モーション、CSS停止、Anime登録
--shotゴースト、ルート形状、時間間隔、DOM 3D投影、フォーカスされたセレクター証明
--layout stripその場でのモーション、オーバーラップ、接触、微妙なスケール/不透明度、テキストウェーブ
--ghostキャンバス、WebGL、シェーダーモーション、レンダリングされた3D
snapshot --atマスク、テキスト可読性、完全な状態、最終ロックアップ、黒/リセットテール

セレクター証明が次のように見える場合

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

Leaves sweep through the frame and part to reveal the headline. HyperFrames block, 1920×1080, 12s, 11 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

The technique catalog: five velocity-matched SEAMS (zoom-through, INVERSE zoom-through, cut-the-curve, waterfall cut, rack-focus blur-cut) plus the two in-scene techniques — waterfall ENTRY (staggered arrival cascades for title cards / segment openers) and the nudge curve (slow-fast-slow three-phase group slides). Covers partial-travel (~12% of frame) velocity matching via mirrored power4 eases, the Z scale-sign rule, size-scaled blur (10px text / 18-20px full-frame), word-by-word staggered cuts, cascade pacing by element weight, and the 10/65/25 slide ratio. Read before authoring any transition, text-beat handoff, kinetic text entry, or group reposition. [depth, zoom, inverse-zoom, scale-sign, mirrored-zoom, rack-focus, pacing, velocity, cut-the-curve, waterfall, stagger, cascade, kinetic-text, title-card, segment-opener, nudge, slide, easing, group-motion, z-depth, motion-graphics, cinematic, transition, blur, directional-continuity]

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

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

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

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

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

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

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

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]

関連スキル