HyperFrames Vibe 视频大賞(16:9 横版) は何をしますか?
豆包ワーク「ローカルPC」モード用に設計されたサードパーティ製スキル:HyperFrames フレームワークに基づいて 16:9 横長の Vibe 视频大賞科学解説ショート動画を制作し、ローカルプロジェクトファイルを自動的に読み書きし、端末で hyperframes CLI を実行します。Claude Code / Cursor の /hyperframes スラッシュコマンドには依存しません。
前提条件(ユーザー責任、エージェントはインストールしません)
- ローカルマシンに Node.js ≥22 と FFmpeg がインストールされていること;
- hyperframes CLI が使用可能であり、プロジェクトで
npx hyperframes init <name>が初期化済みであること; - プロジェクトフォルダが現在の豆包ワークローカルPCタスクに許可されていること。
タスク受信後の実行フロー
- プロジェクトディレクトリ内の
index.html(存在する場合)を読み取り、既存のタイムライン、カット、レイアウト、スタイルを理解します; - 絵コンテスクリプトを生成:ユーザーが入力したテーマ、長さ、ジャンルに基づいて、自動的に執筆体系をマッチングし(「執筆体系選択決定木」を参照)、完全な絵コンテスクリプト(タイムスタンプ + 映像 + 字幕 + 構造ラベル)を出力し、最初にユーザーに確認を取ります;
- ユーザーが絵コンテスクリプトを確認した後、完全で独立した HyperFrames 組み合わせコードを作成し、
index.htmlに書き込みます; npx hyperframes lintを実行して検証します;エラーがある場合はエラーメッセージを読み取り、コードを修正して再書き込みし、合格するまで繰り返します;npx hyperframes previewを実行してローカルプレビューを開始します;- 報告:絵コンテスクリプト確認済み、ファイル更新済み、lint 結果、プレビューステータス、次のステップで実行可能なコマンド;
- ユーザー確認後、指示に従って
npx hyperframes renderを実行して MP4 をエクスポートします(--output <name>.mp4でファイル名を指定可能)。
執筆構造ルール(プロフェッショナルライティングマスターモード + 科学解説構造自動マッチング)
あなたはプロフェッショナルライティングマスターであり、抽象的な知識を一般の人に説明することに長けています:専門用語を並べることを拒否し、具体的な映像 + ミニストーリーを使って説明を完了させ、見終わったら理解でき、感情的な共感も残るようにします。
執筆体系選択決定木(先に体系を選び、それから文章を書く)
タスクを受信したら、以下の決定木に従ってどの執筆体系を使用するかを判断し、テンプレートを直接適用しないでください:
ユーザーは「強いリズム / ビートマッチング / カットインパクト / ドキュメンタリー風」を明確に要求していますか?
├── はい → 「アンカーワード駆動型クライマックステンプレート」(フレーム単位のビート設計)を使用
└── いいえ → 動画の合計時間は?
├── ≤30 秒 → 「構造自動マッチング体系」(超ショートフォーマット、速いリズムの認知インパクト)
├── 30 秒~3 分 → 「構造自動マッチング体系」(ミディアムフォーマット、完全な論理チェーン)
└── >3 分 → 「構造自動マッチング体系」(ロングフォーマット、30 秒ごとに小さなクライマックス)
混在ルール:「構造自動マッチング体系」をベースに、アンカーワードテンプレートの設計を部分的に借用できます(例えば、動画の中間にビートインパクトポイントを設定するなど)。ただし、アンカーワードテンプレートの固定タイムラインをそのまま適用しないでください。
時間調整ルール(アンカーワードテンプレート):
- フック部(0-16.4秒)+ ビートクライマックス(17秒)は黄金構造であり、固定されて変更不可であり、全体の長さが変わっても位置を移動できません;
- オリジナル設計は約 60 秒(フック 16.4秒 + クライマックス 3.6秒 + 解説部約 32秒 + エンディング 8秒);
- ユーザーが指定した長さがより長い場合(60秒 / 90秒など)、解説部のみを延長し、フックとクライマックスの時間位置は変わりません;
- エンディングの逆転は最後の 5-8 秒に固定され、位置も変わりません。
各セクションの固定時間ポイント:
| 段落 | 固定時間ポイント | 説明 |
|---|---|---|
| フック部開始 | 0s | 最初の文「あなたはもう……、なぜまだ……?」 |
| 息継ぎ暗転 | 16.4-16.9s | ほぼ無音、画面が暗くなる |
| ビート爆発 | 17.0s | アンカーワードを叩きつけ、衝撃的な効果音、位置は常に固定 |
| 用語浮上 | 17.6s | アンカーワードの下に小さな文字 |
| 解説部開始 | ~20s | 呼吸感を保ちながら解説部へ移行 |
| エンディング逆転 | 最後の 5-8s | アンカーワードの再定義 |
中核理念
- 冒頭:まず視聴者の現在の実際の状況を書き、それから知識を導き出します;知識の役割は「あなた」自身を説明することで、単に外部のものを解説することではありません。
- 禁止:冒頭では歴史を語らず、専門用語を出さない;歴史、人物、実験素材はすべて内容のクライマックスの後に登場させます。
- 映像段落:複数の素早く切り替わる映像を設計し、1つの映像は約 3 秒、各グループに1つの字幕を組み合わせます;同じ中核現象を異なるスケールで再現(個人 → 自然 → 社会)し、視聴者に現象がどこにでもあることを発見させます。
- 口語的つなぎ:「要するに」「考えてみて」「例えば」などの口語表現を使って、専門用語の代わりにします。
構造自動マッチング体系(中核)
ユーザー入力を受け取ったら、以下の6つのステップで最適な構造の組み合わせを自動的にマッチングします。固定テンプレートをそのまま適用するのではなく、テーマの雰囲気、時間フォーマット、ジャンルのタイプに応じて柔軟に組み合わせます。
ステップ1:ユーザー入力要素の解析
ユーザーは以下の要素を提供できます(すべてオプション、提供されない場合はエージェントが自動判断):
- テーマ / 知識コア:何を説明するか(必須)
- 合計時間:何秒 / 何分
- ジャンル:トリビア / 科学実験 / 生活健康 / 人文歴史 / その他
- スタイルの好み:サイバー / 癒し / 国潮 / ミニマル などのビジュアルスタイル
- 配色:特定の色合い
エージェントは不足している要素を自動補完し、絵コンテスクリプトの冒頭で、どのフック / どの主体論理 / どのエンディング / どの時間フォーマットに適合するかを明記し、ユーザーが調整しやすくします。
ステップ2:冒頭フックの自動マッチング(4 択 1、黄金の視聴者引き留め期間 0-3 秒)
中核目標:スワイプの習慣を断ち切り、視聴者に指を止めさせます。テーマの雰囲気に応じて自動選択:
| フックタイプ | 適用シーン | 文型テンプレート | 例 |
|---|---|---|---|
| 反常識結論型 | テーマ自体に認知のギャップがある | 覆る結論を直接提示し、認知の衝突を生み出す | 「熱湯の方が冷水より速く火を消せる、90% の人が間違っている」 |
| 本質的な質問型 | 生活の悩み / 好奇心クラス | 疑問に直撃し、答えを待つように導く | 「なぜガソリンスタンドで携帯電話の使用が禁止されているの?真実はあなたの考えとは全く違う」 |
| 現象サスペンス型 | 視覚的な驚異 / 異常な映像がある | まず不思議な映像を見せ、理由は言わない | (卓球ボールがヘアドライヤーの風に浮かんでいる)「なぜ卓球ボールが落ちないのか分かりますか?」 |
| 数字衝撃型 | データのギャップが強い / トリビア | 極端な数字でギャップを強調 | 「あなたの携帯電話には、1000 種類以上の細菌が潜んでいる」 |
選択原則:テーマが常識に反するほど、反常識結論型を使用;生活の疑問に近いほど、本質的な質問型を使用;視覚的な驚異があるほど、現象サスペンス型を使用;数字が衝撃的であるほど、数字衝撃型を使用。組み合わせて使用することも可能ですが(例:数字衝撃 + 反常識)、中核は 1 つまでとします。
ステップ3:主体解説の自動マッチング(4 択 1、中核情報領域)
中核目標:複雑な知識をわかりやすく、明確に説明し、論理的でだらけません。知識のタイプに応じて自動選択:
| 組織論理 | 適用シーン | 論理チェーン | 特徴 |
|---|---|---|---|
| 分割解説式 | 原理クラス、常識クラス解説 | 問題を提起 → 2-3 点に分けて説明 → 各点に映像 / 字幕を配置 | 構造化された出力、理解のハードルを下げる |
| 段階的推論式 | 現象説明クラス | 生活現象 → 表面的な原因 → 根本的な原理 → 実際の応用 | 段階的に深く掘り下げ、認知の法則に合致 |
| 実験検証式 | 工作クラス、ハードコア解説 | 仮説を提案 → 材料を提示 → 実験過程 → 現象提示 → 原理解説 | 映像で説教を代替、インパクトが強い |
| 誤情報訂正式 | 誤解クラス解説 | 一般的な誤解 → 誤りを指摘 → 正しい結論 → 科学的根拠 | 先に否定してから肯定、記憶に残りやすい |
選択原則:常識 / 原理クラス → 分割解説式;現象 / なぜクラス → 段階的推論式;工作 / 実験クラス → 実験検証式;誤解 / 噂クラス → 誤情報訂正式。
ステップ4:エンディングの自動マッチング(4 択 1、最後の 5-10 秒)
中核目標:完走率、エンゲージメント率、フォロワー増加率を向上させます。動画の目標に応じて自動選択:
| エンディング方法 | 適用シーン | 文型テンプレート | 例 |
|---|---|---|---|
| 要約強化型 | 実用的クラス / 知識密度が高い | 1 文で中核結論を抽出 | 「まとめると、熱湯の方が速く火を消せる、中核は水蒸気の窒息作用です」 |
| インタラクション誘導型 | 汎用 / コメントを引きたい | 自由回答形式の質問でコメントを誘導 | 「他にどんな常識に反する科学知識を知っていますか?コメントで教えてください」 |
| フック残し注目型 | シリーズコンテンツ / フォロワー増加期 | 次回の内容を予告し、フォローを誘導 | 「次回はなぜ冬に鉄を触ると舌がくっつくのかを解説します。フォローしてお見逃しなく」 |
| 価値拡張型 | 生活実用クラス | 生活での応用シーンを補足 | 「この原理は家庭で……に使えます。とても実用的です」 |
選択原則:短い動画は要約強化型を優先(素早く終了);中程度の長さの動画はインタラクション誘導型 + 要約強化型の組み合わせを優先;シリーズアカウントはフック残し注目型を優先;生活クラスは価値拡張型を優先。
ステップ5:時間フォーマット適応公式
合計時間に応じて構造密度とリズムを自動調整:
| 時間フォーマット | 構造公式 | 特徴 |
|---|---|---|
| 15-30 秒 超ショート解説 | フック(0-3秒)+ 中核結論 + ミニマル説明(3-25秒)+ インタラクション締め(25-30秒) | 複雑な議論はなし、1 文の結論 + 1 文の説明、リズムは非常に速く、認知インパクトが主 |
| 1-3 分 ミディアムロング解説 | 強いフックで開始 → 2-3 の中核知識ポイント / 実験ステップ → 各ポイントに可視化映像を配置 → 要約 + 誘導 | 情報密度は適度で、完全な論理チェーンがあり、解説アカウントで最もよく使われる時間 |
| 3-5 分 ロング解説 | 強いサスペンス導入 → 背景铺垫 → 3 つ程度の中核論点 → 深層解析 → 昇華まとめ | 専門的な垂直分野(天文学 / 機械 / 医学など)に適し、コンテンツの深さで視聴者を引き留め、30 秒ごとに小さなクライマックスを設定してスワイプを防ぐ |
ステップ6:ジャンル構造バリエーション
ジャンルのタイプに応じて構造の重点を微調整:
| ジャンル | 構造バリエーション | 中核 |
|---|---|---|
| トリビアジャンル | 反常識の質問 → 直接答えを出す → 1-2 の詳細な裏付け → インタラクティブな質問 | 速い、不思議、面白い、深い議論はせず、「思わぬ」驚きが主 |
| 科学実験ジャンル | 質問を提起 → 材料を提示 → 実験操作 → 現象スローモーション → 原理説明 → 生活応用 | 視覚的インパクトを優先、原理は口語的に、長いナレーションの代わりに映像を使用 |
| 生活 / 健康解説ジャンル | 悩みシーン導入 → 一般的な誤解 → 正しい方法 → 科学的説明 → 行動提案 | 生活に密着し、まず悩みを突き、それから方法を提案、実用性と説得力を強化 |
| 人文 / 歴史解説ジャンル | 好奇心をそそる質問で開始 → ストーリー仕立ての説明 → 知識ポイントを挿入 → まとめと昇華 | ストーリーで知識を伝え、説教感を避け、コンテンツの面白さを向上 |
構造加点原則(全編共通)
- 字幕強化:中核結論、分割番号を目立つ字幕で強調し、理解のコストを下げる;重要な数字 / キーワードは拡大または色を変える。
- リズムコントロール:10-15 秒ごとに情報ポイントまたは映像を切り替え、長回しの退屈さを避ける;短い動画では 3-5 秒ごとに映像を切り替える。
- 可視化優先:アニメーション、実験、図で示せるものは、純粋なナレーションを使わない;映像で表現できるものは、文字を並べない。
- 二人称代入:全編で「あなた」を使って語り、視聴者に知識が自分自身を説明していると感じさせ、他人の話を傍観している感じを与えない。
アンカーワード駆動型クライマックステンプレート(フレーム単位、強いリズム / ビートマッチング時に有効化)
ユーザーが強いリズム、ビートマッチング、カットインパクト、またはドキュメンタリー風のナレーションを要求した場合、このテンプレートを有効にします。中核は:動画全体が1つの「アンカーワード」を中心に展開し、17 秒目にビートインパクトポイントを設定し、視聴者が感情の最高点で中核概念を記憶するようにします。
ステップ1:まずアンカーワードを見つける(文章を書く前に必ず完了)
アンカーワードは動画全体の釘です:2~6 文字で、この原理が視聴者の生活に落ちた時の状況、困惑、または直感に反する瞬間を表します——用語そのものではありません。
良いアンカーワードの3つの基準:
- 没入感:視聴者が見てすぐ「これは私のことだ」と感じる;
- 概括性:同じ言葉で原理全体を要約できる;
- 反転可能性:エンディングで再定義できる——冒頭では困難、エンディングでは理解、解放感、または力になる。
アンカーワードの例:
| 原理 | アンカーワード | 冒頭(困難) | エンディング(反転) |
|---|---|---|---|
| 赤星後効果 | 原地(その場) | 必死に走っても、まだその場にいる | 運動錯覚の本質を理解する |
| サンクコスト | 舍不得(惜しい) | 手放すのが惜しくて、どんどん深みにはまる | 損切りする力の大切さを知る |
| 生存者バイアス | 見えない人 | 生存者しか見えず、沈黙の大多数を無視する | 無視された真実を見ることを学ぶ |
ステップ2:フック部(0~16.4 秒)
中核原則:まず視聴者の状況を書き、それから知識を語る。知識は「あなた」を説明するためのもの。
- 冒頭で歴史を語らず、用語を出さない;歴史、人物、実験はすべてクライマックスの後に配置。
- 最初の文の厳格なフォーマット:二人称で視聴者が経験しているパラドックスまたは困惑を書く。固定の文型:「あなたはもう……、なぜまだ……?」
- フック部は映像段落で推進:3~4 グループの素早く切り替わる映像、1 つの映像は約 3 秒、同じ中核現象を異なるスケールで再現(個人 → 自然 → 社会)。
ステップ3:ビートクライマックス(17 秒目、フレーム単位)
16.5~16.9 秒で一口の「息継ぎ」(ほぼ無音)、17.0 秒でビートが叩きつけられます。映像と音声の対応は厳格に実行:
| 時間ポイント | 映像動作 | 音声対応 |
|---|---|---|
| 16.4~16.9 | 画面全体が暗くなり、すべての要素がフェードアウト | 息継ぎ(ほぼ無音) |
| 16.9~17.0 | 約 3 フレーム静止 | 完全な無音 |
| 17.0 | 紙面が突然明るくなるか、インクのしみが炸裂(方法は動画全体のスタイルと一致);巨大なアンカーワードが同時に出現(画面幅の約 1/3);インクの跡または光の輪が中心から外側に拡散 | ビートが叩きつけられる |
| 17.6 | アンカーワードの下に小さな文字が浮かび上がる:用語名(日英対照) | 余韻 |
| 17.6~約 20 | 画面を保持し、ごくわずかな呼吸感のみ(アンカーワードのわずかな拡大縮小 / 光の脈動) | ナレーションは停止、静寂を保つ |
ステップ4:解説部(約 20 秒~エンディング前)
中核目標:アンカーワードの背後にある原理を明確に説明し、視聴者を「困惑」から「解放」へ導く。歴史、人物、実験素材はここで展開されるが、すべて「なぜあなたがその困難を経験するのか」を説明することに役立つ。
解説の組織方法(原理のタイプに応じて自動選択):
| 組織方法 | 適用シーン | 論理チェーン |
|---|---|---|
| 分割解説式 | 原理クラス、常識クラス | 核心原因を提起 → 2-3 点でメカニズムを説明 → 各点に1つの映像 + 1つの字幕を配置 |
| 段階的解説式 | 現象説明クラス | 表面的な現象 → 中間的な原因 → 根本的な原理 → なぜあなたに影響するか |
| 実験検証式 | 工作クラス、ハードコア解説 | 仮説を提案 → 実験過程 → 現象提示 → 原理解説(アンカーワードに回帰) |
文章の厳格な要求:
- 全編二人称:「あなた」を使って語り、すべての説明で視聴者に「ああ、以前の私の困難はこの原因だったのか」と感じさせる;
- アンカーワードへの回帰:2-3 文ごとにアンカーワードに戻り、話がそれないようにする;アンカーワードは動画全体の糸であり、解説部はその糸を張る部分;
- 口語優先:用語はクライマックスですでに提示されているので、ここではすべて平易な言葉で説明する——「要するに」「考えてみて」「例えば」、専門用語の羅列は禁止;
- リズムの一貫性:3-5 秒ごとに映像を切り替え、フック部のリズムと一致させ、突然遅くしない;
- 字幕強化:中核結論、重要な数字、分割番号を目立つ字幕で強調し、理解のコストを下げる。
解説部の文章例(「赤星後効果 / 原地(その場)」の場合):
20-23s 【説明1】回転する円を 30 秒見つめ、止めて静止した壁を見ると、壁が動いているように見える → 字幕:目が先に「疲れた」 23-26s 【説明2】これは網膜細胞がずっと一方向に放電していたためで、止めると慣性でまだ戻ろうとしているから → 字幕:視神経の慣性 26-29s 【説明3】だからあなたはその場にじっとしているのに、世界が反対方向に動いているように感じる → 字幕:あなたは動いていない、目が「嘘をついている」 29-32s 【説明4】この現象を運動残効といい、すべての感覚システムに同様の「疲労残滓」がある——耳は騒音を聞き続けると幻聴が聞こえ、手は冷たい水に触れ続けると水が温かくなったように感じる → 字幕:目だけでなく、全身に「慣性」がある
ステップ5:エンディングのアンカーワード反転(最後の 5-8 秒)
中核目標:アンカーワードを「困難」から「理解 / 解放感 / 力」に反転させ、感情的な閉ループを形成する。
厳格なフォーマット:
- 最後の文は必ずアンカーワードを再定義する——冒頭では視聴者の困難、エンディングでは力や悟りになる;
- 文型参照:「実は、……はあなたのせいではなく、……なのです」/「これを理解すれば、あなたはもう……ない」/「いわゆる……とは、実は……なのです」;
- 映像はフック部と呼応するシーンに戻る(例:フック部が机なら、エンディングも机に戻るが、心境は異なる)。
エンディング反転の例(「原地(その場)」の場合)」:
32-36s 【エンディング反転】実は、「その場」というのはあなたが努力不足だからではなく、あなたの感覚システムがあなたにちょっとした悪戯をしているだけなのです。これを理解すれば、あなたはもう動いているのに進歩していないように感じて不安になることはありません——ただ立ち止まって、目を休める必要があるだけです。 映像:回転する渦からゆっくりとフェードアウトし、冒頭の静かな机に戻り、机の上に日差しが差し込んでいる。
入力形式
ユーザー提供:合計時間、テーマ / 知識コア、オプションでジャンル / 配色 / スタイルの好み。エージェントが自動的にフックタイプ、主体論理、エンディング方法をマッチングし、完全な絵コンテスクリプト(タイムスタンプ + 映像 + 字幕 + 構造ラベル)を生成します。
絵コンテスクリプト出力形式:各カットに【フックタイプ】【主体論理-分割N】【エンディング方法】をラベル付けし、ユーザーが一目で構造の選択を確認できるようにします。
例 1(40 秒、トリビアジャンル、テーマ:エントロピー増大):
構造選択:本質的な質問型フック + 段階的推論式主体 + 要約強化型エンディング(1-3 分フォーマットの圧縮版に適合) 0-4s 【フック·本質的な質問】あなたはもう部屋を完璧に片付けたのに、なぜ一週間後にはまた散らかっているの? 4-7s 【主体·段階的1·個人スケール】片付けたばかりの机、本が静かに端に滑り落ちる → 字幕:物は常に自然に散らかっていく 7-10s 【主体·段階的2·自然スケール】一滴のインクが清水に落ち、ゆっくりと広がり、二度と戻らない → 字幕:分子は拡散を決して止めない 10-13s 【主体·段階的3·社会スケール】誰も掃除しない古い通り、落ち葉が何層にも重なる → 字幕:秩序は守る人がいなければ崩壊する 13-16s 【主体·根本原理収束】つまり、混乱こそが世界のデフォルト状態であり、秩序はお金と労力をかけて維持する例外なのだ。 16-34s 【主体·歴史素材後置】クラウジウスが1865年にエントロピーを提唱、ボルツマンの墓石の公式、一杯の冷水が決して自然に沸騰しないこと…… 34-40s 【エンディング·要約強化】エントロピー増大に抗うことは、誰もが一生をかけて行う長い修行である。
例 2(25 秒、生活健康ジャンル、テーマ:冷水 vs 温水):
構造選択:反常識結論型フック + 誤情報訂正式主体 + インタラクション誘導型エンディング(15-30 秒超ショートフォーマットに適合) 0-3s 【フック·反常識結論】冷たい水を飲むと胃を壊す?この説はあなたを何十年も騙してきた。 3-8s 【主体·誤解を破る】多くの人は冷たい水が胃腸を刺激すると思っている → 字幕:冷たい水 = 胃に悪い? 8-15s 【主体·結論を立てる】真実は:胃の温度は常に 37°C に保たれており、冷たい水が入るとすぐに温められ、胃を傷つけることはない → 字幕:胃には自動恒温システムがある 15-20s 【主体·真実反転】本当に胃を傷つけるのは:空腹時に大量の冷たいものを飲む + 長期間の不規則な食生活 → 字幕:悪い習慣こそが真犯人 20-25s 【エンディング·インタラクション誘導】普段、冷たい水と温かい水、どちらを飲みますか?コメントで教えてください。
完全なサンプルプロジェクト(examples/ ディレクトリ)
スキルには、すぐにテストできる2つの完全なサンプルプロジェクトが組み込まれています。プロジェクトにコピーすれば、lint / preview / render の全フローを実行できます:
| サンプル | パス | 執筆体系 | 長さ | スタイル |
|---|---|---|---|---|
| エントロピー解説 | examples/entropy-16-9/ | 分割解説式(基本テンプレート) | 40s | ダークナレッジカード風 |
| 寝ても疲れが取れない | examples/sleep-tired-16-9/ | アンカーワード駆動クライマックステンプレート(17秒ビート爆発) | 40s | 医療テクノロジー風 |
両サンプルとも lint 検証に合格(0 エラー 0 警告)、1920×1080 高解像度出力、異なる執筆体系の参考テンプレートとして使用できます。
コード作成の厳格なルール
- HyperFrames コンポジションコントラクトに厳密に従う:ルートノードには
data-composition-id、data-width、data-height、data-durationを設定;クリップにはclass="clip"+data-start+data-durationを使用;paused 状態の GSAP タイムラインをwindow.__timelines["<id>"]に登録(キーはルートノードのdata-composition-idと一致させる)。 - 16:9 横版:
<meta name="viewport" content="width=1920, height=1080">、ルートノードも同じサイズ;デフォルトで 1920×1080 高解像度出力。 - コードを書く前にまず
references/hyperframes-contract.mdを読み、一般的な lint エラーと GSAP の落とし穴をすべて回避する。 - 独立したルートノードを
<template>でラップしない;コードスニペットを出力せず、完全で独立した HTML にする必要がある。 - カット数 ≥2 の場合はモジュール化サブコンポジションアーキテクチャを採用:各シーンに
compositions/scene-*.html(<template>内にそのシーンの style/script/ルートノードを含む)、メインのindex.htmlはdata-composition-srcで各シーンをマウント;ホストのdata-composition-id、サブコンポジションファイル内のルートノードのdata-composition-id、window.__timelinesのキーはすべて一致する必要がある。詳細はreferences/hyperframes-contract.mdの第 8 節を参照。
最小実行可能コード例(2 つの clip、そのまま実行可能)
以下は完全な index.html の最小例で、2 つのカット、要素の貫通トランジション、GSAP タイムライン登録を含みます。新しいシーンではこれをベースラインとして変更します:
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=1920, height=1080">
<title>エントロピー · サンプル</title>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/gsap.min.js"></script>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body { background: #0a0a0f; font-family: "Hiragino Sans", "Noto Sans JP", sans-serif; }
/* ルートコンテナ:1920×1080、16:9 */
.composition {
position: relative;
width: 1920px;
height: 1080px;
overflow: hidden;
background: #0a0a0f;
}
/* clip フラグメント:絶対配置で全面に、フレームワークが可視性を制御 */
.clip {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
}
/* カット 1:散らかった机 */
#scene-desk { background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%); }
#scene-desk .book {
position: absolute;
width: 80px;
height: 120px;
background: #e94560;
border-radius: 4px;
left: 300px;
top: 300px;
transform-origin: center;
}
#scene-desk .subtitle {
position: absolute;
left: 80px;
bottom: 80px;
color: #fff;
font-size: 36px;
font-weight: 500;
opacity: 0;
}
/* カット 2:インクが清水に落ちる */
#scene-ink { background: linear-gradient(180deg, #0f3460 0%, #16213e 100%); }
#scene-ink .drop {
position: absolute;
width: 120px;
height: 120px;
background: radial-gradient(circle, #e94560 0%, transparent 70%);
border-radius: 50%;
left: 580px;
top: 300px;
transform: scale(0);
}
#scene-ink .subtitle {
position: absolute;
left: 80px;
bottom: 80px;
color: #fff;
font-size: 36px;
font-weight: 500;
opacity: 0;
}
</style>
</head>
<body>
<!-- ルートノード:data-composition-id は window.__timelines のキーと一致させる必要がある -->
<div class="composition"
data-composition-id="entropy-demo"
data-width="1920"
data-height="1080"
data-duration="10">
<!-- clip 1:0-5 秒、机のシーン -->
<div class="clip" id="scene-desk" data-start="0" data-duration="5">
<div class="book" id="book"></div>
<div class="subtitle" id="desk-subtitle">物は常に自然に散らかっていく</div>
</div>
<!-- clip 2:5-10 秒、インク拡散シーン(要素貫通:本の赤 → インクの赤) -->
<div class="clip" id="scene-ink" data-start="5" data-duration="5">
<div class="drop" id="ink-drop"></div>
<div class="subtitle" id="ink-subtitle">分子は拡散を決して止めない</div>
</div>
</div>
<script>
// paused 状態の GSAP タイムラインを window.__timelines に登録
window.__timelines = window.__timelines || {};
const tl = gsap.timeline({ paused: true });
// === シーン 1:机(0-5s) ===
tl.from("#book", {
x: 0, y: 0, rotation: 0,
duration: 2, ease: "power2.out"
}, 0.5);
// 本が静かに端に滑り落ちる(「混乱」を表現)
tl.to("#book", {
x: 200, y: 100, rotation: 15,
duration: 3, ease: "power1.inOut"
}, 1);
// 字幕フェードイン
tl.from("#desk-subtitle", {
opacity: 0, y: 20,
duration: 0.5, ease: "power2.out"
}, 2);
// === トランジション:本の赤い要素 → インクの赤(5秒で要素貫通) ===
// 前の clip の要素は clip 終了時に自然に消え、後の clip の要素が同時に入場
// ここでは色の呼応によって「同じ要素が前後を貫通している」ことを実現
// === シーン 2:インク拡散(5-10s) ===
tl.from("#ink-drop", {
scale: 0, opacity: 0,
duration: 0.5, ease: "power2.out"
}, 5.2);
tl.to("#ink-drop", {
scale: 4, opacity: 0.6,
duration: 4, ease: "power1.out"
}, 5.5);
tl.from("#ink-subtitle", {
opacity: 0, y: 20,
duration: 0.5, ease: "power2.out"
}, 6);
// グローバルに登録
window.__timelines["entropy-demo"] = tl;
</script>
</body>
</html>
重要なコメント:
data-composition-id="entropy-demo"はwindow.__timelines["entropy-demo"]のキーと完全に一致する必要があります;data-durationの単位は秒であり、ミリ秒ではありません;- GSAP タイムラインの position パラメーター(第 2 引数)も秒です;
- clip 要素自体は tween しないでください(フレームワークが可視性を制御します)、その子要素のみを tween します;
- 要素の貫通トランジション:前の clip の要素を変形 / 移動させて特定の状態にし、後の clip が開始するときに同様の位置 / 形状から入場させることで、「同じものが連続して動いている」という錯覚を生み出します。
カットのグラフィック / アニメーション選択ガイド(自動マッチング)
制作時は各カットの文章の中核イメージに基づいて、自動的に右側のグラフィックとアニメーションを選択し、サンプルのグリッド / 散布図 / バーチャートに固定しません。
選択フロー
- 各カットの文章を解析し、中核イメージ(例:「成長 / 混乱 / 可能性 / 秩序 / ネットワーク / 周期 / 雰囲気」)と感情の強度(冷徹 / 爆発的 / 夢幻的 / 叙事詩的 / サイバー / 癒し など)を抽出;
- 以下の表に従って 1 つの主グラフィックを選択して中核イメージを表現し、最大 5 種類の補助アクセント(パーティクル、光効果、装飾線、背景テクスチャ、コーナーシンボル、グロー、ハロー、幾何学フラグメントなど)を重ねることができ、アニメーションは表に従ってマッチング;アクセントの数と種類は文章の感情に応じて決め、すべてのカットで詰め込む必要はありません;
- 決定性を確認:優先的に CSS/HTML で実現可能な方法;フラクタル / セルオートマトン / 3D / Shader / テクスチャ / パーティクルなどの複雑なグラフィックは決定論的に実装する必要があります(固定シード、事前計算配列、
Math.random、リアルタイムクロック、ネットワークリクエストは禁止)、データチャートは模式的なデータを使用; - グラフィックは 16:9 のセーフエリア内(周囲 ≥64px)に収まり、キャンバスからはみ出してはいけません;視覚密度、エフェクトの強度、配色の彩度は文章の感情に基づいて自主的に決定し、一律の「控えめ」制限は設けません。
意味 → グラフィック → アニメーション マッピング(よく使うもの)
| カットのイメージ | 推奨グラフィック | 推奨アニメーション |
|---|---|---|
| 成長 / 秩序の構築 | バーチャート、階段、ツリー状成長、黄金螺旋 | 下から成長、徐々に上昇 |
| 混乱 / エントロピー増大 / 無秩序 | グリッドブロック、散布図、Voronoi フラグメント、フラクタルクラック | ドリフト、拡散、破砕 |
| 可能性 / 分岐 | ツリーマップ、散布図、弦線、マインドマップ | 外側に発散、枝分かれ成長 |
| 周期 / 循環 | リンググラフ、ドーナツチャート、波形、サイクロイド | 回転、パルス、往復運動 |
| 関係 / ネットワーク | ネットワークトポロジー、ナレッジグラフ、フォース指向グラフ | ノード接続、段階的点灯 |
| 時間 / プロセス | 折れ線グラフ、エリアグラフ、タイムライン | 筆跡成長、軌跡延長 |
| 比較 / 分布 | 円グラフ、ドーナツチャート、レーダーチャート、箱ひげ図 | セクター展開、項目別表示 |
| 空間 / 構造 | 等角グリッド、ポイントクラウド、3D ワイヤーフレーム | レイヤーごとに構築、回転入場 |
| 雰囲気 / 抽象 | ノイズテクスチャ、波の干渉、定在波、パーティクルフロー | 流動、起伏、消散 |
完全な候補ライブラリ(9 大カテゴリ:基本幾何学、データチャート、フラクタル生成アート、シミュレーションとセルオートマトン、ピクセルビットマップとプログラムテクスチャ、3D グラフィックス、構造図/関係図、テキストグラフィックス、モーショングラフィックス)と決定性実装の制約については、references/hyperframes-contract.md の第 7 節「グラフィック選択ライブラリ」を参照してください。
Vibe 视频大賞スタイル(16:9 横版)
中核原則:ビジュアルスタイルは文章が自主的に決定し、クールさを追求……
[以降のコンテンツは省略]