Communitygithub.com

heygen-com/hyperframes (Remotion → HyperFrames 変換)

既存の Remotion(React)コンポジションのソースを HyperFrames HTML に移植します。明示的に Remotion ソースの移植/変換/移行/翻訳を依頼された場合にのみ使用してください — 一方向、Remotion 限定です。軽く Remotion に言及しただけ、参考コードのみ、または「Remotion 動画のようなものを作って」という場合は新規ビルド(/general-video)となります。不明な場合は → /hyperframes。

hyperframes (Remotion → HyperFrames 変換) とは?

このスキルは、Remotion(React ベース)の動画コンポジションを HyperFrames(HTML + GSAP)のコンポジションに変換するための専用ツールです。変換は機械的で、一般的なコンポジションの約 80% は直接対応する HyperFrames の API が存在します。スキルは変換マッピングを提供するとともに、損失の大きい 20% のパターンを拒否し、代わりにランタイム相互運用パターンを推奨します。このスキルはまた、階層化されたテストコーパス(T1~T4、計 4 つのフィクスチャ)を備えており、SSIM 閾値に対して変換の品質を評価します。変換を実行する前に、必ず評価を実行して、視覚的な忠実度が検証済みのベースラインを満たしていることを確認する必要があります。このスキルは、Remotion から HyperFrames への一方向の移行のみをサポートしており、他のフレームワークからの変換や逆方向の変換はサポートしていません。

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

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

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

ドキュメント

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

まず、このスキルを最新に保ってください — ユーザーに確認してから実行: npx hyperframes skills update remotion-to-hyperframes。すべてが最新の場合は高速な no-op です。それ以外の場合は、このスキルとそれが依存するコアドメインスキルを、それらに依存する前に更新します。

Remotion → HyperFrames

正面玄関は /hyperframes です。 既存の Remotion(React)コンポジションのソースを HyperFrames に一方向で移植する場合にのみ使用します。新しいコンポジションを作成する場合、Remotion 以外のソース(After Effects、Framer Motion、プレーンな React/CSS — 変換する Remotion ソースがありません)から再作成する場合、軽く Remotion に言及しただけの場合、または不確かな場合 → 最初に /hyperframes を読んでください。インテントレイヤーがすべてのルート決定を行います。

概要

Remotion(React ベース)の動画コンポジションを HyperFrames(HTML + GSAP)のコンポジションに変換します。ほとんどの Remotion イディオムには直接対応する HyperFrames の同等機能があり、変換は典型的なコンポジションの約 80% で機械的に行われます。このスキルは、マッピングをエンコードし、損失の大きい 20% を拒否することで保護します。HF のシーク駆動モデルに適合しないパターンは変換を拒否し、代わりに PR #214 のランタイム相互運用パターンを推奨します。

このスキルには、階層化されたテストコーパス(T1~T4、計 4 つのフィクスチャ)が付属しており、測定された SSIM 閾値に対して変換を評価します。評価を実行せずに変換しないでください — 「見た目は正しい」が、検証済みベースラインより 0.05 SSIM 低いレンダリングは、静かに間違っています。

使用するタイミング

ユーザーが Remotion からの移行を明示的に依頼した場合にのみこのスキルを使用してください。 トリガーフレーズの例:

  • 「Remotion プロジェクトを HyperFrames に移植して」
  • 「この Remotion コードを HyperFrames に変換して」
  • 「Remotion から移行したい」
  • 「この Remotion コンポを翻訳して」
  • 「これを HyperFrames HTML として書き直して」

以下の場合はこのスキルを使用しないでください:

  • (a) ユーザーが 新しい HyperFrames コンポジションを作成している場合(類似の Remotion 動画を持っている、または A/B テストしている場合でも)
  • (b) ユーザーが移行を依頼せずに Remotion に軽く言及しただけの場合
  • (c) ユーザーが翻訳を依頼せずに Remotion コードを参考資料として共有した場合
  • (d) ユーザーが「Remotion の動画と同じものを」と依頼し、ソースの移行を明示的に依頼していない場合 — 新しい HyperFrames ビルドとして扱います

サポート外(断ってください — このスキルの役割ではありません):

  • 逆方向。 HyperFrames コンポジションを Remotion(または他のフレームワーク)にエクスポートすることはワークフローではありません — 変換は Remotion → HyperFrames のみです。その旨を明確に伝えてください。
  • Remotion 以外のソース。 After Effects プロジェクト(.aep)、Framer Motion / プレーン React / CSS アニメーション、または他のツールのソースは Remotion コンポジションではありません — 変換する Remotion ソースがありません。/general-video を使用してネイティブに再作成するか、HyperFrames で表現できない場合は断ってください。

不明な場合は、代わりに /general-video(一般的な HyperFrames 作成フロー)を使用してネイティブな HyperFrames コンポジションを作成することをデフォルトにしてください。

ワークフロー

ステップ 1: ソースを lint する

Remotion ソースディレクトリに対して scripts/lint_source.py を実行します。lint は、クリーンに変換できないパターンを検出します:

  • ブロッカー(拒否 + 相互運用を推奨): useState、useReducer、空でない依存関係を持つ useEffect/useLayoutEffect、非同期 calculateMetadata、サードパーティの React UI ライブラリ(MUI、Chakra、Mantine、antd、shadcn、Radix、NextUI)
  • 警告(構造を削除して変換): @remotion/lambda 設定、delayRender、useCallback、useMemo、カスタムフック
  • 情報(メモ付きで変換): staticFile、interpolateColors

ブロッカーが 1 つでも発生したら、停止してください。references/escape-hatch.md を読み、推奨メッセージを提示してください。警告は変換を停止しません — ステップ 3 で問題のある構造を削除し、そのギャップを TRANSLATION_NOTES.md に記録します。@remotion/lambda 設定は標準的な警告ケースです。スキルはインポートと renderMediaOnLambda(...) 呼び出しを削除しますが、コンポジションの残りの部分は変換します。

ステップ 2: 変換を計画する

references/api-map.md を読んでください — すべての Remotion API とその HF 同等機能、またはトピックごとのリファレンスの索引です。ソースが使用しているものに基づいて、必要なトピックリファレンスを特定します:

ソースに含まれるものロードするリファレンス
Composition、defaultProps、schema、calculateMetadataparameters.md
Sequence、Series、Loop、AbsoluteFill、Freezesequencing.md
useCurrentFrame、interpolate、spring、Easing、interpolateColorstiming.md
Audio、Video、Img、IFrame、staticFile、delayRendermedia.md
TransitionSeries、@remotion/transitionstransitions.md
@remotion/lottielottie.md
@remotion/google-fonts/<Family>、Font.loadFont、@font-facefonts.md

すべてをロードせず、特定のソースが必要なものだけをロードしてください。

テーブルにマッピングされていない視覚効果については、ライブカタログを検索してください。 ソースが HF API に同等機能のない外観をペイントする場合 — スキャンライン/CRT オーバーレイ、グリッチまたは色収差パス、シェーダーワイプ、フィルムグレイン処理 — GSAP で手書きする前に、npx hyperframes catalog --query "<効果を平易な英語で>" --json を実行してください。この検索には 何もインストールする必要はありません。プロジェクト、事前の add、アカウントは不要です。任意のディレクトリからホストされているレジストリ全体(約 400 のブロックとコンポーネント)をランク付けします。transitions.md はすでに npx hyperframes add sdf-iris を介して clockWipe() / iris() にこのルートを使用しています。実際のコンポーネントは手書きの近似よりもソースに近いため、通常は SSIM を下げるのではなく上げます — ただし、ステップ 4 のレンダリング差分が依然として判定基準です。検索で適切なものが見つからなかった場合はエフェクトを手書きし、どちらの場合も代替を TRANSLATION_NOTES.md に記録してください。

ステップ 3: HF コンポジションを生成する

index.html を出力します:

  • ルート <div id="stage"> には、コンポジションの data-composition-id、data-start="0"、data-duration(秒単位)、data-fps、data-width、data-height、およびスカラープロパティごとに 1 つの data-* を含めます。
  • シーンごとに 1 つのホスト <div> には、data-composition-src="compositions/<scene>.html" と data-start / data-duration / data-track-index を含めます。ルートにはネストされたレイアウトは保持しません。
  • シーンごとに 1 つの compositions/<scene>.html(<template> サブコンポジション): レイアウト用のインライン <style>(CSS はアニメーション化されるすべてのプロパティの from 状態を設定します)、そのマークアップ、およびシーンのローカル時間内の 1 つの一時停止された gsap.timeline({paused: true})。すべての Remotion の useCurrentFrame() 派生は、そのタイムライン上のシーン内のオフセットでのトゥイーンになります。
  • 各シーンファイルに window.__timelines["<scene-id>"] = tl;、ルート自身の(おそらく空の)タイムライン用に window.__timelines["<composition-id>"]。

カスタム React サブコンポーネントは、プロップインターフェースをテンプレートとして使用して、繰り返し HTML としてインライン化します(インスタンスごとの data-* パターンについては parameters.md を参照)。

ステップ 4: 検証する

評価ハーネスを実行します — 完全なガイドは references/eval.md を参照してください。簡易パス:

# Remotion ベースラインをレンダリング(フィクスチャで npm install 後)
cd remotion-src && npx remotion render <CompositionId> out/baseline.mp4

# HF 翻訳をレンダリング
cd ../hf-src && npx hyperframes render --skill=remotion-to-hyperframes --output ../hf.mp4

# SSIM 差分
../../scripts/render_diff.sh ./remotion-src/out/baseline.mp4 ./hf.mp4 ./diff

閾値: ソースの複雑度ティアの p05 より約 0.02 低い値(eval.md の検証済み閾値テーブルを参照)。差分が失敗した場合は、scripts/frame_strip.sh を実行してどのフレームが乖離したかを確認し、関連するタイミング/シーケンス/メディアリファレンスを再読してください。

重要: 両方のレンダリングは、一致するピクセル形式を使用する必要があります。Remotion ソースの remotion.config.ts で Config.setVideoImageFormat("png") + Config.setColorSpace("bt709") を設定してください — そうしないと、差分は変換の忠実性ではなく、エンコーダの違い(約 0.05 SSIM の低下)を測定することになります。

ステップ 5: ギャップを文書化する

クリーンに変換できなかったもの(削除されたボリュームランプ、近似されたカスタムプレゼンテーション、代替されたフォント)は、HF 出力の隣に TRANSLATION_NOTES.md を書き込みます。フォーマットについては references/limitations.md を参照してください。

このスキルが明示的に行わないこと

  • React ステートマシンの変換。 useState + useEffect を介してアニメーションを駆動するコンポジションは、HyperFrames のシーク駆動モデルにおける決定論的なフレームキャプチャターゲットではありません。ランタイム相互運用パターンを推奨します。
  • HyperFrames と並行した Remotion のレンダリングパイプラインの実行。 これは PR #214 のランタイム相互運用パターンです — このスキルの lint に失敗するコンポジションのための別のソリューションです。

(@remotion/lambda はブロッカーでは_ありません_ — Lambda 設定はデプロイであり、アニメーションではありません。スキルはそれを警告として削除し、残りを変換します。references/escape-hatch.md を参照してください。)

自分の翻訳を評価する方法

テストコーパスオーケストレーターを実行します:

./assets/test-corpus/run.sh

T1、T2、T3(レンダリング + 差分)と T4(lint 検証)を実行し、ティアごとの合格/不合格テーブルを出力し、集約 JSON レポートを出力します。これを使用して、クリーンチェックアウトでスキルがエンドツーエンドで動作していることを確認し、リファレンスを編集した後の回帰チェックとして使用します。

検証済みベースライン(2026-04-27 現在):

ティアコンポジションの形状平均 SSIM閾値
T1単一要素フェードイン0.9740.95
T2マルチシーン + spring + オーディオ + 画像0.9850.95
T3データ駆動、カスタムサブコンポーネント、カウントアップ0.9530.90
T4エスケープハッチ(8 lint ケース)8/8 合格n/a

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]

関連スキル