Communitygithub.com

モンタージュ・エディター

トーキングヘッド動画(9:16 リール、TikTok、ショート、有料広告)を、インパクトのあるモーショングラフィックス編集に仕上げます。フルスクリーンの顔カメラと、話者がカード内にズームアウトして頭が飛び出す「パネル」を交互に配置し、ブランドチャーターに沿ったアニメーショングラフィック(公式ロゴ、Webサイトキャプチャ、チャット/電話モックアップ、機能カード、ロゴリビール)を上部に表示。さらに、キャプション、BGM、効果音、パンチイン/ズームアウトのカメラワークを追加し、ローカルのCapCut風編集インターフェース(シーンリスト、ライブプレビュー、全アニメーションのタイムライン、キャプション、音声/音楽/効果音トラック)を開き、ユーザーが任意の要素をクリックしてClaudeが処理するコメントを残せるようにします。

モンタージュ・エディター とは?

このスキルは、トーキングヘッド動画(縦型9:16)をダイナミックなモーショングラフィックス編集に変換するための総合的なツールです。主な機能として、フルスクリーンの話者映像と、話者がズームアウトしてカード下部に収まり、頭部が飛び出す「パネル」を切り替えるリズミカルな編集を行います。ブランドチャーターに沿った公式ロゴ、Webサイトキャプチャ、機能カードなどのグラフィックスを上部にアニメーション表示し、正確なキャプション、BGM、効果音、パンチイン/ズームアウトなどのカメラワークを追加します。さらに、CapCut風のローカル編集インターフェースを起動し、ユーザーはタイムライン上の任意の要素をクリックしてコメントを残せ、Claudeがそのコメントを処理して編集内容を動的に更新します。このスキルは、リール、TikTok、ショート動画、有料広告など様々なプラットフォームに対応し、ブランドチャーターの自動取得、Webサイトキャプチャ、人物マスク処理、複数の編集ルール(安全ゾーン、キャプション配置、リズムなど)を備え、プロフェッショナルな動画出力を実現します。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/hakunadigitalpro-png/montage-editeur/tree/HEAD

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

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

ドキュメント

モーショングラフィックス編集+編集インターフェース

ユーザーとはその言語で会話してください。キャプションは話者の正確な言葉で書き、言い換えはしないでください。

パス: ME = このスキルフォルダ, W = 動画ごとのプロジェクトフォルダ。全スクリプトはbash/python/node; scripts/env.sh でffmpeg, node, python, Chrome, バンドルエンジン(engine/)のパスを取得。初回: READNE.md → インストール(スキルフォルダで npm install, pip install -r requirements.txt)を参照。

ルール(譲歩不可)

  1. 公式ロゴのみ ブランド名が言及された場合 — 再描画した「インスパイア」アイコンは不可。ブランドのWebサイト(capture_site.js)から取得するか、ユーザーに尋ねること。
  2. ブランドチャーター: クライアントの場合、色、フォント、ロゴをWebサイト(captures/info.json)から読み取り、パレットを parts/top.js の先頭に記述。ユーザー自身の動画の場合は、一度チャーターを尋ねて theme.json + top.js に保存。
  3. Webサイトキャプチャ: クライアントのサイトをキャプチャ(全ページ、デスクトップ+モバイル)し、パネル内で使用(スクロールするブラウザ、トリミングした公式イラスト)。Cookieバナーは非表示にし、決して受け入れないこと。ログイン後のプロダクト画面には到達不可: その旨を伝え、ユーザー提供のスクリーンショットを統合する提案を行う。
  4. リズム: フルスクリーン ↔ パネル(ズームアウトでイン、ズームインでアウト)、強調語へのパンチイン(約2〜3秒に1回)、ちょうど1つのシグネチャーモーメント(ロゴ/名前リビール)、BGMは音声にダッキング、効果音(ズームごとにウッシュ、ポップ、クリック、タイピング、リビール時にインパクト)、ジャンプカット時にライトフラッシュ。
  5. 有料広告: 上部14%(y < 270)および下部 y ≈ 1250(リール/TikTok UI)に重要な要素を配置しない。キャプションは高めに設定(CAPDY)。パネル内にはキャプションを入れない(パネル自体が言葉をタイトルとして表示)。エンドカード = ブランドロゴ + URL + 話者の言葉。虚偽の主張や数字は作成しない。
  6. キャプション は決して顔の上に配置しない。LTR言語 → projet.json で "sens": "ltr" (ビルドで語順を修正)。RTL(アラビア語)→ "rtl"。ブランド名はピル形状(fx: "pill", 色は projet.json → pill)。
  7. ミックス: ユーザーがエディタで音声/音楽/効果音を設定。デフォルト: 音声100%, 音楽46%, 効果音36%。常に-14 LUFSにラウドネスノーマライズ。
  8. すべてのアニメーションはレジストリの要素(下記参照)であるため、ユーザーは選択、移動、非表示、コメント付けが可能。レジストリ外のアニメーションは禁止。
  9. アンカー: すべての wS(card, word) は、そのアニメーションが示す単語を指していなければならない — scripts/ancres.py を実行しテーブルを読むこと。インデックスは決して推測しない。

ワークフロー

  1. 準備: bash $ME/scripts/preparer.sh <video> <W> <lang> "<Whisper プロンプト: 固有名詞>" → コピー元、フルフレームクロップ、フレーム、カット候補、単語レベルの文字起こし。次に背景の人物切り抜き(~1秒/フレーム;同じ時間にWhisperを実行しない — RAM): python $ME/engine/mask.py u2net_human_seg <W> && python $ME/engine/make_head.py <W>。
  2. クライアント(いる場合): node $ME/scripts/capture_site.js <url> <W> → captures/, assets/logo-*.png, 色/フォント。キャプチャを確認し、有用なビジュアルを W/assets/ にトリミング(イラスト、スクロールブラウザ用の長いページなど)。
  3. キャプション: W/cartes.json(正確な単語 + Whisperのタイミング; 2〜5単語のカード; hot, fx)を記述 → python $ME/scripts/cartes.py <W>。テンプレート: templates/cartes.EXAMPLE.json。
  4. 編集計画: スクリプトをビート(フック、問題、製品、証明、CTA…)に分割し、各ビートに対して: フルスクリーンかパネルか、表示する具体的なオブジェクト、1つのシグネチャーモーメント、音響。W/plan-montage.md に記述(テンプレート templates/plan.EXAMPLE.md)し、アニメーション前にユーザーに簡潔に提示。
  5. projet.json(テンプレート templates/projet.EXAMPLE.json): nom, titre, langue, sens, outro, vol, musique_gain, pill, coupes, cadrage(パネルに入るショット → 測定ウィンドウ), cadrage_force(マスクが背景を捉えた場合)。次に python $ME/scripts/framing.py <W>。
  6. W/parts/ 内のシーン: top.js ← templates/top.EXAMPLE.js(パレット, CUTS/SEGB, PANELS, ズーム ZP, CAPDY); primitives.js ← templates/primitives.js; gfx.js ← templates/gfx.EXAMPLE.js(SCENES_ED, アニメーションごとに1つの EL(...), レイヤー, エンドカード, フォント)。
  7. 音響: W/sons.json(テンプレート templates/sons.EXAMPLE.json): musique {bpm, intro_filtree, coupure = リビール前の無音, accords} と events = [element|null, time|"fin+x", "音[:パラメータ]", gain, [繰り返し, 間隔]]。音: pop, bulle, clic, shutter, succes, buzz, tick, touche, impact, tape, whoosh_in:持続時間, whoosh_out:持続時間, ding:周波数:持続時間, shimmer:持続時間, riser:持続時間, souffle:持続時間。各音を対応する要素にリンクし、要素が移動または非表示になったとき音も追従するようにする。
  8. アンカー: python $ME/scripts/ancres.py <W>。
  9. プレビュー: python $ME/scripts/build.py <W> 次に node $ME/engine/04_render_frames.js <W> preview t1 t2 … → コンタクトシート → 厳しい編集者のようにレビュー(読みやすいか?顔がはっきり見えるか?広告の安全ゾーンは?)し、修正してからレンダリング。
  10. レンダリング: bash $ME/scripts/rendu.sh <W>(バックグラウンド、3〜6分)→ <nom>.mp4(+.srt/.txt)、ステムは mixage/pistes/、エディタ用メディア。MP4の6〜8フレーム、-14 LUFS、サイズを確認。
  11. エディタ: python $ME/scripts/editor_server.py <W> <port> を実行(Claude Codeデスクトップの場合: .claude/launch.json に追加し、プレビューツールを使用)、http://localhost:<port>/editeur/ を開く。プレビュー、クリック選択、再生が機能することを確認。
  12. コメント監視: W/comments.json を監視し、 status == "à faire" の新しいコメントごとに1行を出力(コマンドは references/editor.md に記載)。

コメントの処理

  1. コメントを読む(target = el:<id> | scene:<id> | cap:<n> | audio:<track>, t, クリック x,y)。
  2. ステータスを "en cours" に設定: POST /api/comments/status {"id":…, "status":"en cours"}。
  3. parts/gfx.js(またはズーム/パネルなら top.js、キャプションなら cartes.json、音響なら sons.json)の要素を変更し、チャーターとレジストリの範囲内に留める。リクエストが曖昧な場合は最適なオプションを適用し、返信で代替案に言及する。
  4. python $ME/scripts/build.py <W>(音響が変わった場合は sons.py も)→ エディタは自動でプレビューをリロード。1〜2フレームのプレビューを確認。
  5. ステータス "fait" + 短い reply(変更内容) — エディタに表示。ユーザーに「動画をレンダリング」をクリックできることを伝える。
  6. 一般的な設定(「Xは絶対に使わない」)→ このファイルのルールに追加する。

要素レジストリ(エディタとの契約)

EL(id, name, scene, layer, [x,y,w,h], ()=>[start,end], t=>{…描画…})

  • layer: 'panel'(パネル内、飛び出しヘッドの背後に描画) · 'full'(フルスクリーン、前面) · 'none'(グローバル: フラッシュ、エンドカード)。
  • 受け取る t = エディタによってシフトされた時間(EDITS.off)。自分のウィンドウ内でのみ描画; EDITS.hide[id] が true なら非表示。
  • ボックス [x,y,w,h] はプレビューでのクリックに使用: 正確に保つこと。
  • SCENES_ED = エディタ左側に表示されるシーン(id, label, a, b, kind)。
  • ズーム: 各 ZP エントリは要素 zoom<i>(エディタで削除可能)。

プロジェクトファイル

projet.json · cartes.json → caps.json(caps.orig.json = エディタベース) · sons.json · parts/{top,primitives,gfx}.js · framing.js · edits.json(エディタ設定: off, hide, caps, vol) · comments.json · captures/, assets/ · mixage/pistes/ · editeur/ · <nom>.mp4/.srt/.txt。

関連スキル