Communitygithub.com

raymond9703/AgentMotion

一句话出片 · 純コード動画生成統一フレームワーク(AgentMotion)。コードでフレーム単位に描画しMP4をレンダリング——素材不要、AI動画モデル不要、フレーム=f(t)完全決定論。

AgentMotion とは?

AgentMotion は、人間の指示から完全にコードで描画された MP4 動画を生成するための統一フレームワークです。このスキルは「オーケストレーションレイヤー」として機能し、バックエンドの選択、スタイルの選定、ワークフローの実行、品質チェックを自動化します。コアとなる原則は「フレーム = f(t)」という純粋関数であり、すべてのフレームはフレーム番号のみから決定論的に計算されるため、並列レンダリングやフレームごとの自己検証が可能です。2 つのレンダリングバックエンド(ゼロ素材 HTML Canvas / React+Remotion)を統一的に扱い、15 種類の商用グレードスタイルレシピと完全な品質チェックサイクルを提供します。既存の動画ファイル編集や拡散モデル(Wan/Hunyuan/LTX)による動画生成には対応していません。

対応~Claude Code~Codex CLI~Cursor
npx skills add raymond9703/AgentMotion

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

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

ドキュメント

AgentMotion — 純コード動画生成統一フレームワーク

「一言」を、すべてコードで描画された MP4 に変換します。このスキルはオーケストレーションレイヤーです:バックエンドの選択、スタイルの選定、ワークフローの実行、品質チェックを支援します。具体的な描画知識は references/ と styles/ にあります。

コア不変条件(全バックエンド共通)

すべてのフレームはフレーム番号の純粋関数:frame = f(t)。 Math.random()(代わりにシード付き乱数)、Date.now()、rAF による状態蓄積は使いません。これが決定論的レンダリング、並列出力、フレーム単位の自己チェックが成立する前提です。これに違反すると、レンダリングとプレビューが一致しなくなります。

第一ステップ:バックエンドの選択(決定木)

シナリオバックエンド参照先
短編(≤60秒)、外部素材不要、イラスト/手描き/スタイライズ単一ファイル HTML Canvasreferences/backends.md §1
データ駆動、バッチパーソナライズ(データ1件につき1本)、字幕/ナレーション焼き込み、3D/チャートコンポーネントエコシステムReact + Remotionreferences/backends.md §2
Webページ内で直接再生するインタラクティブアニメーション(MP4不要)単一ファイル HTML、HTMLを納品、レンダリングは行わないreferences/backends.md §3

迷ったら Canvas 単一ファイル:依存関係が最小で、エージェントが一発で正しく書きやすい。

第二ステップ:スタイルの選択

styles/recipes.md(15 種類の商用グレードスタイル:カラーパレット / コア技法 / モーションルール / 注意点)を参照。ユーザーがスタイルを指定できない場合は、選ばせるかテーマに沿って推薦します。異なる2本の動画ではデフォルトで同じビジュアルと楽曲は再利用しません。

第三ステップ:標準ワークフロー(途中で質問を止めない)

  1. 課題理解:ユーザー入力から動画タイプ(ストーリー/解説/まとめ/ループ/データ動画)、尺(デフォルト 15-20秒)、アスペクト比(デフォルト 1920×1080;データ共有動画は 1080×1920)を推測。字幕言語はユーザー入力言語に従う。
  2. 絵コンテ:最初に BPM とセクションデータ(SECTIONS/SHOTS/EVENTS)を決定。映像と楽曲は同じ時間データを読み込み、自然に音画が同期(references/storyboard.md)。
  3. 骨組み構築:templates/starter.html からコピー(Canvas バックエンド)、カラーパレットとワールド描画を置き換え。契約を維持:ページは window.C2V = { fps, frames, width, height, draw(frame) } を公開し、draw は純粋関数とする。
  4. 自己チェック後にレンダリング(順序を逆にしない):
node scripts/render.mjs film.html sheet.jpg --sheet 1          # 1フレーム/秒 のコンタクトシート、カット点で区切り
node scripts/render.mjs film.html still.png --stills 0,90,300  # 指定時刻の静止画
node scripts/env-check.mjs                                      # 環境チェック
node scripts/render.mjs film.html out.mp4 --audio music.mp3     # フル動画レンダリング(オプションで楽曲付き)
node scripts/probe.mjs out.mp4 1920x1080 30                     # エンコードパラメータのアサーション
  1. 目視検査2回(references/qc.md):① 絵コンテ適合度——各ショットのアクションのビートでフレームをキャプチャし、絵コンテの行と照合;② ディレクターラウンド——コンタクトシートを確認し、リズム/ショットのバリエーション/デッドフレーム/各アクションに音があるかを評価。最低2ラウンド、修正は該当フレームのみ再レンダリング。
  2. 納品:MP4 + HTML(HTML はブラウザで直接再生可能)。最後に1〜2文で変更可能項目を提示:スタイル変更、楽曲変更、尺変更。

Remotion バックエンドのレンダリングと検証は npx remotion still → 目視検査 → npx remotion render(references/backends.md §2 参照)。

失敗防止ルール(最も頻度の高い失敗)

  • 純粋関数。状態の蓄積は並列レンダリングでのフレームズレを引き起こす。
  • 手描き線は「沸騰」させ、「震え」させない:wobble シードは4フレームごとに切り替え(≈7.5回/秒)、毎フレーム切り替えるとノイズのように見える。
  • 体は楕円と角丸矩形で描く、多角形が少ないと道路標識のように見える。
  • 描画順序は明示的に奥から手前へ、「顔が隠れている」問題の多くは描画順序に起因する。
  • テキストは決して重ならない:テキストブロックとキーオブジェクトに占有領域(claim)を設定し、納品前にフレーム単位でレイアウトを確認。
  • カット点とアクション点はビートに合わせる、かつラウドネスの急変は ≤+6dB に抑える。そうしないと驚いたように見える(references/audio.md)。

ファイルマップ

ファイル内容
scripts/render.mjs決定論的レンダリングコア:MP4 / 静止画 / コンタクトシート、マルチワーカー並列
scripts/env-check.mjs / probe.mjs環境チェック / MP4 エンコードアサーション
templates/starter.htmlフレーム=f(t) の骨組み:契約、シード付き乱数、イージング、カメラ、ビート
styles/recipes.md15 種類のスタイルのコードレベルレシピ
references/*.mdワークフロー / 絵コンテ / 技法 / 品質チェック / 楽曲 / バックエンド選定
examples/hello-drop.htmlすぐ実行可能な最小サンプル

依存関係

Node 18+、ffmpeg(PATH が通っていること)、Chrome または Edge;npm i playwright-core(あなたのプロジェクトディレクトリにインストール。このスキルのディレクトリではない)。

関連スキル