Communitygithub.com

depth-pov-explainer

Windows上のClaude Codeで、チャンネルブランド、事実、スクリプト、ビート、ElevenLabs v4音声(オーディオタグ付き)、Pixabayストック動画、Remotionレンダリング、サムネイルまで、視聴者を第二人称で呼びかける10分間のクリーチャードキュメンタリーをエンドツーエンドで制作します。

depth-pov-explainer とは?

このスキルは、Claude Code(Windows環境)を使用して、第二人称で視聴者に語りかける約10分間のクリーチャードキュメンタリー「Why You'd Never Want To Meet A [動物名]」を完全自動生成します。動画はフラットベクターのモーショングラフィックス(静止スライドなし)で、RemotionアニメーションとElevenLabs Eleven v4音声(感情豊かなオーディオタグ付き)を組み合わせ、1文につき1つのビジュアルアイデアを提供します。ブランド設定(チャンネル名、キャラクター、カラー、フォント)、動物の事実調査、スクリプト作成、シーンビート設計、音声生成、ストック動画収集(Pixabay API自動取得、NOAA手動取得など)、Remotionレンダリング、サムネイル作成までの全工程をカバーします。参照実装(例としてシロナガスクジラ動画)が付属しており、学習とオリジナル制作の両方を支援します。このスキルは、高品質な自然ドキュメンタリー動画チャンネルを運営したいクリエイターや、Remotionに興味がある開発者に最適です。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/LexroAI/depth-pov-explainer/tree/main

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

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

ドキュメント

Depth POV Explainer

「Why You'd Never Want To Meet A [動物]」という約10分の動画を制作します。フラットベクターのモーショングラフィックスがRemotionでアニメーション化され(すべてが動き、静的なスライドはありません)、ElevenLabs Eleven v4でナレーションが吹き込まれ、1文につき1つのビジュアルアイデアが提示されます。ユーザーがどの言語で書いても、常に英語で会話します。スクリプト、ラベル、プロンプトもすべてアメリカ英語です。すべてのJSON/TXT/.envはUTF-8 BOMなしで書き込みます。

ステップ0 - Dドライブ上のワークスペース(毎回実行し、不足しているものを作成)

ルート: D:\DepthPOV(Dドライブが存在しない場合は、ユーザーに別のドライブを尋ねてください)

D:\DepthPOV\.env
D:\DepthPOV\studio\            Remotionプロジェクト(npx create-video@latest studio, Blankテンプレート)
D:\DepthPOV\studio\src\lib\    共有ビジュアルライブラリ(core.tsx, sets.tsx, art.tsx, ui.tsx)
D:\DepthPOV\tools\             voice.py stock.py stock_pick.py sfx.py
D:\DepthPOV\videos\<slug>\     facts.json script.txt script_tagged.txt beats.json timing.json stock.json packaging.md voice.mp3 out.mp4 FINAL\
D:\DepthPOV\assets\stock\ music\ sfx\ thumbnails\
D:\DepthPOV\brand\brand.json

このスキルにバンドルされているもの(ワークスペースに不足している場合にコピーし、ローカルの新しいコピーを上書きしない):scripts/*.py → D:\DepthPOV\tools\; remotion-lib/lib/*.tsx および brand.ts → studio\src\lib\; remotion-lib/stills.mjs → studio\; remotion-lib/example-blue-whale/ はスキル作成者による完成済み動画(13のチャプターファイル、約66の永続シーン、Main.tsx、Thumb.tsx)で、参照実装として読み、シーンをそのままコピーするのではなく参照します。ライブラリはチャンネル名、アクセントカラー、キャラクターカラーをstudio\src\lib\brand.tsから取得し、tools\sync_brand.pyがbrand.jsonから生成します。シーン内でチャンネル名や色をハードコードしないでください。スタジオを作成した後、npx remotion add @remotion/media @remotion/google-fontsを実行します。Pythonにはrequestsが必要です。 .envが存在しない場合は、空の値で作成し、ユーザーにNotepadで開いてキーを入力するように指示して停止します:

ELEVENLABS_API_KEY=
ELEVENLABS_VOICE_ID=
ELEVENLABS_MODEL_ID=eleven_v4
PIXABAY_API_KEY=

PIXABAY_API_KEYは無料です:pixabay.comにログインし、https://pixabay.com/api/docs/ に表示されているキーをコピーします(1つのキーで動画と写真の両方をカバーします)。古い.envに含まれている余分なキーは無視してください。 キー値を出力しないでください。Node.js LTSがインストールされていることを確認してください。Remotionエージェントスキルを一度npx skills add remotion-dev/skillsでインストールし、Remotionコードを書く前にロードします。ユーザーが「Retention」と言った場合、それはRemotionを意味します。Remotionは個人および非常に小さな企業にのみ無料であることを一度述べてください(/remotion-license)。

ステップ1 - ブランド(初回のみ実行し、brand.jsonに保存;brand.jsonが存在する場合はスキップ)

以下を順番に、毎回1メッセージずつ、常に推奨事項とともに尋ねてください:

  1. チャンネル名。 ユーザーがすでに名前を持っているかどうかを尋ねます。持っていない場合は、3つのスタイル(ミステリアス例「Abyss Files」、探検家例「Into The Deep」、直接的例「Why You'd Never」)で8つの名前を提案します:1〜3語、発音しやすく、既存の大手チャンネル名と重複せず、「Depth Theory」に類似せず、チャンネルが後で海洋以外に拡大しても機能するもの。それぞれに一致する@ハンドルを付けます。ユーザーに、名前とハンドルをYouTubeで検索してから決定するように伝えます(Claudeは空き状況を確認できません)。channel_name、handle、taglineを保存します。
  2. 「あなた」のキャラクター、以下から1つを推奨します:
    1. スキューバダイバー(オレンジ色のスーツ、赤いヘッドランプ) - 海洋;Depth Theoryに最も近く、最も差別化が低い。
    2. ミニ潜水艦パイロット - 深海;動画全体が丸い舷窓とHUD(深度、酸素)で囲まれる。海洋専用チャンネルに推奨。
    3. 難破後のいかだ生存者 - 表層海洋;いかだの俯瞰ビュー。
    4. ヘッドランプを持った探検家 - ジャングル、洞窟、川、氷;暗闇の中の光の輪。チャンネルが海洋を超えて拡大する場合に推奨。
    5. レンジャー/フィールド生物学者 - 陸上動物;双眼鏡とフィールドノート。
    6. タイムトラベラー - 先史時代の生き物;年数カウンター(-66,000,000)。
  3. アクセントカラー+フォント、そしてチャンネル独自のオープニングスタイル(3つのサンプルコールドオープンを表示し、ユーザーが選択)。 {channel_name、handle、tagline、character、look、signature_frame、accent {threat、safe、danger}、character_colors {suit、suit2、stripe、fins、fins_dark、lamp}(フィンは高視認性の色)、font、opening_style}をbrand.jsonに保存し、python D:\DepthPOV\tools\sync_brand.pyを実行してstudio\src\lib\brand.tsに書き込み、すべての動画で再利用します。バンドルされたアートライブラリはスキューバダイバーを描画します。他のキャラクター(潜水艦パイロット、探検家、レンジャー、タイムトラベラー)の場合は、同じ解剖学ルール(references/visual-style.md)でart.tsxに新しいコンポーネントを構築します。Depth Theoryの「Picture this.」オープナー、その正確なパレット、またはダイバーのデザインを決して使用しないでください。 channel_nameを以下の場所で使用します:動画間のコールバックライン(「しばらく[channel_name]を見ているなら...」)、CTA/エンドスクリーンライン、説明文、動画の最後の10秒間の小さなロゴバグ。

ステップ2 - 事実(スクリプトの前)

動物をWeb検索します。facts.json:25〜35項目 {id、claim、number、unit、everyday_comparison、source_url、confidence}。取得したソースが明記しない限り、「最大」「最深」「唯一」「史上初」などの最上級は使用禁止。一般的な神話と真実をリストアップします。

ステップ3 - スクリプト(固定構造;まずreferences/script-patterns.mdを読む)

script-patterns.mdをセクション予算、デバイス、オリジナリティルールについて使用します:参照からリズムを学び、表現は決してそのままコピーしないでください。すべてのスクリプトはこの動物の事実から新たに書かれます。参照で既に扱われた動物(マッコウクジラ)の場合は、そこにリストされたアングルを避けてください。

  1. コールドオープン 0:00〜0:25。1行目は常にブランドのシグネチャーオープナーで、短く(3秒未満)、視聴者が覚えられるように:「Dive log, entry [n]. [depth]. Air: [PSI].」2行目以降は、最初の7秒以内にフックを配置:視聴者を今すぐ危険にさらします - 何かが触れ、掴み、円を描き、または光を遮る、サメのような形、影、見えないもの - 現在形、説明なし、同時に画面に表示(シルエット、触手、影、目)。その後に設定(夜間ダイビング、テザー、深度以下)、視聴者が信頼するルール、そしてそれを破ってあなたに向かって立ち上がる感覚的な兆候。最初の7秒間を穏やかな風景やロジスティクスに費やさないでください。後半で報われる感覚的な詳細を植え付け、後で冒頭の危険を再現します(実際の遭遇、接近)。イントロなし。
  2. リフレーム:人々が通常恐れる動物、譲歩、次に[動物]に関する3つの主張;最後は「...なぜあなたは決して会いたくないのか」。
  3. 5つのチャプター:サイズ、食べ物、狩り/感覚の方法、脳/行動、人間を襲ったことがあるか。各章は次の章が開く質問で終わります。すべての数字に日常的な比較を付けます。
  4. 植え付けた詳細の報酬は約3:30。
  5. 「実際にどうするか?」:4つの選択肢を1つずつ却下し、それぞれにドライなジョーク、評決のライン。
  6. ひねり1:それはほとんど人を標的にしない。ひねり2:本当の危険は逆方向にある。
  7. 生態系での役割。8. クローズ:ルールを新しい意味で繰り返す。9. CTA:次にどの生き物を取り上げるかを、brand.jsonからのチャンネル独自の言葉で尋ねる(Depth Theoryの「I do actually read them」を決してコピーしない)。 音声:第二人称(35回以上の「あなた」)、文は20語未満、5〜7のドライなメタファージョーク、1,600〜1,800語、約170wpm。「let's dive in」や絵文字は禁止。script.txt(タグなし)として保存します。

ステップ4 - シーンとビート(最初にreferences/visual-style.mdを読む)

動画は約60の永続シーンで構成され、1文につき1枚のカードではありません。scenes.json:{scene_id、chapter、setting(deep|mid|surface-split|paper|radar|xray|black|stock)、camera(drift|push-in|follow-dive|tilt|top-down|macro)、cast(図示された被写体)、beats:[...]}。シーンは6〜20秒で、2〜6文をカバーします。各文は、シーンに1つの要素を追加します(被写体が入る、計測線が引かれる、カウンターが回る、ラベルが表示される、スタンプが打たれる、FXが発動する)—置き換えるのではなく。 Beat = {id、scene_id、text、add(表示/変更されるもの)、label(0〜5語、または空;ナレーションを繰り返さない)、label_pos(top|under-subject|near:)、accent、fact_ids、stock_query?}。 文のタイプごとに参照ツールキットを使用します:数字→シーン内図(計測線、メーター、カウンター、アイコン配列、グリッド、円グラフ);比較→被写体の横にオブジェクトが入る(バスが走ってくる、ゾウがポップイン);歴史→紙/セピア調の小道具とサーフェスセット;ジョーク→小道具または棒人間(レシート、フォーム、ホワイトボード、スタンプ、UIダイアログ);危険→赤いラベル+インパクトFX;知覚→レーダー/X線モード切替。「あなた」のキャラクターは、コールドオープン、報酬、選択肢の章、およびクローズに登場し、常に動物の隣に小さく表示されます。

ステップ5 - 事実ゲート(ブロッキング)

表:文 | fact_id | ソース | 数字や最上級を含むすべての文に対してOK/FIX。すべてのFIX行を修正し、ElevenLabsクレジットを使う前に表をユーザーに表示します。

ステップ6 - 音声(Eleven v4+オーディオタグ)

  • v4オーディオタグをElevenLabs Auto-tagが行うように追加してscript_tagged.txtを作成します:[thoughtful]、[curious]、[uneasy]、[dry]、[whispers]、[short pause]、[long pause]。2〜3文に最大1タグ。ささやき/間は暴露と報酬の周辺に。[dry]はジョークの前。統計を含む文の内部にはタグを付けない。チャンネルごとに1回、10行のサンプルをユーザーに表示し、タグ密度を承認してもらいます。
  • POST https://api.elevenlabs.io/v1/text-to-speech/{ELEVENLABS_VOICE_ID}/with-timestampsを.envのmodel_id(eleven_v4)で呼び出します。リクエストあたり10,000文字の制限:チャプター境界で分割(通常2リクエスト)、previous_text/next_textを渡して連続性を確保し、ffmpegで連結します。
  • with-timestampsがv4で拒否された場合は、通常のエンドポイントを使用し、次にElevenLabs Forced Alignment(POST /v1/forced-alignment)をオーディオ+script.txt(タグ除去)で呼び出します。
  • 単語のタイミングを文にマッピング → timing.json {beat_id、start_s、end_s、start_frame、end_frame}(30 fps)。

ステップ6b - 効果音(ElevenLabs Sound Effects、CapCut不要)

D:\DepthPOV\assets\sfx\に再利用可能なSFXライブラリを保持し、POST https://api.elevenlabs.io/v1/sound-generation {text、duration_seconds、prompt_influence 0.6}を使用して、同じELEVENLABS_API_KEY(tools/sfx.py;不足しているファイルのみ生成されるため、クレジットは一度だけ消費)で生成します。コアセット:whoosh_soft、whoosh_deep、pop_soft、tick_ui、counter_roll、stamp、paper_slide、impact_heavy、splash_big、bubbles、sonar_ping、low_hum、whale_moan、heartbeat_slow、riser_tension、scan_beep、warning_beep、strike_line、gulp、boat_motor;必要に応じて生き物固有のサウンドを追加。コピーを-20 LUFSに正規化してstudio/public/sfx/に配置。各SFXをそれが属するアクション(要素の入場、カウンター、スタンプ、インパクト、シーン変更)に<Sfx at=... vol=...>としてシーン内に配置。ボリュームは0.3〜0.6、1秒あたり1つ以下。音声は最前面に維持。

ステップ7 - ストック動画(目標6〜10クリップ、各3〜6秒、感情のピーク時;ランタイムの最大8%)

ソースは以下のみ(これら以外は不可;YouTube/TikTokからのリッピング、ドキュメンタリー映像、または「編集目的のみ」とマークされたものは決して使用しない):

  1. Pixabay(自動、API)。 1つのPIXABAY_API_KEYで動画 https://pixabay.com/api/videos/?key=...&q=... と写真 https://pixabay.com/api/?key=...&q=... の両方を取得。60秒あたり最大100リクエスト。各レスポンスをassets/stock/_cacheに24時間キャッシュ。大量ダウンロード禁止。ツール:tools/stock.py、tools/stock_pick.py。
  2. NOAA(手動、実際の種に最適)。 NOAAにはストック動画APIはありません。Claudeがクリップ(NOAA Fisheries種別ページとビデオギャラリー、NOAA Ocean Exploration、NOAA Photo Library、Wikimedia Commons上のNOAA自身のアップロード)を見つけ、ユーザーに番号付きリストを提供します:直接ページリンク、クリップの内容、それが埋めるスロット、正確なクレジット行、選択するファイル(最大MP4、できれば1080p)。ユーザーがassets/stock//noaa/にダウンロード。NOAAスタッフが作成した映像は通常パブリックドメインですが、各ページを読んでください:多くのクジラのクリップは研究許可証の下または請負業者によって撮影され、「NOAA Fisheries、許可証#XXXX」や写真家の名前などのクレジット行が必要です。ページが再利用を制限している場合は、クリップをスキップ。ダウンロード後、常にファイルのオープニングスレートとエンドクレジットを読んでください:NOAA Fisheries B-rollスレートには「All footage courtesy of NOAA... Please credit NOAA Fisheries」および任意の許可証番号(安全)が記載されています。教育用フィルム(例:Ocean Today)は、エンドクレジットに制作会社やストックエージェンシーなどの外部貢献者をリストすることが多いため、それらのショットはパブリックドメインではなく、拒否する必要があります。また、焼き込み字幕やロゴがあるファイルも拒否。ターゲット種をスレートに指定したセグメントのみを使用(B-rollパッケージは種を混在させることがあります)。説明文に「NOAAはこのチャンネルを推奨していません」と記載。NOAAロゴは決して使用しないでください。
  3. Pexels(手動リンク)。 APIキーの発行は最後に確認した時点(2026年11月)で一時停止されていたため、Claudeはpexels.com/videosを検索(Claude in ChromeまたはWeb検索)し、ユーザーに直接クリップページリンクとダウンロードするもの(Full HD 1920x1080)をassets/stock//pexels/に提供します。1本の動画用に数クリップを手動でダウンロードすることはPexelsライセンス(商用利用許可)の下で問題ありません。一括またはスクリプトによるスクレイピングは禁止。後で.envにPEXELS_API_KEYが表示された場合は、代わりにAPIを使用(ヘッダーAuthorization: <key>、GET https://api.pexels.com/v1/videos/search?query=...&orientation=landscape&size=medium&per_page=..、1時間あたり200リクエスト)。
  4. Wikimedia Commons(手動、時折)。 明確なPD / CC BY / CC BY-SAライセンスのファイルのみ。作者とライセンスを記録。 クリップを参照が配置する場所に配置:コールドオープンの直後(実際の動物またはダイバー)、「現実世界」の主張(噴出、群れ、船、捕鯨、空中)、およびひねり/生態系の部分。それらを分散させます(3つ連続しない)。各スロットについて3〜5の同義語を検索し、タグ/タイトルに被写体が含まれるヒットのみを保持し、次にffmpegで候補ごとに1フレーム抽出して見て確認。間違った種(ザトウクジラはシロナガスクジラではない)やトピック外のショットは拒否。異なる種のクリップは、一般的なライン(「巨大なクジラ」)にのみ使用可能で、画面上に「(表示:ザトウクジラ)」の注釈を付ける。クリップをパレットに合わせて暗く/冷たくグレーディングし、8フレームのブラーでフェードイン/アウト。 クレジットはすべてのソースに必須です。 各クリップは、そのwh...

関連スキル