以下、本発明の実施の形態に係るゲームプログラム及びゲーム装置について、図面を参照しつつ説明する。
[ハードウェアの構成]
図1は、本発明の実施の形態に係るゲーム装置の一例としての携帯型ビデオゲーム機を示す模式的外観図である。この携帯型ビデオゲーム機(以下、「ゲーム機」)1は、中央にカラー液晶のディスプレイ2を備え、その左側にはプレイヤにより左手で操作される方向キー3、右側には右手で操作されるボタン群4(△ボタン、○ボタン、×ボタン、及び□ボタンを含む)が配置されている。そして、図示しないメディア装着部にゲームプログラム5a及びゲームデータ5bが記録されている記録媒体であるゲームメディア5(図2参照)がセットされ、ゲーム機1の電源がオンされることにより、ゲームがスタートする。
なお、本実施の形態に係るゲーム機1でプレイするゲームはロールプレイングゲームであって、仮想ゲーム空間内に多数の敵キャラクタが存在しており、プレイヤが操作するプレイヤキャラクタは、これらの敵キャラクタと順次対戦していく。各敵キャラクタには強さを表す指標として「ランク」が設定されており、プレイヤキャラクタが敵キャラクタに勝利すると、該敵キャラクタに設定されていたランクをプレイヤキャラクタのランクとして獲得することができる。そしてプレイヤは、最強の敵キャラクタに勝利してランク1位を獲得することを目指すようになっている。
図2は、図1に示すゲーム機1の内部構成を示すブロック図である。図2に示すようにゲーム機1は制御部30を備えており、該制御部30にはCPU11、描画データ生成プロセッサ12、RAM(Random Access Memory)13、ROM(Read Only Memory)14、描画処理プロセッサ15、及び音声処理プロセッサ18が含まれている。更にゲーム機1は、この他にもVRAM(Video-RAM)16、アンプ19、スピーカ20、イヤホン端子21、操作部22、メディアインタフェース23、無線LANモジュール24、及びバス25を備えている。そして、これらのうちCPU11、描画データ生成プロセッサ12、RAM13、ROM14、描画処理プロセッサ15、音声処理プロセッサ18、操作部22、メディアインタフェース23、及び無線LANモジュール24が、バス25によって相互にデータ伝送可能に接続されている。
操作部22は、上述した方向キー3及びボタン群4を含んでおり、プレイヤの操作を受け付けて、その操作内容に応じた操作信号をCPU11に入力する。また、方向キー3及びボタン群2が有する各種のボタンは、プレイヤキャラクタの特定の動作を指示するための操作子である。また、操作部22には、これら操作子以外にゲーム機1の電源の入/切を行うための電源スイッチ等が含まれる。
メディアインタフェース23は、図示しないメディア装着部にセットされたゲームメディア5にアクセスしてゲームプログラム5a及びゲームデータ5bを読み出す。このうちゲームプログラム5aは、上述したようにプレイヤキャラクタと敵キャラクタとが仮想ゲーム空間にて対戦する内容のゲームをゲーム機1に実行させるものである。また、ゲームデータ5bには、上記ゲームを実行する上で必要なデータとして、キャラクタや背景の画像データ、ステータスなどの情報表示用の画像データ、効果音やBGMなどの音声データ、文字や記号によるメッセージデータ等が含まれている。なお、記録媒体であるゲームメディア5は、半導体メモリのほか、光ディスクの一種であるUMD(Universal Media Disc)(登録商標)を採用することができる。
RAM13には、ゲームの進行に応じてゲームメディア5から読み込まれたゲームプログラム5a及びゲームデータ5bを格納するロードエリア、並びに、CPU11がゲームプログラム5aを処理する際に使用するためのワークエリアが設定されている。ROM14には、ディスクローディング機能などのゲーム装置1の基本的機能や、ゲームメディア5に記憶されているゲームプログラム5a及びゲームデータ5bの読み出し処理を制御する基本プログラムが記憶されている。
CPU11は、ゲームメディア5に記録されているゲームプログラム5a及びゲームデータ5bの全部または一部を、メディアインタフェース23を通じてRAM13に読み込み、プレイヤによる操作部22の操作に応じてこれを実行し、ゲーム進行を制御する。より具体的には、プレイヤに操作されることによって操作部22から操作信号が入力されると、CPU11は、ゲームプログラム5aに従ってその操作信号に対応する所定のゲーム進行処理を行い、その処理結果を、ゲーム進行を示す画像(以下、「ゲーム画像」)としてディスプレイ2に表示すると共に、ゲーム進行を示す音声信号(以下、「ゲーム音声」)をスピーカ20やイヤホン端子21に出力する。
上記ゲーム画像の描画は、CPU11の指示により、描画処理プロセッサ15が行う。即ち、CPU11は、操作部22から入力される操作信号に基づき、ディスプレイ2に表示すべきゲーム画像の内容を決定し、その内容に対して必要な描画データを描画データ生成プロセッサ12に生成させる。そして、その描画データを描画処理プロセッサ15に転送して描画処理を行わせる。描画処理プロセッサ15は、描画データに基づいて1/60秒毎にゲーム画像を生成し、生成したゲーム画像をVRAM16に書き込む。ディスプレイ2は、半透過型カラー液晶ディスプレイとバックライトLED(Light Emitting Diode)とを有し、VRAM16に書き込まれたゲーム画像を表示する。
また、CPU11は、ゲームの進行に応じて、スピーカ20から出力すべき効果音やBGM等の音声を決定し、その音声を発音するための音声データをRAM13から読み出して音声処理プロセッサ18に入力する。即ち、CPU11は、ゲームの進行に伴って発音イベントが発生すると、その発音イベントに応じた音声データ(ゲームメディア5からロードされた音声データ)をRAM13から読み出して音声処理プロセッサ18に入力する。音声処理プロセッサ18は、DSP(Digital Signal Processor)で構成されており、CPU11によって入力された音声データに対して所定の効果(例えば、リバーブ、コーラスなど)を付与したのちアナログ信号に変換して、アンプ19に出力する。アンプ19は、音声処理プロセッサ18から入力された音声信号を増幅したのち、スピーカ20及びイヤホン端子21に出力する。
無線LANモジュール24は、通信規格IEEE802.11b(使用周波数帯2.4GHz、通信速度11Mbps)に準拠した無線LANによって他のゲーム装置1とデータ通信を行い、ネットワークを構成するための通信モジュールである。
図3は、上述したゲーム機1が備える制御部30の機能的な構成を示すブロック図である。また、図4〜図6は、何れもプレイヤキャラクタと敵キャラクタとが対戦しているときのゲーム画像を例示する図面であって、図4はプレイヤキャラクタ及び敵キャラクタが対峙している状態のゲーム画像、図5はプレイヤキャラクタの攻撃によって敵キャラクタがダメージを受けているときのゲーム画像、図6は、敵キャラクタが後述するブレイク状態になっているときのゲーム画像を夫々示している。
制御部30は、ゲームメディア5から読み込んだゲームプログラム5a及びゲームデータ5bを実行することによって、以下に説明するような機能を備える。即ち、図3に示すように制御部30は、ゲーム空間生成手段31、キャラクタ制御手段32、体力値変更手段33、ブレイク値変更手段(状態異常値変更手段)34、ブレイクレベル管理手段(状態異常回数管理手段)35、スタミナ値変更手段36、スキル発動手段37、及びダメージ有無判定手段38を備えている。
ゲーム空間生成手段
ゲーム空間生成手段31は、プレイヤキャラクタC1が行動する仮想ゲーム空間41を生成するものであり、該仮想ゲーム空間41には、図4〜図6に示すようなプレイヤキャラクタC1及び敵キャラクタC2が対戦する仮想ゲーム空間も含まれる。
キャラクタ制御手段
キャラクタ制御手段32は、仮想ゲーム空間41におけるプレイヤキャラクタC1及び敵キャラクタC2を含む様々のキャラクタの動作を制御する。例えば、プレイヤによる操作部22の操作に応じて、対戦時におけるプレイヤキャラクタC1の移動、攻撃、及び防御を含む各種動作を制御し、また、敵キャラクタC2による移動、攻撃、及び防御等の各種の動作も制御する。
体力値変更手段
体力値変更手段33は、対戦中のプレイヤキャラクタC1及び敵キャラクタC2の体力値を、受けた攻撃に応じた分だけ変更するものである。例えば、図4に示すように、このゲーム画像の上部には、プレイヤキャラクタC1の体力値の残量が、左右方向に伸び縮みする体力ゲージ42aと数値43とで表示されている。この「体力値」は、プレイヤキャラクタC1の生命力を意味するものであって、プレイヤキャラクタC1のステータスに応じて初期値(本実施の形態では最大値)及び所定の閾値が設定されている。そして、対戦において敵キャラクタC2からの攻撃によってダメージを受けると、ダメージを受けたプレイヤキャラクタC1の体力値は、体力値変更手段33によって、受けた攻撃に応じた数値だけ減算され、残量が閾値(本実施の形態では「ゼロ」)以下になると敗戦することとなる。
なお、ここでは「体力値」を、攻撃を受けることで減算されていく値としているが、例えば、「体力値」として「受けたダメージ量の累積値」と定義されたものを採用することで、攻撃を受けることで加算されていく値としてもよい。この場合、プレイヤキャラクタC1のステータスに応じて初期値(例えば、「ゼロ」などの最小値)とこれよりも大きい値の閾値とを設定しておく。そして、対戦相手から攻撃を受けるに従って、体力値(ダメージ累積値)は初期値から増加していき、これが所定の閾値になることでプレイヤキャラクタC1は敗戦することとなる。もちろん、次に説明する敵キャラクタC2の体力値についても同様である。
また、敵キャラクタC2については、敵キャラクタ毎に体力値の初期値と閾値とが設定されており、プレイヤキャラクタC1からの攻撃に応じて減少し、体力値が閾値(本実施の形態では「ゼロ」)になるとプレイヤキャラクタC1が勝利することとなる。本ゲームにおいては、敵キャラクタC2の体力値は、図4に示すように両キャラクタが対峙している状態では表示されず、図5及び図6に示すように、プレイヤキャラクタC1からの攻撃を受けた場合にのみ、敵キャラクタC2の近傍に、プレイヤキャラクタC1用の体力ゲージ42aを小寸法化した如くの体力ゲージ42bが表示されるようになっている。
なお、各キャラクタの攻撃には、それぞれ攻撃力に相当するものとして、対戦相手に加えることのできる「ダメージ量」が設定されている。本実施の形態では、このダメージ量は、通常状態(以下に説明する「ブレイク状態」ではない状態)で攻撃したときに、これを受けた相手の「体力値の減少量」と等しいものとして定義されている。また、プレイヤキャラクタC1のランクを示す数値は、図4に示す対峙状態でのゲーム画像において左上に表示される(ここでは「95001」となっている)。
ブレイク値変更手段
ブレイク値変更手段34は、対戦中のプレイヤキャラクタC1及び敵キャラクタC2のブレイク値(状態異常値)を、受けた攻撃に応じた分だけ変更するものである。例えば、図4のゲーム画像の下部には、プレイヤキャラクタC1及び敵キャラクタC2のブレイク値の残量が、左右方向に伸び縮みするブレイクゲージ44,45によって表示されている。本実施の形態では、左側のブレイクゲージ44がプレイヤキャラクタC1に対応し、右側のブレイクゲージ45が敵キャラクタC2に対応している。このブレイクゲージ44,45で表される「ブレイク値」は、プレイヤキャラクタC1及び敵キャラクタC2が、あとどれくらいでブレイク状態になるかを示すパラメータであって、プレイヤキャラクタC1及び敵キャラクタC2の夫々に応じた初期値(本実施の形態では最大値)及び閾値が設定されている。なお、後述するように対戦中は、各キャラクタのブレイクレベルが変更される場合があるが、ブレイクレベルの夫々に対応して各キャラクタのブレイク値の初期値及び閾値が設定されている。
また、各キャラクタの攻撃には、それぞれ「攻撃を受けたキャラクタのブレイク値の減少量」が設定されている。そして、対戦において例えばプレイヤキャラクタC1が敵キャラクタC2から攻撃を受けた場合、攻撃を受けたプレイヤキャラクタC1のブレイク値は、上述のブレイク値変更手段34によって、受けた攻撃に応じて設定されたブレイク値の減少量だけ減算される。そして、プレイヤキャラクタC1のブレイク値が所定の閾値になると所定時間だけ戦闘不能の異常状態(以下、「ブレイク状態」)となり、キャラクタ制御手段32によって相手に対する攻撃及び相手からの攻撃に対する防御が不可能な状態(無防備な状態)となる。従って、この状態でプレイヤキャラクタC1は、敵キャラクタC2からの攻撃を無防備な状態で受けることとなる。また、敵キャラクタC2がプレイヤキャラクタC1から攻撃を受けた場合も同様である。以下の説明では、このようなブレイク状態となるブレイク値の閾値の例としてこれを「ゼロ」とした場合について説明する。
また、ブレイク状態になるための条件である「ブレイク値が閾値(例えば、ゼロ)になった場合」とは、攻撃によってブレイク値が丁度閾値と等しい値になった場合の他、ブレイク値が閾値を超えた値になった場合も含まれる。例えば、本実施の形態について言えば、受けた攻撃に対応する量を減算した結果、ブレイク値が丁度ゼロになった場合、及び、ブレイク値がゼロを超えてマイナス値になった場合、の何れの場合も含まれる。
また、本実施の形態ではブレイク値を、攻撃を受けることによって減算される値としているが、体力値の場合と同様に、攻撃を受けることによって加算される値としてもよい。この場合、キャラクタには、相対的に小さい値の初期値(例えば、ゼロ)と大きい値の閾値とが設定され、攻撃を受けることにより、ブレイク値は初期値から閾値へ向かうように加算される。
なお、ゲーム画像では、ブレイク状態になったキャラクタ(図6の敵キャラクタC2参照)は、通常状態で攻撃を受けた場合(図5の敵キャラクタC2参照)とは異なって大きく仰け反った姿勢で表示され、プレイヤが一目でブレイク状態を判別できるようになっている。また、上述したように攻撃に応じてブレイク値の減少量が設定されているが、ブレイク値を減少させない攻撃があってもよい。
また、本実施の形態では、ブレイク状態において相手からの攻撃で受けるダメージ(即ち、体力値の減少量)は、ブレイク状態になる前の通常状態において同一攻撃を受けたときのダメージのN倍の効果を有する(即ち、体力値の減少量がN倍になる)ように設定されている。換言すれば、プレイヤキャラクタC1が、ブレイク状態となっている敵キャラクタC2を攻撃した場合、体力値変更手段33は、プレイヤキャラクタC1が実行した攻撃に基づき、該攻撃に設定されたダメージ量のN倍に相当する値を、敵キャラクタC2の体力値から減少させる。
ブレイク状態になると、後述するようにそのキャラクタのブレイクレベルが1つ高い値に更新され、そのブレイクレベルに対応して設定されたブレイク値の初期値(最大値)まで、ブレイク値は自動的に所定の速度で回復するようになっている。そして、ブレイク状態は、ブレイク値がゼロから前記初期値(最大値)まで回復するのに要する間だけ継続され、初期値に到達した時点でブレイク状態から通常状態へと復帰する。なお、上述したようにブレイク状態では相手からの攻撃に対して無防備な状態となるが、ブレイク状態から通常状態に復帰するまでは、相手から攻撃を受けた場合であってもブレイク値が減少しないようになっている。
ゲーム画像中のブレイクゲージ44,45について説明すると、図4のゲーム画像において右側に設けられた敵キャラクタC2用のブレイクゲージ45は、ゲーム画像における左右方向中央付近に原点を有して右向きに正となるように設定された座標軸上に表示されている。そして、ブレイク値が減少しておらず残量が最大値になっている初期状態においては、ブレイクゲージ45は原点から前記座標軸の右端まで、最も長く表示される(図4参照)。一方、ブレイク値が減少するに従って、ブレイクゲージ44は、その右端が原点寄りへと左方向へ移動し、次第に短くなるように表示され(図5参照)、ブレイク値がゼロになるとブレイクゲージ45が原点に到達し、敵キャラクタC2はブレイク状態となる(図6参照)。また、ブレイク状態においてブレイク値が自動回復するとき、ブレイクゲージ45は、ブレイク値の回復度合いに対応して右方向へと延びて長くなっていくように表示される。
また、ブレイクゲージ45には自動回復ゾーン(自動回復範囲)45aが設けられている。この自動回復ゾーン45aは、原点から右方向の所定位置までの範囲(即ち、ブレイク値の残量が、初期値と閾値(ここではゼロ)との間の値以下の範囲)として設定されており、ブレイク値がこの自動回復ゾーン45aに位置している場合には、所定の速度でブレイク値が自動的に回復(増加)していくようになっている。但し、ブレイク値が自動回復ゾーン45aに位置している場合であっても、相手(この場合はプレイヤキャラクタC1)から攻撃を受けた場合には、その攻撃に応じた分だけブレイク値は減少する。
なお、ゲーム画像の左側に設けられたプレイヤキャラクタC1用のブレイクゲージ44は、上述した敵キャラクタC2用のブレイクゲージ45を左右対称にした構成となっており、ゲーム画像の中央付近の原点から左方向の所定位置までの範囲として設定された自動回復ゾーン(自動回復範囲)44aも有している。そして、ブレイク値が減少するときの態様、ブレイク値が自動回復ゾーン44aに位置するときにブレイク値が自動回復する態様は、何れも上述したブレイクゲージ45の場合と同様になっている。
ブレイクレベル管理手段
ブレイクレベル管理手段35は、対戦中のプレイヤキャラクタC1及び敵キャラクタC2のブレイクレベル(状態異常回数)を管理するものである。例えば、図4のゲーム画像において、既に説明した左側のブレイクゲージ44の更に左側にはプレイヤキャラクタC1のブレイクレベルを示す数値46(図4では「0」)が表示され、右側のブレイクゲージ45の更に右側には敵キャラクタC2のブレイクレベルを示す数値47(図4では「0」)が表示されている。
このブレイクレベルは例えば0〜5の6段階が設けられており、対戦が開始された時点では、プレイヤキャラクタC1及び敵キャラクタC2のブレイクレベルは、ブレイクレベル管理手段35によって共に「0」に設定される。そして、上述したように対戦中にブレイク状態になる毎(ブレイク状態になった直後)に、ブレイクレベル管理手段35によってブレイクレベルは1つ高い値に更新される。例えば、図6に示すように、対戦が開始された後、敵キャラクタC2が最初にブレイク状態になると、敵キャラクタC2のブレイクレベルは「0」から「1」に更新され、ブレイクレベルを示す数値47も「0」から「1」に切り換えられる。このように、本実施の形態においてブレイクレベルは、ブレイク状態になった回数に対応した数値として設定されている。但し、ブレイクレベルの数値とブレイク状態になった回数とを一致させず、例えば、ブレイク状態に1以上の所定回数なった場合に、ブレイクレベルが1つ高い値に更新されるように設定してもよい。なお、前述したようにブレイクレベルの最高値は「5」であり、ブレイクレベルが「5」のときに再びブレイク状態となった場合であっても、それ以上ブレイクレベルは更新されない。
図7は、ブレイクレベルと、対戦中のキャラクタ(プレイヤキャラクタC1及び敵キャラクタC2)の特性との関係を示す図表であり、表中「BL」はブレイクレベルを意味している。この図7に示すように、本ゲームでは、ブレイクレベルが変化することによってキャラクタの特性が変更される。そして、そのようなキャラクタ特性として、(1)通常状態での被ダメージ量、(2)ブレイク状態での被ダメージ量、(3)ブレイク値の減少量、(4)ブレイクゲージの最大値、(5)ブレイク状態の持続時間、及び(6)自動回復ゾーンの長さ、などがある。
このうち、「(1)通常状態での被ダメージ量」とは、対戦中においてブレイク状態ではない通常状態のときに、例えば敵キャラクタC2がプレイヤキャラクタC1からの攻撃でダメージを受けた場合に、体力値が減少する量を意味している。図7に示すように、この被ダメージ量(即ち、体力値の減少量)は、ブレイクレベルが高くなるに従って大きくなるように設定されている。具体的には、ブレイクレベルが0,1,2,・・・と高くなっていくと、被ダメージ量は、例えば受けた攻撃に設定されたダメージ量の1倍,1.25倍,1.5倍,・・・となるように補正される。
また、実際の対戦においては、例えば通常状態の敵キャラクタC2がプレイヤキャラクタC1から攻撃を受けた場合、体力値変更手段33は、まずブレイクレベル管理手段35にて記憶されている敵キャラクタC2のブレイクレベルを取得する。そして、取得したブレイクレベルが高いほど大きくなるように体力値の減少量を補正し、補正した減少量の分だけ敵キャラクタC2の体力値を減少させる。
このように、本ゲームでは、対戦相手をブレイク状態とさせたキャラクタは、対戦相手がブレイク状態から通常状態に復帰した後であっても、ブレイク状態となる前の通常状態と比べて相対的に有利となることができる。また、同一の攻撃であってもブレイク状態前よりも大きなダメージを与えることができるため、現実の格闘技の試合のようなリアリティを再現することができ、また、ゲームならではの爽快感を得ることもできる。
上記「(2)ブレイク状態での被ダメージ量」とは、対戦中にブレイク状態になっているキャラクタが、対戦相手から攻撃されてダメージを受けた場合に、体力値が減少する量を意味している。図7に示すように、この被ダメージ量(即ち、体力値の減少量)は、ブレイクレベルが高くなるに従って大きくなるように設定されており、ブレイクレベルが0,1,2,・・・と高くなっていくと、ブレイク状態での被ダメージ量は、例えば受けた攻撃に設定されたダメージ量の3倍,3.25倍,3.5倍,・・・となるように補正される。
例えば、敵キャラクタC2がブレイク状態になると、その直後にブレイクレベル管理手段35によって敵キャラクタC2のブレイクレベルは1つ高い値に更新される。そして、このブレイク状態のときに敵キャラクタC2がプレイヤキャラクタC1から攻撃を受けると、体力値変更手段33が、ブレイクレベル管理手段35にて更新された敵キャラクタC2のブレイクレベルを取得し、取得したブレイクレベルが高いほど体力値の減少量を大きくなるように補正し、補正した減少量の分だけ敵キャラクタC2の体力値を減少させる。
このように、対戦相手をブレイク状態にすると、該対戦相手のブレイク状態での被ダメージ量は、同一の攻撃を受けた場合であっても、前回のブレイク状態での被ダメージ量に比べて大きくなっている。従って、相手をブレイク状態とさせたキャラクタは、相手を前回ブレイク状態とさせたときと比べて相対的に有利となることができる。
上記「(3)ブレイク値の減少量」とは、対戦相手から攻撃を受けた場合に減少するブレイク値の量を意味している。図7に示すように、このブレイク値の減少量は、ブレイクレベルが高くなるに従って小さくなるように設定されている。例えば、通常状態の敵キャラクタC2がプレイヤキャラクタC1から攻撃を受けた場合、ブレイク値変更手段34が、ブレイクレベル管理手段にて記憶されている敵キャラクタC2のブレイクレベルを取得し、取得したブレイクレベルが高いほど小さくなるようにブレイク値の減少量を補正し、補正した減少量の分だけ敵キャラクタC2のブレイク値を減少させる。
このように、本ゲームでは、ブレイクレベルが高くなるに従って、攻撃を受けたときのブレイク値の減少量が小さくなり、ブレイク状態になりにくくなる。そのため、上述したようにダメージの受けにくさの面ではブレイクレベルの高いキャラクタが不利ではあるが、ブレイク状態へのなりにくさの面ではブレイクレベルの高いキャラクタが有利となる。従って、最初に相手をブレイク状態とした方のキャラクタが圧倒的に有利となるような不公平感を抑制することができる。従って、上記特性(1)又は(2)と、ここで説明した特性(3)又は後述する特性(4)や特性(6)とを共に設定することで、ブレイク状態にされた方のキャラクタは、被ダメージ量がより大きくなるという点で不利になる一方、次回は今回に比べてブレイク状態になり難くなる。そのため、被ダメージ量の観点ではリアリティのある対戦を実現しつつも、ブレイク状態になり難くすることで、一度ブレイク状態になっても逆転の可能性を残すことができ、嗜好品たるゲーム本来の面白味を満喫することができる。
なお、上述したのとは逆に、ブレイクレベルが高くなるに従って、攻撃を受けたときのブレイク値の減少量が大きくなるように設定してもよい。この場合、対戦相手をブレイク状態とした方のキャラクタが、ブレイク状態とする前よりも相対的に更に有利となるため、ゲームならではの爽快感が得られると共に、進行の早い(スピード感のある)対戦を楽しむことができる。
また、「(4)ブレイクゲージの最大値」については、ブレイクレベルが高くなるに従って大きくなるように設定されている。例えば、敵キャラクタC2がブレイク状態になると、その直後にブレイクレベル管理手段35によって敵キャラクタC2のブレイクレベルは1つ高い値に更新される。そして、ブレイク値変更手段34は、更新されたブレイクレベルに応じたブレイクゲージの最大値(即ち、該ブレイクレベルに対応するブレイク値の初期値)が設定される。また、ブレイク値を、新たに設定された最大値まで回復させる。
このように、本ゲームでは、ブレイクレベルが高くなるに従って、ブレイクゲージの最大値が増加し、ブレイク状態になりにくくなる。そのため、上記「(3)ブレイク値の減少量」について説明したのと同様に、ブレイク状態へのなりにくさの面ではブレイクレベルの高いキャラクタが有利となり、最初に相手をブレイク状態とした方のキャラクタが圧倒的に有利となるような不公平感を抑制することができる。
なお、ここでは、ブレイクレベルが高くなるに従って、ブレイク値の初期値(最大値)がより大きくなる場合を説明したが、例えば、通常状態からブレイク状態に切り替わるブレイク値の閾値を、より小さくなるようにしてもよい。結局、キャラクタに設定されたブレイク値の初期値と閾値との差分値を、ブレイクレベルが高くなるに従って大きくするようにすることができる。
また、「(5)ブレイク状態の持続時間」については、ブレイクレベルが高くなるに従って長くなるように設定されている。例えば、敵キャラクタC2がブレイク状態になると同時に、ブレイクレベル管理手段35によって敵キャラクタC2のブレイクレベルは1つ高い値に更新される。そして、キャラクタ制御手段32は、更新された敵キャラクタC2のブレイクレベルに応じた持続時間(所定期間)だけ、ブレイク状態を継続させる。これにより、本ゲームでは、ブレイクレベルが高くなるに従ってブレイク状態を長く持続させるようになっている。
ところで、「ブレイク値変更手段34」の説明において既に言及したように、一旦ブレイク状態になると、そのキャラクタのブレイク値は、ゼロから、更新されたブレイクレベルに対応する最大値まで回復されるが、最大値まで回復するのに所定の時間を要するように設定されている。そして、ブレイク値が最大値まで回復するのに要する時間が、上述したブレイクレベルに応じたブレイク状態の継続時間となる。
また、「(6)自動回復ゾーンの長さ」については、ブレイクレベルが高くなるに従って長くなるように設定されている。例えば、敵キャラクタC2がブレイク状態となり、ブレイクレベル管理手段35によって敵キャラクタC2のブレイクレベルが1つ高い値に更新された後、敵キャラクタC2が通常状態に復帰したとする。このとき、ブレイク値変更手段34は、更新されたブレイクレベルに基づき、自動回復ゾーン44aの長さを、ブレイクレベルが更新される前よりも長くなるように設定する。これによっても、上記(3)、(4)の場合と同様に、ブレイクレベルが高くなるほどブレイク状態になりにくくなる。
図7に関する上記説明では、敵キャラクタC2が攻撃を受けた場合や敵キャラクタC2がブレイク状態になった場合について言及したが、もちろん、プレイヤキャラクタC1が攻撃を受けた場合やプレイヤキャラクタC1がブレイク状態になった場合についても同様になるように設定されている。
このように、本ゲームでは、対戦中にブレイクレベルが変化するのに伴ってキャラクタの特性も変化する。また、勝敗が決せられて1回の対戦が終了する毎に、ブレイク値及びブレイクレベルは初期状態にリセットされ、体力値はリセットされないようになっている。そのため、対戦を繰り返し行っても対戦毎に戦況が異なることとなり、プレイヤを飽きさせることがない。また、上述したように、ブレイクレベルが高くなるに従って、通常状態及びブレイク状態において対戦相手から受けるダメージ(体力値の減少量)が大きくなって、現実の格闘技の試合のようなリアリティを再現することができ、また、ゲームならではの爽快感を得ることもできる一方、再度ブレイク状態にはなりにくくなるため、最初に相手をブレイク状態とした方のキャラクタが圧倒的に有利となるような不公平感を抑制することができる。
スタミナ値変更手段
ここで再び制御部30の構成に関する説明に戻ると、スタミナ値変更手段36は、プレイヤキャラクタC1及び敵キャラクタC2のスタミナ値を、実行した攻撃に応じて設定された分だけ変更するものである。例えば、図4に示すように、対戦時にゲーム画像の上部であって既に説明したプレイヤキャラクタC1用の体力ゲージ42aの直下には、プレイヤキャラクタC1のスタミナ値の残量が、左右方向に伸び縮みするスタミナゲージ48によって表示されている。この「スタミナ値」は、キャラクタに応じて初期値(本実施の形態では最大値)及び閾値が設定されており、キャラクタが行動することによって消費されるパラメータであって、攻撃、防御など、各種の動作毎に消費量が設定されている。そして、例えばプレイヤキャラクタC1が敵キャラクタC2に対して攻撃を加えると、スタミナ値変更手段36によって、その攻撃に設定された分だけプレイヤキャラクタC1のスタミナ値が減少される。基本的に、小技の攻撃より大技の攻撃の方が、換言すれば、対戦相手に与えるダメージ量が大きい攻撃ほど、消費するスタミナ値は大きくないようになっている。
なお、キャラクタが有するスタミナ値が、該キャラクタがこれから実行しようとする動作に設定されたスタミナ値の消費量に満たない場合は、この動作を実行することができない。また、キャラクタが有するスタミナ値がゼロになった場合には、所定時間だけ何れの動作も実行できない状態となる。一方、キャラクタが何ら動作を実行しないでいると(待機状態)、時間の経過と共に少しずつスタミナ値が回復するようになっている(スタミナ回復処理)。
また、スタミナ値変更手段36は、一方のキャラクタがブレイク状態になった場合に、他方のキャラクタのスタミナ値を一旦初期値まで回復させるようになっている(スタミナ全快処理)。これにより、一方のキャラクタをブレイク状態にさせたにもかかわらず、他方のキャラクタのスタミナ値が不足して何ら攻撃することができない、といった事態を回避できる。その結果、ブレイク状態になった一方のキャラクタに対して、他方のキャラクタは様々の攻撃を加えることができ、相手をブレイク状態にしたという優位性を継続的に保有できるようになっている。
また、対戦相手をブレイク状態にさせると、スタミナ値が初期値まで回復することから、通常状態での動作(攻撃、防御など)において、例えば対戦相手をブレイク状態にさせるタイミングで自身のキャラクタのスタミナ値を使い切る、換言すれば、対戦相手がブレイク状態寸前のときに残りのスタミナ値を全て使い切って猛攻をかけるような攻撃動作をする、といった戦術をとることもできる。このように、動作とスタミナ値の消費量とを考慮しつつ、対戦相手をブレイク状態とするためのより戦術的な対戦を楽しむことができる。
なお、ここではスタミナ値を、動作の実行により減算される値としているが、動作の実行によって加算される値として用いてもよい。この場合、プレイヤキャラクタC1のステータスに応じて、相対的に小さい値の初期値(例えば、ゼロ)と大きい閾値とを設定し、プレイヤキャラクタC1が動作する毎に、その動作に対応する分を初期値に累積的に加算する。そして、累積値が閾値になるか、又は、累積値と閾値との差分値が実行しようとする動作に対応するスタミナ値より小さい場合には、プレイヤキャラクタC1の動作が制限されるようにすればよい。
スキル発動手段
本ゲームでは、プレイヤによって対戦自体をカスタマイズできるように「スキル」と称する手段が設けられており、該スキルが発動することによって、対戦中のプレイヤキャラクタC1及び/又は敵キャラクタC2に対して所定の効果が発揮されるようになっている。具体的に説明すると、本ゲームにはスキルを事前に設定するための設定画面(ディスプレイ2に表示される)が備えられており、この設定画面に含まれるスロットにスキルチップというアイテムを装着することによりスキルの設定が行えるようになっている。スキルチップは、敵キャラクタC2に勝利したり、本ゲームの仮想ゲーム空間内のショップで購入したりすることで取得でき、複数の種類が存在している。また、その種類によってスキル発動時に発揮される効果も異なっている。
スキル発動手段37は、上述したようにスキルチップがスロットに装着された状態(スキルが設定された状態)で、対戦中に、プレイヤが操作部22に所定の操作入力をした場合、特定の条件が成立した場合、又は所定の確率で、スキルを発動させる。スキルが発動されると、スロットに装着されたスキルチップに応じた効果が、対戦中のプレイヤキャラクタC1及び/又は敵キャラクタC2に対して発揮される。本ゲームでは、このような効果として、ブレイクレベルの初期化とブレイクゲージの回復とが含まれている。
例えば、「雨」という名称のスキルが備えられており、これに対応するスキルチップがスロットに装着されている状態で、プレイヤが操作部22に所定の操作入力をすると、スキル発動手段37によってこのスキルが発動される。該スキルが発動すると、ゲーム空間生成手段31によって対戦中の仮想ゲーム空間41内に雨が降るなどのアニメーションが描画され、ブレイクレベル管理手段35が、プレイヤキャラクタC1及び敵キャラクタC2の双方のブレイクレベルを初期化して「0」にすると同時に、ブレイク値変更手段34が、プレイヤキャラクタC1及び敵キャラクタC2の双方のブレイク値を、ブレイクレベルが「0」の場合の初期値に回復させる。
一方、「ブレイクヒール」という名称のスキルが備えられており、これに対応するスキルチップがスロットに装着されていると、特定の条件が成立したときに(所定時間の経過など)、スキル発動手段37によって自動的に該スキルが発動される。例えばプレイヤキャラクタC1のプレイヤがこのスキルを設定し、前記条件が成立して該スキルが発動すると、ブレイク値変更手段34によって、該スキルを設定したプレイヤのプレイヤキャラクタC1のブレイク値が、自動回復ゾーン44a,45aの内外何れにあるかにかかわらず、所定の速度で回復していくようになっている。
なお、スキル「雨」によってブレイクレベル及びブレイク値が回復する対象は、プレイヤキャラクタC1のみに限定してもよいし、ブレイクレベルの初期化及びブレイク値の回復のうち何れか一方のみが実行されるようにしてもよい。また、スキル「ブレイクヒール」においては、上述したようにこのスキルを設定した側のキャラクタに対してのみ、ブレイクゲージの回復というスキルの効果が及ぶようになっているが、両方のキャラクタに対してこの効果が及ぶようにしてもよい。更に、ブレイクレベルの初期化及びブレイクゲージの回復に限らず、ブレイクレベル及びブレイク値の増減のし易さを変化させるなどのような、ブレイクレベル及び/又はブレイク値を変化させる効果が及ぶようにしてもよい。
また、上述したスキルの他、(a)攻撃を受けたときのブレイク値の減少量が大きくなる、(b)攻撃を受けたときのブレイク値の減少量が小さくなる、(c)自動回復ゾーンが消滅する、(d)自動回復ゾーンが短くなる、(e)自動回復ゾーンが長くなる、(f)ブレイク値がゼロになってもブレイクレベルが高くならないなど、ブレイク値、ブレイクレベル又は自動回復ゾーンの様々なパラメータを変化させる効果を発揮するスキルを設けてもよい。
ダメージ有無判定手段
本ゲームでは、攻撃の種類として、剣を振り下ろして相手に斬りつけるといった直接的な攻撃(近距離攻撃)と、銃や魔法によって相手の体力値を減少させるといった間接的な攻撃(遠距離攻撃)とが設定されている。そしてダメージ有無判定手段38は、これらの攻撃が相手に有意に作用したか否か、即ち、これらの攻撃によって相手にダメージを与えることができたか否かを判断する。
具体的に説明すると、プレイヤキャラクタC1は、攻撃をしていないときには所定の待機位置に位置している。この待機位置は、敵キャラクタC2から比較的離れた位置に設定されており、剣などを用いる直接的な攻撃がお互いに届かない位置に設定されている。従って、例えばプレイヤキャラクタC1が敵キャラクタC2に対して剣による直接的な攻撃を加える場合は、プレイヤキャラクタC1は、はじめに敵キャラクタC2の近くまで移動し、次に攻撃アクションを実行することとなる。一方、魔法による間接的な攻撃を加える場合は、待機位置にてはじめに呪文を詠唱するなどの準備行動をした後、魔法を相手にかける攻撃アクションを実行することとなる。
従って、ダメージ有無判定手段38は、直接的な攻撃については、プレイヤキャラクタC1の移動及び攻撃アクションが全て完了した場合に、その攻撃が敵キャラクタC2に対して有意に作用したと判定し、全てが完了する前に敵キャラクタC2からの攻撃を受けるなどして中断された場合には、プレイヤキャラクタC1の攻撃は敵キャラクタC2に対して有意に作用しなかったと判定する。また、間接的な攻撃についても同様に、プレイヤキャラクタC1の準備動作及び攻撃アクションが全て完了した場合に、その攻撃が敵キャラクタC2に対して有意に作用したと判定し、全てが完了する前に敵キャラクタC2からの攻撃を受けるなどして中断された場合には、プレイヤキャラクタC1の攻撃は敵キャラクタC2に対して有意に作用しなかったと判定する。
そして、ダメージ有無判定手段38によってプレイヤキャラクタC1による攻撃が、敵キャラクタC2に対して有意に作用したと判定された場合には、その攻撃に応じて、既に説明した体力値変更手段33、及びブレイク値変更手段34が敵キャラクタC2の体力値及びブレイク値を減少させる。その結果、敵キャラクタC2の体力値がゼロになればプレイヤキャラクタC1の勝利となり、敵キャラクタC2のブレイク値がゼロとなれば敵キャラクタC2はブレイク状態となり、それ以外の場合は対戦が継続される。
ここで、図5に示すゲーム画像について補足しておく。このゲーム画像は、プレイヤキャラクタC1の攻撃によって敵キャラクタC2がダメージを受けているときの様子を示しているが、プレイヤキャラクタC1と敵キャラクタC2との間に、「Lv.0」、「159」という表記49が含まれている。この表記49のうち「159」という数値は、通常状態で攻撃を受けたキャラクタ(図5では敵キャラクタC2)のダメージ量(即ち、減算される体力値)を表しており、「Lv.0」という文字列は、攻撃を受けたキャラクタのブレイクレベルが「0」であることを表している。即ち、図5の表記49は、ブレイクレベルが「0」である敵キャラクタC2が通常状態で「159」のダメージを受けたことを意味している。このように、ブレイクレベルとダメージ量とを近接して同時に表示することによって、対戦相手をブレイク状態とする毎に、その後の通常状態での攻撃において、攻撃によって相手に与えるダメージ量(即ち、体力値の減少量)が、以前より大きくなっていることをプレイヤに認識させることができる。
なお、図6に示すように、ブレイク状態のときに攻撃を受けた場合には、ブレイクレベルを表す文字列は表示されず、ダメージ量を表す数値のみが表示される。但し、ブレイク状態のときに攻撃を受けた場合であっても、「Lv.1 714」と表記してもよい。また、「BREAK 714」と表記することで、ブレイク状態での攻撃であることをプレイヤに分かり易く示すようにしてもよいし、「238×3」などのように表記して、ブレイク状態での攻撃であってダメージ量に補正がかかっていることを示してもよい。また、これらを適宜組み合わせて表記するようにしてもよい。
なお、上述した説明では、プレイヤキャラクタC1が敵キャラクタC2に対して攻撃する場合について述べたが、逆に敵キャラクタC2がプレイヤキャラクタC1に対して攻撃する場合も同様である。また、制御部30は、上述した手段31〜38の他にも、本ゲームを実行するに際して必要な機能を適宜備えている。例えば、プレイヤによって操作部22が操作入力された場合にその操作内容を判定する機能、キャラクタの体力値の残量に基づいて対戦が終了したか否かを判定する機能、何れのキャラクタが勝利したかを判定する機能、ブレイク値の残量に基づいてキャラクタの状態が通常状態からブレイク状態に切り替わったか否かを判定する機能、プレイヤが所望する動作の消費スタミナ量と残量とを比較して該動作の実行を許可するか否かを判定する機能などを備えている。
[本ゲームの処理フロー]
次に、上述した構成のゲーム機1(特に、制御部30)により実現される本ゲームの処理フローについて説明する。図8〜図12は、本ゲームでプレイヤキャラクタC1と敵キャラクタC2との対戦が開始されてから終了するまでのゲーム機1の動作を示すフローチャートである。このうち図8は、対戦時のゲーム機1の動作を示すメインフローであり、図9は被ダメージ処理を示すサブルーチン、図10は攻撃動作実行処理を示すサブルーチン、図11はスタミナ値回復処理を示すサブルーチン、図12はブレイク値回復処理を示すサブルーチンである。なお、これら図8〜図11では、キャラクタの動作処理としてはプレイヤキャラクタC1についてのみ示しており、敵キャラクタC2についての動作処理は省略している。
図8に示すように、プレイヤキャラクタC1と敵キャラクタC2との対戦が開始されると、制御部30のキャラクタ制御手段32は待機処理(ステップS1)を行い、プレイヤキャラクタC1を既に説明した所定の待機位置に配置する。次に、ダメージ有無判定手段38によって、プレイヤキャラクタC1が敵キャラクタC2からの攻撃によるダメージを受けたか否かを判定し(ステップS2)、ダメージを受けたと判定した場合(ステップS2:YES)には後述の被ダメージ処理(図9参照)を実行する(ステップS3)。
一方、ダメージを受けていないと判定した場合(ステップS2:NO)には、プレイヤによる操作部22の操作によって入力された情報(操作情報)を取得し(ステップS4)、その内容(操作内容)を判定する(ステップS5)。
その結果、プレイヤが何ら操作部22を操作していないと判定した場合(ステップS5:「操作なし」)は、スタミナ値変更手段36によりプレイヤキャラクタC1のスタミナ値を所定量だけ回復(増加)させた後(ステップS6)、ステップS14へ移行して対戦が終了したか否かを判定する。具体的には、プレイヤキャラクタC1がこの対戦に勝利したか否かを判定し、敵キャラクタC2の体力値がゼロになっている場合には勝利して対戦が終了した(ステップS14:YES)と判定して図8に示す動作処理を終了し、敵キャラクタC2の体力値がゼロより大きい値であれば対戦は終了していないと判定する(ステップS14:NO)。対戦が終了していない場合は、ステップS1と同様の待機処理を行い(ステップS15)、スタミナ値全快処理(ステップS16)、及びブレイク値回復処理(ステップS17)を実行し、上述したステップS2以降の処理を再び実行する。
ここで、上記スタミナ値全快処理(ステップS16)は、図11に示すように、敵キャラクタC2が通常状態からブレイク状態に切り替わったか否かを判定し(ステップS70)、切り替わったと判定した場合(ステップS70:YES)には、スタミナ値変更手段36によってプレイヤキャラクタC1のスタミナ値を最大値(即ち、初期値)まで瞬時に回復させて(ステップS71)、図8のメインフローに戻る。なお、本実施の形態ではステップS16でスタミナ値が初期値まで回復することとしたが、初期値以外の所定の値にまで回復するように設定してもよい。
一方、ブレイク状態に切り替わっていないと判定した場合(ステップS70:NO)は、ステップS71の処理は行わずに図8のメインフローに戻る。なお、ステップS70での判定は、換言すれば、通常状態からブレイク状態への状態変化の有無判定である。従って、ブレイク状態に切り替わっていない(ステップS70:NO)と判定するのは、通常状態にあるタイミングだけでなく、一度切り替わり有りと判定された後のブレイク状態にあるタイミングの場合も含まれる。
また、次に行われるブレイク値回復処理(ステップS17)は、図12に示すように、プレイヤキャラクタC1のブレイク値の残量が自動回復ゾーン44a内にあるか否かを判定し(ステップS80)、自動回復ゾーン44a内にあると判定した場合(ステップS80:YES)には、ブレイク値変更手段34によってプレイヤキャラクタC1のブレイク値を所定量だけ回復(増加)させて(ステップS81)、図8のメインフローに戻る。一方、自動回復ゾーン44a内にないと判定した場合(ステップS80:NO)は、ステップS81の処理は行わずに図8のメインフローに戻る。
このように、プレイヤからの操作入力がなかった場合(ステップS5:「操作なし」)には、プレイヤキャラクタC1の現状に応じてスタミナ値及びブレイク値を適宜回復させて、プレイヤキャラクタC1は待機状態を継続することとなる。
再びステップS5の処理に戻って説明すると、プレイヤによる操作内容が敵キャラクタC2に対する攻撃であると判定した場合(ステップS5:「攻撃」)は、その攻撃動作の実行により消費されるスタミナ値と比較して、現時点でのプレイヤキャラクタC1のスタミナ値の残量が足りているか否かを判定する(ステップS7)。足りない(消費量>残量)と判定した場合(ステップS7:NO)は、この攻撃動作を実行せずにプレイヤキャラクタC1のスタミナ値を所定分だけ回復させた後(ステップS6)、ステップS14へ移行して対戦が終了したか否かを判定する。その結果、既に説明したように対戦が終了したと判定した場合(ステップS14:YES)は図8に示す動作処理を終了する。また、対戦が終了していないと判定した場合(ステップS14:NO)は、待機処理(ステップS15)、スタミナ値全快処理(ステップS16)、及びブレイク値回復処理(ステップS17)を夫々実行し、ステップS2以降の処理を再び実行する。
このように、プレイヤが所望する攻撃が、スタミナ値の残量不足で実行できない場合は、プレイヤキャラクタC1の現状に応じてスタミナ値及びブレイク値を適宜回復させるだけで攻撃動作は実行されず、プレイヤキャラクタC1は待機状態を継続することとなる。一方、スタミナ値の残量が足りている(消費量≦残量)と判定した場合(ステップS7:YES)は、後述の攻撃動作実行処理(図10参照)を実行する(ステップS8)。
更に、ステップS5での判定の結果、プレイヤによる操作内容が敵キャラクタC2からの攻撃に対する防御であると判定した場合(ステップS5:「防御」)は、その防御動作の実行により消費されるスタミナ値と比較して、現時点でのプレイヤキャラクタC1のスタミナ値の残量が足りているか否かを判定する(ステップS9)。足りない(消費量>残量)と判定した場合(ステップS9:NO)は、この防御動作を実行せずにプレイヤキャラクタC1のスタミナ値を所定分だけ回復させた後(ステップS6)、ステップS14へ移行して対戦が終了したか否かを判定する。その結果、既に説明したように対戦が終了したと判定した場合(ステップS14:YES)は図8に示す動作処理を終了し、対戦が終了していないと判定した場合(ステップS14:NO)は、待機処理(ステップS15)、スタミナ値全快処理(ステップS16)、及びブレイク値回復処理(ステップS17)を夫々実行し、ステップS2以降の処理を再び実行する。
このように、プレイヤが所望する防御が、スタミナ値の残量不足で実行できない場合は、プレイヤキャラクタC1の現状に応じてスタミナ値及びブレイク値を適宜回復させるだけで防御動作は実行されず、プレイヤキャラクタC1は待機状態を継続することとなる。一方、スタミナ値の残量が足りている(消費量≦残量)と判定した場合(ステップS9:YES)は防御動作処理を実行する(ステップS10)。例えば、プレイヤがゲーム機1のボタン群4の何れかのボタンを押圧することによって、ゲーム機1に対して「防御」を実行するための操作入力をする場合、このボタンが押圧され続けている間、キャラクタ制御手段32は、プレイヤキャラクタC1の防御動作を表すモーションをループ再生し続ける。また、この防御動作処理の実行と同時に、該防御動作に設定されたスタミナ値の消費量の分だけ、プレイヤキャラクタC1のスタミナ値を減少させる(スタミナ値減算処理)。
次に、ステップS10の防御動作が実行されている最中に、ダメージ有無判定手段38は、プレイヤキャラクタC1が敵キャラクタC2からの攻撃によるダメージを受けたか否かを判定し(ステップS11)、ダメージを受けたと判定した場合(ステップS11:YES)には後述の被ダメージ処理(図9参照)を実行する(ステップS12)。一方、ダメージを受けていないと判定した場合(ステップS11:NO)は、プレイヤによる前記ボタンの押圧操作が解除されて防御動作が終了したか否かを判定する(ステップS13)。その結果、防御動作が終了していないと判定した場合(ステップS13:NO)は、ステップS9からの処理を繰り返し実行する一方、防御動作が終了したと判定した場合(ステップS13:YES)は、ステップS14へ移行して対戦が終了したか否かを判定する。そして、既に説明したように対戦が終了したと判定した場合(ステップS14:YES)は図8に示す動作処理を終了し、対戦が終了していないと判定した場合(ステップS14:NO)は、待機処理(ステップS15)、スタミナ値全快処理(ステップS16)、及びブレイク値回復処理(ステップS17)を夫々実行し、ステップS2以降の処理を再び実行する。
なお、ステップS3,S12に示す被ダメージ処理を実行して図8のメインフローに戻った後、及びステップS8に示す攻撃動作処理を実行して図8のメインフローに戻った後も、ステップS14へ移行して対戦が終了したか否かを判定する。そして、対戦が終了したと判定した場合(ステップS14:YES)は図8に示す動作処理を終了し、対戦が終了していないと判定した場合(ステップS14:NO)は、待機処理(ステップS15)、スタミナ値全快処理(ステップS16)、及びブレイク値回復処理(ステップS17)を夫々実行し、ステップS2以降の処理を再び実行する。
ところで、上記ではステップS5にてプレイヤによる操作内容が「防御」であった場合に、対戦相手から攻撃を受けたか否かに関わらず、スタミナ値が足りるか否かを判定し(ステップS9)、足りていればスタミナ値減算処理(ステップS10)を実行することとしたが、これに限られない。例えば、プレイヤによる操作内容が「防御」であった場合、スタミナ値を減算させずにプレイヤキャラクタC1に防御動作を実行させる。そして、実際に対戦相手から攻撃を受けたときに、そのときの防御動作に足りるだけのスタミナ値が残っているか否かを判定するようにする。この場合、スタミナ値が足りていれば防御に成功し、その後、スタミナ値を減少させる。そして、スタミナ値が足りていなければ防御に失敗して(防御が解かれて)ダメージを受けるようにすればよい。また、対戦相手から受ける攻撃の種類に応じて、防御動作に必要な(減少させる)スタミナ値を変更してもよい。
被ダメージ処理
次に、図9のサブルーチンを参照して、図8のステップS3,S12及び図10のステップS53,S60に示す被ダメージ処理について詳しく説明する。図9に示すように、被ダメージ処理では、はじめに体力値減算処理を行う(ステップS20)。この体力値減算処理では、体力値変更手段33が、プレイヤキャラクタC1が受けた攻撃に応じて設定されたダメージ量(体力値の減少量)だけプレイヤキャラクタC1の体力値から減算する。但し、ブレイクレベル管理手段35からプレイヤキャラクタC1のブレイクレベルを取得し、これが1以上の場合には、図7の「(1)通常状態での被ダメージ量」に示すようにブレイクレベルが高いほど体力値の減少量が大きくなるように補正し、補正後の被ダメージ量の分だけ体力値を減少させる。
体力値減算処理を終えると、プレイヤキャラクタC1の体力値の残量がゼロより大きいか否かを判定し(ステップS21)、ゼロ以下であると判定した場合(ステップS21:NO)は、ゲームオーバー処理(ステップS22)を行って、図8のメインフローへは戻らず対戦を終了する。なお、このゲームオーバー処理では、プレイヤキャラクタC1が倒れるモーションが再生される。
また、プレイヤキャラクタC1の体力値の残量がゼロより大きいと判定した場合は(ステップS21:YES)、受けた攻撃が、ブレイク値を減少させるタイプのものであったか否かを判定する(ステップS23)。ブレイク値を減少させるタイプの攻撃であると判定した場合は(ステップS23:YES)、ブレイク値減算処理を行う(ステップS24)。このブレイク値減算処理では、プレイヤキャラクタC1が受けた攻撃に応じて設定されたブレイク値の減少量だけプレイヤキャラクタC1のブレイク値から減算する。また、ブレイクレベル管理手段35からプレイヤキャラクタC1のブレイクレベルを取得し、これが1以上の場合には、図7に示すようにブレイクレベルが高いほどブレイク値の減少量が小さくなるようにする。
そして、ブレイク値減算処理を終えると、プレイヤキャラクタC1のブレイク値の残量がゼロになったか否かを判定する(ステップS25)。そして、ブレイク値の残量がゼロ以下になったと判定した場合は(ステップS25:YES)、後述するブレイク状態処理(ステップS28)を実行する。一方、ブレイク値の残量がゼロより大きいと判定した場合は(ステップS25:NO)、被ダメージ行動処理(ステップS26)を実行する。この被ダメージ行動処理では、キャラクタ制御手段32によって、プレイヤキャラクタC1が上体を仰け反らせるモーションが再生され、プレイヤキャラクタC1がダメージを受けた様子が分かるようになっている。続いて、被ダメージ行動処理によるモーションの再生が終了したか否かを判定し(ステップS27)、終了していない場合(ステップS27:NO)にはステップS26〜S27の処理を繰り返し、終了したと判定した場合は(ステップS27:YES)、図9に示す被ダメージ処理を終了し、図8に示すメインフローへと戻る。なお、ステップS23にて、プレイヤキャラクタC1が受けた攻撃がブレイク値を減少させるタイプのものではなかったと判定した場合も(ステップS23:NO)、上述したようなステップS26〜S27の処理が実行される。
ところで、上述したようにステップS25でブレイク値の残量がゼロ以下になったと判定すると、プレイヤキャラクタC1はブレイク状態に切り替わることになる。そして、ステップS28〜S31に示すように、プレイヤキャラクタC1の特性に関する再設定を行った後、ブレイク状態処理(ステップS32)が実行される。
具体的には、まず、ブレイクレベル管理手段35がプレイヤキャラクタC1のブレイクレベルが最大値(本ゲームでは「5」)であるか否かを判定する(ステップS28)。その結果、ブレイクレベルが最大値未満であると判定した場合は(ステップS28:NO)、ブレイクレベルを1つ高い値に更新(ステップS29)すると共に、ブレイク値の初期値(最大値)及び自動回復ゾーン44aを、更新後のブレイクレベルに対応する内容に再設定する(ステップS30,S31)。そして、これらの再設定を終えるか、又はステップS28にてプレイヤキャラクタC1のブレイクレベルが最大値である(ステップS28:YES)と判定した場合に、ブレイク状態処理を実行する(ステップS32)。このブレイク状態処理では、キャラクタ制御手段32によって、敵キャラクタC2への攻撃や防御といった戦闘行動の全てが不能とされ、プレイヤキャラクタC1が大きく仰け反った姿勢になるモーションが再生される。これにより、プレイヤにはプレイヤキャラクタC1がブレイク状態に陥ったということが一目で分かるようになっている。
次に、ブレイク値回復処理(ステップS33)を実行する。このブレイク値回復処理では、ゼロから、ステップS30でブレイクレベルに応じて再設定されたブレイク値の初期値(最大値)まで、所定の速度(期間)でブレイク値を回復させる。ブレイク値が初期値まで回復する期間は、ブレイク状態の持続時間(所定期間)とされている。ここで、本実施の形態では、既に説明したようにブレイクレベルが高くなるほど、ブレイク状態を長く持続させるように設定されている。従って、ブレイクレベルが高くなってブレイク状態の持続時間がより長くなると、ステップS33のブレイク値回復処理によってブレイク値を最大値まで回復させるのに、より長い時間がかかることとなる。
続いて、このブレイク状態の間に、敵キャラクタC2からの攻撃によって更にダメージを受けたか否かを判定し(ステップS34)、ダメージ有無判定手段38によりダメージを受けたと判定した場合は(ステップS34:YES)、体力値減算処理を行う(ステップS35)。ここでの体力値減算処理はブレイク状態で受けたダメージに関するものであるため、通常状態でダメージを受けた場合のステップS20での体力値減算処理とは若干内容が異なっている。
具体的には、ステップS35の体力値減算処理では、ブレイクレベル管理手段35からプレイヤキャラクタC1のブレイクレベルを取得する。取得したブレイクレベルに応じて、図7の「(2)ブレイク状態での被ダメージ量」に示すように、プレイヤキャラクタC1が受けた攻撃に設定されたダメージ量に対して補正を行って具体的な被ダメージ量を算出する。そして、算出された被ダメージ量の分だけ、プレイヤキャラクタC1の体力値を減少させる。これにより、通常状態に比べてブレイク状態のときは、より多くのダメージを受けることとなる(体力値の減少量がより大きくなる)。
体力値減算処理を終えると、プレイヤキャラクタC1の体力値の残量がゼロより大きいか否かを判定し(ステップS36)、ゼロ以下であると判定した場合(ステップS36:NO)は、ステップS22へ移行してゲームオーバー処理を実行し、図8のメインフローへは戻らず対戦を終了する。また、体力値の残量がゼロより大きいと判定した場合は(ステップS36:YES)、ブレイク状態処理が終了したか否かを判定する(ステップS37)。具体的には、ステップS33でのブレイク値回復処理によって、プレイヤキャラクタC1のブレイク値が最大値にまで回復したか否かによって判定する。そして、最大値にまで回復していない場合にはブレイク状態処理が終了していない(ステップS37:NO)と判定し、ステップS32からの処理を再び実行する。従ってこの場合、ブレイク状態が終了するまで(ブレイク値が最大値に至るまで)、ブレイク状態処理(ステップS32)及びブレイク値回復処理(ステップS33)が繰り返し実行される。そして、この間、ディスプレイ2には、ブレイク状態を表すモーションがループ再生され続けると共に、ブレイクゲージ44が徐々に延びる(ブレイク値が回復する)表示がなされる。一方、ブレイク値が最大値に到達した場合にはブレイク状態処理が終了した(ステップS37:YES)と判定し、被ダメージ処理を終了して図8のメインフローに戻る。
このように、被ダメージ処理は、攻撃に応じた固定的なダメージ量を体力値から減算するものではなく、攻撃を受けたときのダメージ量(体力値の減少量)、ブレイク値の減少量、ブレイク値の初期値(最大値)、ブレイク状態の持続時間、自動回復ゾーンのスケールなどを、ブレイクレベルに応じて変更するようになっている。従って本ゲームの場合、対戦の戦況が対戦毎に異なってくるため、プレイヤが対戦に飽きてしまうのを抑制することができる。
攻撃動作実行処理
次に、図10のサブルーチンを参照して、図8のステップS8に示す攻撃動作実行処理について詳しく説明する。既に説明したように、本ゲームの攻撃には、剣を振り下ろすような直接的な攻撃と魔法を使うような間接的な攻撃とがあり、最終的な攻撃アクションの前に、銃や魔法による攻撃の場合には呪文を詠唱するといった準備行動が必要な場合があり、剣による攻撃の場合には待機位置から相手の近傍まで移動といった移動行動をする必要がある。
そこで攻撃動作実行処理では、図10に示すように、プレイヤが操作入力した攻撃の内容が、呪文詠唱のような準備行動が必要なものである場合にはこれを実行し(ステップS51)、移動が必要なものである場合には移動を実行し(ステップS56)、それから攻撃アクションを実行(ステップS58)するようになっている。
より詳しく説明すると、はじめに、プレイヤが操作入力した攻撃内容が、呪文詠唱のような準備行動が必要なものであるか否かを判定し(ステップS50)、必要である場合には各攻撃に応じた準備行動処理を実行する(ステップS51)。例えば、魔法による攻撃の場合であれば、準備行動処理では、プレイヤキャラクタC1が呪文を詠唱する一連のモーションを所定時間だけ再生する。この準備行動処理の途中に、敵キャラクタC2からの攻撃によりダメージを受けた場合は(ステップS52:YES)、攻撃動作実行処理(準備行動処理)を中断し、既に説明した被ダメージ処理(図9参照)を実行して図8のメインフローへ戻る。この場合、敵キャラクタC2への攻撃アクションは実行されないこととなるため、プレイヤキャラクタC1のスタミナ値は減少させない。
なお、敵キャラクタC2からの攻撃の種類などに応じて、被ダメージ処理(ステップS53)を実行した後に再び攻撃動作実行処理に戻り、ステップS54からの処理を実行するようにしてもよい。例えば、敵キャラクタC2からの攻撃が弱い(被ダメージ量が少ない)場合などに、このような処理をするようにしてもよい。
一方、ダメージを受けていない場合(ステップS52:NO)は、所定時間が経過することによって準備行動処理が終了したか否かを判定する(ステップS54)。そして、終了していないと判定した場合(ステップS54:NO)は、ステップS51からの処理を繰り返し、終了したと判定した場合(ステップS54:YES)、又は、プレイヤが操作入力した攻撃内容がそもそも準備行動を必要としないものであった場合(ステップS50:NO)には、続いて攻撃内容が移動行動を必要とするものであるか否かを判定する(ステップS55)。
敵キャラクタC2に近付いて剣による直接的な攻撃をする場合のように、攻撃内容が移動行動を必要とするものであると判定した場合(ステップS55:YES)は、移動行動処理を実行する(ステップS56)。この移動行動処理では、プレイヤキャラクタC1が攻撃に応じて設定された攻撃位置まで待機位置から移動するモーションを再生する。そして、プレイヤキャラクタC1が攻撃位置に到達することで移動行動処理が終了したか否かを判定(ステップS57)し、終了していないと判定した場合(ステップS57:NO)はステップS56からの処理を繰り返す。また、終了したと判定した場合(ステップS57:YES)、又は、プレイヤが操作入力した攻撃内容がそもそも移動行動を必要としないものであった場合(ステップS55:NO)には、続いて最終的な攻撃アクション実行処理が行われる(ステップS58)。なお、本ゲームの場合、プレイヤキャラクタC1が待機位置から攻撃位置まで移動している最中には、敵キャラクタC2からの攻撃を受けないようになっている。
ステップS58の攻撃アクション実行処理では、プレイヤキャラクタC1が剣を振りかぶって更にこれを振り下ろす、といった攻撃アクションの一連のモーションを再生する。この攻撃アクション実行処理の最中に、敵キャラクタC2からの攻撃によりダメージを受けた場合(ステップS59:YES)は、攻撃動作実行処理(攻撃アクション実行処理)を中断し、既に説明した被ダメージ処理(図9参照)を実行する。一方、攻撃アクション実行処理の最中にダメージを受けていない場合(ステップS59:YES)は、一連の攻撃アクションのモーション再生が終了することによって攻撃アクション実行処理が終了したか否かを判定し(ステップS61)、終了していないと判定した場合(ステップS61:NO)はステップS58からの処理を繰り返す。
攻撃アクション実行処理が終了したと判定した場合(ステップS61:YES)、又は、攻撃アクション実行処理の最中にダメージを受け、それに対する被ダメージ処理(ステップS60)が終了した場合は、続いて、実行した攻撃が事前に移動行動をしたものであったか否かを判定する(ステップS62)。即ち、この攻撃を実行するに際してステップS56に示した移動行動処理が実行され、プレイヤキャラクタC1が待機位置とは異なる攻撃位置に存在しているか否かを判定する。その結果、移動行動がされていると判定した場合(ステップS62:YES)は、移動行動処理を行って(ステップS63)、攻撃位置から待機位置まで移動するモーションを再生する。
そして、プレイヤキャラクタC1が待機位置に到達することで移動行動処理が終了したか否かを判定(ステップS64)し、終了していないと判定した場合(ステップS64:NO)はステップS63からの処理を繰り返す。また、終了したと判定した場合(ステップS64:YES)、又は、そもそも移動行動がされていない攻撃であった場合(ステップS62:NO)は、スタミナ値減算処理を実行する(ステップS65)。このスタミナ値減算処理では、実行した攻撃行動に応じた分だけ、プレイヤキャラクタC1のスタミナ値を減少させる。そして、スタミナ値減算処理を終了すると、図8のメインフローに戻るようになっている。
なお、プレイヤキャラクタC1の移動中にダメージを受け得るようにしてもよい。例えば、待機位置から攻撃位置への移動中(ステップS56〜S57)にダメージを受けた場合は、ダメージを受けた時点で攻撃動作実行処理(移動行動処理)を中断し、既に説明した被ダメージ処理(図9参照)を実行する。そして、被ダメージ処理を終了した後には、待機位置へ戻るべく図10のステップS63以降の処理を実行する。また、攻撃アクションを終えた(ステップS61:YES)後に、攻撃位置から待機位置へ戻るための移動中(ステップS63〜S64)にダメージを受けた場合は、既に処理を終えた攻撃アクション実行処理(ステップS58)は有効とし、既に説明した被ダメージ処理(図9参照)を実行する。そして、この被ダメージ処理を終了した後は、図10のステップS64以降の処理を実行する。
また、上記説明からも分かるように、攻撃アクション実行処理の最中に敵キャラクタC2からの攻撃でダメージを受けた場合(ステップS59:YES)は、プレイヤキャラクタC1の一連の攻撃アクションが完遂されていないため、敵キャラクタC2への攻撃は達成されず、ダメージを与えられないようになっている。一方、攻撃アクションは既に開始されているため、この攻撃を実行するのに必要なスタミナ値は、プレイヤキャラクタC1のスタミナ値から減算される(ステップS65)。但し、この場合にスタミナ値を減算しないようにしてもよい。
また、上述した説明では、一人のプレイヤがオフラインゲームを行う場合について例示したが、本発明は、複数のプレイヤが各自のプレイヤキャラクタを同一の仮想ゲーム空間内に登場させ、これらのキャラクタ同士で対戦したり、これらのキャラクタを共同させて敵キャラクタと対戦したりするようなオンラインゲームにおいても適用することができる。また、本実施例ではゲーム装置として携帯型ゲーム機を説明したが、携帯電話や、パーソナルコンピュータ、据え置き型のゲーム装置についても、本発明を好適に適用することができる。
(変形例)
ところで、上述した実施の形態では、ブレイク状態になった場合(図9のステップS25:YES)、まずブレイクレベルが更新され(ステップS28,S29)、次に、更新されたブレイクレベルに応じて被ダメージ量及びブレイク状態の持続時間が再設定(ステップS30,S31)される態様を説明した(図7も参照)。しかしながら、変形例として、ブレイク状態になった場合に、ブレイク状態が終了した後にブレイクレベルを更新し、更新されたブレイクレベルに応じて被ダメージ量及びブレイク状態の持続時間を再設定するようにしてもよい。
図13は、本変形例におけるブレイクレベルと対戦中のキャラクタの特性との関係を示す図表である。本変形例の場合、対戦を開始して最初にブレイク状態になったときには、ブレイクレベル「ゼロ」に対応する被ダメージ量及びブレイク状態の持続時間の設定が行われる。従って、図13に示すように、「(2)ブレイク状態での被ダメージ量」及び「(5)ブレイク状態の持続時間」においても「BL.0」に対応する補正量が設定される。なお、図13において(1),(3),(4),(6)の特性ついては、図7に示した内容と同じであり、(2),(5)の特性についても、ブレイクレベルが高くなるに伴う補正量の変化の仕方は図7に示したものと同様である。
また、上述した実施の形態及び本変形例の何れにおいても、図7又は図13に示した(1),(2)の特性については、少なくとも一方が、ブレイクレベルに対応して変化するように設定されていればよい。また、(3)〜(6)の特性については、これら全てがブレイクレベルに応じて変化しなくてもよいし、少なくとも何れか1つが変化するように設定してもよい。
また、図7及び図13では、ブレイクレベル(ブレイク状態になった回数)が高くなる毎に、(1)〜(6)の各特性が変化する態様を示しているが、特性毎に、その特性を変化させないブレイクレベルを設定してもよい。例えば、「(1)通常状態での被ダメージ量」について、ブレイクレベルが「0」から「5」まで高くなるのに伴って、補正量を「×1」、「×1(変化せず)」、「×1.25」、「×1.25(変化せず)」、「×1.5」、「×1.5(変化せず)」とし、ブレイクレベルが1,3,5に上がったときには特性が変化しないようにしてもよい。そして、特性を変化させないブレイクレベルを、特性毎に同一に設定してもよいし、互いに異ならせてもよい。
また、図7及び図13に示した(1)〜(6)の特性の他、ブレイクレベルに応じてスタミナ値の最大値を変更するようにしてもよい。例えば、ブレイクレベルが高くなるに従って、ブレイク状態にさせた方のキャラクタのスタミナ値の最大値が大きくなるようにし、より相手が受けるダメージ量の大きい攻撃を実行できるようにしてもよい。また、ブレイクレベルが高くなるに従ってスタミナ値の最大値が小さくなるようにし、ブレイク状態にさせた方のキャラクタがより有利になるようにしてもよい。
(その他の変形例)
上述した実施の形態では、対戦相手をブレイク状態とした直後に、ブレイク状態にした方のキャラクタのスタミナ値を初期値(最大値)まで回復させることとしているが、必ずしも初期値まで回復させる必要はない。例えば、初期値未満の所定値まで回復させるようにしてもよいし、所定量だけ回復させるようにしてもよい。そして、この所定値又は所定量を、ブレイクレベルに応じて変更するようにしてもよい。また、ブレイク状態中は、ブレイク状態にした方のキャラクタのスタミナ値を、該キャラクタの行動にかかわらず一切減少しないようにしてもよい。
また、図7,図13に示すように、対戦相手のブレイクレベルが高くなるに従って、攻撃によって該対戦相手が受けるダメージ量は大きくなるが、よりダメージ量を増加させるために、対戦相手をブレイク状態にした方のキャラクタの攻撃力を高くしたり、対戦相手の防御力を下げたり、といった設定にしてもよい。このように、ブレイク状態とした方のキャラクタが、ブレイク状態になった方のキャラクタに比べて、ダメージを与える点で有利となるようにお互いのパラメータを相対的に変更すればよい。
攻撃の種類として、相手に与えるダメージ量が「ゼロ」のものがあってもよい。例えば、ダメージ量はゼロである一方で、ダメージ量がゼロより大きい他の攻撃よりも、対戦相手のブレイク値を大きく減少させることができる攻撃(特定の魔法による攻撃など)を設定してもよい。また、全ての攻撃について、対戦相手のブレイク値を減少させるように設定してもよいし、一部の攻撃にのみブレイク値を減少させるように設定してもよい。
また、上述した説明では、ブレイク値は初期値として最大値が設定されており、そこから減少して所定の閾値(上記では「ゼロ」)になるとブレイク状態になることとしている。しかしながら、ブレイク値として最小値(例えば、「ゼロ」)の初期値を設定し、そこから、攻撃を受ける毎にブレイク値が増加するようにしてもよい。この場合、ブレイク値が初期値より大きい所定の閾値になることでブレイク状態となるようにする。即ち、ブレイク値を、攻撃を受ける毎に初期値から累積的に変化(減算又は加算)させ、その値が所定の閾値に達することでブレイク状態になるようにすればよい。同様に、体力値やスタミナ値についても、上記実施の形態にて説明したような減算方式に限られず、初期値から攻撃を受けるに従って加算していき、所定の閾値に達することでゲームオーバーとしたりスタミナ切れとしたりするようにしてもよい。
また、上述した実施の形態では、通常状態からブレイク状態に切り替わるブレイク値の閾値の例として「ゼロ」を採用した場合を説明したが、閾値は「ゼロ」以外の値に設定してもよい。例えば、攻撃を受ける毎にブレイク値が初期値(最大値)から減少していく態様の場合、初期値からゼロに至るまでの間に、少なくとも1つの閾値を設定し、ブレイク値がこの閾値に達したときに、所定の時間ブレイク状態が持続されるようにしてもよい。また例えば、初期値からゼロに至るまでの間に2つ以上の互いに値の異なる閾値を設定した場合は、攻撃を受ける毎にブレイク値を初期値から減少させ、初期値に近い閾値から順に、該閾値に到達する毎に所定時間ブレイク状態とし、該所定時間を過ぎると通常状態に復帰させるようにしてもよい。このように、ブレイク状態であってもブレイク値の回復処理(図9のステップS33参照)を行わず、ブレイク値は減算するのみとし、途中に設けた閾値に到達する毎に一定期間ブレイク状態となるように設定してもよい。そして、このようにしてブレイク状態になる毎にブレイクレベルを1つ大きい値に更新し、更新されたブレイクレベルに応じて、図7又は図13に示すようなキャラクタの特性を変更するようにすればよい。
なお、上述した実施の形態ではプレイヤキャラクタC1と敵キャラクタC2とによる「1vs.1」の対戦について説明したが、「Xvs.Y」(X,Yは何れも1又は複数)の場合にも本発明を適用することができ、更に、「Xvs.Yvs.Z」(X,Y,Zは何れも1又は複数)のような場合にも本発明を適用することができる。更に、上述した実施の形態における「敵キャラクタC2」には、他のプレイヤに操作されずゲーム機1によって動作制御されるノンプレイヤキャラクタの他、他のプレイヤに操作されるプレイヤキャラクタが含まれることは言うまでもない。