以下、本発明の実施形態の一例について図面に基づき詳細に説明する。本発明の実施形態に係るゲーム装置は、例えば家庭用ゲーム機(据置型ゲーム機)、携帯ゲーム機、業務用ゲーム機、携帯電話機、携帯情報端末(PDA)、又はパーソナルコンピュータによって実現される。ここでは、本発明の実施形態に係るゲーム装置を家庭用ゲーム機によって実現する場合について説明する。
図1は本発明の実施形態に係るゲーム装置のハードウェア構成を示す。図1に示すように、ゲーム装置10は家庭用ゲーム機11、表示部30、音声出力部31、光ディスク32、及びメモリカード33を含む。表示部30及び音声出力部31は家庭用ゲーム機11に接続される。例えば家庭用テレビ受像機又は液晶ディスプレイが表示部30として用いられ、例えば、家庭用テレビ受像機に内蔵されたスピーカ又はヘッドホンが音声出力部31として用いられる。
家庭用ゲーム機11はコンピュータシステムであり、バス12、制御部13、主記憶14、画像処理部15、音声処理部16、光ディスクドライブ17、メモリカードスロット18、通信インタフェース(I/F)19、コントローラインタフェース(I/F)20、及び操作受付部21を含む。
バス12はアドレス及びデータを家庭用ゲーム機11の各部でやり取りするために用いられる。制御部13、主記憶14、画像処理部15、音声処理部16、光ディスクドライブ17、メモリカードスロット18、通信インタフェース19、及びコントローラインタフェース20は、バス12によって相互データ通信可能に接続される。
制御部13は例えば一又は複数のマイクロプロセッサを含み、例えば光ディスク32から読み出されるプログラムに基づいて、家庭用ゲーム機11の各部の制御処理や各種情報処理を実行する。主記憶14は例えばRAMを含み、光ディスク32又はメモリカード33から読み出されたプログラム及びデータが必要に応じて書き込まれる。主記憶14は制御部13の作業用としても用いられる。
画像処理部15はVRAMを含み、制御部13から送られる画像データに基づいてVRAM上にゲーム画面を描画し、そのゲーム画面を表示部30に表示する。音声処理部16はサウンドバッファを含み、光ディスク32からサウンドバッファに読み出された各種音声データ(ゲーム音楽、ゲーム効果音、メッセージ等)を音声出力部31から出力する。
光ディスクドライブ17は、光ディスク32に記録されたプログラムやデータを読み取る。ここではプログラムやデータを家庭用ゲーム機11に供給するために光ディスク32を用いることとするが、例えばメモリカード33等の他のあらゆる情報記憶媒体を用いるようにしてもよい。また、インターネット等のデータ通信網を介して遠隔地からプログラムやデータを家庭用ゲーム機11に供給するようにしてもよい。
メモリカードスロット18はメモリカード33を装着するためのインタフェースである。メモリカード33は不揮発性メモリ(例えばEEPROMなど)を含み、例えばセーブデータなどの各種ゲームデータを記憶する。通信インタフェース19は、インターネットなどのデータ通信網に通信接続するためのインタフェースである。
コントローラインタフェース20は複数のコントローラ23を無線接続するためのインタフェースである。なお、コントローラインタフェース20はコントローラ23を有線接続するためのインタフェースとしてもよい。
操作受付部21はユーザによる操作を受け付けるためのものである。操作受付部21は、発光部22と、1又は複数のコントローラ23と、を含む。図2は操作受付部21の一例を示し、図3はコントローラ23の一例を示す。
図2に示すように、発光部22は複数の光源を含み、表示部30の上部に配置される。図2に示す例では、発光部22の両端部に光源34a,34bが設けられている。なお、発光部22は表示部30の下部に配置されるようにしてもよい。
コントローラ23は略直方体の形状を有し、コントローラ23の表面23aには方向ボタン26及びボタン27a,27b,27cが設けられている。方向ボタン26は十字形状を有し、一般的に方向を指示するために用いられる。ボタン27a,27b,27cは各種ゲーム操作に用いられる。
また、コントローラ23は撮像部24及び撮影画像解析部25を含む。撮像部24は例えばCCD等の撮像素子であり、コントローラ23の前端部23bに設けられる。撮影画像解析部25は例えばマイクロプロセッサを含み、コントローラ23に内蔵される。ユーザがコントローラ23の前端部23bを表示部30の方に向けると、撮像部24の撮影画像には光源34a,34bが写し出される。撮影画像解析部25は、撮影画像に写し出された光源34a,34bの位置を解析し、その解析結果に基づいて、コントローラ23の前端部23bが指し示す位置を取得する。このため、操作受付部21は、表示部30に表示されるゲーム画面上の位置をユーザが指し示すためのポインティングデバイスとして用いられる。
コントローラ23の状態を表す操作信号が、一定周期ごと(例えば1/60秒ごと)に、コントローラインタフェース20を介して制御部13に送信される。この操作信号には、例えば、コントローラ23を識別する識別情報と、方向ボタン26及びボタン27a,27b,27cの押下状態を示す情報と、コントローラ23の指示位置(前端部23bが指し示している位置)を示す情報と、が含まれる。
ゲーム装置10では、例えば、第1チームと第2チームとの間のサッカーの試合を模したサッカーゲームが実行される。このサッカーゲームは、光ディスク32から読み出されたプログラムが実行されることによって実現される。以下では、第1チームがユーザによって操作され、第2チームがコンピュータ(制御部13)によって操作される場合について説明する。なお、第2チームは他のユーザによって操作されるようにしてもよい。
サッカーゲームプログラムが実行されると、主記憶14にゲーム空間が構築される。図4はゲーム空間の一例を示す図である。図4に示すゲーム空間40は、3つの座標軸Xw,Yw,Zwが設定された仮想3次元空間である。図4に示すように、サッカーのフィールドを表すオブジェクトであるフィールド41がゲーム空間40に配置される。サッカーの試合は、二本のゴールライン42と二本のタッチライン43とによって囲まれた領域であるピッチ44内で行われる。
またフィールド41上には、サッカーのゴールを表すオブジェクトであるゴール45と、サッカー選手を表すオブジェクトである選手キャラクタ46と、サッカーボールを表すオブジェクトであるボール47と、が配置される。図4では省略されているが、第1チームに所属する11名の選手キャラクタ46と、第2チームに所属する11名の選手キャラクタ46と、がフィールド41上に配置される。
また、ゲーム空間40には仮想カメラ48が設定される。この仮想カメラ48からゲーム空間40を見た様子を表すゲーム画面が表示部30に表示される。例えば、ボール47が常にゲーム画面に表示されるように、仮想カメラ48はボール47の移動に基づいてゲーム空間40内を移動する。
図5はゲーム画面の一例を示している。図5に示すように、ゲーム画面には、ゲーム空間40を仮想カメラ48から見た様子を表す画像が表示される。またゲーム画面には、コントローラ23の指示位置を示すカーソル50が表示される。本実施形態ではカーソル50が円形状になっており、カーソル50の中心点50aがコントローラ23の指示位置を示している。さらに、図5に示すゲーム画面では、ボール47を保持している選手キャラクタ46の頭上に第1ゲージ51と第2ゲージ52が表示されている。第1ゲージ51及び第2ゲージ52については後述する。
なお、図5では一体の選手キャラクタ46のみが表されているが、実際のゲーム画面には複数の選手キャラクタ46が表示される場合がある。また、カーソル50の形状は円形以外の形状であってもよい。
このサッカーゲームでは、原則として、選手キャラクタ46がAI(人工知能)に従って行動するようになっている。ただし、ユーザはゲーム画面内の位置をコントローラ23の前端部23bで指し示すことによって、選手キャラクタ46の移動方向、移動目標位置、又はキック方向等を指示できるようになっている。
ここでは、選手キャラクタ46の移動方向又は移動目標位置を指示するための操作について説明する。図6及び図7は該操作を説明するための図である。
まず、ユーザは、指示したい選手キャラクタ46をコントローラ23の前端部23bで指し示し、その選手キャラクタ46が表示されている位置にカーソル50を移動する(図6参照)。この状態でユーザがコントローラ23の所定ボタン(例えばボタン27a)を押下すると、その選手キャラクタ46が指示対象として設定される。
指示対象に設定された選手キャラクタ46は、カーソル50の表示位置に対応するゲーム空間40内の位置への方向に移動する。このため、ユーザはカーソル50を移動させることによって、指示対象に設定された選手キャラクタ46の移動方向を変更することができる。
また、移動目標位置を設定する場合、ユーザは選手キャラクタ46をコントローラ23の前端部23bで指し示した状態でコントローラ23の所定ボタン(例えばボタン27a)を押下する。そして、ユーザは該所定ボタンを押下したままで、移動目標位置に設定したい位置をコントローラ23の前端部23bで指し示し、移動目標位置に設定したい位置までカーソル50を移動させる(図7参照)。
この場合、選手キャラクタ46の足元位置とカーソル50の中心点50aとを結ぶ線画像53が表示される。そして、ユーザが上記の所定ボタンの押下を解除すると、その時点のカーソル50の表示位置に対応するゲーム空間40内の位置が、選手キャラクタ46の移動目標位置として設定される。
移動目標位置が設定された選手キャラクタ46は移動目標位置への移動を開始する。この場合、選手キャラクタ46は、カーソル50の表示位置に関わらず、移動目標位置に向けて移動し続ける。また、この場合、選手キャラクタ46の移動速度は線画像53の長さに基づいて決定される。例えば、線画像53が長いほど、選手キャラクタ46の移動速度が速くなる。なお、選手キャラクタ46がボール47を保持している場合、移動動作はドリブル動作になる。
ここで、第1ゲージ51及び第2ゲージ52について説明する。第1ゲージ51は選手キャラクタ46の体力パラメータに対応するゲージ画像であり、第2ゲージ52は選手キャラクタ46のプレイエネルギーパラメータに対応するゲージ画像である。
上記体力パラメータは選手キャラクタ46の体力の残りを示すパラメータである。体力パラメータが高いほど、体力が多く残っていることを示す。例えば、体力パラメータは0〜100の数値をとる。体力パラメータは試合開始時に初期値(100)に設定され、試合の進行に伴って徐々に減少する。例えば、時間経過に基づいて、選手キャラクタ46の体力パラメータは減少する。また例えば、選手キャラクタ46が動作を行うごとに、その選手キャラクタ46の体力パラメータは減少する。
第1ゲージ51の長さは体力パラメータに対応する。「第1ゲージ51の長さ」とは第1ゲージ51内の斜線部分の長さである。体力パラメータの減少に応じて第1ゲージ51は短くなる。
一方、上記プレイエネルギーパラメータは、選手キャラクタ46の動作の制御に用いられるパラメータである。例えば、プレイエネルギーパラメータは0〜100の数値をとる。プレイエネルギーパラメータは試合開始時に初期値(100)に設定される。例えば、選手キャラクタ46がドリブル動作を行うと、その選手キャラクタ46のプレイエネルギーパラメータが減少する。一方、選手キャラクタ46がドリブル動作を行っていない場合、プレイエネルギーパラメータが時間経過に伴って増加する。すなわち、プレイエネルギーパラメータが時間経過に伴って徐々に回復する。
プレイエネルギーパラメータは下記に説明するような場合に用いられる。例えば、他の選手キャラクタ46と接触(衝突)した選手キャラクタ46が体勢を崩すか否かが、その選手キャラクタ46のプレイエネルギーパラメータに基づいて決定される。プレイエネルギーパラメータが低いほど、選手キャラクタ46が体勢を崩す確率が高くなる。例えば、選手キャラクタ46がドリブル動作をしている場合に体勢を崩してしまうと、他の選手キャラクタにボール47を奪取される可能性が高くなる。このため、本実施形態では、ユーザが選手キャラクタ46にドリブル動作を継続させるほど、ボール47を奪取される可能性が高くなるようになっている。
また例えば、選手キャラクタ46が移動方向を変更する場合、移動方向を変更する動作自体の速さが、その選手キャラクタ46のプレイエネルギーパラメータに基づいて決定される。プレイエネルギーパラメータが低くなるほど、選手キャラクタ46は速やかに移動方向を変えることができなくなる。例えば、選手キャラクタ46がドリブル動作をしている場合において、移動方向を変更する動作自体の速さが遅くなると、他の選手キャラクタにボール47を奪取される可能性が高くなる。このため、本実施形態では、ユーザが選手キャラクタ46にドリブル動作を継続させるほど、ボール47を奪取される可能性が高くなるようになっている。
ところで、選手キャラクタ46がドリブル動作を行う場合のプレイエネルギーパラメータの減少量は体力パラメータに基づいて決定される。体力パラメータが低いほど、プレイエネルギーパラメータの減少量が多くなる。このため、体力パラメータが低い場合には、ドリブル動作を行っている選手キャラクタ46のプレイエネルギーパラメータの減り具合が大きくなる。その結果、その選手キャラクタ46は他の選手キャラクタ46との接触によって体勢を崩しやすくなったり、移動方向を変更する動作自体の速さが遅くなりやすくなったりする。
第2ゲージ52の長さはプレイエネルギーパラメータに対応する。「第2ゲージ52の長さ」とは第2ゲージ52内の斜線部分の長さである。プレイエネルギーパラメータの減少に応じて第2ゲージ52は短くなり、プレイエネルギーパラメータの増加に応じて第2ゲージ52は長くなる。
図8は、ゲーム装置10で実現される機能のうち、本発明に関連するものを主として示す機能ブロック図である。図8に示すように、ゲーム装置10はゲームデータ記憶部60、第1パラメータ更新部66、第2パラメータ更新部67、ゲームキャラクタ制御部68、及び表示制御部69を含む。ゲームデータ記憶部60は例えば主記憶14、光ディスク32、及びメモリカード33の少なくとも一つによって実現され、その他の機能ブロックは例えば制御部13がプログラムを実行することによって実現される。
ゲームデータ記憶部60はゲームを実行するために必要なゲームデータを記憶する。例えばゲームデータ記憶部60はゲームキャラクタデータ記憶部61を含む。ゲームキャラクタデータ記憶部61はゲームキャラクタに関するデータを記憶する。
ゲームキャラクタデータ記憶部61はパラメータ記憶部62を含む。パラメータ記憶部62はゲームキャラクタに関するパラメータを記憶する。本実施形態の場合、パラメータ記憶部62は第1パラメータ記憶部63及び第2パラメータ記憶部64を含む。
第1パラメータ記憶部63はゲームキャラクタに関する第1パラメータを記憶する。第1パラメータはパラメータ更新部65(第1パラメータ更新部66)によって更新される。本実施形態の場合、体力パラメータが「第1パラメータ」に相当する。
第2パラメータ記憶部64はゲームキャラクタに関する第2パラメータを記憶する。第2パラメータはパラメータ更新部65(第2パラメータ更新部67)によって更新される。本実施形態の場合、プレイエネルギーパラメータが「第2パラメータ」に相当する。
本実施形態の場合、ゲームキャラクタデータ記憶部61は、選手キャラクタ46に関するデータとして、例えば下記のようなデータを記憶する。
(1)選手キャラクタ46の形状データ
(2)選手キャラクタ46のモーションデータ
(3)選手キャラクタ46の能力(例えばドリブル力等)を示すパラメータデータ
(4)選手キャラクタ46の状態データ
図9は、選手キャラクタ46の状態データの一例である選手テーブルを示す。図9に示す選手テーブルにおいて、「ID」フィールドは、選手キャラクタ46を一意に識別する識別情報を示す。「位置」フィールドは、選手キャラクタ46の現在位置(XwYwZw座標系における位置)を示す。「動作」フィールドは、選手キャラクタ46が行っている動作の種類を示す。「移動速度ベクトル」フィールドは選手キャラクタ46の移動速度及び移動方向を表すベクトルを示す。「移動目標位置」フィールドは選手キャラクタ46の移動目標位置を示す。
「指示対象フラグ」フィールドは選手キャラクタ46がユーザの指示対象に設定されているか否かを0又は1の数値で示す。「ボール保持フラグ」フィールドは選手キャラクタ46がボール47を保持しているか否かを0又は1の数値で示す。「体力パラメータ」フィールドは選手キャラクタ46の体力パラメータの現在値を示し、「プレイエネルギーパラメータ」フィールドは選手キャラクタ46のプレイエネルギーパラメータの現在値を示す。
なお、ゲームデータ記憶部60は、上記に説明したデータの他に、例えば下記に示すようなデータを記憶する。
(1)ボール47の状態データ(例えば位置及び移動速度ベクトル等)
(2)仮想カメラ48の状態データ(例えば位置、視線方向48a及び画角等)
(3)カーソル50の表示位置データ
(4)経過時間データ
(5)得点データ
パラメータ更新部65はパラメータ記憶部62に記憶されるパラメータを更新する。本実施形態の場合、パラメータ更新部65は第1パラメータ更新部66及び第2パラメータ更新部67を含む。
第1パラメータ更新部66は、時間経過又は/及びゲームキャラクタの動作に基づいて第1パラメータを更新する。本実施形態の場合、第1パラメータ更新部66は、所定時間が経過するごとに、各選手キャラクタ46の体力パラメータを減少させる。なお、第1パラメータ更新部66は、選手キャラクタ46が動作を行うごとに、その選手キャラクタ46の体力パラメータをその動作に対応する量だけ減少させるようにしてもよい。
第2パラメータ更新部67は、ゲームキャラクタによって所定の移動動作が行われる場合に、第2パラメータの増加及び減少の一方を実行する。第2パラメータ更新部67は、ゲームキャラクタによって所定の移動動作が行われる場合の第2パラメータの増加量又は減少量を第1パラメータに基づいて制御する。また、第2パラメータ更新部67は、ゲームキャラクタによって所定の移動動作が行われていない場合に、第2パラメータの増加及び減少の他方を実行する。
本実施形態の場合、上記「所定の移動動作」は、例えばドリブル動作である。第2パラメータ更新部67は、選手キャラクタ46がドリブル動作を行う場合に、その選手キャラクタ46のプレイエネルギーパラメータを減少させる。この場合、プレイエネルギーパラメータの減少量は選手キャラクタ46の体力パラメータに基づいて決定される。また、選手キャラクタ46がドリブル動作を行っていない場合に、第2パラメータ更新部67は、時間経過に基づいて、その選手キャラクタ46のプレイエネルギーパラメータを増加させる。
ゲームキャラクタ制御部68はゲームキャラクタに関する制御を実行する。例えば、ゲームキャラクタ制御部68は、ユーザの操作に基づいて、ゲームキャラクタの移動方向又は移動目標位置を設定する。本実施形態の場合、ゲームキャラクタ制御部68は、ユーザがコントローラ23の前端部23bで指し示した位置に基づいて、選手キャラクタ46の移動方向又は移動目標位置を設定する。
また、ゲームキャラクタ制御部68はゲームキャラクタの動作を第2パラメータに基づいて制御する。本実施形態の場合、ゲームキャラクタ制御部68は、選手キャラクタ46の動作をその選手キャラクタ46のプレイエネルギーパラメータに基づいて制御する。
例えば、ゲームキャラクタ制御部68は、選手キャラクタ46の体勢を崩すか否かを決定する場合に、選手キャラクタ46が体勢を崩すか否かを、その選手キャラクタ46のプレイエネルギーパラメータに基づいて決定する。なお、選手キャラクタ46の体勢を崩すか否かが決定される場合とは、例えば、選手キャラクタ46が他の選手キャラクタ46と接触した場合である。この場合、ゲームキャラクタ制御部68は、他の選手キャラクタ46と接触した選手キャラクタ46が体勢を崩すか否かを、その選手キャラクタ46のプレイエネルギーパラメータに基づいて決定する。
また例えば、ゲームキャラクタ制御部68は、選手キャラクタ46が移動方向を変更する動作を行う場合に、移動方向を変更する動作の速さを、その選手キャラクタ46のプレイエネルギーパラメータに基づいて決定する。「移動方向を変更する動作の速さ」とは、移動方向をどれだけ素早く変えるかを意味しており、例えば、選手キャラクタ46の体の軸を回転軸とした回転速度である。
表示制御部69はゲームデータ記憶部60に記憶されるデータに基づいてゲーム画面を表示部30に表示する。
ここで、図8に示した機能ブロックを実現するためにゲーム装置10が実行する処理について説明する。図10はゲーム装置10が所定時間(例えば1/60秒)ごとに実行する処理を示すフロー図である。制御部13は光ディスク32に記憶されるプログラムに従って、図10に示す処理を実行する。
図10に示すように、まず、制御部13は、各選手キャラクタ46の状態データやボール47の状態データを更新する(S101)。例えば、各選手キャラクタ46の位置、姿勢、及び移動方向等が更新され、ボール47の位置及び移動方向等が更新される。
ここで、ステップS101で実行される、各選手キャラクタ46の状態データの更新処理について説明する。図11及び図12は、各選手キャラクタ46の状態データの更新処理のうち、体力パラメータ及びプレイエネルギーパラメータに関連する処理の一例について示すフロー図である。なお、図11及び図12に示す処理は選手キャラクタ46ごとに実行される。
図11及び図12に示す処理では、まず制御部13が、体力パラメータの更新タイミングが到来したか否かを判定する(S201)。例えば、体力パラメータの更新タイミングは所定時間(例えば10秒)ごとに到来する。体力パラメータの更新タイミングが到来した場合、制御部13(第1パラメータ更新部66)は選手キャラクタ46の体力パラメータを減らす(S202)。
この場合の体力パラメータの減少量(A)は選手キャラクタ46ごとに異なる。例えば、減少量(A)は、選手キャラクタ46の所定の能力パラメータ(例えば、疲れ難さを示すパラメータ)に基づいて決定される。具体的には、能力パラメータと減少量(A)との対応関係を示す情報と、選手キャラクタ46の能力パラメータと、に基づいて減少量(A)が決定される。例えば、上記情報は、選手キャラクタ46が疲れ難いほど、減少量(A)が少なくなるように設定される。なお、上記情報はテーブル形式の情報であってもよいし、数式形式の情報であってもよい。また、減少量(A)は選手キャラクタ46に依らず一定としてもよい。
その後、制御部13(第2パラメータ更新部67)は選手キャラクタ46のプレイエネルギーパラメータを増やす(S203)。この場合のプレイエネルギーパラメータの増加量(B)は、例えば、選手キャラクタ46に依らず一定である。なお、増加量(B)は、上記の体力パラメータの減少量(A)と同様に、選手キャラクタ46ごとに異なるようにしてもよい。例えば、増加量(B)は選手キャラクタ46の体力パラメータに基づいて決定されるようにしてもよい。
その後、制御部13は、選手テーブル(図9参照)に基づいて、選手キャラクタ46がドリブル動作を行っているか否かを判定する(S204)。選手キャラクタ46がドリブル動作を行っている場合、制御部13(第2パラメータ更新部67)はプレイエネルギーパラメータの減少量(C)を決定する(S205)。この減少量(C)は、ドリブル動作が行われている間における単位時間(本実施形態の場合には1/60秒)あたりの減少量に相当している。例えば、減少量(C)は選手キャラクタ46の体力パラメータに基づいて決定される。具体的には、体力パラメータと減少量(C)との対応関係を示す情報と、選手キャラクタ46の体力パラメータと、に基づいて、減少量(C)が決定される。
図13は、体力パラメータ(X)と減少量(C)との対応関係を示す情報の一例を示す。図13に示す例では、上記情報がテーブル形式の情報になっているが、上記情報は例えば数式形式の情報であってもよい。図13における「C1」、「C2」、及び「C3」は、それぞれ、プレイエネルギーパラメータの減少量を示す所定の数値である。「C1」は「C2」よりも大きい数値であり、「C2」は「C3」よりも大きい数値である。また、図13における「B」は、ステップS203における増加量(B)である。
図13に示す例では、例えば、体力パラメータ(X)の値が0〜40の範囲内に含まれる場合の減少量(C)が、体力パラメータ(X)の値が40〜70の範囲内に含まれる場合に比べて多くなっている。すなわち、図13に示す例では、体力パラメータ(X)が比較的低い場合の減少量(C)が、体力パラメータ(X)が比較的高い場合に比べて多くなっている。
また、図13に示す例では、減少量(C)がステップS203における増加量(B)よりも多い量に設定されている。このため、後述のステップS206においてプレイエネルギーパラメータが減らされた場合には、プレイエネルギーパラメータの値が、ステップS203において増やされる前の値(元々の値)よりも低くなるようになっている。
ステップS205において、制御部13は、図13に示す情報と、選手キャラクタ46の体力パラメータと、に基づいて、プレイエネルギーパラメータの減少量(C)を決定する。そして、制御部13(第2パラメータ更新部67)は選手キャラクタ46のプレイエネルギーパラメータを減少量(C)だけ減らす(S206)。
次に、制御部13は、移動方向の変更が選手キャラクタ46に指示されたか否かを判定する(S207)。移動方向の変更が選手キャラクタ46に指示された場合、制御部13(ゲームキャラクタ制御部68)は、移動方向を変更する動作の速さを決定する(S208)。例えば、選手キャラクタ46の体の軸を回転軸とした回転速度(S)が決定される。
回転速度(S)は選手キャラクタ46のプレイエネルギーパラメータに基づいて決定される。具体的には、プレイエネルギーパラメータと回転速度(S)との対応関係を示す情報と、選手キャラクタ46のプレイエネルギーパラメータと、に基づいて、回転速度(S)が決定される。
図14は、プレイエネルギーパラメータ(Y)と回転速度(S)との対応関係を示す情報の一例を示す。図14に示す例では、上記情報がテーブル形式の情報になっているが、上記情報は例えば数式形式の情報であってもよい。図14における「S1」、「S2」、及び「S3」は、それぞれ、回転角度を示す所定の数値である。「S2」は「S1」よりも大きい数値(回転角度)であり、「S3」は「S2」よりも大きい数値(回転角度)である。
図14に示す例では、例えば、プレイエネルギーパラメータ(Y)の値が0〜40の範囲内に含まれる場合の回転速度(S)が、プレイエネルギーパラメータ(Y)の値が40〜70の範囲内に含まれる場合に比べて遅くなっている。すなわち、図14に示す例では、プレイエネルギーパラメータ(Y)が比較的低い場合の回転速度(S)が、プレイエネルギーパラメータ(Y)が比較的高い場合に比べて遅くなっている。
ステップS208において、制御部13は、図14に示す情報と、選手キャラクタ46のプレイエネルギーパラメータと、に基づいて、選手キャラクタ46が移動方向を変更する場合の回転速度(S)を決定する。そして、制御部13は、移動方向を変更する動作を選手キャラクタ46に開始させる(S209)。
すなわち、制御部13は、ステップS207で決定された速さ(回転速度)の「移動方向を変更する動作」を選手キャラクタ46に開始させる。ステップS209では、移動方向を変更する動作のモーションデータが光ディスク32から読み出され、該モーションデータの再生が開始される。すなわち、モーションデータに従って、選手キャラクタ46の姿勢が更新される。これによって、選手キャラクタ46が移動方向を変更する動作を開始するようになる。
また図12に示すように、制御部13(第2パラメータ更新部67)は、選手キャラクタ46が移動方向を変えることに起因するプレイエネルギーパラメータの減少量(D)を決定する(S210)。例えば、減少量(D)は、ステップS205における減少量(C)と同様に、選手キャラクタ46の体力パラメータに基づいて決定される。具体的には、体力パラメータと減少量(D)との対応関係を示す情報と、選手キャラクタ46の体力パラメータと、に基づいて、減少量(D)が決定される。
図15は、体力パラメータ(X)と減少量(D)との対応関係を示す情報の一例を示す。図15に示す例では、上記情報がテーブル形式の情報になっているが、上記情報は例えば数式形式の情報であってもよい。図15における「D1」、「D2」、及び「D3」は、それぞれ、プレイエネルギーパラメータの減少量を示す所定の数値である。「D1」は「D2」よりも大きい数値であり、「D2」は「D3」よりも大きい数値である。
図15に示す例では、例えば、体力パラメータ(X)の値が0〜40の範囲内に含まれる場合の減少量(D)が、体力パラメータ(X)の値が40〜70の範囲内に含まれる場合に比べて多くなっている。すなわち、図15に示す例では、体力パラメータ(X)が比較的低い場合の減少量(D)が、体力パラメータ(X)が比較的高い場合に比べて多くなっている。
ステップS210において、制御部13は、図14に示す情報と、選手キャラクタ46の体力パラメータと、に基づいて、プレイエネルギーパラメータの減少量(D)を決定する。そして、制御部13(第2パラメータ更新部67)は選手キャラクタ46のプレイエネルギーパラメータを減少量(D)だけ減らす(S211)。
また、制御部13は、選手テーブル(図9参照)に基づいて、選手キャラクタ46が他の選手キャラクタ46が接触したか否かを判定する(S212)。例えば、この判定では一般的な衝突判定アルゴリズムが用いられる。
選手キャラクタ46が他の選手キャラクタ46が接触した場合、制御部13(ゲームキャラクタ制御部68)は選手キャラクタ46の体勢を崩すか否かを決定する(S213)。例えば、制御部13は、選手キャラクタ46のプレイエネルギーパラメータの値に対応する確率情報に基づいて、選手キャラクタ46の体勢を崩すか否かを決定する。例えば、プレイエネルギーパラメータと確率情報との対応関係を示す情報と、選手キャラクタ46のプレイエネルギーパラメータと、に基づいて、選手キャラクタ46の体勢を崩す確率に関する確率情報が決定される。
図16は、プレイエネルギーパラメータ(Y)と確率情報(P)との対応関係を示す情報の一例を示す。図16に示す例では、上記情報がテーブル形式の情報になっているが、上記情報は例えば数式形式の情報であってもよい。図16における「P1」、「P2」、及び「P3」は、それぞれ、所定の確率情報である。「P1」は「P2」よりも高い確率を示し、「P2」は「P3」よりも高い確率を示している。
図16に示す例では、例えば、プレイエネルギーパラメータ(Y)の値が0〜40の範囲内に含まれる場合の確率情報(P)が、プレイエネルギーパラメータ(Y)の値が40〜70の範囲内に含まれる場合に比べて高くなっている。
すなわち、図16に示す例では、プレイエネルギーパラメータ(Y)が比較的低い場合の確率情報(P)が、プレイエネルギーパラメータ(Y)が比較的高い場合に比べて高くなっている。すなわち、図16に示す例では、プレイエネルギーパラメータ(Y)が低いほど、選手キャラクタ46が体勢を崩しやすくなり、かつ、プレイエネルギー(Y)が高いほど、選手キャラクタ46が体勢を崩しにくくなるように、確率情報が設定されている。
選手キャラクタ46の体勢を崩すと決定された場合、制御部13は、選手キャラクタ46に体勢を崩す動作を開始させる(S214)。例えば、制御部13は、体勢を崩す動作のモーションデータを光ディスク32から読み出し、該モーションデータの再生を開始する。これによって、選手キャラクタ46が体勢を崩す動作を開始するようになる。なお、「体勢を崩す動作」は、例えばよろめく動作又は転倒する動作である。
図10に示すように、ステップS101の処理が完了した後、制御部13はゲーム画面を更新する(S102)。すなわち、制御部13はゲームデータ記憶部60に記憶されるデータに基づいてゲーム画面をVRAM上に生成する。VRAM上に生成されたゲーム画面は表示部30に表示される。
以上説明したゲーム装置10では、選手キャラクタ46が所定の移動動作(例えばドリブル動作)を行っている間においてその選手キャラクタ46のプレイエネルギーパラメータが減少する。プレイエネルギーパラメータが低くなると、他の選手キャラクタ46と接触した場合に体勢を崩す確率が高くなったり、移動方向を変更する動作自体の速さが遅くなったりするため、他の選手キャラクタにボール47を奪取される可能性が高くなる。このため、ゲーム装置10によれば、ユーザが選手キャラクタ46に所定の移動動作(ドリブル動作)を継続させるほど、ボール47を奪取される可能性を高くすることが可能になり、その結果として、選手キャラクタ46に所定の移動動作(ドリブル動作)を継続させすぎないようにユーザを誘導することが可能になる。
また、ゲーム装置10によれば、選手キャラクタ46が所定の移動動作(ドリブル動作)を行っている間のプレイエネルギーパラメータの減少量がその選手キャラクタ46の体力パラメータに基づいて変化するようになっている。このため、試合の進行に伴って、選手キャラクタ46が所定の移動動作(ドリブル動作)を行っている間のプレイエネルギーパラメータの減少量が変化するようになっている。
なお、本発明は以上に説明した実施形態に限定されるものではない。
(1)「所定の移動動作」はドリブル動作に限られない。例えば、選手キャラクタ46の移動動作として、通常移動動作と、通常の移動動作よりも速い速度で移動する高速移動動作と、が存在するような場合、高速移動動作が「所定の移動動作」に相当するようにしてもよい。このようにすれば、選手キャラクタ46に高速移動動作を継続させすぎないようにユーザを誘導することが可能になる。
(2)例えば、体力パラメータの代わりに疲労度パラメータが記憶されるようにしてもよい。疲労度パラメータは選手キャラクタ46の疲労度を示す。例えば、疲労度パラメータは0〜100の数値をとる。疲労度パラメータの値が高いほど、選手キャラクタ46の疲労度が高いことを示す。例えば、疲労度パラメータは試合開始時に初期値(0)に設定される。
この場合、疲労度パラメータが「第1パラメータ」に相当する。例えば、第1パラメータ更新部66は、所定時間が経過するごとに、各選手キャラクタ46の疲労度パラメータを増加させる。なお、第1パラメータ更新部66は、選手キャラクタ46が動作を行うごとに、その選手キャラクタ46の疲労度パラメータを増加させるようにしてもよい。
(3)また例えば、プレイエネルギーパラメータの代わりに、プレイエネルギーの消費量を示すパラメータ(ここでは「消費量パラメータ」と呼ぶ。)が記憶されるようにしてもよい。例えば、消費量パラメータは0〜100の数値をとる。消費量パラメータが高いほど、他の選手キャラクタ46と接触した選手キャラクタ46が体勢を崩す確率は、高くなり、移動方向を変更する動作の速さは遅くなる。例えば、消費量パラメータは試合開始時に初期値(0)に設定される。
この場合、消費量パラメータが「第2パラメータ」に相当する。例えば、第2パラメータ更新部67は、選手キャラクタ46によって特定動作が行われる場合に、その選手キャラクタ46の消費量パラメータを増加させる。この場合、第2パラメータ更新部67は、消費量パラメータの増加量を、その選手キャラクタ46の体力パラメータに基づいて決定する。また、第2パラメータ更新部67は、選手キャラクタ46によって特定動作が行われない場合に、その選手キャラクタ46の消費量パラメータを減少させる。
(4)また例えば、第2パラメータ更新部67は、ゲームキャラクタが移動目標位置に向けて移動する場合の第2パラメータの増加量又は減少量を、そのゲームキャラクタと移動目標位置との間の距離に関する距離データに基づいて制御するようにしてもよい。
この場合、距離データと、第2パラメータの増加量又は減少量と、の対応関係を示す情報が用いられるようにすればよい。すなわち、この情報と、ゲームキャラクタと移動目標位置との間の距離に関する距離データと、に基づいて、ゲームキャラクタが移動目標位置に向けて移動する場合の第2パラメータの増加量又は減少量が決定されるようにすればよい。
この態様では、例えば、第2パラメータ更新部67は、ボール47を保持している選手キャラクタ46の移動目標位置をユーザが設定した場合、その選手キャラクタ46が移動目標位置に向かってドリブル動作を行う場合のプレイエネルギーパラメータの減少量(C:図11のS205参照)を、その選手キャラクタ46の体力パラメータと、その選手キャラクタ46と移動目標位置との間の距離に関する距離データと、に基づいて制御する。
「距離データ」は、例えば、ゲーム空間40(XwYwZw座標系)における、選手キャラクタ46と移動目標位置との間の距離を示すデータである。または、「距離データ」は、ゲーム画面(スクリーン座標系)における、選手キャラクタ46と移動目標位置との間の距離を示すデータであってもよい。移動目標位置を設定する場合に表示される線画像53の長さが「距離データ」として用いられるようにしてもよい。
なお、この場合、距離データと体力パラメータとの組合せと、プレイエネルギーパラメータの減少量(C)と、の対応関係を示す情報が用いられる。この情報と、選手キャラクタ46と移動目標位置との間の距離に関する距離データと、選手キャラクタ46の体力パラメータと、に基づいて、プレイエネルギーパラメータの減少量(C)が決定される。例えば、上記情報は、選手キャラクタ46と移動目標位置との間の距離が比較的長い場合には、該距離が比較的短い場合に比べて、減少量(C)が大きくなるように設定される。また、上記情報は、選手キャラクタ46の体力パラメータが比較的低い場合には、体力パラメータが比較的高い場合に比べて、減少量(C)が大きくなるように設定される。
(5)また例えば、第2パラメータ更新部67は、移動方向を変更する動作をゲームキャラクタが行う場合の第2パラメータの増加量又は減少量を、移動方向の変化の程度に関する変化データに基づいて制御するようにしてもよい。「移動方向の変化の程度」は、例えば、変更前の移動方向と変更後の移動方向との間の角度によって表される。
この場合、変化データと、第2パラメータの増加量又は減少量と、の対応関係を示す情報が用いられるようにすればよい。すなわち、この情報と、ゲームキャラクタの移動方向の変化の程度に関する変化データと、に基づいて、移動方向を変更する動作をゲームキャラクタが行う場合の第2パラメータの増加量又は減少量が決定されるようにすればよい。
この態様では、例えば、第2パラメータ更新部67は、ボール47を保持している選手キャラクタ46の移動方向をユーザが変更する場合、移動方向を変更する動作をその選手キャラクタ46が行う場合のプレイエネルギーパラメータの減少量(D:図11のS209参照)を、その選手キャラクタ46の体力パラメータと、移動方向の変化の程度に関する変化データと、に基づいて制御するようにしてもよい。
「変化データ」は、例えば、ゲーム空間40(又はゲーム画面)における、変更前の移動方向と変更後の移動方向との間の角度に関するデータである。本実施形態の場合、変更後の移動方向として、移動目標位置が設定される場合に表示される線画像53の方向が用いられるようにしてもよい。
なお、この場合、変化データと体力パラメータとの組合せと、プレイエネルギーパラメータの減少量(D)と、の対応関係を示す情報が用いられる。この情報と、選手キャラクタ46の移動方向の変化の程度に関する変化データと、選手キャラクタ46の体力パラメータと、に基づいて、プレイエネルギーパラメータの減少量(D)が決定される。例えば、上記情報は、移動方向の変化の程度が比較的大きい場合には、該変化の程度が比較的小さい場合に比べて、減少量(D)が大きくなるように設定される。また、上記情報は、選手キャラクタ46の体力パラメータが比較的低い場合には、体力パラメータが比較的高い場合に比べて、減少量(D)が大きくなるように設定される。
(6)また例えば、表示制御部69は、ゲームキャラクタの移動方向を案内する画像の表示態様を、第2パラメータと、そのゲームキャラクタが移動目標位置に向けて移動する場合の第2パラメータの増加量又は減少量と、に基づいて制御するようにしてもよい。
例えば、表示制御部69は、選手キャラクタ46の位置から移動目標位置までの方向(経路)を案内する線画像53の表示態様を、プレイエネルギーパラメータと、選手キャラクタ46が移動目標位置に向けて移動する場合のプレイエネルギーパラメータの減少量(C)と、に基づいて制御するようにしてもよい。線画像53の「表示態様」とは例えば線画像53の太さである。
図17はこの場合の線画像53の一例を示す。図17に示す例では線画像53の各部分で太さが異なっている。より具体的には、線画像53の太さが、選手キャラクタ46から離れるのに伴って徐々に細くなっている。例えば、線画像53の始点53a側の太さは、選手キャラクタ46のプレイエネルギーパラメータの現在値に対応する太さに設定される。また、線画像53の各部分の太さは、選手キャラクタ46がその部分まで移動したと仮定した場合における選手キャラクタ46のプレイエネルギーパラメータの予測値に対応する太さに設定される。プレイエネルギーパラメータの予測値は、プレイエネルギーパラメータの現在値と、選手キャラクタ46が移動目標位置に向けて移動する場合のプレイエネルギーパラメータの減少量(C)と、に基づいて特定される。
図17において、線画像53の最も細くなっている部分はプレイエネルギーパラメータが最小値(0)になることを示している。図17に示す線画像53は、選手キャラクタ46が点53bまで移動すると、プレイエネルギーパラメータが最小値(0)になることを示している。
以上のようにすれば、線画像53の表示態様(太さ)を参照することによって、選手キャラクタ46が移動目標位置まで移動するまでの間におけるその選手キャラクタ46のプレイエネルギーパラメータの減少具合を一見して把握できるようになる。なお、線画像53の太さが徐々に変化する代わりに、線画像53の色、濃さ、透明度等が徐々に変化するようにしてもよい。
(7)また例えば、ゲーム空間は、互いに直交する二つの座標軸が設定された仮想2次元空間であってもよい。
(8)また例えば、2名以上のユーザによって行われるゲームにも本発明は適用することができる。また例えば、本発明を適用できるゲームはサッカーゲームに限られない。サッカーゲーム以外のスポーツゲームにも本発明は適用することができる。例えば、バスケットボールゲーム、アイスホッケーゲーム、アメリカンフットボールゲーム、野球ゲーム、ゴルフゲーム、アイススケートゲーム、フィギュアスケートゲーム等にも本発明は適用することができる。
アイススケートゲームに本発明を適用した実施形態では、例えば、ゲームキャラクタが基準速度よりも速い速度で滑っている場合にプレイエネルギーパラメータが減少される。そして、ゲームキャラクタがコーナーで転倒するか否かがプレイエネルギーパラメータに基づいて決定される。また、ゲームキャラクタが基準速度よりも遅い速度で滑っている場合、プレイエネルギーパラメータが時間経過に従って増加される。このようにすることによって、アイススケートゲームにおいて、ゲームキャラクタが基準速度よりも速い速度で滑り続けている場合にコーナーで転倒しやすくなるようにしてもよい。
また、フィギュアスケートゲームに本発明を適用した実施形態では、例えば、ゲームキャラクタが氷上を滑りながら難易度の高い技を行った場合にプレイエネルギーパラメータが減少される。そして、ゲームキャラクタが転倒するか否かがプレイエネルギーパラメータに基づいて決定される。また、ゲームキャラクタが難易度の高い技を行っていない場合、プレイエネルギーパラメータが時間経過に従って増加される。このようにすることによって、フィギュアスケートゲームにおいて、ゲームキャラクタが氷上を滑りながら難易度の高い技を続けて行った場合にゲームキャラクタが転倒しやすくなるようにしてもよい。
また、スポーツゲーム以外のゲームにも本発明は適用することができる。また、ゲームキャラクタグループ(例えばチーム)同士が対戦するゲームだけでなく、ゲームキャラクタ同士が対戦するゲームにも本発明は適用することができる。
(9)また例えば、ユーザが方向ボタン26を用いて、選手キャラクタ46の移動方向や移動目標位置等を指示するようにしてもよい。すなわち、選手キャラクタ46の移動方向や移動目標位置等は、方向ボタン26の押下状態に基づいて設定されるようにしてもよい。また例えば、操作受付部21の代わりに、タッチパネル又はマウス等の他のポインティングデバイスが用いられるようにしてもよい。