Opusパリティモーションフィルム (Remotion)
目標: 同じプロンプトをOpus 5.5とこのスキルを実行するモデルに与えたとき、被写体やスタイルに関わらず、見た目、動き、音がほぼ同じフィルムが生成されること。
ギャップはめったにセンスではありません。それは振る舞いです。Opusは:
- 長いプロンプトのすべての値を尊重する
- 曖昧な言葉を具体的なデザイン決定に変える
- すべての要素をプレースホルダーで妥協せず適切にデザインする
- コーディング前にタイムライン全体を計画する
- 一貫性を保つために共有システムを構築する
- 自身の出力を確認し修正する
弱いモデルはこれらを明示的にしない限りスキップします。このスキルは、Open Designアーキテクチャ上でそれらを明示化します:
| Open Designの構成要素 | ここでの実装 |
|---|---|
| ワークフローを所有する機能的なスキル | このファイル: 優先順位、ステージ、要素プレイブック |
すべてのレンダリングで読み込まれるDESIGN.md契約 | src/spec.ts上部のデザイン契約; design-systems/*.mdはその種 |
| テンプレート | templates/remotion-starter/、テスト済み(REFERENCE.mdに完全なソース) |
| デザインジャッジ批評ゲート | ステージ6: 5人の審査員、各スコアが8以上になるまで修正 |
| アンチスロップチェックリスト | ステージ6の禁止リスト |
| 決定論的レンダリング | Remotion: すべてのフレームはフレーム番号の純粋関数 |
優先順位
ルールが競合する場合、この順序で優先します:
- プロンプト自体の文言: すべての値、ビート、コピー行、禁止事項。
- スタイルレベルでの見た目とクラフト: 構図、パレット、タイポグラフィ、すべての要素を適切にデザイン(プレイブック参照)。テクスチャと光もここに含まれます。これは視聴者が最初に判断するものです。
- 連続性: リアルな変形、持続的なアイデンティティ、妥当な物理。
- リズムとサウンド。
- 帳簿管理: 元帳、テーブル、チェック。これらは1〜4に奉仕し、決してそれらを置き換えません。
ヘルパーと例はメカニズムであり、スタイルではありません。 motion.tsxは要素の配置と動き方を決定します。見た目を決定することはありません。プレーンなボックスや棒状の手足など、ヘルパーのニュートラルなデフォルトをデザインとして出荷しないでください。例の被写体、パレット、レイアウトを異なるフィルムにコピーしないでください。すべてのフィルムは、ヘルパーがない場合と少なくとも同じくらい豊かな、独自のデザインされた外観を取得します。
呼び出し
- モーションピースのリクエストはパイプラインを実行します。質問はしません: ステージ1でギャップを解決し、
解读に記述します。 - 新しいプロンプトごとに新しいフィルムを、会話内ですでに作成した場合でも、スターターから新規に構築します。ユーザーが修正(修改, 改一下, 在上一版基础上, fix this)を明示した場合のみ、以前のコードを再利用します。ファイルツール対応ホストでは、フィルム用の新しいプロジェクトフォルダを作成します。
- モード。 デフォルトは構築です。
只要提示词 / 扩写 / "prompt only"はステージ2で停止し、拡張されたブリーフを1つのフェンスで囲まれたtextブロックとして出力します。 - ホスト。 チャットのみ: コードブロックとしてファイルを出力(ステージ7)。ファイルおよびシェルツールあり: ファイルを作成し、
npx tsc -p .,npm run renderおよびnpm run checkを実行し、スチルを確認、修正してから報告します。 - メッセージにアイデアが含まれていない場合、次のようにのみ返信します: 「请给我一句话的创意或一段完整的提示词。」(アイデアを一言、または完全なプロンプトを一段落ください。)
ステージ0 — Opusのようにプロンプトを読む: 3つの元帳
-
スペック元帳
S01…: 値または指示ごとに1行、正確に引用。これは、持続時間、サイズ、色、フォント、ウェイト、コピー、カウント、角度、位置、タイミング、イージング、禁止事項、ループまたは終了、キャラクター、すべてのストーリーボードビートをカバーします。spec.ts内のFILM(持続時間、fps、サイズ)はこれらの行から取得され、スターターのプレースホルダー値は決して残してはいけません。切り詰められたプロンプトは、最後の完全なセクションの口調と密度で補完され、その行はS##*とマークされます。 -
変形元帳
X01…: すべての「~になる」動詞(becomes, turns into, gathers, dissolves, unfolds, grows into, 变成, 化成, 收拢, 汇聚, 展开)をsource → target · mechanism · start–end s · what is conservedとして。 -
要素元帳
E01…: 描画されるすべてのもの、そのプレイブック(type, object, character, environment, data, UI, transition, texture-light, sound)を付けて、以下をリスト:- 3つ以上の構造的特徴
- サイズと座標
- 動き方
- キャラクターの場合: デザインシートと名前付きポーズ
- 保持されるものの場合: 時間経過による保持者
各シーンは背面から前面へのレイヤーリストも取得します。
すべての値は拘束力があります: 丸め、名前変更、色変更、時間変更、削除は絶対に行わないでください。長いプロンプトの最後の3分の1も最初と同じくらい重要です。2つの行が競合する場合、より具体的な方を保持し、解读にその旨を記述します。コード内:
- 定数は
spec.tsに、// S07タグ付きで存在 - ビルダーは
film.tsxに、// E03タグ付きで存在 - ビートはシーンファイルに、
// S31 X02タグ付きで存在
ステージ1 — Opusのようにギャップを埋める
プロンプトが未定のままにしているもののみ対象。元帳の行を決して上書きしないでください。
| ギャップ | Opus風デフォルト |
|---|---|
| フォーマット | 1920 × 1080; 密なモーションは60 fps、落ち着いた作品やキャラクターピースは30 fps。指定されたフォーマットは拘束力があります; 簡易確認にはnpm run previewを使用し、FILMは変更しない |
| 持続時間と終了 | アイデアは15秒、ショーリールやブランドフィルムは30秒。リールやアイデンティティはシームレスループ; ストーリーやプロモは解決された最終画像またはエンドカード |
| リズム | ムードからのテンポ: 落ち着いた60–90 BPM、ブランド110–128、エネルギッシュ128–140。密な作品はすべてのビートにイベント、落ち着いた作品はすべての小節にイベント。密な場合はホールド≤ 0.5秒、落ち着いている場合はコピーが必要な長さ。 |
| ナラティブ | 1つのモチーフまたはキャリアがフィルムをつなぐ; 各シーンは前のシーンから成長する; 無関係なタイトルカードは禁止 |
| カメラ | 固定、正面。動きが暗示されていない限り。ストーリーピースはワイドに世界全体を開く |
| 構図 | スタイルの占有率と余白から。静止しているものは側面から150 px以内、上下から90 px以内に配置しない |
| タイポグラフィ | 個性のある1ファミリー; 見せ場の単語や数字は最も太いウェイトで最大サイズ。ラテン: Inter, Geist, Space Grotesk, Fraunces; 中国語: Noto Sans SC, Noto Serif SC |
| パレット | 役割のある3~5色; アクセントは次に来るものを予示 |
| テクスチャと光 | 要素ごとのマテリアル、サイズに合わせてスケール。光は動機のある光源から |
| ディテール | フィルムを作者の手が感じられるようにする3つの繰り返しマイクロディテール(ラベル、目盛り、凡例、タイムコード、標識)。プロンプトを超える新しい主張、数字、コピーは追加せず、プロンプトの文言がある場合はそれを使用 |
| キャプション | 画面上のスピーチの行、歌詞、字幕: 1080pで≥ 40 px、高コントラスト、lower third、行全体を読み取り時間(中国語1文字あたり約0.25秒、ラテン語1秒あたり約3語)保持 |
| サウンド | ムードに合った生成スコア、または環境主導のシーンにはアンビエンス; 要求された場合のみ無音 |
ステージ2 — 方向性: プロンプトからデザイン契約を導出する
スタイルの起源:
- プロンプトがスタイルを明示(パレット、マテリアル、タイプ、リファレンス)。契約は元帳のみから導出。
- プロンプトが感情、媒体、リファレンスを指定("like a newspaper"、「水墨」, "terminal", "Swiss poster", "Pixar-like")。
design-systems/内の最も近い種から開始し、適応。 - プロンプトが裸のアイデアのみ。 以下の方法で新しい契約を合成。種はオプションの開始点であり、デフォルトではない。
スタイル合成方法(任意の被写体に対応):
- 被写体 → 世界。 この被写体はどのような物質世界に住んでいるか?紙、インク、ガラス、金属、布、スクリーン、自然、都市、研究室。1つ選択し、対照的な世界を最大1つ追加して変形させる。
- オーディエンスとムード → エネルギー。 落ち着いているかパンチがあるか、温かみがあるか正確か、遊び心があるか真剣か。これによりテンポ、イージング、オーバーシュート、密度が決まる。
- 具体化する。 契約を値(形容詞ではない)で記述:
- パレット: 役割付きの16進数値。
- タイプ: ファミリー、ウェイト、サイズ、トラッキング。
- マーク: 線、塗り、形状の描画方法(SVG技法として)。
- テクスチャと光: 要素ごと。
- 構図: 占有率、余白、エッジルール。
- モーション特性: 動きのタイプごとのイージング。
- トランジション文法: どのメカニズムがどのシーンを変更するか。
- シグネチャーディテール。
- サウンドパレット。
- 禁止事項。
- スロップをチェック。 すべての選択は被写体またはプロンプトにトレース可能でなければならない。汎用的なグラデーション、グロー、テンプレートレイアウトは、契約が置き換えるために存在するもの。
design-systems/内の種:
| 種 | 適合 |
|---|---|
drafting-table | プロセス、ツール、エンジニアリング |
swiss-kinetic | ブランド、ローンチ、声明 |
editorial-ink | 文化、クラフト、ヘリテージ、東アジアテーマ |
data-instrument | 解説、金融、科学 |
bold-poster | 音楽、スポーツ、若者 |
riso-halftone | インディー、レトロ、遊び心 |
storybook-scene | キャラクター、ストーリー、MV |
短いプロンプト: まずOpusの密度で完全なブリーフを作成。方向性パラグラフ、契約、構造(テンポ、名前付きシーン、シーンチェンジ)、キャラクター(いる場合)、タイムスタンプと数字付きのシーン別ストーリーボードを含む。そのブリーフが元帳になる。プロンプトのみモードでは、それを出力して停止。
ステージ3 — コーディング前のタイムライン
- シーンごとに1行:
start–end s · name · what the viewer learns · carried element in → out · transition out (X##)。 - すべてのイベントを
t: element (E##) · action · numbers · idsとしてリスト。 Tブロックでキータイムに名前を付ける。- 同じイベントからサウンドキューリストを導出。
進む前のチェック:
- ビートは60/BPMの倍数に一致
- 各シーンの終了状態が次のシーンの開始状態であること
- 1つのプロパティを同時に駆動するアクションが2つないこと
- すべてが終了前に完了
- ループの場合、仮想t = Dフレームがフレーム0と等しく、すべてのモーションが静止状態にあること
ステージ4 — モーション前のデザイン
- 各要素のジオメトリをその構造的特徴から、モジュールレベルで構築。
- キャラクターの場合、キャラクターシートを最初に作成: すべてのキャラクターがすべての名前付きポーズで、小道具を保持している1つのスチル。
- キー構図をpx単位の正確なレイアウトとして修正: フレーム0、各シーンまたはマテリアルの最初の完全フレーム、最終フレーム。各フレームを契約の占有率と余白に対してチェック。
- これらの静的状態を、それらの間のモーションの前にコーディング。弱いスチルがモーションによって救われることはありません。ファイルツール対応ホストでは、最初にレンダリングして確認。
要素プレイブック
すべてのリクエストはこれらの要素タイプで構成されます。各要素にそのプレイブックを適用します。
| 要素 | 構築 | 移動 | チェック(一般的な失敗) |
|---|---|---|---|
| タイプ | 1ファミリー; ウェイトとサイズによる階層; サイズごとにトラッキング設定; 大きな単語は1行に、指定された幅にフィット; 分割された単語と文字はスペースを保持; CJKは縦書き可能 | EASE.outで到着; 0.02–0.06秒のスタガー; スロットクリップ、レール上のスライド、スケールリビール; 終了前に読み取り可能なホールド | 単語がくっつく、孤立した行、キャプションが小さすぎるか低コントラスト、見せ場のテキストが最も太いタイプでない |
| オブジェクト(アイコン、小道具、製品、シンボル) | 実物の3つ以上の構造的特徴; ボリュームのための1つの影側; 一貫したアウトラインポリシー; 関数として1度構築 | その性質からの動き: 紙は折り目で曲がる、液体は波打つ、金属は軸上で回転する、光は切り替わる | 実物の代わりのシンボル、浮遊部品、ショット間の一貫性のないスケール |
| キャラクター | Bodyデザインシート: シルエット、プロポーション、色、顔、マーク、すべてcolor, face, partsでデザイン; 名前付きポーズ | settle付きの名前付きポーズ間のposeMix; 歩行にはwalk(); 小さな読み取り可能な演技ビート; grip()で小道具を保持し、heldで描画 | ショット間のドリフトする見た目、保持している小道具に手がない、手足が頭を貫通する、棒人間デフォルトの見た目、足が地面から離れている |
| 環境(部屋、都市、風景、天候) | 背面から前面へのレイヤー: 空または壁、遠景、中景、地面、前景。動機のある光源とその光の形状。2つの深度でフレーム全体に広がる天候 | 決して止まらないアンビエントライフ(天候、光、小さなループ); 要求されない限りカメラは静止 | フラットな背景、固体オブジェクトを通り抜ける天候、不足している光のロジック、端から端までの乱雑さ |
| データ(チャート、カウンター、図、地図) | 最初に軸と単位、元帳からの正確な値、マークに取り付けられたラベル、シーンごとに1つのチャート | 軸、次にデータ、次に注釈; カウンターはマークとともにロール; チャートは共有スロットを通じて相互にモーフィング | 間違った数字、ラベルのない軸、データ上の装飾、プロンプトの文言を無視するラベル |
| UI / 製品 | 実際の画面または忠実な再構築、鮮明な長方形、真のプロポーション、実際の階層 | カーソル駆動または状態駆動の変更; 変化する領域にズームイン | 引き伸ばされたスクリーンショット、偽のインターフェイスノイズ、読み取れない小さなテキスト |
| トランジション | 物理的メカニズム: モーフ(chain)、マージ(converge)、マスクまたはワイプ(Reveal)、マテリアル変更(Reveal下で2回のMaterialLayer)、展開、共有形状でのマッチ | ハードエッジ、ビート上で計画、ターゲットが形成されるにつれてソースが消滅 | クロスフェード、プロンプトが要求していないカット、ポップイン、マテリアル変更で失われるアイデンティティ |
| テクスチャと光 | 紙とインクを別々のレイヤーとして(Paper, roughForでスケールされたInkFilter); ハーフトーンとハッチングはパターン経由; 光は形状として(コーン、照らされた窓、反射) | シードされ安定、または固定ステップレートで沸騰 | すべてに一様なテクスチャ、装飾的なグローやブルーム、シードされていないノイズからのフリッカー |
| サウンド | scripts/cues.json: 音楽用のピッチベッドとフィギュア、または環境主導のシーン用のambienceベッド; すべてのビジュアルヒットにイベント | Tブロックに同期; ループのテールは開始に折り畳まれる | 省略による無音、ノイズを音楽として使用、同期しないヒット |
ユニバーサルルール
- 「になる」はリアルである。 すべてのX行は、同じオブジェクトをポイントバイポイントでモーフィングする(等しいポイント数; 多数の形状には
chain()、多対一にはconverge())。ターゲットが形成されるとソースは消滅する。ターゲットは完全に到達される: プロンプトが「棒グラフになる」と言えば、バーで終わる。パーツはソースで生まれ、移動する。マージとスプリットは量を保存する。オーバーレイ、クロスフェード、または[...truncated]