ビデオプロデューサー は何をしますか?
ナレーション、BGM、およびビジュアルを備えた完全な動画を作成します。
これはオーケストレータースキルです。以下を組み合わせます:
- スクリプト/ストーリーボード生成 (Claude)
- ナレーション合成 (Gemini TTS)
- BGM (Lyria)
- 動画クリップ生成 (Veo 3.1) または画像アニメーション
- 最終アセンブリ (FFmpeg via media-utils)
ワークフロー
ステップ 1: 要件の収集 (必須)
⚠️ このステップをスキップしないでください。すべての回答を得るまで init_project.py を実行しないでください。
インタラクティブな質問を使用 — 一度に1つの質問をし、応答を待ってから次の質問をします。これにより、協調的な仕様駆動のプロセスが実現します。
質問フロー
⚠️ 以下の各質問には AskUserQuestion ツールを使用してください。応答に質問を印刷するだけではなく、ツールを使用して、表示されているオプションを含むインタラクティブなプロンプトを作成します。
Q1: 主題
「動画を作成します!まず — 何についてですか?
(例: 製品発表、ブランドストーリー、チュートリアル、説明動画 — または独自のものを説明してください)」
応答を待ちます。
Q2: 長さ
「動画の長さはどれくらいにしますか?
- 15秒 (クイックフック)
- 30秒 (標準広告)
- 60秒 (説明動画)
- 2分以上 (詳細)
- または独自の長さを指定」
応答を待ちます。
Q3: スタイル
「どのようなビジュアルスタイルにしますか?
- プレミアム/高級感
- 楽しい/遊び心
- コーポレート/プロフェッショナル
- ドラマチック/映画的
- ミニマル/クリーン
- または独自のスタイルを説明」
応答を待ちます。
Q4: アセット
「使用する既存の画像や動画クリップはありますか?
- いいえ、すべて生成します
- はい、画像があります (パスを提供)
- はい、動画クリップがあります (パスを提供)」
応答を待ちます。
Q5: 音声戦略
「音声はどのように処理しますか?
- カスタム — ナレーション + BGMを生成
- 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)
- BGMの生成 (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
動画スタイルと音楽の組み合わせ
| スタイル | 音楽プロンプト | 声 |
|---|---|---|
| プレミアム/高級感 | "エレガント、ミニマル、アンビエント、洗練された" | Charon (情報提供) |
| テック/モダン | "エレクトロニック、未来的、クリーン、革新的" | Kore (しっかり) |
| 楽しい/遊び心 | "アップビート、陽気、アコースティック、ポジティブ" | Puck (明るい) |
| コーポレート | "プロフェッショナル、感動的、オーケストラライト" | Orus (しっかり) |
| ライフスタイル | "チル、アスピレーショナル、インディー、温かみ" | Aoede (さわやか) |
| ドラマチック/映画的 | "壮大、オーケストラ、感情的、構築的" | 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 "プロフェッショナル、温かみ"
音楽の生成:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/music-generation/scripts/lyria.py \
--prompt "モダンエレクトロニック、プレミアム" \
--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用の縦型フォーマットで。」