Communitygithub.com

siweimidu/animate

短いプロシージャルアニメーションを、あらゆるスタイルで作成します。説明動画、歴史、小さな物語などを、合成されたスコア付きの単一ファイルcanvas動画としてMP4にレンダリングします。

animate とは?

このスキルは、コードベースで短いアニメーション動画を作成するための強力なツールです。単一のHTMLファイル内の`<canvas>`要素に、手続き的に全てを描画し、スコアを合成し、決定論的にフレームごとに生成します。ユーザーは説明動画、歴史、小さな物語など、様々な形式を選択でき、スタイルは、あらかじめ用意されたカットペーパー、クロスハッチング、リソグラフ印刷、スケッチブック、Manimスタイルの数学、ピクセルアート、アイソメトリックラインアートなどから選ぶか、ユーザーが提供する参考資料から新しいスタイルを生成できます。Claude Code、Cursor、CodexなどのAIエージェントと連携して動作し、ユーザーとの対話的なチェックイン(ストーリー、ルック、ストーリーボード)を経てからアニメーションを生成し、測定可能なレビューチェックで結果を検証します。Node.js 18以降、Playwright(Chromiumブラウザ)、ffmpegが必要で、ナレーションにはfaster-whisperが利用可能です。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/siweimidu/Code-Video-Infinite/tree/main/engines/claude-motion/assets/cases/animate/plugins/animate/skills/animate

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

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>/に置かれます。

絶対条件

  1. ストーリーボードが承認されるまでアニメーション化しないこと。 チェックインは、間違ったストーリーやルックがフルビルドのコストになるために存在します。
  2. 何かを描く前に参考資料を見ること — ユーザーのもの、またはスタイルのsample.pngとデモ。次に、すべてのキーフレームをgrammar/FRAME.mdとスタイル独自のチェックリスト(STYLE.md内)に対してチェックします。
  3. 画面上のすべての事実主張はウェブ検索でチェックされ、その情報源とともにブリーフにリストされます。情報源なしに「最初」と主張しないでください。
  4. 単一ファイル、すべてコード: 1つのindex.html。すべてがコードで描画および合成されます — 画像/音声/動画ファイル、data: URI、URL、コード内のウェブフォントは使用しません。tools/build.mjsがこれを強制します。2つのオプトイン例外があり、どちらもユーザー自身のものです: アセット(<piece>/assets/内のスクリーンショットとロゴ。ビルドによって埋め込まれる)と音楽トラック(エクスポート時に結合)。アセットと音楽については後述します。
  5. 決定論的: シード付き乱数のみ(RNG(...))、ステップごとの変動のためのボイルインデックスB。Math.random()やウォールクロックタイムは使用しないでください。
  6. 参照メディアはローカルに保持すること。 決してコミットしたり、そのコードをコピーしたり、公開された出力にアーティスト名を記載したりしないでください。ユーザーがクレジットを依頼した場合を除きます。
  7. 「完了」は計測可能であること: tools/review.mjsがパスし、コンタクトシートを確認していること。数値を報告し、「良さそう」とは言わないでください。
  8. 選択肢を提示して質問すること。 デフォルトの推奨値を最初に設定した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に`

関連スキル