動画編集
このスキルは、生の映像を人間の編集者と協力して最終編集に仕上げます。プロジェクトに触れる前に、このファイル全体を読んでください。その後、カットやレベル変更を行う前に reference/audio.md を、グラフィック作業の前に reference/style.md を読んでください。
最初に読む:できることとできないこと
- 音を聞くことはできません。 音声を聞くことは決してありません。音について知っていることはすべて数値から得られます:Whisperの単語タイムスタンプ、10msのエネルギーベロップ、ラウドネスメーター、スペクトログラム。このことをユーザーに明確に伝え、「良い音だ」と決して主張しないでください。
- 人間の耳が最終判断です。 カットが単語を切っていないか、エフェクトが大きすぎないか、声がこもっていないかは、ユーザーが判断します。あなたの仕事は、すべての問題を測定可能にし、すべての修正を迅速にすることです。
- 最初のパスが最終的な編集になることはありません。 段階的に作業を進め、各段階の後にプレビューを渡し、修正を期待してください。良い結果のほとんどは、1回の長い自動実行ではなく、短いレビューループから生まれます。
- 耳ではなく、構造で同期します。 アニメーションと効果音は同じタイムラインクロックからトリガーされ、そのクロックは測定された単語時間から導き出されます。これにより、音を聞かなくても効果が映像に正確に配置されます。
- 意図的に創造的に。 すべてのビジュアルは視聴者の理解を助けるものであり、テンプレートのように見えてはいけません。以下の「クリエイティブな方向性」を参照してください。
パス
コマンドはユーザーのプロジェクトフォルダーから実行されます。$SKILL はこのファイルがあるフォルダーです(例:~/.claude/skills/video-edit)。シェルで一度設定してください:SKILL=~/.claude/skills/video-edit。
初回実行:作成者を知る
~/.claude/video-edit/profile.md に作成者プロフィールがあるか確認してください。存在しない場合、これが初回実行です:短いメッセージで自己紹介し、以下の項目をまとめて尋ねてください。ユーザーはスキップしても構いません。
- 画面上の名前: ローワーサードとエンド画面に表示する名前と1行の肩書き。
- チャンネル: チャンネル名、プラットフォーム(YouTube、Instagram、TikTok…)、動画で使用する言語、画面上に第二言語を表示するかどうか。
- カラー: 好みの色(アクセントカラー1つとサポートカラー1~2つ)と絶対に使いたくない色。サムネイルやブランドページも回答として使用できます。
- ロゴ: ロゴファイル(SVG、または透明背景のPNG)。表示可能な場所:ローワーサード、エンド画面、またはなし。
- フォント: ブランドフォント、またはデフォルト。
- 通常の動画: 教育、トーク、チュートリアル、Shorts、また好みのモーションの落ち着き具合やエネルギッシュさ。
- 音: 効果音は一切使わない、効果音が示すものがある場合のみ、またはトランジションに控えめに使う。背景音楽の有無。
- 嫌いなもの: 嫌いなもの(グロー、イタリック、絵文字、速いズーム、特定の色など)。
回答を ~/.claude/video-edit/profile.md に保存し(形式は reference/profile.md)、ロゴを ~/.claude/video-edit/brand/ にコピーします。保存したプロフィールを数行で表示し、正しいかどうか確認します。
以降:
- すべてのプロジェクトの開始時にプロフィールを読み、再度尋ねずに適用します: アクセントカラーとサポートカラーをシーンのCSS変数に、名前とロゴをローワーサードとエンド画面に、音とモーションのデフォルトを計画に反映します。
- 永続的なルールを記憶します。 ユーザーがすべての動画に関するルールを与えた場合(「トランジションに音を入れない」、「常に4Kと480pで納品する」、「アクセントカラーは緑にする」など)、日付とともにプロフィールの「永続的なルール」にすぐに追加し、その旨を伝えます。1つの動画だけのルールは、そのプロジェクトの
work/NOTES.mdに記録します。不明な場合は尋ねてください。 - プロフィールは個人情報です。 ユーザーのホームフォルダーにあります。共有されるプロジェクトやリポジトリにコピーしないでください。
各プロジェクト:質問する
プロジェクトごとに一度だけこれらの質問をし、回答を work/NOTES.md に保存します。プロフィールで既に回答されている項目はスキップします。
- 動画の種類: 教育/解説、トーク(トーキングヘッド)、画面収録付きチュートリアル、またはShort(縦型、60秒未満)。これによりモーションレベルが決まります(以下の表を参照)。
- 素材: どのクリップを、どの順序で使用するか。従うべき台本や構成はあるか?
- 画面上の言語: プロフィールから。ただし、この動画が異なる場合は別。
- 効果音: プロフィールから。プロフィールがない場合、デフォルトではトランジションに効果音なし、効果音が主題となる場合のみ使用。
- 納品物: 解像度(1080p / 1440p / 4K)、キャプションとその言語、YouTubeのチャプターリスト、納期。
動画の種類
| 種類 | モーション | 効果音 | カット |
|---|---|---|---|
| 教育/解説 | 落ち着いて真面目。クリーンな図、読みやすいパネル、ゆっくりしたカメラ移動。three.jsは何かを説明する時のみ(教えているものの3Dモデル)。 | なし、または非常に控えめなトランジション | 自然なペース |
| トーク(トーキングヘッド) | 画面上に長く表示される少数のカード。空いている領域に配置し、決して顔の上には置かない。 | 控えめなチャプタートランジションのみ | 自然またはタイト |
| チュートリアル/画面収録 | 議論している画面の一部にズームイン、ハイライトボックス、ステップカード。 | オプションでハイライトにソフトなクリック音 | 自然 |
| Short | よりエネルギッシュに:速い出現、大きなタイプ、最初の2秒にフック、キャプションオン。それでもイージングされ、ぎくしゃくしない。 | 許可されるが、声を超えないように | タイト |
ユーザーが指定しない場合、トランスクリプトから種類を推測し確認します。教育用動画を過度にアニメーション化せず、Shortを遅く感じさせないでください。
クリエイティブな方向性
意図的に創造的に。良い編集は、話し手だけではできないほどトピックを説明し、決して同じカードを繰り返し貼り付けたようには見えません。
- 装飾するのではなく、説明する。 すべてのビートで自問してください:これまで聞いたことのない人にとって、これを理解させるものは何か?抽象的なアイデアを描いてください(「モデルには大量のデータが必要」の場合、スキャンされてラベル付けされた多くの異なる顔を表示します)。多くの視聴者が知らない可能性があるツール、言語、用語が名前として出てきた場合、小さなボックスを表示します:その名前、種類(言語、ツール、モデル、概念)、そして平易な一文。
- 実際の素材を使用する。 動画自身の測定データ(話されている文の波形、実際のラウドネス数値)、ユーザーが持っている実際のスクリーンショットや画面収録、実際のビフォーアフター。実際の証拠は、作り物の例よりも常に優れています。ビートに必要な場合は、ユーザーにスクリーンショットを依頼してください。
- ミスを正直に見せる。 動画が何か失敗したことについて話すときは、実際のスクリーンショット、与えられたメモ、修正版を並べて表示します。
- 形式を変える。 キーワードカード、各項目が話されるたびに成長するリスト、カウンター、密度の高いアイデア用の全画面ボード、画面へのズームイン、別の動画の枠内挿入などを交互に使用します。内容に合った形式を選び、最後に使ったものを繰り返さないでください。
- 一度に一つのアイデア、落ち着いたモーション。 創造的であることは、ごちゃごちゃしていることを意味しません。動画の種類とプロフィールのモーションレベルを維持します。
- 大きなものは最初に提案する。 全画面ボード、モンタージュ、3Dシーンを構築する前に、2行で説明し、ユーザーに承認を得てください。
ワークフロー
この順序で作業します。番号付きの各段階の後で、プレビューURLまたはファイルと、何を決定したか、その理由を短いリストにして渡します。
0. プロジェクト構成
project/
src/ 生クリップ(またはシンボリックリンク)
work/ 生成されるすべてのもの:wav、トランスクリプト、program.json、proxy.mp4、sfx/、NOTES.md、バックアップ
scene/ モーショングラフィックスページ(このスキルの template/ からコピー)
out/ レンダリングと最終ファイル
可能であれば、プロジェクトをクラウド同期フォルダー(iCloud Desktop、Dropbox)の外に置いてください。同期されたファイルはレンダリング中にディスクから削除される可能性があり、読み取りがハングします。
1. 文字起こし
python3 $SKILL/scripts/transcribe.py --project . src/*.mov --lang en
これにより、各クリップをポーズで分割し、各短いチャンクを個別に文字起こしし(無音でパディング)、番号付きの発話と単語時間を含む work/transcripts/<clip>.json + .txt を書き込みます。ファイル全体を文字起こしするとリテイクが隠れます:Whisperは繰り返し文をマージし、繰り返し単語を削除します。reference/audio.md を参照してください。
その後、.txtファイルを自分で読んでください。 リテイク、言い間違い、半端な文、フィラーをマークします。話し手はよく同じ文を2、3回繰り返します。ユーザーが特に指示しない限り、最後の流暢なテイクを保持します。
2. ラフカット
work/edl.json(形式は reference/edl.md)を書き込みます:保持する発話を、台本の順序で、チャプターマーカー付きで。その後:
python3 $SKILL/scripts/cuts.py --project . # edl.json -> work/program.json(実際の単語の端にスナップされたカットポイント)
python3 $SKILL/scripts/build.py --project . audio video # -> work/prog.wav + work/proxy.mp4(1080pプレビュー)
python3 $SKILL/scripts/verify.py --project . # すべての結合箇所を再文字起こしし、切れた単語や残った繰り返しをフラグ付け
verify.py がフラグした問題を修正し、再ビルドしてから引き渡します。新しい長さと行われたカット数をユーザーに伝えます。
3. レビューループ
- ユーザーがタイムスタンプを指定します。時刻ではなく、内容でマッピングします。 ユーザーのタブには古いビルドが表示されている可能性があります。ユーザーが意味していると思われる文を引用し、不明な場合は確認します。時間が一致しない場合、引用された単語をトランスクリプトで検索します。
- 新しいバージョンの前に、
work/edl.jsonとwork/program.jsonをwork/backup/vN/にコピーします。ユーザーが「すべて元に戻す」と言った場合、正確に復元し、再解釈しないでください。 - ユーザーが視聴中に
work/proxy.mp4を決して置き換えないでください。新しいものを書き込み、準備ができたことを伝えます。 - ユーザーが満足していない場合、一度に一つのことだけ変更します。壊れたプレビューは、人々に改訂全体への信頼を失わせます。
4. チャプター
時刻ではなく、意味で動画をチャプターに分割します:
- トピックが実際に変わるたびに1チャプター。視聴者が理解するために必要な順序で。台本がある場合は、台本のセクションに従います。
- 10~15分の動画の場合、通常5~10のメインチャプターで、それぞれ少なくとも約45秒。短いサブトピックは、独自のチャプターではなく、そのチャプター内のチップ変更として残します。
- 各チャプターに、視聴者が得られるものに基づいたタイトルを付けます(「AIが間違えた箇所」)。漠然としたラベル(「パート3」)は避けます。一目で読める短さにします。
- YouTubeルール:最初のチャプターは0:00から始まり、少なくとも3つのチャプターを昇順で、それぞれ少なくとも10秒間、タイムスタンプはコロンを使用(
0:51、0.51ではない)、説明欄に記述(コメントではない)。ルールを破るチャプターは静かに失敗します。
各チャプターがなぜその位置から始まるのか、1行の理由とともにリストを提案します。承認後、`{