以下、本発明の実施の形態に係るゲームプログラムおよびゲームシステムについて、図面を参照しつつ説明する。
[ハードウェア構成]
図1は、ゲームシステム1のハードウェア構成を示すブロック図である。ゲームシステム1は、ゲーム装置2及びサーバ装置3を備えている。ゲーム装置2は、他のゲーム装置2及びサーバ装置3との間で、インターネット又はLANなどの通信ネットワークNWを介して互いに通信可能である。このゲーム装置2は、その動作を制御するコンピュータであるCPU10を備え、このCPU10にはバス11を介して、ディスクドライブ12、メモリカードスロット13、記憶部(プログラム記憶部)を成すHDD14及びROM15、並びにRAM16が接続されている。
ディスクドライブ12には、DVD−ROM等のディスク型記録媒体30が装填可能である。該ディスク型記録媒体30には、本実施の形態に係るゲームプログラム30a及びゲームデータ30bが記録されている。このゲームデータ30bには、各キャラクタや仮想空間の形成に必要なデータ、及び、ゲーム中で再生されるサウンドデータなど、本ゲームの進行に必要な各種のデータが含まれる。また、メモリカードスロット13にはカード型記録媒体31が装填でき、ゲームの途中経過等のプレイ状況を示すセーブデータを、CPU10からの指示に応じて記録可能である。
HDD14はゲーム装置2が内蔵する大容量記録媒体であって、ディスク型記録媒体30から読み込んだゲームプログラム30a及びゲームデータ30b、更にはセーブデータ等を記録する。ROM15は、マスクROM又はPROMなどの半導体メモリであり、ゲーム装置2を起動する起動プログラムや、ディスク型記録媒体30が装填されたときの動作を制御するプログラムなどを記録している。RAM16は、DRAM又はSRAMなどから成り、CPU10が実行すべきゲームプログラム30aや、その実行の際に必要になるゲームデータ30bなどを、ゲームのプレイ状況に応じてディスク型記録媒体30又はHDD14から読み込んで一時的に記録する。
また、CPU10には更に、バス11を介してグラフィック処理部17、オーディオ合成部20、無線通信制御部23、及びネットワークインタフェース26が接続されている。
このうちグラフィック処理部17は、CPU10の指示に従って仮想ゲーム空間や各キャラクタ等を含むゲーム画像を描画する。すなわち、仮想空間中に設定した仮想カメラの位置、向き、ズーム率(画角)等を調整し、仮想空間を撮影する。そして、撮影した画像をレンダリング処理し、表示用の二次元のゲーム画像を生成する。また、グラフィック処理部17には、ビデオ変換部18を介して外部のディスプレイ(表示部)19が接続されている。グラフィック処理部17にて描画されたゲーム画像は、ビデオ変換部18において動画形式に変換され、このディスプレイ19にて表示される。
オーディオ合成部20は、CPU10の指示に従って、ゲームデータ30bに含まれるデジタル形式のサウンドデータを再生及び合成する。また、オーディオ合成部20にはオーディオ変換部21を介して外部のスピーカ22が接続されている。従って、オーディオ合成部20にて再生及び合成されたサウンドデータは、オーディオ変換部21にてアナログ形式にデコードされ、スピーカ22から外部へ出力される。その結果、本ゲームをプレイしているユーザは、再生されたサウンドを聴取することができる。
無線通信制御部23は、2.4GHz帯の無線通信モジュールを有し、ゲーム装置2に付属するコントローラ24との間で無線により接続され、データの送受信が可能となっている。ユーザは、このコントローラ24に設けられたボタン等の操作部を操作することにより、ゲーム装置2へ信号を入力することができ、ディスプレイ19に表示されるプレイヤキャラクタの動作を制御する。
ネットワークインタフェース26は、インターネット又はLANなどの通信ネットワークNWに対してゲーム装置2を接続するものであり、他のゲーム装置2及びサーバ装置3との間で通信可能である。そして、ゲーム装置2を、通信ネットワークNWを介して他のゲーム装置2と接続し、互いにデータを送受信することにより、同一の仮想空間内で同期して複数のプレイヤキャラクタを表示させることができる。従って、複数人が共同してゲームを進行させるマルチプレイが可能になっている。
[ゲームの概要]
次に、図2乃至図6を参照して、図1に示すゲーム装置2が実行するゲームプログラム30aによって実現されるゲームの概要について説明する。
図2乃至図6の各図の(a)は、仮想空間Sを上方から見た平面模式図であり、各図の(b)は、仮想空間Sを側方から見た模式図である。なお、各図の(b)は、仮想空間Sを、プレイヤキャラクタPと敵キャラクタNとを通る鉛直面に対して垂直な方向から見たものである。図2乃至図6に示すように、本ゲームでは、所定の広がりを有する仮想空間Sが設定されており、該仮想空間S内には、コントローラ24の操作によりユーザが直接的にその動作を制御することのできるプレイヤキャラクタPが存在している。また、同じ仮想空間S内には、ユーザの操作によってはその動作を直接的に制御することができず、CPU10によって動作が制御されるノンプレイヤキャラクタ(NPC)であるモンスター等の敵キャラクタNも出現するようになっている。また、仮想空間S内においてプレイヤキャラクタP近傍の所定位置には、仮想空間Sを撮像するための仮想カメラ(図示せず)が配置されており、ゲーム装置2のディスプレイ19には、該仮想カメラにより撮像された仮想空間Sの画像が表示される。そして、本ゲームは、ユーザがディスプレイ19に表示された仮想空間Sを見ながら、プレイヤキャラクタPを操作して敵キャラクタNと戦闘を行い、これを討伐するアクションゲームになっている。なお、図2乃至図6には、敵キャラクタNとプレイヤキャラクタPとを結ぶ仮想線分Lが一点鎖線で示されている。
本ゲームでは、各図の(a)に示すように、仮想空間Sには、岩や木などの様々なオブジェクトAが適宜配置されている。なお、各図の(a)の例では、3つのオブジェクトA(B,C1,C2)が示されており、オブジェクトBは茂みであり、オブジェクトC1は木であり、オブジェクトC2は岩である。
また、図2乃至図6に破線で示すように、仮想空間S内で敵キャラクタNから所定方向に広がる領域を、敵キャラクタNの視界Vとして設定されている。本実施形態は、敵キャラクタNの頭部に位置する所定のポイントM1から敵キャラクタNの頭部の向きに錘状(例えば、円錐状、角錐状など)に広がる領域を、敵キャラクタNの視界Vとして設定している。また、図2乃至図6で示すように、敵キャラクタNの視界Vは、オブジェクトAにより遮られるように設定されている。言い換えれば、敵キャラクタNから見てオブジェクトAの裏側を敵キャラクタNは見ることができない。
また、敵キャラクタNは、プレイヤキャラクタPを見つける前と後とで行動を変えるように設定されている。図2は、敵キャラクタNがプレイヤキャラクタPを見つけていないときの状況を示しており、図3は、敵キャラクタNがプレイヤキャラクタPを見つけているときの状況を示している。図2に示すように、敵キャラクタNがプレイヤキャラクタPを見つけていないとき(プレイヤキャラクタPを発見する前)、敵キャラクタNは、歩く、周囲を見渡す等の通常の行動をとる状態(以下、「通常状態」という。)にある。
図3に示すように、プレイヤキャラクタPが敵キャラクタNの視界Vに入ると、敵キャラクタNがプレイヤキャラクタPの位置を認識した状態(以下、「位置認識状態」という。)となる。敵キャラクタNは、プレイヤキャラクタPの位置を認識すると、攻撃を仕掛ける姿勢をとる、実際に攻撃をするなどの戦闘行動をとる。こうして、プレイヤキャラクタPと敵キャラクタNの戦闘が開始されると、プレイヤキャラクタPは、ユーザの操作に応じて、敵キャラクタNの攻撃を回避する、武器を使用して敵キャラクタNを攻撃してダメージを与える、アイテム等を使用して戦闘におけるプレイヤキャラクタPのステータスを調える(例えば、武器の斬れ味の回復、プレイヤキャラクタPの体力値等の回復)などしながら、敵キャラクタNを討伐する。
また、本ゲームでは、敵キャラクタNがプレイヤキャラクタPを見失った状況が発生するように設定されている。図4は、敵キャラクタNがプレイヤキャラクタPを見失ったときの状況を示す。仮想空間Sに配置されたオブジェクトAには、敵キャラクタNがプレイヤキャラクタPを見失う状況を発生させる特定オブジェクトBと、敵キャラクタNがプレイヤキャラクタPを見失う状況を発生させない一般オブジェクトC1,C2が含まれる。プレイヤキャラクタP、敵キャラクタN及び特定オブジェクトBの関係で所定の条件を満たした場合に、見失いが発生し、敵キャラクタNは、位置認識状態からプレイヤキャラクタPを見失った状態(以下、「見失い状態」という。)へ移行することとなる。
本ゲームでは、見失い状態となった敵キャラクタNは、プレイヤキャラクタPを追跡する行動をとるように設定されている。図5は、見失ったプレイヤキャラクタPを敵キャラクタNが追跡する状況を示す。見失い状態となった敵キャラクタNは、後述する痕跡位置に基づいて、図5(a)に二点鎖線の矢印で示したように、徐々にプレイヤキャラクタPに近づいていくように設定されている。敵キャラクタNが見失い状態にある間は、プレイヤキャラクタPが敵キャラクタNから攻撃を受けることがない。このため、ユーザは、敵キャラクタNが見失い状態にある間に、敵キャラクタNから攻撃を受ける隙を生みがちであるアクション(例えばアイテムの使用など)をプレイヤキャラクタPに安全に行わせることができる。
図6は、敵キャラクタNがプレイヤキャラクタPを再発見した状況を示す。図6に二点鎖線で示したように、敵キャラクタNの視界Vに再度プレイヤキャラクタPが入ると、敵キャラクタNは見失い状態が解除され、見失い状態から位置認識状態へと移行し、追跡行動を止めて戦闘行動をとるようになる。その後、再び敵キャラクタNが見失い状態とならない限りは、位置認識状態が維持され、敵キャラクタNは戦闘行動を続けるか、逃避行動をとる。例えば、図6(a)及び(b)に示すように、敵キャラクタNがプレイヤキャラクタPを再発見した後に、プレイヤキャラクタPが一般オブジェクトC1に隠れたとしても見失いは生じないため、敵キャラクタNは戦闘行動を維持する。
[制御部の機能的構成]
図7は、ゲームシステム1が備えるゲーム装置2の機能的な構成を示すブロック図である。ゲーム装置2は、本発明のゲームプログラム30aを実行することで、仮想空間生成手段41、キャラクタ制御手段42、状態移行処理手段43、痕跡位置記憶手段44、及び追跡処理手段45として機能する。なお、このような各機能は、ハード的には図1に示すCPU10,HDD14,ROM15,RAM16,グラフィック処理部17,ビデオ変換部18、オーディオ合成部20、オーディオ変換部21、無線通信制御部23等から構成されている。
仮想空間生成手段41は、プレイヤキャラクタPが行動する舞台となる三次元の仮想空間Sを生成する。上述したように、仮想空間S内には、プレイヤキャラクタP、敵キャラクタNが存在する他、敵キャラクタN以外のNPC(味方となって一緒に敵キャラクタを攻撃するキャラクタや味方でも敵でもない村人などのキャラクタ)も存在する。また、仮想空間生成手段41は、上述したオブジェクトAを生成し、仮想空間S内に配置している。上述したように、オブジェクトAには、特定オブジェクトBと、一般オブジェクトC1,C2が含まれる。本実施形態では、特定オブジェクトBは、プレイヤキャラクタPが進入できる内部空間を有するように生成される。但し、特定オブジェクトBは、プレイヤキャラクタPが進入できる内部空間を有しないものであってもよい。
キャラクタ制御手段42は、プレイヤキャラクタ制御手段(以下、「PC制御手段」)42a及びノンプレイヤキャラクタ制御手段(以下、「NPC制御手段」)42bを含む。PC制御手段42aは、ユーザの操作に応じて、仮想空間S内でのプレイヤキャラクタPの動作を制御する。PC制御手段42aは、例えば、ユーザによるコントローラ24の操作に応じて、対戦時におけるプレイヤキャラクタPの移動、攻撃、防御、及びアイテムの使用等を含む各種動作を制御する。NPC制御手段42bは、仮想空間S内でのNPCの動作を制御する。NPC制御手段42bは、例えば、プレイヤキャラクタPと戦闘を行う敵キャラクタNの移動、攻撃、及び防御等の各種の動作を制御する。なお、NPC制御手段42bは、プレイヤキャラクタPと戦闘を行う敵キャラクタN以外のNPCの動作も制御する。
状態移行処理手段43は、敵キャラクタNの状態移行を処理する。本実施形態では、状態移行処理手段43は、上述した通常の行動をとる通常状態(図2)、戦闘行動をとる位置認識状態(図3,図6)、追跡行動をとる見失い状態(図4,図5)の間で敵キャラクタNの状態を移行させる。状態移行処理手段43は、位置認識判定手段43a及び見失い移行判定手段43bを含む。
位置認識判定手段43aは、敵キャラクタNが位置認識状態にない(例えば通常状態や見失い状態にある)場合に、敵キャラクタNの視界VにプレイヤキャラクタPが入っている否かを判定する(視界判定)。
さらに、位置認識判定手段43aは、敵キャラクタNの視界VにプレイヤキャラクタPが入った場合に、現在の状態から位置認識状態への敵キャラクタNの状態移行を決定する。本実施形態では、敵キャラクタNの視界VにプレイヤキャラクタPが入ったときに、敵キャラクタNが現在の状態から位置認識状態へ移行する。但し、敵キャラクタNの視界VにプレイヤキャラクタPが入っている状態が所定時間継続した場合に、現在の状態から位置認識状態へ移行することとしてもよい。敵キャラクタNの現在の状態が見失い状態である場合、位置認識判定手段43aは、見失い状態を解除する見失い解除判定手段として機能する。
見失い移行判定手段43bは、仮想空間S内における敵キャラクタNとプレイヤキャラクタPとを結ぶ仮想線分Lが特定オブジェクトBに接触又は交差するか否かを判定する(レイ判定)。仮想線分Lは、実際にディスプレイ19には表示されるものではなく、敵キャラクタNに位置する所定のポイントM1とプレイヤキャラクタPに位置する所定のポイントM2の位置情報から演算された線分である。図2乃至図6に示した例では、仮想線分Lが敵キャラクタNの頭部に位置する所定のポイントM1とプレイヤキャラクタPの頭部に位置する所定のポイントM2とを結んでいるが、これに限られず、例えば、仮想線分Lは、敵キャラクタNの胴体内部の特定のポイントとプレイヤキャラクタPの胴体内部の特定のポイントとを結ぶようにしてもよい。
仮想線分Lが特定オブジェクトBに接触又は交差するか否かは、どのような態様であってもよい。例えば、ポイントM1からポイントM2へと延びる直線(レイ)がオブジェクトAに接触又は交差するか否かを判定してもよいし、ポイントM2からポイントM1へと延びる直線(レイ)が特定オブジェクトBに接触又は交差するか否かを判定してもよい。なお、本実施形態では、特定オブジェクトBは、プレイヤキャラクタPが進入できる内部空間を有している。このため、特定オブジェクトBにプレイヤキャラクタPが入っている場合、特定オブジェクトB内にいるプレイヤキャラクタPと特定オブジェクトB外にいる敵キャラクタNとの間の仮想線分Lは、特定オブジェクトBに確実に交差するように設定されている。
さらに、見失い移行判定手段43bは、仮想線分Lが特定オブジェクトBに接触又は交差する場合に、位置認識状態から見失い状態への敵キャラクタNの状態移行を決定する。また、見失い移行判定手段43bは、仮想線分Lが特定のオブジェクトBに接触又は交差しない場合には、敵キャラクタNを位置認識状態に維持する。本実施形態では、仮想線分Lが特定オブジェクトBに接触又は交差する状態が所定時間継続した場合に、敵キャラクタNが位置認識状態から見失い状態へ移行する。但し、仮想線分Lが特定オブジェクトBに接触又は交差した時点で、敵キャラクタNが位置認識状態から見失い状態へ移行することとしてもよい。また、見失い状態に移行させる条件に、仮想線分Lが特定オブジェクトBに接触又は交差すること以外の条件を含めてもよい。例えば、見失い状態に移行させる条件に、プレイヤキャラクタPが、オブジェクトBの内部空間に進入するなどの特定の行動をとることや、その場にしゃがむなどの特定の姿勢をとっていることなども含めてもよい。
ここで、状態移行処理手段43による状態移行処理について、図8に示すフローチャートを参照しながら説明する。
図8に示すように、状態移行処理では、状態移行処理手段43が、はじめに初期の状態として、敵キャラクタNを通常状態に設定して仮想空間S内に配置させている(ステップS1、図2参照)。そして、状態移行処理手段43は、敵キャラクタNの視界VにプレイヤキャラクタPが入ったか否かを判定し、敵キャラクタNの視界VにプレイヤキャラクタPが入っていない場合には(ステップS2:No)、敵キャラクタNの通常状態を維持する。状態移行処理手段43は、敵キャラクタNの視界VにプレイヤキャラクタPが入った場合には(ステップS2:Yes、図3参照)、敵キャラクタNを通常状態から位置認識状態に移行する(ステップS3)。
位置認識状態に移行すると、状態移行処理手段43は、仮想線分Lが特定オブジェクトBに接触又は交差する状態が所定時間継続したか否かを判定する(ステップS4)。仮想線分Lが特定オブジェクトBに接触又は交差する状態が所定時間継続した場合(ステップS4:Yes)、敵キャラクタNを位置認識状態から見失い状態に移行する(ステップS5、図4参照)。そうでない場合は(ステップS4:No)、敵キャラクタNの位置認識状態を維持する。
見失い状態に移行すると、追跡処理手段45により追跡処理が実行され(ステップS6、図5参照)、敵キャラクタNは、見失ったプレイヤキャラクタPを追跡する。追跡処理について、詳細は後述する。
追跡処理が実行される間、状態移行処理手段43は、見失い状態にある敵キャラクタNの視界VにプレイヤキャラクタPが入ったか否かを判定する(ステップS7)。見失い状態にある敵キャラクタNの視界VにプレイヤキャラクタPが入った場合(ステップS7:Yes、図6参照)、状態移行処理手段43は、敵キャラクタNの見失い状態を解除して、敵キャラクタNを位置認識状態に再度移行する(ステップS3)。
見失い状態にある敵キャラクタNの視界VにプレイヤキャラクタPが入っていない場合(ステップS7:No)、さらに、戦闘継続パラメータが閾値を下回ったか否かを判定する(ステップS8)。ここで、戦闘継続パラメータは、敵キャラクタNの戦闘行動又は追跡行動を継続させるか否かを判定するためのパラメータであり、ゲーム装置2の例えば状態移行処理手段43により管理される。本実施形態では、戦闘継続パラメータは、敵キャラクタNが見失い状態にある間、見失い状態に移行した時点での値から時間の経過とともに徐々に減少する。戦闘継続パラメータが閾値を下回っていない場合は(ステップS8:No)、追跡処理を継続し、戦闘継続パラメータが閾値を下回った場合は(ステップS8:Yes)、敵キャラクタNを見失い状態から通常状態に移行する(ステップS1)。
図7に戻って、痕跡位置記憶手段44は、仮想空間S内でのプレイヤキャラクタPの位置(位置データ)を、所定の時間間隔ごとに痕跡位置として記憶部に順次記憶する。痕跡位置は、記憶された順番が分かるように、記憶された順番や記憶された時間と関連付けて記憶される。本実施形態では、仮想空間S上の痕跡位置には何も残さず、痕跡位置が、仮想空間S内の座標データの形で記憶されるのみである。但し、ゲーム装置2は、プレイヤキャラクタPの足跡や匂いなどの痕跡を表すオブジェクトを、所定時間ごとに仮想空間S内の痕跡位置あるいはその近傍に実際に残してもよい。この場合、痕跡を表すオブジェクトは、ユーザから見えないように透明なオブジェクトであってもよいし、不透明なオブジェクト(例えば、足跡や爪痕)であってもよい。
また、本実施形態では、痕跡位置記憶手段44は、プレイヤキャラクタPが仮想空間S内を移動可能な状態にある間は常時、痕跡位置を所定の時間間隔ごとに記憶するが、これに限られない。例えば、敵キャラクタNが位置認識状態及び見失い状態にある場合のみ、痕跡位置を所定の時間間隔ごとに記憶してもよい。
また、本実施形態では、記憶部に記憶される痕跡位置の数に上限が設定されており、痕跡位置記憶手段44は、最新の痕跡位置を記憶する際に、既に記憶されている痕跡位置の数が上限に達している場合は、記憶部に記憶された痕跡位置の中から最も古いものを削除する。但し、記憶部に記憶される痕跡位置の数に上限が設定されていなくてもよい。この場合、例えば、痕跡位置記憶手段44は、記憶されてから一定の時間経過した痕跡位置を記憶部から削除することとしてもよい。
追跡処理手段45は、敵キャラクタNが位置認識状態から見失い状態に移行した場合に、記憶部に記憶された痕跡位置に基づいて、敵キャラクタNにプレイヤキャラクタPを追跡させる。追跡処理手段45は、痕跡位置特定手段45aを含む。痕跡位置特定手段45aは、敵キャラクタNを含む所定の捜索範囲R内にある痕跡位置の中から、最も新しく記憶された痕跡位置を目標位置として特定する。捜索範囲Rは、例えば敵キャラクタNから所定の距離以内の範囲である。捜索範囲Rの大きさは、敵キャラクタNの種類に応じて変えてもよい。また、痕跡位置特定手段45aによる痕跡位置の特定の処理ごとに変えてもよい。例えば、痕跡位置を特定しようとするときの敵キャラクタNのアクション(例えば、地面の臭いをかぐ仕草)の種類を複数用意しておき、その種類ごとに捜索範囲Rの大きさを変更してもよい。この場合、痕跡位置を特定しようとするときの敵キャラクタNのアクションは、抽選で選択されてもよいし、プレイヤキャラクタPと敵キャラクタNとの距離に応じて選択されてもよい。
図9は、仮想空間Sを斜め上方から見た、敵キャラクタNの追跡行動を説明するための図である。図9(a)及び(b)に示すように、プレイヤキャラクタPは、特定オブジェクトBの内部空間に入っている。また、図9(a)及び(b)には、プレイヤキャラクタPが特定オブジェクトBに入る直前に記憶された痕跡位置t1〜t10が示されている。なお、痕跡位置t1〜t10は、tに添えた番号が小さいほど新しく記憶されたものであることを示す。また、図9(a)及び(b)には、敵キャラクタNの捜索範囲Rが敵キャラクタNを囲う破線で示されている。
図9(a)は、敵キャラクタNがプレイヤキャラクタPを見失った直後、即ち敵キャラクタNが位置認識状態から見失い状態に移行した直後の状況を示している。図9(a)に示した状況では、痕跡位置特定手段45aは、捜索範囲R内にある3つの痕跡位置t7,t8,t9の中から、最も新しく記憶された痕跡位置t7を目標位置として特定する。そして、追跡処理手段45は、図9(a)に矢印で示すように、特定された目標位置(痕跡位置t7)へ敵キャラクタNを移動させる。このとき、追跡処理手段45は、敵キャラクタNを現在位置から特定された目標位置(痕跡位置t7)まで、直線的に移動させてもよいし、捜索範囲R内に検出された別の痕跡位置t8,t9を経由して移動させてもよい。
図9(b)は、敵キャラクタNが痕跡位置t7へ移動した直後の状況を示している。痕跡位置t7へ移動した直後、痕跡位置特定手段45aは、捜索範囲R内にある痕跡位置t5,t6,t7などの中から、最も新しく記憶された痕跡位置t5を目標位置として特定する。こうして、追跡処理手段45は、痕跡位置の特定と、特定された目標位置への敵キャラクタNの移動とを交互に繰り返すことによって、敵キャラクタNにプレイヤキャラクタPを追跡させる。
敵キャラクタNが追跡処理により特定オブジェクトBまで到達すると、追跡処理手段45は、敵キャラクタNに、特定オブジェクトB内にいるプレイヤキャラクタPを視界Vに入れるために、特定オブジェクトBの中を覗き込むなど所定の動作を行わせる。その結果、プレイヤキャラクタPが敵キャラクタNの視界Vに入ると、敵キャラクタNの見失い状態は解除され、再び位置認識状態へと移行する。なお、追跡処理手段45は、敵キャラクタNが覗き込んだ特定オブジェクトB内にプレイヤキャラクタPがいなかった場合、敵キャラクタNの追跡行動を継続させる。なお、敵キャラクタNが追跡処理により特定オブジェクトBまで到達した場合には、当該到達された特定オブジェクトBを、見失いを発生させない一般オブジェクトに変更してもよい。
なお、敵キャラクタNが特定オブジェクトBまで到達する前に、ユーザは、プレイヤキャラクタPを特定オブジェクトBの外に移動させてもよい。この場合、プレイヤキャラクタPが敵キャラクタNの視界Vに入らなければ、敵キャラクタNの追跡行動は維持される。
敵キャラクタNの見失い状態が解除されると、追跡処理手段45による敵キャラクタNの追跡行動は終了する。具体的には、敵キャラクタNの視界VにプレイヤキャラクタPが入った場合や上述の戦闘継続パラメータが閾値を下回った場合に、敵キャラクタNは、敵キャラクタNの追跡行動は終了する。
次に、図10を参照して、図9に示した状況とは異なる状況における敵キャラクタNの追跡行動を説明する。
図10(a)は、敵キャラクタNの捜索範囲R内に痕跡位置がない場合の敵キャラクタNの追跡行動を説明するための図である。痕跡位置特定手段45aは、記憶部に記憶された痕跡位置の中に、捜索範囲R内に位置する痕跡位置がない場合、捜索範囲R外の痕跡位置の中から、見失い状態に移行する以前に記憶された所定の痕跡位置を目標位置として特定する。本実施形態では、痕跡位置特定手段45aは、捜索範囲R内の位置を示す痕跡位置がない場合、見失い状態に移行した時点から数えて所定回数だけ前(図10(a)の例では5回前)に記憶された痕跡位置(図10(a)の例では痕跡位置t5)を目標位置として特定する。
但し、捜索範囲R内の痕跡位置がない場合の痕跡位置の特定方法は、これに限られない。例えば、痕跡位置特定手段45aは、捜索範囲R内にある痕跡位置がない場合、見失い状態に移行する所定時間前の時点より以前に記憶された痕跡位置の中から、最も新しく記憶された痕跡位置を目標位置として特定してもよい。また、痕跡位置特定手段45aは、捜索範囲R内に最も近い痕跡位置を目標位置として特定してもよいし、見失い状態への移行時に記憶された痕跡位置を目標位置として特定してもよい。
図10(b)は、敵キャラクタNが痕跡位置に移動した後に、当該痕跡位置よりも新しく記憶された痕跡位置が捜索範囲R内にない場合の敵キャラクタNの追跡行動を説明するための図である。なお、図10(b)は、図10(a)に示す状況の後に敵キャラクタNが痕跡位置t5に移動した直後の状況を示している。図10(b)に示すように、痕跡位置t5に敵キャラクタNが移動した後に、痕跡位置t5よりも新しく記憶された痕跡位置が捜索範囲R内にない場合には、痕跡位置特定手段45aは、捜索範囲R外において、前回特定した痕跡位置t5の次に記憶された痕跡位置t4を目標位置として特定する。
但し、敵キャラクタNが痕跡位置に移動した後に、当該痕跡位置よりも新しく記憶された痕跡位置が捜索範囲R内にない場合の痕跡位置の特定方法は、これに限られない。例えば、痕跡位置特定手段45aは、移動した痕跡位置t5よりも新しく記憶された痕跡位置が捜索範囲R内にない場合、捜索範囲Rを一時的に拡大してもよい。この場合、拡大した捜索範囲R内に含まれる痕跡位置のうち、痕跡位置t5よりも新しく且つ痕跡位置t5を除いて最も古く記憶された痕跡位置を、目標位置として特定してもよい。また、拡大した捜索範囲R内に含まれ、痕跡位置t5よりも新しく記憶された痕跡位置のうち、痕跡位置t5を除いて敵キャラクタNの最も近くに位置する痕跡位置を、目標位置として特定してもよい。
あるいは、痕跡位置特定手段45aは、移動した痕跡位置t5よりも新しく記憶された痕跡位置が捜索範囲R内にない場合、移動した痕跡位置t5の周辺において、痕跡位置t5よりも新しく記憶された痕跡位置t1〜t4がないかを探すように敵キャラクタNを移動させてもよい。この場合、敵キャラクタNの移動とともに捜索範囲Rも移動させて、当該捜索範囲R内に、より新しい痕跡位置t1〜t4のいずれかが入ったときには、その中で最も古く記憶された痕跡位置を目標位置として特定してもよい。
次に、図8のステップS6で示す追跡処理の流れについて、図11を参照しながら説明する。図11は、追跡処理手段45による追跡処理の流れを示すフローチャートである。
図11に示すように、追跡処理では、追跡処理手段45は、敵キャラクタNの捜索範囲R内に痕跡位置があるか否かを判定する(ステップT1)。捜索範囲R内に痕跡位置がない場合(ステップT1:No)、捜索範囲R外の痕跡位置の中から、見失い状態に移行する以前に記憶された所定の痕跡位置を目標位置として特定する(ステップT5,図10(a)参照)。
捜索範囲R内に痕跡位置があった場合(ステップT1:Yes)、追跡処理手段45は、前回特定した痕跡位置より新しく記憶された痕跡位置があるか否かを判定する(ステップT2)。前回特定した痕跡位置より新しく記憶された痕跡位置があった場合(ステップT2:Yes,図9(b)参照)、捜索範囲R内の痕跡位置の中から、最も新しく記憶された痕跡位置を目標位置として特定する(ステップT3)。前回特定した痕跡位置より新しく記憶された痕跡位置がなかった場合(ステップT2:No,図10(b)参照)、前回特定した痕跡位置の次に新しい痕跡位置を目標位置として特定する(ステップT4)。
ステップT3,T4,T5で目標位置としての痕跡位置を特定した後、追跡処理手段45は、特定した目標位置に敵キャラクタNを移動させる(ステップT6)。敵キャラクタNを移動させた後、追跡処理手段45は、捜索範囲R内に痕跡位置があるか否かの判定に戻る(ステップT1)。こうして、この追跡処理は、敵キャラクタNが見失い状態にある間、繰り返される(図8のステップS6〜S8参照)。
以上に示したように、本実施形態に係るゲームシステム1では、敵キャラクタNとプレイヤキャラクタPとを結ぶ仮想線分Lが特定オブジェクトBに接触又は交差する場合、プレイヤキャラクタPが特定オブジェクトBにより敵キャラクタNから隠れた位置にいるため、ユーザに違和感なく見失い状態を生じさせることができる。また、敵キャラクタNの視界VにプレイヤキャラクタPが入っていない場合でも、敵キャラクタNとプレイヤキャラクタPとを結ぶ仮想線分Lが特定オブジェクトBに接触又は交差しないときには見失い状態が生じないため、プレイヤキャラクタPと敵キャラクタNとの戦闘中に頻繁に見失った状態が生じることを防止することができる。このため、アクションゲームの醍醐味である戦闘シーンを効果的に演出することができる。
また、位置認識判定手段(見失い解除判定手段)43aが、敵キャラクタNの視界VにプレイヤキャラクタPが入った場合に、敵キャラクタNの見失い状態を解除して、見失い状態から位置認識状態への敵キャラクタNの状態移行を決定する。このため、仮想空間S内で敵キャラクタNがプレイヤキャラクタPを再発見する状況にリアリティをもたせることができる。
また、追跡処理手段45は、敵キャラクタNが痕跡位置に基づいてプレイヤキャラクタPを追跡するため、プレイヤキャラクタPの位置を認識していない状態にある敵キャラクタNの追跡にリアリティをもたせることができる。
また、追跡処理手段45は、敵キャラクタNが位置認識状態から見失い状態へ移行した場合に、痕跡位置に基づいてプレイヤキャラクタPを追跡させるため、敵キャラクタNがプレイヤキャラクタPを見失った場合でも敵キャラクタNに追跡される緊迫感をユーザに与えることができる。
本発明は上述した実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲で種々の変形が可能である。
例えば、上記実施形態では、ゲームシステム1により実現されるゲームに登場するNPCは、プレイヤキャラクタPと戦闘を行う敵キャラクタNとして説明されたが、これに限られず、プレイヤキャラクタPと戦闘を行わないNPCであってもよい。この場合、位置認識状態にあるNPCは、戦闘行動以外の行動をとるように設定されていてもよい。
また、特定オブジェクトBは、プレイヤキャラクタPが進入できる内部空間を有していなくてもよい。但し、特定オブジェクトBが当該内部空間を有している場合、プレイヤキャラクタPを特定オブジェクトBに進入させれば仮想線分Lを特定オブジェクトBに確実に接触又は交差させることができるため、仮想空間S内で敵キャラクタNがプレイヤキャラクタPを見失う状況を、ユーザがより意図的につくりだすことができる。
また、上記実施形態では、仮想空間S内に登場する単一のプレイヤキャラクタPについて説明されたが、ゲームシステム1により実現されるゲームは、同一の仮想空間S内で同期して複数のプレイヤキャラクタPを登場させるマルチプレイ可能なゲームであってもよい。
仮想空間S内に複数のプレイヤキャラクタPが存在する場合、痕跡位置記憶手段44は、どの痕跡位置がどのプレイヤキャラクタのものであるかを識別可能に管理してもよい。また、仮想空間S内に複数のプレイヤキャラクタPが存在する場合、痕跡位置記憶手段44は、プレイヤキャラクタごとの区別はせず、単に位置と時間だけを管理してもよい。また、痕跡位置記憶手段44が痕跡位置を記憶及び管理する対象は、仮想空間S内に存在する全てのプレイヤキャラクタPとしてもよいし、一部のプレイヤキャラクタPとしてもよい。
仮想空間S内に複数のプレイヤキャラクタPが存在する場合、追跡処理手段45は、敵キャラクタNが位置認識状態から見失い状態に移行した場合に、複数のプレイヤキャラクタの中から選択された1つのプレイヤキャラクタを敵キャラクタNに追跡させてもよい。敵キャラクタNに追跡されるプレイヤキャラクタPは、複数のプレイヤキャラクタPの中から抽選で選択されたプレイヤキャラクタPであってもよいし、見失う直前まで敵キャラクタNの標的となっていたプレイヤキャラクタPであってもよい。
あるいは、敵キャラクタNに優先的に追跡させるか否かを表す優先度が、プレイヤキャラクタPごとに設定及び管理されてもよく、この優先度が高いプレイヤキャラクタPが、敵キャラクタNに追跡されるプレイヤキャラクタPとして選択されてもよい。優先度は、例えば、各プレイヤキャラクタPが敵キャラクタNに与えたダメージの大きさ、各プレイヤキャラクタPのレベル、装備アイテム、現在の体力値などに応じて、設定及び管理される。例えば、複数のプレイヤキャラクタPのうち、敵キャラクタNに追跡されるプレイヤキャラクタPとして、最も敵キャラクタNにダメージを与えたプレイヤキャラクタPが選択されてもよいし、最もレベルの高いプレイヤキャラクタPが選択されてもよい。