Codex デスクトップペット使い方ガイド
これは何か
Pets は OpenAI Codex App(デスクトップ版)の機能のひとつです。画面上に最前面表示の透明な小窓があり、そこにピクセルペットが住んでいます。ただの飾りではありません——アニメーションが Codex の動作状態と連動しているのです:
- Codex がコードを生成している間、ペットは「作業中」アニメに入り、その場で忙しく震えます;
- Codex が手を止めて入力を待つと、ペットは「返事待ち」に切り替わり、顔を上げてこちらを見つめます;
- タスクが成功すれば跳んで喜び、失敗すればその場でしょげて冷や汗をかきます。
ウィンドウを切り替えなくても、ペットをちらっと見るだけでターミナルに戻るべきかどうかが分かります。
ペットを使えるようにするまで
- インストールしているのが Codex App デスクトップ版(CLI 単体ではない)であることを確認し、設定で Pets を有効にします;
- 図鑑から好きなペットの
.pet.zipをダウンロードします; - pets フォルダに展開します。1 匹につき 1 フォルダです:
# macOS / Linux
~/.codex/pets/<ペットid>/
├── pet.json
└── spritesheet.webp (PNG でも可)
# Windows
%USERPROFILE%\.codex\pets\<ペットid>\
配置できたら、Codex App のペット選択画面に新しいペットが現れます。表示されない場合は Codex App を一度再起動してください。
スプライトシート仕様(公式)
ペットのアニメーションはすべて 1 枚の画像に入っています:1536×1872 ピクセル、PNG または WebP、背景は透過、8 列 × 9 行に区切られ、1 マスは 192×208。注意点として、行ごとに実際に使うフレーム数が違います(公式コントラクト animation-rows.md で明確に定められています)。行内で使わないマスは完全に透過のままにしなければなりません。上から順に:
| 行 | 状態 ID | 名称 | 使用フレーム数 | ループ時間 | 再生タイミング |
|---|---|---|---|---|---|
| 0 | idle | 待機 | 6 | 1100ms | 静かに呼吸し、たまにまばたき |
| 1 | running-right | 右へ走る | 8 | 1060ms | Codex が右側の仕事に送り出したところ |
| 2 | running-left | 左へ走る | 8 | 1060ms | 帰り道の途中 |
| 3 | waving | あいさつ | 4 | 700ms | タスク開始前にひと振り |
| 4 | jumping | ジャンプ | 5 | 840ms | タスク完了、うれしくて跳ねる |
| 5 | failed | 失敗 | 8 | 1220ms | エラー発生、その場でしょげて冷や汗 |
| 6 | waiting | 返事待ち | 6 | 1010ms | Codex が入力待ちで停止中、じっと見つめてくる |
| 7 | running | 作業中 | 6 | 820ms | Codex がコード生成中、忙しくてプルプル震える |
| 8 | review | レビュー | 6 | 1030ms | 目を細めてコードを左右にスキャン |
つまずきやすいルールをいくつか:
- ペット全体が 192×208 のマスに完全に収まっていること。ジャンプの最高到達点でもはみ出してはいけません;
- 透過は本当に透過であること:使わないピクセルは alpha を 0 にし、RGB 値を残してもいけません。半透明の影、地面の影、スピード線といった「分離エフェクト」は描けません(公式の validate_atlas.py がピクセル単位でチェックします);
- ペットの体に読める文字やロゴを描かないこと;
- ディテールは大きめに——実際の表示サイズはとても小さいので、1〜2 ピクセルの模様はまったく見えません。
pet.json の中身
{
"id": "momo",
"displayName": "Momo",
"description": "A round cream-orange cat.",
"spritesheetPath": "spritesheet.webp"
}
フィールドは 4 つで十分です。id は英小文字と数字で、フォルダ名と一致させます。spritesheetPath は pet.json からの相対パスです。
自分で 1 匹作る
方法その 1:AI に描かせる(公式ルート)。OpenAI は openai/skills で hatch-pet スキルを提供しています。Codex に入れてから欲しいキャラクターを説明すると、画像生成を呼び出して 9 行のアニメーションを一行ずつ描き、仕様どおりのスプライトシートに自動で組み立ててくれます。成果物はそのまま ~/.codex/pets/ に出力されます。手描きの繊細な質感が欲しい人向け。
方法その 2:コードで 1 フレームずつ描く(当サイトのルート)。当サイトの 91 匹はすべて Python + Pillow によるプログラム生成です。24×26 の論理グリッド上に色のブロックで体を描き、状態ごとに各フレームへパラメータを当てていきます——待機は呼吸の上下とまばたき、ジャンプはしゃがみ・伸び・滞空・着地の移動カーブ、失敗は体を潰して X 目と冷や汗。最後に公式の行別フレーム数どおりに 1536×1872 の大きな画像へ組み立てます。数十匹の規模になったところで、これを「設定駆動」に抽象化しました。体の形、配色、耳・しっぽ・メガネ・マフラーはすべてパラメータなので、新しいペットを 1 匹足すのに必要なのは十行ほどの設定だけです。
2 つのルートの成果物は同じものです:仕様に適合したスプライトシート 1 枚と pet.json 1 つ。できあがったらフォルダを pets ディレクトリに放りこめば動きます。
よくある質問
ペットが動かない・表示されない?まずフォルダの階層を確認してください。pet.json は pets/<id>/ の直下に置く必要があり、展開時にできたフォルダがもう一段挟まっていてはいけません。次に画像サイズが正確に 1536×1872 かどうかを確認します。
V1 と V2 の違いは?コミュニティでいう V2 は、9 行の基本仕様に加えて 16 方向の「見回し」フレームを追加し、ペットがマウスの方向を向けるようにしたものです。基本の 9 行仕様のペット(当サイトのものを含む)も、新しい Codex App で問題なく使えます。
このサイトのペットを改変してもいい?できます。91 匹すべてオリジナルのピクセル作品で(インスパイア系が参考にしたのは題材のジャンルだけで、著作権のあるキャラクターは含みません)、自由に改変・再配布でき、クレジット表記も不要です。