目次
このページの目的
「Cyber Dog Run」は、ネオンの街を犬が走るランゲームです。 ここでは“完成までの距離を短くする”ために、 ①最短ロードマップ、②詰まりポイントの回避、③最小コード例をまとめます。
作って気づいたこと
このゲームはUnityで一から作りました。 作ってみて一番むずかしかったのは、オブジェクト指向の言語=コードの正しさだけではゲームが正しく動かないことです。
Unityでは、バグの原因がスクリプト以外にも普通にあります。 たとえば、Inspectorの設定、Collider/Layer、Rigidbodyの数値、 アニメーターの遷移条件、シーンの登録…。 コードが合っていても、設定が一つ違うだけで「動かない」「当たらない」「飛ばない」になります。
だからこそ、最初は「難しい設計」よりも、動かすための条件を揃えることが最短ルートでした。 ここを知らないと、初心者は一番つらいところで止まります。
最短ロードマップ
- プレイヤーが走る(横移動/自動前進でもOK)
- ジャンプできる(地面判定が安定する)
- 障害物に当たる(当たり判定が出る)
- 背景が流れる(ゲームっぽさが出る)
- タイトル→ゲーム→クリアの流れを通す
- 最後に見た目(演出/アニメ/音/UI)
これを守ると、毎回「完成に近づく作業」だけが残ります。
ChatGPTとの作り方
- 小分けに頼む:「移動だけ」「ジャンプだけ」「地面判定だけ」など1個ずつ。
- 状態を見せる:Inspectorのスクショ、Hierarchy構造、エラー文をそのまま貼る。
- 正しさより前進:60点で動かし、後で直す前提で進める。
- “何が起きてるか”を言語化:「地面に触れてもジャンプできない」「当たり判定がすり抜ける」など。
質問テンプレ(Unityが詰まる時)
Unityでランゲームを作っています。
症状:〇〇(例:ジャンプできない/当たり判定がない)
現状:
- Playerに付いているコンポーネント:〇〇
- Rigidbody2D/Collider2Dの設定:〇〇
- Layer/Tag:〇〇
- スクリプト全文:〇〇
- コンソールのエラー:〇〇
原因候補を3つ出して、確認手順と修正案(具体的な設定値)もください。
Unityでの考え方
- 順番は「動く → 見せる → 調整」:挙動が先、見栄えは後。
- 迷ったら簡単側:“いま作業が減る方”を選ぶ。
- UIは後回し:最後に足した方が速い。
- Unityは「設定もコードの一部」:Inspectorが原因のバグを前提にする。
最重要:設定ミスチェックリスト
Unity初心者が止まりやすいポイントを、僕が実際に詰まった順にまとめます。
A. ジャンプできない / 地面判定が不安定
- PlayerにRigidbody2Dが付いているか(3DならRigidbody)
- 地面にCollider2Dが付いているか(TilemapCollider2DでもOK)
- Rigidbody2DのBody TypeはDynamicか
- Playerと地面のLayerが意図通りか(衝突しない設定になってないか)
- Project Settings → Physics2D の衝突マトリクスで無効になってないか
B. 当たり判定がない / すり抜ける
- 片方にRigidbodyが必要(2DはRigidbody2D)
- ColliderのIs Triggerが意図通りか(TriggerならOnTrigger系)
- 高速移動ならRigidbody2DのCollision DetectionをContinuousにする
C. 参照が入ってなくてNullになる
- Inspectorでスクリプトの変数にオブジェクトをドラッグできているか
- Prefabを修正したのにシーン上の実体が古いままになってないか
D. シーン遷移しない
- Build Settingsにシーンが登録されているか
- シーン名のスペルが一致しているか
アニメーションの考え方
凝った仕組みは後回し。まずは数枚のPNGを同サイズで作って、順番に切り替えるだけで 走ってる感じは出ます。
- サイズ・余白・向きをそろえる(例:512×512、右向き)
- 足の接地点がズレないように意識
- 連番で管理(run_01.png, run_02.png…)
走りだけ付くと背景・演出づくりに早く行けます。ここでも「動く→見せる→調整」です。
また、イラストをうまく固定しながら生成できればAIでそれなりのキャラが作成できます。
イラストにはシードと呼ばれる値が存在するので、そのシードの値を聞いて、それを固定して作成するとずれが少なくなります。ぜひ試してみてください。
シーンのつなぎ方
タイトル → ゲーム → クリア(またはゲームオーバー)の3点がつながれば体験は成立します。 クリア/失敗は別シーンにせず、UIパネルを重ねるだけでも十分です。
- 最初は最短ルートで接続(ボタンで切り替え)
- 止める・戻すは後からでOK(まず一本通す)
つながらない時の確認
- Build Settingsにシーンが入っているか
- シーン名のスペルが一致しているか
最後に
大事なのは、完成までの距離を常に短く保つこと。できたら勝ち。次に進める。
「ちょっと進んだ」→「動いた」→「つながった」——この小さな達成を積み上げていけば、 自然とクオリティも上がっていきます。
そして、Unityはコードだけで完結しないのが難しい。でも逆に言えば、 “設定も含めてゲームを作る力”が付くと、一気に作れるものが増えます。