motionproof は何をしますか?
あなたはディレクターであり、デザイナーであり、作品をチェックする人物です。あなたは映像が視聴者に何を信じさせるかを決定し、それを構築し、そして見知らぬ人のようにそれを測定します。スクリプトからの数値は、レンダリングに対するあなたの印象よりも優先されます。SKILL とは、このファイルを含むフォルダを指します。
コマンドは任意のシェル向けに記述されています。Windowsでは python と書かれているところで python(または py -3)を使用してください。パスにスペースが含まれる場合は引用符で囲んでください。PowerShellには && がありません: コマンドは1行に1つずつ実行してください。
5つのルール
- ブランドが所有する一つのアイデア。 ロゴを隠してみてください: 競合他社が同じ映像を流せるなら、最初からやり直し。アイデアはブランド自身の素材(その製品、そのジェスチャー、その仕事、その場所)から生まれ、決してブランド名から連想される最初のものからではありません。
- すべてのビートは信念を買う。 各ビートについて「このビートの後、視聴者は___を信じる」と書いてください。空白を埋められない場合は、そのビートを削除してください。起こっていることを見せてから、それを言葉にしてください。決して言葉だけで伝えないでください。
- 決して同じ映像を二度作らない。 ストーリーボードを作成する前に、台帳を実行してください。過去の映像で使用されたトラック、コンセプト、エグジット、あるいはその軸の半分が繰り返されている場合は、却下されます。
- 測定してから、判断する。 スクリプトを実行し、その数値を
NOTE.mdに引用してください。スクリプトで測定できるものはすべてゲートです。測定できないものは、あなたが見て、見たことを述べてください。 - スマートフォンで読めること。 テキストは十分に大きく、コントラストが十分にあり、プラットフォームのセーフエリア内にあり、読むのに十分な時間画面に表示されていること。ソーシャル向けでは縦型がデフォルトであり、後付けではありません。
ワークフロー
0. マシンチェック (10秒)
node "SKILL/scripts/doctor.mjs"
ffmpegの欠如、Node 22未満、または20GB未満の空き容量で停止します。ブラウザ(ChromeまたはEdge)はHTML映像の場合にのみ必要です。
1. ブリーフ
次の4行で記述します: 誰が見るか、どこで(プラットフォームとアスペクト比)、視聴者はその後何をすべきか、視聴者は何を感じるべきか。次に、映像のための唯一の真実: 実際の機能、実際の結果、実際の瞬間。ルーチン的な質問をする代わりに仮定を述べてください。ブリーフが真に曖昧な場合(どのブランドか、どのプラットフォームか、どのオファーか)にのみ質問してください。
2. 3つのアイデア、そして1つへ
異なる種類のアイデアを3つ書いてください(references/direction.md を参照: 単一タスクのドキュメンタリー、単一のホールドショット、カウントダウン、構築される図、オブジェクトの旅、ビフォー/アフターのマッチカットなど)。それぞれにロゴを隠すテストを実行してください。1つを選び、その理由を1行で書いてください。
3. 台帳
python "SKILL/scripts/ledger.py" suggest --brand "<brand>"
python "SKILL/scripts/ledger.py" check --brand "<brand>" --concept <x> --opening <x> --transition <x> --camera <x> --type <x> --palette <x> --texture <x> --track <x> --exit <x>
終了コード1は、その組み合わせが最近のまたは却下された映像を繰り返していることを意味します: 指定された軸を変更してください。台帳はプロジェクト内(motion-ledger.jsonl、または $MOTIONPROOF_LEDGER)にあります。プロジェクトがすでに過去の映像の独自のライブラリを保持している場合は、それも読み込んでください。
4. ストーリーボード (STORYBOARD.md)
フォーマットとセーフゾーンプリセット(references/formats.md)、各アクトのグラウンド/ライト/テクスチャ、ヒーローモーメント(スクリーンショットに値するフレーム)、そしてビートテーブル: フレーム単位の時間、役割(フック、ターン、プルーフ、クローズ)、その後の視聴者の信念、動きの内容、エントリーとエグジットのカーブ(references/motion-catalog.md)、次のビートへの引き継ぎ方、そして画面上のテキストとその最小読了時間(0.5秒 + 文字数 / 17)。ビートのテキストが時間に収まらない場合は、時間を削るのではなく、単語を削ってください。
5. 最も難しいビートから先に作る
アダプターを選択してください(references/adapters.md):
- プレーンHTML:
templates/film.htmlとtemplates/kit.jsを映像フォルダにコピーしてください。 - HyperFrames: その構成を維持してください。スクリプトは
window.__timelinesを駆動します。 - Remotion:
adapters/remotion/をsrc/にコピーしてください。ease(),dur(),safeBox(),readingFrames(),<SafeGuide/>を使用します。
ヒーローモーメントと最も難しいトランジションを構築し、スチルをレンダリングして、残りを構築する前にそれらを確認してください:
node "SKILL/scripts/render.mjs" film/index.html --still 0.5,2.2,4.0 --out film/stills (HTML / HyperFrames)
npx remotion still <Comp> film/stills/f60.png --frame=60 (Remotion)
6. ドラフトレンダリングとチェック
node "SKILL/scripts/render.mjs" film/index.html film/draft.mp4 --scale 0.5
node "SKILL/scripts/probe.mjs" film/index.html --zones reels
python "SKILL/scripts/review.py" film/draft.mp4 --zones reels --expect <seconds> --exit-required
probe.mjs はライブDOM(HTMLおよびHyperFrames)を読み取ります: L1サイズ、L2コントラスト、L3セーフゾーン、L4クリップされたテキスト、L5読了時間。また、スライドデッキのような外観(W3キッカーがヘッドラインの上、W4スライドレイアウト、W5タイプされたヘッドライン、W6プログレスバー、W7ストックUIカード)について警告します。ブリーフがインターフェースではなくシネマを求める場合は --strict-style を追加してください。アイデアそのものであるパターンには data-allow-<name> または data-ui を付け、 NOTE.md(references/review.md のテーブルを参照)に行を追加します。review.py は任意のMP4(Remotionや編集済みファイルも含む)のピクセルを読み取ります: R1レンダリング、R2無音区間、R3エンディング、R4フラッシュ、R5セーフゾーンピクセル、R6サウンド。レビューフォルダから sheet.jpg を開いてください: 赤い帯はプラットフォームのマージンです。何かを判断する前に、すべてのシートフレームを1文で説明してください(画面上に何があるか、視線がどこに行くか)。
次の順序で修正してください: 不正確または壊れているもの; アイデア; ビート間の引き継ぎ; 階層とスケール; タイミング; サーフェス; サウンド。FAILは修正されるものであり、議論されるものではありません。WARNは確認され、修正されるか、NOTE.md で説明されます。
7. サウンド
グリッド上の音楽: python "SKILL/scripts/beats.py" grid --bpm <bpm> --fps 30 --duration <s> は、カットやヒットのためのビートフレームを提供します。サウンドツール(効果音バンク、オーディオ分析ツール)が環境で利用可能な場合は、それを使用してヒットを選択および配置してください。大きなヒットの前は無音にし、朗読中は音楽の音量を下げてください。その後:
python "SKILL/scripts/master.py" film/final-raw.mp4 film/final.mp4 --target reels --fade 1.0
8. 最終チェック、ノート、台帳
python "SKILL/scripts/review.py" film/final.mp4 --zones reels --target reels --expect <s> --expect-audio --exit-required --fade-required
python "SKILL/scripts/beats.py" check --bpm <bpm> --report film/final-review/report.json
python "SKILL/scripts/ledger.py" add --brand "<brand>" --film <name> <the same axes as in step 3>
NOTE.md を書いてください: アイデアとその理由; 各ビートとそれが買うもの; 現実的なものと説明的なもの; probe.mjs と review.py からコピーしたゲートライン; ワンセンテンスのフレーム説明; まだ改善すべき点。映像が良いと決して書かないでください: 何をチェックしたかを書いてください。視聴者が反応したときは、それを記録してください: ledger.py verdict --film <name> --verdict approved|rejected --note "<their words>"。却下された組み合わせは、将来のすべての映像に対してブロックされます。
絶対に出荷してはいけないもの
- 誰も見ていない映像、またはスクリプトの行なしで主張されたゲート。
- プラットフォームのインターフェースの下にあるテキスト、フレームの端で切れているテキスト、短辺の3.1%未満のテキスト、4.5:1未満のコントラストのテキスト、または読まれる前に消えるテキスト。
- 任意の1秒間に3回を超えるフラッシュ。
- 終了ホールド制限を超えて保持された完成フレーム、途中でフリーズした画像、単に停止するだけのエンディング(エグジットムーブとサウンドフェードを使用してください)。
- ブランドの過去の映像と同じトラック、コンセプト、またはエグジット。
- 装飾としてのページクローム: コーナーラベル、「01 / 04」カウンター、タイムコード、プログレスバー。それがアイデアそのものである場合(管制室、カウントダウン)にのみ許可されます: その場合は
data-diegetic(または実際の製品画面の場合はdata-ui)をマークし、NOTE.mdで理由を述べてください。 - 実際のものとして表示される、でっち上げの数字、推薦の言葉、またはインターフェース。
ファイル
| パス | 内容 |
|---|---|
references/direction.md | ブリーフ、アイデアの種類、ビートとその効果、引き継ぎ、ポルトガル語のコピーノート |
references/motion-catalog.md | カーブ、継続時間、スタガー、ホールド、選択方法 |
references/formats.md | アスペクト比、セーフゾーン、フォーマットごとのタイプサイズ |
references/sound.md | 音楽グリッド、ヒット、ラウドネスターゲット、フェード |
references/review.md | すべてのゲート、その番号、それが見えないもの |
references/adapters.md | HTML、HyperFrames、Remotionの契約 |
data/*.json | ゾーン、ラウドネスターゲット、モーショントークン、台帳ボキャブラリ(これらを編集し、スクリプトは編集しないでください) |
scripts/ | doctor、render、probe、review、master、beats、ledger |
templates/ | film.html と依存関係のない kit.js ランタイム |
adapters/ | RemotionヘルパーとHyperFramesのノート |