趣味で終わらせたくない方へ。現場レベルの「ゲーム制作講座PDF」を無料プレゼント中!▶

射撃系敵AIの作り方|狙い・弾発射・距離判断のロジック

アクションゲームの作り方

射撃系の敵AIを作りたい。でも、狙いや弾発射の実装が分からない。

多くの学生が最初に感じるのが、この疑問です。

実は、射撃系の敵AIは、いくつかの要素で構成されています。

この記事では、射撃系敵AIの作り方として、狙い・弾発射・距離判断のロジックを解説します。

この記事でわかること

  • 狙いの実装方法
  • 弾発射の実装方法
  • 距離判断のロジック
  • Raycastと弾管理の使い方
ゲーム開発講師
ゲーム開発講師

射撃系の敵AIは、いくつかの要素で構成されています。まずは、基本的な構造から理解しましょう。

\あなたにピッタリのアクションゲーム制作講座を見つけよう!/

おすすめ第1位

Unity 2Dアクションゲーム
の作り方講座(ロックマン風)

★★★★★ (スマホ化・広告実装)

ロックマン風の横スクロールACTをスマホ化・広告実装まで対応。ゲームのリリースまでを見据えた実践的なカリキュラムで、作って終わりにならない一本です。

講座を購読する \リリースまで一気に学ぼう/

3D入門に最適

ゼルダ風3Dアクションゲーム
の作り方講座

★★★★★ (スマホ化対応)

ゼルダ風の3Dアクションをスマホ対応で作れる入門講座。全16回で初心者でも3Dゲーム開発の基礎からしっかり習得できます。

講座を購読する \初心者でも3Dアクションが作れる!/

3プラットフォーム対応

Unity FPSゲームの
作り方講座

★★★★★ (スマホ・VR対応)

FPS・VR・スマホの3プラットフォームに同時対応。1本作るだけで3つのゲームが完成する圧倒的なコスパが魅力の講座です。

講座を購読する \FPS・VR・スマホを同時に制覇!/
ゲームを「遊ぶ側」から「作る側」へ

あなたのオリジナルゲーム、今年こそ完成させませんか?

RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。

Unity入門の森|永久会員チケット

永久会員チケット|Unity入門の森

全講座ラインナップを見てみる

実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。

狙いの実装方法

狙い 実装方法

射撃系の敵AIにおける「狙い」とは、敵がプレイヤーの方向を正しく認識し、その方向へ向きを合わせる処理です。

弾発射やRaycastは、この「狙い」が正しく実装されていないと機能しません。

そのため、射撃AIでは最初に必ず作る重要なロジックになります。

狙いの実装は、次の3つの要素で構成されます。

  • プレイヤーの位置を取得
  • プレイヤーへの方向を計算
  • 敵の向きをその方向に合わせる

ここでは、それぞれの役割と意味を順番に解説します。

① プレイヤーの位置を取得する

まず、敵AIが「どこを狙うのか」を知る必要があります。

そのために、プレイヤーの座標(位置情報)を取得します。

この処理によって、敵から見た“目標地点”が明確になります。

狙う対象が決まらなければ、向きも弾の方向も決められないため、このステップはすべての射撃処理の起点になります。

② プレイヤーへの方向を計算する

次に、敵からプレイヤーへ向かう「方向」を計算します。

これは、「敵の位置 → プレイヤーの位置」への方向ベクトルを求める処理です。

normalized を使うことで、距離の長さを除いた「方向だけ」の情報を取得できます。

この方向ベクトルは、

  • 敵の向き調整
  • 弾の発射方向
  • Raycastの向き

など、複数の処理で使い回される重要なデータになります。

③ 敵の向きをプレイヤー方向に合わせる

最後に、計算した方向を使って敵の向きを調整します。

2Dゲームの場合、左右反転で対応するケースが一般的です。

この処理により、

  • 見た目上、敵がプレイヤーの方を向く
  • 弾やRaycastが正しい方向へ飛ぶ

という状態が作られます。

なぜ「狙い」の実装が重要なのか

狙いの処理は、次のロジックすべての土台になります。

  • 弾をどの方向へ発射するか
  • 視界判定(Raycast)をどちらへ飛ばすか
  • 攻撃を開始する条件判定

狙いがズレていると、弾が違う方向に飛ぶ、壁越しに攻撃するといった不具合が発生します。

そのため、射撃系敵AIでは「まず狙える状態を作る」ことが最優先になります。

この3つを正しく組み合わせることで、射撃・Raycast・距離判断がスムーズにつながる敵AIになります。

次のステップでは、この「狙い」を使って弾を発射していきます。

弾発射の実装方法

弾発射 実装方法

弾発射の実装では、「いつ・どこから・どの方向へ弾を出すか」を制御します。

ここでは、狙いのロジックで計算した方向情報をそのまま使って弾を発射していきます。

弾発射の基本的な流れは、次の手順です。

弾発射の実装手順
  • STEP1
    弾のオブジェクトを作成

    弾用のGameObjectを作成し、SpriteとRigidbody2Dを設定します。
    Rigidbody2Dには重力を使わず、速度で直進させます。
  • STEP2
    発射位置を設定

    敵の位置そのままではなく、銃口や発射ポイント用のTransformを用意すると見た目が自然になります。
  • STEP3
    発射方向を設定

    狙いの処理で求めた「敵 → プレイヤー」の方向ベクトルを使って弾を飛ばします。
    これにより、敵の向きと弾の進行方向が一致します。
  • STEP4
    クールタイムを設定

    弾を撃つたびに待ち時間を設けることで、連射を防ぎ、ゲームバランスを調整します。

この流れを押さえれば、射撃系の敵AIに必要な基本的な弾発射処理が完成します。

ゲーム開発講師
ゲーム開発講師

弾発射では、狙いで計算した方向をそのまま使うのがポイントです。
まずはシンプルに「向いた方向へ撃つ」形で実装してみましょう。

【ゲームの作り方講座プレゼント中!】

距離判断のロジック

距離判断 ロジック

距離判断のロジックでは、「プレイヤーがどれくらい近いか」によって敵の行動を切り替えます。

射撃系の敵AIでは、距離を無視して常に攻撃すると、不自然で理不尽な挙動になります。

そこで、次の3つの要素を組み合わせて距離判断を行います。

  • プレイヤーとの距離を計算
  • 射程範囲内かどうかを判定
  • 距離に応じて行動を切り替える

まず、敵とプレイヤーの現在の距離を計算します。

その距離が、あらかじめ設定した射程範囲内に入っているかをチェックします。

射程範囲内にいる場合のみ、

  • 狙い処理を行う
  • 弾発射を開始する

といった攻撃行動を実行します。

逆に、射程範囲外であれば待機する、移動するなど別の行動に切り替えることで、敵AIの行動にメリハリが生まれます。

距離判断は、後述するRaycastによる視界判定とも組み合わせることで、より自然な射撃系敵AIに発展させることができます。

Raycastと弾管理の使い方

Raycast 弾管理 使い方

射撃系の敵AIを自然に見せるためには、「狙える状況かどうか」を判断する処理と、弾を無駄に増やさない管理処理が欠かせません。

そこで重要になるのが、Raycastと弾管理です。

Raycastと弾管理は、それぞれ次の役割を持っています。

項目 主な用途 目的・効果
Raycast 視界判定 プレイヤーが見えているときだけ攻撃する
弾管理 弾の生成・削除 処理負荷を抑え、安定した動作を保つ
クールタイム 発射間隔の制御 連射を防ぎ、ゲームバランスを調整する

Raycastによる視界判定

Raycastは、敵から見てプレイヤーが「本当に見えているか」を判断するための処理です。

距離だけで攻撃を開始すると、壁の向こう側にいるプレイヤーにも弾を撃ってしまうことがあります。

そこで、

  • 敵の位置から
  • プレイヤーの方向へ
  • Raycastを飛ばし

途中に壁などの障害物があるかをチェックします。

Raycastがプレイヤーに直接当たった場合のみ、「攻撃してよい状態」と判定することで、
不自然な壁越し攻撃を防げます。

弾管理でパフォーマンスを保つ

射撃AIでは、弾を撃つたびにオブジェクトが生成されます。
この処理を雑に行うと、弾が増えすぎてパフォーマンス低下の原因になります。

そのため、

  • 画面外に出た弾を削除する
  • 一定時間経過した弾を消す
  • 同時に存在できる弾の数を制限する

といった弾管理の仕組みが必要になります。

弾管理を行うことで、長時間プレイしても処理が重くなりにくいゲームになります。

クールタイムとの関係

Raycastと弾管理は、前のセクションで解説したクールタイム設定とも密接に関係しています。

  • Raycastで「撃ってよい状況か」を判断
  • クールタイムで「今撃てるか」を制御
  • 弾管理で「撃った後の処理」を整える

この3つを組み合わせることで、自然で安定した射撃系敵AIが完成します。

初心者がつまずきやすい射撃系敵AIの失敗例と対処法

射撃系敵AI 失敗例 対処法

射撃系の敵AIは、狙い・弾発射・距離判断・Raycastと、複数の処理が組み合わさっています。

そのため、初心者の方は「どこが原因でおかしくなっているのか分からない」と感じやすいポイントでもあります。

ここでは、初心者がつまずきやすい代表的な失敗例と、その対処法を紹介します。

弾がプレイヤーとは違う方向に飛んでしまう

この場合、狙いの方向ベクトルが正しく更新されていない可能性があります。

  • プレイヤーの位置を毎回取得していない
  • 弾発射時に古い方向を使っている

対処法としては、弾を発射する直前に、必ず狙いの方向を再計算するようにします。

壁越しにプレイヤーへ攻撃してしまう

距離判定だけで攻撃を開始していると、壁の向こう側にいるプレイヤーにも弾を撃ってしまいます。

この問題は、Raycastによる視界判定を追加することで防げます。

距離内 + 視界内・・この両方を満たしたときだけ攻撃するようにすると、自然な挙動になります。

敵がずっと弾を撃ち続けてしまう

クールタイムを設定していない、またはクールタイムの管理が正しくできていない可能性があります。

  • 発射ごとに待ち時間をリセットしているか
  • 一定時間経過後に再び撃てるようになっているか

を確認し、発射間隔を制御する処理を見直しましょう。

処理が重くなったり、動作が不安定になる

弾のオブジェクトが削除されずに残り続けると、パフォーマンス低下の原因になります。

  • 画面外に出た弾を削除しているか
  • 一定時間後に弾を消しているか

といった弾管理を行うことで、安定した動作を保つことができます。

これらの失敗は、誰でも一度は通るポイントです。

動作がおかしいと感じたら、まずはこれらの点をチェックしてみてください。

実践的な射撃系敵AI制作を学ぶには

Unity 射撃系敵AI 講座

ここまで、射撃系敵AIの作り方について解説してきました。

射撃系の敵AIは、いくつかの要素で構成されています。

Unity入門の森では、Unityを使ったアクションゲームの作り方を、基礎から完成まで丁寧に解説しています。

コードの意味から、なぜその実装方法を選ぶのかまで、しっかり理解できる内容になっています。

Q: 初心者でも本当に作れるの?
A: はい。Unity入門の森の講座では、プログラミング経験がなくても、手順通りに進めれば完成までたどり着けます。分からない部分は、動画と図解で詳しく説明しています。

アクションゲーム制作に特化した講座なら、効率的にスキルアップできます。

ゲーム制作でスキルを上げたい方は、ぜひチェックしてみてください。

アクションゲームを作りたいなら!Unity入門の森のアクション制作講座で本格ゲーム開発に挑戦しよう

Unity入門の森には、横スクロール・3Dアクション・FPSまで幅広いアクションゲームを作れる講座が揃っています。作りたいジャンルや目標に合わせて選んでみてください。

Unity 2Dアクションゲームの作り方講座(ロックマン風)【全16回!スマホ化・広告実装まで対応した本格横スクロールACTを作れる!】

Unity 2Dアクションゲームの作り方講座(ロックマン風)

  • ロックマン・マリオ・カービィのような横スクロールACTをゼロから開発
  • 7ステージ+ラスボスステージの市販ゲームに近い本格的なゲーム設計
  • スマホ化・AdMob広告実装まで対応してリリースまで見据えた構成
  • 敵AI15体・多彩なマップギミック・武器システムを完全実装
  • 完全オリジナルゲームをアセット不使用で素材提供付きで制作

Unity 2Dアクションゲームの作り方講座(ロックマン風)は、ロックマン・スーパーマリオ・星のカービィのような2D横スクロールアクションゲームを開発できるようになる本格的な講座です。

ステージ選択・ボスの弱点システム・新武器ゲットというロックマン風のゲーム設計はもちろん、スマホ実機ビルド・AdMob広告実装(リワード・インタースティシャル)まで対応。作って終わりではなく、リリースして収益化するところまで学べます。

書籍や他のチュートリアルでは扱われていないリリースレベルの開発スキルを習得したい人に、自信を持っておすすめできる一本です。

スマホ化・広告実装まで対応した本格横スクロールACT
ロックマン風の2Dアクションゲームをリリースまで作り上げよう
→ Unity 2Dアクションゲームの作り方講座を見てみる
広告収益まで視野に入れた実践スキルを今すぐ手に入れよう!

ゼルダ風3Dアクションゲームの作り方講座【全16回!初心者でも3Dアクションがスマホ対応で作れる!】

ゼルダ風3Dアクションゲームの作り方講座

  • ゼルダの伝説・モンハン・原神のような3Dアクションをゼロから開発
  • 初心者でも取り組みやすい丁寧な解説構成
  • スマホ化対応で実機で動かせるゲームが完成
  • 画像・動画・全ソースコード公開の充実したサポート
  • アセットを使った実践的なゲーム開発手法が身につく

ゼルダ風3Dアクションゲームの作り方講座は、ゼルダの伝説・モンハン・原神のような本格的な3Dアクションゲームを作りたい人におすすめの入門講座です。

3Dゲーム開発の基礎からスマホ化まで全16回でしっかり習得できます。画像・動画・全ソースコードを公開した丁寧な解説で、初めて3Dゲームに挑戦する人でも確実に完成まで到達できる構成です。

「3Dゲームはなんだか難しそう」と感じている人が最初の一歩を踏み出すのに最適な講座です。

初心者でも3Dアクションがスマホ対応で完成する
ゼルダ風3Dアクションゲームで3D開発の第一歩を踏み出そう
→ ゼルダ風3Dアクションゲームの作り方講座を見てみる
3D開発の壁を一気に突破!スマホで動くオリジナルゲームを完成させよう!

Unity FPSゲームの作り方講座【全17回!FPS・VR・スマホの3プラットフォームを同時に作れる!】

Unity FPSゲームの作り方講座

  • APEX・バトルフィールド風のFPSゲームをゼロから開発
  • FPS・スマホ・VRの3プラットフォームに同時対応
  • 書籍では学べないVR対応弓矢FPSのオリジナリティ高い開発手法
  • 地上・空中の敵AIや弓矢チャージショットなど本格システムを実装
  • 初心者でも安心の丁寧な解説と完成プロジェクトファイル付き

Unity FPSゲームの作り方講座は、APEX・バトルフィールド・Call of Dutyのような一人称視点のFPSゲームを作るための講座です。

弓矢を使ったオリジナリティの高いFPSをベースに、PC・スマホ・VRの3プラットフォームに同時対応した開発手法を全17回で習得できます。VR空間で弓を構えて矢を射るという高度なアクションの実装まで、書籍では学べないスキルが身につきます。

1本の講座でFPS・スマホ・VRを同時に作れるのはこの講座ならでは。3Dゲーム開発の幅を一気に広げたい中・上級者志望の方にもおすすめです。

FPS・スマホ・VRの3プラットフォームを同時に完成させる
1本作るだけで3つのゲームが完成する圧倒的な開発体験を手に入れよう
→ Unity FPSゲームの作り方講座を見てみる
書籍では学べないVR対応FPSで、一歩先の3Dゲーム開発スキルを今すぐ!

まとめ

射撃系敵AI まとめ

射撃系敵AIの作り方について解説しました。

要点のまとめ

  • 狙いは、プレイヤーの位置を取得し、その方向を向く
  • 弾発射は、クールタイムを設定することで、連射を防ぐ
  • 距離判断は、射程範囲内にいるときだけ、攻撃を開始する
  • Raycastと弾管理を使うことで、より高度な敵AIができる

基本を押さえれば、あとは応用していくだけです。

まずは、シンプルな射撃系敵AIから始めてみてください。

動かしながら理解を深めていくのが、上達への近道です。

 

【ゲームの作り方講座もプレゼント中!】

ゲームを「遊ぶ側」から「作る側」へ

あなたのオリジナルゲーム、今年こそ完成させませんか?

RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。

Unity入門の森|永久会員チケット

永久会員チケット|Unity入門の森

全講座ラインナップを見てみる

実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。

コメント

タイトルとURLをコピーしました