Communitygithub.com

storyboard

ショート動画(Reels、TikTok、Shorts)用のスクリプトを、ショットごとに分割し、9:16フレーム、画面テキスト、編集ノート、サウンドを割り当て、撮影シーンごとにグループ化してストーリーボードを作成します。

storyboard とは?

このスキルは、ショート動画(Reels、TikTok、Shorts)の制作・編集計画をスクリプトから自動生成するためのものです。ユーザーが完成したスクリプトを入力すると、それを各ショットに分割し、9:16のフレーム、画面テキスト、編集ノート、サウンドを割り当て、撮影シーンごとにグループ化します。出力として、ブラウザで開けるボード、各フレームのPNG、コンタクトシートを含むストーリーボードフォルダを作成します。初回インストール時やスタイル変更時にはガイド付きセットアップを実行し、ユーザーの既存動画を分析してパーソナライズされたプロファイルを作成します。完成したストーリーボードは、動画グラフィックを1ショットずつ構築するためのプロンプトとしても機能します。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Chefy3x/storyboard-skill/tree/main/storyboard

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

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

プレビュー

スキル README より

storyboard preview
storyboard preview

ドキュメント

ストーリーボード

ストーリーボードは、1本の動画の撮影計画兼編集計画です。ユーザーが上から下まで読み、各撮影シーンを撮り、各ショットを編集(またはClaude)に渡す際に、画面に何が映り、テキストは何で、サウンドは何かが明確になっている必要があります。

シンプルに保つこと。 ショットと撮影シーンだけ。アーク図、ショット間のトランジション、ブランドキット、チェックリストは不要です。ユーザーがさらに必要と感じた場合は、その時点で尋ねます。

初回実行:ガイド付きセットアップ

~/.claude/storyboard-profile/profile.md がまだ存在しない場合(スキルインストール直後)、またはユーザーがセットアップやスタイルの再学習を依頼した場合に実行します。一度に一つずつ手順を進め、各ステップの目的を一文で説明し、実行し、「質問」と指示されたところで待機します。メッセージはすべて短く保ってください。ほとんどのユーザーはクリエイターであり、開発者ではありません。

  1. 歓迎。 短いメッセージ1つ:スキルの機能(スクリプトを入力すると、各行にフレームが出力され、Claudeがグラフィックを構築する)と、セットアップに約5分かかることを伝えます。次に、最初に必要なのは彼らの動画を見ることだと伝えます。

  2. ツールの確認。 Python 3、Google Chrome(または Chromium / Edge)、ffmpeg がインストールされているか確認します。yt-dlp はリンク用のボーナスです。不足しているものがあれば、そのシステム用のインストールコマンドを1つ示し(例:Mac では brew install ffmpeg、Windows では winget install ffmpeg)、実行を提案します。Chrome と ffmpeg が動作するまで次に進みません。

  3. ユーザーについて尋ねる。 1メッセージで、各項目を1行で回答:ハンドル名とプラットフォーム、コンテンツの内容、動画の通常の長さ、動画の締めくくり方(コメントキーワード、フォロー、リンク in bio など)。

  4. 動画を依頼する。 ここが重要なステップなので、理由を説明します:ストーリーボードはテンプレートではなく、彼らの動画のように見えるべきだからです。スタイルを最もよく表している公開動画を3~5本依頼し、可能であれば画面収録やグラフィックを含むものを1本含めるよう伝えます。ファイルをチャットにドラッグ&ドロップ(パスが貼り付けられる)するか、リンクを貼ってもらいます。yt-dlp がインストールされていればリンクをダウンロードし、ダウンロードできないリンクの場合はファイルを直接依頼します。すべてのファイルを ~/.claude/storyboard-profile/source/ に保存します。

  5. 動画を分析する。 各動画について:

    • フレーム抽出: ffmpeg -i v1.mp4 -vf "fps=1,scale=360:-2" -q:v 4 source/v1_%03d.jpg を実行し、フレームを確認します。
    • カット検出: ffmpeg -i v1.mp4 -vf "select='gt(scene,0.1)',showinfo" -f null - 2>&1 | grep -o "pts_time:[0-9.]*" でカット時間を取得し、平均ショット長を計算します。トーキングヘッドのジャンプカットは画像の変化が小さく検出されにくいため、1fpsのフレーム数と比較して確認します。
    • 音声認識: whisper(または他の文字起こしツール)がインストールされていれば文字起こしします。そうでなければ、フレームに焼き付けられたキャプションを読み取るか、ユーザーにスクリプトを貼り付けてもらいます。

    実際に観察された内容を記録し、推測は避けます:ショットタイプの構成(顔、画面、Bロールの割合)、平均ショット長、フレーミング(ミドル or クローズ、被写体の位置、背景)、最初の2秒のフック、画面上のテキスト(フォントの太さ、大文字小文字、色、ハイライトスタイル、配置)、キャプションスタイル、主要な色、繰り返し使用されるグラフィックやオーバーレイ、音声の習慣、CTAの着地方法。

  6. 顔写真の静止画を選ぶ。 キャプションが焼き付けられていない、カメラに向かって話しているクリーンなフレームを選び、9:16にクロップし(ffmpeg -ss <t> -i v1.mp4 -frames:v 1 -vf "crop=ih*9/16:ih,scale=540:960" face.jpg)、~/.claude/storyboard-profile/face.jpg として保存します。以降、すべての顔ショットでこれを使用します。

  7. プロファイルを書く。 ~/.claude/storyboard-profile/profile.md を保存し、セクションを作成します:Creator(ステップ3)、Shots(タイプ構成、平均長、フレーミング)、Hook、On-screen text、Captions、Colors、Sound、CTA、Recurring graphics。次に ~/.claude/storyboard-profile/theme.css を書き、キットの変数を彼らのルックにオーバーライドします:

    :root { --ink: #111; --accent: #ff5a1f; --on-accent: #fff; --bg: #f4f1ea;
            --grid: rgba(0,0,0,.05); --font: "Montserrat", sans-serif; }
    

    インストールされているフォントを使用します。彼らのフォントがない場合は、最も近いものを選びます。

  8. 表示して確認する。 サンプルフレーム(彼らの見出しスタイルを顔写真の上に重ねたもの)を1つ作成し、レンダリングし、プロファイルの3行の要約とともに表示し、おかしい点を尋ねます。ユーザーが「自分のコンテンツっぽい」と言うまで修正します。

  9. 引き渡し。 セットアップが完了したことと、次のステップを伝えます:「スクリプトを貼り付けて、ストーリーボードを作成して、と言ってください。」スタイルが変わったらいつでもセットアップを再実行できます。

ユーザーがセットアップをスキップしたい場合は、キットのデフォルトルックでストーリーボードを作成し、最後にセットアップを再度提案します。

フォーマット

各ショットは以下のフィールドを持ちます:

フィールド内容
typeface(カメラに向かって話す)、split(上部に画面、下部に丸い枠の顔)、screen(画面収録)、graphic(編集で作成)、b-roll(実写映像)
voこのショットで話される正確なスクリプトの単語
on_screen_textフレームに焼き付けられるテキスト(通常は空白)
edit_note1~2行:画面に表示されるもの、動き、フレーミング
sfxサウンド(通常は空白)
thesis正確に1つのショットで true
statusreal(フレームがそのまま映像)、stand-in(意図を示す)、to-capture(まだ未撮影)

タイミングはVOから 1秒あたり3.4語 で計算されます。手動で設定してはいけません。

撮影シーンは、撮影場所ごとにショットをグループ化します:label、detail(準備するもの)、shots(ショット番号)。

手順

  1. プロファイルを読み、スクリプトを取得する。 ~/.claude/storyboard-profile/profile.md を読み、それに従います:彼らのショット長、ショットタイプの構成、テキストスタイル、CTA。デフォルトと矛盾する場合はプロファイルが優先されます。プロファイルがない場合は、まずセットアップを提案します。スクリプトが会話やファイルにない場合はスクリプトを要求し、ターゲット長(明示されなければプロファイルの通常の長さ)をメモします。スクリプトは編集しません。行が正しく読めない場合は、その旨を伝え、ユーザーに修正を任せます。

  2. スクリプトをショットに分割する(一字一句)。 結合した場合、vo フィールドはスクリプトと完全に一致しなければなりません。言い換え、トリミング、行の追加は行わない。

    • 映像が変わる箇所で区切る。 文の終わりで区切らない。カンマは適切な区切り位置です。
    • 1ショットあたり2~6秒を目指す(7~20語)。 約8秒を超える場合は分割する。ただし、1つの連続した映像がそのラインを本当に伝えている場合は除く。
    • ショット1には話者の顔が含まれていること(face または split ショット)。 最初の1秒で顔があると視聴者が引きつけられます。
    • 正確に1つの thesis ショットをマークする: 動画のテーマを示すライン。
    • 最後のショット: 話者の顔が行動喚起(CTA)を言っていること。コメントキーワードがある場合は、話し言葉でキャプションに含め、大きなオンスクリーンピルとしては表示しない。
    • タイプを変化させる。 3連続で face ショットを続けない。face は主張、余談、CTAに使用し、screen は表示するものに使用する。
  3. フィールドを控えめに埋める。

    • on_screen_text:ショット1の見出し、リスト番号(01 SCRIPT)、最大1つのオチ。その他は空白。残りはキャプションが担う。
    • edit_note:画面に表示されるもの、動き、フレーミング(ミドル or クローズ)。プライバシーに関する注意もここに:メールをぼかす、ユーザー名を含むファイルパスをトリミングする。
    • sfx:動画全体で2~3回、何かが着地する場所のみ(オープンのピン、公開時のヒット)。
  4. 撮影場所ごとにショットを撮影シーンにグループ化する(ショット順ではない)。

    • Face(顔): すべての face ショットと、すべての split の顔部分に対して1つの撮影シーン。
    • Screens(画面): アプリやツールセッションごとに1つの撮影シーン。同じ実際のプロジェクトを一貫して使用する。
    • Away from the desk(デスク以外): Bロールショットに必要な場合のみ。
    • detail: 準備するもの(どのプロジェクトを開くか、何を実行しておくか、最初に画面から何を消すか)。
  5. storyboard.json を書く。 ユーザーのワーキングディレクトリ内の storyboard/<video-slug>/ フォルダに作成します(適切な場所があれば尋ねる):

    {
      "title": "AI edits my videos",
      "target_seconds": 50,
      "shots": [
        {"type": "face", "vo": "My last couple of videos were all edited by Claude.",
         "on_screen_text": "CLAUDE EDITS MY VIDEOS", "edit_note": "Mid shot, headline holds 4s.",
         "sfx": "", "thesis": false, "status": "to-capture"}
      ],
      "sittings": [
        {"label": "Face", "detail": "Same shirt and light for every face line.", "shots": [1]}
      ]
    }
    
  6. すべてのショットのフレームを作成する(次のセクション)、frames/f01.html、frames/f02.html として。番号はショットの位置です。

  7. レンダリング:

    python3 <this skill's folder>/kit/render.py storyboard/<video-slug>
    

    これにより、ヘッドレスChromeを使用して frames/out/fNN.png(540x960)、frames/out/contact-sheet.jpg、および board.html(各フレームとそのVO、テキスト、編集ノート、サウンド、タイミング、撮影シーンを並べて表示)がレンダリングされます。実行時間と顔 vs 画面の秒数も出力します。

  8. コンタクトシートを確認し、 修正して再レンダリング:顔の上のテキスト、重なり、セーフゾーン内のテキスト、プライベート情報など。

  9. 簡単に報告: ショット数、ランタイム vs ターゲット長、顔 vs 画面の秒数、まだキャプチャが必要なもの。board.html をユーザーに開いて提示します。

フレーム

最も現実的なソースを優先順位に従って使用します:

  1. 実際の素材。 ショットに表示される実際のサイトやアプリのスクリーンショット(ヘッドレスChromeまたはPlaywright、デスクトップは1440幅、モバイルは390)、またはユーザー自身の映像からの静止画(ffmpeg -ss <time> -i clip.mp4 -frames:v 1 still.jpg)。画像は frames/ フォルダに配置し、ファイル名で参照します。

  2. 組み立てたフレーム。 kit/frame-kit.css のクラスを使用して、HTML body フラグメントとしてフレームを記述します。フラグメント内の {{face}} は、frames/face.jpg が存在すればそれに、存在しなければセットアップの顔静止画に、どちらもなければニュートラルなシルエットに置き換えられます。セットアップの theme.css がすべてのフレームを自動的に彼らの色とフォントに再スタイルします。

    クラス使用目的
    .fフレームラッパー。常に外側の要素
    .hl上部の見出し。キーワードに <em>
    .lbl with .n + .t番号付きリストラベル(01 SCRIPT)
    .face全画面顔(<img src="{{face}}">)
    .faceboxsplit ショット内の顔ボックス
    .termClaude Code ターミナル(.p プロンプト、.tool ツール呼び出し、.ok、.dim)
    .chat + .bub + .vidエージェントチャットメッセージ。オプションで動画付き
    .shotスクリーンショットカード(<div class="shot"><img src="..."></div>)
    .tblデータテーブル(.h ヘッダー、.r 行、.r.new 新しい行)
    .big1つの大きなオチ
    .roomBロールプレースホルダー(キャプション付き)

    縦位置はインライン style="top:..px" で設定します。フラグメント例:

    <div class="f">
      <div class="lbl"><span class="n">01</span><span class="t">SCRIPT</span></div>
      <div class="term" style="top:200px">
        <div class="bar"><i></i><i></i><i></i></div>
        <div class="p">write me a 45 second script about ...</div>
        <div class="ok">  ✓ script.md</div>
      </div>
      <div class="facebox"><img src="{{face}}"></div>
    </div>
    
  3. 実際のデータでモックアップする。 ログインが必要でアクセスできない画面の場合。ユーザーに代わってサインインしてはいけません。実際の数値から画面を構築し、スタンドインとしてマークします。

フレームルール:

  • セーフゾーン: テキストを下部20%、右側12%(いいね!とコメントレール)の外に保ち、上部8%はクリアに保ちます。キットの位置はこれらを既に尊重しています。
  • 見出しスタイル: プロファイルのオンスクリーンテキストの注意事項に従います(大文字小文字、太さ、単語のハイライト方法)。デフォルトは太字の大文字で、キーワード1つを <em> で囲みます。全画面顔の上では、キットはタイプを白にし、ソフトシャドウを付けます。
  • プライバシー: どのフレームにも、ユーザー名を含むファイルパス、メール、APIキー、.env の内容を含めない。テーブルには偽のIDを使用します。

動画制作への活用

ストーリーボードが承認されたら、それがプロンプトになります。グラフィックを1ショットずつ構築します:「ストーリーボードのショット4を9:16のモーショングラフィックとして作成:フレーム、オンスクリーンテキスト、編集ノートに一致させること。」最初のバージョンは決して正しくありません。それを編集に配置し、フレームと比較し、一致するまでやり直します。

関連スキル