私はゲームのプログラムが書けません。AIに日本語で指示して、Unity 6 で3Dアクションゲームを作っています。
プレイしながら見つけた「ここを直したい」は、もともとExcelで管理していました。それをプロジェクトの中のMarkdownファイル(Docs/backlog.md)に移し、人間とAIで一緒にメンテナンスする形に変えました。この記事では、そのルールと使い方を紹介します。
なぜExcelからMarkdownにしたのか
AIとリアルタイムで共有しながら管理するなら、Markdownの方が向いていました。Excelだと、AIとのやり取りのたびに時間がかかります。Markdownならプロジェクト内のファイルをAIがそのまま読み書きでき、人間側はMarkdownエディター(私はObsidian)で見たり直したりすれば十分です。
移行したのは2026年10月下旬です(backlog.md は 2026-10-25 作成)。
ファイルの構成
| ファイル | 役割 |
|---|---|
Docs/backlog.md |
未完了の項目(TODO / DOING / HOLD)と、演出の適用状況表 |
Docs/backlog-done.md |
DONE になった項目の移し先(番号はそのまま) |
CLAUDE.md(AIが最初に読む指示ファイル) |
「修正点は backlog.md で管理している」と書いておく |
AIが最初に読む指示ファイルには、これだけ書いています。
プレイ中に見つけた修正点は `Docs/backlog.md` で管理している(人間とAIの共有)。
- 新しい指摘は末尾に連番で追記する(番号は `Docs/backlog-done.md` も含めた最大値の次)。
- `DONE` になった行は `Docs/backlog-done.md` へ移す。それ以外は削除しない。
- 運用ルールの詳細は `Docs/backlog.md` 冒頭を参照。
運用ルール
backlog.md の先頭に置いているルールです。
## 運用ルール
- 1行 = 1項目。`#` は連番で欠番にしても再利用しない。新規は末尾に追記して次の番号を振る。
- 状態: `TODO`(未着手) / `DOING`(作業中) / `DONE`(完了) / `HOLD`(保留・判断待ち)
- 優先度: `高` / `中` / `低`(空欄 = 通常)
- 完了時は状態を `DONE` にし、必要なら「メモ」に対応内容を一言残す。
- `DONE` になった行は `Docs/backlog-done.md` の末尾へ移す(番号はそのまま)。
それ以外の項目は消さない。不要になったら状態を `HOLD` にして理由をメモへ。
- 新しい番号は、両方のファイルで一番大きい番号の次にする。
- AIへの指示例: 「backlog の #17 をやって」「TODO を優先度順に並べて」「#32 として〜を追加して」
ポイントは3つです。
- 番号を再利用しない。番号で指示するので、同じ番号が別の項目を指すと事故になります
- 消さずに HOLD にする。やめた理由がメモに残ります
-
DONE は別ファイルへ。
backlog.mdには未完了の項目だけが残り、短く保たれます
実際の表(一部・ぼかしています)
| # | Lv1 | Lv2 | 内容 | 優先度 | 状態 | メモ |
| -- | -------- | -------- | -------------------------------------- | --- | ----- | ---- |
| 17 | アクション | 共通 | 待機・歩き・ダッシュ移動の共通化。頭を振ってしまう動きの見直し | 高 | DOING | 2026-10-25 候補を比較シーンで比べ、正面の歩き・走りを差し替え。手触り未確認 |
| 31 | アクション | Attacker | ダッシュ攻撃が滑り過ぎ | 高 | TODO | |
| 43 | アクション | ヒーラー | 空中通常攻撃にSEが無い | | HOLD | 2026-10-25 空中攻撃は全ロール共通のジャンプ攻撃になったため対象外 |
メモ欄はAIが書いています。日付、何をしたか、そして 「Play未確認」「手触り未確認」 が残ります。コードは直ったけれど、実際に遊んで確かめたかは別、という区別がひと目でわかります。
2026-10-25 ヒーラー地上通常3段に斬撃FX。位置/向き/大きさはタンク斬撃の値を流用した仮値。Play未確認
2026-10-24 着地の衝撃音を追加。音量は仮0.6。Play での聞こえ方は未確認
AIへの指示は番号で
backlog の #17 をやって
TODO を優先度順に並べて
#32 として〇〇を追加して
項目の中身を毎回説明しなくても、番号だけで通じます。
演出の適用状況表と GO 列
アクションごとに「アニメ・エフェクト・効果音が入っているか」をAIにコードとアセットの参照から調べさせ、表にしています。
## アクション演出の適用状況(2026-10-25 更新)
コード・アセット参照からの確認。○=あり / ×=なし / △=一部・要確認。実機での再生確認はしていない。
GO 列: ユーザーが「これでGO」と判断した行に `GO` を付ける。
× や △ が残っていても GO の行は今のままにし、手を入れない(未実装の一覧からも外す)。
| ロール | アクション | アニメ | FX | SE | GO | 備考 |
| -------- | ----------------- | --- | -- | -- | -- | ---- |
| Attacker | 通常攻撃(弓) | ○ | ○ | ○ | GO | 命中FX、刺さりSE |
| Attacker | 回避攻撃 | ○ | △ | ○ | GO | 命中FXのみ。飛翔FX無し(#38) |
| Attacker | ダッシュ攻撃 | ○ | △ | ○ | | 滑り過ぎ(#31) |
| タンク | スキルA(構え) | ○ | △ | × | | 構えのSE無し(#40) |
| 共通 | 回避 | ○ | × | × | | SE/FX無し(#45) |
GO 列は私だけが付けます。 GO の行は、× や △ が残っていてもAIは触りません。AIは「足りないもの」を全部埋めようとしがちですが、「これで十分」は人間が決める、という線引きです。
未実装の一覧は表から自動で作る
表の × と △ から、AIが「未実装の一覧」を作ります(GO の行は除く)。
### 未実装の一覧(上の表の × と △ から)
エフェクト
- ダッシュ攻撃の飛翔FX(#38)
- 構えスキルの反撃FX(#40)
- ジャンプ・着地・回避・ロール切り替えのFX(#45)
効果音
- 構えスキルの構えSE・反撃SE(#40)
- ジャンプの踏み切り・回避・ロール切り替えのSE(#45)
次に何をやるかは、この一覧から番号で選びます。
まとめ
- 改善メモはプロジェクト内のMarkdownに置き、AIと一緒に書き換える
- 番号は再利用しない。消さずに HOLD、完了は別ファイルへ
- AIのメモには日付と「Play未確認」を残す
- 「これでGO」は人間が付け、AIはその行に手を入れない
Excelだと時間がかかっていたやり取りが、MDならAIとリアルタイムで共有しながら進められます。AIはファイルを直接読み書きし、人間はObsidianなどのMarkdownエディターで確認する、という分担がしっくりきています。
アセットクレジット
Unity Asset Store の複数の有料アセットを使用しています。
リンク
- 開発中の3Dゲーム「勇者パーティの苦労人」(itch.io): https://subaru33jp.itch.io/the-hero-partys-babysitter
- 前作の2Dゲーム「Princess Vanguard」(ブラウザで遊べます)
- itch.io: https://subaru33jp.itch.io/princess-vanguard
- ふりーむ(フリーゲーム夢現): https://freegame-mugen.jp/roleplaying/game_15623.html
- デモ動画: https://youtu.be/J8aooF3N8AA
- X(@PuddingAthlete)