Communitygithub.com

andyluu98/VideoMotion: 映像組み立て

音声とシーン構成が既にあるVideoMotionプロジェクトの映像を組み立てます。スタイルのフォントを読み込み、色を設定し、各シーンを並行してエージェント「vm-canh」に割り当て、結合、技術チェック、レンダリング、音声と字幕の合成を行います。

VideoMotion: 映像組み立て とは?

このスキルは「VideoMotion」ワークフローのステップ7、またはユーザーが「シーンを再構築」「レンダリング」「動画をエクスポート」「シーンXの画像を修正」などと指示した際に使用します。プロジェクトには既にナレーション音声(mix.wav)とタイミングデータ(storyboard.json、words.json、timeline.json)が用意されている前提です。 主な処理は、指定されたスタイルのGoogle Fontsをダウンロードし、カラーパレットからテーマCSSを生成し、各シーンを独立したエージェント(vm-canh)に並行して割り当ててそれぞれのHTMLを構築します。その後、全シーンを統合し、Hyperframesで技術チェック(例: timeline_track_too_denseの警告は許容)を実施、問題があれば修正します。最後に、--no-audioオプションでレンダリングし、mix.pyで元の音声と字幕(SRT)を合成して完成動画を出力します。 このスキルはClaude Codeなどエージェント並行実行をサポートするプラットフォーム向けに設計されており、特にsonnetモデルを推奨します。vm-canhエージェントが利用できない場合は、汎用エージェントに専用手順書(vm-canh.md)を読み込ませて代替します。シーン数が3未満の場合は並行処理は行いません。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/andyluu98/VideoMotion/tree/HEAD/skills/vm-dung

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

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

ドキュメント

映像組み立てとエクスポート

VV、PYはスキルvideomotionと同じです。HFはnpx -y [email protected]。入力は<du-an>ディレクトリ内: storyboard.json、words.json、timeline.json、mix.wav。

1. スタイルに応じた準備

  1. スタイルのフォント(Google Fontsの行): "$PY" "$VV/tools/fonts.py" <du-an> "VT323" "Be Vietnam Pro:400,700" により fonts/ と fonts.css が生成される。
  2. theme.css: カラーパレットから:root変数(--bg、--ink、--accent、補色、--cap-bg、--cap-ink(字幕は4.5:1のコントラスト比を満たす))を設定。
  3. スタイルにビデオ全体にわたる背景(地図、紙、ボード、グリッドなど)がある場合: compositions/_nen.html(id _nen)を作成し、各シーンは背景を透明にする。
  4. "$PY" "$VV/tools/assemble.py" <du-an>: index.htmlを生成し、フォントをコピーし、未作成のシーン用のプレースホルダファイルを作成。
  5. "$PY" "$VV/tools/packets.py" <du-an>: 各シーン用のタスクパケットchecks/packets/<id>.mdを生成。

2. シーンの並行割り当て

すべてのシーンを1つのメッセージで、各シーンに1エージェントずつ、エージェントタイプvideomotion:vm-canh(model: sonnet、effort: mediumと定義済み、常に最新のSonnet)を割り当てます。割り当てメッセージは簡潔に:

シーン<id>を構築してください。タスクパケット: <du-an>/checks/packets/<id>.md。テンプレート: $VV/templates/scene.html。正しいファイル<du-an>/compositions/<id>.htmlに書き込んでください。

プラットフォームにvm-canhエージェントがない場合(スキルがプラグイン経由でインストールされていない、または他のツールを使用): model: "sonnet"、effort: "medium"の汎用エージェントを使用し、事前に$VV/agents/vm-canh.mdを読むよう指示してください。子エージェント機能がないツールの場合は、そのファイルに従って順次構築します。

シーンが3未満の場合は自分で構築し、割り当ては行いません。

3. 結合と技術チェック

"$PY" "$VV/tools/assemble.py" <du-an>
cd <du-an> && npx -y [email protected] check

Check passed、エラー0になるまで修正します(エラーがあるシーンファイルを修正)。字幕のtimeline_track_too_dense警告は正常です。レビューや承認者は不要です。ユーザーがプレビューを希望する場合はnpx -y [email protected] preview --backgroundを実行。

4. レンダリングと音声合成

"$PY" "$VV/tools/assemble.py" <du-an> --no-audio
cd <du-an> && npx -y [email protected] render --output renders/raw.mp4 > renders/render.log 2>&1
"$PY" "$VV/tools/audio/mix.py" srt <du-an>
"$PY" "$VV/tools/audio/mix.py" final <du-an> --video <du-an>/renders/raw.mp4 --name <slug>-<ddmmyyyy>
"$PY" "$VV/tools/assemble.py" <du-an>

レンダリングはバックグラウンドで実行(動画1秒あたり約2秒の処理時間)。--no-audioは必須: mix.py finalがmix.wavをそのまま合成します。最後のassembleコマンドでindex.htmlを音声付きバージョンに戻し、プレビュー可能にします。

5. 最終確認

ffprobe renders/<ten>.mp4: 正しいサイズ、音声ストリームあり、再生時間がwords.jsonのtotalと一致することを確認。ffmpegで動画の中間フレームを1枚抽出して目視確認。renders/<ten>.mp4とphude.srtを提出。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

関連スキル