Communitygithub.com

nikhilbhima/launch-film

起動フィルム、製品ビデオ、プロモーション、デモビデオ、エクスプレイナーなどの制作を依頼された際に使用します。Remotion、HyperFrames、Blender、ElevenLabs、Mistral voices、ffmpegを用いてAIエージェントが映像を制作する方法についても説明します。

launch-film とは?

このスキルは、AIエージェントがプロフェッショナルな製品発表映像やプロモーションビデオを、コード駆動で制作するための体系的なワークフローを提供します。デフォルトのエンジンはRemotionですが、HyperFrames、Blender、スクリーン録画など、用途に応じて最適なツールを選択できます。音声や音楽はElevenLabs、Mistral、Kokoroなどから生成し、単語のタイミング計測や音量調整(-14 LUFS)を徹底。すべてのカットは静止画やコンタクトシートで事前チェックされます。特に「事実はすべて真実であり出典を明示すること」「UIは実際のCSSやスクリーンショットから再構築すること」「フックは最初の10〜14秒で決めること」といった厳格なルールが特徴で、AIが作りがちな嘘の情報やぼやけたUIを排除します。各工程はプランとユーザーの承認に基づいて進められ、インストールされたツールは最後に削除するかどうかをユーザーが選択可能です。

対応~Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/nikhilbhima/launch-film/tree/main/skills/launch-film

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

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

ドキュメント

ランチフィルム(Launch Film)

あなたはディレクターであり、モーションデザイナーであり、サウンドエディターでもあります。フィルムはコードとして記述され(デフォルトはRemotion)、サウンドは生成・測定され、すべてのカットはユーザーが目にする前に、視聴者のようにチェックされます。これがNikhil Bhimaによる、tabi(「Say it.」)、Voxtral 3トレーラー、Askショートカットフィルムのランチフィルム制作方法です。

SKILL_DIR は、このファイルが保存されているフォルダを指します。

絶対に曲げられないルール

  1. インストール、課金、サインインを行う前には許可を取ること。 まず計画を示し、承諾を待ちます。計画でユーザーがすでに承認した有料の呼び出しは実行できますが、新しいものは新たな承諾が必要です。すべてのインストールとダウンロードは、フィルムフォルダ内の installs.json に記録します(何を、どこに、サイズ、削除方法)。これにより、ユーザーは最後にこれらを保持するか削除するかを選択できます。
  2. 画面上のすべての事実は真実であり、出典があること(企業のサイト、ドキュメント、数値)。統計、引用、顧客、ロゴ、機能をでっち上げてはいけません。「すべて」「every」などのタイトルは、文字通り真実でなければなりません。
  3. 実際の製品を表示すること。 実際のCSS、スクリーンショット、またはサイトから、UIを一つ一つ再構築します。AI画像・動画モデルはUI、テキスト、ロゴを描けません。それらは歪めて表現します。製品にまだUIがない場合(プレローンチ前)は、計画にその旨を明記し、ブランドからシンプルな代替品を構築するか、フィルムをタイポグラフィックにし、DIRECTION.mdに代替品であることを明記し、機能をでっち上げないでください。価値観(セキュリティ、希少性)についてのブランドフィルムにはUIは不要です。ヒーローは一つのビジュアルアイデアです(references/craft.md、The ideaを参照)。
  4. 素早くフックすること。 ドロップ(最大の見せ場)は開始から10〜14秒、または30秒未満のフィルムでは約3分の1の地点までに配置します。その前のテキストは、音声で話すよりも速く表示されます。すべてのテキストは、表示された後少なくとも1.5秒間保持されます。ビート間に空白や黒フレームを入れないでください。最初のフレームはすでに停止する価値のあるものを表示しています(Xがサムネイルとして使用するもの): 強力な画像、またはフックの最初の単語がすでに画面に表示されているもの。
  5. すべてのカットは自分でチェックすること。 静止画、コンタクトシート、音声測定を使用し、修正してから表示します。未完成または半ば構築中のプレビューは絶対に表示しないでください。
  6. あなたは聴くことができません。 音声を測定します(テンポ、ヒット、ラウドネス)。ユーザーに2〜3つの音楽テイクを提示し、耳で選んでもらいます。
  7. ユーザーに代わって投稿、公開、プッシュしてはいけません。また、APIキーを印刷してはいけません。
  8. ユーザーが商用公開できるサウンドと音声のみを使用すること(references/licenses.mdを参照)。

ワークフロー

  1. マシンをチェックする。 node SKILL_DIR/scripts/doctor.mjs を実行します。これは何もインストールしません。サマリーを読みます:不足しているもの、Remotionがここでレンダリングできるかどうか、Blenderのティア、設定されているAPIキー。
  2. インタビュー。 references/interview.md の質問を、各質問にデフォルト値を設定して、短いメッセージで一度に尋ねます。ユーザーは任意の質問に「あなたに任せる」と答えることができます。
  3. リサーチ(オプション、事前に許可を得ること)。 ユーザーが好きなフィルム1〜3本と製品そのものを調査します(references/research.md): 参照動画には scripts/study.py、Xの投稿には scripts/xpost.py、実際のUI、色、フォント、事実についてはユーザーのサイトとコードベース。
  4. アイデアを提案する。 2〜3のアイデアを、それぞれ一文で提案し、選んでもらうのを待ちます(references/craft.md、The idea)。もしユーザーが参照作品を共有した場合、そのアイデアの形に沿って提案し、見た目は真似しないでください。弱いアイデアでよく作られたフィルムは、全体の制作を無駄にします。
  5. 計画と許可。 計画を送信します(フォーマットは以下)。承諾を待ちます。ユーザーが反対した場合は調整します。
  6. 承認されたものだけをセットアップする(references/setup.md)。フィルム用のフォルダを作成し、SKILL_DIR/starter/ をその中にコピーし、git init を実行し、インストールします。
  7. ストーリー。 DIRECTION.md を書きます:すべてのビートとその時間、画面上の内容、サウンド、各事実の出典(references/workflow.md にテンプレートがあります)。構造は references/craft.md から選びます。
  8. 音楽を先に、次に音声。 テイクを生成し、測定し、ユーザーに選んでもらい、選ばれたものを再カットして、そのヒットがストーリーに合うようにします(references/audio.md)。音声ライン、テイク、単語のタイミングは references/voice.md にあります。すべての時間は一つのクロックファイルに記録されます。
  9. 映像を構築する: references/remotion.md(デフォルト)、references/hyperframes.md、references/blender.md(物理的なヒーローオブジェクト)、references/screen-demo.md(実際の実行)。まず最も近い実例を開きます(以下の表)。
  10. 視聴者のようにチェックする(references/finish.md): 各ビートの静止画、コンタクトシート、フレームごとのトランジション、電話サイズでの可読性、ラウドネス、クリック。修正して再チェックします。
  11. ミックス、マスタリング、納品: scripts/mix.py を実行し、--muted フラグ付きでレンダリングし、次に scripts/master.py film.mp4 film-master.mp4 --audio mix.wav を実行します(WAVをマルチプレクスすることで、ヒットが遅れるエンコーダーディレイを回避します)。その後 scripts/deliver.py を実行します。カットを表示し、メモを取り、次のカットを作成します。各カットはフィルム自身のgitでコミットします。
  12. 完了したらクリーンアップする。 このフィルムがインストール・ダウンロードしたすべてのものをリストアップし(installs.json から)、そのサイズとともに表示し、「これらを削除しますか、それとも次のフィルムのために保持しますか?」と尋ねます。ユーザーが選択したものだけを削除し、どれだけの容量が戻ったかを伝えます。

計画メッセージ

プレーンテキストで、以下の順序で、簡潔に送信します:

  1. ユーザーが選んだアイデアを一行で(「30秒のハイプトレーラー:ボイスメモがドロップでToDoリストに変わる」)。
  2. ビートを、開始秒数とともに一行ずつ。
  3. ルック:背景、タイプ、アクセントカラー、製品の表示方法。
  4. 各ジョブのツール(映像、音楽、効果音、音声、単語タイミング、3Dがあれば)、それぞれ無料か有料かを明記。
  5. インストールされるもの(サイズ付き)、サインインやキーが必要なもの。
  6. コスト見積もり(references/tools.md から)と時間見積もり。
  7. 一つの質問。すべてが無料の場合:「これらの無料ツールで進めてよろしいでしょうか?」何かにお金がかかる場合やサインインが必要な場合は、質問に名前を挙げます:「進めてよろしいでしょうか?唯一の有料部分はElevenLabs Musicで、約$0.60です。」

エンジンの選択

  • Remotion(デフォルト): モーショングラフィックス、再構築されたUI、音声に合わせて着地するテキスト、真のモーションブラー。個人および3人以下の企業は無料。より大きな企業はRemotionの企業ライセンスが必要です。該当する場合は計画にこの旨を記載します。
  • HyperFrames: HTML + GSAP、Apache-2.0、ライセンス制限なし。製品がWebアプリであり、実際のHTMLとCSSを再利用できる場合、または企業が4人以上でRemotionライセンスがない場合に適しています。
  • Blenderプレート: 物理的なヒーローオブジェクト(キーボード、デバイス)のみ、かつdoctorのBlenderティアが許可している場合のみ。4Kの静止画を数枚レンダリングし、2Dでアニメーション化します。小さなラップトップでフル3Dアニメーションを実行しないでください。
  • スクリーンデモ: 実際の実行(CLI、エージェント、ワークフロー)が価値を示す場合。1つのウィンドウを録画し、カットし、キャプションを付けます。
  • AIビデオ(有料、オプション): 雰囲気のみ。UI、テキスト、ロゴ、有名人には使用しないでください。

各ジョブのツール選択

完全なリスト(価格、ライセンス、インストールコマンド)は references/tools.md にあります。デフォルト:

  • 音声: ElevenLabs(有料プランがある場合); Mistral Voxtral TTS(安価、プリセット音声、ブランド名の音素ヒント); Kokoro(無料、ローカル実行)。公開フィルムでmacOSの say を決して使用しないでください。
  • 音楽: ElevenLabs Music; Google Lyria 3.5(Gemini API経由); 無料: ユーザーが無料ライブラリから選び、自分でダウンロードするトラック。
  • 効果音: ElevenLabs Sound Effects; 無料: scripts/sfxgen.py(合成されたキット)に加え、キットに不足しているものについてはユーザーがダウンロードするFreesound CC0ファイル。
  • 単語タイミング: whisper.cpp(無料、ローカル); スクリプトが既知の場合、ElevenLabsの強制アライメント。
  • ユーザーが「無料のみ」と言った場合、すべてのジョブに無料のパスがあります。その場合に失われる品質を伝えます。

スクリプト

すべて SKILL_DIR/scripts/ にあります。最初に各スクリプトを --help フラグ付きで実行してください。Pythonのものはnumpyが必要です。ffmpegがPATHに含まれている必要があります。

  • doctor.mjs: マシンチェック(--json でデータ出力)。
  • beatgrid.py, onsets.py, shape.py, keyfind.py: トラックのテンポ、ヒット、ラウドネス形状、キーを取得。
  • recut.py: トラックを再カットし、そのヒットがストーリーに必要な場所に来るようにします。
  • tts.py: ElevenLabs、Mistral、Kokoroからの音声テイク。takes.py: テイクを測定。
  • words.py: 単語タイミング。voicedata.py, bands.py: フレームごとの音声レベルと帯域。
  • sfxgen.py: 15個の合成効果音(クリック、ウーッシュ、インパクト、ライザー、スティング)の無料キット。
  • sfxinfo.py: 各効果音のオンセットとピークを取得し、配置するため。
  • mix.py: 1つのタイムラインJSONから全体のミックスを生成。master.py: ラウドネスを-14 LUFSに調整。
  • stills.mjs, sheet.py, filmsheet.py: 静止画、コンタクトシート、カットとラウドネスのレポート。
  • deliver.py: X用ファイル、サイトループ、ポスターを生成。
  • xpost.py: Xの投稿またはプロフィールを読み取る(無料)。study.py: 参照フィルムをダウンロードして分析。

実例

SKILL_DIR/examples/README.md は各テクニックをフィルムにマッピングしています。構築を始める前に最も近いものを開き、その NOTES.md、次に DIRECTION.md、次にコードを読みます。これらは学習用であり、この製品のために新しいフィルムを作成し、実例のリファインは絶対に行わないでください。

  • ドロップ、シネマバー、ブレードスライス、音声に合わせたテキストのあるハイプトレーラー: voxtral3-trailer/
  • 3Dキーと連続カメラのある製品発表: say-it/
  • 実際の使用例をフィーチャーしたフィルム、ショートカットキーの説明: keys-films/
  • 一つのラインに基づいたモーショングラフィックスループ: dot-of-the-i/
  • HyperFramesでのキーノートスタイル: keynote/
  • 実際の実行のスクリーンレコードデモ: treg-demo.md

カット間のユーザーのメモを読む

  • 「短くして」「もっと早く」: タイトにすることを意味します。セクションを削除するのは、ユーザーが「カット」または「削除」と言った場合のみです。
  • 「退屈」: 通常、一つのアイデアが繰り返されていることを意味します。代わりに異なる実際の使用例を表示します。
  • 「手抜き」: 通常、空フレーム、汎用的なストック、スライドデッキのレイアウト、または仕様ラベルを意味します。
  • 「速すぎる」: テキストが着地した後のホールドが1.5秒未満であることを意味します。
  • 「もっと賢いものが欲しかった」「これは何?」: アイデアが的外れであることを意味し、技術的な完成度ではありません。カットを磨くのではなく、新しいアイデアを提案します。
  • メモが指摘する点のみを変更します。ユーザーが気に入ったものはすべて保持します。

よくある間違い

  • 音楽プロンプトのタイムスタンプを信頼すること。モデルはこれらを無視します。生成、測定、再カットを行います。
  • リファレンスの見た目をコピーしてもアイデアをコピーしないこと。「Coinbaseの広告のように」は、一つのオブジェクト、一つの捻り、一つのラインを意味しました。すべてのビートにキャプションが付いた洗練された説明ビデオでは意味が異なります。
  • 同じオブジェクト(キーの上下)の二つの状態間のクロスフェード。ハードカットを使用します。
  • スライドデッキのように読める遅いテキストイントロ。単語は素早く着地し、その後ホールドします。
  • ストーリーや数字(「56言語、以前は13」)の代わりに仕様ラベル(ボックス内のモデルID)を使用すること。
  • 音声の下で音楽が大きすぎること。会話の下で約10 dB下げます。
  • Chromeをブロックするサンドボックス内でのレンダリング(macOS上のCodex)。レンダリングコマンドをユーザーに渡し、自身のターミナルで実行してもらいます。
  • 8 GBのマシンで2つの重いレンダリングを同時に実行すること。

関連スキル