animate は何をしますか?
あなたはコードで短いアニメーション動画を作成します。1つの<canvas>を使用し、手続き的に描画され、スコアが合成され、フレームごとに決定論的に生成され、ヘッドレスブラウザとffmpegでレンダリングされます。ストーリーは、優れた短編アニメーションから研究された文法に従います。ルックはスタイルです。これは、styles/から選択するか、ユーザーの参考資料からnew-style.mdを使用して作成するプラグインキットです。
要件: Node 18以降、ChromiumをインストールしたPlaywright(npm i -g playwright && npx playwright install chromium)、ffmpegがPATHに存在すること。まずこれらを確認し、不足しているものがあればインストールコマンドを伝えて停止します。ナレーションを使用するには、faster-whisperがインストールされたPython(pip install faster-whisper)が必要で、これによりすべての単語のタイミングが計測されます。ない場合は単語のタイミングは推定されます。
以下のすべてのパスは、このスキルのベースディレクトリからの相対パスです。作品はユーザーのプロジェクトのpieces/<name>/に置かれます(必要に応じてpieces/を作成)。ユーザーが作成したスタイルは<project>/styles/<name>/に置かれます。
絶対条件
- ストーリーボードが承認されるまでアニメーション化しないこと。 チェックインは、間違ったストーリーやルックがフルビルドのコストになるために存在します。
- 何かを描く前に参考資料を見ること — ユーザーのもの、またはスタイルの
sample.pngとデモ。次に、すべてのキーフレームをgrammar/FRAME.mdとスタイル独自のチェックリスト(STYLE.md内)に対してチェックします。 - 画面上のすべての事実主張はウェブ検索でチェックされ、その情報源とともにブリーフにリストされます。情報源なしに「最初」と主張しないでください。
- 単一ファイル、すべてコード: 1つの
index.html。すべてがコードで描画および合成されます — 画像/音声/動画ファイル、data:URI、URL、コード内のウェブフォントは使用しません。tools/build.mjsがこれを強制します。2つのオプトイン例外があり、どちらもユーザー自身のものです: アセット(<piece>/assets/内のスクリーンショットとロゴ。ビルドによって埋め込まれる)と音楽トラック(エクスポート時に結合)。アセットと音楽については後述します。 - 決定論的: シード付き乱数のみ(
RNG(...))、ステップごとの変動のためのボイルインデックスB。Math.random()やウォールクロックタイムは使用しないでください。 - 参照メディアはローカルに保持すること。 決してコミットしたり、そのコードをコピーしたり、公開された出力にアーティスト名を記載したりしないでください。ユーザーがクレジットを依頼した場合を除きます。
- 「完了」は計測可能であること:
tools/review.mjsがパスし、コンタクトシートを確認していること。数値を報告し、「良さそう」とは言わないでください。 - 選択肢を提示して質問すること。 デフォルトの推奨値を最初に設定したAskUserQuestionを使用し、ユーザーがワンクリックで回答できるようにします。
フロー
0. 情報収集
intake.mdの質問をします — 推測できないものだけを尋ねます。ルックについては、ギャラリーをビルドし(node tools/gallery.mjs <out.png> [<project>/styles]、約3秒)、それを表示して尋ねます: これらのどれか、または参考資料を見せてもらえますか? 次に、あなた自身でFRAME.mdとスタイルのチェックリストに対して参考資料を調べます。
1. ストーリーチェック(テキスト、高速)
grammar/FORMATS.mdからフォーマットを選択します — プロットエンジンがそれを決定します(歴史はモーフで結合された年表、ミッションはビートでカット、リストはカタログです)。grammar/STORY.mdを読んでください。事実をウェブチェックします。次に、ユーザーに以下を表示します:
- 一言のアイデアと、言える仕掛け(「スパークは時代ごとに光線を獲得し、答えとして終わる」)
- フォーマットとその理由、スタイル、長さ、BPM
- 番号付きビートテーブル: 時間、何が起こるか、次のビートへのブリッジ、サウンドの役割(無音の場所、最も大きなヒットの場所)
尋ねます: 承認 / ビートの変更 / 別の角度。 承認されるまで修正します。これにより、「XではなくYを意図していた」という問題を安価に捕捉できます。
2. ルックチェック(2~4枚のスタイルフレーム)
pieces/<name>/で作品を開始します: スタイルのデモ(styles/<name>/demo/)からpiece.jsonとsrc/をコピーします — これはすでにスタイルのキットを話し、モーフで時代を結合します — または、ビートで強くカットする作品(8分音符、奇数フレームでの16分音符のラッシュ、ショットごとに1つの時代、カメラからのフレーミング)にはtemplates/beat-cut/から、最もプレーンなカットペーパーモーフにはtemplates/piece/からコピーします。piece.jsonに`