Launch Video
Xの投稿(URLまたはテキスト)とブランドのWebサイト(または保存済みのbrand.jsonプロファイル)から、25〜40秒の1920x1080 60fps H.264形式のオーディオ付きローンチフィルムを生成します。すべてのクリエイティブな選択肢は2つの小さなJSONファイル(brand.jsonとlaunch.json)に集約されており、コンパイル、レイアウト、サウンドトラック合成、Remotionレンダリングは決定論的に行われます。
前提条件
- Bun(
bun >= 1.1) PATHにffmpegとffprobe(H.264/AACエンコード、loudnormマスタリング、コンタクトシート検査用)- ImageMagick(
PATHにmagick、WebP変換、アルファトリミング、ウィンドウクロップに推奨)
以下の<SKILL_DIR>は、このSKILL.mdを含むディレクトリを指します(例:~/.claude/skills/launch-videoまたは~/.agents/skills/launch-video)。
エンドツーエンドのワークフロー
1. Xの投稿を読み取る(URLが指定された場合)
bun <SKILL_DIR>/scripts/post.ts "https://x.com/<handle>/status/<id>"
公開fxtwitterエンドポイントを介して、投稿テキスト、作成者、統計、添付メディアを取得します(ログインやAPIキーは不要)。
2. ブランドプロファイルのブートストラップまたは読み込み(brand.json)
すでにキュレーションされたbrand.jsonがある場合は、それを再利用します。ライブWebサイト(例:https://fomo.familyやhttps://acme.dev)を指定した場合は、最初にブランドフォルダをブートストラップします。
bun <SKILL_DIR>/scripts/bootstrap.ts "https://fomo.family" --out ./work/brand
その後、./work/brand/brand.jsonを視覚的にキュレーションします(この手順をスキップしないでください)。
- マーク(
mark):inline-*.svg、favicon.svg、mark.pngを検査します。ステージはダーク(#000000またはサイトのダークグラウンド#060510など)であるため、markは透明な背景上で白/明るい色でなければなりません(PNG32またはSVG)。サイトのアイコンが不透明なダークスクエア上にある場合は、ImageMagickを使用して明るいマークを透明に抽出します(magick raw.png -colorspace gray -level 6%,92% alpha.png && magick -size WxH xc:white alpha.png -compose CopyOpacity -composite -trim +repage PNG32:mark-white.png)。プレビュースウォッチを検査します。 - スクリーンショット(
screens):screens/内のダウンロードされたすべての画像を表示します(またはヘッドレスPlaywrightで2xDPIのライブプロダクトルートをキャプチャします)。実際のプロダクトUIショットのみ(4〜8スクリーン)を保持し、デコレーションの背景テクスチャは削除し、各スクリーンに正確なdescriptionを記述します。デスクトップスクリーンショットに外側の壁紙マージンがある場合は、crop: {x, y, w, h}を追加します。透明なPNG(浮遊する電話、カード、通知)は自動的にトリミングされ、フレームなしでレンダリングされます。 - パートナー/エコシステムロゴ(
logos): ビートで参照されるプラットフォーム、チェーン、モデル、ツール用に鮮明なSVG/PNGアイコンを追加します(logos/x.svg、logos/apple.svg、logos/slack.svgなど)。ダークなモノクロラスターアイコンには、ヘックス(六角形)タイルで目立つように"fill": "#F2F2F2"を設定します。 - パレットとCTA:
palette.bg、palette.fg、palette.accent、mosaicColors(6〜10のブランドアクセント+ニュートラルスレート、パープルグラデーションは不可)、website(ベアドメイン、例:"fomo.family")、cta(big、title、body、button)を確認します。
3. launch.jsonを記述する
{
"brand": "./brand/brand.json",
"open": { "tagline": "Where traders become legends." },
"beats": [
{ "id": "spot", "headline": "See it on X, trade it.", "screen": "desktop-terminal", "hexes": ["x", "solana"] },
{ "id": "social", "headline": "Follow what top traders buy.", "screen": "social-feed" },
{ "id": "alerts", "headline": "Real-time alerts before it moves.", "screen": "live-alerts" },
{ "id": "sync", "headline": "Phone to desktop, in sync.", "screen": "desktop-and-phone" },
{ "id": "fund", "headline": "Fund instantly with Apple Pay.", "screen": "apple-pay", "hexes": ["apple", "solana", "base"], "hexLayout": "top" }
],
"cta": {},
"outro": { "seconds": 6.5 },
"music": "profile"
}
鋭いビートのルール(references/format-guide.mdを参照):
- タグライン(
open.tagline):プロダクトが何かを示す5単語以内。 - 4〜6ビート:ビート1でX投稿のフックから始め、具体的なプロダクト画面を順に説明します。各見出しは2〜5単語でピリオドで終わるようにし、
64 pxで1行に収まるようにします。 - 正確なスクリーン一致:すべての見出しは、その
screenに表示されているものと一致する必要があります。見出しと無関係なスクリーンショットを決して組み合わせないでください。 - ヘックスレイアウト(
hexLayout):"auto"(デフォルト:3つのロゴはleftにきれいに積み重なり、1〜2つはsidesに配置)、"top"(y = 340キャプチャの上に水平行)、または"sides"。 - オーディオ(
music):"profile"は、設定されている場合はbrand.jsonのmusicファイルを使用し、それ以外の場合はビートマッチの92 bpmミニマルエレクトロニックベッドを合成して-15 LUFSにマスタリングします。"synth"は常に合成します。"none"は無音でレンダリングします。またはカスタム.m4a/.mp3/.wavファイルのパスを指定します。
4. 高速ドラフトをレンダリング、フレームを検査、その後フル1080p60をレンダリング
# 視覚QA用の半スケールドラフト(約20〜40秒)
bun <SKILL_DIR>/scripts/render.ts ./work/launch.json --out ./work/draft.mp4 --scale 0.5
ffmpeg -v error -y -i ./work/draft.mp4 -vf "fps=1,scale=480:-1,tile=6x6:padding=2:color=gray" -frames:v 1 ./work/draft-sheet.png
./work/draft-sheet.pngと主要ビートの全フレームを検査します。
- フレーム0はエッジツーエッジのハニカムモザイクを示しています。ロックアップマークはダークステージ上で鮮明で見える状態です。
- すべての見出しは広いマージンで1行に収まり、そのキャプチャと一致しています。
- 透明なプロダクトレンダリングはグレーの境界ボックスなしでクリーンに浮かび上がっています。ヘックスタイルはキャプチャから適切な余白を持っています。
- CTAカーソルはクリックフレーム上のピルボタンにきれいに着地しています。
- アウトロは全面ハニカム壁からバーストし、タイプされたドメインをきれいに保持しています。
brand.json / launch.jsonのコピー、クロップ、レイアウトの問題を修正した後、フル1920x1080 60 fps品質でレンダリングします。
bun <SKILL_DIR>/scripts/render.ts ./work/launch.json --out ./work/launch.mp4
ffprobe -v error -show_entries format=duration:stream=codec_name,width,height,r_frame_rate -of default=noprint_wrappers=1 ./work/launch.mp4
./work/launch.mp4の完全な絶対パスとビートテーブルを報告します。