Communitygithub.com

PhucDnag/video-3d-agent

脚本に沿った9:16縦型3D動画を制作します。美しく豊かな映像で、音声や字幕と同期し、金融・知識・家族・感情・自己啓発など様々なテーマに対応します。

video-3d-agent とは?

PhucDnag/video-3d-agentは、AIエージェント(Claude Code、Coder、Codex等)上で動作するスキルで、スクリプトとナレーションを元に、9:16の縦型3D動画を制作します。各カットはナレーションの意味を正確に視覚化し、字幕と同期した動きや変化を含むため、音声がなくても内容が理解できます。このスキルの特徴は、「ビート」と呼ばれる意味の単位でスクリプトを分析し、各ビートに`visualClaim`(視覚的主張)を割り当てて、直接的な描写から抽象概念の比喩まで、発言に忠実な映像を生成する点です。多様なアートディレクション(色彩、素材、照明、カメラワーク)を適用し、単調な映像を避けるためのチェックリストも内蔵。また、ナレーションの感情表現(強度、速度、強調)も指示でき、TTSエンジンの制限を認識しつつ、映像と音声の調和を図ります。対応プラットフォームは、スキルが実行されるAIエージェントの環境に依存し、プロジェクトのレンダリングパイプライン(scene, camera, asset等)と互換性を持つよう設計されています。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/PhucDnag/skill_tao_video/tree/HEAD/.agent/skills/video-3d-agent

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

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

ドキュメント

ナレーションに合わせた3D動画ディレクションスキル

目標

スクリプトとナレーションを、9:16の縦型動画に変換します。美しい3D映像で、音声がなくても内容が理解できるようにします。各カットは、話されている内容を正確に視覚化し、字幕と同期し、視認可能な変化やアクションを含む必要があります。キャラクター、オブジェクト、背景、構図、色彩、素材、照明、動きを多様化し、すべての動画が金色のクリスタル、ネオン、グラフ、時計、オービットカメラにならないようにします。

プロジェクトの実際のレンダラー、シーン、CLIとの互換性を維持します。コードで確認されていないアセット、動き、アライナー、AIプロバイダー、コマンドが存在すると説明したり約束したりしないでください。エンジンが新しいシーンをまだサポートしていない場合は、利用可能な形状/アセットの最も適切な組み合わせでシーンを表現し、制限を明確に記述します。ユーザーがソフトウェアの修正を要求した場合にのみ、レンダラーを拡張します。

ディレクションプロセス

  1. 完全なスクリプトを読み、シーン生成、TTS、字幕タイミング、レンダラー、実際にサポートされているシーン/カメラのパイプラインを確認します。内容、トーン、文の意味はそのまま保持します。
  2. 発話を意味のビートに分割します。1文=1シーンとは限りません。各ビートについて、原文のセリフ/字幕、主旨、主語、アクション、目的語、感情、因果関係、必ず表示すべきもの、誤って視覚化してはいけないものを記録します。
  3. まず直接的な視覚化を選択します。発話が特定の人、物、アクション、場所に言及している場合は、それを見せます。抽象的な概念には、シンプルで理解しやすい視覚的な比喩を用い、意味を明確にする場合にのみ使用します。否定語、比較、転換、結果に注目し、トピックのキーワードだけを追わないでください。
  4. 発話のリズムに従ってストーリーボードを作成します。ショット、メインアクション、フレーム/アングル、照明・色彩・素材の設計、遷移、関連するビート間のキャラクター/小道具の継続性を決定します。各ショットは1つの主要なアイデアまたはアクションに焦点を当てます。
  5. 動画全体の感情の弧を設計します。内容に合った質問、奇妙な画像、または未完了のアクションで始めます。展開部では規模/ペースを徐々に上げます。重要なアイデアのために最も強力なリビールまたは瞬間を取っておきます。スクリプトにある場合は、印象的な画像/感情または行動喚起で終了します。メッセージを歪めるセリフ、事実、またはひねりを自分で追加しないでください。
  6. 各ビートとスクリプト全体のニュアンスに従ってナレーションの読み方を指示します。最初から最後まで単調な声にならないようにします。TTSまたは録音を作成する前に、各ビートの感情、強度、速度、強調、休止を記録します。
  7. 実際のオーディオ/字幕とタイミングを合わせます。パイプラインが提供する場合はワードタイミング/アラインメントを使用します。そうでない場合は、既存のセグメントタイミングを使用し、制限された精度をマークします。単語ごとのタイムスタンプがない限り、単語ごとに同期したとは主張しないでください。
  8. プレビュー画像とともにオーディオを聞き直します。不自然な読み、間違った強調、単調な声、表情/動きと合わない部分を修正します。プロジェクトの正しいプロセスを使用して最終ファイルをレンダリングします。

字幕の忠実性とビジュアルリズムのルール

  • 各ビートにはvisualClaimが必要です。視聴者が見る内容を正確に説明する文で、ナレーションと正確に一致する必要があります。レンダリング前に、ストーリーボードを各字幕文と照合します。
  • アイデアが提示されたらすぐに主語をフレームに入れます。アクションは動詞句の近くで開始します。結果は、ナレーションが結果を述べるタイミングで表示します。視聴者が認識できるように、ナレーションの少し前に準備画像を示すことはできますが、結果を早まって明かさないでください。
  • アイデアの境界、休止、または主語の変更でシーンを切り替えます。意味のまとまりの途中でカットしないでください。正しく視覚化し続けられる場合は、1つの連続した画像を複数の文にわたって保持できます。意味が変わった場合は、長い文を複数のショットに分割できます。
  • カラオケ字幕とナレーションは同じタイミングソースを使用する必要があります。ワードアラインメントを偽装するために、文の長さを均等に分割しないでください。字幕は読みやすく、綴りが正確で、コントラストがあり、重要なアクションを覆わないようにします。
  • 否定/対比については、避けるべき2つの状態またはアクションを明確に示します。発言に反する肯定画像を使用しないでください。アドバイスについては、漠然としたアイコンを表示するだけでなく、具体的なアクションを視覚化します。
  • ショットはオービット/ズームだけではいけません。内容を伝えるのに役立つアクション、変形、インタラクション、またはリビールが必要です。カメラはストーリーテリングをサポートし、アクションを置き換えません。
  • 冒頭は、スクリプト自体の内容を使って好奇心を喚起します。詳細、質問、結果、または注目を集める選択肢から直接始めます。長いロゴイントロ、一般的なフライスルー、まだ関連性のない美しいシーンは避けてください。
  • 編集のペースは、ナレーションと重要性のレベルに合わせて調整します。リスト/素早い対比には短いショット、感情、観察が必要な操作、または熟考が必要なアイデアには長いショットを使用します。ショットサイズの変更、動きの方向、声の間(ある場合)、またはリビールを使用してリズムを作成します。興奮を生み出すために単に素早く連続してカットしないでください。
  • 視覚的な動機を持つ遷移を使用します。形状/動きによるマッチカット、シーン内のオブジェクトによるレンズの隠蔽、フォーカス/照明の変更、または発話のリズムでのストレートカット。装飾的で繰り返しの遷移効果は制限します。

感情豊かなナレーションディレクション

  • ニュアンスを選択する前に、文の意味と関係を理解します。各ビートについて、emotion、intensity(弱/中/強)、pace(遅/中/速)、emphasis(強調すべき単語/フレーズ)、必要に応じてpauseAfter/pauseBeforeを記録します。これらのラベルはディレクションのガイドです。API/スキーマが実際にサポートしている場合のみ、TTSに渡します。
  • 自然な感情の曲線を作成します。明確で好奇心をそそる始まり、落ち着いて聞きやすい説明部分、確実な強調による重要なアイデア、温かく誠実な感動的な部分、叫ばないが真剣な警告部分、落ち着いた結論。スクリプトに合わせて調整し、すべての動画に同じ読み方パターンを適用しないでください。
  • アイデアの境界、リビールの前、修辞的な質問の後、または視聴者が熟考する必要がある文の後に、意図的に休止を使用します。すべての文の後に長い休止を挿入したり、句読点を変更して意味を変えたり内容を修正したりしないでください。
  • 音量/速度を上げるだけでなく、イントネーションとリズムで強調します。悲しい内容に過度に興奮した広告のような読み方、中立的な知識にセンセーショナルな読み方、または穏やかなアドバイスに過度に感傷的な読み方は避けてください。発音が明確で、音量が安定しており、理解を損なわないようにします。
  • 複数の音声オプションがある場合は、年齢/感情/ジャンルに適した声を選択し、動画全体で一貫性を保ちます。ナレーションストーリーテリングの意図がない限り、ビート間で声を変更しないでください。
  • 表情コントロールを設計する前に、実際のTTS機能を確認します。現在のパイプラインでは、voice、rate、pitchフィールドを設定できます。感情/スタイルタグやセグメントごとの韻律制御がデフォルトで存在するとは想定しないでください。エンジンがrate/pitchのみの場合は、パイプラインがサポートするスクリプトセグメンテーション、句読点、休止を使用します。表情の制限を記録します。確認せずにTTSが人間のように表現豊かであると宣言しないでください。エンジンが対応できない微妙な演技が必要な場合は、人間による録音または表現力豊かなコントロールを備えたエンジンの統合を個別の変更として提案します。
  • 声と映像を一緒に機能させます。優しい文には柔らかい動きと少ないカット、断定的な文には明確なポーズとタイトなカット、驚きの文には適切なタイミングでのリビール、静かな文には十分に長いショット。映像は感情をサポートしますが、内容と矛盾する誇張はしません。

意図的なビジュアルの多様性

テーマと感情に合ったスタイルを選択し、動画全体に1つの美的プリセットを適用しないでください。キャラクターアニメーション、ミニチュア/マケット、クレイ、洗練されたローポリ、ガラス/セラミック/木/布/金属素材、日常のジオラマ、様式化された建築、自然、または抽象的な象徴を組み合わせることができます。明確な形状、奥行きのある表面、立体感を生む照明、段階的な色彩、すっきりとした背景、スマートフォン画面で目立つ被写体を優先します。

各動画には、ストーリーボードの前に短いアートディレクションが必要です。テーマ/感情、主要な形状と素材の種類、3〜5色のカラーパレット、照明スタイル、キャラクターデザイン(ある場合)、コントラスト、様式化の程度。例:家族の話には木、布、暖かい窓辺の照明を使用。科学的な内容にはカットアウェイモデル、半透明プラスチック、実験室の照明を使用。緊張したテーマは、タイトな構図と強いコントラストで始め、解決に伴って空間を徐々に開放します。これは柔軟なガイダンスであり、必須のプリセットではありません。

階層によって視覚的な興味を生成します。1つの主要な焦点、1つの補助要素、そして詳細の少ない背景。感情/詳細にはクローズアップ、インタラクションにはミディアムショット、規模や変化にはロングショットを使用します。透視図法と被写界深度は、被写体を明確にする場合にのみ使用します。小さなサイズでも認識可能なシルエット、読み取り可能な表情/ポーズ、明確に区別可能な素材。3D画像内の疑似テキスト、要求されていないロゴ/透かし、変形して認識しにくいオブジェクト、 burnt-out ハイライト、忙しすぎる背景、均一なネオンパレットは避けてください。

ストーリーボードを確定する前に、隣接するショットを確認し、繰り返しが発生した場合に少なくとも2つの要素を積極的に変更します。被写体/小道具、場所、ショットサイズ/構図、カメラアングル/動き、カラーパレット、素材、または遷移タイプ。継続性が必要な場合を除き、同じヒーローオブジェクトを2つ以上の連続したビートで繰り返さないでください。3つの連続したショットで同じカメラタイプを使用しないでください。多様性は、発話内の意味の変化に由来する必要があり、恣意的な色の変更ではありません。

同じストーリーライン内で、キャラクター、服装、小道具、時間、移動方向の継続性を維持します。各ストーリーラインに1つの主要なカラーパレットを使用します。感情の変化を表現するために、照明やアクセントカラーを変更できます。パーティクル/グローと背景のディテールを制限して、被写体、テキスト、字幕領域を乱雑にしないようにします。

動画間の多様性は、色や小道具を変更するだけでなく、スクリプトに適したストーリーテリング方法を変更することで実現します。一貫したキャラクターストーリー、一連のビネット、空間を通る旅、2つの選択肢の対比、変化のタイムラプス、または内部モデル/構造の探索を選択できます。メッセージを理解しやすくする場合にのみ、1つのストーリーテリング構造を使用します。以前の動画の履歴がある場合は、最近のアートディレクションと特徴的なショットシーケンスの繰り返しを避けます。データがない場合は、履歴を照合したと主張しないでください。

シーンの選択と実現可能性

  • 使用する前に、コードとプリセットに登録されているシーン/カメラを確認します。古いシーンライブラリは実行可能なオプション/フォールバックですが、すべてのスクリプトをパイプ、歯車、またはクリスタルに押し込む理由にはなりません。
  • プロジェクトがsceneSpec/シーングラフをサポートしている場合は、環境、アクター、オブジェクト、アクション、カメラ、遷移の構造化された説明を提供します。アセットリゾルバー/レンダラーが実際にサポートするジオメトリ、リグ、マテリアル、アニメーションのみを使用します。
  • scene列挙型のみをサポートしている場合は、存在する最も適切な列挙型を選択します。列挙型/カメラを発明して、レンダラーが理解するだろうと宣言しないでください。必要に応じて、希望するシーンをストーリーボードとして提示し、ユーザーがエンジンの拡張を決定できるようにします。
  • 実行可能なアクションを優先します。歩く、置く/持つ、開く/閉じる、落ちる、与える/受け取る、構築する、割れる、成長する、方向を変える、出会って去る。複雑な人間のアニメーションには有効なリグ/クリップが必要です。ない場合は、シルエット、シンプルなブロッキング、または代替オブジェクトを使用します。
  • ソースと使用権が明確なライブラリアセットのみを使用します。プロジェクトに対応するプロバイダーがない場合、テキストから任意の3Dモデルを生成できると宣言しないでください。パイプラインがメタデータをサポートしている場合、どのアセットがプロシージャル、ライブラリ、生成、またはフォールバックであるかを記録します。

タイムラインとデータ構造

既存のプロジェクトスキーマと必須フィールドを維持して、互換性を確保します。サポートされている場合、各セグメントには以下を含める必要があります。

{
  "id": "beat_01",
  "vi": "音声/字幕の原文",
  "meaning": "ビートの意味",
  "visualClaim": "見えるべき具体的なアクション/画像",
  "mustShow": ["主語", "アクション", "あれば結果"],
  "mustNotShow": ["発言と矛盾する展開"],
  "continuityIds": ["シーンをまたぐキャラクターまたは小道具"],
  "scene": "プロジェクトの有効なシーン",
  "camera": "プロジェクトの有効なカメラ",
  "actions": [{"verb": "見えるアクション", "cue": "あればタイミングをトリガーするフレーズ"}],
  "timing": {"source": "tts_alignment または segment_timing", "startSec": null, "endSec": null}
}

これはストーリーボードの提案です。レンダリング中のプロジェクトに互換性のないフィールドを追加しないでください。最終的な時間は、レンダリングの直前にオーディオ/TTSパイプラインから取得する必要があります。レンダラーがタイムスタンプを必要とする場合、レンダリングタイムラインでnullのままにしないでください。文ごとのタイミングしかない場合は、セグメントごとにビートを維持し、タイムスタンプをでっち上げないでください。

品質チェック

エクスポートする前に、各ビートをチェックリストに照らして確認します。

  • 発言の正確さ: 音声を消しても主要なアイデアが推測できること。画像が否定、主語、感情、因果関係と矛盾しないこと。
  • タイミングの正確さ: 重要なアクションは、対応するフレーズが読まれるときに表示されること。パイプラインで検証可能な範囲で、字幕とナレーションがずれていないこと。
  • 美しさと明確さ: 被写体が目立つこと。意図的な配色、奥行きを生む照明/素材、小さな画面でも読み取れる構図。字幕を覆わないこと。
  • 動きがあること: ショットにはアクション/変形/リビールが含まれていること。オービットやズームの乱用がないこと。
  • 多様性と継続性: 隣接するシーンは意図的に異なるが、関連するキャラクター/小道具は一貫していること。
  • 魅力的でリズミカルであること: 最初の1〜3秒はフックに直接関連していること。内容の進行に応じた視覚的な変化があること。クライマックス/リビールは主要なアイデアに役立つこと。アクションの途中で終わらないこと。
  • アートディレクションがあること: 各ストーリーライン内でスタイル、パレット、照明、素材が一貫していること。各ショットに視覚的な階層があること。装飾のみのエフェクトを使用していないこと。
  • 声の変化があること: 各アイデアに適したニュアンス、強調、休止があること。ビジュアルリズムが声に付随していること。TTSのすべての制限が明確に述べられていること。
  • レンダリングが可能であること: アセットが解決できること。空または黒いシーンがないこと。オブジェクトがフレームからはみ出していないこと。期間とオーディオ/ビデオがツールの制限内で一致していること。

利用可能なツールで基準を検証できない場合は、合格として報告する代わりに、未実施のチェックとして記録します。パイプラインがサポートしている場合、またはユーザーが要求した場合にのみ、ストーリーボード/マニフェスト/QAレポートをエクスポートします。

発言に基づく画像選択の例

  • 「毎日、あなたはほんの少しだけ進歩する」:同じキャラクターが机で練習し、日を追うごとに徐々に熟練していく。時間の経過を表現するために照明/天気を変更。グラフは、文が実際に数字について言及している場合にのみ使用。
  • 「去りたいと思う人は引き留められない」:廊下で手を離す2人、1人はドアに向かって歩いていく。再会で終わらないこと。
  • 「お金は小さな出費で消えていく」:キャラクターが電話に触れ、いくつかの小さな請求書/取引が残高から次々に差し引かれる。漏れるパイプをデフォルトで使用しないこと。
  • 「両親と過ごす時間はもう残り少ない」:家族の食事、カレンダーのページがめくれる、キャラクターが両親の隣に戻って座る。ナレーションが優しいなら、そのリマインダーを悲劇的なシーンに変えないこと。
  • 「規律とは、やる気がなくても行動することです」:キャラクターがためらいながらも、行動を開始するために物理的に一歩を踏み出す。
  • 「彼女は大きなチャンスを逃したと気づいた」:キャラクターが手を伸ばすが、物体が消える/遠ざかる。表情を読み取れること。
  • 「テクノロジーは私たちの生活をより便利にした」:以前の生活(例:タイプライター、地図、長い行列)から現在の生活(例:スマートフォン、GPSアプリ、オンライン決済)への分割画面またはシームレスな変形。
  • 「そのニュースは業界全体に衝撃を与えた」:中心点から外側に広がる波紋または衝撃波。ドミノが倒れる様子。
  • 「どちらの道を選ぶかで未来が決まる」:分岐する道路またはフォーク。2つの異なる環境または結果が暗示される。
  • 「彼は諦めそうになったが、最後の力を振り絞った」:キャラクターが倒れる/膝をつく、拳を握る、ゆっくりと立ち上がる。

技術的制約

このスキルは、基礎となるエージェントプラットフォーム(Claude Code、Coder、Codex等)の機能に依存します。3Dレンダリングパイプラインが利用可能であること(例:Three.js、Blender、専用エンジン)、TTSサービス、字幕生成ツール、プロジェクト固有の設定スキーマが必要です。すべてのコマンド、API、アセットパスは、実際のプロジェクト環境に対して検証する必要があります。

関連スキル