こぶたいキャラクター
こぶたい(小舞台)はブラウザ拡張機能およびデスクトップアプリです。音楽、動画、ライブ配信、ポッドキャストの再生中に、小さなちびキャラクターが画面上でパフォーマンスします。このスキルは、ユーザーの好きなキャラクター画像(または説明)を、こぶたいがインポートできるキャラクターに変換します。
アップロード ─► キャラクターカード ─► プロフィールシート + ベースポーズ ─► ステートGIF ─► make_pack.py ─► pet.json + spritesheet.webp
ユーザーの言語(英語、日本語、中国語)で応答してください。画像プロンプトは英語のままにします。
必要な手順に到達したら、以下を参照してください。
references/kobutai-contract.md- シートのジオメトリ、どのGIFがどのこぶたいステートになるか、インポートと共有のルールreferences/prompts.md- すべての画像プロンプト、スタイルブロック、パフォーマンスアクションリストreferences/originality.md- サードパーティキャラクター、オリジナルキャラクター、ペット、実在の人物の扱い方
画像生成
すべての画像には、ホストの組み込み画像生成機能を使用します。
- Codex:
$imagegenシステムスキル(組み込みのimage_genツール)。ユーザーが明示的に依頼しない限り、Image APIやCLIを呼び出さないでください。そのパスにはユーザーのAPIキーが必要です。 - ChatGPT: ネイティブ画像生成。
Images 2.6(2026年11月)はアニメーションGIFを返せます。すべてのアニメーションステートに対してGIFを要求してください。ホストが静止画を返したり、GIF出力を拒否したり、GIFが使用できない場合は、references/prompts.mdのグリッドフォールバック(4x2グリッドPNGとして8フレーム)を使用してください。make_pack.pyがそれをスライスします。
すべてのステート生成に base.png (およびユーザーのアップロード画像(「識別参照のみ」とラベル付け))を添付してください。ベースを添付せずに生成されたステートは無効です。再生成してください。
進捗チェックリスト
このチェックリストを表示し、更新してください(ホストが対応している場合はタスクリスト)。
- キャラクターを読み取る
- プロフィールシートを描く
- ステートをアニメーションする
- こぶたい用にパッケージ化する
- チェックして納品する
ワークフロー
1. キャラクターを読み取る
アップロードされたすべての画像を確認し、RUN/character.json を書き込みます(RUN はワークスペース内の kobutai-<id>/、ChatGPTでは /mnt/data/kobutai-<id>/)。フィールドと例は references/prompts.md § キャラクターカードにあります。以下を決定します。
- モード -
references/originality.mdに従いoriginal/own/personal。認識可能なサードパーティキャラクターのデフォルトはoriginal:そのムード、色、役割に触発されたオリジナルキャラクターであり、コピーではありません。 - スタイル -
kobutai(ハウスのちびスタイル、組み込みキャストにマッチ、デフォルト)またはkeep(アップロードのアートスタイルを維持、ただしコンパクトで全身)。 - シーン - コンテンツ再生中にキャラクターが何をするか(歌う、踊る、DJ、楽器を演奏する、くつろいで聴く、見てリアクションする、メモを取る…)。§ パフォーマンスシーンから選択。
- ジャンル / タイプ - 推奨されるこぶたいタグ。後で拡張機能の共有ダイアログで使用されます。
- クロマキー色 -
#00FF00、またはキャラクターに緑が含まれる場合は#FF00FF。
カード(名前、見た目の一行説明、モード、スタイル、シーン、タグ)を1つの短いメッセージでユーザーに送り、確認または変更を依頼してください。ユーザーが「GO」と言うか、気にしない場合はデフォルトで進めてください。アップロードに明確な単一キャラクターがない場合は、どれかを尋ねてください。
2. プロフィールシートとベースポーズ
RUN/profile.pngを、§ プロフィールシートに従って生成します:正面、斜め、横、背面のビュー、4つの表情、カラーパレットの帯。テキストはなし。これがユーザーのモデルシートです。ユーザーに表示します。RUN/base.pngを、§ ベースポーズに従って生成します。profile.pngを添付します:リラックスした全身の立ちポーズ、斜めビュー、フラットなクロマキー背景上。すべてのステートはこれから描かれます。
アイデンティティ(顔、髪、服装、パレット)がずれている場合は、ここで修正してください。以降のすべてのステップは base.png をコピーして使用します。
3. ステートをアニメーションする
RUN/states/ に生成します。ファイルごとに1ジョブ、毎回 base.png を添付します。
| ファイル | こぶたいでの用途 | 必須 |
|---|---|---|
idle.gif | 待機中、何も再生されていない | はい |
playing.gif | コンテンツ再生中のパフォーマンスループ(最も重要) | はい |
paused.png | 1枚の「お待ちください」ポーズ(こぶたいは1フレームを保持) | 推奨 |
appear.gif | 登場アニメーション、キャラクターが描画されるときに1回再生 | 推奨 |
click.gif | クリックされたときのリアクション、1回再生 | 推奨 |
error.gif | 困惑/悲しいループ | オプション |
walk.gif, review.gif | パックがCodexペットとしても使われる場合のみ使用 | オプション |
選択したシーンのアクションリストとともに § ステートGIF を使用します。順序:まず idle と playing、確認してから残り。各ファイルの後、すぐに確認:同じキャラクター、約8つの異なるフレーム、1つの無地背景、フレーム内の全身、足は同じベースライン上、テキストなし、浮遊エフェクトなし。失敗したステートは § 修復 を使用して単体で再生成してください。不良ステート1つのために全体をやり直さないでください。
ChatGPTまたは $CODEX_HOME/generated_images/ からダウンロードしたGIF/PNGは、正確にこれらの名前で RUN/states/ にコピーする必要があります。
4. パッケージ化
python3 <skill_dir>/scripts/make_pack.py RUN # こぶたい(1行あたり最大8フレーム)
python3 <skill_dir>/scripts/make_pack.py RUN --target codex # Codexペットの正確なフレーム数
Pillow + numpy が必要です(pip install pillow numpy、scipyはオプション)。このスクリプトは背景をキーアウト(または実際の透明度を保持)し、重複フレームを削除し、GIF間のスケールを合わせ、足を揃え、1536x1872のPetdex/Codexシートを書き込み、こぶたいのインポーターとまったく同じ方法で検証します。オプション:--grid playing=4x2 で別のレイアウトのグリッド画像、--scale click=0.9 で特定のソースが大きすぎる/小さすぎる場合、--key-low/--key-high で頑固な背景用。
終了コード2は検証失敗を意味します。out/qa/report.json を読み、ソースを修正して再実行してください。
ホストがPythonを実行できない場合(一部のChatGPT環境)、profile.png、base.png、ステートファイル、character.json をZIPとして納品し、ユーザーに同じコマンドをローカルで実行するよう伝えてください。
5. チェックして納品する
out/qa/contact.png と out/qa/preview.gif を開いて確認してください。以下の場合は拒否して修正します。
- いずれかの行で顔、髪、服装、パレット、小道具が変わっている
- フレーム間またはステート間でキャラクターのサイズが変わったり、横にジャンプしたりしている
- ポーズがセル端で切れている、または背景に色付きのフリンジや斑点が残っている
- playingループが視覚的に静的である、またはidleが大きな動きをしている
- 約120pxの高さ(こぶたいが表示するサイズ)でキャラクターが認識できなくなっている
その後、以下を納品します。
kobutai-<id>.zip(<id>/pet.json+<id>/spritesheet.webpを含む)- 見たり共有したりするための
profile.pngとpreview.gif - 使用方法(
references/kobutai-contract.md§ インポート から): こぶたい → インポート →pet.jsonとspritesheet.webpを一緒に選択。オプション:フォルダを~/.codex/pets/<id>/にコピーすると、Codexペットとしても使用できます。 originalおよびownモードの場合のみ:拡張機能から週刊コミュニティライブラリに提出できます(マイインポートキャラクター → みんなと共有、CC BY 4.0、クレジット名必須)、カードのジャンルと共に。personalモードの場合は、自分の使用のみであることを明確に伝えてください。
RUN/(カード、プロフィール、ベース、ステート)は保持してください。後で「ダンスをもっと速く」や「クリックをやり直し」というリクエストがあった場合、1つのステートだけ再生成すれば済むようにするためです。
コスト
フルランは約8回の画像生成(プロフィール、ベース、idle、playing、paused、appear、click、オプションのerror)と修復を含みます。2回目のフルランを開始する前にユーザーに伝えてください。