CodexでUnityシューティングを制作:リフレアの設計と改善記録
Claude Code作のムレウチを見せ、Codexに別のシューティングを依頼しました。敵弾の吸収反撃、コードで描いた機体と雲、自動プレイが24秒で負けた原因、ボスの配置と予告の修正まで。リフレアの制作を画面と実測で振り返ります。
公開 2026年9月20日
この記事の要点4 points
- 敵弾を吸収して返す仕組みを中心に、90秒で終わる縦シューティングを作った。
- 自動操縦は最初、標準の敵配置で23.93秒で敗北。 回避の判断を直し、ブラウザでボス撃破まで確かめた。
- テストが通っても、ボスが表示に隠れる問題や不要な攻撃予告は残っていた。 画面とルールを別々に検査した。
- ムレウチとは仕様も制作順も違う。 今回の成果物の差だけで、AI全体の優劣は決められない。
目次7章
検証した環境最終確認 2026年9月20日
- Windows / Unity 6.6(6000.6.0f1)
- Codex(この制作のモデル詳細・思考レベルは記録未取得)
- WebGL / Chrome / PC幅・タッチエミュレーション
書いてあるのは、この環境で実際に試した結果です。ツールの仕様や料金は変わるので、重要な判断の前には公式の情報も確認してください。
Claude Codeに4本のゲームを作ってもらったあと、5本目をCodexに頼みました。できたのが、敵弾を吸収して撃ち返す縦シューティング、リフレアです。
できたものを見て、私は「すごい、Claude Codeと別次元。なぜ」と聞きました。ただ、ここでAIの勝ち負けだけを言っても、次の制作に使えません。吸収反撃のルール、画面の作り方、途中で詰まった検証を記録します。公開後に見直して直した箇所もあります。


最初に渡したのは「同じジャンルで、別ゲームを」という依頼
依頼の中心は、この一文でした。
別ゲームでいいからCodexが考えるシューティングゲームを作って欲しい
参考としてムレウチのページを渡し、成果物を比べたいと伝えました。吸収やボスを作るようには指定していません。そこはCodexが考えています。
一方、開発環境、テストの回し方、公開用スクリプト、制作ログを残す約束は、先にClaude Codeと整えていたものです。「白紙からCodexだけで全部用意した」わけではありません。
引き継いだもの
今回Codexが作ったもの
同じ仕様書で作ったブロック崩しの比較とは条件が違います。今回は、題材を任せたときに何を作るかを見る試みです。後から作る側は、それまでの失敗と道具も利用できます。
敵弾を「避けるもの」と「取りに行くもの」にした
リフレアの通常射撃は自動です。プレイヤーが考えるのは移動と、吸収を使うタイミング。敵弾が来たら避けるだけでなく、近づいて取り込む選択があります。
STEP 01
吸収を押す
Spaceか画面下のABSORB
STEP 02
0.65秒だけ取る
リングに触れた敵弾を吸収
STEP 03
貫通弾で返す
吸収終了時に最大12発
STEP 04
再使用を待つ
発動から4秒後に使える
ここには小さな損得があります。早く押すと、弾が届く前に吸収が終わる。待ちすぎると被弾する。使った直後には次の弾を吸収できません。敵本体への接触は防げないので、吸収中ならどこへでも突っ込める、というルールにもしていません。
実装の数値は次のとおりです。記事を読んだ人が、遊びのどの部分を調整したのか追えるように残します。
| 項目 | 実装した値 | 遊びへの影響 |
|---|---|---|
| 吸収の有効時間 | 0.65秒 | 押すタイミングを選ぶ |
| 再使用 | 発動から4秒 | 連打で守り続けることはできない |
| 反撃 | 吸収数+2発、上限12発 | 多く取ると返す弾が増える |
| 反撃1発のダメージ | 4(通常弾は1) | ボスへの攻撃にも使える |
| ライフと被弾後の無敵 | 3、1.2秒 | 一度の重なりで全部失わない |
| ボス | 60秒に出現、90秒で時間切れ | 後半は倒し切る必要がある |
反撃には、同じ敵へ当たり続けて毎フレーム4ダメージを入れないための管理もあります。貫通弾ごとに「すでに当たった敵の枠」を記録し、次の敵へ進ませる作りです。2体を貫通して倒せることをテストしています。今回は敵の配列が64枠なので、ヒット済みの印は64ビットで持たせています。
素材を増やす前に、輪郭と奥行きを作った
見た目は、画像素材を集めて組み合わせたものではありません。機体も雲もコードでテクスチャを生成しています。ただし、四角や丸をそのまま並べているわけでもありません。
自機には細い胴体、左右の翼、尾の部分があります。ピクセルを塗る際に上側を明るくし、輪郭にも明るい縁を付けています。その上に白い操縦席と青緑のエンジン光を重ねています。
輪郭
何なのかを伝える
機体の翼・尾・敵の違う形
光
反応を伝える
エンジン・弾・吸収・撃破
速度差
奥行きを伝える
遅い雲と速い施設
背景の雲はゆっくり、施設の影は速く流れます。背景そのものに明るさの差があり、その前を自機が進む。敵を倒したときは破片が広がり、被弾時には自機と画面が反応します。効果音もコードで生成しています。
「素材なし」は見た目を省く条件にはしませんでした。輪郭、陰影、光、背景の速度差を別々に用意したことが、今回の画面の具体的な構成です。どの要素が私の印象に何割効いたかまでは測っていません。
自動で遊ばせたら、最初は24秒で負けた
ゲームのルールはUnityの描画から分離し、1回の更新を1/60秒に固定しています。自動操縦もプレイヤーと同じ移動・吸収の入力を渡します。無敵にしたり、敵を消したりしてボスまで進めているわけではありません。
ところが、最初の自動操縦は途中で負けました。敵配置を決める乱数の種を3種類に変えても、全部ボス登場前に終了しています。
| 敵配置の種 | 初版の生存時間 | 結果 |
|---|---|---|
| 1 | 47.90秒 | 敗北 |
| 19(標準) | 23.93秒 | 敗北 |
| 987 | 47.27秒 | 敗北 |
少し先の一点だけ見ても、弾を避け切れなかった
- 症状
- 標準配置では23.93秒で敗北。ボスまで検証できない。
- 原因
- 初版の自動操縦は、0.25秒先の危険だけを評価し、移動も左右に限っていた。
- 対処
- 0.15・0.30・0.45・0.60秒先を評価し、上下移動も候補に追加。複数の時点で危険が少ない方向を選ぶようにした。
この変更後、標準配置では87.23秒でボス撃破まで進みました。ここで直したのは自動操縦の判断です。人が遊ぶゲームの難しさを下げて通した記録ではありません。
ただ、自動操縦は内部の座標を正確に読めます。ボスを倒せたからといって、初めて遊ぶ人が簡単にクリアできるとは言えません。使い道は、毎回同じ条件で最後まで進め、途中の破綻や変更による差を見つけることです。
数字が通っても、ボスが隠れていた
ブラウザの65秒時点の画面を確認すると、ボスが上部の情報表示、HUDに隠れていました。ルールのテストでは勝てる。けれど、肝心の敵が全部見えていない。
ボスの位置を下げたら、クリア時間まで変わった
- 症状
- ボス上部がHUDに重なって見えない。
- 原因
- ボスの中心をゲーム内のY座標5に置いていた。描画サイズとHUDの占有範囲を、通し画面で確認できていなかった。
- 対処
- 中心をY=3.2へ下げた。自動テストだけで済ませず、PC幅とスマホ幅で最後まで再検証した。
| 標準配置・同じ自動操縦 | 修正前 | 修正後 |
|---|---|---|
| ボス撃破まで | 87.23秒 | 79.73秒 |
| 残りライフ | 1 | 2 |
| スコア | 22,525点 | 23,550点 |
| 吸収した敵弾 | 37発 | 38発 |
位置を下げると、自機の弾も敵の弾も到達するまでの時間が変わります。見た目を直すつもりでも、戦闘の条件が変わっていました。このため、位置変更後にもう一度通しで遊ばせています。画面の修正でも、結果は測り直す必要がありました。
公開後に、予告の嘘と状態の読みにくさを直した
最初の公開ページには遊び方と数字を載せましたが、制作過程の説明が足りませんでした。私は「薄くね? 内容」と伝え、記事を書く前に改善点も見直すよう依頼しました。
この見直しで見つかったのが、ボスの照準線です。狙撃弾は2回に1回なのに、予告は毎回出ていました。実際には来ない攻撃を避けさせる表示です。
The first volley has only fan bullets Expected: 0 But was: 0.650000036f
修正は、予告を出す条件に「次の攻撃に狙撃を含む」を足すこと。テストも、最初の扇弾のみの回には予告が出ず、次の狙撃回には予告が出て3本の弾が発射される、というところまで確認します。
| v1.1で変えた箇所 | 変更後 |
|---|---|
| 照準線 | 狙撃する回だけ予告する |
| ボス耐久 | HPの数字に加えてゲージを表示。後半は色も変わる |
| 吸収ボタン | 吸収中と充電中で色を変え、残り時間をゲージで示す |
敵の数や吸収の性能は、この改善では変えていません。必要な情報を信頼できる表示にする修正です。


あわせて、最後の被弾とボスへの攻撃が同じ更新で重なる条件も検査しました。これは修正前から正しく敗北になっていました。「バグを直した件数」に混ぜず、今後その挙動を守るテストとして残しています。
どこまで確かめたか、何はまだ分からないか
初版の公開環境では、次の値を記録しました。ロード時間は3回測り、中央値を使っています。ダウンロード完了から起動までの時間と、ページを開いてからの総時間は分けました。
| 初版v1の実測(2026-09-19) | 結果 |
|---|---|
| Buildの4ファイル合計 | 6,988,252バイト |
| WebGLビルド時間 | 163.715秒 |
| 受信完了から起動までの中央値 | 439.6ms |
| ページ遷移から起動までの中央値 | 1,269.8ms |
| 10秒間のfps・3回の中央値 | 60.07 |
測定環境はWindowsのChrome、画面960×720、描画領域383×682、DPR 1です。約60fpsはこの環境の値で、低性能なスマホでの余裕を示す数字ではありません。最新ビルドの容量と検証記録はゲーム紹介ページにも掲載しています。
v1.1の自動テストはEditMode 22件、PlayMode 2件が合格しました。予告の検査を追加した直後はEditModeが21/22件で、修正して22/22件になった、という順序です。既存のテストが全部通っていたことだけでは、この問題は見つかりませんでした。
スマホ幅の確認はChromeのタッチエミュレーションです。実機での指の隠れ方、発熱、長く遊んだときの疲れは未評価。難易度も、初見の人を複数集めたテストはしていません。自動操縦のクリア記録と、人が感じる遊びやすさは分けて扱います。
私は今回の出来を見て驚きました。でも、次に引き継ぐなら「Codexの方がすごい」という一行より、何を選ばせるゲームにするか、何を画面で伝えるか、最後までどう確かめるかを残したい。リフレアでは、吸収する瞬間、遠景と機体の描き分け、ボス撃破までの通し検証が、その具体例になりました。
FAQ
よくある質問
Codexには何を指示しましたか?
Claude Code作のムレウチを参考に、Codex自身が考える別のシューティングを作ってほしいと依頼しました。既存の制作手順と合格条件も引き継いでいます。吸収反撃やボスの具体的なルールはCodexが設計しました。
画像や音の素材はどう用意しましたか?
機体や雲のテクスチャをコードで生成し、光・破片・背景の速度差を組み合わせました。効果音も波形を計算して生成しています。外部の画像素材や画像生成APIは使っていません。
自動テストが通ればゲームは完成ですか?
今回の初版はテストが通っても、ブラウザではボスがHUDに隠れていました。さらに公開後の見直しで、狙撃しない回にも予告が出る問題を確認しました。ルールのテストと画面の検査は両方必要でした。
スマホでも確認しましたか?
Chromeのスマホ幅とタッチエミュレーションで、移動・吸収・一時停止・再挑戦を確認しました。スマホ実機での操作感、発熱、性能はまだ評価していません。
この記事は役に立ちましたか?
NEXT
あわせて読む
Claude Code vs Codex:Unityでブロック崩しを作らせて比較
同じ仕様書1枚を Claude Code(Opus 5)と Codex(GPT-5.6 Sol)に渡し、Unity 6.6 でブロック崩しを作らせて比べました。かかった時間、テストの数、詰まった場所、消えた利用枠まで、実測値をそのまま載せています。
動くものの挙動をテストする(時間を引数で進める設計)
敵や弾のように毎フレーム動くものは、遊んでみないと分からない——と思われがちです。時間を引数で進める形にして、エンジンを参照しない場所に置くと、10分ぶん(36,000フレーム)を1秒未満で回せます。4本目で実際に書いたテストと、踏んだ落とし穴を残します。
効果音と画像を素材ファイルなしで作る(Unityでコードから生成)
AI にゲームを作らせると、コードは書けても素材が出てきません。画像も音もファイルを1つも置かず、四角・丸・三角と、計算した波形だけで1本作りました。実装と、増えたビルドサイズ(+111KB)と、この方法でできないことを残します。