FPSの敵AIを作りたい。
でも、「どうやって実装すればいいのか分からない」そんな風に感じていませんか。
実は、FPSの敵AIは、状態遷移と行動パターンを組み合わせることで実現できます。
Unityを使えば、初心者でも敵AIシステムを作ることができるでしょう。
この記事では、敵がどう判断して動くのか、FPS向けAI思考ロジックを、コピペで動くサンプルコードとともに詳しく解説します。
✨ この記事でわかること
- FPS敵AIの基本的な仕組み(所要30分)
- 状態遷移を使った行動パターンの実装(所要2時間)
- パトロール・追跡・攻撃の実装方法(所要2時間)
- FPS敵AIでよくあるエラー5選と解決方法
- 実用的な敵AIシステム完成までの4ステップ(合計6時間)

最初は単純なパトロールから始めて、徐々に追跡や攻撃を追加するのがコツです。状態遷移を理解することが重要です。
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる
あなたのオリジナルゲーム、今年こそ完成させませんか?
RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。
実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。
FPS敵AIとは?基礎知識から理解する

FPS敵AIとは、敵キャラがプレイヤーを認識し、適切な行動を選択するシステムのことです。
適切なAIにより、戦闘の楽しさが大きく変わります。
FPS敵AIには、状態遷移と行動パターンが重要になります。
状態遷移により、敵の行動を切り替えます。
行動パターンにより、具体的な行動を実装します。
FPS敵AIに必要な要素
✅ FPS敵AIに必要な要素
- 状態遷移:敵の状態を管理する処理(所要時間:1時間)
- パトロール:決められたルートを移動する処理(所要時間:1時間)
- 追跡:プレイヤーを追いかける処理(所要時間:2時間)
- 攻撃:プレイヤーを攻撃する処理(所要時間:2時間)
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる
状態遷移を使った行動パターンの実装

状態遷移を使った行動パターンを実装する方法を解説します。
ここでは、コピペで動くサンプルコードを紹介します。
実装手順:基本的な敵AIシステムを作る
ステップ1:状態の定義(所要30分)
まず、敵の状態を定義します。
|
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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
using UnityEngine; public enum EnemyState { Patrol, // パトロール Chase, // 追跡 Attack // 攻撃 } public class EnemyAI : MonoBehaviour { [SerializeField] private float detectionRange = 10f; [SerializeField] private float attackRange = 2f; [SerializeField] private float moveSpeed = 3f; private EnemyState currentState = EnemyState.Patrol; private Transform player; void Start() { player = GameObject.FindGameObjectWithTag("Player").transform; } void Update() { switch (currentState) { case EnemyState.Patrol: Patrol(); break; case EnemyState.Chase: Chase(); break; case EnemyState.Attack: Attack(); break; } } void Patrol() { // パトロール処理 float distanceToPlayer = Vector3.Distance(transform.position, player.position); if (distanceToPlayer <= detectionRange) { currentState = EnemyState.Chase; } } void Chase() { // 追跡処理 transform.LookAt(player); transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime); float distanceToPlayer = Vector3.Distance(transform.position, player.position); if (distanceToPlayer <= attackRange) { currentState = EnemyState.Attack; } else if (distanceToPlayer > detectionRange * 2f) { currentState = EnemyState.Patrol; } } void Attack() { // 攻撃処理 float distanceToPlayer = Vector3.Distance(transform.position, player.position); if (distanceToPlayer > attackRange) { currentState = EnemyState.Chase; } } } |
配置場所:敵オブジェクトにアタッチ
確認方法:再生ボタンを押して、敵がプレイヤーを認識して行動すればOK
⚠️ よくあるエラー
- 敵が動かない → playerの参照が正しいか確認
- 状態が切り替わらない → detectionRangeやattackRangeの値を確認
- 移動速度が速すぎる/遅すぎる → moveSpeedの値を調整
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる
パトロール・追跡・攻撃の実装方法

パトロール・追跡・攻撃の実装方法を詳しく解説します。
各行動パターンの実装ポイントです。
パトロールの実装
パトロールでは、決められたルートを移動します。
Waypoint(経由点)を設定し、順番に移動するのが一般的です。
Waypoint間の距離をチェックして、到達したら次のWaypointに移動します。
追跡の実装
追跡では、プレイヤーの位置を取得して、その方向に移動します。
transform.LookAt()でプレイヤーの方向を向き、transform.Translate()で移動します。
距離が離れすぎた場合は、パトロール状態に戻すことで、自然な行動を実現できます。
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる
FPS敵AIでよくある失敗5選と解決方法

FPS敵AIを実装する際、初心者が陥りやすい失敗があります。
ここでは、5つのよくある失敗と解決方法を紹介します。
失敗1:状態が切り替わらない
❌ よくある失敗
- detectionRangeやattackRangeの値が適切でない
- 距離計算が正しく動作していない
- 状態遷移の条件が厳しすぎる
✅ 正しいアプローチ
- detectionRangeやattackRangeの値を適切に設定する
- 距離計算をデバッグログで確認する
- 状態遷移の条件を見直す
失敗2:敵が動かない
解決方法:
- playerの参照が正しいか確認する
- moveSpeedの値が0でないか確認する
- Update関数が正しく呼び出されているか確認する
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる
実用的な敵AIシステム完成までの4ステップ

- STEP1状態遷移の実装(所要1時間)
敵の状態を管理するシステムを実装する。
学べること:状態遷移、enumの使い方
成果物:状態遷移ができるシステム
- STEP2パトロールの実装(所要1時間)
決められたルートを移動する処理を実装する。
学べること:Waypoint、移動処理
成果物:パトロールできる敵
- STEP3追跡の実装(所要2時間)
プレイヤーを追いかける処理を実装する。
学べること:追跡処理、距離計算
成果物:プレイヤーを追跡できる敵
- STEP4攻撃の実装(所要2時間)
プレイヤーを攻撃する処理を実装する。
学べること:攻撃処理、ダメージ処理
成果物:実用的な敵AIシステム
合計6時間で、実用的な敵AIシステムが完成します。
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる
あなたのオリジナルゲーム、今年こそ完成させませんか?
RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。
実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。
まとめ

FPSの敵AIは、状態遷移と行動パターンを組み合わせることで実現できます。
Unityを使えば、初心者でも敵AIシステムを作ることができるでしょう。
✅ 記事の要点まとめ
- 敵AIの仕組み:状態遷移と行動パターン
- 状態遷移:敵の状態を管理する処理
- 行動パターン:パトロール・追跡・攻撃
- 実装方法:enumとswitch文を使った実装
- よくある失敗5選:状態が切り替わらない、動かないなど
- 実用的なシステム:4ステップで完成(合計6時間)
今日から始める3ステップ:
- STEP1:状態遷移の実装(所要1時間)
- STEP2:パトロールの実装(所要1時間)
- STEP3:追跡の実装(所要2時間)
あなたのペースで、少しずつ進めていけば大丈夫です。
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる



コメント