Communitygithub.com

7zones/premium-film

ブランドガイドラインに従い、検証済みの事実のみを使用してプロフェッショナルな動画をコードで制作します。Remotion を使用し、モーションデザイン、3D、実写、AIナレーション、生成画像、音楽、効果音、キャプション、1080p60 出力に対応。

premium-film とは?

このスキルは、ブランドフィルム、製品紹介、イベントオープナー、ティーザー、プロモなど、高品質でプロフェッショナルな動画をコードで制作するための包括的なワークフローを提供します。核となるのは、事実確認を最優先し、あらゆる要素で「プレミアム」な品質を追求するという原則です。Remotion(React)で映像をレンダリングし、Pythonでナレーション、音楽、サウンドミックスを生成します。対応するAIサービス(OpenRouter、Gemini、ElevenLabs、GPT Image)はすべてオプションであり、利用可能なリソースに応じて最適なモデルを自動選択します。品質チェックリスト、事実確認ワークフロー、レビューツール、スタータープロジェクトが含まれており、動画制作の全フェーズ(構想、スクリプト作成、ナレーション録音、スコア作成、レンダリング、修正、レビュー)をカバーします。

対応✓Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/7zones/premium-film-skill/tree/HEAD/skills/premium-film

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

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

ドキュメント

プレミアムフィルム

ブランドガイドラインに従い、確認済みの事実のみを使用し、プロフェッショナルな見た目とサウンドの動画をコードで制作します。以下の「オーナー」とは、あなたがフィルムを制作する相手であり、多くの場合クライアントからのフィードバックを伝える役割を持ちます。例は実際のクライアントフィルムから引用しています(case-studies.md)。

基準は「プレミアムで、洗練されていて…ピクセルパーフェクト」です。オーナーの言葉で失敗例を挙げると:「これらのピルは安っぽく見える」「かなり基本的…単にスクリプトをなぞっているだけ」「トランジションがすごく変」「速すぎて読めない」「奇妙にドロップする」「声が若すぎる」「画像がすごく偽物に見える」「無音状態からの突然の爆音はやりすぎ」。

ルール

  1. 何よりも正確な情報を最優先。 あらゆる事実、名前、肩書き、数字、日付、引用、ロゴ、発音は、スクリーンに表示したりナレーションで使用する前に一次情報源と照合し、何かが変更された場合は再度確認します。決して invent(創作)したり推測したりせず、情報源がない場合は確認するか質問します。公式の肩書きはそのままコピーし、ロゴはオーナー自身のファイルからのみ使用し、実在の組織には実際の写真(全身、後光なし、生成された顔なし)を使用します。製品デモでは、明らかに架空のデータ(存在しないドメイン、ドキュメント用IP、考案された名前)のみを使用します。誤った主張が一つあるだけで、フィルムの他のすべての要素が台無しになります。
  2. すべてのコンポーネントをプレミアムに。 タイポグラフィ、カード、アイコン、UI、チャート、トランジション、照明、声、音楽、サウンドのそれぞれが、このフィルムのためにハイエンドな基準でデザインされています。ストック、テンプレート、「十分に良い」ものは一切使用しません。すべてのアイデアは、ネガティブスペースを活用した大規模で目的に合わせたモーションピースとして構築します。実際のスクリーンショットやスクリーンレコーディングは、カメラがその上を移動していても「安っぽく」見えます。ピルラベル、番号付きチップ、追跡された大文字タグ、ドットで結合されたメタデータは使用しません。生成画像はプレートやアセットとしてのみ使用し、100%で確認します。
  3. 奥行き、光、動くカメラ—そしてフルフレーム。 フラットなレイアウト(テキスト左、カード右、無地の背景)は「退屈」に見えます。ヒーローモーメントには、照明が設定されたセットが必要です:反射する床、3Dで回転するオブジェクト、移動する光、空中のほこり、決して完全には止まらないカメラ。すべてのフレームがポスターとして機能する必要があります:奥行きのレイヤー、光源、フレームを埋めるヒーロー(スマートフォンで読めるテキスト)、暗い空白の中の小さな要素であってはなりません。ブリーフの箇条書きは最低限であり、デザインのすべてではありません。
  4. すべてのトランジションは実際の動きであること。 カメラの動き、光、またはあるシーンから次のシーンへ移動する要素。フラットな白いフラッシュやポップインは決して使用せず、ヒットには数フレームのアタックを付けます。
  5. 読みやすく、一定のペース。 見出しは2秒以上、結果はそのラインの後3秒以上表示します。リストは一度に1項目ずつ表示します。チャプター全体でエネルギーは一定に保ちます。尺に合わせてコンテンツを詰め込まないでください。
  6. ナレーションは神聖なもの。 タイムストレッチしたり、ポーズを詰めたりしないでください:代わりに言葉を削除して再録音します。ラインの間で呼吸し、チャプターの変わり目では少し長めに間を取ります。各チャプターは、前のチャプターにリンクするラインで始まります。フィルム全体とすべてのパッチで、言語ごとに1つの声と1つのモデルを使用します。オーナーが耳で選べるようにします。
  7. 音楽は着地し、運び続ける。 解決は視覚的なクライマックスと正確に一致し、音楽は次のラインの下でも流れ続けます。絵がピークに達したときに音楽が途切れることはなく、ハードカットでピースを切り替えることもなく、最後は控えめに終わります。
  8. 編集者のように検証する。 あなたはフィルムを見たり聞いたりできないので、自分の感覚の代わりをします:すべての言語のすべてのシーンのコンタクトシート、すべてのトランジションのフレームストリップ、すべてのテキストモーメントのフルサイズ静止画、自動グリッチおよびオーディオスキャン、ラインごとのラウドネス、そしてアクションを起こす前にフレームで確認したクレームを含むAIレビュー。この方法でチェックされていないカットは完了していません。
  9. ループを所有し、平易に報告する。 適切なデフォルトを決定し、何を決定したかを伝えます。自分のコントロールの及ばないもの(不足している写真、キー、お金)についてのみ質問します。ファイル名やコード名を使わずに報告します:何が変更されたか、何がチェックされたか、何がチェックされなかったか、ファイルがどこにあるか、どれを送信すべきか。

完全なテイストガイドと各ルールの理由は、quality-bar.mdにあります。デザインを始める前に読んでください。

制作するもの

まずフィルムタイプを選択します。それによって形状が決まります(詳細とタイミングはcase-studies.mdを参照):

タイプ標準尺ナレーション画像
製品紹介60~100秒、言語ごとに1カット通常なし;画面上のライン、オプションでキャプション製品の主要アイデアをカスタムデザインしたモーションピース;架空データのみ
ブランド/組織フィルム2~4分、マスター言語+他のカット1人のナレーター組織の実際の写真、人物、イベント+モーションデザイン;すべての主張を事実確認
イベント/カンファレンスオープナー1.5~3分、クライアントのスクリプト深く力強いシネマティックな3Dセット、奥行き再構築された写真、公式の名前とロゴ、イベントタイトルで着地するクライマックス
ティーザー/ショートプロモ15~45秒ビートごとに1つの短いライン、またはなし3つのビートで一つのアイデア:フック、ターン(ヒーローモーメント)、名前

すべてのタイプで機械は同じです:Remotion (React) が1080p60で映像をレンダリングします。1つのタイムラインファイルが映像、ナレーション、音楽、キャプションを駆動します。Docker内のPythonがナレーション、スコア、サウンド、ミックスを生成します。測定とAIレビューが結果をチェックします。リリーススクリプトがチャンクでレンダリングし、成果物をパッケージ化します。

開始:利用可能なものを確認する

新しいプロジェクトで tools/setup.sh を実行します。最後に tools/providers.py が実行され、.env 内のキーを確認し(決して印刷しません)、各サービスが現在提供しているものを尋ね、ジョブごとに最適なものを選択します:映像と音声のレビューには最新のGemini Flash、声のオーディション(ElevenLabsとGemini TTS)、プレートには最新のGPT Image。OpenRouterが推奨されます(1つのキーで多くのモデル、可視の支出制限)。無料のGemini APIキーだけでもナレーションとレビューをカバーできます。キーがなくても、フィルムはデザインされたタイポグラフィ、作曲された音楽、すべてのチェック、リリースを取得します。キーがないと品質が低下する場合は、その人に一度尋ねてください。文言、フォールバック、およびお金のルールはproviders.mdにあります。これらのドキュメントのモデル名よりも、ツールの現在の選択を信頼してください。

ワークフロー

新しいフィルムではフェーズを順番に実行します。修正の場合は、フィードバックが影響するフェーズにジャンプし、その後レビューとリリースを再度実行します。このチェックリストをノートにコピーしてチェックを入れていきます:

フィルム進捗:
- [ ] 0 セットアップ:ツールが利用可能、キーが確認済み、予算が合意済み
- [ ] 1 インテーク:ブリーフの引用、ブランドファイル、成果物の合意、マシンの確認
- [ ] 2 事実:すべての主張に情報源とステータスがあるファクトシート、回避リスト
- [ ] 3 スクリプト:言語の設定、タイムライン内のナレーション、すべての言語のすべての画面上の単語
- [ ] 4 ストーリーボード:チャプターごとに1つのアイデア、ハンドオフの計画、1つのルックサンプルの提示
- [ ] 5 構築:キューからのシーン、すべての言語で静止画をチェック
- [ ] 6 ナレーション:声のオーディションとロック、すべてのラインのカット確認、クリーニング、測定
- [ ] 7 サウンド:スコア、エフェクト、ミックス(すべてのラインで声≥音楽より6 dB)
- [ ] 8 レビュー:シート、ストリップ、スキャン、AIレビュー;すべての発見を修正または説明;事実を再確認
- [ ] 9 リリース:出力の検証、zipのテスト、配信状態のコミット、オーナーにどこに何を送るかを伝える

1. インテーク

  • オーナーが送信したすべてのもの(ブリーフ、スクリプト、レポートPDF、チャットのスクリーンショット、以前のフィルム)を読みます。彼らの言葉をラウンドログとともに docs/brief.md に引用します。必須の文言と公式の名前をメモします。
  • 情報源からブランドの真実を収集します:公式ロゴファイル、サイトのCSSまたはブランドPDFからのパレット、フィルムのすべての言語(アクセント、発音区別符号、他のスクリプト)をカバーするフォント、各言語の製品名とUIの文言。
  • 言語と成果物を事前に確定します(言語ごとのマスター、キャプション付きカット、.srt、サムネイル、zip)。オーナーが以前のラウンドから既にパッケージを持っている場合は、それを完全にミラーリングします。
  • マシンを確認します:空きディスク、Dockerの実行、同じフィルム上の他のレンダリングやセッション(2つのエージェントが1つのフィルムで互いの作業を上書きしました。見つけたら停止して、誰が所有しているか尋ねてください)。

2. 調査と事実

  • 実際の情報源を読みます:tools/webpage.sh <url> <name> は実際のブラウザでページをレンダリングし、そのテキストとスクリーンショットを保存します。サイトがダウンしている場合は、推測する代わりに story-and-research.md のフォールバックリスト(アーカイブコピー、他の公開情報源、次にオーナー)に従います。
  • ブリーフとともにstory-and-research.mdにあるリサーチサブエージェントを実行します:すべての事実に日付の入った情報源とステータス(VERIFIED / SINGLE-SOURCE / SELF-REPORTED / UNVERIFIED / OWNER-STATED)、および回避リストが付けられます。製品フィルムの場合:実際の製品のコードと文言を読み、画面上のすべてのラベル、番号、フローが製品に存在することを確認します。
  • docs/factsheet.md を書きます。ステータスがない限り、何も画面に表示したりナレーションに含めたりしてはなりません。自己申告の数値は帰属表示されます。

3. ストーリーとスクリプト

  • フィルムタイプに適した構造を選び、ナレーションを1つの話される作品として書きます:各チャプターの変わり目でリンクするライン、文に折りたたまれたリスト、話されるように書かれた数字。各言語は翻訳としてではなく、ネイティブで書きます。話さない言語の名前を声に言わせないでください — 名前を表示し、役割で人を紹介します。
  • ラインを src/film/timeline.ts に配置し、キャプション区切りは「 | 」でマークします(そして、フィルムがデザインされたタイプとして表示するラインでは onScreen: true を設定し、字幕が脇にそれるようにします)。また、すべての画面上の単語をすべての言語で src/film/script.ts に入れます(その LANGS リストがフィルムの言語を設定します。最初のものがマスターです)。

4. ルックとストーリーボード

  • チャプターごとに1つのアイデアがあり、それぞれ独自のビジュアルコンセプト、ヒーローモーメント、隣のチャプターに何かを渡す入口と出口を持ちます。それを docs/storyboard.md に書き留めます。
  • 実際の3D、奥行き再構築された写真、または生成されたプレートが効果を発揮する場所を決定します(remotion-craft.md)。全体を構築する前に、ルックを変更するものについては、代表的なフレームまたはクリップを1つ表示します。

5. 構築

  • プロジェクトを開始します: <skill>/scripts/new_film.sh <dir> <Film-Name>(名前は配信ファイル名になります)。次に tools/setup.sh。スターターは動作するフィルムです — タイムライン、シーンクロック、キャプション、フィニッシュ、ガラスとタイプキット、ブルーム、ミラーフロア、ダスト、ライト、デプスフォト、3つのサンプルシーン、オーディオエンジン、および以下のすべてのツール。サンプルシーンを置き換え、アーキテクチャは維持します。
  • 最初にタイムライン:シーン、名前付きキューモーメント、ナレーションスロットは src/film/timeline.ts にあります。シーンはキューからアニメートします(cuesOf(scene, lang))。npm run cues は同じ番号をオーディオに渡します。タイミングはここでのみ変更します。
  • 長いフィルムの場合は、remotion-craft.mdのブリーフパターンを使用して、シーンを並行ビルダーサブエージェントに分割します。あなたはディレクターのままで、すべてのレポートをフレームで検証します。

6. ナレーション

完全な方法はnarration.mdにあります。ナレーターのプロフィールとディレクターズノートを書き、声が間違えるものを audio/vo/say.json でスペルアウトします。tools/providers.py が見つけた声をオーディションし、オーナーに選ばせます。各バッチを1つのリクエスト(tools/vo_prompt.py → tools/tts.py)で録音し、すべてのラインをカットして単語チェックし(tools/cut_lines.py)、クリーニングしてレベル調整し、パッチが同じナレーターのように聞こえるかを測定します(tools/voice_score.py)。正確な声、モデル、プロンプトをREADMEにロックします。

7. 音楽、サウンド、ミックス

完全な方法はmusic-and-sound.mdにあります。デフォルトでは、画像のキューモーメントで変化するライセンスフリーのスコアをコードで作曲します。オーナーが提供した場合のみ、ライセンスされたトラックをそのバーグリッド上でカットします。サウンドデザインは名前付きキューをヒットします。ミックスはラインごとに音楽をダッキングし、AACエンコード用のヘッドルームを確保して-14 LUFSにマスタリングし、声対音楽のテーブルを出力します。

8. レビュー(すべてのラウンドで、何かを表示する前)

完全なチェックリストはreview-and-qa.mdにあります:すべての言語でのプレビューとコンタクトシート、すべてのトランジションのストリップ、すべてのテキストとキャプションモーメントのフルサイズ静止画、すべてのレンダリングでの tools/qa_scan.py、すべてのミックスと配信ファイルでの tools/audio_qa.py、そして tools/review.py(最新のGemini Flashが小さなフィルム全体のコピーを見て聞きます)。確認できる具体的なフラグに対してのみ行動します。そのA/B選好、声の同一性、小さなテキストの判断は信頼できません。すべての画面上の事実をファクトシートと再確認します。

9. リリースと配信

tools/release.sh(release-and-delivery.md)はすべてを構築します:ナレーションチェック、言語ごとのスコアとミックス、キャプション、サムネイル、チャンクでレンダリングされたマスターとキャプション付きカット、結合、ピークチェック、フレームカウント、zip。REDO= はタッチされたチャンクのみを再レンダリングします。LANGS=、VOICE= はサブセットとボイスバージョン用。ZIP_ONLY=1 は再パッケージ化します。出力を検証し、配信状態をコミットし、READMEを更新し、オーナーにパッケージがどこにあるか、送信しても安全であることを正確に伝えます。

10. フィードバックラウンド

working-with-owner.md:チャットのスクリーンショットとタスク中のメッセージをそのラウンドのブリーフとして扱います。新しい主張を最初に事実確認します。表示されたフレームだけでなく、フィルム全体にわたってパターンを修正します。オーナーが批判しなかったものは維持します。レビューとリリースを再実行し、ポイントごとに回答します。次のセッションが見つける場所に、すべての永続的な優先設定を保存します。

スタータープロジェクトのツール

実行します。失敗した場合のみコードを読みます(各ツールの最初の行は、その機能と呼び出し方法を示しています)。Pythonツールは、tools/setup.sh によってビルドされたDockerイメージ(film-audio と film-asr;setup.sh all は film-voice と film-depth を追加)で実行されます:docker run --rm -v "$PWD":/p -w /p <image> python <tool> …。Node、zsh、Swiftツールはホスト上で実行されます。

ニーズツール(プロジェクトルートから)実行環境
セットアップ、キーとモデルの確認tools/setup.sh [all]、tools/providers.pyホスト / film-audio
Webサイトの読み取り(テキスト+スクリーンショット)tools/webpage.sh <url> <name>、tools/webpage.sh archive:<domain>ホスト
ファクトシートの生成tools/fact_check.py <brief.md>film-audio
スクリプトの検証tools/script_validate.pyfilm-audio
ナレーションの生成(プロンプト → TTS)tools/vo_prompt.py → tools/tts.pyfilm-voice
ラインのカットと単語チェックtools/cut_lines.pyfilm-audio
声のスコアリング(一貫性)tools/voice_score.pyfilm-audio
音楽の作曲tools/compose.pyfilm-audio
オーディオのQA(ラウドネス、クリップ)tools/audio_qa.pyfilm-audio
ビデオのQA(グリッチ、フレームカウント)tools/qa_scan.pyホスト
AIレビュー(Gemini Flash)tools/review.pyfilm-audio
リリースビルドtools/release.shホスト
新しいフィルムスターターの作成<skill>/scripts/new_film.sh <dir> <Film-Name>ホスト

設定と環境

.env ファイル(プロジェクトルート)には、必要に応じて以下のキーを含めることができます。すべてオプションです。

OPENROUTER_API_KEY=sk-...
GEMINI_API_KEY=AIza...
ELEVENLABS_API_KEY=...
OPENAI_API_KEY=sk-...

tools/setup.sh は不足しているキーを検出し、利用可能なものに基づいてプロバイダーを設定します。

参照

関連スキル