以下、本発明の実施の形態に係るゲームプログラムおよびゲームシステムについて、図面を参照しつつ説明する。
[ハードウェア構成]
図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は、図1に示すゲーム装置2が実行するゲームプログラム30aによって実現されるゲームの内容を説明するための模式図である。図2には、ゲーム装置2のディスプレイ19に表示されるゲーム画面Dが示されている。また、ゲーム画面Dには、プレイヤキャラクタPの体力値やスタミナ値を示すゲージG1,G2が表示されている。なお、ゲーム画面Dには、プレイヤキャラクタPの使用可能アイテムなども表示されるが、図示を省略している。
本ゲームでは、所定の広がりを有する仮想空間Sが設定されており、該仮想空間S内には、コントローラ24の操作によりユーザが直接的にその動作を制御することのできるプレイヤキャラクタPが存在している。また、同じ仮想空間S内には、ユーザの操作によってはその動作を直接的に制御することができず、CPU10によって動作が制御されるノンプレイヤキャラクタ(NPC)であるモンスター等の敵キャラクタNも出現するようになっている。また、同じ仮想空間S内には、図2に示すような岩A1や木A2,A3などの様々なオブジェクトAが適宜配置されている。また、仮想空間S内においてプレイヤキャラクタP近傍の所定位置には、仮想空間Sを撮像するための仮想カメラ(図示せず)が配置されており、図2に示すように、ゲーム装置2のディスプレイ19には、該仮想カメラにより撮像された仮想空間Sの画像がゲーム画面D上に表示される。そして、本ゲームは、ユーザがディスプレイ19に表示された仮想空間Sを見ながら、プレイヤキャラクタPを操作して敵キャラクタNと戦闘を行い、これを討伐するアクションゲームになっている。
本実施形態のゲームプログラム30aでは、プレイヤキャラクタPの所定の敵キャラクタNへの攻撃態様の1つである乗り攻撃が所定のイベントとして設定されている。乗り攻撃は、敵キャラクタN上に乗った状態で攻撃するイベントである。このため、プレイヤキャラクタPはジャンプ攻撃などによって敵キャラクタNを攻撃することにより、図2に示すように、当該敵キャラクタN上に乗ることが可能となっている。また、乗り攻撃のイベント中は、敵キャラクタN上で攻撃することが可能となり、乗り攻撃のイベントに成功すると、敵キャラクタNは、プレイヤキャラクタPからの攻撃を受け易くなるダウン状態となる。ダウン状態は、より大きなダメージを敵キャラクタNに与えることができる状態である。
乗り攻撃が可能な敵キャラクタNには、プレイヤキャラクタPの所定の攻撃により与えたダメージを蓄積するパラメータ(以下、乗り移行パラメータ)が予め設けられている。敵キャラクタNの乗り移行パラメータは、与えられたダメージに応じた値が蓄積される。この乗り移行パラメータに蓄積された値が所定の閾値以上となると、プレイヤキャラクタPが、敵キャラクタNに乗っていない通常の状態(以下、「通常状態」という。)から敵キャラクタNに乗っている状態(以下、「乗り状態」という。)に移行可能になる。乗り移行パラメータは、武器の種類、攻撃が当たった部位、敵キャラクタNの状態などによって異なるダメージに応じた値が蓄積される。
敵キャラクタNは、プレイヤキャラクタPが乗ることができる複数の部位(以下、「乗り可能部位」ともいう。)を有している。本実施形態では、敵キャラクタNは、頭部R1、胴部R2及び尾部R3の3つの乗り可能部位を有している。但し、敵キャラクタNが有する乗り可能部位の部位種や数は、敵キャラクタNの種類に応じて異なってもよい。本実施形態では、プレイヤキャラクタPによる所定の攻撃により乗り移行パラメータに蓄積された値が所定の閾値以上となったときは、プレイヤキャラクタPは、当該所定の攻撃がヒットした箇所に最も近い乗り可能部位に自動的に乗った状態になる。
但し、通常状態から乗り状態への移行態様は、特に限定されない。例えば、プレイヤキャラクタPによる所定の攻撃が乗り可能部位R1〜R3以外の部位にヒットした場合に乗り移行パラメータが所定の閾値以上となったときには、プレイヤキャラクタPが乗り状態とならなくてもよい。この場合、乗り移行パラメータが閾値を超えた後に乗り可能部位に攻撃がヒットしたときや、ユーザがコントローラ24に対して所定の操作をしたときに、プレイヤキャラクタPが乗り可能部位に乗るようにしてもよい。
こうして、プレイヤキャラクタPが通常状態から乗り状態に移行すると、プレイヤキャラクタPと敵キャラクタNは、乗り攻撃イベント特有の行動を行えるようになる。本実施形態では、プレイヤキャラクタPが乗り状態にある場合、ユーザによるコントローラ24の操作に応じて、プレイヤキャラクタPは、現在乗っている乗り可能部位から別の乗り可能部位に移動することができる。そして、ユーザによるコントローラ24の操作に応じて、プレイヤキャラクタPは、乗っている乗り可能部位において、攻撃、防御、並びにアイテムの採取及び使用等の所定の行動を行うことができる。
乗り可能部位を有する敵キャラクタNには、乗り状態にあるプレイヤキャラクタPから攻撃を受けたダメージに応じて変化させるパラメータ(以下、乗り攻撃パラメータ)が設定されている。乗り状態にあるプレイヤキャラクタPが敵キャラクタNに対して所定の攻撃を行い、乗り攻撃パラメータが所定の閾値に達すると、乗り攻撃イベントは成功となり、敵キャラクタNを転倒させ、ダウン状態にさせることができる。
他方、敵キャラクタNは、プレイヤキャラクタPが乗り状態にある場合、プレイヤキャラクタPが乗っている部位に応じた所定の行動を行う。具体的には、プレイヤキャラクタPが乗り状態にある場合、敵キャラクタNは、振り落とし攻撃を行うか、あるいはぶつけ攻撃を行う。
図3(A)は、振り落とし攻撃の一例を示す模式図である。振り落とし攻撃は、乗り可能部位を振ったり、その場で暴れたりして、プレイヤキャラクタPを乗っている部位から振り落とそうとする攻撃である。図3(A)には、一例として、敵キャラクタNの頭部R1に乗っているプレイヤキャラクタPを振り落とすために、敵キャラクタNが頭部R1を振る振り落とし攻撃を行う状況が示されている。
プレイヤキャラクタPが振り落とし攻撃を受けると、プレイヤキャラクタPのスタミナ値が減少する。そして、スタミナ値が所定の閾値(0を含む。)以下になると、乗り攻撃イベントは失敗となり、乗り状態が解除され、プレイヤキャラクタPは不利な状態となる(例えばダメージを与えられたり、敵キャラクタNがプレイヤキャラクタPを捕らえ、拘束攻撃されたりする)。
振り落とし攻撃に対して、プレイヤキャラクタPは、ユーザによるコントローラ24の操作に応じて、乗っている部位にしがみつく行動(以下、「しがみつき行動」という。)を行うことができる。これにより、しがみつき行動を行わずに振り落とし攻撃を受けた場合に比べて、スタミナ値の減少を抑制することができる。また、振り落とし攻撃に対して、プレイヤキャラクタPは、ユーザによるコントローラ24の操作に応じて、振り落とし攻撃の対象となっている乗り可能部位から別の乗り可能部位に移動して、振り落とし攻撃を回避することもできる。
図3(B)は、ぶつけ攻撃の一例を示す模式図である。ぶつけ攻撃は、乗り状態にあるプレイヤキャラクタPを仮想空間S内に配置された所定のオブジェクトにぶつけようとする攻撃である。仮想空間S内には、プレイヤキャラクタPをぶつけることが可能なオブジェクト(以下、「ぶつけオブジェクト」という。)Bが予め設けられている。図3(B)には、一例として、敵キャラクタNがぶつけオブジェクトBである木B1に向かって突進して、頭部R1に乗っているプレイヤキャラクタPを木B1にぶつけるぶつけ攻撃を行う状況が示されている。
図3(B)に示すようにぶつけ攻撃がプレイヤキャラクタPにヒットし、所定の条件が満たされると、乗り攻撃イベントは失敗となり、乗り状態が解除され、プレイヤキャラクタPは不利な状態となる。
ぶつけ攻撃に対して、プレイヤキャラクタPは、ユーザによるコントローラ24の操作に応じて、ぶつけ攻撃の対象となっている乗り可能部位から別の乗り可能部位に移動して、ぶつけ攻撃を回避することもできる。例えば図3(B)に示す例を用いて説明すれば、プレイヤキャラクタPは、木B1にぶつけられる前に、現在乗っている頭部R1から別の部位である例えば胴部R2に移動することにより、ぶつけ攻撃を回避できる。ぶつけ攻撃の回避に成功した場合、敵キャラクタNは、自身の部位をぶつけオブジェクトBにぶつけて、逆にダメージを受ける。
[制御部の機能的構成]
図4は、ゲームシステム1が備えるゲーム装置2の機能的な構成を示すブロック図である。ゲーム装置2は、本発明のゲームプログラム30aを実行することで、仮想空間生成手段41、プレイヤキャラクタ(PC)制御手段42、ノンプレイヤキャラクタ(NPC)制御手段43、パラメータ管理手段44、及びイベント処理手段45として機能する。なお、このような各機能は、ハード的には図1に示すCPU10,HDD14,ROM15,RAM16,グラフィック処理部17,ビデオ変換部18、オーディオ合成部20、オーディオ変換部21、無線通信制御部23等から構成されている。
仮想空間生成手段41は、プレイヤキャラクタPが行動する舞台となる三次元の仮想空間Sを生成する。上述したように、仮想空間S内には、プレイヤキャラクタPが存在している。また、仮想空間S内には、種類の異なる複数の敵キャラクタNが存在しており、各敵キャラクタNは、複数の乗り可能部位を有している。また、仮想空間生成手段41は、上述したオブジェクトAを生成し、仮想空間S内に配置している。オブジェクトAには、敵キャラクタNのぶつけ攻撃に利用される上述したぶつけオブジェクトBが含まれる。
PC制御手段42は、ユーザによるコントローラ24の操作に応じて、攻撃、防御、並びにアイテムの採取及び使用等、仮想空間S内でのプレイヤキャラクタPの行動を制御する。PC制御手段42は、状態移行手段42a及び移動手段42bを含む。状態移行手段42aは、プレイヤキャラクタPを、敵キャラクタNが有する複数の乗り可能部位の何れにも乗っていない通常状態と複数の乗り可能部位のうちのある部位に乗った乗り状態との間で移行させる。移動手段42bは、プレイヤキャラクタPが乗り状態にある場合に、ユーザによるコントローラ24の操作に応じて、プレイヤキャラクタPが現在乗っている乗り可能部位から別の乗り可能部位にプレイヤキャラクタPを移動させる。
NPC制御手段43は、仮想空間S内でプレイヤキャラクタPと戦闘を行うNPCである敵キャラクタNの行動を制御する。NPC制御手段43は、プレイヤキャラクタPが乗り状態にある場合、プレイヤキャラクタPが乗っている部位に応じた所定の行動を敵キャラクタNに実行させる。具体的には、NPC制御手段43は、プレイヤキャラクタPが乗り状態にある場合、プレイヤキャラクタPが乗っている部位に応じた振り落とし攻撃又はぶつけ攻撃を敵キャラクタNに実行させる。
パラメータ管理手段44は、プレイヤキャラクタPや敵キャラクタNに対して設定された様々なパラメータを管理する。本実施形態では、パラメータ管理手段44は、プレイヤキャラクタPに対して設定された体力値やスタミナ値を管理する。
本実施形態において、体力値は、プレイヤキャラクタPの生命力を意味するパラメータである。体力値は、通常状態にあるプレイヤキャラクタPが受けた攻撃に応じた分だけ減少し、回復アイテム等により回復する。また、スタミナ値は、プレイヤキャラクタPがダッシュなど特定の行動をとることによって消費されるパラメータである。スタミナ値は、プレイヤキャラクタPが特定の行動をとるごとに、その行動に応じた分だけ減少する、あるいは特定の行動をとっている間、所定の速度で減少する。また、スタミナ値は、プレイヤキャラクタPが特定の行動をとっていない間、所定の速度で最大値に向かって時間とともに回復する。スタミナ値の最大値は、所定の値でもよいし、時間ととともに減少するなど変更するものであってもよい。なお、パラメータ管理手段44は、プレイヤキャラクタPが乗り状態にある場合には、スタミナ値を、プレイヤキャラクタPが特定の行動をとっていない間、時間とともに回復させなくてもよい。
本実施形態では、パラメータ管理手段44は、乗り攻撃イベント中にプレイヤキャラクタPが攻撃を受けた場合、スタミナ値を減少させる。但し、パラメータ管理手段44は、スタミナ値を減少させる代わりに、体力値や他のパラメータを変化させてもよい。例えば、乗り攻撃イベントの発生と同時にスタミナ値とは別のパラメータを設定して、乗り攻撃イベント中にプレイヤキャラクタPが攻撃を受けた場合に当該パラメータを変化させてもよい。
また、本実施形態では、パラメータ管理手段44は、NPCである敵キャラクタNに対して設定された乗り移行パラメータや乗り攻撃パラメータも管理する。
乗り移行パラメータには、敵キャラクタNに対して初期値及び閾値が設定されている。そして、パラメータ管理手段44は、通常状態にあるプレイヤキャラクタPから敵キャラクタNがジャンプ攻撃など所定の攻撃を乗り可能部位に受けたときに、乗り移行パラメータを初期値から閾値に向かうように変化させる。
乗り攻撃パラメータには、敵キャラクタNに対して初期値及び閾値が設定されている。そして、パラメータ管理手段44は、乗り状態にあるプレイヤキャラクタPから敵キャラクタNが所定の攻撃を受けたときに、乗り攻撃パラメータを初期値から閾値に向かうように変化させる。但し、パラメータ管理手段44は、プレイヤキャラクタPとともに敵キャラクタNと戦闘を行う味方キャラクタが存在する場合には、乗り攻撃イベント中に、敵キャラクタNが味方キャラクタから所定の攻撃を受けたときにも、乗り攻撃パラメータを初期値から閾値に向かうように変化させてもよい。
パラメータ管理手段44は、乗り攻撃イベント中に、敵キャラクタNが攻撃を受けるたびに、乗り攻撃パラメータを変化させなくてもよい。例えば、敵キャラクタNが乗りイベント中に攻撃を受けて、所定の条件が満たされたときに、敵キャラクタNが特定のアクション(例えば、怯む動作)を実行するように設定しておき、パラメータ管理手段44は、そのアクションが実行されたときに乗り攻撃パラメータを変化させるようにしてもよい。この場合、敵キャラクタNのアクションの種類や大小などに応じて、乗り攻撃パラメータを変化させる量を変えてもよい。
イベント処理手段45は、乗り攻撃イベント特有の処理を行う。イベント処理手段45は、攻撃判定手段45a、状態復帰手段45b、特殊攻撃発生手段45c、オブジェクト検出手段45d、及びオブジェクト選択手段45eを含む。
攻撃判定手段45aは、プレイヤキャラクタPが乗り状態にある場合に、敵キャラクタNによる所定の攻撃がプレイヤキャラクタPにダメージを与える有効なものであったか否かを判定する。本実施形態では、攻撃判定手段45aは、敵キャラクタNによる振り落とし攻撃又はぶつけ攻撃がプレイヤキャラクタPにダメージを与える有効なものであったか否かを判定する。
本実施形態では、敵キャラクタNによる振り落とし攻撃が有効であると判定された場合、上述のパラメータ管理手段44は、プレイヤキャラクタPのスタミナ値を所定量だけ減少させる(言い換えれば、図2に示すゲージG2を所定量だけ減少させる)。なお、プレイヤキャラクタPのスタミナ値を減少させた結果、スタミナ値が所定の閾値(第1閾値)以下になった場合、乗り攻撃イベントは失敗となる。
また、敵キャラクタNによるぶつけ攻撃が有効であると判定された場合、原則、乗り攻撃イベントは失敗となり、状態移行手段42aは、プレイヤキャラクタPを乗り状態から通常状態に移行し、プレイヤキャラクタPは不利な状態となる。
状態復帰手段45bは、ぶつけ攻撃が有効であると判定された場合でも、所定の条件が満たされているときは、例外的にプレイヤキャラクタPを乗り状態に復帰させる。本実施形態では、状態復帰手段45bが、ぶつけ攻撃が有効であると判定された場合でも、スタミナ値が所定の閾値(第2閾値)より大きい場合に、プレイヤキャラクタPを乗り状態に復帰させる状態復帰処理を実行する。例えば、第2閾値は、第1閾値より大きい値である。
具体的に、状態復帰手段45bは、ぶつけ攻撃によって乗っていた部位から落とされる途中のプレイヤキャラクタPが、スタミナ値を所定量消費させるとともに、当該乗っていた部位に復帰する演出を実行する。このような演出は、プレイヤキャラクタPがスリンガーロープ等を用いて乗っていた部位に戻るデモムービーや仮想カメラの位置やアングルの変化により行われる。
状態復帰手段45bは、プレイヤキャラクタPがぶつけ攻撃を受けたときの救済措置として用意されているため、ゲームに不慣れなユーザでも乗り攻撃のイベントを一定時間継続させて楽しむことができる。但し、プレイヤキャラクタPがぶつけ攻撃を受けたときに、状態復帰手段45bがプレイヤキャラクタPを乗り状態に復帰させない場合があってもよい。例えば、敵キャラクタNの強さ、ぶつけ攻撃の対象となる部位の種類、ぶつけ攻撃の際の敵キャラクタNのアクションの大きさなどによっては、敵キャラクタNによるぶつけ攻撃が有効であると判定された場合に、原則通り、スタミナ値によらず、乗り攻撃イベントが失敗となるようにしてもよい。
特殊攻撃発生手段45cは、敵キャラクタNに関する所定の条件が満たされた場合に、プレイヤキャラクタPによる通常の攻撃よりも乗り攻撃パラメータを大きく変更させる特殊攻撃を、プレイヤキャラクタPに実行可能な状態とする。
より詳しくは、乗りイベント中のプレイヤキャラクタPの攻撃には、ユーザによるコントローラ24の操作に応じてプレイヤキャラクタPに行わせる通常攻撃と、ユーザによるコントローラ24の操作によらずに、所定の条件が満たされたときに自動的に発動される特殊攻撃がある。通常攻撃は、例えばプレイヤキャラクタPに乗り攻撃専用の武器(例えばナイフ)やアイテムを用いて実行させる攻撃である。特殊攻撃は、通常攻撃とは異なる態様の攻撃であり、所定の条件が満たされた場合に自動的にプレイヤキャラクタPに実行させる攻撃である。
本実施形態では、PC制御手段42は、ユーザによるコントローラ24の操作に応じて、乗り状態にあるプレイヤキャラクタPに敵キャラクタNに対して、通常攻撃を行わせる。特殊攻撃発生手段45cは、乗り攻撃イベント中、プレイヤキャラクタPが特定の部位に一定のダメージを与えた場合に、所定の確率でプレイヤキャラクタPに特殊攻撃を実行させる。
プレイヤキャラクタPに特殊攻撃を実行させる確率は、予め定められたものであってもよいし、変動するものであってもよい。例えば、プレイヤキャラクタPに特殊攻撃を実行させる確率は、乗り攻撃パラメータが閾値に近づくにつれて高くなるように設定されていてもよい。また、プレイヤキャラクタPが特殊攻撃を実行する場合、プレイヤキャラクタPの武器種に応じたデモムービーや仮想カメラの位置やアングルの変化により、プレイヤキャラクタPによる特殊攻撃の演出を行ってもよい。
オブジェクト検出手段45dは、複数のオブジェクトAの中から、仮想空間S内の所定の領域に含まれるものを検出する。オブジェクト選択手段45eは、オブジェクト検出手段により検出されたオブジェクトの中から、ぶつけ攻撃に利用するオブジェクトを選択する。オブジェクト検出手段45dによるオブジェクト検出方法とオブジェクト選択手段45eによるオブジェクト選択方法について、詳細は後述する。
次に、乗り攻撃のイベント処理の流れについて、図5に示すフローチャートを参照しながら説明する。
上述したとおり、乗り状態においては、プレイヤキャラクタPは、ユーザがコントローラ24を操作することによって敵キャラクタNに対して攻撃を行うことが可能である。図5に示すように、イベント処理手段45は、敵キャラクタNにプレイヤキャラクタPによる攻撃が行われたか否かを判定する(ステップS1)。攻撃が行われた場合(ステップS1:Yes)、パラメータ管理手段44aは、乗り攻撃パラメータを所定の方向へ所定量増大させる(ステップS2)。乗り攻撃パラメータは、敵キャラクタNに与えたダメージの大きさに応じた分だけ増大されてもよい。乗り攻撃パラメータが増大された後、イベント処理手段45は、乗り攻撃パラメータが閾値以上であるか否かを判定する(ステップS3)。乗り攻撃パラメータが閾値以上であった場合(ステップS3:Yes)、イベント処理手段45はイベント成功処理を実行する(ステップS4)。これにより、プレイヤキャラクタPの乗り状態が解除され、敵キャラクタNがダウン状態になる。
乗り状態において、所定の時間、プレイヤキャラクタPによる敵キャラクタNへの攻撃がない場合(ステップS1:No)、NPC制御手段43は、プレイヤキャラクタPが乗っている部位に応じた振り落とし攻撃又はぶつけ攻撃を敵キャラクタNに実行させる。振り落とし攻撃とぶつけ攻撃のいずれを行うかは、例えば所定の確率に基づく抽選により決定される。この確率は、一定であってもよいし、例えば乗り攻撃パラメータに蓄積された値に応じて変更されてもよい。敵キャラクタNがぶつけ攻撃を行う場合(ステップS5:Yes)、ぶつけ攻撃処理が実行される(ステップS6)。敵キャラクタNがぶつけ攻撃を行わない場合(ステップS5:No)、振り落とし攻撃処理が実行される(ステップS7)。
次に、図5のステップS6に示すぶつけ攻撃処理について、図6を参照して説明する。図6は、ぶつけ攻撃処理の流れを示すフローチャートである。敵キャラクタNがぶつけ攻撃を行う場合、まずオブジェクト検出手段45dが、後述するように所定の条件を満たすぶつけオブジェクトBの検出を実行する(ステップT1)。その後、オブジェクト選択手段45eが、オブジェクト検出手段45dにより検出されたぶつけオブジェクトBの中から、ぶつけ攻撃に利用するオブジェクトを選択する(ステップT2)。
ぶつけ攻撃に利用するオブジェクトが選択されると、NPC制御手段43は、選択したオブジェクトに対してプレイヤキャラクタPをぶつける動作を敵キャラクタNに実行させる(ステップT3)。そして、攻撃判定手段45aは、敵キャラクタNによるぶつけ攻撃がプレイヤキャラクタPにダメージを与える有効なものであったか否かを判定する(ステップT4)。この判定は、プレイヤキャラクタPが乗っている部位と敵キャラクタNがオブジェクトにぶつけた部位とが一致するか否かを判定することによりなされてもよい。あるいは、実際にプレイヤキャラクタPとぶつけオブジェクトBとが衝突したか否かを判定することによりなされてもよい。
ぶつけ攻撃がプレイヤキャラクタPに対して有効であった場合(ステップT4:Yes)、スタミナ値が第2閾値以下か否かを判定する(ステップT5)。スタミナ値が第2閾値以下である場合(ステップT5:Yes)、イベント失敗処理が実行されて(ステップT6)、ぶつけ攻撃処理を終了する。
スタミナ値が第2閾値以下でない場合(ステップT5:No)、状態復帰処理が実行されて(ステップT7)、ぶつけ攻撃処理を終了する。即ち、プレイヤキャラクタPのスタミナ値を所定量減少させるとともに、一旦乗り状態が解除されたプレイヤキャラクタPを、乗り状態に復帰させる。
ぶつけ攻撃がプレイヤキャラクタPに対して有効でなかった場合(ステップT4:No)、乗り攻撃パラメータを増大させる(ステップT8)。即ち、プレイヤキャラクタPがぶつけ攻撃の回避に成功すると、敵キャラクタNは自身の部位をオブジェクトにぶつけてダメージを受ける。ぶつけ攻撃を回避することによる乗り攻撃パラメータの増大量は、ぶつけた部位の種類やぶつけ攻撃の際の敵キャラクタNのモーション等に応じて決定されてもよい。
また、プレイヤキャラクタPがぶつけ攻撃の回避に成功した場合に、乗り攻撃パラメータを増大させることの代わりに、あるいはそれに加えて、プレイヤキャラクタPにとって有利な別の効果が用意されていてもよい。例えば、プレイヤキャラクタPがぶつけ攻撃の回避に成功した場合、敵キャラクタNの行動が、一定時間不能になったり、散漫になったりしてもよい。また、例えば、プレイヤキャラクタPがぶつけ攻撃の回避に成功した場合、敵キャラクタNの体力値あるいはスタミナ値を減少させるなど、乗り攻撃パラメータとは別のパラメータを変化させてもよい。
乗り攻撃パラメータが増大された後、乗り攻撃パラメータが閾値以上であるか否かが判定される(ステップT9)。乗り攻撃パラメータが閾値以上であった場合(ステップT9:Yes)、イベント成功処理が実行されて(ステップT10)、ぶつけ攻撃処理を終了する。なお、乗り攻撃パラメータが閾値より小さいと判定された場合(ステップT9:No)も、ぶつけ攻撃処理を終了する。
次に、図5のステップS7に示す振り落とし攻撃処理について、図7を参照して説明する。図7は、振り落とし攻撃の流れを示すフローチャートである。
NPC制御手段43は、プレイヤキャラクタPが乗っている部位を振る動作を敵キャラクタNに実行させる(ステップU1)。プレイヤキャラクタPが乗っている部位と敵キャラクタNが振る部位とが一致していた場合(ステップU2:Yes)、プレイヤキャラクタPがしがみつき行動を行っているか否かを判定する(ステップU3)。しがみつき行動を行っていない場合(ステップU3:No)、パラメータ管理手段44は、スタミナ値を所定の値だけ減少させる(ステップU5)。しがみつき行動を行っている場合(ステップU3:Yes)、ステップU5のときよりスタミナ値の減少量は小さくなるよう設定される(ステップU4)。あるいは、プレイヤキャラクタPがしがみつき行動を行っている場合には、スタミナ値を全く減少させないようにしてもよい。ステップU4又はU5でスタミナ値を減少させた結果、スタミナ値が第1閾値以下となった場合(ステップU6:Yes)、イベント失敗処理が実行されて(ステップU7)、振り落とし攻撃処理を終了する。なお、プレイヤキャラクタPが乗っている部位と敵キャラクタNが振る部位とが一致していない場合(ステップU2:No)や、スタミナ値が第1閾値より大きいと判定された場合(ステップU6:No)も、振り落とし攻撃処理を終了する。
次に、図6のステップT1,T2に示すぶつけオブジェクトBの検出及び選択について、図8を参照して説明する。図8は、乗り状態にあるプレイヤキャラクタPと敵キャラクタNが存在する仮想空間Sの一部を斜め上方から見た模式図である。上述の通り、仮想空間Sには、いくつかのオブジェクトAが配置されており、オブジェクトAにはぶつけオブジェクトBが含まれる。図8には、オブジェクトAとして、木、岩及び絶壁等が示されているが、オブジェクトAは、これらに限られず、例えば塔や家などの仮想空間S内の人工物であってもよい。なお、図を見やすくするために、説明に必要なものにのみ符号を付し、それ以外は省略する。
本実施形態において、ぶつけオブジェクトBには、ぶつけ攻撃によりプレイヤキャラクタPをぶつける位置(以下、「ぶつけ位置」という。)Cが予め設けられており、当該ぶつけ位置を示す情報(以下、「ぶつけ位置情報」という。)が記憶部に予め記憶されている。ぶつけ位置情報は、例えば、仮想空間Sにおける座標データの形で記憶されている。
オブジェクト検出手段45dは、仮想空間S内にある複数のぶつけ位置Cの中から、所定の検出範囲R内に含まれるぶつけ位置Cを検出する。こうして、オブジェクト検出手段45dは、仮想空間S内の所定の領域に含まれるぶつけオブジェクトBを検出する。図8の例では、オブジェクト検出手段45dに検出範囲R内に含まれるぶつけ位置C1〜C4が検出されることにより、ぶつけオブジェクトBである木B1,B2や絶壁の下部B3と上部B4が検出される。
本実施形態では、検出範囲Rは、敵キャラクタNを含む立方体状の範囲であるが、これに限られない。例えば、検出範囲Rは、敵キャラクタNから所定の距離以内の半球状の範囲でもよい。あるいは、仮想空間Sがいくつかのエリアに分断されて存在している場合、検出範囲Rは、敵キャラクタNが現在位置するエリアの全体であってもよいし、当該エリアのうち敵キャラクタNを含む所定の範囲であってもよい。
記憶部には、NPC種関連情報、優先情報及び方向情報が、ぶつけ位置情報、即ちぶつけ位置と関連付けられて記憶されている。下の表1は、図8に示すぶつけ位置C1〜C4に関連付けられたNPC種関連情報、優先情報及び方向情報の内容の一例を示す。
NPC種関連情報は、複数のぶつけオブジェクトBとNPCである敵キャラクタNの種類との関連性を示す情報である。本実施形態では、仮想空間S内に存在する敵キャラクタNは、空中を飛行する空中モンスターと地上を歩いて移動する地上モンスターに分類される。そして、NPC種関連情報は、表1に示すように、ぶつけ位置C1〜C4が空中モンスター用か、あるいは地上モンスター用かを示す情報となっている。但し、NPC種関連情報は、これに限られず、例えば関連するぶつけ位置が空中モンスターと地上モンスターのいずれにも利用可能であることを示す情報であってもよい。なお、図8に示された敵キャラクタNは地上モンスターである。
オブジェクト選択手段45eは、NPC種関連情報と、プレイヤキャラクタPが乗り状態にある敵キャラクタNの種類とに基づき、ぶつけ攻撃に利用するオブジェクトを選択する。このため、NPC種類に応じて、ぶつけ攻撃に利用するのに適切なオブジェクトを選択することができる。これにより、例えば空中モンスターがぶつけ位置C3に対応する低位置のぶつけオブジェクトB3を利用したり、地上モンスターがぶつけ位置C4に対応する高位置のぶつけオブジェクトB4を利用したりすることがないため、ユーザに違和感を与えることを防ぐことができる。
優先情報は、複数のぶつけオブジェクトBの中で、いずれのぶつけ位置Cを優先するか、言い換えればいずれのぶつけオブジェクトBを優先するかに関する情報である。本実施形態では、優先情報は、表1に示すように、優先するか否かのいずれかを示す情報であるが、これに限られず、例えば、優先される順番を示す情報であってもよい。
オブジェクト選択手段45eは、優先情報に基づいて、ぶつけ攻撃に利用するオブジェクトを選択する。このため、優先させたいぶつけオブジェクトBから敵キャラクタNにぶつけ攻撃に利用させることができる。優先情報に基づき優先されるぶつけオブジェクトは、例えば、ぶつけ攻撃に利用されることにより別なイベントを発生させる特殊なぶつけオブジェクトBである。特殊なぶつけオブジェクトBとは、例えばぶつけ攻撃によって、破壊又は変形されたり、予め仕掛けられた罠が発動したり、そのオブジェクトに設けられたモンスターの巣から別のモンスターが現れたりなど、ぶつけ攻撃により別のイベントが発生するようなぶつけオブジェクトBである。このような特殊なぶつけオブジェクトBが優先的に利用されることにより、別のイベントを発生させやすくでき、ユーザに乗り攻撃イベントの面白さを実感させることができる。
方向情報は、ぶつけオブジェクトBにプレイヤキャラクタPをぶつける方向に関する情報である。NPC制御手段43は、ぶつけ攻撃に利用するぶつけオブジェクトBと方向情報とに基づいて、ぶつけ攻撃を行うときの敵キャラクタNの動作を制御する。これにより、ぶつけ攻撃に利用するオブジェクトの種類やその周りの環境等に応じて、適切に敵キャラクタNを動作させることができる。例えば、図8及び表1の例を用いて説明すれば、ぶつけオブジェクトである絶壁B3を利用してぶつけ攻撃を行う場合に、敵キャラクタNに絶壁B3に対して垂直な方向に部位をぶつけにいかせることで、ユーザに違和感なく敵キャラクタNに動作させることができる。また、例えば、ぶつけ位置C1にある木B1やぶつけ位置C2にある木B2は、表1に示すように、敵キャラクタNが木B1,B2の夫々の周囲のいずれの方向からでも部位をぶつけることができるように設定されている。
オブジェクト選択手段45eは、上述のNPC種関連情報、PCが乗り状態にあるNPCの種類、優先情報、及び各ぶつけ位置Cから敵キャラクタNまでの距離に関する情報に基づいて、ぶつけ攻撃に利用するオブジェクトを選択する。
図9は、図6のステップT2に示すオブジェクト選択処理の流れを示すフローチャートである。オブジェクト選択手段45eは、オブジェクト検出手段45dにより検出されたオブジェクトの中から、NPC種関連情報と、プレイヤキャラクタPが乗り状態にある敵キャラクタNの種類とに基づき、ぶつけ攻撃に利用するオブジェクトを選択する(ステップV1)。具体的には、オブジェクト選択手段45eは、オブジェクト検出手段45dにより検出されたぶつけ位置の中から、それらに関連するNPC種関連情報と敵キャラクタNの種類とが一致するぶつけ位置を選択することにより、ぶつけオブジェクトBを選択する。
次に、オブジェクト選択手段45eは、ステップV1で選択されたオブジェクトの中に、優先情報に基づいて優先されるオブジェクトがあるか否かを判定する(ステップV2)。具体的には、オブジェクト選択手段45eは、ステップV1で選択されたぶつけ位置の中に、優先情報に基づいて優先されるぶつけ位置があるか否かを判定する。
優先されるオブジェクトがある場合(ステップV2:Yes)、オブジェクト選択手段45eは、優先情報に基づいて、ぶつけ攻撃に利用するオブジェクト(即ち、ぶつけ位置)を選択する(ステップV3)。そして、オブジェクト選択手段45eは、ステップV3で選択されたオブジェクトの中から、敵キャラクタNに最も近いオブジェクト(即ち、ぶつけ位置)を選択する(ステップV4)。但し、ステップV4で、オブジェクト選択手段45eは、敵キャラクタNに最も近いオブジェクトではなく、最も遠いオブジェクトを選択してもよい。
優先されるオブジェクトがない場合(ステップV2:No)、オブジェクト選択手段45eは、ステップV1で選択されたオブジェクトの中から、敵キャラクタNに最も遠いオブジェクトを選択する(ステップV5)。敵キャラクタNに最も遠いオブジェクトが選択されることにより、乗り攻撃イベント中のシチュエーションが変化しやすくなる。但し、ステップV5で、オブジェクト選択手段45eは、敵キャラクタNから最も遠いオブジェクトではなく、最も近いオブジェクトを選択してもよい。
図8と表1の例を用いて説明すれば、オブジェクト選択手段45eは、オブジェクト検出手段45dにより検出されたぶつけ位置C1〜C4の中から、それらに関連するNPC種関連情報と敵キャラクタNの種類(地上モンスター)とが一致するぶつけ位置C1〜C3を選択する(ステップV1)。次に、ぶつけ位置C1〜C3に関連するオブジェクトB1〜B3の中に、優先すべきオブジェクトB1,B3(即ち、優先すべきぶつけ位置C1,C3)があることを判定する(ステップV2)。そして、優先すべきオブジェクトB1,B3(即ち、優先すべきぶつけ位置C1,C3)の中から、敵キャラクタNに最も近いぶつけオブジェクトB3(即ち、優先すべきぶつけ位置C3)を選択する(ステップV4)。
本実施形態では、優先情報に基づき優先されるぶつけオブジェクトB1,B3は、ぶつけ攻撃により利用できる回数に制限がある。例えば、図8に示すぶつけオブジェクトB1は、ぶつけ攻撃に1回利用されると、破壊されて、次回以降のぶつけ攻撃に利用されなくなる。このように、ぶつけ攻撃により利用できる回数に制限を設けることにより、ぶつけ攻撃に何回も同じオブジェクトが利用されるのを抑制することができる。
但し、優先情報に基づき優先されないぶつけオブジェクトB2,B4も、ぶつけ攻撃により利用できる回数に制限があってもよいし、いずれのぶつけオブジェクトも、ぶつけ攻撃により利用できる回数に制限がなくてもよい。また、同じオブジェクトが連続でぶつけ攻撃に利用されないように、ぶつけ攻撃に利用されたオブジェクトは、次回のぶつけ攻撃処理ではオブジェクト選択手段45eにより選択されないように設定されてもよい。
以上に示したように、本実施形態に係るゲームシステム1では、プレイヤキャラクタPが敵キャラクタNに乗った場合に、プレイヤキャラクタPは、ユーザによるコントローラ24の操作に応じて敵キャラクタNの部位を移動でき、敵キャラクタNは、プレイヤキャラクタPが乗っている部位に応じた所定の行動を実行する。このため、敵キャラクタNに乗った状態にあるプレイヤキャラクタPの行動内容を多様化させて、より高いゲーム性をユーザに提供することができる。
また、乗り攻撃イベント中の敵キャラクタNのぶつけ攻撃では、仮想空間S内に配置されたオブジェクトAが利用されるため、敵キャラクタNの攻撃の演出を多様化させることができる。
また、ぶつけ攻撃が無効だった場合、即ち、プレイヤキャラクタPが敵キャラクタNのぶつけ攻撃を回避した場合にも、プレイヤキャラクタPが敵キャラクタNを攻撃したときと同様の効果が得られるため、敵キャラクタNを攻撃する選択肢をユーザに提供することができる。
また、特殊攻撃発生手段45cが、敵キャラクタNに関する所定の条件が満たされた場合に、特殊攻撃をプレイヤキャラクタPに実行可能な状態とするため、乗り状態にあるプレイヤキャラクタPの攻撃態様を多様化させることができる。
本発明は上述した実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲で種々の変形が可能である。
例えば、上記実施形態では、プレイヤキャラクタPが乗り状態にある場合、敵キャラクタNは、振り落とし攻撃又はぶつけ攻撃を行っていたが、例えば敵キャラクタNは、振り落とし攻撃を行わず、ぶつけ攻撃のみを行ってもよい。
また、例えば、上記実施形態では、オブジェクト選択手段45eが、NPC種関連情報、PCが乗り状態にあるNPCの種類、優先情報、及び各ぶつけ位置Cから敵キャラクタNまでの距離に関する情報に基づいて、ぶつけ攻撃に利用するオブジェクトを選択していたが、これに限られない。例えば、優先情報が、ぶつけ攻撃に利用される順番またはそれに対応する情報である場合、オブジェクト選択手段45eが、各ぶつけ位置Cから敵キャラクタNまでの距離に関する情報を用いずに、ぶつけ攻撃に利用するオブジェクトを選択してもよい。