Communitygithub.com

スプライトステージ

キャラクターシートと参考動画からオリジナルの2Dスプライトアニメーションを制作します。2D漫画、スプライトフィルム、キャラクターアニメーション、OpenVoiceの幼児向け音声の作成、またはスプライトステージのセットアップを依頼された場合に使用します。

スプライトステージ とは?

このスキルは、キャラクターの参考画像と参考動画をもとに、オリジナルの2Dスプライトアニメーション(アニメーション動画)を生成するためのツールです。開発者はキャラクターの正面・全身画像を用意するだけで、スプライトシートの生成、音声の合成、動画レンダリングまでを自動化できます。OpenCode、Claude、Codex、CursorなどのAIエージェントプラットフォーム上で動作し、無料の画像生成ツールと組み合わせることで制作費をゼロに抑えることも可能です。スプライトシートはマゼンタ背景の4コマ形式で生成され、ウォーク、フロント、トーキング、バック、シッティングの5種類のアクションをサポートします。音声はOpenVoice V2とMeloTTSを使用し、キャラクターごとに異なる声色を設定できます。約1分のアニメーション制作に必要なトークン数は、スプライトが既存の場合は入力30万~50万トークン、出力6万~10万トークン、スプライト生成を含む場合は入力100万~150万トークン、出力20万~30万トークンです。

対応✓Claude Code✓Codex CLI✓Cursor✓Gemini CLI✓OpenCode
npx skills add https://github.com/rizwanaabbas/sprite-stage/tree/main/.cursor/skills/sprite-stage

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

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

ドキュメント

スプライトステージ は何をしますか?

セットアップコマンドひとつで、キャラクターシートと参考動画からオリジナルの2Dフィルムを制作します。

最初のアクション

.ready ファイルがない場合は、以下を実行し、Sprite Stage is ready. と表示されるまで待機します。

bash setup.sh

これは自分で実行してください。ユーザーにパッケージのインストールリストを渡さないでください。このスクリプトは再実行しても安全です。

画像再生(Picture replay)はシステムのPythonを使用します。新しい音声生成には、スクリプトが作成する仮想環境を使用します。

python3 render.py
.venv/bin/python voices.py
python3 render.py

完成したサンプルは renders/long-slide.mp4 です。

オリジナルとして保持するもの

参考動画は、場所、アクションの順序、雰囲気といった前提のみを提供します。ユーザー自身のキャラクター名を使って新しい脚本を書いてください。ソースのタイトル、キャラクター名、ロゴ、歌詞、話し言葉を、プロンプト、画面上のテキスト、サウンドトラックにコピーしないでください。

含まれているキャストの衣装と音声の固定設定は characters/CAST.md にあります。プロンプトの例は examples/prompts.md にあります。

新しいフィルムの制作

  1. 各キャラクターの参照画像を characters/ に配置します。ファイルは1人につき1つ。正面、全身、無地の背景であること。
  2. スプライトシートを sprites/{名前}-{アクション}.png に生成します。サンプルレンダラーが使用するアクションは、walk、front、talking、back、sitting です。シートはマゼンタ (#FF00FF) の背景上に4つのセルが横並びになります。

無料スプライト

デフォルトでは無料の画像ツールを使用します。これによりスプライト画像は $0 になります。COSTS.md のエージェントトークンテーブルは引き続き適用されます。

python3 scripts/free_sprites.py --provider prompt --name lina --action walk,front,back,talking,sitting

sprites/prompts/ 内の各ファイルは、添付する2枚の画像と貼り付けるプロンプトを指定します。サンプルプロンプトは examples/prompts.md にあります。ツールの画像を sprites/{名前}-{アクション}.png として保存します。

Geminiを使用するのは、GEMINI_API_KEY がすでに環境変数に設定されている場合のみです。キーを要求したり、表示したり、リポジトリに書き込んだりしないでください。

python3 scripts/free_sprites.py --provider gemini --name lina --action walk

そのモデルがキーの無料利用枠外にある場合は、停止して --provider prompt を使用します。

  1. voices.py にオリジナルの台詞を書き、.venv/bin/python voices.py を実行します。ピッチはファイルの実際のサンプルレートを使用し、各台詞は口が台詞全体で開いたままでいられるよう、1秒あたり約2単語に調整されます。
  2. render.py の NAMES と HEIGHT をキャストに合わせて設定します。タイムラインは、登るのは1人のみ、滑るのは1人のみとなるように構築します。python3 render.py を実行します。口は duration + 0.2秒 の間開きます。滑り台の歓声は滑りが始まったときに開始します。

衣装を損なわないスプライトルール

  • 強いマゼンタのみをキーにします:赤 > 200、緑 < 100、青 > 200。緩いクロマキーはピンクの布地に穴を開けます。
  • 顔だからといって連結領域を削除しないでください。約1800ピクセル以上のコンポーネントは保持します。
  • 歩行セルはタイミングを共有します:大股、足を揃え、反対の大股、足を揃え。
  • 横顔は右を向きます。キャラクターが左に歩くときは、レンダラー内で反転します。
  • ライダーは滑り台の経路上に座らせ、脚を滑り台の手前側の縁で覆います。胴体をシュートの上に浮かせないでください。

音声

OpenVoice V2 はトーンをシフトします。MeloTTS はイギリス英語ベースで言葉を発声します。子供の声は大人より高く、やや速くなります。各人に異なる目標トーンを設定してください。キャスト全員に同じピッチを設定しないでください。

台詞が口の時間枠より短い場合は、MeloTTS の速度を下げるか、atempo を1未満にして引き伸ばします。隙間を埋めるために台詞を速くしないでください。

コストとマシン

1分のフィルムは、スプライトがすでに存在する場合、入力約30万~50万トークン、出力6万~10万トークンです。スプライトも作成し1回修正する場合は、入力約100万~150万トークン、出力20万~30万トークンです。OpenCode、Claude、Codex、Cursor の金額、および OpenVoice のCPU要件(8 GB RAM、Python 3.11~3.13、GPU不要)は COSTS.md に記載されています。

ユーザーがフィルムを無料で制作したい場合、このスキルを OpenCode 上の Free とマークされたモデルで実行し、--provider prompt でシートを生成します。そのエージェントラインは、フィルムが毎日の無料モデル枠内に収まる限り $0 です。同じアプリ上の有料モデルは、そのプロバイダーに課金されます。

クレジット

OpenVoice と MeloTTS は MyShell の MIT ライセンスソフトウェアです。ffmpeg がフレームを描画します。PyTorch が音声モデルを実行します。チェックポイントは公開されている myshell-ai/OpenVoiceV2 モデルから取得されます。完全なリンクは README にあります。

関連スキル