ストーリーボードで coding 動画を作る
条件参照
- ユーザーが実際に
/goalを入力して目標を開始または再開した場合のみ、references/goal-director.mdを完全に読み、そこに記載されたディレクターの制約に従って実行します。 - 通常のショット制作、修正、プレビュー、レンダリング、および単なる
/goalに関する議論では、このファイルを読み込まず、また「念のため」事前にロードしてはいけません。
先に計画し、確認が取れるまではコードを書かない
.media/storyboard/のすべてのフレームを確認し、「同一主体の連続存在または変形」ごとにグループ化します。STORYBOARD.mdにグループ分け、ショットの依存関係、素材リストを記載します。素材には画面表示サイズを明記します。- 内部で連続変形するショットについては、
RENDER_STRATEGY.mdで実現可能な方式を比較し、実装方法を決定します →references/render-strategy.md。 - グループ分け表と素材リストをユーザーに提示し、確認を待ちます。
timeline.json はショット番号、開始・終了時間、総尺のみの唯一の計画ソースです。複数の Markdown ファイルでタイムテーブルを重複管理してはいけません。
制作の骨子
- 同じグループのショットでは、まず共有主体レンダラー、CameraRig、アセットローダー、シーン状態を構築します。ショットファイルは状態と時間パラメータのみを保持します。
- まずストーリーボードのキーフレームを静的に再現し、簡潔なコンタクトシートを合成してユーザーの検収を受けます。エンドポイントが通過しない限り、補間やイージングは行いません。
- 静的な検収が通ったらアニメーションを作成し、ドラッグ可能なプレビューのみを提供して検収を待ちます。
- 後続のショットは、前のショットの通過した最終フレームから進化します。継続、変形、追加、消失を行い、既存の主体を再描画したり上書きしたりしません →
references/scene-continuity.md。 - すべてのショットが通過したら、唯一の全体タイムラインに接続し、継ぎ目、総尺、一度の完全再生をチェックします。ユーザーが確認してから最終レンダリングを行います。
通過したショット、主体、素材はすべてロック対象です。問題がサイズ、位置、トリミング、カメラ、またはエフェクトに起因する場合は対応するパラメータのみを変更します。素材自体をユーザーが明示的に否定しない限り、素材を再生成してはいけません。
依存関係に基づいて並列実行し、ショット番号順に並べない
- 同一主体の連続変形や、前のショットの最終フレームを継承する必要がある部分は、依存順に制作します。
- 独立したシーン、背景、透過素材、および前のショットの構図に依存しない完全なショットは並列制作できます。
- 共有マザーシーンのインターフェースが安定した後、異なるショットの状態、オーバーレイ、内部アニメーションを並列で制作できます。
- 並列ブランチは自身のディレクトリのみに書き込み、全体タイムライン、共有マザーシーンのソースファイル、通過済みショットを変更しません。出力はコンタクトシートまたはプレビューだけで構いません。
- 後のショットが開始時の接続だけに依存する場合は、まず主体のシーンとアニメーションを完了し、最後に前のショットの最終フレームパラメータを接続します。
最短実行パスとプロンプト制約
- 各実行プロンプトは、ユーザーが現在見たい1つの成果物のみに焦点を当て、許可される書き込み範囲、最小ステップ数、明確な停止点、および今回行わないことを明記します。段階的なプレビューを最終検収に拡大してはいけません。
- ユーザーが「プレビュー」を要求した場合、デフォルトのパスは次の通りです。必要な編集またはマウントを完了 → ページがロード可能かを確認 → Studio を起動 → リンクを返す。先に
check、バッチスナップショット、コンタクトシート、フレーム単位の継ぎ目チェック、ハッシュ、または完全再生でプレビューをブロックしてはいけません。 - 一時的な結合、部分ショットの連結、デバッグエントリは全体結合ではありません。ユーザーが連続した映像を見られるようにするだけです。継ぎ目ごとの検収、総尺の確認、完全再生は、すべてのショットが通過した後の唯一の最終結合段階に残します。
- 検証は現在の具体的な質問に直接答えられるものでなければなりません。エラーや明確な視覚的問題がない場合、診断スクリプト、バージョン検出、回帰マトリックス、逆方向シーク、繰り返しのスクリーンショット、または「念のため」のチェックを追加してはいけません。
- 同じセッションで複数のブラウザ、Studio、
check、snapshot、renderプロセスを並列または直列にスタックしてはいけません。現在の成果物に必要な1つのフォアグラウンドプロセスのみを実行します。利用可能な結果が既にある場合はすぐに提供します。 - レンダリング以外の検証が数分間新しい出力を出さないか、通常の所要時間を超える場合は、すぐに停止し、最も直接的なボトルネックをチェックします。フィードバックなしで何十分も待ったり、そのまま再実行したり、追加の検証を続けたりしてはいけません。
- 実行セッションへのプロンプトはデフォルトで「完了したら停止」を使用します。ユーザーの現在の要求を満たしたら結果を返し、自分で次の段階に進まず、技術チェックが通過したからといって作業を拡張し続けてはいけません。
表現と動作のルール
- 複雑な静的小道具には高品質の透明テクスチャを使用します。構造ジオメトリと規則的な図形には Canvas/SVG を使用します。パーティクル、破片、煙、光点には Canvas を使用します。
- 連続的な成長、侵入、包み込みは、必ずジオメトリ層、テクスチャ層、アニメーション層に分離します。拡張するのはジオメトリであり、テクスチャのピクセルではありません。
- 単一の2Dテクスチャから、元の画像にない上面、側面、遮蔽を生成してはいけません。真のパースペクティブが必要な場合は、複数アングルの素材または3Dを使用し、まず近似の限界を説明します。
- カメラの後退、シーンの拡大、オブジェクトの縮小は同じではありません →
references/camera-motion.md。 - 同じ位置またはレイアウトの問題が3回連続で修正できなかった場合、最小限のチューンパネルを作成します →
references/tune-panel.md。
素材と決定性
- ソース画像の辺の長さは画面表示サイズの2倍を超えてはいけません。優先的に WebP q85 を使用します。単一シーンの画像は3MB以下にします →
references/asset-budget.md。 - レンダリング時はネットワークゼロとします。CDN スクリプトやオンラインフォントは使用しません。
- 自作コードでは
Math.random、Date.now、またはポーリングを使用してはいけません。初回描画の前にawait img.decode()を実行します。
エントリと状態
/index.html:唯一の全体タイムラインと最終レンダリングのエントリで、常に0秒から初期化します。/compositions/NN-name.html:グループまたは単一ショットのデバッグエントリで、独立して初期化できなければなりません。- 全体タイムラインは真の合成であり、iframe やページ切り替えによる連結を使用してはいけません。
HANDOFF.mdは現在の有効な状態、ロック項目、現在のファイル、短いフレーズでの拒否項目、次のステップのみを保存します。プロセスの記録、長いプロンプト、履歴レポートは保存せず、簡潔に保ちます。
最小検収と成果物
- 静的段階:ストーリーボードのキーフレームのコンタクトシート1枚+「検収待ち」。
- アニメーション段階:ドラッグ可能なプレビュー1つ+「検収待ち」。
- 一時的な連結プレビュー:ページがロード可能+Studio リンク。コンタクトシートは生成せず、フレーム単位の継ぎ目チェックも行わず、正式な
checkも実行しません。 - 修正段階:修正後のフレームまたはプレビュー+説明文1文。
- 最終段階:全体プレビューまたは動画+尺と出力パス。
- 日常チェックでは、ページがロード可能か、素材が可視か、キーフレームが正しいかのみを確認します。正式な
checkはアニメーションの確定時、最終結合時、または具体的な実行問題が発生した場合にのみ1回実行します。lint、check、バッチスナップショット、フレーム単位の回帰を繰り返してはいけません。
デフォルトでは、監査スクリプト、検証用 JSON、マニフェスト、納品説明、ID/Mesh/パーティクルレポート、フレーム単位のハッシュ、ピクセル差分、繰り返しレンダリング、逆方向ドラッグ検証、または多バージョンのコンタクトシートを生成してはいけません。具体的な問題が発生した場合のみ、関連するコード、エラー、または1枚の問題フレームをチェックし、修正後に結果を表示します。ユーザーが明示的に要求した場合のみ、正式な診断レポートを生成します。