Communitygithub.com

oyi77/1ai-skills — 製品ローンチ動画生成スキル

URL、概要、またはスクリプトから、HyperFrames(HTML→MP4)を使って製品ローンチ動画を作成します。製品のビジュアルを使用したローンチ動画、サイトツアー、ソーシャルクリップ、マーケティング/プロモーション動画が必要な場合に使用します。最長約3分(推奨30〜90秒)。HyperFramesの制作ループ(計画→HTML作成→シーク可能なアニメーション設定→メディア追加→リント→プレビュー→レンダリング)を実践します。

1ai-skills — 製品ローンチ動画生成スキル とは?

このスキルは、AIエージェントが製品ローンチ動画を完全にコードベースで生成するためのパイプラインです。ユーザーが製品のURL、簡単な説明、またはスクリプトを提供すると、エージェントはHyperFramesフレームワークを使用してHTML+CSS+JavaScriptで構成された動画コンポジションを記述し、それをヘッドレスChromeとFFmpegでフレーム精度のMP4にレンダリングします。このスキルの核心は、LLMが最も得意とするHTMLを用いて動画を「プログラミング」する点にあります。GSAPやCSSキーフレームによるシーク可能なアニメーション、シーン分割、メディア(画像・動画・音声)の配置、リントチェック、プレビュー、そして最終的なMP4出力までの一連のワークフローが明確に定義されています。特に12のアンチ・ラショナリゼーション(根拠のない省略や代案)を表で示し、エージェントが陥りがちな誤った判断を防止する設計になっている点が特徴的です。対応する動画タイプは製品ローンチ、サイトツアー、ソーシャルクリップ、プロモーション動画などで、実写やトーキングヘッド、スライドショーなどには別の専用スキルを使用するよう推奨しています。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/oyi77/1ai-skills/tree/HEAD/content/hyperframes-product-launch-video

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

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

ドキュメント

概要

このスキルは、製品ローンチ動画(ヒーローショット、機能コールアウト、タイミング)をHyperFramesコンポジションとして作成します。新リリースにタイトでブランド化された告知クリップが必要な場合に使用します。提供された製品アセットから最終的なMP4をレンダリングします。

HyperFrames — 製品ローンチ動画

HTMLコンポジションを作成して、HyperFramesが決定論的なMP4にレンダリングする製品ローンチ動画を生成します。エージェントネイティブな動画パイプライン:LLM がHTML(彼らの第一言語)を書き、HyperFramesがヘッドレスChrome + FFmpegでフレーム精度の動画をレンダリングします。

使用するタイミング

  • ユーザーが製品ローンチ動画をURL、概要、またはスクリプトから欲しい場合
  • ユーザーが製品のビジュアルを使用したサイトツアー/ショーケースを希望する場合
  • ユーザーがキネティックキャプションとブランディング付きのソーシャルクリップ(TikTok/Reels/Shorts)を希望する場合
  • ユーザーがアニメーションオーバーレイと音楽付きのマーケティング/プロモーション動画を希望する場合
  • ユーザーが「動画を作って」と言い、製品のURLや説明を提供した場合

使用してはいけないタイミング

  • ユーザーが実写 / UGC / スタジオコンテンツを希望する場合(HTMLではなくカメラが必要)
  • ユーザーがライブストリーミング / ライブコマースを希望する場合(RTMP取り込みが必要)
  • ユーザーがトーキングヘッドのインタビューを希望する場合(hyperframes-embedded-captions または hyperframes-talking-head-recut を使用)
  • ユーザーが製品やURLなしの純粋な説明動画を希望する場合(hyperframes-faceless-explainer を使用)
  • ユーザーがプレゼンテーション/スライドを希望する場合(hyperframes-slideshow を使用)

ワークフロー

0 · プロジェクトのブートストラップ

npx hyperframes init my-launch-video
cd my-launch-video

これにより、index.html、package.json、およびHyperFrames CLIが設定されたプロジェクトスキャフォールドが作成されます。

1 · 動画の計画

  • 入力: 製品URL、概要、またはスクリプト
  • 出力: 3〜6シーンのストーリーボードとタイミング(合計30〜90秒推奨)
  • 予算: タイトル ≤2秒、アウトロ ≤3秒、中間シーン 各約8〜12秒
  • デザイン言語の選択: hyperframes.heygen.com/design でframe.mdテンプレートを参照

2 · コンポジションHTMLの作成

コンポジションの契約:

<!doctype html>
<html lang="en">
  <body>
    <div
      id="main"
      data-composition-id="intro"
      data-start="0"
      data-duration="15"
      data-width="1080"
      data-height="1920"
      data-fps="30"
    >
      <div
        class="clip"
        data-start="0"
        data-duration="5"
        data-track-index="0"
      >
        <!-- シーンコンテンツ -->
      </div>
    </div>
  </body>
</html>

主要な属性:

  • data-composition-id: コンポジションの一意のID
  • data-start / data-duration: 秒単位のタイミング
  • data-width / data-height: ビューポート寸法(9:16の場合は1080×1920)
  • data-fps: フレームレート(標準30)
  • class="clip": タイミング要素を示す
  • data-track-index: レイヤー順序(大きいほど手前に表示)

3 · シーク可能なアニメーションの設定

GSAP(推奨)、CSSキーフレーム、またはWAAPIを使用します。すべてのアニメーションはシーク可能(決定論的 — 同じフレームが同じ時刻に、毎回同じようにレンダリングされる)である必要があります。

GSAPパターン(推奨):

const tl = gsap.timeline({ paused: true });
tl.to("#title", { opacity: 1, y: 0, duration: 0.8, ease: "power4.out" }, 0.5);
tl.to("#image", { scale: 1, opacity: 1, duration: 1.2, ease: "power3.out" }, 1.0);
window.__timelines = { main: tl };

CSSキーフレームパターン:

@keyframes fadeInUp {
  from { transform: translateY(40px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}
.animate-in {
  animation: fadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

4 · メディアの追加

  • 画像: public/ ディレクトリにダウンロードし、staticFile() または相対パスで参照
  • 動画背景: assets/ に配置し、data-loop でループ
  • オーディオ/BGM: <audio data-start="0" data-duration="15" src="./bgm.mp3"> で追加
  • ナレーション: TTSで生成し、キャプションを単語のタイムスタンプに合わせる

5 · リントとチェック

npx hyperframes check        # コンポジション契約の検証
npx hyperframes lint         # 一般的なエラーのチェック

先に進む前にすべてのエラーを修正してください。警告は許容されますが、確認する必要があります。

6 · プレビュー

npx hyperframes preview      # HMR付きのHyperframes Studioを開く

生のコンポジションページで __player.seek(time) を使用して3〜4箇所のタイミングをスポットチェック。確認事項:

  • アニメーションが適切なタイミングで開始されること
  • カット部に白いフラッシュがないこと(不透明なステージの背景)
  • キャプションが表示され、読みやすいこと
  • オーディオレベルがバランスしていること

7 · レンダリング

npx hyperframes render --output launch-video.mp4

出力を確認:

ffmpeg -ss 3 -i launch-video.mp4 -frames:v 1 frame-3s.png  # キャプション確認
ffmpeg -ss 15 -i launch-video.mp4 -frames:v 1 frame-15s.png # シーン確認

アンチ・ラショナリゼーションテーブル

合理化現実
「動画エディタを使えばいい」GUIエディタはエージェントネイティブではない;HTMLはLLMが最も得意とするもの
「リント手順はスキップしよう」リントはレンダリングを壊すコンポジション契約エラーをキャッチする
「Remotionを使おう」RemotionはReactの推論が必要;HTMLはエージェントにとってよりシンプル
「時間を埋めるためにアイドルアニメーションを追加しよう」アイドル揺れは禁止 — すべてのフェーズがパフォーマンスを発揮しなければならない(hyperframes-cut-the-curve参照)
「キャプションのスペースを確保するため、コンテンツを42%に中央揃えしよう」キャプションはオーバーレイ — 真の中心(y = H/2)に中央揃えする
「シーン間にクロスフェードを使おう」クロスフェードにはキャリアがない — デフォルトの境界にはcut-the-curveを使用する
「シーンなしで1つの大きなHTMLファイルを書こう」シーンはコンポジションの単位 — それぞれが独自のクリップラッパーを持つ
「プレビューをスキップしてそのままレンダリングしよう」プレビューはレンダリング時間を無駄にするタイミングエラーをキャッチする

コード例

<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <style>
      * { margin: 0; padding: 0; box-sizing: border-box; }
      html, body { width: 100%; height: 100%; overflow: hidden; background: #0a0a0a; }
      #main {
        position: relative;
        width: 1080px;
        height: 1920px;
        overflow: hidden;
      }
      .scene {
        position: absolute;
        inset: 0;
        opacity: 0;
        transition: opacity 0.5s ease;
      }
      .scene.active { opacity: 1; }
      .hook-bg {
        background: linear-gradient(135deg, #ff6b35 0%, #f7931e 100%);
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        padding: 80px;
        text-align: center;
        color: white;
        font-family: system-ui, sans-serif;
      }
      .hook-text {
        font-size: 72px;
        font-weight: 800;
        line-height: 1.1;
        transform: translateY(40px);
        opacity: 0;
      }
      .animate-in {
        animation: fadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
      }
      @keyframes fadeInUp {
        from { transform: translateY(40px); opacity: 0; }
        to { transform: translateY(0); opacity: 1; }
      }
    </style>
  </head>
  <body>
    <div
      id="main"
      data-composition-id="product-ad"
      data-start="0"
      data-duration="15"
      data-width="1080"
      data-height="1920"
      data-fps="30"
    >
      <div class="scene hook-bg" data-start="0" data-duration="5" data-track-index="0">
        <h1 class="hook-text animate-in" data-start="0.5" data-duration="4">
          製品名
        </h1>
      </div>
    </div>
    <script>
      // IntersectionObserverまたは手動タイミングによるシーンアクティベーション
      const scenes = document.querySelectorAll('.scene');
      scenes.forEach(scene => {
        const start = parseFloat(scene.dataset.start);
        const duration = parseFloat(scene.dataset.duration);
        setTimeout(() => scene.classList.add('active'), start * 1000);
        setTimeout(() => scene.classList.remove('active'), (start + duration) * 1000);
      });
    </script>
  </body>
</html>

検証チェックリスト

  • コンポジションが npx hyperframes check をエラー0で通過すること
  • すべてのシーンに data-start、data-duration、data-track-index があること
  • アニメーションがシーク可能であること(決定論的で、ウォールクロックに依存しない)
  • プレビューで3箇所以上のスポットチェックで正しいタイミングが確認できること
  • レンダリングされたMP4に白いフラッシュ、フリーズフレーム、欠落キャプションがないこと
  • オーディオレベルがバランスしていること(必要に応じてナレーションカーブが適用されていること)
  • 出力解像度がターゲットと一致していること(9:16の場合は1080×1920、16:9の場合は1920×1080)

Individual skills in this repo

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

oyi77/1ai-skills

Turn a weekly changelog .md into a finished branded changelog video using HyperFrames. 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 the skill. Produces square 1080, ~45-60s videos with animated brand mock-UIs.

oyi77/1ai-skills

The transition technique catalog for HyperFrames videos — five velocity-matched SEAMS (zoom-through, inverse zoom-through, cut-the-curve, waterfall cut, rack-focus blur-cut) plus in-scene techniques (waterfall entry, nudge curve). Covers partial-travel velocity matching, Z scale-sign rule, size-scaled blur, the 10/65/25 slide ratio, and the 2-3 transition budget. Read before authoring any transition, text-beat handoff, or kinetic text entry.

oyi77/1ai-skills

Add captions/subtitles to talking-head or launch videos using HyperFrames. Use when the user wants embedded captions, verbatim caption rails, or cinematic text behind the subject. Covers the drop/rail/embed caption model, the overlay law (captions are NOT a reserved band), matte occlusion for embedded climaxes, and word-timestamp alignment from TTS output.

oyi77/1ai-skills

Turn arbitrary text — an article, notes, a topic, a brief — into a faceless explainer video using HyperFrames. Use when the user wants a topic explainer, concept breakdown, how-to, or listicle with no product/website to capture. Every visual is invented per scene (typography, abstract graphics, diagrams, data-viz). Not a video built from a website (use hyperframes-product-launch-video).

oyi77/1ai-skills

The fallback HyperFrames workflow for anything that doesn't fit other skills — longer multi-scene pieces, brand/sizzle reels, title cards, static loops, freeform compositions. Input- and length-agnostic. Also the home of companion mode (co-create with the full toolbox). Use when no other HyperFrames skill matches, or when the user wants a freeform video.

oyi77/1ai-skills

Create short, unnarrated, design-led motion graphics (~under 10s) using HyperFrames. Use when the user wants kinetic type, stat/chart hits, logo stings, lower-thirds, animated tweets/headlines, or transparent overlay motion graphics. MP4 or transparent overlay output. Teaches seek-safe keyframe authoring and the 2-3 transition budget rule.

oyi77/1ai-skills

Turn a music track into a beat-synced HyperFrames video — lyric, slideshow, or kinetic promo. Use when the user provides an audio file, a video to pull audio from, or a mood brief for generated music. Music drives pacing. Teaches beat-map extraction, section-based scene planning, and audio-reactive visuals.

oyi77/1ai-skills

The Video Production Manager — manages ALL video production under 1ai-content. Delegates to HyperFrames, Remotion, AI video, and FFmpeg based on the task. Has memory via 1ai-hub brain, follows 1ai-rules, and reports to Content Director. Use when the user says 'make a video', 'create video', 'edit video', 'video strategy', or needs any video production work.

oyi77/1ai-skills

Agent skill at content/video/gen/SKILL.md

oyi77/1ai-skills

Use when track portfolio company KPIs, variances, returns analysis. Use when user says "monitor portfolio", "track KPIs", "portfolio returns".

oyi77/1ai-skills

Use when go-to-market planning — launch sequencing, channel strategy, audience building, PR outreach. Use when planning product launches, building launch checklists, or coordinating multi-channel campaigns.

oyi77/1ai-skills

Use when portfolio manager — capital allocation, risk management, and performance metrics tracking for trading strategies.

関連スキル