敵キャラを作りたい。でも、AIや行動パターンが分からない。
多くの学生が最初に感じるのが、この疑問です。
実は、敵AIは、基本的なパターンを組み合わせることで作れます。
この記事では、敵キャラの作り方について、AI・行動パターン・当たり判定・リスポーンの仕組みを解説します。
✨ この記事でわかること
- 敵AIの基本パターン
- 行動パターンの実装方法
- 当たり判定の設定
- リスポーンの仕組み

敵AIは、基本的なパターンを組み合わせることで作れます。まずは、シンプルなパトロールから始めましょう。
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる
あなたのオリジナルゲーム、今年こそ完成させませんか?
RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。
実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。
敵AIの基本パターン

敵AIの基本パターンは、次の通りです。
- パトロール:左右に往復する
- 待機:一定時間停止してから行動
- 追尾:プレイヤーを追いかける
- 攻撃:プレイヤーに近づくと攻撃
これらを組み合わせることで、様々な敵AIが作れます。
敵AIは「ステート(状態)」を切り替えて動く
敵AIをプログラミングする際、これらの基本パターンを同時に動かすわけではありません。
敵は「今、何をすべきか」を判断し、『パトロール』状態 → 『追尾』状態 → 『攻撃』状態 のように、実行する「ステート(状態)」を切り替えることで動きます。
これが、ゲームAIの設計で最も重要な「ステートマシン(状態機械)」の基本的な考え方です。
複雑なAIも、このステートの組み合わせで作られています。

最初は、シンプルなパトロールから始めましょう。
行動パターンの実装方法

行動パターンの実装例として、最もシンプルな「パトロール(左右往復)」のコードを紹介します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
using UnityEngine; public class EnemyAI : MonoBehaviour { [SerializeField] private float moveSpeed = 2f; [SerializeField] private float patrolDistance = 3f; private Vector3 startPosition; private bool movingRight = true; void Start() { startPosition = transform.position; } void Update() { if (movingRight) { transform.Translate(Vector3.right * moveSpeed * Time.deltaTime); if (transform.position.x >= startPosition.x + patrolDistance) { movingRight = false; } } else { transform.Translate(Vector3.left * moveSpeed * Time.deltaTime); if (transform.position.x <= startPosition.x - patrolDistance) { movingRight = true; } } } } |
このコードで、敵が左右に往復します。
patrolDistanceの値を変えると、往復の範囲が調整できます。
💡 パトロールAIの仕組みと応用
① 移動の原理:
このコードは transform.Translate を使って敵キャラの座標を直接操作しています。
これにより、シンプルなパトロールを実現しています。
もし、重力や他の物理オブジェクトとの衝突を重視するゲーム(プラットフォームアクションなど)では、Rigidbody2D の velocity を操作して動かす方法が一般的になります。
② Time.deltaTimeの役割:
* Time.deltaTime をかけることで、PCの処理速度(フレームレート)に関係なく、敵が常に一定の速度(moveSpeed)で移動できるようになります。
これはゲーム開発で非常に重要なテクニックです。
③ ステートとの連携:
前のセクションで解説した「ステート(状態)」の考え方でいうと、Update() 関数内にあるこの一連のコードが、まさに『パトロール状態』を実行している処理にあたります。
追尾や攻撃などの応用AIを作る際は、この処理全体を切り替える構造にしていきます。

行動パターンは、実際に動かしながら調整するのがコツです。
感覚的に「自然」と感じる動きを見つけましょう。
パトロールの次のステップ:索敵と追尾の基本
シンプルなパトロールができたら、次はプレイヤーを追いかける「追尾AI」に挑戦しましょう。
追尾AIを実装するには、以下の2つのステップの概念を理解することが重要です。
2. 追尾(プレイヤーに移動する):プレイヤーの位置(
transform.position)を取得し、敵自身からプレイヤーの位置に向かって移動するよう計算します。Unityでは Vector3.MoveTowards を使うのが一般的です。
これらの「索敵」と「追尾」の仕組みを組み合わせることで、よりゲームらしい敵の動きが実現できます。
より実践的な敵AIの具体的な実装については、別の記事で詳しく解説しますので、ぜひそちらも参考にしてください。
当たり判定の設定

敵の当たり判定は、Collider2Dを使います。
主な設定は次の通りです。
- Collider2Dを追加
- サイズと位置を調整
- Is Triggerの設定
- レイヤーの設定
これらを正しく設定すれば、敵との衝突判定ができます。
プレイヤーとの衝突時は、OnCollisionEnter2Dを使います。
リスポーンの仕組み

リスポーンは、敵が死んだ後に再出現させる仕組みです。
主な方法は次の通りです。
- ObjectPoolを使う
- 一定時間後に再生成する
- プレイヤーが離れたら再生成する
これらを実装することで、敵のリスポーンができます。
Unityでは、ObjectPoolを使うのが効率的です。
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる
実践的な敵キャラ制作を学ぶには

ここまで、敵キャラの作り方について解説してきました。
ただし、実際のゲーム制作では、さらに多くの要素が必要になります。
アニメーション、エフェクト、UI、サウンドなど、全体を体系的に学ぶには、専門の講座が効率的です。
Unity入門の森では、アクションゲームの作り方を、基礎から完成まで丁寧に解説しています。
コードの意味から、なぜその実装方法を選ぶのかまで、しっかり理解できる内容になっています。
アクションゲーム制作に特化した講座なら、効率的にスキルアップできます。
ゲーム制作でスキルを上げたい方は、ぜひチェックしてみてください。
あなたのオリジナルゲーム、今年こそ完成させませんか?
RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。
実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。
まとめ

敵キャラの作り方について解説しました。
要点のまとめ
- 敵AIの基本パターンを組み合わせる
- 行動パターンは、実際に動かしながら調整する
- 当たり判定を正しく設定する
- リスポーンは、ObjectPoolを使うのが効率的
基本を押さえれば、あとは応用していくだけです。
まずは、ここで紹介したコードを実際に動かしてみてください。
動かしながら理解を深めていくのが、上達への近道です。
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる



コメント