Video Shotcraft(プロジェクト版)
完全なアップストリームスキルは skills/video-shotcraft/ にあります(git commit e1d15d9、完全なクローン。編集しないでください)。このファイルはルーターであり、代替ではありません。 ビルドを開始する前に、skills/video-shotcraft/SKILL.md をすべて読んでから、以下のマップを使用して各機能にアクセスしてください。パスは特に記載がない限り skills/video-shotcraft/ からの相対パスです。
プロジェクトのデフォルト(アップストリームの「モードを選択」をオーバーライド)
- モード: 自律的な自由作成(
references/pipeline.md、ステージ0-7、ステージごとの確認なし)。ユーザーが「dùng template」と尋ねた場合のみtemplate/TEMPLATE.mdに切り替え、「cùng làm / duyệt từng bước」と尋ねた場合はreferences/guided-free-creation.mdに切り替え、単一ショットの場合はreferences/shots/からカードを選択します。 - ステージ0-3(製品ブリーフ、ビジュアルディレクション、ショットマッピング、ストーリーボード)は、このプロジェクトの
docs/<video>/brief.md+script.mdによって満たされています。それらを| # | time | shot | key motion |形式のショットテーブルとともにデザインスペックに引き継ぎます。 - スタイルはブリーフから来ます。他のビデオやInk Pressテンプレートからではありません。モーションの文法や調整済みパラメータを借用することはできますが、色やフォントは再スキンします。ターゲットは9:16 1080×1920です。したがって、16:9のレシピはピクセル単位でコピーするのではなく、再レイアウトする必要があります。
- ビデオごとに1ファイルのみレンダリング:
out/<video_id>-<voice-slug>-reel.mp4(BGM付き)。scripts/pipeline.py renderを使用してください。BGMなしバージョンはレンダリングしないでください(ユーザーの判断であり、アップストリームの2バージョンルールと最終レビュー項目A8をオーバーライドします)。
機能マップ
| ニーズ | 使用方法 |
|---|---|
| ショットを視覚的に閲覧/選択 | ギャラリー: cd gallery && python3 -m http.server 4178 → http://localhost:4178/library.html(150クリップがすでに gallery/media/ にあり、インデックスは gallery/api/library.json) |
| ショットレシピ(約124カード) | references/shots/<category>/(camera, data, effects, interaction, opening, outro, rhythm, transition, typography, ui-entrance); frontmatterをスキャンし、選択したカードを全文読む |
| 調整済みリファレンスコード | demos/<category>/; 選択した各カードの正確なデモTSXを読む(カード内の「参考実装」)。カード名だけで書き換えない。「既知の落とし穴/命門」パラメータは弱めてはいけない |
| ビデオ全体のアーク | references/sequences/promo-energy-arc.md |
| 再利用可能なコンポーネント | assets/lib/(PageCam, ClipCard, DigitRoll, FlashCut, Caption, FlatPanel, VerticalTicker, ヘルパー); src/ にコピーし、横断インポートしない |
| 実際のページキャプチャ(トピックにWebサイト/アプリがある場合) | assets/scripts/capture-template.mjs(2倍の全ページテクスチャ + 要素切り抜き + layout.json) |
| 美観の自己チェック | references/aesthetic-rules.md(構築中にチェックし、最後だけでない) |
| サウンド | references/sound-design.md; オーディオは assets/audio/(bgm/ 5トラック、sfx/<category>/ 149ファイル; ライセンス情報は assets/audio/ATTRIBUTION.md) |
| 強いビートのBGM | references/music-beat-sync.md(最初にBPMを分析し、次にビート上でストーリーボードを作成) |
| 独立した最終レビュー | references/final-review.md(クリーンコンテキストサブエージェント) |
| ワークベンチ(完成したビデオのビジュアル調整/エクスポート) | references/workbench.md、node workbench/scripts/open.mjs <project> → http://localhost:5198(`src/workbench.ts` マニフェストが必要。納品後に提供) |
| 剪映(Jianying)ドラフトエクスポート | references/jianying-export.md(リクエストがあった場合のみ) |
| SNS公開 | references/publish-upload-post.md(リクエストがあった場合のみ。最初にドライランし、unknown の場合は再実行しない) |
| 既製のフルビデオとテーマ | template/(Ink Press、9パレット、template/THEMES.md); リクエストがあった場合のみ |
| プロダクション用ではない | shot-polish/(アップストリームの内部再設計ノート)、agents/openai.yaml(Codex UIメタデータ)、demos/_legacy |
ビルドループ(プロジェクト)
- 最初にタイムライン(
src/<name>Timeline.ts): ショットの長さ = 測定済み音声 + 約0.5秒(アウトロは+1.4秒)。SFXオフセットはショット開始からの相対。 - シーンごと: ギャラリー/ライブラリからカードを選択し、カード + デモTSX + 必要な
assets/libコンポーネントを読み、ブリーフスタイルに適応させる。選択したカードをdocs/<video>/design-spec.mdに記録。 - 各シーン後:
npx tsc --noEmit、次にnpx remotion still src/index.ts <CompId> out/qa/<id>-<frame>.png --frame=N(ショットあたり2フレーム以上)を実行し、PNGを確認する。スタイル変更後は常に静止画を再レンダリング。 - オーディオ:
skills/video-shotcraft/assets/audioから選択したファイルをpublic/audio/<video_id>/にコピーし、出典/ライセンスをdocs/<video>/assets-manifest.mdに記録する。制作ワークフローのフェーズ7のターゲット(BGMベッドは音声より12〜18 dB下げ、音声が話している間はさらに4〜6 dBダッキング)にミックスする。固定パーセンテージではない。 python3 -I scripts/pipeline.py render <video_id>でレンダリングし、ebur128/volumedetectでラウドネスを確認し、コンタクトシートを作成する。- クリーンコンテキストサブエージェントによる独立したレビューを
references/final-review.md+skills/viral-tech-video-creator/references/qa-checklist.mdに従って実施。指摘事項を修正し、再レンダリングする。 - 納品後: ワークベンチを提供し(尋ねられた場合のみ)、剪映エクスポート/公開を提供する。
決定論: Date.now()/Math.random() 不使用。安全ゾーン: 下部210pxにテキストなし。アップストリームの作者クレジットとショーケースへの招待はオプション: 納品時に最大1回、ユーザーが興味を示した場合のみ言及する。