(57)【要約】【課題】  ＮＰＣの移動をより自然に見せる制御の実現。【解決手段】探索領域２２に設定される複数の経由候補点の中から、隣接する経由候補点を選択して順次結んで暫定ルート２６を設定する。暫定ルート２６に含まれる経由候補点のうち、経由しないこととしてルートを再構成した場合にも敵ＮＰＣ４が移動不可能領域２４を通過しないルートとなる経由候補点の経由を止めてルートを再構成して確定ルート２８を設定する。そして、確定ルート２８に基づいて敵ＮＰＣ４を移動させる。つまり、暫定的に設定された移動ルートの内、移動不可能領域を通過せずに短縮できる部分の経由候補点の経由をやめる移動ルートを用いることで、兵士の戦闘行動として自然に見えるように、敵ＮＰＣ４を経由候補点の配置条件に係わらずに目的地点へ最短コースで移動できる。【選択図】図６
2010068872.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、三次元仮想空間内でＮＰＣを動作制御させるとともに、前記三次元仮想空間を仮想カメラで撮影した画像を生成させるためのプログラムであって、
前記三次元仮想空間に前記ＮＰＣの移動ルートの経由候補点を複数箇所設定する経由候補点設定手段、
前記複数の経由候補点の中から経由候補点を選択して順次結んでいくことで前記ＮＰＣの暫定移動ルートを設定する暫定移動ルート設定手段、
前記暫定移動ルートに含まれる経由候補点のうち、経由しないこととしてルートを再構成した場合にも前記三次元仮想空間に設けられた移動不可能領域を通過しないルートとなる経由候補点の経由を止めてルートを再構成することで確定移動ルートを設定する確定移動ルート設定手段、
前記確定移動ルートに基づいて前記ＮＰＣを移動制御するＮＰＣ移動制御手段、
として前記コンピュータを機能させるためのプログラム。
【請求項２】
前記確定移動ルート設定手段が、前記暫定移動ルートに含まれる経由候補点のうち、経由しないこととしてルートを再構成した場合に、１）前記三次元仮想空間に設けられた移動不可能領域を通過しないルートとなる経由候補点であり、且つ、２）１）の経由候補点を経由しない場合のルートが経由する場合のルートに比べて短くなる場合に、１）の経由候補点の経由を止めてルートを再構成することで前記確定移動ルートを設定するように前記コンピュータを機能させるための請求項１に記載のプログラム。
【請求項３】
前記経由候補点設定手段が、前記三次元仮想空間に網目状に前記経由候補点を設定し、
前記暫定移動ルート設定手段が、隣接する経由候補点を順次結んでいくことで前記暫定移動ルートを設定する、
ように前記コンピュータを機能させるための請求項１又は２に記載のプログラム。
【請求項４】
前記確定移動ルート設定手段が、前記暫定移動ルートに含まれる経由候補点のうち、経由候補点同士を結び、移動不可能領域を通過しない最長の直線を前記暫定移動ルートの順方向又は逆方向に順次検索していくことで前記確定移動ルートを設定するように前記コンピュータを機能させるための請求項１〜３の何れか一項に記載のプログラム。
【請求項５】
前記三次元仮想空間を複数のエリアに分割設定するエリア設定手段として前記コンピュータを機能させ、
前記確定移動ルート設定手段が、前記エリア設定手段により設定されたエリア毎に当該エリア内で前記移動不可能領域を通過しない最長の直線を検索するように前記コンピュータを機能させる、
ための請求項４に記載のプログラム。
【請求項６】
前記三次元仮想空間のオブジェクトの配置構成を変更するイベントを制御するイベント制御手段、
前記イベントの発生を条件にして、前記暫定移動ルート設定手段による暫定移動ルートの設定と、前記確定移動ルート設定手段による確定移動ルートの設定とを、再機能させるルート再設定制御手段、
として前記コンピュータを機能させるための請求項１〜５の何れか一項に記載のプログラム。
【請求項７】
前記暫定移動ルート設定手段による暫定移動ルートの設定と、前記確定移動ルート設定手段による確定移動ルートの設定とを、間欠的に再機能させるルート再設定制御手段として前記コンピュータを機能させるための請求項１〜５の何れか一項に記載のプログラム。
【請求項８】
予め用意された複数の目的地候補の中から１つの目的地候補を目的地として選択する目的地選択手段として前記コンピュータを機能させるとともに、
前記暫定移動ルート設定手段が、前記目的地選択手段によって選択された目的地に向かう前記暫定移動ルートを設定するように前記コンピュータを機能させるための請求項１〜７の何れか一項に記載のプログラム。
【請求項９】
前記暫定移動ルート設定手段が複数のＮＰＣそれぞれについて暫定移動ルートを設定し、
前記確定移動ルート設定手段が複数のＮＰＣそれぞれについて確定移動ルートを設定し、
前記目的地選択手段が、前記複数の目的地候補それぞれの周囲に存在するＮＰＣの数に基づいて、目的地を選択する、
ように前記コンピュータを機能させるための請求項８に記載のプログラム。
【請求項１０】
前記暫定移動ルート設定手段が複数のＮＰＣそれぞれについて暫定移動ルートを設定し、
前記確定移動ルート設定手段が複数のＮＰＣそれぞれについて確定移動ルートを設定し、
前記目的地選択手段が、前記仮想カメラの撮影範囲を分割した分割撮影範囲それぞれに位置するＮＰＣの数、或いは、当該分割撮影範囲内の目的地候補に向けた移動制御中のＮＰＣの数に基づいて、目的地を選択する、
ように前記コンピュータを機能させるための請求項８に記載のプログラム。
【請求項１１】
前記目的地候補それぞれには、ＮＰＣに予め設定されている属性に応じた相性が設定されており、
前記目的地選択手段が、目的地設定対象のＮＰＣの属性に対応する前記目的地候補それぞれの前記相性に基づいて目的地を選択するように前記コンピュータを機能させるための請求項８〜１０の何れか一項に記載のプログラム。
【請求項１２】
請求項１〜１１の何れか一項に記載のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
【請求項１３】
三次元仮想空間内でプレーヤキャラクタとＮＰＣを動作制御して、前記三次元仮想空間を仮想カメラで撮影した画像を生成して所定のゲームを実行するゲーム装置であって、
前記三次元仮想空間に前記ＮＰＣの移動ルートの経由候補点を複数箇所設定する経由候補点設定手段と、
前記複数の経由候補点の中から経由候補点を選択して順次結んでいくことで前記ＮＰＣの暫定移動ルートを設定する暫定移動ルート設定手段と、
前記暫定移動ルートに含まれる経由候補点のうち、経由しないこととしてルートを再構成した場合にも前記三次元仮想空間に設けられた移動不可能領域を通過しないルートとなる経由候補点の経由を止めてルートを再構成することで確定移動ルートを設定する確定移動ルート設定手段と、
前記確定移動ルートに基づいて前記ＮＰＣを移動制御するＮＰＣ移動制御手段と、
を備えたゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータにゲーム空間内でプレーヤキャラクタとＮＰＣ（ノンプレイアブルキャラクタ）を動作制御させるとともに、ゲーム空間を仮想カメラで撮影した画像を生成して所定のゲームを実行させるためのプログラム等に関する。
【背景技術】
【０００２】
ビデオゲームに登場するキャラクタは、基本的にプレーヤが操作する事のできるプレーヤキャラクタの他は自動的に動作制御されるＮＰＣである。特に、プレーヤキャラクタへの攻撃をその主任務とする所謂敵ＮＰＣは、プレーヤキャラクタを索敵して接近しつつ攻撃するように動作制御される。
【０００３】
ＮＰＣの動作制御のうち移動に係る制御では、通常、現在位置からプレーヤキャラクタに接近する次の目標地点までの移動ルートを自動的に選択する処理が行われる場合が多い。そのため移動制御に要する演算負荷は攻撃制御のそれに比べると高く、その演算負荷を軽減するための技術も知られるところである（例えば、特許文献１参照）。また、複数のＮＰＣの移動先が衝突する場合に、それぞれのＮＰＣの単位時間当たりの移動距離を増減することで衝突しないようにする技術も知られている（特許文献２参照）。
【特許文献１】特許第３５２００６９号公報
【特許文献２】特許第３６９４５１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、敵ＮＰＣのゲーム上の設定は、攻撃目標（例えばプレーヤキャラクタ）を探索して、適当な移動ルートを辿りつつ攻撃を仕掛けるといったある程度の知性を備えた存在である。そのため、敵ＮＰＣを自動制御するに当たっては、知性のある敵ＮＰＣらしい自然な行動の実現が重要となる。
【０００５】
特に、プレーヤキャラクタと敵ＮＰＣが銃撃戦を繰り広げる所謂ガンシューティングゲームでは、敵ＮＰＣは訓練された兵士という設定が多く、敵ＮＰＣの移動行動は銃を構えて撃つ攻撃動作に比べて目に付き易く、敵ＮＰＣの移動が不自然であるとゲームのリアリティを著しく損ない易い。敵ＮＰＣに如何に自然な移動行動をさせるかは、その演算処理負荷の低減と同様かそれ以上に重要な課題とも言える。
【０００６】
本発明はこうした事情を鑑みてなされたものであり、その目的とするところは、ＮＰＣの移動制御をするにあたり、その移動行動をより自然に見せることである。例えば、ガンシューティングゲームのようにＮＰＣを兵士に設定するケースにおいては、訓練された本物の兵士の移動動作らしく見せることである。
【課題を解決するための手段】
【０００７】
上記の課題を解決するための第１の発明は、コンピュータに、三次元仮想空間内でＮＰＣを動作制御させるとともに、前記三次元仮想空間を仮想カメラで撮影した画像を生成させるためのプログラムであって、
前記三次元仮想空間に前記ＮＰＣの移動ルートの経由候補点を複数箇所設定する経由候補点設定手段（例えば、図９の処理部２００、移動ルート探索部２１８、図１４のステップＳ７０）、
前記複数の経由候補点の中から経由候補点を選択して順次結んでいくことで前記ＮＰＣの暫定移動ルートを設定する暫定移動ルート設定手段（例えば、図９の処理部２００、移動ルート探索部２１８、図１４のステップＳ９０）、
前記暫定移動ルートに含まれる経由候補点のうち、経由しないこととしてルートを再構成した場合にも前記三次元仮想空間に設けられた移動不可能領域を通過しないルートとなる経由候補点の経由を止めてルートを再構成することで確定移動ルートを設定する確定移動ルート設定手段（例えば、図９の処理部２００、移動ルート探索部２１８、図１４のステップＳ９２〜Ｓ１０６）、
前記確定移動ルートに基づいて前記ＮＰＣを移動制御するＮＰＣ移動制御手段（例えば、図９の処理部２００、ＮＰＣ動作制御部２１６、図１３のステップＳ２４）、として前記コンピュータを機能させるためのプログラムである。
【０００８】
また、別の形態として、三次元仮想空間内でプレーヤキャラクタとＮＰＣを動作制御して、前記三次元仮想空間を仮想カメラで撮影した画像を生成して所定のゲームを実行するゲーム装置であって、
前記三次元仮想空間に前記ＮＰＣの移動ルートの経由候補点を複数箇所設定する経由候補点設定手段（例えば、図１の制御ユニット１１５０、図９の処理部２００、移動ルート探索部２１８、図１４のステップＳ７０）と、
前記複数の経由候補点の中から経由候補点を選択して順次結んでいくことで前記ＮＰＣの暫定移動ルートを設定する暫定移動ルート設定手段（例えば、図１の制御ユニット１１５０、図９の処理部２００、移動ルート探索部２１８、図１４のステップＳ９０）と、
前記暫定移動ルートに含まれる経由候補点のうち、経由しないこととしてルートを再構成した場合にも前記三次元仮想空間に設けられた移動不可能領域を通過しないルートとなる経由候補点の経由を止めてルートを再構成することで確定移動ルートを設定する確定移動ルート設定手段（例えば、図１の制御ユニット１１５０、図９の処理部２００、移動ルート探索部２１８、図１４のステップＳ９２〜Ｓ１０６）と、
前記確定移動ルートに基づいて前記ＮＰＣを移動制御するＮＰＣ移動制御手段（例えば、図１の制御ユニット１１５０、図９の処理部２００、ＮＰＣ動作制御部２１６、図１３のステップＳ２４）と、を備えたゲーム装置として実現しても良い。
【０００９】
第２の発明は、前記確定移動ルート設定手段が、前記暫定移動ルートに含まれる経由候補点のうち、経由しないこととしてルートを再構成した場合に、１）前記三次元仮想空間に設けられた移動不可能領域を通過しないルートとなる経由候補点であり、且つ、２）１）の経由候補点を経由しない場合のルートが経由する場合のルートに比べて短くなる場合に、１）の経由候補点の経由を止めてルートを再構成することで前記確定移動ルートを設定するように前記コンピュータを機能させるための第１の発明のプログラムである。
【００１０】
この第１の発明等によれば、ＮＰＣの移動ルートの経由候補点を複数箇所設定し、その中から経由候補点を選択して順次結んでいくことで暫定移動ルートを設定することができる。そして、この暫定移動ルートに含まれる経由候補点のうち、経由しないこととしてルートを再構成した場合にもＮＰＣが進入できない移動不可能領域を通過しないルートとなる経由候補点の経由を止めてルートを再構成することで確定移動ルートを設定し、確定移動ルートに基づいてＮＰＣを移動させることができる。つまり、暫定的に設定された移動ルートの内、移動不可能領域を通過せずに短縮できる部分の経由候補点を削除して移動距離を短縮させた移動ルートを確定し、設定された経由候補点の分布状態に係わらず、ＮＰＣを目的地点に向けて効率的に移動させることができる。
【００１１】
結果、生成される画面上で見ると、従来の技術レベルに相当する暫定移動ルートまでしか求めない場合では、プレーヤには見えない経由候補点の分布状況に影響されてＮＰＣが不自然な位置で方向転換したり、ともすれば回りくどい移動ルートをカクカクと方向転換しつつ辿っているように見えてしまう。しかし、本発明のように確定移動ルートを更に求めることで、見かけ上、ＮＰＣは短縮できるところは短縮して効率的なルートを移動するように見える。プレーヤにしてみれば、そうしたＮＰＣの動作は、兵士など知性ある戦闘体であれば自然な行動と見える。
【００１２】
なお、第３の発明として、第１又は第２の発明のプログラムであって、暫定移動ルートの設定に際しては、前記経由候補点設定手段が、前記三次元仮想空間に網目状に前記経由候補点を設定し、前記暫定移動ルート設定手段が、隣接する経由候補点を順次結んでいくことで前記暫定移動ルートを設定するように前記コンピュータを機能させるためのプログラムを構成しても良い。
網目状に経由候補点を設定することで、三次元仮想空間内で障害物のオブジェクトなどが移動して移動不可能領域が変化する可能性がある構成であっても、柔軟に移動ルートを設定することができるので好適である。
【００１３】
また、第４の発明として、第１〜第３の何れかの発明のプログラムであって、前記確定移動ルート設定手段が、前記暫定移動ルートに含まれる経由候補点のうち、経由候補点同士を結び、移動不可能領域を通過しない最長の直線を前記暫定移動ルートの順方向又は逆方向に順次検索していくことで前記確定移動ルートを設定するように前記コンピュータを機能させるためのプログラムを構成してもよい。
この場合、戦場において移動可能に見通せる範囲は、無駄に曲がらず一目散に直線的に駆け抜けるように移動するといった本物らしく見える移動行動をＮＰＣにさせることができる。
【００１４】
更に、第５の発明として、第４の発明において、前記三次元仮想空間を複数のエリアに分割設定するエリア設定手段（例えば、図９の処理部２００、移動ルート探索部２１８）として前記コンピュータを機能させ、前記確定移動ルート設定手段が、前記エリア設定手段により設定されたエリア毎に当該エリア内で前記移動不可能領域を通過しない最長の直線を検索するように前記コンピュータを機能させるためのプログラムを構成してもよい。
この場合、確定移動ルートの設定に係わる処理をエリア毎に分割して実行することができるので、１回の制御サイクルにおける確定移動ルートの設定に要する処理負荷を低減できる。
【００１５】
また、暫定移動ルートや確定移動ルートの設定処理は一度きりではなく、適宜行う構成とすることができる。
例えば、第６の発明として、第１〜第５の何れかの発明のプログラムであって、前記三次元仮想空間のオブジェクトの配置構成を変更するイベントを制御するイベント制御手段（例えば、図９の処理部２００、ゲーム演算部２１０、図１３のステップＳ３８）、前記イベントの発生を条件にして、前記暫定移動ルート設定手段による暫定移動ルートの設定と、前記確定移動ルート設定手段による確定移動ルートの設定とを、再機能させるルート再設定制御手段（例えば、図９の処理部２００、ゲーム演算部２１０、移動ルート探索部２１８、図１３のステップＳ４０〜Ｓ４２）、として前記コンピュータを機能させるためのプログラムを構成してもよい。
この場合、イベントの発生に伴って、移動ルート探索の基礎となるステージの構成が変化する状態、所謂マップが変化する状態が起こっても、速やかにＮＰＣの移動ルートを適応させることができる。
【００１６】
また例えば、第７の発明として、第１〜第５の何れかの発明のプログラムであって、前記暫定移動ルート設定手段による暫定移動ルートの設定と、前記確定移動ルート設定手段による確定移動ルートの設定とを、間欠的に再機能させるルート再設定制御手段（例えば、図９の処理部２００、ゲーム演算部２１０、図１３のステップＳ６、Ｓ３４〜Ｓ３６）として前記コンピュータを機能させるためのプログラムを構成してもよい。
この場合、間欠的に移動ルートの再設定を行う事ができるので、移動ルート設定の前提条件がプログラム製作者側の想定外に変化したとしても、ＮＰＣの移動制御が途切れる事のないよう保障できる。
【００１７】
また、第８の発明として、第１〜第７の何れかの発明のプログラムであって、予め用意された複数の目的地候補の中から１つの目的地候補を目的地として選択する目的地選択手段（例えば、図９の処理部２００、移動ルート探索部２１８、図２１のステップＳ８６〜Ｓ８８、図３１のステップＳ７３ｃ）として前記コンピュータを機能させるとともに、前記暫定移動ルート設定手段が、前記目的地選択手段によって選択された目的地に向かう前記暫定移動ルートを設定するように前記コンピュータを機能させるためのプログラムを構成してもよい。
この場合、ＮＰＣの移動が一定のパターンに固定されるのを防ぎ、ＮＰＣの移動行動に多様性を持たせることができる。
【００１８】
そして、更に第９の発明として、第９の発明のプログラムであって、前記暫定移動ルート設定手段が複数のＮＰＣそれぞれについて暫定移動ルートを設定し、前記確定移動ルート設定手段が複数のＮＰＣそれぞれについて確定移動ルートを設定し、前記目的地選択手段が、前記複数の目的地候補それぞれの周囲に存在するＮＰＣの数に基づいて、目的地を選択するように前記コンピュータを機能させるためのプログラムを構成してもよい。
【００１９】
この場合、変化する各ＮＰＣの位置を参照し、目的地候補の周りに存在するＮＰＣの数に基づいて目的地を選択できる。例えば、ＮＰＣの数が基準値を超えない目的地候補を優先的に選択する構成とするならば、ＮＰＣを密集させず分散させて移動させることができる。これは、ＮＰＣが兵士の設定で有る場合、訓練をつんだ兵士が分散して攻撃目標を囲むように接近するように見せる事ができことにもなる。反対に、ＮＰＣの数が基準値を超える目的地候補を優先的に選択する構成とするならば、ＮＰＣを移動行動を介して意図的に集結させることで、密集行動をする性質のある生物（例えば、ある種の昆虫や小動物）のような移動行動をさせることもできる。
【００２０】
更には、第９の発明として、第８の発明のプログラムであって、前記暫定移動ルート設定手段が複数のＮＰＣそれぞれについて暫定移動ルートを設定し、前記確定移動ルート設定手段が複数のＮＰＣそれぞれについて確定移動ルートを設定し、前記目的地選択手段が、前記仮想カメラの撮影範囲を分割した分割撮影範囲（例えば、図２７の分割撮影領域５４ａ，５４ｂ，５４ｃ）それぞれに位置するＮＰＣの数、或いは、当該分割撮影範囲内の目的地候補に向けた移動制御中のＮＰＣの数に基づいて、目的地を選択する、ように前記コンピュータを機能させるためのプログラムを構成してもよい。
【００２１】
この場合、生成される画面内でのＮＰＣの分布の偏りを防ぐことができる。これは、ガン型コントローラで画面に向けて照準操作してシューティングゲームを楽しむ、所謂ガンシューティングゲームにおいては、ＮＰＣが密集して安易にゲームをクリアされないようにするゲームバランスの観点から極めて有効である。
【００２２】
また、第１１の発明として、第８〜第１０の何れかの発明のプログラムであって、前記目的地候補それぞれには、ＮＰＣに予め設定されている属性に応じた相性（例えば、図２５のキャラクタ属性別重み付け係数）が設定されており、前記目的地選択手段が、目的地設定対象のＮＰＣの属性に対応する前記目的地候補それぞれの前記相性に基づいて目的地を選択するように前記コンピュータを機能させるためのプログラムを構成してもよい。
【００２３】
この場合、ＮＰＣはその属性に応じた目的地へ優先的に移動するように移動動作される。例えば、ＮＰＣを兵士とし、近接攻撃向きの装備の兵士や、遠距離攻撃向きの装備の兵士といった具合に様々な属性を与えると、それぞれの戦闘タイプに適した目的地に自動的に移動させることができるので、より一層本物らしいＮＰＣの制御を実現することができる。特に、複数の敵ＮＰＣが集団で登場する場合に効果的である。
【００２４】
第１２の発明は、第１〜第１１の何れか一つのプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体である。ここで言う「情報記憶媒体」とは、例えば磁気ディスクや光学ディスク、ＩＣメモリなどを含む。本発明によれば、第１〜第１２の何れか一つの発明のプログラムをコンピュータに読み取らせて実行させることによって、コンピュータに第１〜第１２の何れか一つの発明と同様の効果を発揮させることができる。
【発明を実施するための最良の形態】
【００２５】
〔第１実施形態〕
次に、本発明を適用した第１実施形態として、アーケード用のガンシューティングゲーム装置であって、一人称視点のガンシューティングゲームをプレイ可能なゲーム装置を例に挙げて説明する。
【００２６】
［ゲーム装置の構成］
図１は、ガンシューティングゲーム装置１１００の構成例を説明するための外観図である。同装置は、例えばバンダイナムコゲームス社製の作品名「タイムクライシス４」等で使用される公知のゲーム装置等で実現され得る。具体的には、ガンシューティングゲーム装置１１００は、銃を模したガン型コントローラ１１３０と、画像表示装置１１２２と、スピーカ１１２４と、硬貨投入口１１４２から投入された硬貨を検知する硬貨検知センサ１１４４と、制御ユニット１１５０とを、装置本体１１０１に備えている。
【００２７】
制御ユニット１１５０は、ゲーム装置の制御基板に相当し、ＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）、ＤＳＰ（Digital Signal Processor）などの各種マイクロプロセッサ、ＡＳＩＣ(Application Specific Integrated Circuit)、ＶＲＡＭやＲＡＭ，フラッシュメモリ１１５２等の各種ＩＣメモリを搭載する。また、通信装置１１５４や、画像装置１１２２のドライバ回路、スピーカ１１２４へ音声信号を出力するためのアンプ回路、ガン型コントローラ１１３０や硬貨検知センサ１１４４との信号入出力回路といった所謂Ｉ／Ｆ回路（インターフェース回路）を搭載する。これら制御ユニット１１５０に搭載されている各要素は、それぞれバス回路を介して電気的に接続され、データの読み書きや信号の送受信が可能に接続されている。
【００２８】
フラッシュメモリ１１５２には、ゲームプレイに係る各種演算処理を実行するために必要なプログラムや各種設定データが記憶されている。制御ユニット１１５０は、硬貨検知センサ１１４４で所定額の硬貨の投入を検知したら、フラッシュメモリ１１５２からプログラムやデータを読み出して、搭載するＩＣメモリにこれらを一時記憶する。そして、読み出したプログラムを実行して、ゲーム画像を生成して画像表示装置１１２２に表示させるとともに、ゲーム音を生成してスピーカ１１２４から放音させる。
【００２９】
プレーヤは、画像表示装置１１２２の画面前方に立ち、画面を狙うようにしてガン型コントローラ１１３０を構える。ゲーム画面内には、標的と、ガン型コントローラ１１３０で狙っている位置を示す照準６が表示されるので、ゲーム画面内の任意の標的に照準６を合わせるようにしてガン型コントローラ１１３０を構え、トリガーを引いて射撃操作してシューティングゲームを楽しむ。
【００３０】
尚、本実施形態では、必要なプログラムや各種設定データをフラッシュメモリ１１５２から読み出す構成としているが、通信装置１１５４でインターネットやＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）などの有線／無線の通信回線１に接続して外部の装置からダウンロードする構成としても良い。
【００３１】
［ゲームの概要］
図２は、本実施形態におけるゲーム画面例を示す図である。本実施形態では、３次元仮想空間内に建物８や木箱１０といった障害物オブジェクトが配置されて戦場となるゲーム空間が形成され、その内にプレーヤキャラクタや標的となる敵ＮＰＣ４のキャラクタオブジェクトが配置され動作制御される。
【００３２】
敵ＮＰＣ４は、予めスクリプトデータによって出現位置や動作の内容が定義されており、所定のタイミングでプレーヤキャラクタ２に攻撃しつつ接近するように自動的に動作制御される。
【００３３】
一方、図３に示すように、プレーヤキャラクタ２のオブジェクは、撮影方向がプレーヤキャラクタ２の視線方向に一致するようにして仮想カメラＣＭが一体に固定されて制御される。また、プレーヤキャラクタ２はゲーム空間内を予め決められたコースを辿りつつ、予め決められている敵ＮＰＣ４の襲撃ポイントで襲来方向に視線を向けるように自動的に移動と視線方向が制御される。尚、同図ではプレーヤキャラクタ２の身体のモデルが存在するように示しているが、ゲームの構成上、プレーヤキャラクタ２の身体が画面に登場することが無い設定の場合、必ずしも身体のモデルを表示する必要はない。つまり、仮想カメラＣＭと画面の端に写る銃３のモデルのみで、プレーヤキャラクタ２を構成するとしても良い。
【００３４】
従って、図２に示すように、プレーヤキャラクタ２の一人称視点として仮想カメラＣＭでゲーム空間内を撮影したゲーム空間画像（所謂３ＤＣＧ）が生成され、これにプレーヤキャラクタのヒットポイントの残数を示すヒットポイントゲージ１２や、残弾数を表示する弾数ゲージ１４、視線の方向を示す方位表示１６、ガン型コントローラ１１３０で狙っている位置を示す照準６などの各種情報表示が合成されることでゲーム画面Ｗ２が形成されて、画像表示装置１１２２に表示される。そこには、戦場を駆け抜けるように流れる背景をバックにして襲い来る敵の姿が映し出されることになる。プレーヤは、迫り来る敵ＮＰＣ４から攻撃を受けるよりも早く、敵ＮＰＣ４に照準６を合わせてこれを射撃する。
【００３５】
本実施形態では、公知のガンシューティングゲームと同様に、プレーヤキャラクタが敵ＮＰＣ４の攻撃を受けるとプレーヤキャラクタのヒットポイントが減算される。同ヒットポイントが「０」になる前に、所定のゴール地点に到達できればゲームクリアとなり、到達できなければゲームオーバとなる。
【００３６】
［敵ＮＰＣの移動ルート探索の原理］
さて、本実施形態における敵ＮＰＣ４の動作は、先に述べたようにスクリプトデータによって予め定義づけられている。スクリプトデータは、ゲーム開始を基準とする時間軸に沿って、動作するキャラクタの識別と、その動作の内容を定義するデータである。
【００３７】
但し、図４に示すように、スクリプトデータで動作を定義すると言っても、特に移動に関しては移動の始点Ｐｓと終点Ｐｅが定義されるが具体的な移動ルートは定義されていない。そして、ゲーム進行状態に応じて敵ＮＰＣ４それぞれについて移動ルートを求める構成となっている。
例えば、同図では、出現位置からプレーヤキャラクタの居る方向に向けて障害物２０に身を隠しながら前進するように始点Ｐｓと終点Ｐｅとが定義されている。敵ＮＰＣ４が一人であれば、同図の矢印のように移動ルートを予め定義することもできる。しかし、実際には複数の敵ＮＰＣ４が登場し、それぞれが様々な移動や動作をすることになる。また、プレーヤキャラクタの任意の攻撃によって倒れる敵ＮＰＣ４の位置や順番も異なれば、プレーヤキャラクタの攻撃による爆発で障害物２０が移動して通れる場所も変化する可能性がある。つまり、不確定要素が極めて多く、多くの作業工数を費やして予め移動ルートを定義しても、本来ゲーム製作者が意図した敵の襲撃形態を演出する事ができなくなる可能性が高い。従って、移動ルートを予め定義する手法は適当とは言えない。そこで、移動ルートそのものをゲーム進行状態に応じて求める。
【００３８】
図５は、移動ルートの探索範囲を俯瞰視した概念図である。移動ルートの探索領域２２には、ゲーム空間の地面や床面と言った敵ＮＰＣ４が移動する面のポリゴンモデルの情報を基礎データとして複製使用される。図中の三角形の格子状配列がそれに当たり、それぞれ三角形ポリゴンに相当する。格子の各辺の中央位置が移動ルートを設定する上での経由候補点となる。本明細書では、経由候補点のことを「ノード（ｎｏｄｅ）」とも言う。
【００３９】
移動ルートの探索に当たっては、先ずゲーム空間のマップデータを参照して、マップのうち、障害物オブジェクトが配置されている領域を敵ＮＰＣ４が進入できない移動不可能領域２４として設定する。図２の例で言うところの建物８や木箱１０や、図４で言うところの障害物２０などのオブジェクトが配置された範囲（例えば、障害物２０のバウンダリボックス内の範囲）が移動不可能領域２４に設定される。図５では網掛け表示されている範囲がこれに当たる。そして、スクリプトデータを参照して、敵ＮＰＣ４に設定されている移動の始点Ｐｓと終点Ｐｅとを読み出して設定する。
【００４０】
始点Ｐｓと終点Ｐｅが設定されたならば、図６（ａ）に示すように、移動不可能領域２４を避けて、近接する経由候補点を伝いながら始点Ｐｓ〜終点Ｐｅとを最短距離で結ぶ暫定ルート２６を求める。暫定ルート２６の算出は、公知のルート探索技術を適宜応用する事によって実現できる。図では、暫定ルート上の経由候補点を黒丸で強調表示している。これら暫定ルート上の経由候補点には、始点Ｐｓを「１」とした経由順番号が付与され識別される。
【００４１】
この暫定ルート２６は、見ての通りそもそも格子状に設定された経由候補点を伝うことを前提に求められるので、感覚的な最短コースとは言えない。例えば、図６（ａ）の例では、探索領域２２の右上部分、終点Ｐｅに到達する直前にクランク状の部分が存在することになる。本来、敵ＮＰＣ４が知性ある兵士であれば、見通しの効く範囲を目的地点に向けてまっすぐ直線的に走り抜けるように移動するのが自然である。しかし、この暫定ルート２６ではクランク上の部分を有するため、敵ＮＰＣ４はまっすぐ進めばよいところを不自然に方向を変え、ともすれば遠回りしているかのように、その移動行動が不自然なものになる。そこで、暫定ルート２６のうち敵ＮＰＣ４が移動可能に見通しのできる部分を直線状に短縮補正して確定ルートを生成する。
【００４２】
具体的には、図６（ｂ）に示すように、先ず経由順番号ｎ＝ｍ（ｍは１以上の整数）とされる終点Ｐｅを検索開始点に設定する。そして、終点Ｐｅより暫定ルート上で経由順番号ｎ＝ｍ−１の経由候補点を検索先に設定し、検索開始点から検索先まで検索直線Ｌｍ−１を求める。そして、検索直線Ｌｍ−１が移動不可能領域２４に掛かるか否かを判定する。
【００４３】
検索直線Ｌｍ−１が移動不可能領域２４に掛からなければ、現在検索先としている経由候補点までは見通しが取れて直線移動できると判断する。そして次に経由番号が一つ小さい（経由順番号ｎ＝ｍ−２の）経由候補点を検索先に設定し直し、再び検索直線を設定して移動不可能領域２４に掛かるか否かを判定する。
【００４４】
同様の処理を、検索先とする経由候補点を経由逆順に辿るように次々に切り換えて繰り返す。検索直線が移動不可能領域２４に掛かったならば（例えば、図６（ｂ）中の検索直線Ｌ５）、検索開始点から現在の検索先の経由候補点へは見通すことができず、直線的に移動することはできないと判断する。そして、終点Ｐｅから経由順一つ後の経由候補点までの部分を、検索開始点から当該経由候補点を結ぶ検索直線（図６（ｂ）中の検索直線Ｌ６）に置換し短縮補正する。
【００４５】
暫定ルート２６の一部が補正されても、現在の検索先とされる経由候補点が始点Ｐｓに達していなければ同様の処理を繰り返す。すなわち、今度は検索直線が移動不可能領域２４に掛からなかった最も経由順番号ｎが小さい経由候補点（図６（ｂ）の例では、経由順番号ｎ＝６の経由候補点）を次の新たな検索開始点に設定し、再び当該検索開始点より経由逆順の経由候補点を検索先に設定して、検索直線が移動不可能領域２４に掛かるか否かの判定を繰り返す。当然、再び検索直線が移動不可能領域２４に掛かると判定されたら、現在の検索開始点とされる経由候補点から、現在検索先とされる経由候補点よりも経由順番号ｎが一つ後の経由候補点までを直線で置換し短縮補正する。こうして、暫定ルート２６の部分を直線に置換し短縮補正した結果が確定ルート２８とされる。
【００４６】
こうした一連の処理を、「ルート短縮補正処理」と呼ぶ。ルート短縮補正処理は、換言すると、暫定移動ルート２６に含まれる経由候補点のうち、ある経由候補点を経由しないこととしてルートを再構成した場合にも探索領域２２に設けられた移動不可能領域２４を通過しないルートとなるその経由候補点の経由を止めて、ルート上からその経由候補点を削除し、ルートを再構成する処理とも言える。
【００４７】
図６の例では、経由順番号ｎ＝６の経由候補点までは、検索直線Ｌ６が移動不可能領域２４に掛からずにいたが、経由順番号ｎ＝５の経由候補点への検索直線Ｌ５は移動不可能領域２４に掛かる。よって、経由順番号ｎ＝６までの暫定ルート２６の部分を、終点Ｐｅから経由順番号ｎ＝６の経由候補点への検索直線Ｌ６によって置換し短縮補正する。
しかし、現在の検索先とされる経由候補点は、経由順番号ｎ＝５の経由候補点であって始点Ｐｓには達していない。従って、経由順番号ｎ＝６の経由候補点を次の検索開始点として設定し、現在の検索先とされる経由順番号ｎ＝５の経由候補点へ検索直線（不図示）を設定し移動不可能領域２４に掛かるか否かの処理を再開する。
【００４８】
同図の例では経由順番号ｎ＝６よりも経由順前の経由候補点は何れも始点Ｐｓまで直線状に並んでいるので、暫定ルート２６の経由順番号ｎ＝６の経由候補点より始点Ｐｓ側の部分は、現在の検索開始点である経由順番号ｎ＝６の経由候補点から始点Ｐｓまでの直線で置換される。この結果、暫定ルート２６は、終点Ｐｅから経由順番号ｎ＝６の経由候補点を結ぶ第１の直線部分と、同経由候補点から始点Ｐｓを結ぶ第２の直線部分とで形成される確定ルート２８が決定される（図６（ｃ））。
【００４９】
［移動ルート再探索］
移動ルートの探索処理の実行は、対象となる敵ＮＰＣ４の出現時は勿論、ゲーム進行の状況に応じて適当なタイミングで再度実行され、その時々の状況変化に合わせて適切な移動ルートが確保されるように考慮されている。
【００５０】
移動ルート再探索の第１のタイミングとしては、ゲーム空間内における障害物オブジェクトの位置変化やイベントの発生によって、探索領域２２及び移動不可能領域２４に変化が生じる場合である。
障害物オブジェクトの位置が変化するケースとしては、例えばプレーヤキャラクタの攻撃によってゲーム空間内のある場所で爆発や破壊が生じて障害物オブジェクトが動かされて移動不可能領域２４が変化するケースが有る。より具体的には、一箇所に積み上げられていた木箱１０（図２参照）が倒壊して分散したり、柱や電柱などが倒れたり、ビルの看板が外れて落下したなどのシチュエーションが考えられる。また、後者のイベント発生に係るケースでは、マップ自体が切り換わったり、天井や床が崩落するなどして探索領域２２の形状が変化するシチュエーションが考えられる。
【００５１】
図７の例は、図６と比較すると、探索領域２２の形状は変化していないが、障害物オブジェクトの位置が変化して新たにハッチング表示された部分が移動不可能領域２４に追加されたケースを示している。この場合、暫定ルート２６を再度求めるとともに、先に述べたのと同様にルート短縮補正処理を実行して新たな確定ルート２８を決定する。
【００５２】
また、ルート再探索の第２のタイミングとしては、確定ルート上に他の敵ＮＰＣが存在してルートを塞いでいると判断される時である。例えば、図８（ａ）〜（ｂ）に示すように、既に求められている確定ルート２８の上に、他の敵ＮＰＣ３０、３２が移動してきて停止した状態を示している。停止状態は、その位置がそもそも移動の終点Ｐｅとなっているケースや、その位置で止まって攻撃をしているケース、或いはその位置で被弾して動けなくなっているケースなどが考えられる。そして、確定ルート２８の上に止まっている他の敵ＮＰＣの数が基準値（例えば、１〜３）以上となると、ルート再検索が行われる。そして、図８（ｂ）に示すように、新たな確定ルート２８が設定される。この新たな確定ルート２８では、もともと２つの直線部分で構成されていたルートが、３つの直線部分で形成されたルートに代わっている事を示している。
【００５３】
また、ルート再探索の第３のタイミングとしては、タイマを利用した周期的なタイミングの到来である。例えば、数十秒程度の時間をタイマでカウントし、その都度ルート再検索を実行する。これによって、先に述べた第１〜第２のタイミング以外の想定外の状況で敵ＮＰＣ４が確定ルート２８を正常に移動できなくなる事態を保障することができる。
【００５４】
［機能ブロックの説明］
次に、上述のような特徴を実現するための機能構成について説明する。
図９は、本実施形態における機能構成の一例を示す機能ブロック図である。同図に示すように本実施形態では、操作入力部１００と、処理部２００と、音出力部３５０と、画像表示部３６０と、通信部３７０と、記憶部５００とを備える。
【００５５】
操作入力部１００は、プレーヤによって為された各種の操作入力に応じて操作入力信号を処理部２００に出力する。例えば、ボタンスイッチや、ジョイスティック、タッチパッド、トラックボール、２軸以上の検出軸を有する多軸検出型加速度センサ又は検出軸方向を違えて組み合わされた単軸検出型加速度センサユニット、少なくとも２方向以上の検出方向を可能にする多方向検出型傾斜センサまたは検出方向を違えて組み合わされた単方向検出型傾斜センサユニット、基準位置からのズレを撮影するビデオカメラなどによっても実現できる。図１ではガン型コントローラ１１３０がこれに該当する。
【００５６】
処理部２００は、例えばＣＰＵやＧＰＵ等のマイクロプロセッサや、ＡＳＩＣ（特定用途向け集積回路）、ＩＣメモリなどの電子部品によって実現され、各機能部との間でデータの入出力を行う。そして、所定のプログラムやデータ、操作入力部１００からの操作入力信号に基づいて各種の演算処理を実行して、ガンシューティングゲーム装置１１００の動作を制御する。図１では制御ユニット１１５０がこれに該当する。
そして本実施形態における処理部２００は、ゲーム演算部２１０と、音生成部２５０と、画像生成部２６０と、通信制御部２７０とを備える。
【００５７】
ゲーム演算部２１０は、ゲームの進行に係る処理を実行する。例えば、仮想３次元空間中に障害物オブジェクト等を配置してゲーム空間を形成する処理や、ゲーム空間中にプレーヤキャラクタ２や敵ＮＰＣ４等のキャラクタオブジェクトを配置する処理、配置されたキャラクタ等の動作制御処理、キャラクタの移動や攻撃といった各種動作制御処理、攻撃等によるオブジェクト（例えば弾丸とキャラクタ）間のヒット判定処理、物理演算処理、ゲーム結果の算出処理といった処理が実行対象に含まれる。
そして、本実施形態のゲーム演算部２１０は、照準位置判定部２１２と、プレーヤキャラクタ動作制御部２１４と、ＮＰＣ動作制御部２１６と、移動ルート探索部２１８とを含んでいる。
【００５８】
照準位置判定部２１２は、操作入力部１００で指し示されているゲーム画面座標系における照準位置座標を決定する。つまり、画像表示装置１１２２に向けられたガン型コントローラ１１３０の銃口が向けられた画面上の位置を求める。そして、画面上の位置から仮想三次元空間における照準位置を求め、銃口の向きとして決定する。この照準位置判定部２１２の機能は、公知のガンシューティングゲーム装置の技術で実現することができる。
【００５９】
プレーヤキャラクタ動作制御部２１４は、プレーヤキャラクタ２の動作を制御する。具体的には、先ず記憶部５００のマップデータ５１２毎に設定されているＰＣ（プレーヤキャラクタ）移動設定データ５２０を参照して、所定のコースを所定のタイミングで移動するように移動制御する。また、コースを移動中に所定のタイミングで敵ＮＰＣ４の襲撃方向を向くように視線方向を制御する。また、プレーヤがガン型コントローラ１１３０で射撃操作したことを検出して、照準位置判定部２１２で求めた照準位置に向けて射撃をするように動作制御する。
尚、本実施形態では、プレーヤキャラクタの移動は所定のコースを辿るように設定されているが、プレーヤが自在に移動可能な構成とする場合には、移動操作入力に応じてプレーヤキャラクタを移動させる制御も行うとすれば良い。
【００６０】
ＮＰＣ動作制御部２１６は、記憶部５００に記憶されているスクリプトデータ５２６を参照して、敵ＮＰＣ４の出現・移動・攻撃・回避などの動作を制御する。そして、移動制御では、移動ルート探索部２１８で求めた確定ルートに従って敵ＮＰＣ４を移動制御させる。尚、ＮＰＣ動作制御部２１６は、所定の思考ルーチンに従って自動的に動作を決定するいわゆる「ＡＩ制御」機能を含むとしても良い。
【００６１】
移動ルート探索部２１８は、敵ＮＰＣ４の移動ルートを探索・設定する。
具体的には、先ず記憶部５００のゲーム空間設定データ５１０の内、現在プレイ中のゲームステージのマップデータ５１２を参照して探索領域２２（図５参照）を設定する。本実施形態では、敵ＮＰＣ４は歩行移動をするのでゲーム空間を形成する地面や床面のモデルデータ（床面メッシュデータ５１４）を探索領域２２の基礎データとする。敵ＮＰＣ４が飛行移動する場合には、所定の３次元格子状メッシュデータを生成しこれを探索領域として使用する。次いで、各マップデータ５１２の障害物配置データ５１６を参照して、探索領域２２に移動不可能領域２４（図５参照）を設定する。
【００６２】
次いで、スクリプトデータ５２６を参照したり、或いは所定の思考ルーチン（所謂「ＡＩ」）を実行して移動の始点Ｐｓ及び終点Ｐｅとなる経由候補点を探索領域２２上に選択・設定する。本実施形態では、探索領域２２を構成する各ポリゴンの各辺の中点位置を経由候補点とし、何れかの経由候補点を始点Ｐｓ及び終点Ｐｅとする。そして、公知の最短ルート探索処理（例えば、Ａ＊（スター）アルゴリズムなど）を実行して、始点Ｐｓから終点Ｐｅを結ぶ暫定ルート２６を決定し、決定した暫定ルート２６に対してルート短縮補正処理を実行して確定ルート２８を決定する（図６参照）。
【００６３】
移動ルート探索部２１８で求められた暫定ルート２６や確定ルート２８のデータは、記憶部５００に各敵ＮＰＣ毎に用意されるＮＰＣステータスデータ５３０に、暫定ルートデータ５４０及び確定ルートデータ５４２として格納される。また、探索領域２２の情報は探索領域データ５４４として記憶部５００に記憶され、確定ルートの設定に際して検索直線を設定するための検索開始点とした経由候補点、及び検索先とした経由候補点の情報は、それぞれ検索開始ノード５４６，検索先ノード５４８として記憶部５００に記憶される。
【００６４】
音生成部２５０は、例えばデジタルシグナルプロセッサ（ＤＳＰ）、音声合成ＩＣなどのプロセッサや、音声ファイル再生可能なオーディオコーデックによって実現され、ゲーム演算部２１０による処理結果に基づいてゲームに係る効果音やＢＧＭ、各種操作音の音信号を生成し、音出力部３５０に出力する。
【００６５】
音出力部３５０は、音生成部２５０から入力される音信号に基づいて効果音やＢＧＭ等を音出力する装置によって実現される。図１ではスピーカ１１２４がこれに該当する。
【００６６】
画像生成部２６０は、例えば、ＧＰＵ（Graphics Processing Unit）、デジタルシグナルプロセッサ（ＤＳＰ）などのプロセッサ、ビデオ信号ＩＣ、ビデオコーデックなどのプログラム、フレームバッファ等の描画フレーム用ＩＣメモリ等によって実現される。画像生成部２６０は、ゲーム演算部２１０による処理結果に基づいて１フレーム時間（１／６０秒）で１枚のゲーム画像を生成し、生成したゲーム画像の画像信号を画像表示部３６０に出力する。
【００６７】
画像表示部３６０は、画像生成部２６０から入力される画像信号に基づいて各種ゲーム画像を表示する。例えば、フラットパネルディスプレイ、ブラウン管（ＣＲＴ）、プロジェクターといった画像表示装置によって実現できる。図１では画像表示装置１１２２がこれに該当する。
【００６８】
通信制御部２７０は、データ通信に係るデータ処理を実行し、通信部３７０を介して外部装置とのデータのやりとりを実現する。
【００６９】
通信部３７０は、通信回線１と接続して通信を実現する。例えば、無線通信機、モデム、ＴＡ（ターミナルアダプタ）、有線用の通信ケーブルのジャックや制御回路等によって実現され、図１の通信装置１１５４がこれに該当する。
【００７０】
記憶部５００は、処理部２００にガンシューティングゲーム装置１１００を統合的に制御させるための諸機能を実現するためのシステムプログラムや、ゲームを実行させるために必要なゲームプログラム、各種データ等を記憶する。また、処理部２００の作業領域として用いられ、処理部２００が各種プログラムに従って実行した演算結果や操作入力部１００から入力される入力データ等を一時的に記憶する。この機能は、例えばＲＡＭやＲＯＭなどのＩＣメモリ、ハードディスク等の磁気ディスク、ＣＤ−ＲＯＭやＤＶＤなどの光学ディスクなどによって実現される。図１では制御ユニット１１５０が搭載するフラッシュメモリ１１５２などがこれに該当する。
【００７１】
本実施形態では、記憶部５００はシステムプログラム５０２と、ゲームプログラム５０４とを記憶している。処理部２００がゲームプログラム５０４を読み出して実行することによって、処理部２００にゲーム演算部２１０としての機能を実現できる。
特にゲームプログラム５０４には、ＮＰＣ動作制御部２１６や移動ルート探索部２１８の機能を実現させるためのＮＰＣ制御プログラム５０６が含まれている。
【００７２】
また、記憶部５００には、予め用意されるデータとして、ゲーム空間設定データ５１０と、キャラクタ初期設定データ５２４と、スクリプトデータ５２６が記憶されている。
更にゲームの進行に伴って随時生成や更新が行われるデータとして、着弾履歴データ５２８と、ＮＰＣステータスデータ５３０とを記憶する。また、ゲームの進行に係る処理を実行するにあたり必要となるデータ（例えば、仮想カメラＣＭの仮想３次元空間座標系における位置座標や姿勢情報や、カウンタの値、タイマの値）なども適宜記憶されるものとする。
【００７３】
ゲーム空間設定データ５１０は、仮想３次元空間にゲーム空間を形成するための各種データをゲームステージ別のマップデータ５１２として格納している。
一のマップデータ５１２は、プレーヤキャラクタや敵ＮＰＣ４が移動する地表や床面のモデルデータに相当する床面メッシュデータ５１４と、床面メッシュデータ５１４で形成される地表や床面に配置され障害物となり得るオブジェクトの位置や姿勢を定義する障害物配置データ５１６と、障害物となり得るオブジェクトのモデルデータやテクスチャデータなどを格納する障害物モデルデータ５１８と、当該マップにおいてプレーヤキャラクタが自動移動制御されるコースや移動速度、視線方向の変化などを定義するＰＣ移動設定データ５２０とを含む。これらマップデータ５１２に含まれるデータは、公知のガンシューティングゲームのそれと同様に実現できる。
【００７４】
キャラクタ初期設定データ５２４は、プレーヤキャラクタや敵ＮＰＣ４の各種初期設定データを格納している。例えば、キャラクタについてはモデルデータ、テクスチャデータ、モーションデータ、耐力値の初期値、攻撃力、移動速度などが格納されている。
【００７５】
スクリプトデータ５２６は、敵ＮＰＣ４の動作タイミングと動作の内容、天井の崩落やゲームステージの切り換えといったイベントのタイミングとそのイベント内容など、ゲーム進行上の出来事を設定するデータである。
例えば、図１０に示すように、タイミング５２６ａと対応づけて、対象とされるオブジェクト５２６ｂと、その動作５２６ｃと、動作内容を定義する動作パラメータ５２６ｄとが格納されている。タイミング５２６ａには、ゲーム開始からの経過時間に相当するフレーム番号が格納される。オブジェクト５２６ｂには、敵ＮＰＣ４の識別情報や、崩落する天井や爆発する自動車など可動する障害物オブジェクトや背景のオブジェクトの識別情報が格納される。動作５２６ｃには、動作制御するプログラムのサブルーチンや関数が定義され、動作パラメータ５２６ｄには動作制御に必要なパラメータ値が格納される。
【００７６】
同図の例をより具体的に説明すると、例えば、タイミング５２６ａが「ｆｒａｍｅ３００」では、「敵００２」のＩＤを有する敵ＮＰＣ４が、ゲーム空間内の「出現位置＝（ｘ１，ｙ１，ｚ１）」の座標に「出現（ａｐｐｅａｒ）」し、「ｆｒａｍｅ３０１〜ｆｒａｍｅ４８０」の間に「始点、終点＝ｎｏｄｅ００１，ｎｏｄｅ２９８」として「移動（ｍｏｖｅ）」するように設定されている。
また、タイミング「ｆｒａｍｅ４２０〜ｆｒａｍｅ４８０」では、「天井」がゲーム空間内の「落下位置＝（ｘ３，ｙ３，ｚ３）」へ「落下（ｆａｌｌ）」するようにイベントが設定されている。
そして、タイミング「ｆｒａｍｅ４８０」で「変更マップ＝ｍａｐ０２」へ「マップ変更（ｍａｐ−ｃｈａｎｇｅ）」する所謂ゲームステージの変更イベントが設定されている。
【００７７】
着弾履歴データ５２８は、プレーヤキャラクタの射撃によって着弾したゲーム空間内の位置座標と時間とを対応付けて格納するデータであり、プレーヤキャラクタ動作制御部２１４が射撃動作を制御する際に随時記憶・蓄積されてゆく。
【００７８】
ＮＰＣステータスデータ５３０は、敵ＮＰＣ毎に用意され、該当キャラクタの現在状態を示す各種データを格納する。
一つのＮＰＣステータスデータ５３０は、例えば、キャラクタＩＤ５３２と、ヒットポイント５３４と、ゲーム空間内における位置座標を格納する現在位置５３６と、現在実行中の動作の種類や当該動作のモーション制御情報などを格納する動作制御パラメータ５３８と、暫定ルート２６を定義する情報を格納する暫定ルートデータ５４０と、確定ルート２８を定義する情報を格納する確定ルートデータ５４２と、探索領域データ５４４を含む。また、確定ルートの決定に係る処理において検索直線の検索開始点と検索先となる経由候補点（ノード）との識別情報を格納する検索開始ノード５４６及び検索先ノード５４８を含む。
【００７９】
暫定ルートデータ５４０と確定ルートデータ５４２は、基本的には同じデータ構造を有する。例えば暫定ルートデータ５４０は、図１１に示すように、始点Ｐｓとされる経由候補点の識別情報を格納する始点ノード５４０ａと、終点Ｐｅとされる経由候補点の識別情報を格納する終点ノード５４０ｂと、経由順番号５４０ｃに対応づけられた経由候補点の識別情報を格納するノードＩＤ５４０ｄとが含まれている。経由順番号５４０ｃが「１」及び「ｍ（当該ルートにおける経由順番号の最大値を示す）」の経由候補点は、それぞれ始点ノード５４０ａ及び終点ノード５４０ｂと同じになる。
【００８０】
探索領域データ５４４には、探索領域２２に係る情報が格納される。本実施形態では、例えば図１２に示すように、プレイ中のゲームステージのマップデータ５１２の床面メッシュデータ５１４を複製した床面メッシュデータ５４４ａと、同データで定義されるポリゴンモデルの各辺の中点を経由候補点として抽出し、抽出した各経由候補点に付与したノードＩＤ５４４ｂと該当する経由候補点のゲーム空間座標系座標５４４ｃと、移動不可能領域フラグ５４４ｄを対応づけて格納する。その他、公知のルート探索処理を実行するのに必要な情報が適宜格納される。
【００８１】
［動作の説明］
次に、本実施形態におけるガンシューディングゲーム装置１１００の動作について説明する。尚、ここで説明される処理は、処理部２００がシステムプログラム５０２並びにゲームプログラム５０４を読み出して実行することによって実現される。
【００８２】
図１３は、本実施形態における主たる処理の流れを説明するためのフローチャートである。同図に示すように、ゲーム演算部２１０は先ずゲーム空間設定データ５１０、キャラクタ初期設定データ５２４を参照して、仮想３次元空間中に建物８や木箱１０（図２参照）などの障害物オブジェクトや背景オブジェクトを配置してゲーム空間を形成し（ステップＳ２）、形成したゲーム空間内にプレーヤキャラクタ２と、敵ＮＰＣ４と、仮想カメラＣＭを配置する（ステップＳ４）。そして、移動ルート探索周期を自動的に計時する繰り返しカウンタによるカウンタを始動させる（ステップＳ６）。
【００８３】
次に、処理部２００はゲームがスタートしているか否かを判定する（ステップＳ８）。スタートしていなければ（ステップＳ８のＮＯ）、処理部２００はステップＳ４８に移行して初期状態のゲーム空間内の様子を仮想カメラＣＭで撮影した画像（ゲーム空間画像）をレンダリングし、これにヒットポイントゲージ１２等の各種情報表示を合成してゲーム画面を生成する。そして、生成したゲーム画面を画像表示部３６０、つまりは画像表示装置１１２２に表示させる。また、ゲーム音を生成して音出力部３５０、つまりはスピーカ１１２４から放音させる。
【００８４】
次に、処理部２００はゲーム終了条件を満たしているか否かを判定するが（ステップＳ５０）。ゲームスタート前の状態であれば（ステップＳ５０のＮＯ）、再びステップＳ８に戻る。
【００８５】
ゲームがスタートしていれば（ステップＳ８のＹＥＳ）、処理部２００は、公知のビデオゲームの制御と同様にゲーム開始からの経過時間を示すパラメータとして描画フレーム数のカウントを開始する。そして、ステップＳ１２〜Ｓ５０をゲーム終了条件を満たすと判定されるまで、画像表示装置１１２２のリフレッシュレートよりも十分短い制御サイクルで繰り返し実行する。
【００８６】
具体的には、先ず、処理部２００はプレーヤキャラクタの動作制御を実行する（ステップＳ１２）。より具体的には、ガン型コントローラ１１３０の銃口を向けた先のゲーム画像座標系における照準位置座標を求め、当該箇所に照準６を表示させるとともに、当該照準位置に相当するゲーム空間内の位置を狙っているように銃を構えるプレーヤキャラクタの腕を動作制御する。そして、ガン型コントローラ１１３０での射撃操作を検出して、現在の照準位置座標に相当するゲーム空間中の位置に向けて射撃動作制御する。これらは、公知のガンシューディングゲームにおける処理と同様に実現できる。
【００８７】
次に、処理部２００は現在のゲームステージに対応するマップデータ５１２のＰＣ移動設定データ５２０を参照して、設定通りにプレーヤキャラクタを移動させるとともに、その視線方向を制御する（ステップＳ１４）。
【００８８】
ここで、処理部２００はスクリプトデータ５２６を参照する。現時点が敵ＮＰＣの出現タイミングとして設定されている場合には（ステップＳ１６のＹＥＳ）、指定された位置座標に敵ＮＰＣを配置・出現させ（ステップＳ１８）、移動ルート探索処理を実行する（ステップＳ２０）。
【００８９】
図１４は、本実施形態における移動ルート探索処理の流れを説明するためのフローチャートである。同処理では先ず、処理部２００は現在のゲームステージに対応するマップデータ５１２の床面メッシュデータ５１４を複製してこれを探索領域２２の基礎データとし、探索領域２２に識別可能な経由候補点を格子状に設定する（ステップＳ７０）。この情報は、対応する敵ＮＰＣ４のＮＰＣステータスデータ５３０の探索領域データ５４４として記憶される。
【００９０】
次いで、処理部２００は、探索領域２２に移動不可能領域２４を設定する（ステップＳ７２）。具体的には、同マップデータの障害物配置データ５１６及び障害物モデルデータ５１８を参照して、ゲーム空間内に配置される障害物オブジェクトのバウンダリボックスが掛かる経由候補点の移動不可能領域フラグ５４４ｄに「１」を設定して移動不可能領域２４を設定する。
【００９１】
次に、処理部２００は処理対象としている敵ＮＰＣに確定ルート２８が既に設定されているか否かを判定する（ステップＳ７４）。処理対象の敵ＮＰＣのＮＰＣステータスデータ５３０に確定ルートデータ５４２が設定されていなければ否定判定し（ステップＳ７４のＮＯ）、スクリプトデータ５２６から現時点に該当するタイミング５２６ａにおいて、処理対象の敵ＮＰＣに設定されている移動の動作パラメータ５２６ｄを参照して、これから探索するルートの始点Ｐｓ及び終点Ｐｅの指定を読み出し、指定されたノードＩＤを暫定ルートデータ５４０の始点ノード５４０ａ及び終点ノード５４０ｂにそれぞれ格納する（ステップＳ７６）。
【００９２】
一方、該当するＮＰＣステータスデータ５３０に既に確定ルートデータ５４２が存在していれば（ステップＳ７４のＹＥＳ）、移動ルートの再検索に相当すると判断できるので、既存の暫定ルート及び確定ルートの情報を一旦クリアして（ステップＳ８０）、処理対象の敵ＮＰＣの現在位置に最寄りの経由候補点（ノード）を選択し、これを新たに暫定ルートデータ５４０及び確定ルートデータ５４２の始点ノードに再設定する（ステップＳ８２）。更に、スクリプトデータ５２６から同敵ＮＰＣに現時点のタイミングで設定されている移動の終点Ｐｅの指定を読み出して、これを暫定ルートデータ５４０及び確定ルートデータ５４２の終点ノードに設定する。
【００９３】
始点ノード５４０ａ及び終点ノード５４０ｂの設定が完了したならば、処理部２００は公知の最短ルート検索処理と同様にして探索領域２２に設定されている経由候補点（ノード）を隣接する点を伝うようにして始点Ｐｓから終点Ｐｅを結ぶ暫定ルート２６を決定する（ステップＳ９０）。この時、始点Ｐｓの経由順番号ｎを「１」とする暫定ルートデータ５４０が設定される。尚、以降では暫定ルートの探索に伴い付与された終点Ｐｅの経由順番号を「ｍ」として説明する。
【００９４】
さて、暫定ルート２６が決定されたので、次に処理部２００はルート短縮補正処理を実行する（ステップＳ９２〜Ｓ１０６）。具体的には、記憶部５００にカウンタの領域を確保し、カウンタの値Ｎを暫定ルートの終点Ｐｅの経由順番号「ｍ」を設定し（ステップＳ９２）、検索開始ノード５４６に終点Ｐｅを設定する（ステップＳ９４）。そして、経由順番号「Ｎ」の経由候補点（ノード）を検索先ノード５４８に設定し、検索開始ノード５４６から検索先ノード５４８を結ぶ検索直線Ｌｘ（ｘは添字。図６のＬｍ−１などが該当）を設定する（ステップＳ９６）。
【００９５】
設定された検索直線Ｌｘが移動不可能領域２４に掛からなければ（ステップＳ９８のＮＯ）、処理部２００は確定ルートデータ５４２にこの検索直線Ｌｘを追加し（ステップＳ１００）、カウンタＮから「１」減算する（ステップＳ１０２）。反対に、検索直線Ｌｘが移動不可能領域２４に掛かる場合には（ステップＳ９８のＹＥＳ）、検索開始ノード５４６の設定を経由順番号「Ｎ＋１」の経由候補点に再設定する（ステップＳ１０４）。
【００９６】
次に、処理部２００は現在のカウンタの値Ｎが「１」で有るか、つまり検索先ノードが暫定ルートの始点Ｐｓに達したか否かを判定する（ステップＳ１０６）。否定ならば（ステップＳ１０６のＮＯ）、ステップＳ９６に戻り、「１」減算されたカウンタＮの値を経由順番号とする次の経由候補点を新たな検索先ノード５４８として、再度検索直線Ｌｘを設定する。カウンタの値Ｎが「１」であれば（ステップＳ１０６のＹＥＳ）、移動ルート探索処理を終了する。
【００９７】
図１３のフローチャートに戻って、続いて処理部２００は、ゲーム空間内に配置されている全敵ＮＰＣについてループＡの処理を実行する（ステップＳ２２〜Ｓ２８）。ループＡでは、先ず処理対象とされる敵ＮＰＣについて移動制御処理を実行し（ステップＳ２４）、次いでスクリプトデータ５２６を参照して同データの設定に従って攻撃動作制御処理を実行する（ステップＳ２６）。
【００９８】
図１５は、本実施形態における移動制御処理の流れを説明するためのフローチャートである。同処理では先ず、処理部２００は処理対象とされる敵ＮＰＣの視界前方の所定範囲内に他の敵ＮＰＣが存在するか否かを判定する（ステップＳ１３０）。存在している場合（ステップＳ１３０のＹＥＳ）、更に該当する他の敵ＮＰＣの数が基準値を超えるか否かを判定する（ステップＳ１３２）。ここで言う「基準値」は、処理対象とされる敵ＮＰＣが移動ルートを変更せずに視界前方所定範囲内に他の敵ＮＰＣ群を突っ切って移動するときにその動作が不自然に見るか否かで適宜設定されている。戦場で３人（基準値＝３）の他の敵ＮＰＣが集まっている中を無理に突っ切るのは不自然であり、むしろ移動しやすい別の移動ルートに変更した方が目的地点により素早く移動できる訓練された兵士の判断に相当する。
【００９９】
基準値を超える場合には（ステップＳ１３２のＹＥＳ）、処理部２００は迂回ルート探索処理を実行する（ステップＳ１３６）。また、基準値を超えない場合でも（ステップＳ１３２のＮＯ）、処理対象とされる敵ＮＰＣの確定ルート２８の前方に停止中の他の敵ＮＰＣが存在する場合には（ステップＳ１３４のＹＥＳ）、やはり迂回ルート探索処理を実行する（ステップＳ１３６）。
【０１００】
図１６は、本実施形態における移動ルート探索の一種である迂回ルート探索処理の流れを説明するためのフローチャートである。同処理では、処理部２００は前述のステップＳ７０及びＳ７２と同様にして、探索領域２２と経由候補点の設定（ステップＳ１６０）と、探索領域２２に移動不可能領域２４を設定する（ステップＳ１６２）。
【０１０１】
そして、処理対象とされる敵ＮＰＣの視界前方所定範囲内に居る他の敵ＮＰＣの位置を移動不可能領域２４に追加設定する（ステップＳ１６４）。具体的には、探索領域データ５４４の内、該当する他の敵ＮＰＣのバウンダリボックスが掛かる経由候補点の移動不可能領域フラグ５４４ｄを「１」に設定する。
【０１０２】
次いで、処理部２００は終点ノード５４０ｂの設定を残して、暫定ルートと確定ルートの情報をクリアし（ステップＳ１６６）、処理対象とされる敵ＮＰＣの現在位置に最寄りの経由候補点（ノード）を暫定ルート及び確定ルートの始点ノード５４０ａに設定する（ステップＳ１６８）。
【０１０３】
そして、移動ルート探索処理のステップＳ９０と同様にして暫定ルートを決定し（ステップＳ１７０）、前述のステップＳ９２〜Ｓ１０６と同様のルート短縮補正処理を実行し（ステップＳ１７２）、迂回ルート探索処理を終了する。
【０１０４】
図１５のフローチャートに戻って、処理部２００は次に、照準位置が、処理対象とされる敵ＮＰＣに向いているか否かを判定する（ステップＳ１３８）。例えば、当該敵ＮＰＣの代表点のゲーム画面座標系の位置座標から所定範囲に照準６が表示される場合には肯定判定し（ステップＳ１３８のＹＥＳ）、当該敵ＮＰＣに回避運動をさせて（ステップＳ１４２）、移動制御処理を終了する。尚、回避運動は、例えば所定距離を仮想カメラＣＭの視線方向に対して右方向或いは左方向に移動させる、しゃがみ動作させるなど適宜設定可能である。
【０１０５】
また、照準位置が処理対象とされる敵ＮＰＣに向いていなくとも（ステップＳ１３８のＮＯ）、着弾履歴データ５２８を参照して、処理対象とされる敵ＮＰＣを中心とした所定の着弾度合判定領域に過去所定時間（例えば２秒相当）内に基準数を上回る着弾がある場合には、当該敵ＮＰＣが狙われている可能性が高いと判断して（ステップＳ１４０のＹＥＳ）、同じように処理対象とされる敵ＮＰＣに回避運動をさせ（ステップＳ１４２）、移動制御処理を終了する。
【０１０６】
一方、処理対象とされる敵ＮＰＣに照準も向けられていない上、その周囲への着弾も少なければ（ステップＳ１４０のＮＯ）、処理部２００は処理対象とされる敵ＮＰＣを確定ルートデータ５４２で定義されている確定ルート２８を逆に辿るようにして、今回の制御サイクル分（例えば、１描画フレーム分）だけ移動制御する（ステップＳ１４４）。
【０１０７】
尚、同ステップにおける移動制御では、厳密に折れ線状の確定ルート２８に沿ってキャラクタのオブジェクトを移動させるとしても良いが、確定ルート２８を元にして折れ線の節部前後を滑らかに繋ぐ曲線（具体的には、確定ルート２８の経由候補点を元に求められる近似曲線など）を算出してこれに沿ってキャラクタのオブジェクトを移動させるとしても良い。或いは、乱数を発生させ、乱数の大きさに応じて確定ルート２８から実際の移動目標位置をずらす処理を行うことで、直線的な移動になり過ぎないようにすると、敵ＮＰＣにより自然な移動動作をさせることができる。
【０１０８】
さて、図１３において、全敵ＮＰＣについてループＡを実行したならば、処理部２００は、ステップＳ２４の移動制御処理に含まれる回避動作で、確定ルートから基準距離以上逸れた敵ＮＰＣが有るか否かを判定する（ステップＳ３０）。
そして、該当する敵ＮＰＣがある場合には（ステップＳ３０のＹＥＳ）、処理部２００は該当敵ＮＰＣについて移動ルート探索処理を実行して移動ルートを再設定する（ステップＳ３２）。
【０１０９】
次いで、処理部２００はステップＳ６で開始した移動ルート探索周期のカウンタを参照して、探索周期が到来したか否かを判定する（ステップＳ３４）。そして、肯定の場合（ステップＳ３４のＹＥＳ）、処理部２００はゲーム空間内に配置済の全敵ＮＰＣについて移動ルート探索処理を実行して移動ルートを再設定する（ステップＳ３６）。
【０１１０】
次に、処理部２００はスクリプトデータ５２６を参照して、イベント発生処理を実行する（ステップＳ３８）。例えば、天井の崩落やマップの切り換えなどがこれに当たる。
そして、イベントの発生に伴って、新たに障害物オブジェクトが配置されたり既存の障害物オブジェクトの配置位置が変化した場合、或いはマップが切り換った場合には、ルート探索の基礎となっていた探索領域２２がゲーム空間内の現状と乖離していると判断して（ステップＳ４０のＹＥＳ）、処理部２００はゲーム空間内に配置済の全敵ＮＰＣについて移動ルート探索処理を実行して移動ルートを再設定する（ステップＳ４２）。
【０１１１】
次いで、処理部２００はゲーム結果の算出を行う（ステップＳ４４）。ゲーム結果としては、プレーヤキャラクや敵ＮＰＣの攻撃のヒット判定、そのヒット判定に基づくプレーヤキャラクや敵ＮＰＣのヒットポイントの減算、ヒットポイントゲージ１２や弾数ゲージ１４、方位表示１６の更新などが含まれる。
そして、算出したゲーム結果に応じて、着弾位置に火花を表示させたり、着弾した敵ＮＰＣにやられ動作をさせたりと言った、着弾・やられ処理を実行する（ステップＳ４６）。
【０１１２】
次いで、処理部２００はゲーム画面の生成及び表示制御と、ゲーム音の生成及び放音制御処理を実行し（ステップＳ４８）、先に算出されたゲーム結果に基づいてゲーム終了の判定をする（ステップＳ５０）。本実施形態では、プレーヤキャラクのヒットポイントが「０」になればゲームオーバ、「０」になる前に所定のゴール地点に到達すればゲームクリアとしてゲーム終了条件を満たすと判断する。
【０１１３】
ゲーム終了条件を満たしていないと判定した場合には（ステップＳ５０のＮＯ）、ステップＳ８に移行する。反対にゲーム終了条件を満たすと判定した場合には（ステップＳ５０のＹＥＳ）、処理部２００はゲームオーバ或いはゲームクリアの結果に応じた所定のゲーム終了告知画面を表示させるなどのゲーム終了処理を実行して（ステップＳ５２）、一連の処理を終了する。
【０１１４】
以上、本実施形態によれば、格子状に配置された経由候補点に基づいてＮＰＣの移動ルートの元（暫定ルート）を決定する構成であっても、障害物が無く直線的に移動できる見通し部分についてはこれを短縮補正することができる。従って、ＮＰＣがより本物の兵士のように「移動可能に見通しのできるところはまっすぐに目的地点へ向かう」ように移動をさせることができる。
【０１１５】
また、移動ルートについては、ゲームの進行状況に応じて適宜ルート再探索をさせることができる。例えば、確定したルート上に他のＮＰＣが密集している場合や、他のＮＰＣが停止していて移動の邪魔になったり、無理にそこを突っ切ることが不自然に見えると判断できる場合に、再度移動ルートを探索して迂回させることができる。更には、移動ルートに束縛されず、移動中にプレーヤキャラクタに標的とされている可能性が高い場合には、ＮＰＣに回避運動をさせることで、より戦闘行動として自然な振る舞いをさせることができる。
【０１１６】
また例えば、回避運動等で移動ルートから逸れた場合や、イベント発生処理によって移動ルートを探索した探索領域の前提が変わった場合には、自動的に移動ルートの再探索をさせ、これに対処することができる。
更には、一定周期毎にも移動ルートの再探索をすることができるので、その他想定外の状況によって確定した移動ルートが不適当なままゲームが進行する事の無いように保障することができる。
【０１１７】
尚、移動ルートの再探索の契機は、上記以外にも適宜設定することができる。
例えば、各敵ＮＰＣの移動距離を累積算出するステップをループＡ内に設け、ステップＳ３０〜Ｓ４４の間のどこかで、累積算出された移動距離が所定の基準値に達した敵ＮＰＣを抽出するステップと、抽出した敵ＮＰＣの移動距離の累積値を「０」にリセットして、移動ルート探索処理を実行するステップとを加える構成としても良い。
また別の例としては、テップＳ３０〜Ｓ４４の間のどこかで、プレーヤキャラクタ２が、使用効果によって敵ＮＰＣが強制的に移動される可能性があるアイテム（例えば、強烈な爆風を生み出す特殊爆弾アイテム）を使用したことを検知するステップを設け、このステップで検知された場合に配置済みの全敵ＮＰＣについて移動ルート探索処理を実行するステップを加える構成とすることもできる。
【０１１８】
〔第２実施形態〕
次に、本発明を適用した第２実施形態について説明する。本実施形態は、基本的には第１実施形態と同様の構成を有するが、確定ルートを設定する際に、検索開始ノードを始点Ｐｓより設定し、検索先ノードを経由順番号に従って順次設定する点が異なる。尚、本実施形態についての説明では、第１施形態と同様の構成要素については同じ符号を付与し、構成の差異についてのみ説明する。
【０１１９】
図１７は、本実施形態における確定ルート探索の原理について説明するための図である。同図に示すように、確定ルート２８の探索に際しては、先ず検索開始ノード５４６に始点Ｐｓを設定し、検索先ノード５４８を経由順番号ｎ順に順次設定してその都度検索直線Ｌｘ（ｘは添字）が移動不可能領域２４に掛かるか否かを判定する。
移動不可能領域２４に掛かる場合、検索開始ノード５４６を検索先ノード５４８の経由順番号ｎより一つ前のｎ−１の経由候補点に再設定し、経由順番号ｎの経由点候補を検索先ノード５４８に設定し経由順番号ｎ順に順次設定してその都度検索直線Ｌｘが移動不可能領域２４に掛かるか否かを判定することを、検索先ノード５４８が終点Ｐｅに到達するまで繰り返す。
【０１２０】
同図の例では、検索直線Ｌ９が移動不可能領域２４に掛かるので、始点Ｐｓから経由順番号ｎ＝８の経由候補点を結ぶ検索直線Ｌ８が確定ルートの第１の部分として確定される。次に、経由順番号ｎ＝９の経由候補点を新たな検索開始ノード５４６に設定して、経由順番号ｎ＝９の経由候補点を新たな検索先ノード５４８して検索直線Ｌｘを設定し、移動不可能領域２４との衝突判定を再開する。結果、経由順番号ｎ＝８の経由候補点から終点Ｐｅまでの検索直線Ｌｍは移動不可能領域２４に掛からないので、当該検索直線が確定ルートの第２の部分と指定確定される。
【０１２１】
図１８は、本実施形態における移動ルート探索処理（移動ルート探索処理Ｂ）の流れを説明するためのフローチャートである。同処理は基本的に第１実施形態の移動ルート探索処理と同様に実現されるが、処理部２００は暫定ルートを決定した後（ステップＳ９０）、カウンタの値Ｎを「１」に設定し（ステップＳ９３）、検索開始ノード５４６に始点Ｐｓを設定する（ステップＳ９５）。そして、検索直線Ｌｘを設定して（ステップＳ９６）、この検索直線Ｌｘが移動不可能領域２４に掛かるか否かを判定する（ステップＳ９８）。
【０１２２】
検索直線Ｌｘが移動不可能領域２４に掛からない場合（ステップＳ９８のＮＯ）、処理部２００は当該検索直線Ｌｘを確定ルートに設定したのち（ステップＳ１００）、カウンタの値Ｎに「１」を加算する（ステップＳ１０３）。
また、検索直線Ｌｘが移動不可能領域２４に掛かる場合（ステップＳ９８のＹＥＳ）、処理部２００は検索開始ノード５４６に経由点番号ｎ＝Ｎ−１の経由後方点を設定する（ステップＳ１０５）。
そして、ステップＳ１０６に代えて、カウンタの値Ｎがｍに達したか否か、つまりは検索先ノード５４８が終点Ｐｅに達したか否かを判定する（ステップＳ１０７）。
【０１２３】
〔第３実施形態〕
次に、本発明を適用した第３実施形態について説明する。本実施形態は、基本的には第１又は第２実施形態と同様の構成を有するが、スクリプトデータ５２６によって移動の終点Ｐｅが複数箇所指定されており、ゲームの進行状況に応じてその何れかを選択する点が異なる。尚、本実施形態についての説明では、第１又は第２実施形態と同様の構成要素については同じ符号を付与し、構成の差異についてのみ説明する。
【０１２４】
図１９は、本実施形態におけるスクリプトデータ５２６の例を示す図である。本実施形態では動作５２６ｃ「ｍｏｖｅ（移動）」の動作パラメータ５２６ｄには、一つの始点Ｐｓと、選択順位付きの複数の選択候補の終点が設定される。勿論、選択候補として設定できる終点Ｐｅの数は、適宜設定することができる。
【０１２５】
図２０は、本実施形態における移動ルート探索の原理を説明するための図である。
同図の例では、敵ＮＰＣ４には、第１順位終点Ｐｅ１〜第３順位終点Ｐｅ３が設定されている。第１順位終点Ｐｅ１と第２順位終点Ｐｅ２は、ともにプレーヤキャラクからの攻撃を防ぎ得る障害物群２０に隠れられる位置にあって優先順位が高く設定されている（図２０（ａ））。
【０１２６】
そして、本実施形態では、敵ＮＰＣ４の暫定ルートを設定する際、終点ノード５４０ｂとする終点Ｐｅをゲームの進行状況に応じて決定する。
例えば、終点Ｐｅの周囲に存在する他の敵ＮＰＣの数に基づいて、できるだけ敵ＮＰＣがゲーム空間内に分散するように終点Ｐｅが選択される。同図の例では、第１順位終点Ｐｅ１を基準点とする所定の友軍検索範囲３６には、基準値を超える数の他の敵ＮＰＣ３８が停止しているので選択候補から除外することで、次に優先行動が高い第２順位終点Ｐｅ２が選択されて終点ノード５４０ｂとされる（図２０（ｂ））。
もし、第２順位終点Ｐｅ２の周囲にも同様に基準値を超える数の他の敵ＮＰＣ３８が存在すれば、当該終点も選択候補から除外され、第３順位終点Ｐｅ３が選ばれる。
【０１２７】
図２１は、本実施形態における移動ルート探索処理（移動ルート探索処理Ｃ）の流れを説明するためのフローチャートである。同処理は、基本的には第１実施形態又は第２実施形態の移動ルート探索処理と同様に実現されるが、ここでは第１実施形態を基にして説明する。
【０１２８】
移動ルート探索処理Ｃは、第１実施形態と比べて次のような特徴を有する。
第１実施形態のステップＳ７６（図１４参照）に代えて、処理対象とされる敵ＮＰＣに確定ルートデータ５４２が設定されていない場合（ステップＳ７４のＮＯ）、処理部２００はスクリプトデータ５２６を参照して、現時点が該当するタイミングにおいて該当敵ＮＰＣに設定されている移動の動作パラメータ５２６ｄから始点Ｐｓの設定を読み出し、始点Ｐｓの経由候補点を暫定ルートデータ５４０の始点ノード５４０ａに設定する（ステップＳ７７）。反対に、処理対象とされる敵ＮＰＣに確定ルートデータ５４２が既に設定されている場合には（ステップＳ７４のＹＥＳ）、第１実施形態のステップＳ８０〜Ｓ８４に代えて、処理部２００は処理対象とされる敵ＮＰＣの現在位置に最寄りの経由候補点（ノード）を始点ノード５４０ａに設定する処理を行う（ステップＳ７８）。
【０１２９】
次いで、処理部２００は、スクリプトデータ５２６を参照して、現時点が該当するタイミングにおいて該当敵ＮＰＣに設定されている移動の動作パラメータ５２６ｄから複数の終点候補（図２０で言うところの第１順位終点Ｐｅ１〜第３順位終点Ｐｅ３）の設定を読み出し、各終点候補を中心とした友軍検索範囲３６に停止している他の敵ＮＰＣの数を算出する（ステップＳ８６）。そして、算出した他の敵ＮＰＣの数が所定の基準値（例えば、「３」）未満で、且つより優先順位の高い終点候補の経由候補点の識別情報を終点ノード５４０ｂに格納して終点Ｐｅに設定する（ステップＳ８８）。
以下、第１実施形態の移動ルート探索処理と同様に、暫定ルートを決定した後（ステップＳ９０）、ルート短縮補正処理を実行する（ステップＳ９２〜Ｓ１０６）。
【０１３０】
このように、本実施形態によれば、複数の終点候補の中から、例えば、ゲーム進行状況に応じて移動ルート探索の終点Ｐｅを自動的に選択することができる。例えば、他の敵ＮＰＣの配置条件を元に、他の敵ＮＰＣが密集する位置を迂回するようにすると、敵ＮＰＣが適当に分散してプレーヤキャラクタを攻撃するように、自然な戦闘移動行動をするように制御することができる。
【０１３１】
尚、ここで言う「ゲーム進行状況」としては、その他、プレーヤキャラクタのヒットポイントの残数、プレーヤキャラクタの所持している武器の種類やアイテムの種類、プレーヤキャラクタの種類、プレイ難易度を設定することができる。
【０１３２】
また、ステップＳ８８では、他の敵ＮＰＣの数が基準未満とする終点候補を選択する構成としているが、反対に基準値以上の終点候補を選択する構成として、意図的に処理対象とする敵ＮＰＣを他の敵ＮＰＣのところに集合するように移動させることもできる。このケースは、敵ＮＰＣが集団で移動する性質を有するある種の昆虫や小動物といった設定とする場合に効果的である。
【０１３３】
〔第４実施形態〕
次に、本発明を適用した第４実施形態について説明する。本実施形態は、基本的には第１〜第３実施形態の何れかと同様の構成を有するが、確定ルート２８を一度に求めるのでは無く、探索領域２２に設定されているエリア毎に求めることで、１制御サイクル内での処理負荷を軽減する点が異なる。尚、本実施形態についての説明では、第１又は第２実施形態と同様の構成要素については同じ符号を付与し、構成の差異についてのみ説明する。
【０１３４】
図２２は、本実施形態における移動ルート探索の原理を説明するための図である。本実施形態では、床面メッシュデータ５１４には複数のエリア４０（４０−１〜４０−４）が設定されており、探索領域２２の設定時にエリアの設定が受け継がれる。各エリア４０の境界は床面メッシュデータ５１４のポリゴンの境界に沿って設定されており、エリア４０の境界上のどこかには必ず経由点が存在する。
【０１３５】
そして、暫定ルート２６は、第１〜第３実施形態の何れかと同様にして、探索領域２２の全域を対象にして始点Ｐｓ〜終点Ｐｅを結ぶように一度に決定されるが、確定ルート２８はプレーヤキャラクタの現在位置が該当するエリア単位で決定される。
【０１３６】
同図の例で言うと、プレーヤキャラクタがエリア４０−１内を移動している間は、当該エリアに含まれる経由候補点の内、経由順番号ｎが最も小さい点である始点Ｐｓから、経由順番号ｎが最も大きい経由順番号ｎ＝６の経由候補点までを対象として確定ルート２８の第１の部分が決定される。つまり、第１実施形態と同様に暫定ルート２６の終点側からルート逆方向に検索直線Ｌｘを設定する方式では経由順番号ｎ＝６を検索開始点とし、第２実施形態と同様に始点側からルート順方向に検索直線Ｌｘを設定する方式では始点Ｐｓ（経由順番号ｎ＝１）を検索開始点とする。
【０１３７】
そして、プレーヤキャラクタがエリア４０−２に到達すると、暫定ルート２６の経由候補点の内、今度はエリア４０−２内に位置する経由候補点を対象として確定ルート２８の第２の部分を決定する。更にプレーヤキャラクタがエリア４０−３に到達すると、今度は暫定ルート２６の経由候補点の内、今度はエリア４０−３内に位置する経由候補点を対象として確定ルート２８の第３の部分を決定し、最終的に終点Ｐｅに到達する。
【０１３８】
尚、同図ではエリア４０の形状を矩形としているが、六角形や多角形などその他の形状であっても良く、ゲーム内容に応じて適宜設定することができる。また、敵ＮＰＣが飛行移動するなど３次元的な移動が可能な場合には、予めエリア４０が設定されている３次元の格子状に経由候補点を定義した探索領域データを別途用意しておいてこれを用いれば良い。
【０１３９】
図２３は、本実施形態における移動ルート探索処理（移動ルート探索処理Ｄ）の流れを説明するためのフローチャートである。同処理は、基本的には第１実施形態〜第３実施形態の何れかの移動ルート探索処理と同様に実現されるが、ここでは第１実施形態を基にして説明する。
【０１４０】
移動ルート探索処理Ｄは次のような特徴を有する。
処理対象とされる敵ＮＰＣに確定ルートデータ５４２が設定されている場合（ステップＳ７４のＹＥＳ）、第１実施形態のステップＳ８０〜Ｓ８４に代えて、処理部２００は処理対象とされる敵ＮＰＣの現在位置に最寄りの経由候補点を始点ノード５４０ａに設定する処理を行う（ステップＳ７８）。そして、処理対象とされる敵ＮＰＣが存在するエリア内の暫定ルート中、最も経由順番号ｎの大きい経由候補点を終点ノード５４０ｂに設定する（ステップＳ８５）。また、第１実施形態のステップＳ９２に代えて、処理部２００はカウンタの値Ｎを暫定ルート２６の終点ノード５４０ｂの経由順番号に設定する（ステップＳ９１）。
以下、第１実施形態の移動ルート探索処理と同様に、暫定ルートを決定した後（ステップＳ９０）、ルート短縮補正処理Ｄを実行する（ステップＳ９２〜Ｓ１０６）。
【０１４１】
このように、本実施形態によれば、確定ルート２８をプレーヤキャラクタの進行ルート前方の限定領域に限って求めることができる。よって、一の制御サイクル（図１３のステップＳ８〜Ｓ５０）における処理負荷を軽減することができる。
また、時間当たりの状況変化の激しいゲーム内容で有る場合、探索領域２２全域を対象に確定ルート２８を求めたとしても、その確定ルート２８が有効である時間が短くなる可能性が有り演算負荷対効果が低くなるが、本実施形態ではその心配がない。
【０１４２】
尚、本実施形態では床面メッシュ５１４のポリゴンの境界と各エリア４０の境界とを一致するように設定することで、エリア４０の境界上に経由点が存在するように構成されているが、両者が異なる構成としても良い。
その場合、ルート短縮補正処理Ｄによって処理対象敵ＮＰＣが存在するエリア４０内の確定ルート２８を設定した後、当該エリア４０に含まれる最も経由順番号ｎが最も大きい経由点が、経由順番号ｎ＋１の経由点の存在する次のエリア４０に達しているか否かを判定するステップを加える。例えば、図２２の例では経由順番号ｎ＝６の経由点が、エリア４０−２に達しているかを判定する。そして、このステップで否定判定された場合には、次の確定ルート２８に経由順番号ｎの経由点から、経由順番号ｎ＋１の経由点までの部分を自動的に追加するステップを加えると良い。
【０１４３】
〔第５実施形態〕
次に、本発明を適用した第５実施形態について説明する。本実施形態は、基本的には第１〜第４実施形態の何れかと同様の構成を有するが、敵ＮＰＣが移動や攻撃などの行動を自動で行う、所謂「ＡＩ制御」の形態を含む点が異なる。尚、本実施形態についての説明では、第１〜第４実施形態と同様の構成要素については同じ符号を付与し、ここでは構成の差異についてのみ説明する。
【０１４４】
図２４〜図２７は、本実施形態における敵ＮＰＣのＡＩ制御における移動制御の特徴を説明するための図である。
【０１４５】
本実施形態では、スクリプトデータ５２６によってあるタイミングの間、敵ＮＰＣをＡＩ制御の対象として設定することができる。また、本実施形態における敵ＮＰＣにはキャラクタの属性を設定することができる。ここで言う「キャラクタ属性」とは、兵士の好む戦闘形態を示す。本実施形態では、近接戦闘を得意とする近接型、防御力やヒットポイントが高く障害物の影に隠れずに戦闘する耐久型、障害物に隠れながら徐々にプレーヤキャラクタに接近しようとする標準型が設定される。勿論、キャラクタ属性はゲーム内容に応じて適宜設定可能である。
【０１４６】
また、床面メッシュデータ５１４で定義される領域には、予め敵ＮＰＣがＡＩ制御で移動制御される際に始点Ｐｓ及び終点Ｐｅの候補となる目的地点Ｐｍが随所に設定されている。そして、ＡＩ制御で移動制御する際には、処理対象とされる敵ＮＰＣの現在位置の目的地点Ｐｍが始点Ｐｓにされ、当該敵ＮＰＣよりプレーヤキャラクタの方向にあって、且つ仮想カメラＣＭの撮影範囲に有る目的地点Ｐｍを選択候補とし、その中から終点Ｐｅを選択する。
【０１４７】
図２４に示すように、ＡＩ制御における移動制御の第１の特徴として、移動の終点Ｐｅの選択に際し、選択候補となる目的地点Ｐｍ（同図の例では目的地点Ｐｍ−１〜Ｐｍ−３）から他の敵ＮＰＣ５が終点Ｐｅとしている点（同図の例では目的地点Ｐｍ−１）を除外する。これによって、一箇所に複数の敵ＮＰＣが集まってしまうといった不自然な状態を防ぐことができる。
【０１４８】
図２５に示すように、第２の特徴として、各目的地点Ｐｍには、キャラクタ属性毎に対応する相性を表すものとして、選択のための重み付け係数が設定されている。例えば、処理対象とされる敵ＮＰＣ４が「近接型」で、選択候補とされる目的地点Ｐｍ−１〜Ｐｍ−３に同図に示すようにキャラクタ属性別重み付け係数が設定されている場合、同重み付け係数の高い目的地点Ｐｍ−２ほど選択される可能性が高くなる。
【０１４９】
図２６は、第３の特徴を説明するための図であって、ゲーム空間を俯瞰した概念図である。処理対象とされる敵ＮＰＣ４が白三角形、他の敵ＮＰＣ５が黒三角形、目的地点Ｐｍが小黒丸、障害物２０が網掛け矩形として表示されている。
【０１５０】
第３の特徴として、プレーヤキャラクタとの相対位置関係に応じてキャラクタ属性別重み付け係数を補正し、終点Ｐｅの選択候補から目的地点Ｐｍを除外する。具体的には、プレーヤキャラクタ（図中では仮想カメラＣＭで図示）を基準として、重み付け係数補正領域５０と、選択対象除外領域５２が設定される。
【０１５１】
重み付け係数補正領域５０は、プレーヤキャラクタの視界方向前方、つまりは仮想カメラＣＭの撮影方向前方に扇状に設定される領域である。重み付け係数補正領域５０に入る目的地点Ｐｍのキャラクタ属性別重み付け係数は、終点Ｐｅの選択過程において所定値（例えば、プラス１．０）だけ高められる。これによって、近接型のキャラクタ属性を有する敵ＮＰＣが、プレーヤキャラクタに近接した目的地点Ｐｍを選択するように工夫されている。
【０１５２】
選択対象除外領域５２は、プレーヤキャラクタに比較的近距離で、且つ視界範囲外の領域をカバーするように設定されている。選択対象除外領域５２に入る目的地点Ｐｍは、終点Ｐｅの選択過程において選択候補から除外される。これによって、ＡＩ制御される敵ＮＰＣが仮想カメラＣＭから見えない場所に移動してしまうことを防ぐ事ができる。
【０１５３】
尚、重み付け係数補正領域５０及び選択対象除外領域５２は、同図に示すように平面的な設定に限らず、敵ＮＰＣが３時限的に配置され得る場合には、立体的な領域として設定することができる。また、選択対象除外領域５２に代えて、第２の重み付け係数補正領域を設定し、当該補正領域に入る目的地点Ｐｍのキャラクタ属性別重み付け係数を、終点Ｐｅの選択過程において強制的に「０」にして選択され難く構成しても良い。
【０１５４】
図２７（表記例は図２６に同じ）に示すように、第４の特徴として、終点Ｐｅの選択過程において、仮想カメラＣＭに設定される複数の分割撮影領域５４（５４ａ，５４ｂ，５４ｃ）毎に他の敵ＮＰＣ５の分布数が算出され、他の敵ＮＰＣ５の分布度合が「粗」の分割撮影領域内に位置する目的地点Ｐｍが優先的に選択されるように分布重み付け係数が追加される。尚、分布数のカウント対象とする敵ＮＰＣ５は、停止中の敵ＮＰＣ、移動中の敵ＮＰＣの何れか又は両方を適宜設定することができる。
【０１５５】
同図の例では、仮想カメラＣＭの撮影範囲５６には、左右方向に分割された３つの分割撮影領域５４ａ，５４ｂ，５４ｃが設定されている。そして、各分割撮影領域５４ａ，５４ｂ，５４ｃそれぞれに含まれる他の敵ＮＰＣ５の分布数がカウントされ、カウント数の小さい分割撮影領域５４ｂに含まれる目的地点Ｐｍに付与される分布重み付け係数が高く、カウント数が大きくなるほど分布重み付け係数が小さくなるように設定されている。従って、終点Ｐｅの選択過程においては中央の分割撮影領域５４ｂに含まれる目的地点Ｐｍほど選択され易くなる。これによって、ゲーム画面上、敵ＮＰＣが適当に分散されるように敵ＮＰＣの移動を制御することができる。換言すると、敵ＮＰＣが、あたかもより分散してプレーヤキャラクタを攻撃するように自律的に自分の進むべき場所を判断する戦闘移動動作をしているように制御することができる。
【０１５６】
図２８は、本実施形態における機能構成例を示す機能ブロック図である。第１実施形態の機能構成と比較すると、記憶部５００のマップデータ５１２には、床面メッシュデータ５１４で定義されるポリゴンモデルの各辺の中点（経由候補点に対応）の中から目的地点Ｐｍとすることのできる点の情報を格納する目的地点設定データ５２２が格納されている。
【０１５７】
図２９は、目的地点設定データ５２２のデータ構成例を示す図である。同図に示すように、例えば経由候補点（ノード）の識別情報が格納されるノードＩＤ５２２ａと対応づけてキャラクタ属性別重み付け係数５２２ｂを格納する。
【０１５８】
また、図２８に示すように、キャラクタ初期設定データ５２４では、敵ＮＰＣそれぞれについてキャラクタ属性を定義しており、ＮＰＣステータスデータ５３０を生成する際には、これを読み出してキャラクタ属性５３５として格納している。
【０１５９】
また、本実施形態におけるスクリプトデータ５２６では、図３０に示すように、オブジェクト５２６ｂが敵ＮＰＣで有る場合、動作５２６ｃの設定にＡＩ制御（図中「ＡＩ」表記）を設定することができる。
【０１６０】
図３１は、本実施形態における移動ルート探索処理（移動ルート探索処理Ｅ）の流れを説明するためのフローチャートである。同処理は基本的には第１実施形態の移動ルート探索処理と同様に実現されるが、ステップＳ７２の次に、処理部２００はスクリプトデータ５２６を参照して、処理対象とされる敵ＮＰＣが現在のタイミングでＡＩ制御の対象となっているかを判定する（ステップＳ７３ａ）。そして、ＡＩ制御の対象である場合（ステップＳ７３ａのＹＥＳ）、処理部２００は現在位置を始点ノード５４０ａに設定して（ステップＳ７３ｂ）、終点設定処理を実行する（ステップＳ７３ｃ）。
【０１６１】
図３２は、終点設定処理の流れを説明するためのフローチャートである。
同処理では先ず、処理部２００は、現在のプレイ中のゲームステージに対応するマップデータ５１２の目的地点設定データ５２２を参照して、処理対象とされる敵ＮＰＣの現在位置よりもプレーヤキャラクタの側にある目的地点Ｐｍであって、仮想カメラＣＭの現在の撮影範囲内に存在する目的地点Ｐｍを終点Ｐｅの選択候補として抽出する（ステップＳ１９０）。
【０１６２】
次に、全ての他の敵ＮＰＣのＮＰＣステータスデータ５３０の暫定ルートデータ５４０を参照して、選択候補から他の敵ＮＰＣの終点ノード５４０ｂと一致する目的地点Ｐｍを除外し（ステップＳ１９２）、選択対象除外領域５２の中に位置する目的地点Ｐｍを選択候補から除外する（ステップＳ１９４）。
【０１６３】
次いで、処理部２００は目的地点設定データ５２２を参照して、選択候補とされる目的地点Ｐｍそれぞれについてキャラクタ属性別重み付け係数を読み出し（ステップＳ１９６）、重み付け係数補正領域５０の内に位置する目的地点Ｐｍのキャラクタ属性別重み付け係数を補正する（ステップＳ１９８）。
【０１６４】
次いで、選択候補の目的地点Ｐｍ毎に分布重み付け係数を算出し（ステップＳ２００）、キャラクタ属性別重み付け係数と分布重み付け係数との和を算出する（ステップＳ２０２）。そして、算出された重み付け係数の和が最大となる選択候補とされる目的地点Ｐｍの識別情報を暫定ルートデータ５４０の終点ノード５４０ｂに格納して、当該目的地点Ｐｍを終点Ｐｅに設定し（ステップＳ２０４）、終点設定処理を終了する。
【０１６５】
終点設定処理を終了したならば、図３１のフローチャートに戻る。そして、暫定ルート２６を決定して（ステップＳ９０）、ルート短縮処理を実行して（ステップＳ９２〜Ｓ１０６）、移動ルート探索処理Ｅを終了する。
【０１６６】
よって、本実施形態によれば、敵ＮＰＣを所定の思考ルーチンに則った自動制御、所謂ＡＩ制御で制御する場合であっても、他の敵ＮＰＣの分布状況に応じて移動の終点Ｐｅを自動選択し、プレーヤキャラクタにより分散しながら接近して行く戦闘行動をとらせることができる。これは、訓練された兵士ならば取るべき行動内容であり、ガンシューティングゲームに登場する敵ＮＰＣをより本物らしく振る舞わせる事ができる。
【０１６７】
また、敵ＮＰＣにキャラクタ属性を設定するとともに、各目的地点Ｐｍにキャラクタ属性に対応する重み付け係数を設定し、終点Ｐｅの選択過程において同係数をもとに優先的な選択処理を行うことで、キャラクタの属性に応じて適当な終点Ｐｅを自動選択することができる。例えば、キャラクタ属性を戦闘タイプで型分けする場合には、各敵ＮＰＣの装備や特性の観点からより効果的で攻撃的な移動ルートを辿るように移動制御することができる。よって、より一層、敵ＮＰＣの戦闘行動をより本物らしく見せることができる。
【０１６８】
これに関連して更に、プレーヤキャラクタ或いはそれを代表する点（例えば、本実施形態における仮想カメラＣＭの代表点）と、目的地点Ｐｍとの相対位置関係に応じて重み付け係数を補正することができる。よって、より正確に敵ＮＰＣにとっての攻撃対象に向けて近づく移動ルートを選択できる。
【０１６９】
また、目的地点Ｐｍの選択過程においては、仮想カメラＣＭの撮影範囲を複数の領域に分割し、領域毎の処理対象とされる敵ＮＰＣ以外のその他の敵ＮＰＣの分布数に基づいて、各領域内の選択候補の目的地点Ｐｍに分布重み付け係数を設定し、他の敵ＮＰＣの分布度合の低い領域内の目的地点Ｐｍがより選択されやすくすることができる。よって、仮想カメラＣＭで撮影される撮影範囲内で、敵ＮＰＣの分布が偏らないようにすることができる。これは、見かけ上訓練された兵士ならば攻撃対象を取り囲むように適当に分散しながら攻めてくる行動形態を模擬することとなり、ゲームのリアリティを高める効果を生む。
【０１７０】
〔変形例〕
以上、本発明を適用した第１〜第５実施形態について説明したが、本発明の適用形態はこれらに限定されるものではなく適宜構成要素の追加・省略・変更を施すことができる。
【０１７１】
例えば、上記実施形態ではガンシューティングゲームを実行するケースを例に挙げたが、ＮＰＣが登場するゲームであれば、ＲＰＧや戦略シミュレーションゲームなどその他のジャンルのゲームにも同様に適用できる。
【０１７２】
また。ハードウェアは業務用のガンシューティングゲーム装置１１００に限らず、家庭用ゲーム装置や携帯型ゲーム装置などを用いることができる。
例えば、図３３に示すように、家庭用ゲーム装置１２００は、ゲーム装置本体１２０１と、ゲームコントローラ１２３０と、ビデオモニタ１２２０とを備える。ゲーム装置本体１２０１は、例えばＣＰＵや画像処理用ＬＳＩ、ＩＣメモリ等が実装された制御ユニット１２１０と、光学ディスク１２０２やメモリカード１２０４といった情報記憶媒体の読み取り装置１２０６，１２０８とを備える。そして、家庭用ゲーム装置１２００は、光学ディスク１２０２やメモリカード１２０４からゲームプログラム及び各種設定データを読み出し、ゲームコントローラ１２３０に為される操作入力に基づいて制御ユニット１２１０が各種のゲーム演算を実行する。
【０１７３】
制御ユニット１２１０は、ＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）及びＤＳＰ（Digital Signal Processor）などの各種マイクロプロセッサ、ＡＳＩＣ(Application Specific Integrated Circuit)、ＩＣメモリなどの電気電子機器を備え家庭用ゲーム装置１２００の各部を制御する。また、制御ユニット１２１０は、インターネットやＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）と言った通信回線１と接続して外部装置との間でデータ通信を実現する通信装置１２１２を備える。
【０１７４】
ゲームコントローラ１２３０は、選択の決定やキャンセル、タイミングの入力などに用いられるプッシュボタン１２３２と、図で言うところの上下左右の各方向を単独入力するための方向入力キー１２３４と、右アナログレバー１２３６Ｒと、左アナログレバー１２３６Ｌとを備える。ガンシューティングゲームを実行する場合では、プッシュボタン１２３２でプレーヤキャラクタによる射撃のトリガー操作、使用武器の切換などの操作を入力し、左アナログレバー１２３６Ｌの照準６の位置を上下左右に移動させることができる。
【０１７５】
制御ユニット１２１０は、ゲームコントローラ１２３０から受信した検出信号や操作入力信号に基づいてゲーム画像やゲーム音を生成する。そして、生成されたゲーム画像やゲーム音は、信号ケーブル１２０９で接続されたビデオモニタ１２２０（ディスプレイモニタ）に出力される。ビデオモニタ１２２０には、画像を表示するディスプレイ１２２２と音声を放音するスピーカ１２２４とが備えられており、プレーヤはディスプレイ１２２２に映し出されるゲーム画像を見ながら、スピーカ１２２４から放音されるゲーム音を聞きつつゲームをプレイすることができる。
【図面の簡単な説明】
【０１７６】
【図１】ガンシューティングゲーム装置の構成例を説明するための外観図。
【図２】ゲーム画面の例を示す図。
【図３】プレーヤキャラクタと仮想カメラの相対位置関係を示す図。
【図４】敵ＮＰＣのスクリプトによる移動制御の例を示す概念図。
【図５】敵ＮＰＣの移動ルート探索の原理を説明するための図。
【図６】敵ＮＰＣの移動ルート探索の原理を説明するための図。
【図７】移動ルートの再検索が実行される第１のケースを示す図。
【図８】移動ルートの再検索が実行される第２のケースを示す図。
【図９】第１実施形態における機能構成の一例を示す機能ブロック図。
【図１０】スクリプトデータのデータ構成例を示す図。
【図１１】暫定ルートデータのデータ構成例を示す図。
【図１２】確定ルートデータのデータ構成例を示す図。
【図１３】主たる処理の流れを説明するためのフローチャート。
【図１４】第１実施形態における移動ルート探索処理の流れを説明するためのフローチャート。
【図１５】移動制御処理の流れを説明するためのフローチャート。
【図１６】迂回ルート探索処理の流れを説明するためのフローチャート。
【図１７】第２実施形態における移動ルート探索の原理を説明するための図。
【図１８】第２実施形態における移動ルート探索処理（移動ルート探索処理Ｂ）の流れを説明するためのフローチャート。
【図１９】第３実施形態におけるスクリプトデータのデータ構成例を示す図。
【図２０】第３実施形態における終点選択の原理を説明するための図。
【図２１】第３実施形態における移動ルート探索処理（移動ルート探索処理Ｃ）の流れを説明するためのフローチャート。
【図２２】第４実施形態における確定ルート探索の原理を説明するための図。
【図２３】第４実施形態における移動ルート探索処理（移動ルート探索処理Ｄ）の流れを説明するためのフローチャート。
【図２４】第５実施形態における移動ルート探索の第１の特徴を説明するための図。
【図２５】第５実施形態における移動ルート探索の第２の特徴を説明するための図。
【図２６】第５実施形態における移動ルート探索の第３の特徴を説明するための図。
【図２７】第５実施形態における移動ルート探索の第４の特徴を説明するための図。
【図２８】第５実施形態における機能構成の一例を示す機能ブロック図。
【図２９】目的地点設定データのデータ構成例を示す図。
【図３０】第５実施形態におけるスクリプトデータのデータ構成例を示す図。
【図３１】第５実施形態における移動ルート探索処理（移動ルート探索処理Ｅ）の流れを説明するためのフローチャート。
【図３２】終点設定処理の流れを説明するためのフローチャート。
【図３３】家庭用ゲーム装置の構成例を示す図。
【符号の説明】
【０１７７】
２  プレーヤキャラクタ
４  敵ＮＰＣ
５  他の敵ＮＰＣ
６  照準
２０  障害物
２２  探索領域
２４  移動不可能領域
２６  暫定ルート
２８  確定ルート
３０、３２  他の敵ＮＰＣ
３６  友軍探索範囲
４０  エリア
５０  重み付け係数補正領域
５２  選択対象除外領域
５４ａ，５４ｂ，５４ｃ  分割撮影領域
１００  操作入力部
２００  処理部
２１０  ゲーム演算部
２１２  照準位置判定部
２１４  プレーヤキャラクタ動作制御部
２１６  ＮＰＣ動作制御部
２１８  移動ルート探索部
５００  記憶部
５０４  ゲームプログラム
５０６  ＮＰＣ制御プログラム
５１０  ゲーム空間設定データ
５１２  マップデータ
５１４  床面メッシュデータ
５１６  障害物配置データ
５２２  目的地点設定データ
５２２ａ  ノードＩＤ
５２２ｂ  キャラクタ属性別重み付け係数
５２６  スクリプトデータ
５２８  着弾履歴データ
５３０  ＮＰＣステータスデータ
５４０  暫定ルートデータ
５４０ａ  始点ノード
５４０ｂ  終点ノード
５４２  確定ルートデータ
５４４  探索領域データ
５４４ｂ  ノードＩＤ
５４４ｄ  移動不可能領域フラグ
５４６  検索開始ノード
５４８  検索先ノード
１１００  ガンシューティングゲーム装置
１１２２  画像表示装置
１１３０  ガン型コントローラ
１１５０  制御ユニット
１１５２  フラッシュメモリ
Ｐｓ  始点
Ｐｅ  終点
Ｐｍ  目的地点
Ｌｘ（ｘは添字）  検索直線
【図１】
2010068872.tif 000003
【図２】
2010068872.tif 000004
【図３】
2010068872.tif 000005
【図４】
2010068872.tif 000006
【図５】
2010068872.tif 000007
【図６】
2010068872.tif 000008
【図７】
2010068872.tif 000009
【図８】
2010068872.tif 000010
【図９】
2010068872.tif 000011
【図１０】
2010068872.tif 000012
【図１１】
2010068872.tif 000013
【図１２】
2010068872.tif 000014
【図１３】
2010068872.tif 000015
【図１４】
2010068872.tif 000016
【図１５】
2010068872.tif 000017
【図１６】
2010068872.tif 000018
【図１７】
2010068872.tif 000019
【図１８】
2010068872.tif 000020
【図１９】
2010068872.tif 000021
【図２０】
2010068872.tif 000022
【図２１】
2010068872.tif 000023
【図２２】
2010068872.tif 000024
【図２３】
2010068872.tif 000025
【図２４】
2010068872.tif 000026
【図２５】
2010068872.tif 000027
【図２６】
2010068872.tif 000028
【図２７】
2010068872.tif 000029
【図２８】
2010068872.tif 000030
【図２９】
2010068872.tif 000031
【図３０】
2010068872.tif 000032
【図３１】
2010068872.tif 000033
【図３２】
2010068872.tif 000034
【図３３】
2010068872.tif 000035