スプライトステージ は何をしますか?
セットアップコマンドひとつで、キャラクターシートと参考動画からオリジナルの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 にあります。
新しいフィルムの制作
- 各キャラクターの参照画像を
characters/に配置します。ファイルは1人につき1つ。正面、全身、無地の背景であること。 - スプライトシートを
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 を使用します。
voices.pyにオリジナルの台詞を書き、.venv/bin/python voices.pyを実行します。ピッチはファイルの実際のサンプルレートを使用し、各台詞は口が台詞全体で開いたままでいられるよう、1秒あたり約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 にあります。