本実施の形態は、所定の集中攻撃開始条件が成立したときに、複数のプレイヤオブジェクトのうちの一つに対する集中的な攻撃を敵オブジェクトに開始させるようにしたゲームプログラム、記憶媒体およびコンピュータである。このような集中攻撃を採用することにより、自己のプレイヤキャラクタが敵キャラクタから突如、集中的に攻撃されるかもしれないとの恐怖感を遊戯者に抱かせることができ、単調でないスリリングなゲーム進行を実現することができる。
図1は、本実施の形態に係るコンピュータの構成を示す図である。このコンピュータ10は、ゲーム専用のゲーム機であってもよいし、汎用的なパーソナルコンピュータであってもよい。コンピュータ10は、本実施の形態に係るゲームプログラムが記憶された記憶媒体15から情報を読み取り、当該ゲームプログラムを実行することができる。なお、本実施の形態に係る記憶媒体15には、例えばDVD(Digital Versatile Disc)やCD(Compact disc)、Blu-ray Disc(登録商標)、または、内蔵のハードディスクなどを用いることができる。
コンピュータ10は、装置全体の動作を制御するCPU(Central Processing Unit)31を有している。このCPU31に対してRAM(Random Access Memory)32およびバス33が接続される。RAM32には、ゲームの進行に応じて各種のデータが記憶される。
バス33には、グラフィックプロセッサユニット(GPU)34、インプット・アウトプット(I/O)ポート39が接続される。GPU34は、RAM35およびグラフィック処理部(GP)36を有している。GPU34には、デジタル映像信号をNTSCテレビジョン方式やPALテレビジョン方式に変換するためのデコーダ37を介して、外部機器であるモニタ(テレビジョン装置:TV)38が接続される。
I/Oポート39には、光ディスク等の記憶媒体15に記憶されているデータを再生し、デコードするためのドライバ(DRV)40、サウンドプロセッサ(S・P)42、外部メモリ45、コントローラ20およびROM(Read Only Memory)46が接続される。
コントローラ20はI/Oポート21を介して各種操作子群22をコンピュータ10のI/Oポート39に接続する。遊戯者は、このコントローラ20を操作し、ゲーム中に登場するプレイヤキャラクタ等を操作する。
ROM46には、コンピュータ10を起動するとともに基本的な機能を実現するためのシステムプログラムが記憶されている。外部メモリ45には、遊戯者の情報や実行しているゲームの途中経過等が記憶される。遊戯者は、ゲームプログラムを記憶した記憶媒体15と自己の外部メモリ45とをコンピュータ10にセットすることにより、途中で中断したゲームを、その中断したタイミングから再開することができる。
サウンドプロセッサ42は、増幅器43を介して、外部機器であるスピーカ44に接続される。このスピーカ44は、例えばテレビジョン装置に内蔵されているモニタ38と一体のスピーカであれば良い。
次に、このコンピュータ10により実行されるゲームプログラムについて説明する。このゲームプログラムによって提供されるゲームは、遊戯者が操作するプレイヤが敵と戦闘するゲームに適用可能である。より具体的には、遊戯者により操作される人間型プレイヤキャラクタが、ゾンビやモンスターといった人間に擬似の敵キャラクタを倒してステージをクリアしてゆくゲーム(アクションゲーム、シミュレーションゲーム、シューティングゲーム等)に適用可能である。それぞれ別個の遊戯者によって操作される複数のプレイヤキャラクタが活動し、各プレイヤキャラクタが銃やナイフ等の武器を使用して敵キャラクタと戦うことによってゲームが進行する。以下の記述では、2人のプレイヤキャラクタ(第1プレイヤキャラクタ、第2プレイヤキャラクタ)が2人の遊戯者によって操作されるゲームを例に挙げて説明を行なう。しかし、遊戯者およびプレイヤキャラクタの数は2人に限定されることはなく、3人以上の多数であっても良い。
また、必ずしも多人数のプレイヤキャラクタ全てを遊戯者が操作する必要はなく、多人数のプレイヤキャラクタのうち一部または全てを、いわゆるノンプレイヤキャラクタ(NPC)として、遊戯者の操作によらずに自律行動可能な設定とすることもできる。この場合、NPCの行動は、CPU31によるAI(人工知能)処理に基づいて制御される。
なお、以下の記述では、いわゆるスタンドアローン形態の単一のコンピュータ10に複数(2台)のコントローラ20を接続し、各コントローラ20で第1プレイヤキャラクタ、第2プレイヤキャラクタの動作制御を行なう場合について説明する。しかし、本発明はこの構成に限定されるものではなく、複数のコンピュータ10、すなわち、複数のゲーム機および/またはパーソナルコンピュータを、有線もしくは無線にて直接に接続し、または、有線もしくは無線のLANやインターネット等の通信ネットワークを介して相互に接続し、これらの複数のゲーム機および/またはパーソナルコンピュータに接続された複数のコントローラによって、各プレイヤキャラクタを操作する、いわゆるオンラインゲーム形態を採用しても良い。
各プレイヤキャラクタは、それぞれ体力値というパラメータを有している。体力値は、各プレイヤキャラクタの活動を可能にするためのパラメータであり、栄養になるアイテムを補給すると体力値が増加し、敵キャラクタからの攻撃(ダメージ)を受けたり、自分が放った攻撃(手榴弾等)に当たる(自爆する)などすると体力値が減少する。ダメージを受けた結果、体力値が0になると一定時間経過した後に死亡する。さらに、このゲームには、2人のプレイヤキャラクタが協力しなければクリアできない関門(ポイント)が多数あるため、一方のプレイヤキャラクタが死亡すると、それ以上のゲーム進行が不可能になり、ゲームオーバーとなる。
ただし、このゲームでは、体力値が0になったのち一定時間はプレイヤキャラクタが生きている。この間にもう一人のプレイヤキャラクタによる回復行動(手当て)を受けることにより、体力値が若干回復し、通常の活動状態(行動が限定されず自由に活動できる状態)に戻ることができる。すなわち、このゲームでは、体力値が0になったとき、そのプレイヤキャラクタを即座に死亡させず、一定時間は、他のプレイヤキャラクタによる救助によって回復させることができる猶予期間(回復可能期間)における状態(衰弱状態)をプレイヤキャラクタに与えている。衰弱状態のプレイヤキャラクタは通常の活動状態よりゆっくりとした(ヨロヨロとした)移動のみ可能であり、自分で回復行動ができない。また、敵キャラクタは衰弱状態となったプレイヤキャラクタに対して、所定時間様子を見ながら接近したり威嚇等を行った後に再度攻撃をし、すぐさま攻撃を行わない。
このように、回復可能期間を設けることにより、遊戯者は、パートナーのプレイヤキャラクタが衰弱状態にあることを知って、このプレイヤキャラクタを回復させる操作を行なうことができる。よって、パートナーのプレイヤキャラクタの死亡によって突然、ゲームが終了することを防ぐことができる。また、遊戯者は自分の操作次第でパートナーのプレイヤキャラクタの死亡を防ぐことができるため、他の遊戯者またはNPCのプレイスキルが低くても、自分のプレイスキルに応じてゲームの進行をコントロールすることができる。さらに、遊戯者同士が互いに助け合う操作を行なうことにより、遊戯者間の親密度を高めることができる。
なお、衰弱状態のプレイヤキャラクタであっても集中攻撃(詳細は後述する)の対象となり得る。この場合、複数の敵キャラクタは衰弱状態のプレイヤキャラクタを取り囲み、所定時間威嚇等を行った後に攻撃を開始する。但し、衰弱状態であっても、所定時間の威嚇等を行うことなく、すぐさま攻撃を行ってもよい。
また、本実施の形態においては、プレイヤオブジェクトとしてゲーム中で人間として活動するプレイヤキャラクタを想定し、敵オブジェクトとしてゾンビやモンスター等の人間に擬似の生物たる敵キャラクタを想定している。しかし、本発明のプレイヤオブジェクトおよび敵オブジェクトは、人間やそれに擬似の生物に限定されるものではなく、例えば昆虫等のその他の生物や、ロボット、戦闘機、戦車などの機械類等、ゲーム空間内で活動可能なあらゆる物体に適用可能である。
上述のコンピュータ10にこのゲームプログラムが読み込まれることにより、図2に示すような機能部を備えたゲーム装置が構成される。このゲーム装置は、操作検出部50、ゲーム進行制御部51および描画処理部54等の各機能部を有する。
操作検出部50は、図1におけるCPU31、RAM32、バス33、I/Oポート39およびROM46を含むデータ処理部と、コントローラ20等とで構成され、遊戯者の各種操作を検出して、ゲーム進行制御部51に伝達する。
ゲーム進行制御部51は、図1におけるCPU31、RAM32、バス33、I/Oポート39およびROM46を含むデータ処理部等で構成され、仮想のゲーム空間や敵およびプレイヤの各キャラクタを生成するとともに、遊戯者の操作や時間の経過等に応じて、ゲーム空間を変化させる処理や、各キャラクタを活動させる処理を行なってゲームを進行させる。
ゲーム進行制御部51は、ゲーム進行全般に亘って共通の処理を司る共通処理部52と、後述する集中攻撃の処理を司る集中攻撃制御部53とを含む。共通処理部52は、プレイヤキャラクタと戦う敵キャラクタの活動を制御する敵キャラクタ制御部52a、プレイヤキャラクタの活動を制御するプレイヤキャラクタ制御部52b、および、三次元の仮想のゲーム空間の生成を行い、ゲーム空間における天候などの環境を制御するゲーム空間制御部52cを有している。
敵キャラクタ制御部52aは、生成されたゲーム空間内に生息する敵キャラクタを生成するとともに、プレイヤキャラクタの活動に対応した活動(戦闘)をゲーム空間内で敵キャラクタに行なわせる。プレイヤキャラクタ制御部52bは、遊戯者の操作による場合は操作検出部50から入力される操作情報等に基づいて、NPCの場合はCPU31によるAI処理に基づいて、プレイヤキャラクタのゲーム空間内での活動を制御する。ゲーム空間制御部52cは、操作検出部50から入力された操作情報に基づいて選択されたゲームステージのゲーム空間を生成する。
敵キャラクタ制御部52aは、ゲーム内に登場する複数の敵キャラクタの活動を制御しており、各敵キャラクタのゲーム空間内における座標、体力値等を管理している。また、プレイヤキャラクタ制御部52bは、ゲーム内に登場する複数のプレイヤキャラクタの活動を制御しており、各プレイヤキャラクタのゲーム空間内における座標、体力値等を管理している。
集中攻撃制御部53は、後述する集中攻撃処理、集中攻撃解除処理、対象設定処理の制御を行なう。集中攻撃制御部53には、集中攻撃を行なうか否かの情報を示すフラグ53aが含まれている。
描画処理部54は、図1におけるGPU34、デコーダ37およびモニタ38等で構成され、ゲーム進行制御部51が生成したゲーム空間、プレイヤキャラクタおよび敵キャラクタを二次元スクリーンに投影して得られる映像を生成してモニタ38に出力する。すなわち、ゲーム空間内には、仮想カメラが複数のプレイヤキャラクタの各々に対応して複数設けられ、各仮想カメラから見たゲーム空間の画像がモニタ38に映し出される。
ここで、上記の通り本実施の形態では、単一のコンピュータを用いて二人の遊戯者がプレイを行う形態を例として説明している。この場合、モニタ38には、各遊戯者の司るプレイヤキャラクタの後方の仮想カメラから見たゲーム空間の画像がそれぞれ、例えば上下2分割の画面や、左右2分割の画面にて描画処理部54により映し出される。なお、遊戯者が一人でプレイし、パートナーのプレイヤキャラクタがNPCである場合には、モニタ38には遊戯者の司るプレイヤキャラクタの後方の仮想カメラから見たゲーム空間の画像が、描画処理部54により映し出される。また、オンラインゲーム形態を採る場合には、空間的に離れた各遊戯者のモニタ38にそれぞれ、各遊戯者の司るプレイヤキャラクタの後方の仮想カメラから見たゲーム空間の画像が、描画処理部54により映し出される。
次に、本実施の形態に係るゲーム進行の処理について説明を行なう。本発明においては、所定の集中攻撃開始条件が成立したときに、第1および第2プレイヤキャラクタのうちの一つに対する集中的な攻撃を、複数の敵キャラクタに開始させる。
図3は、あるゲームステージにおけるゲーム空間たるマップMP1を上空から見た図である。マップMP1内には、第1プレイヤキャラクタP1および第2プレイヤキャラクタP2が存在する。また、マップMP1内には、第1敵キャラクタE1、第2敵キャラクタE2、第3敵キャラクタE3および第4敵キャラクタE4も存在している。
なお、図3においては、第1および第2プレイヤキャラクタP1,P2を丸印で示し、第1乃至第4敵キャラクタE1〜E4を角印で示している。また、図3においては、第1および第2プレイヤキャラクタP1,P2の丸印に三角形の突起P1a,P2aがそれぞれ付され、第1乃至第4敵キャラクタE1〜E4の角印に三角形の突起E1a〜E4aがそれぞれ付されている。この三角形の突起P1a,P2a,E1a〜E4aはそれぞれ、各プレイヤキャラクタおよび敵キャラクタの正面方向を示すものであって、各突起の突出方向に各キャラクタが向いている。
また、図3においては、各プレイヤキャラクタP1,P2の背後に設置された仮想カメラのアングル方向が矢印A1,A2で示されており、当該仮想カメラによる撮像範囲がF1,F2として示されている。各プレイヤキャラクタP1,P2の背後に設置された仮想カメラは、各プレイヤキャラクタP1,P2を操作する遊戯者の視点に相当し、各撮像範囲F1,F2は、各遊戯者の視野に相当する。具体的には、各遊戯者の視点と注視点との間に、モニタ38の各分割画面と同サイズの仮想スクリーンSC1,SC2がそれぞれ配置されている。そして、各プレイヤキャラクタおよびその周辺(さらにはその目線の先にある他のオブジェクト)を含むゲーム空間を各遊戯者の視点から眺めた映像を、各仮想スクリーンSC1,SC2上に透視投影することによって、二次元映像が得られる。得られた各二次元映像は、モニタ38の各分割画面に表示される。よって、第1プレイヤキャラクタP1を操作する遊戯者は、モニタ38における自身の分割画面にて、第1プレイヤキャラクタP1に対応する撮像範囲F1のゲーム空間を視認可能である。同様に、第2プレイヤキャラクタP2を操作する遊戯者は、モニタ38における自身の分割画面にて、第2プレイヤキャラクタP2に対応する撮像範囲F2のゲーム空間を視認可能である。
なお、第2プレイヤキャラクタがNPCである場合には、モニタ38には、撮像範囲F1に対応するゲーム空間が全画面表示され、撮像範囲F2に対応するゲーム空間は表示されない。しかし、NPCに対しても仮想的に撮像範囲F2のゲーム空間が撮影されているため、本明細書においては、撮像範囲F2のゲーム空間はNPCを操作する仮想遊戯者によって視認可能であるものとして説明を行う。
さらに、図3においては、第4敵キャラクタE4の視界の範囲をF3として示している。この視界の範囲F3は、第4敵キャラクタE4が各プレイヤキャラクタP1,P2を発見できる範囲であって、視界の範囲F3内に各プレイヤキャラクタP1,P2のいずれかが入ると、第4敵キャラクタE4はそのプレイヤキャラクタに対して攻撃を行なう。敵キャラクタの視界の範囲は、その種類に応じて、所定角度(例えば120度)かつ所定距離(例えば20m)に設定されている。敵キャラクタは、プレイヤキャラクタP1,P2を発見すべくマップMP1内を哨戒しており、プレイヤキャラクタP1,P2を一度発見すると、その発見状態を維持する。
なお、図の煩雑を避けるため、第1乃至第3敵キャラクタE1〜E3の視界の範囲については図3に明示してはいないが、第1乃至第3敵キャラクタE1〜E3のそれぞれについても、同様の視界の範囲を有する。また、視界の範囲の広狭は、敵キャラクタの種類に応じてそれぞれ決定されている。
また、図3においては、第1および第2プレイヤキャラクタP1,P2間の距離をL1とし、第1敵キャラクタE1と第1プレイヤキャラクタP1との距離をL2、第2敵キャラクタE2と第2プレイヤキャラクタP2との距離をL3、第3敵キャラクタE3と第2プレイヤキャラクタP2との距離をL4、としてそれぞれ示している。各キャラクタには、位置座標の基準点(例えば各キャラクタの足元の任意の一点)がそれぞれ設定されており、基準点同士の位置座標の差分値に基づいて、各キャラクタ間の距離が算出される。
図4は、第1乃至第4敵キャラクタE1〜E4各々の攻撃処理を示すフローチャートである。なお、このフローチャートでは、発見したプレイヤキャラクタのうち各敵キャラクタの最も近くのプレイヤキャラクタをそれぞれ攻撃対象として攻撃するという通常の攻撃処理と、複数の敵キャラクタの攻撃対象を第1および第2プレイヤキャラクタのうちの一方に統一(集中)させ、集中的に攻撃するという集中的な攻撃処理とが説明される。
このフローチャートに示された各ステップS01〜S08の処理は、例えば1/60秒といった所定期間(1フレーム)ごとに敵キャラクタ一体一体につき、行なわれる。それらの処理は、上述の敵キャラクタ制御部52aが担当する。
まず、各敵キャラクタの通常の攻撃処理について説明する。各敵キャラクタは、プレイヤキャラクタを発見していない状態では、ゲーム空間における一定の範囲内を徘徊し、哨戒行動を採っている。ステップS01においては、敵キャラクタがプレイヤキャラクタを発見したか否かを敵キャラクタ制御部52aが判定し、発見しなかった場合は、敵キャラクタは哨戒行動を継続する。
敵キャラクタがプレイヤキャラクタを発見した場合には、ステップS02へと進み、集中攻撃を行なうか否かの情報を示すフラグ53aがONになっているか否かを判定する。フラグ53aは、後述する集中攻撃処理(図6)により所定の集中攻撃開始条件を満たした場合にONとなり、後述する集中攻撃解除処理(図8)により所定の集中攻撃解除条件を満たした場合にOFFとなる。
フラグ53aがOFFの場合には、ステップS03に進み、敵キャラクタが発見したのが第1および第2プレイヤキャラクタP1,P2のいずれであるのかを敵キャラクタ制御部52aが判定する。発見したのが第1プレイヤキャラクタP1であった場合には、ステップS05に進み、敵キャラクタの攻撃対象を第1プレイヤキャラクタP1にセットする。そして、ステップS07に進み、第1プレイヤキャラクタP1に対して後述の移動攻撃処理を行なった後、攻撃処理を終了する。また、発見したのが第2プレイヤキャラクタP2であった場合には、ステップS06に進み、敵キャラクタの攻撃対象を第2プレイヤキャラクタP2にセットする。そして、ステップS07に進み、第2プレイヤキャラクタP2に対して後述の移動攻撃処理を行なった後、攻撃処理を終了する。
一方、発見したのが第1および第2プレイヤキャラクタP1,P2の両方であった場合には、ステップS04に進み、敵キャラクタの最も近くにいるのが第1および第2プレイヤキャラクタP1,P2のいずれであるのかを敵キャラクタ制御部52aが判定する。各敵キャラクタE1〜E4や第1および第2プレイヤキャラクタP1,P2のそれぞれの座標は、共通処理部52の敵キャラクタ制御部52aおよびプレイヤキャラクタ制御部52bが把握しており、共通処理部52は、各敵キャラクタE1〜E4と第1および第2プレイヤキャラクタP1,P2との間のゲーム空間内における距離を算出可能である。この算出結果に基づいて、敵キャラクタ制御部52aは、敵キャラクタの最も近くにいるのが第1および第2プレイヤキャラクタP1,P2のいずれであるのかの判定が可能である。
そして、敵キャラクタの最も近くにいるのが第1プレイヤキャラクタP1であった場合には、ステップS05に進み、敵キャラクタの攻撃対象を第1プレイヤキャラクタP1にセットする。また、敵キャラクタの最も近くにいるのが第2プレイヤキャラクタP2であった場合には、ステップS06に進み、敵キャラクタの攻撃対象を第2プレイヤキャラクタP2にセットする。そして、いずれの場合もステップS07に進み、セットした攻撃対象に対して移動攻撃処理を行なった後、攻撃処理を終了する。
図5は、ステップS07の移動攻撃処理の詳細を説明するフローチャートである。まず、ステップS09にて、ゲーム空間内の仮想距離として例えば10m以上、攻撃対象となるプレイヤキャラクタまで敵キャラクタが離れているか否かの判定を敵キャラクタ制御部52aが行なう。攻撃対象まで10m以上離れている場合には、ステップS10に進み、敵キャラクタを攻撃対象に向かって走らせる。その後、移動攻撃処理を終了する。
攻撃対象まで10m未満の場合は、ステップS11に進み、例えば2.5m以上、攻撃対象となるプレイヤキャラクタまで敵キャラクタが離れているか否かの判定を敵キャラクタ制御部52aが行なう。攻撃対象まで2.5m以上離れている場合には、ステップS12に進み、敵キャラクタを攻撃対象に向かって歩かせる。その後、移動攻撃処理を終了する。
攻撃対象まで2.5m未満の場合は、ステップS13に進み、敵キャラクタを攻撃対象に向かって攻撃させる。その後、移動攻撃処理を終了する。なお、上記においては10mおよび2.5mとの具体数値を挙げたが、これらはあくまでも例示であり、例えば敵キャラクタの種類、攻撃の種類、プレイヤキャラクタの体力値の大小等に応じて変化させてもよい。
また、攻撃対象に向かって走らせる途中や歩かせる途中、そして攻撃途中において、例えば攻撃対象のプレイヤキャラクタが敵キャラクタに対して銃口を向けるなど、反抗する動作を採った時に、敵キャラクタに、銃口が向けられた箇所(頭部や上半身など)に応じて、屈んで側方へ退避したり、両腕でガードしつつ近づいていったり、横向きに歩いて近づいたり、と各種の演出動作を行なわせても良い。
ここまでの処理が、発見したプレイヤキャラクタのうち各敵キャラクタの最も近くのプレイヤキャラクタをそれぞれ攻撃対象として攻撃するという通常の攻撃処理に相当する。
続いて、複数の敵キャラクタの攻撃対象を第1および第2プレイヤキャラクタのうち一方に統一(集中)させ、集中的に攻撃するという集中的な攻撃処理(フラグ53aがON)について説明する。なお、集中的な攻撃処理とは、図4のステップS08,ステップS07、後述する図6の集中攻撃処理、図7の対象設定処理、図8の集中攻撃解除処理を含む処理である。
図4のステップS02の判定において、フラグ53aがONの場合には、ステップS08に進み、後述する対象設定処理(図7)により決定した集中攻撃の対象(第1プレイヤキャラクタP1または第2プレイヤキャラクタP2)に攻撃対象をセットする。そして、ステップS07に進み、セットした攻撃対象に対して上述の移動攻撃処理を行う(ステップS07)。
なお、図4に示した攻撃処理のフローは敵キャラクタ1体1体について行っているが、各敵キャラクタの攻撃対象をステップS08にて統一させた後、通常の攻撃処理と同様の移動攻撃処理(ステップS07)を実行することで、一方のプレイヤキャラクタに対して集中的な攻撃を敵キャラクタに行わせることができる。
続いて、集中攻撃開始条件について説明する。本実施の形態においては、集中攻撃開始条件として、ゲーム空間内における第1および第2プレイヤキャラクタP1,P2間の距離L1が、第1の所定値(例えば9m)以上となること、および、2人の遊戯者の各プレイヤキャラクタに対応するそれぞれの仮想カメラによる撮像範囲F1,F2内に、同一の、または、異なる敵キャラクタが入っていること、を採用する。
集中攻撃開始条件に、第1および第2プレイヤキャラクタP1,P2間の距離L1が第1の所定値以上となることを含ませることにより、自己のプレイヤオブジェクトが、仲間たる他のプレイヤオブジェクトからはぐれると、敵オブジェクトから集中的に攻撃されるかもしれないとの恐怖感を遊戯者に抱かせることができる。
また、集中攻撃開始条件にさらに、2人の遊戯者の各プレイヤキャラクタに対応するそれぞれの仮想カメラによる撮像範囲F1,F2内に、同一の、または、異なる敵キャラクタが入っていることを含ませることにより、集中攻撃が開始されると、集中攻撃を受けないプレイヤキャラクタに対応する仮想カメラの撮像範囲内に入っていた敵キャラクタが集中攻撃対象のプレイヤキャラクタに向かう様子を視認できるため、集中攻撃を受けないプレイヤキャラクタの遊戯者は、他のプレイヤキャラクタが集中攻撃対象とされていることに気づくことができ、興趣を増す。
図6は、集中攻撃開始条件を満たすか否かを判定する集中攻撃処理の詳細を説明するフローチャートである。この集中攻撃処理は、集中攻撃制御部53内のフラグ53aがOFFである場合に、所定期間(例えば1フレーム)ごとに実行される。また、集中攻撃処理は、図4に示した攻撃処理よりも前に行われる。
まず、ステップS14において、前回の集中攻撃があった場合には、その前回の集中攻撃が終了してから一定時間(例えば2分)が経過しているか否かが、集中攻撃制御部53により判定される。連続して集中攻撃が発生するのを避けるために、このような判定が行なわれる。なお、ゲーム初回はまだ集中攻撃が発生していないが、前回の集中攻撃終了後一定時間が経過したものとみなす。
もし、前回の集中攻撃が終了してから一定時間が経過していない場合には、集中攻撃処理を終了する。一方、一定時間が経過している場合には、ステップS15に進み、第1および第2プレイヤキャラクタP1,P2間の距離が、上記第1の所定値以上となっているか否かが判定される。
もし、第1および第2プレイヤキャラクタP1,P2間の距離L1が、上記第1の所定値以上となっていない場合には、集中攻撃開始条件を満たしていないとして、集中攻撃処理を終了する。一方、上記第1の所定値以上となっている場合には、集中攻撃開始条件の一部を満たしているとして、ステップS16に進む。このステップS16では、モニタ38の各遊戯者の分割画面に敵キャラクタが映っているか、すなわち、2人の遊戯者の各プレイヤキャラクタに対応するそれぞれの仮想カメラによる撮像範囲F1,F2内に、同一の、または、異なる敵キャラクタが入っているか否かが判定される。
この判定条件は、集中攻撃を受けないプレイヤキャラクタを操作する遊戯者に、他のプレイヤキャラクタが集中攻撃を受けることを知らせるために採用されている。すなわち、仮に第2プレイヤキャラクタP2が集中攻撃対象となり、第1プレイヤキャラクタP1が集中攻撃対象ではない場合に、第2プレイヤキャラクタP2については、面前の第2および第3敵キャラクタE2,E3のみならず第1敵キャラクタE1までもが自己に向かってくるため、集中攻撃を受けることを認識できる。しかし、第1プレイヤキャラクタP1を操作する遊戯者のモニタ38の分割画面内に敵キャラクタが映っていないと、何ら画面上の変化がないため、第2プレイヤキャラクタP2が集中攻撃を受けているのか否かが、第1プレイヤキャラクタP1を操作する遊戯者には判別しづらい。
この判定条件は、特に、遊戯者が一人でプレイしパートナーのプレイヤキャラクタがNPCである場合や、オンラインゲーム形態を採る場合など、単一のモニタ38に一人の遊戯者の司るプレイヤキャラクタの後方の仮想カメラから見たゲーム空間の画像のみが、描画処理部54により映し出される時に効果的である。
一方、集中攻撃を受けない第1プレイヤキャラクタP1に対応する仮想カメラの撮像範囲F1内に第1敵キャラクタE1が入っておれば、第1プレイヤキャラクタP1の面前の第1敵キャラクタE1が集中攻撃対象の第2プレイヤキャラクタP2に向かう。すなわち、第1敵キャラクタE1の行動の変化を第1プレイヤキャラクタP1の遊戯者は感知し、他のプレイヤキャラクタが集中攻撃対象とされていることに気づくことができる。
なお、“同一の、または、異なる敵キャラクタ”としたのは、以下の両状態を含めるためである。すなわち、例えば第1プレイヤキャラクタP1に対応する仮想カメラの撮像範囲F1内(すなわち、第1プレイヤキャラクタP1の操作者に見える範囲内)に、第2プレイヤキャラクタP2に対応する仮想カメラの撮像範囲F2内(すなわち、第2プレイヤキャラクタP2の操作者に見えている範囲内)に存在する第2または第3敵キャラクタE2,E3が入っておれば、第1および第2プレイヤキャラクタP1がともに“同一の”敵キャラクタを面前にしていることとなり、第2または第3敵キャラクタE2,E3の集中攻撃行動が、いずれの遊戯者にも感知できる。
一方、第1プレイヤキャラクタP1に対応する仮想カメラの撮像範囲F1内(すなわち、第1プレイヤキャラクタP1の操作者に見える範囲内)に、第2プレイヤキャラクタP2に対応する仮想カメラの撮像範囲F2内にない(すなわち、第2プレイヤキャラクタP2の操作者に見えてはいない)第1敵キャラクタE1しか入っていない場合には、第1プレイヤキャラクタP1は第1敵キャラクタE1を面前にし、第2プレイヤキャラクタP2は、第1敵キャラクタE1とは“異なる”第2および第3敵キャラクタE2,E3を面前にしていることとなる。しかし、このような場合であっても、第1敵キャラクタE1の行動の変化を第1プレイヤキャラクタP1の遊戯者は感知し、他のプレイヤキャラクタが集中攻撃対象とされていることに気づくことができる。
ここで、「敵キャラクタが遊戯者に見える」とは、敵キャラクタが必ずしも遊戯者の視界に入っている(つまり遊戯者が気づいている)ことを必要とせず、プレイヤキャラクタに対応する仮想カメラの撮像範囲F1,F2内に敵キャラクタが入っていれば(つまりモニタ38に映していれば)足りるとの意である。
ステップS16にて、各遊戯者のモニタ38の分割画面に敵キャラクタが映っていない場合には、集中攻撃開始条件を満たしていないとして、集中攻撃処理を終了する。一方、各遊戯者のモニタ38の分割画面に敵キャラクタが映っている、すなわち、2人の遊戯者の各プレイヤキャラクタに対応するそれぞれの仮想カメラによる撮像範囲F1,F2内に、同一の、または、異なる敵キャラクタが入っている場合には、集中攻撃開始条件の全部を満たしているとして、ステップS17に進む。このステップS17では、集中攻撃制御部53内のフラグ53aがONに設定される。そして、ステップS18に進み、後述する集中攻撃の対象を設定する処理(対象設定処理)が行われた後、集中攻撃処理を終了する。
なお、上記においては、ステップS14〜S16の集中攻撃開始条件を全て満たした場合には、集中攻撃制御部53内のフラグ53aを必ずONに設定したが、集中攻撃開始条件を全て満たすことに加えて、所定の確率(例えば50%)の抽選に当選することを、フラグ53aをONに設定するための条件として追加しても良い。この抽選は、集中攻撃制御部53内で行われる。この場合、ステップS14〜S16の集中攻撃開始条件を全て満たしている場合であっても、50%の確率でフラグ53aはONに設定されない。このように、集中攻撃開始条件の一つとして確率的な要素を含めることにより、必ずしも集中攻撃が開始されるとは限らず、いつ集中攻撃が開始するか分からないとの恐怖感を遊戯者に抱かせることができ、単調でないスリリングなゲーム進行を実現することができる。
続いて、ステップS18の対象設定処理の説明を行なう。図7は、対象設定処理の詳細を説明するフローチャートである。ここでは、複数のプレイヤキャラクタのうち、少なくとも一つの敵キャラクタに発見されているものであって、最も多くの敵キャラクタに囲まれているプレイヤキャラクタを集中的な攻撃の対象とする。
このように、プレイヤキャラクタのうち、少なくとも一つの敵キャラクタに発見されているものであって、最も多くの敵キャラクタに囲まれているプレイヤキャラクタを集中的な攻撃の対象とすることにより、ゲーム進行の状況に応じて、集中攻撃対象となるプレイヤキャラクタが変化するため、単調でないスリリングなゲーム進行を実現することができる。
まず、ステップS19において、第1および第2プレイヤキャラクタP1,P2のうち、どちらがより多くの敵キャラクタに囲まれているかを、敵キャラクタ制御部52aが判定する。例えば、各プレイヤキャラクタのそれぞれについて、プレイヤキャラクタを中心とした所定圏内(例えば半径12mの円内)に存在する敵キャラクタの数を算出する。そして、それらプレイヤキャラクタを発見した敵キャラクタの数の大小比較により上記判定を行う。
そして、第1プレイヤキャラクタP1の方が多くの敵キャラクタに囲まれておれば、ステップS20に進み、集中攻撃の対象を第1プレイヤキャラクタP1に設定する。一方、第2プレイヤキャラクタP2の方が多くの敵キャラクタに囲まれておれば、ステップS21に進み、集中攻撃の対象を第2プレイヤキャラクタP2に設定する。集中攻撃の対象が設定されると対象設定処理は終了し、図6の集中攻撃処理にリターンする。
図3を例に採れば、第1プレイヤキャラクタP1の面前には第1敵キャラクタE1が対峙し、第2プレイヤキャラクタP2の面前には第2および第3敵キャラクタE2,E3が対峙している。また、第1〜第4敵キャラクタE1〜E4以外の敵キャラクタは、マップMP1内には存在していない。このとき、例えば第1敵キャラクタE1の視界の範囲内に第1および第2プレイヤキャラクタP1,P2が存在して(第1敵キャラクタE1が第1および第2プレイヤキャラクタP1,P2を発見して)おり、かつ、第1敵キャラクタE1と第1プレイヤキャラクタP1との距離L2が例えば8mであって、第2および第3敵キャラクタE2,E3と第1プレイヤキャラクタP1との距離が12m以上離れている場合には、第1プレイヤキャラクタP1を囲む敵キャラクタの数は、第1敵キャラクタE1のみの1となる。
また、第2および第3敵キャラクタE2,E3の視界の範囲内に第1および第2プレイヤキャラクタP1,P2が存在して(第2および第3敵キャラクタE2,E3がともに第1および第2プレイヤキャラクタP1,P2を発見して)おり、かつ、第2敵キャラクタE2と第2プレイヤキャラクタP2との距離L3が例えば7m、第3敵キャラクタE3と第2プレイヤキャラクタP2との距離L4が例えば6mであって、第1敵キャラクタE1と第2プレイヤキャラクタP2との距離が12m以上離れている場合には、第2プレイヤキャラクタP2を囲む敵キャラクタの数は、第2および第3敵キャラクタE2,E3の2となる。
よって、この場合は、第2プレイヤキャラクタP2が最も多くの敵キャラクタに囲まれており、第2プレイヤキャラクタP2が集中的な攻撃の対象となる。これにより、この時点で第2プレイヤキャラクタP2を囲んでいる第2および第3敵キャラクタE2,E3はもちろんのこと、第2プレイヤキャラクタP2を発見しつつも離れた位置に存在していた第1敵キャラクタE1までもが、第2プレイヤキャラクタP2を攻撃対象として、移動攻撃処理の制御下に入る。
このとき、例えば集中攻撃の対象とはならなかった第1プレイヤキャラクタP1の面前に対峙する第1敵キャラクタE1に、第2プレイヤキャラクタP2を指差すなどの示威行動を採らせても良い。そうすれば、第1プレイヤキャラクタP1の遊戯者に、他のプレイヤキャラクタが集中攻撃の対象となっていることを明示して、救助行動への準備を行なわせることができる。
もちろん、集中攻撃の対象となった第2プレイヤキャラクタP2の面前に対峙する第2または第3敵キャラクタE2,E3に、第2プレイヤキャラクタP2を指差すなどの示威行動を採らせても良い。この場合は、第2プレイヤキャラクタP2の遊戯者に、自己のプレイヤキャラクタが集中攻撃の対象となっていることを明示して、恐怖感を煽ることができる。また、このような指差し行動は、常に行なうのではなく所定の確率で行なわせても良い。
なお、第4敵キャラクタE4については、第1および第2プレイヤキャラクタP1,P2との間の壁Wによって視界が遮られているため、第1および第2プレイヤキャラクタP1,P2の存在を発見しておらず、かつ、他の敵キャラクタの指差し行動についても関知していないので、集中攻撃には参加しない。しかし、プレイヤキャラクタの存在を発見していない第4敵キャラクタE4についても、いずれかのプレイヤキャラクタが集中攻撃の対象となれば、プレイヤキャラクタを発見した状態に変更して集中攻撃に加わるような設定を採用しても良い。また、集中攻撃の対象となっているプレイヤキャラクタを示すインジケータ(アイコン等)を、モニタ38に表示するようにしても良い。
また、ここでは、複数のプレイヤキャラクタのうち、少なくとも一つの敵キャラクタに発見されているものであって、最も多くの敵キャラクタに囲まれているプレイヤキャラクタを集中的な攻撃の対象とするとしたが、他の基準により集中攻撃の対象を決定しても良い。すなわち、例えば複数のプレイヤキャラクタのうち体力値の大きい方を集中攻撃の対象としても良いし、あるいは、体力値の小さい方を集中攻撃の対象としても良い。
それ以外にも、例えばゲーム進行を行なううえで重要なアイテム(扉を開ける鍵など)を第1および第2プレイヤキャラクタP1,P2のいずれかが取得する場合には、当該アイテムを所持する方を集中攻撃の対象としても良い。あるいは、銃弾や矢等の残り弾数の少ない方(または多い方)のプレイヤキャラクタを集中攻撃の対象としても良い。
また、プレイヤキャラクタが敵キャラクタを撃退してゆくと、その撃退数等に応じてレベルまたはランクが上がってゆくような設定を採ることができるが、その場合にレベルまたはランクの高い方(または低い方)のプレイヤキャラクタを集中攻撃の対象としても良い。逆に、ミッションを失敗したり死亡した場合に、その頻度等に応じてレベルまたはランクが下がってゆくような設定を採ることもできるが、その場合にレベルまたはランクの低い方(または高い方)のプレイヤキャラクタを集中攻撃の対象としても良い。ゲームの進行に応じて上下するプレイヤキャラクタのレベル又はランクを算出することにより、遊戯者のスキル(プレイヤスキル)を求めることができ、プレイヤスキルに応じて集中攻撃の対象を変えることで、興趣を増す。
その他にも、最も多くの敵キャラクタに囲まれているプレイヤキャラクタではなく、その逆に、最も少ない敵キャラクタに囲まれているプレイヤキャラクタを集中攻撃の対象とすることも本発明から排除するわけではない。その場合、図3を例に採れば、第1プレイヤキャラクタP1が集中攻撃対象となる。また、第2および第3敵キャラクタE2,E3が、第1敵キャラクタE1とともに、第1プレイヤキャラクタP1に向かって移動し、集中攻撃を行なうこととなるが、第2および第3敵キャラクタE2,E3の一方を集中攻撃に参加させず、第2プレイヤキャラクタP2に対して攻撃を行うようにしても良い。
すなわち、集中攻撃対象が第1および第2プレイヤキャラクタP1,P2のいずれかに決定しても、その周囲の敵キャラクタを全て集中攻撃対象のプレイヤキャラクタに向かわせるのではなく、1体または数体の敵キャラクタを、他方のプレイヤキャラクタの攻撃用に残置させても良い。これにより、他方のプレイヤキャラクタが集中攻撃対象のプレイヤキャラクタを救出する行動に向かうのを阻止することができる。
続いて、集中攻撃解除条件について説明する。本実施の形態においては、集中攻撃解除条件として、集中攻撃の開始から所定時間(例えば30秒)が経過したこと、並びに、第1および第2プレイヤキャラクタP1,P2間の距離L1が、第1の所定値よりも小さい第2の所定値(例えば5m)以下となること、を採用する。
集中攻撃解除条件に、集中攻撃の開始から所定時間が経過したことを含ませることにより、一度開始された集中攻撃がすぐに終了してしまうことを回避できるため、集中攻撃を受ける遊戯者の恐怖感を高めることができる。
また、集中攻撃解除条件に、第1および第2プレイヤキャラクタP1,P2間の距離L1が、第1の所定値よりも小さい第2の所定値以下となることを含ませることにより、集中攻撃を受けているプレイヤキャラクタを救助するために他のプレイヤキャラクタが近づいてきたときには、敵キャラクタの集中攻撃を停止させることができ、プレイヤキャラクタ同士の連帯感を高めることができる。
図8は、集中攻撃解除条件を満たすか否かを判定する集中攻撃解除処理の詳細を説明するフローチャートである。この集中攻撃解除処理は、集中攻撃制御部53内のフラグ53aがONである場合に、所定期間(例えば1フレーム)ごとに実行される。
まず、ステップS22において、その集中攻撃が開始されてから所定時間(例えば30秒)が経過したか否かが、集中攻撃制御部53によって判定される。所定時間が経過していない場合は、集中攻撃解除処理を終了する。つまり、現在行われている集中攻撃を継続する。
その集中攻撃が開始されてから所定時間が経過している場合には、次にステップS23において、2人のプレイヤキャラクタ同士が所定距離内に近づいたか否か、すなわち、第1および第2プレイヤキャラクタP1,P2間の距離L1が、第1の所定値よりも小さい第2の所定値以下となったか否か、が判定される。
もし、第2の所定値以下となっていない場合には、集中攻撃解除処理を終了する。
一方、第2の所定値以下となっている場合には、ステップS24に進み、集中攻撃制御部53内のフラグ53aがOFFに設定される。この段階で集中攻撃解除処理が完了する。
本実施の形態に係るゲームプログラム、記憶媒体およびコンピュータによれば、集中攻撃制御部53は、所定の集中攻撃開始条件が成立したときにフラグ53aをONに設定することによって、複数のプレイヤオブジェクトのうちの一つに対する集中的な攻撃を二以上の敵オブジェクトに開始させる。よって、自己のプレイヤオブジェクトが敵オブジェクトから突如、集中的に攻撃されるかもしれないとの恐怖感を遊戯者に抱かせることができ、単調でないスリリングなゲーム進行を実現することができる。
また、本実施の形態に係るゲームプログラム、記憶媒体およびコンピュータによれば、所定の集中攻撃開始条件には、ゲーム空間内における複数のプレイヤオブジェクト間の距離が、第1の所定値以上となることが含まれる。よって、自己のプレイヤオブジェクトが、仲間たる他のプレイヤオブジェクトからはぐれると、敵オブジェクトから集中的に攻撃されるかもしれないとの恐怖感を遊戯者に抱かせることができる。
また、本実施の形態に係るゲームプログラム、記憶媒体およびコンピュータによれば、所定の集中攻撃開始条件には、さらに、各プレイヤオブジェクトに対応するそれぞれの仮想カメラによる撮像範囲内に、同一の、または、異なる敵オブジェクトが入っていることが含まれる。よって、集中攻撃が開始されると、集中攻撃を受けないプレイヤオブジェクトに対応する仮想カメラの撮像範囲内に入っていた敵オブジェクトが集中攻撃対象のプレイヤオブジェクトに向かうため、集中攻撃を受けないプレイヤオブジェクトの遊戯者は、他のプレイヤオブジェクトが集中攻撃対象とされていることに気づくことができ、興趣を増す。
また、本実施の形態に係るゲームプログラム、記憶媒体およびコンピュータによれば、所定の集中攻撃解除条件には、ゲーム空間内における複数のプレイヤオブジェクト間の距離が、第1の所定値よりも小さい第2の所定値以下となることが含まれる。よって、集中攻撃を受けているプレイヤオブジェクトを救助するために他のプレイヤオブジェクトが近づいてきたときには、敵オブジェクトの集中攻撃を停止させることができ、プレイヤオブジェクト同士の連帯感を高めることができる。
また、本実施の形態に係るゲームプログラム、記憶媒体およびコンピュータによれば、集中的な攻撃を、所定の確率で敵オブジェクトに開始させる。よって、必ずしも集中攻撃が開始されるとは限らず、いつ集中攻撃が開始するか分からないとの恐怖感を遊戯者に抱かせることができ、単調でないスリリングなゲーム進行を実現することができる。
また、本実施の形態に係るゲームプログラム、記憶媒体およびコンピュータによれば、複数のプレイヤオブジェクトのうち、少なくとも一つの敵オブジェクトに発見されているものであって、最も多くの敵オブジェクトに囲まれているプレイヤオブジェクトを集中的な攻撃の対象とする。よって、ゲーム進行の状況に応じて、集中攻撃対象となるプレイヤオブジェクトが変化するため、単調でないスリリングなゲーム進行を実現することができる。
<変形例>
集中攻撃開始条件として複数の条件を設定したが、必ずしも複数である必要はなく、そのうちの少なくとも一つの条件があれば良い。
集中攻撃解除条件として複数の条件を設定したが、必ずしも複数である必要はなく、そのうちの少なくとも一つの条件があれば良い。
集中攻撃専用の移動攻撃処理を追加しても良い。例えば、集中攻撃対象のプレイヤキャラクタとの距離が2.5m以内になるまで、敵キャラクタがそのプレイヤキャラクタに向かって走るといった移動攻撃処理を、集中攻撃専用の処理として追加する。
集中攻撃開始条件の一つとして説明した抽選の確率は、固定値(上記の例では50%)でなくても良い。例えば、複数のプレイヤキャラクタ間の距離が大きくなるほど、当選確率を高くしても良い。
集中攻撃解除処理において、複数のプレイヤキャラクタ間の距離が第2の所定値以下となっている期間が、所定期間以上継続していることを、集中攻撃解除条件の一つに含めても良い。
集中攻撃解除処理において、集中攻撃を受けていないプレイヤキャラクタが、集中攻撃に参加している敵キャラクタに対して攻撃を行うことを、集中攻撃解除条件の一つに含めても良い。集中攻撃の対象となっていないプレイヤキャラクタが、集中攻撃に参加している敵キャラクタに対して攻撃を行うことによって、集中攻撃の対象となっているプレイヤキャラクタを救助することができる。よって、プレイヤキャラクタ同士の連帯感を高めることができる。この場合、集中攻撃に参加している全ての敵キャラクタに関して集中攻撃を解除しても良いし、または、集中攻撃に参加している全ての敵キャラクタのうちの一部の敵キャラクタに関してのみ集中攻撃を解除しても良い。なお、後者の場合は、集中攻撃を受けていないプレイヤキャラクタから攻撃を受けた敵キャラクタのみに関して集中攻撃を解除しても良い。一部の敵キャラクタが攻撃を受けたからといって、集中攻撃に参加している全ての敵キャラクタが集中攻撃を解除することはないため、ゲーム進行上の不自然さを解消できるとともに、救助の困難性を高めることができる。
プレイヤキャラクタは3人以上であっても良い。例えば3人である場合、3人のうちの1人が、残りの2人のうち少なくとも1人に対して所定距離以上離れたことを、集中攻撃開始条件の一つに含めることができる。あるいは、3人それぞれが所定距離以上離れたことを、集中攻撃開始条件の一つに含めることができる。集中攻撃解除処理についても同様であり、3人のうちの1人が、残りの2人のうち少なくとも1人に対して所定距離以内に近づいたことを、集中攻撃解除条件の一つに含めることができる。あるいは、3人の全員が所定距離以内に近づいたことを、集中攻撃解除条件の一つに含めることができる。
パートナーがNPCである場合には、遊戯者の操作によって、集中攻撃からの救助を求めるサイン(指示)をNPCに出すことができるようにしても良い。また、NPCのAIの判断により、遊戯者からの指示がなくともNPCが自発的に救助に向かうようにしても良い。このとき、NPCが他の動作(他の敵キャラクタと戦っている等)をキャンセルして、すぐさま救助に向かうようにしても良い。あるいは、NPC自身の身を守る等の他の動作を実行している場合には、その動作を終えてから救助に向かうようにしても良い。また、NPCが他の動作を実行していないとき(手が空いている)場合であっても、救助に向かうタイミングを意図的に遅延させるようにしても良い。そして、そのNPCの反応のタイミング(救助に向かうまでの遅延時間)は、ゲームの進行状況に応じて変動させても良い。例えば、NPCとの信頼関係の大きさを示すパラメータ(ゲームの進行に応じて増減する)を導入し、そのパラメータの値が大きいほど、救助に向かうまでの遅延時間を小さくするようにしても良い。