ビデオプロデューサー は何をしますか?
ナレーション、音楽、映像を組み合わせて完全な動画を作成します。
これはオーケストレータースキルです。以下の機能を組み合わせます。
- スクリプト/ストーリーボード生成 (Claude)
- 音声合成 (Gemini TTS)
- 背景音楽 (Lyria)
- 映像クリップ生成 (Veo 3.1) または画像アニメーション
- 最終アセンブリ (FFmpeg 経由の media-utils)
ワークフロー
ステップ 1: 要件の収集 (必須)
⚠️ このステップはスキップしないでください。すべての回答が得られるまで init_project.py を実行しないでください。
インタラクティブな質問を使用 — 一度に1つの質問をし、応答を待ってから次の質問をします。これにより、協調的な仕様駆動のプロセスが実現します。
質問フロー
⚠️ 以下の各質問には AskUserQuestion ツールを使用してください。 応答内に質問を印刷するだけではなく、ツールを使用して表示されているオプション付きのインタラクティブなプロンプトを作成してください。
Q1: 主題
「動画を作成します!まず、何についての動画ですか?
(例: 製品ローンチ、ブランドストーリー、チュートリアル、説明動画 — または自分で説明してください)」
応答を待ちます。
Q2: 長さ
「動画の長さはどのくらいにしますか?
- 15秒 (短いフック)
- 30秒 (標準的な広告)
- 60秒 (説明動画)
- 2分以上 (詳細)
- または自分で長さを指定してください」
応答を待ちます。
Q3: スタイル
「どのようなビジュアルスタイルにしますか?
- プレミアム/高級感
- 楽しい/遊び心
- コーポレート/プロフェッショナル
- ドラマチック/シネマティック
- ミニマル/クリーン
- または自分でスタイルを説明してください」
応答を待ちます。
Q4: アセット
「使用する既存の画像や映像クリップはありますか?
- いいえ、全て生成します
- はい、画像があります (パスを指定してください)
- はい、映像クリップがあります (パスを指定してください)」
応答を待ちます。
Q5: 音声戦略
「音声はどのように処理しますか?
- カスタム — ナレーション + 背景音楽を生成
- Veoネイティブ — Veoの組み込みダイアログ/効果音/環境音を使用
- 無音 — 音声なし、後で追加」
応答を待ちます。
Q6: 声 (カスタム音声の場合)
「ナレーションの声のトーンは?
- プロフェッショナル
- フレンドリー/温かみ
- エネルギッシュ
- 落ち着いた/心地よい
- ドラマチック
- または自分でトーンを説明してください」
応答を待ちます。
Q7: 音楽 (カスタム音声の場合)
「音楽の雰囲気は?
- モダンエレクトロニック
- シネマティック/壮大
- アップビートポップ
- アンビエント/チル
- コーポレート
- または自分でスタイルを説明してください」
応答を待ちます。
Q8: フォーマット
アスペクト比は?
- 16:9 (YouTube、Web)
- 9:16 (TikTok、Reels、Shorts)
- 1:1 (Instagramフィード)」
応答を待ちます。
Q9: 解像度
解像度は?
- 720p (より高速な生成)
- 1080p (標準HD)」
応答を待ちます。
Q10: モデル
どの Veoモデル を使用しますか?
veo-3.1— 最新、最高品質 (デフォルト)veo-3.1-fast— より高速な生成、やや低品質veo-3— 旧世代veo-3-fast— 旧世代、より高速」
応答を待ちます。
クイックリファレンス
| 質問 | 決定事項 |
|---|---|
| 主題 | シーンの内容とプロンプト |
| 長さ | シーン数 (Veoクリップは4、6、または8秒である必要があります) |
| スタイル | ビジュアルプロンプトと音楽選択 |
| アセット | 生成するか既存を使用するか |
| 音声 | custom、veo_audio、またはsilent |
| 声 | TTSの声の選択 |
| 音楽 | Lyriaプロンプト |
| フォーマット | Veoのアスペクト比 |
| 解像度 | 720pまたは1080pの出力品質 |
| モデル | veo-3.1、veo-3.1-fast、veo-3、veo-3-fast |
ステップ 2: プロジェクトの初期化
ユーザーから回答を得たら、その設定でプロジェクトを初期化します。
python3 ${CLAUDE_PLUGIN_ROOT}/skills/video-producer-agent/scripts/init_project.py \
--name "製品ローンチ動画" \
--duration 30 \
--aspect-ratio 16:9 \
--audio-strategy custom \
--scenes 5
ステップ 3: project.json の設定
ユーザーの回答に基づいて、project.json のシーンプロンプト、ナレーションテキスト、音楽スタイルを編集します。
ステップ 4: 動画のアセンブル
python3 ${CLAUDE_PLUGIN_ROOT}/skills/video-producer-agent/scripts/assemble.py \
--project ~/my_video_project/
プロジェクト構造
プロジェクトを初期化すると、以下のフォルダ構造が作成されます。
my_project/
├── project.json # 設定: シーン、ナレーション、音楽、その他設定
├── storyboard.md # 動画の計画ドキュメント
├── scenes/ # Veoで生成された映像クリップ
│ ├── scene1_intro.mp4
│ ├── scene2_features.mp4
│ └── scene3_cta.mp4
├── audio/ # 音声アセット
│ ├── voiceover.wav # 生成されたナレーション
│ ├── background_music.wav # 生成された音楽
│ └── final_mix.mp3 # ミックスされた音声トラック
├── work/ # 中間ファイル (自動生成)
│ ├── silent_scene1.mp4
│ ├── video_concatenated.mp4
│ └── ...
└── output/ # 最終成果物
└── product_launch_video_final.mp4
スクリプト
init_project.py
新しい動画プロジェクトをフォルダ構造とテンプレートで初期化します。
# 基本プロジェクト
python3 init_project.py --name "My Video" --duration 30
# 特定のディレクトリに作成
python3 init_project.py --name "Demo Video" --output ~/Videos/
# ソーシャル向け縦型動画
python3 init_project.py --name "Instagram Reel" --aspect-ratio 9:16 --duration 15
# Veoのネイティブ音声を使用 (カスタムナレーション/音楽なし)
python3 init_project.py --name "Cinematic Scene" --audio-strategy veo_audio
# より多くのシーン
python3 init_project.py --name "Long Video" --duration 60 --scenes 5
オプション:
| オプション | デフォルト | 説明 |
|---|---|---|
--name | 必須 | プロジェクト名 |
--output | カレントディレクトリ | 親ディレクトリ |
--duration | 30 | 目標時間(秒) |
--aspect-ratio | 16:9 | 16:9, 9:16, 1:1, 4:3 |
--audio-strategy | custom | custom, veo_audio, silent |
--scenes | 3 | シーンプレースホルダーの数 |
assemble.py
動画アセンブリパイプライン全体を調整します。
# フルパイプライン (全て生成 + アセンブル)
python3 assemble.py --project ~/my_project/
# 生成をスキップ (既存のシーン/音声ファイルを使用)
python3 assemble.py --project ~/my_project/ --skip-generation
# ドライラン (実行内容を表示)
python3 assemble.py --project ~/my_project/ --dry-run
パイプラインのステップ:
- ビデオシーンを生成 (Veo 3.1)
- シーンから音声を除去 (カスタム音声の場合)
- ナレーションを生成 (Gemini TTS)
- 背景音楽を生成 (Lyria)
- ナレーションと音楽をミックス
- ビデオクリップを連結
- 音声とビデオをマージ
- 最終動画を出力
project.json 設定
{
"name": "製品ローンチ動画",
"duration_target": 30,
"aspect_ratio": "16:9",
"resolution": "720p",
"audio_strategy": "custom",
"scenes": [
{
"id": 1,
"name": "scene1_hero",
"prompt": "プレミアム製品へのシネマティックなスローズーム、ドラマチックな照明、ハイエンドコマーシャルスタイル",
"duration": 6,
"notes": "音楽のみ、ナレーションなし"
},
{
"id": 2,
"name": "scene2_features",
"prompt": "製品機能のデモンストレーション、洗練されたアニメーション、モダンテクノロジー美学",
"duration": 8,
"notes": "ここからナレーション開始"
},
{
"id": 3,
"name": "scene3_cta",
"prompt": "クリーンな背景にロゴと製品、行動喚起の瞬間",
"duration": 6,
"notes": "音楽が盛り上がり、ナレーション終了"
}
],
"voiceover": {
"enabled": true,
"text": "オーディオの未来をご紹介します。クリスタルクリアなサウンド。一日中快適な装着感。その違いを体験してください。",
"voice": "Charon",
"style": "プロフェッショナル、自信に満ちた、プレミアムブランドの声"
},
"music": {
"enabled": true,
"prompt": "モダンエレクトロニック、プレミアム、洗練された、製品ショーケース、控えめなベース",
"duration": 35,
"bpm": 100,
"brightness": 0.6
},
"assembly": {
"transition": "fade",
"transition_duration": 0.5,
"music_volume": 0.3,
"fade_in": 1.0,
"fade_out": 2.0
}
}
音声戦略
| 戦略 | 説明 | 使用するケース |
|---|---|---|
custom | Veoの音声を除去し、カスタムナレーション+音楽を追加 | ほとんどの動画 |
veo_audio | Veoで生成された音声(ダイアログ、効果音)を維持 | シネマティックシーン、ダイアログ |
silent | 音声を除去し、無音の動画を出力 | 後で音声を追加する場合 |
ワークフロー: 動画の作成
ステップ 1: プロジェクトの初期化
python3 init_project.py --name "ワイヤレスイヤホンプロモ" --duration 30
ステップ 2: ストーリーボードの計画
storyboard.md を編集して動画構造を計画します。
## シーン 1: ヒーロー公開 (0-5秒)
- 映像: 影から現れるイヤホン、プレミアム照明
- 音声: 音楽のみ (ドラマチックなイントロ)
## シーン 2: 音質 (5-12秒)
- 映像: 音波、音楽を楽しむ人
- 音声: ナレーション: 「クリスタルクリアなサウンド。没入感のある低音。」
## シーン 3: 快適性 (12-20秒)
- 映像: フィット感のクローズアップ、ランニングする人
- 音声: ナレーション: 「一日中快適。しっかりフィット。」
## シーン 4: CTA (20-30秒)
- 映像: 製品 + ロゴ
- 音声: ナレーション: 「違いを体験してください。」+ 音楽が盛り上がる
ステップ 3: project.json の設定
ストーリーボードに基づいて、シーンプロンプト、ナレーションテキスト、音楽スタイルを入力します。
ステップ 4: アセンブル
python3 assemble.py --project ~/wireless_earbuds_promo/
ステップ 5: 確認と反復
output/ 内の出力を確認します。調整が必要な場合:
# 既存のシーンで再実行 (音声のみ再ミックス)
python3 assemble.py --project ~/wireless_earbuds_promo/ --skip-generation
作成できるもの
| タイプ | 例 |
|---|---|
| 製品動画 | 製品を紹介する30秒のヒーロー動画 |
| 説明動画 | 使い方や機能の説明 |
| プロモーション/広告動画 | マーケティング広告 |
| デモ動画 | 製品デモンストレーション |
| トレーニング動画 | 社内トレーニングコンテンツ |
| お客様の声 | カスタマーレビュースタイルの動画 |
| ブランド動画 | 会社/ブランドのストーリー |
前提条件
GOOGLE_API_KEY- Veo(動画)、Gemini TTS(音声)、Lyria(音楽)用- FFmpeg がインストールされていること:
brew install ffmpeg
動画スタイルと音楽の組み合わせ
| スタイル | 音楽プロンプト | 声 |
|---|---|---|
| プレミアム/高級感 | "elegant, minimal, ambient, sophisticated" | Charon (情報提供) |
| テクノロジー/モダン | "electronic, futuristic, clean, innovative" | Kore (しっかり) |
| 楽しい/遊び心 | "upbeat, cheerful, acoustic, positive" | Puck (明るい) |
| コーポレート | "professional, inspiring, orchestral lite" | Orus (しっかり) |
| ライフスタイル | "chill, aspirational, indie, warm" | Aoede (さわやか) |
| ドラマチック/シネマティック | "epic, orchestral, emotional, building" | Gacrux (成熟) |
一般的な動画構成
製品動画 (30秒)
0-5秒: ヒーローショット (音楽のみ)
5-15秒: 機能 (ナレーション + 音楽)
15-25秒: ライフスタイル/使用例 (ナレーション + 音楽)
25-30秒: ロゴ + CTA (音楽フェードアウト)
説明動画 (60秒)
0-5秒: フック/問題提起
5-20秒: ソリューションの紹介
20-45秒: 仕組み (3ステップ)
45-55秒: メリットのまとめ
55-60秒: CTA
お客様の声動画 (45秒)
0-5秒: イントロ/名前カード
5-35秒: お客様の声 (複数シーン)
35-45秒: 製品ショット + ロゴ
手動ワークフロー (スクリプトなし)
各ステップを手動で実行する場合:
シーンを生成:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/video-generation/scripts/veo.py \
--batch scenes.json
ナレーションを生成:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/voice-generation/scripts/gemini_tts.py \
--text "ナレーションテキスト..." \
--voice Charon \
--style "Professional, warm"
音楽を生成:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/music-generation/scripts/lyria.py \
--prompt "modern electronic, premium" \
--duration 35
クリップから音声を除去:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/media-utils/scripts/video_strip_audio.py \
-i scene*.mp4
ビデオを連結:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/media-utils/scripts/video_concat.py \
-i silent_*.mp4 --transition fade -o video.mp4
音声をミックス:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/media-utils/scripts/audio_mix.py \
--voice voiceover.wav --music music.wav -o audio.mp3
音声 + ビデオをマージ:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/media-utils/scripts/video_audio_merge.py \
--video video.mp4 --audio audio.mp3 -o final.mp4
提供できる入力ファイル
| ファイルタイプ | 使用方法 |
|---|---|
| 製品画像 | Veoで最初のフレームとしてアニメーション化 |
| ロゴ (PNG) | 最終シーンにオーバーレイ |
| 既存のナレーション | audio/voiceover.wav に配置 |
| ブランド音楽 | audio/background_music.wav に配置 |
| ビデオクリップ | scenes/ フォルダに配置 |
| スクリプト/コピー | ナレーションテキストとして使用 |
制限事項
- Veo 動画時間: クリップあたり最大8秒 (より長い場合は連結)
- Veo 3.1 には音声が含まれます: 全てのクリップに生成された音声があります (カスタムを使用する場合は除去)
- 処理時間: 映像生成はクリップあたり1〜3分
- 解像度: 現在は720pまたは1080p (1080pは8秒のみ)
エラーハンドリング
| エラー | 解決策 |
|---|---|
| "GOOGLE_API_KEY not set" | READMEに従ってAPIキーを設定 |
| "FFmpeg not found" | インストール: brew install ffmpeg |
| "project.json not found" | 最初に init_project.py を実行 |
| ビデオ生成のタイムアウト | 再試行するか、より短い時間を使用 |
| 音声/動画の同期の問題 | シーン時間を調整 |
プロンプト例
シンプル:
"新しいコーヒーメーカーの30秒製品動画を作成してください"
詳細:
"新しいワイヤレスイヤホンの45秒製品動画を作成してください。プレミアムで高級感のある雰囲気で。製品写真を添付します。プロフェッショナルな男性のナレーション。モダンエレクトロニック音楽。YouTube用に16:9で。"
プロジェクト指定:
"「App Demo」という動画プロジェクトを初期化してください。5シーン、合計60秒、TikTok用の縦型フォーマットで"