敵AIがプレイヤーを発見する判定を実装したい。
でも、どう計算すればいいのか分からない。
実は、索敵判定は、視野角と距離を使って判定できるものです。
これらを理解すれば、自然な索敵判定を実装できます。
この記事では、索敵判定に必要な数学として、視野角と距離で判定するAIを見ていきましょう。
- 索敵判定の実装方法が分からない…
- 視野角や距離を使った判定方法が理解できていない。
- 自然な索敵判定を実装したい。
✨ この記事でわかること
- 索敵判定の基本となる視野角
- 距離判定の考え方
- 視野角と距離の組み合わせ
- Unityでの索敵判定の実装手順
- 初心者でも理解できる当たり判定の基礎
Unity入門の森をチェック Unity初心者でも安心。動画解説+完成サンプル付きで実装まで進められます
索敵判定とは何か(ゲーム制作目線)

索敵判定は、敵AIがプレイヤーを発見するかを判定する処理です。
視野角と距離を組み合わせることで、自然な索敵判定を実現できます。
索敵判定の基本要素は、以下のものです。
- 視野角:敵が見ることのできる角度範囲
- 視界距離:敵が見ることのできる最大距離
- 方向ベクトル:敵の向いている方向
Unityでは、Vector3.AngleやVector3.Distanceを使って、簡単に判定できます。
ゲームでの具体的な使い道

索敵判定が、ゲームでどう使われているか確認してみましょう。
敵AIの索敵
敵キャラクターが、プレイヤーを発見する判定に使われます。
視野角と距離を使って、プレイヤーが視界内にいるかを判定します。
警備システム
警備員やカメラなどの警備システムで使われます。
視野角と距離を使って、侵入者を検知します。
レーダーシステム
レーダーやソナーシステムで使われます。
角度と距離を使って、対象を検出します。
- 敵AIの索敵
- 警備システム
- レーダーシステム
- カメラの検知
考え方・仕組みを図解イメージで説明

索敵判定は、「距離の計算 → 視野角の計算 → 判定」という流れで実現できます。
距離の判定
敵とプレイヤーの距離を計算し、視界距離内かどうかを判定します。
距離が視界距離以下なら、距離の条件を満たします。
視野角の判定
敵の向きとプレイヤーへの方向の角度を計算し、視野角内かどうかを判定します。
角度が視野角の半分以下なら、視野角の条件を満たします。
判定の組み合わせ
距離と視野角の両方の条件を満たした場合、プレイヤーを発見したと判定します。
- 索敵判定は、距離と視野角の組み合わせで実現される
- 距離が視界距離以下で、角度が視野角内なら発見
- Vector3.Angleを使って、角度を計算できる
- Vector3.Distanceを使って、距離を計算できる
Unityで実装する際の注意点(代表例)

Unityで索敵判定を実装する場合の注意点を見ていきましょう。
基本的な索敵判定
距離と視野角を使って、プレイヤーを発見する判定を実装します。
|
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 |
public class DetectionCheck : MonoBehaviour { public Transform player; public float detectionRange = 10f; // 視界距離 public float fieldOfView = 60f; // 視野角(度) bool CheckDetection() { // 距離を計算 float distance = Vector3.Distance(transform.position, player.position); if (distance > detectionRange) { return false; } // 方向ベクトルを計算 Vector3 directionToPlayer = (player.position - transform.position).normalized; Vector3 forward = transform.forward; // 角度を計算 float angle = Vector3.Angle(forward, directionToPlayer); // 視野角内かどうかを判定 return angle <= fieldOfView * 0.5f; } void Update() { if (CheckDetection()) { Debug.Log("プレイヤーを発見!"); } } } |

まとめ

この記事では、索敵判定について見てきました。
重要なポイントをおさらいします。
- 索敵判定は、距離と視野角の組み合わせで実現される
- 距離が視界距離以下で、角度が視野角内なら発見
- Vector3.Angleを使って、角度を計算できる
- Vector3.Distanceを使って、距離を計算できる
- 索敵判定により、自然な敵AIの行動を実現できる
索敵判定は、敵AIの行動を決定する重要な技術です。
視野角と距離を組み合わせることで、自然な索敵判定を実装できます。
実際のゲーム実装とセットで学ぶことで、理解が深まるはずです。
Unity入門の森では、索敵判定を含む当たり判定を、実際のゲーム実装とともに体系的に学べます。
ぜひチェックしてみてください。
Unity入門の森をチェック Unity初心者でも安心。動画解説+完成サンプル付きで実装まで進められます




コメント