[1.実施形態]
以下、本発明の実施形態の一例について図面に基づき詳細に説明する。本発明の実施形態に係るゲーム装置は、例えば、家庭用ゲーム機(据置型ゲーム機)、携帯ゲーム機、携帯電話機、携帯情報端末(PDA)又はパーソナルコンピュータ等によって実現される。ここでは、実施形態に係るゲーム装置を家庭用ゲーム機によって実現する場合について説明する。
[1−1.ゲーム装置のハードウェア構成]
図1は、本発明の実施形態に係るゲーム装置のハードウェア構成を示す。図1に示すゲーム装置10は、家庭用ゲーム機11、表示部32、音声出力部34、及び光ディスク36(情報記憶媒体)を含む。
表示部32及び音声出力部34は、家庭用ゲーム機11に接続される。表示部32は、例えば、家庭用テレビ受像機又は液晶ディスプレイなどである。音声出力部34は、例えば、家庭用テレビ受像機に内蔵されたスピーカ又はヘッドホンなどである。
家庭用ゲーム機11は、公知のコンピュータゲームシステムである。家庭用ゲーム機11は、バス12、制御部14、主記憶16、画像処理部18、入出力処理部20、音声処理部22、光ディスク再生部24、ハードディスク26、通信インタフェース28、及びコントローラ30を含む。
制御部14は、一又は複数の制御部(例えば、CPU等)を含む。制御部14は、図示しないROMに格納されるオペレーティングシステムや、光ディスク36から読み出されるプログラムに基づいて、家庭用ゲーム機11の各部を制御する処理や情報処理を実行する。
主記憶16は、例えば、RAMを含む。光ディスク36から読み出されたプログラム及びデータは、主記憶16に書き込まれる。主記憶16は、制御部14の作業用メモリとしても用いられる。バス12は、アドレス及びデータを家庭用ゲーム機11の各部でやり取りするためのものである。
画像処理部18は、VRAMを含む。画像処理部18は、制御部14から供給される画像データに基づいてVRAM上にゲーム画面を描画する。VRAM上に描画されたゲーム画面は、ビデオ信号に変換されて所定のタイミングで表示部32に出力される。
入出力処理部20は、制御部14が、音声処理部22、光ディスク再生部24、ハードディスク26、通信インタフェース28、及びコントローラ30にアクセスするためのインタフェースである。
音声処理部22は、サウンドバッファを含む。音声処理部22は、光ディスク36からサウンドバッファに読み出された音声データを、音声出力部34から出力する。
通信インタフェース28は、インターネットなどの通信ネットワークに、家庭用ゲーム機11を有線又は無線接続するためのインタフェースである。
光ディスク再生部24は、光ディスク36に記録されたプログラムやデータを読み取る。本実施形態においては、プログラムやデータを家庭用ゲーム機11に供給するために、光ディスク36が用られる場合を説明するが、メモリカード等の他の情報記憶媒体が用いられて、プログラムやデータが家庭用ゲーム機11に対して供給されるようにしてもよい。他にも例えば、通信ネットワークを介して遠隔地からプログラムやデータが家庭用ゲーム機11に供給されるようにしてもよい。
ハードディスク26は、一般的なハードディスク装置(補助記憶装置)である。なお、本実施形態において光ディスク36に記憶されるものとして説明するプログラムやデータは、ハードディスク26に記憶されていてもよい。
コントローラ30は、ユーザがゲーム操作を行うための操作部である。家庭用ゲーム機11には、一又は複数のコントローラ30が、有線又は無線接続される。入出力処理部20は、一定周期毎(例えば1/60秒ごと)に、コントローラ30の各操作部材の状態をスキャンする。このスキャン結果を表す操作信号は、バス12を介して制御部14に供給される。制御部14は、この操作信号に基づいてユーザのゲーム操作を判定する。
[1−2.ゲーム装置において実行されるゲーム]
ゲーム装置10は、光ディスク36から読み出したゲームプログラムを実行することによって、例えば、ゲーム空間内を複数のゲームキャラクタが移動するゲームを実行する。以下では、サッカーの試合会場を模したゲーム空間を、複数のゲームキャラクタが移動してサッカーの試合を行うサッカーゲームが実行される場合について説明する。即ち、ゲーム空間内を移動する移動物体を用いて行われる競技のゲームが実行される場合について説明する。
このサッカーゲームにおいては、ユーザが操作するチーム(以降、「ユーザチーム」という。)と、対戦相手(コンピュータ又は他のユーザ)が操作するチーム(以降、「対戦相手チーム」という。)と、の間でサッカーの試合が行われる。サッカーゲームが開始されると、例えば、図2に示すゲーム空間40が、主記憶16に構築される。
図2は、ゲーム空間40の一例を示す図である。図2に示すゲーム空間40は、互いに直交する三つの座標軸(Xw軸、Yw軸、及びZw軸)が設定された仮想的な3次元空間になっている。図2に示すように、ゲーム空間40には、サッカーフィールドを表すオブジェクトであるフィールド42が配置される。
フィールド42上には、2本のゴールライン44a,44b、2本のタッチライン46a,46b、及びセンターライン47が表されている。2本のゴールライン44a,44b及び2本のタッチライン46a,46bによって囲まれたピッチ48内において、試合が行われる。
フィールド42上には、サッカーのゴールを表すオブジェクトであるゴール50と、ユーザチームに所属するサッカー選手を表すオブジェクト(ゲームキャラクタ)である選手キャラクタ52と、対戦相手チームに所属するサッカー選手を表すオブジェクトである選手キャラクタ54と、サッカーボールを表すオブジェクトであるボール56と、が配置される。各オブジェクトの位置は、例えば、ワールド座標系(Xw−Yw−Zw座標系)の3次元座標で特定される。
2つのゴール50のうちの一方は、ユーザチームに対応づけられ、他方は、対戦相手チームに対応づけられる。ユーザチームに対応付けられたゴール50、又は、対戦相手チームに対応づけられたゴール50内にボール56が移動すると、得点イベントが発生する。
なお、図2では省略されているが、フィールド42上には、ユーザチームに所属する11体の選手キャラクタ52と、対戦相手チームに所属する11体の選手キャラクタ54と、が配置される。
また、選手キャラクタ52(54)とボール56とが近づくと、所定条件の下、その選手キャラクタ52(54)とボール56とが関連づけられる。この場合、選手キャラクタ52(54)の移動動作は、ドリブル動作になる。以下では、選手キャラクタ52(54)にボール56が関連づけられた状態のことを「選手キャラクタ52(54)がボール56を保持している」というように記載する。
また、ゲーム空間40には、仮想カメラ58(視点)が設定される。ゲーム空間40を仮想カメラ58から見た様子を表すゲーム画面60(図3参照)が、表示部32に表示される。
図3は、表示部32に表示されるゲーム画面60の一例を示す図である。図3に示すゲーム画面60には、ユーザチームに所属する3体の選手キャラクタ52a,52b,52cと、対戦相手チームに所属する3体の選手キャラクタ54a,54b,54cと、ボール56と、が含まれる。図3に示す状態では、例えば、ボール56を保持している選手キャラクタ52aが、ユーザの操作に供されている。
このゲーム画面60は、ゲーム空間40に配置された各オブジェクトの頂点座標が、所定の座標変換演算を用いてワールド座標系からスクリーン座標系に座標変換されることによって生成される。
スクリーン座標系は、例えば、図3に示すように、ゲーム画面60の左上を原点Oとし、右方向をXs軸正方向とし、下方向をYs軸正方向とする2次元の座標系である。なお、仮想カメラ58は、例えば、ボール56が常にゲーム画面に表示されるように、ボール56の位置に基づいてゲーム空間40内を移動する。即ち例えば、ユーザが所定の操作を行って、ボール56を保持している選手キャラクタ52aがドリブルをすると、ボール56の移動方向に基づいて仮想カメラ58が移動する。
また例えば、ユーザは、ユーザチームに所属する選手キャラクタ52の何れかがボール56を保持している場合、この選手キャラクタ52にパスをする旨の指示を行うことができる。例えば、図3に示す状態において、ユーザは、所定の操作を行って選手キャラクタ52bを選択することにより、選手キャラクタ52bへのパスを選手キャラクタ52aに指示することができる。
また、ゲーム空間40に配置される各選手キャラクタ52(54)のうちでユーザの操作対象とならないものは、所定の行動アルゴリズムに従って自律的に行動する。本実施形態においては、この行動アルゴリズムに従って選手キャラクタ52(54)が行動する場合、例えば、選手キャラクタ52(54)の位置に基づいて決定される支配領域が参照される。支配領域は、例えば、ゲーム空間40のうちで選手キャラクタ52(54)が現在から所定時間以内に移動可能な範囲を示す。
選手キャラクタ52(54)が自律的に行動する場合、制御部14は、例えば、他の選手キャラクタ52(54)の支配領域を参照して、この選手キャラクタ52(54)の移動ルートを決定する。選手キャラクタ52(54)は、例えば、ゲーム空間40のうち他の選手キャラクタ52(54)の支配領域に含まれない方向に向かって移動するように制御される。即ち例えば、選手キャラクタ52(54)は、他の選手キャラクタ52(54)がいない場所(空きスペース)に向かって移動する。
図4は、選手キャラクタ52(54)の支配領域を示す図である。図4は、ゲーム空間40を上から(Yw軸方向から)見た図である。また、説明の簡略化のため、図4においては、図3のゲーム画面60に含まれる選手キャラクタ52(54)の支配領域のみが示されている。
図4に示す矢印(ただし、Xw軸とZw軸の座標軸を示す矢印は含まない。)は、選手キャラクタ52(54)の移動方向(又は、体が向いている方向)である。先述のように、支配領域は、例えば、選手キャラクタ52(54)が所定時間以内に移動できる範囲を示すので、図4に示すように、支配領域は、例えば、選手キャラクタ52(54)の位置から移動方向側に伸びる楕円によって囲まれる範囲となる。
また、本実施形態においては、選手キャラクタ52(54)の支配領域の広さが、選手キャラクタ52(54)の位置と、ボール56の位置と、の距離に基づいて決定される場合を説明する。支配領域の広さは、選手キャラクタ52が移動可能な範囲の大きさのことであり、例えば、図4に示す楕円の面積である。
例えば、図4に示すように、ボール56に比較的近い選手キャラクタ52a,54b,54cの支配領域の広さは、ボール56から比較的遠い選手キャラクタ52b,52c,54aの支配領域の広さよりも、小さく設定される。
即ち例えば、ボール56に比較的近い選手キャラクタ54b,54cがいる方向に対してボール56が選手キャラクタ52aによって蹴りだされた場合、ボール56が選手キャラクタ54b,54cの付近に到達するまでにかかる時間は、比較的短い。このため、ボール56が蹴りだされてから選手キャラクタ54b,54cの付近に到達するまでに、選手キャラクタ54b,54cが移動可能な距離は、比較的短くなる。そこで、本実施形態においては、選手キャラクタ54b,54cの支配領域は、比較的小さくなっている。
一方、ボール56から比較的遠い選手キャラクタ52b,52c,54aがいる方向に対してボール56が選手キャラクタ52aによって蹴りだされた場合、ボール56が選手キャラクタ52b,52c,54aの付近に到達するまでにかかる時間は、比較的長い。このため、ボール56が蹴りだされてから選手キャラクタ52b,52c,54aの付近に到達するまでに、選手キャラクタ52b,52c,54aが移動可能な距離は、比較的長くなる。そこで、選手キャラクタ52b,52c,54aの支配領域は、比較的大きくなっている。
上記のような場合、例えば、ボール56に比較的近い選手キャラクタ54b,54cについては、これらが1秒間に移動できる領域が、支配領域となる。一方、例えば、ボール56から比較的遠い選手キャラクタ52b,52c,54aについては、これらが3秒間に移動できる領域が、支配領域となる。
また、本実施形態においては、ゲーム装置10は、上記のような選手キャラクタ52(54)の支配領域が、ゲーム空間40に設定された複数の部分領域E(図5参照)に含まれるか否か、に基づいて選手キャラクタ52(54)が自律的に行動するように制御する。
部分領域Eとは、例えば、ゲーム空間40の領域が複数に区切られた個々の領域のことである。本実施形態においては、例えば、ピッチ48が、長方形状の複数の部分領域Eに区切られる(例えば、縦横に15*15に分割される)場合を説明する。
図5は、ピッチ48と部分領域Eとの関係を示す図である。例えば、図5に示すように、ピッチ48(図5の点線)が、Xw方向とZw方向にそれぞれ15等分される。これらの225個の部分領域Eを、図5のように、それぞれ部分領域E1〜E225とする。以降では、これらの部分領域E1〜E225を、まとめて単に部分領域Eという。
また、詳しくは後述するが、本実施形態においては、例えば、選手キャラクタ52(54)の支配領域(図4)と、部分領域E(図5)との重なり領域の広さ(交差面積)に基づいて、選手キャラクタ52(54)の動作が制御される。重なり領域とは、例えば、二つの領域が重畳している部分のことである。
この重なり領域の広さに基づいて、部分領域Eの評価情報が算出される。評価情報は、例えば、選手キャラクタ52(54)が部分領域Eに対して移動する可能性を示す指標(部分領域Eの評価値)として用いられる。即ち例えば、重なり領域の広さが大きい部分領域Eは、選手キャラクタ52(54)が移動する可能性が高い場所であることを示している。一方、例えば、この重なり領域の広さが小さい部分領域Eは、選手キャラクタ52(54)が移動する可能性が低いことを示している。
ゲーム装置10は、この指標に基づいて決まる領域に選手キャラクタ52(54)を走りこませたり、パスを出したりするように制御する。例えば、ゲーム装置10は、選手キャラクタ52(54)の支配領域との重なり領域の広さが比較的小さい部分領域Eに対して選手キャラクタ52(54)を走りこませたり、パスを出したりするように、選手キャラクタ52(54)の動作を制御する。以降では、選手キャラクタ52(54)の支配領域との重なり領域の広さが比較的大きい部分領域Eについて、「選手キャラクタ52(54)が支配する部分領域E」というように記載する。
このように、選手キャラクタ52(54)の支配領域と、ゲーム空間40の部分領域Eと、の重なり具合に基づいて選手キャラクタ52(54)の動作が制御される。即ち、ゲーム装置10は、選手キャラクタ52(54)が支配している部分領域Eと支配していない部分領域Eとを区別することができるので、サッカー選手が空きスペースを見つけて移動するような動作制御を実現することができる。以下、この処理を実現するための技術について、詳細に説明する。
[1−3.ゲーム装置において実現される機能]
図6は、ゲーム装置10で実現される機能のうち、本発明に関連する機能を示す機能ブロック図である。図6に示すように、ゲーム装置10は、ゲームデータ記憶部70、支配領域判断部72、評価情報決定部74、及び動作制御部76を含む。
[1−3−1.ゲームデータ記憶部]
ゲームデータ記憶部70は、例えば、主記憶16及び光ディスク36等を主として実現される。ゲームデータ記憶部70は、例えば、サッカーゲームを実現するために必要なデータを記憶する。例えば、サッカーゲームの現在の状況を示すゲーム状況データが、ゲームデータ記憶部70に記憶される。
例えば、下記に示すようなデータが、ゲーム状況データに含まれる。
(1)各選手キャラクタ52(54)の現在の状態(位置、姿勢、移動方向及び移動速度等)を示すデータ
(2)ボール56の現在の状態(位置、移動方向及び移動速度等)を示すデータ
(3)ボール56を保持している選手キャラクタ52(54)を示すデータ
(4)仮想カメラ58の現在の状態(位置及び視線方向等)を示すデータ
(5)両チームの得点を示すデータ
(6)経過時間を示すデータ
また、本実施形態では、ゲームデータ記憶部70は、図5に示す部分領域Eの位置を識別する情報を記憶する。例えば、ゲームデータ記憶部70は、部分領域E1〜部分領域E225のそれぞれの頂点に対応する3次元座標を記憶する。
[1−3−2.支配領域情報算出部]
支配領域判断部72は、例えば、制御部14を主として実現される。支配領域判断部72は、複数のゲームキャラクタ(選手キャラクタ52(54))の各々に関し、当該ゲームキャラクタに対応する支配領域を当該ゲームキャラクタの位置に基づいて判断する。
例えば、支配領域判断部72は、支配領域を、複数の選手キャラクタ52(54)の位置と、複数の選手キャラクタ52(54)の移動に関するゲームパラメータと、に基づいて判断する。複数の選手キャラクタ52(54)の移動に関するゲームパラメータとは、例えば、ゲーム状況データに格納された選手キャラクタ52(54)の姿勢、移動方向、及び移動速度の少なくとも一つである。
本実施形態においては、支配領域判断部72が、複数のゲームキャラクタ(選手キャラクタ52(54))の位置及び複数のゲームキャラクタ毎に設定される移動時間に基づいて支配領域を判断する場合を説明する。移動時間は、例えば、支配領域が、現在からいつまでの期間の選手キャラクタ52(54)の移動可能範囲を示すものであるかを定義する値である。即ち例えば、移動時間は、支配領域の広さを定義するための値として使用される。
図7は、支配領域の算出方法を示す図である。図7に示すように、例えば、支配領域は、選手キャラクタ52(54)の現在位置P1から選手キャラクタ52(54)の移動方向Dに対して所定距離L離れた点P0を中心とする楕円内の領域となる。この所定距離Lは、例えば、移動速度Vと所定の定数とが乗算されることによって決定される。
支配領域に対応する楕円の半径R1,R2は、例えば、選手キャラクタ52(54)毎に決定される移動時間tに基づいて決定される。例えば、半径R1は、移動速度Vに移動時間tを乗じた距離となる。また例えば、半径R2は、半径R1の半分の値となる。
上記のように、選手キャラクタ52(54)の位置及び移動時間に基づいて支配領域が判断されることによって、ゲーム装置10は、選手キャラクタ52(54)が支配する部分領域Eを詳細に把握することができるので、ユーザは、ゲームにおいて、実際のサッカー選手の動きのようなリアリティを体感することができる。
上記のようにして、支配領域判断部72は、選手キャラクタ52(54)毎に支配領域を判断する。この支配領域は、例えば、支配領域情報として主記憶16(例えば、ゲームデータ記憶部70)に記憶される。
図8は、支配領域情報の一例を示す図である。図8に示すように、例えば、支配領域に含まれる3次元座標が、選手キャラクタ52(54)を識別する情報と対応付けられて支配領域情報として主記憶16(例えば、ゲームデータ記憶部70)に記憶される。
また、本実施形態においては、支配領域判断部72は、ゲームキャラクタ(選手キャラクタ52(54))の各々に対応する支配領域の広さを、当該ゲームキャラクタの位置と、移動物体(ボール56)に対応する位置と、の距離に関する距離情報に基づいて変更する変更手段を含む、場合を説明する。
移動物体に対応する位置とは、例えば、ボール56の位置、又は、ボール56を保持する選手キャラクタ52(54)の位置である。距離情報は、ゲーム状況データに格納されたボール56の位置を示す3次元座標と、選手キャラクタ52(54)の位置を示す3次元座標と、が参照されることによって算出される。
例えば、移動時間tが、ボール56の位置と選手キャラクタ52(54)の位置との距離に基づいて決定(変更)される。即ち、支配領域判断部72の変更手段は、距離情報に基づいて移動時間tを変更することによって複数のゲームキャラクタ(選手キャラクタ52(54))の支配領域の広さを変更する。距離情報と、移動時間tと、は予め対応づけられて光ディスク36等に記憶されていてよい。
なお、本実施形態においては、距離情報に基づいて支配領域の広さが変更されればよく、この変更方法は、上記の例に限られない。他にも例えば、図7に示す半径R1,R2が、ボール56の位置と選手キャラクタ52(54)の位置との距離に基づいて決定されるようにしてもよいし、支配領域の面積が、ボール56の位置と選手キャラクタ52(54)の位置との距離に基づいて決定されるようにしてもよい。
[1−3−3.評価情報算出部]
評価情報決定部74は、制御部14を主として実現される。評価情報決定部74は、ゲーム空間40内に設定される部分領域Eの評価情報を、複数のゲームキャラクタ(選手キャラクタ52(54))の各々に対応する支配領域に部分領域Eが含まれるか否かに基づいて決定する。例えば、評価情報決定部74は、複数の部分領域Eと支配領域情報が示す支配領域との位置関係に基づいて、支配領域に部分領域Eが含まれるか否かを判別する。
本実施形態においては、評価情報決定部74は、部分領域Eの評価情報を、複数のゲームキャラクタ(選手キャラクタ52(54))の各々に対応する支配領域と部分領域Eとの重なり領域の広さに基づいて決定する場合を説明する。
図9は、支配領域と部分領域Eとの重なり領域の広さに基づいて算出される評価情報を示す図である。図9に示すように、例えば、選手キャラクタ52(54)の支配領域と部分領域Eとの重なり領域の広さに基づいて、この部分領域Eの評価情報が決定される。評価情報は、例えば、部分領域Eの面積のうちで支配領域内に含まれる面積(即ち、重なり領域の広さ)の割合に基づいて決定される。
例えば、ユーザーチームに所属する選手キャラクタ52の支配領域と部分領域Eとの重なり領域の広さが、部分領域Eの面積の45%である場合、例えば、この部分領域Eには、45点の評価情報が設定される。また例えば、選手キャラクタ52の支配領域と部分領域Eとの重なり領域の広さが、部分領域Eの面積の100%である場合、例えば、この部分領域Eには、100点の評価情報が設定される。
一方、対戦相手チームに所属する選手キャラクタ54については、上記と同様にして定まる点数の符号が反転された点数が設定される。即ち例えば、選手キャラクタ54の支配領域と部分領域Eとの重なり領域の広さが、部分領域Eの面積の60%である場合、この部分領域Eには、−60点の評価情報が設定される。また例えば、選手キャラクタ54の支配領域と部分領域Eとの重なり領域の広さが、部分領域Eの面積の100%である場合、この部分領域Eには、−80点の評価情報が設定される。
また、選手キャラクタ52(54)の支配領域と交差していない部分領域Eは、例えば、0点の評価情報が設定される。
また、複数の選手キャラクタ52(54)の支配領域が重複している部分領域Eは、例えば、それぞれの重なり領域の広さに基づいて決定される点数が合計された点数が評価情報として設定される。例えば、図9に示すように、選手キャラクタ52の支配領域と部分領域Eとの重なり領域の広さが部分領域Eの面積の25%であり、かつ、選手キャラクタ54の支配領域と部分領域Eとの重なり領域の広さが部分領域Eの面積の15%である場合、この部分領域Eの評価情報は、10点(25点+(−15点))となる。
なお、複数の選手キャラクタ52(54)の支配領域が重複している部分領域Eの評価情報は、例えば、上記のような合計点数ではなく、複数の選手キャラクタ52(54)の複数の点数がそのまま設定されるようにしてもよい。このようにすることによって、ゲーム装置10は、例えば、同じ20点の部分領域Eでも、一人の選手キャラクタ52の支配領域と20%交差しているのか、複数の選手キャラクタ52(54)の支配領域と交差しているのか、を把握することができる。
また、重なり領域の広さに基づいて部分領域Eの評価情報が決定される方法は、上記の例に限られない。例えば、重なり領域の広さと点数とが予め対応づけられて光ディスク36等に記憶されていてもよいし、所定の数式に重なり領域の広さを代入することによって、部分領域Eの評価情報が決定されるようにしてもよい。
上記のようにして、評価情報決定部74は、部分領域E毎に評価情報を決定する。決定された評価情報は、例えば、主記憶16に記憶される。
図10は、評価情報の一例を示す図である。図10に示すように、例えば、算出された評価情報は、部分領域Eの位置を識別する情報と対応付けられて、主記憶16(例えば、ゲームデータ記憶部70)に記憶される。
[1−3−4.動作制御部]
動作制御部76は、例えば、制御部14を主として実現される。動作制御部76は、複数のゲームキャラクタ(選手キャラクタ52(54))のうちの少なくとも一つの動作を部分領域Eの評価情報に基づいて制御する。動作制御部76は、例えば、評価情報を所定の動作アルゴリズムに代入して決定される動作を、選手キャラクタ52(54)のうちの少なくとも一つに行わせる。
動作制御部76は、例えば、ゲーム空間40内の複数の部分領域Eのうちで複数のゲームキャラクタ(選手キャラクタ52(54))が移動する可能性が他の部分領域Eよりも低い部分領域Eを評価情報に基づいて特定し、当該特定された部分領域Eに基づいてゲームキャラクタ(選手キャラクタ52(54))の動作を制御する。
動作制御部76は、評価情報を参照することによって、選手キャラクタ52(54)が移動する可能性が他の部分領域Eよりも低い部分領域Eを判定することができる。即ち例えば、動作制御部76が、この部分領域Eに対して選手キャラクタ52(54)を移動させるようにすれば、空きスペースを見つけて対戦相手チームのディフェンダーの背後に走りこむサッカー選手のようなリアリティのある動作を実現することができる。
また、動作制御部76は、評価情報を用いずに公知の行動アルゴリズムに基づいて選手キャラクタ52(54)を動作させることも可能である。例えば、選手キャラクタ52(54)がパスをするか否か、ボール56を保持している選手キャラクタ52(54)に接近するか否か、等のように評価情報を必要としない動作については、公知の行動アルゴリズムで選手キャラクタ52(54)を動作させることができる。
[1−4.ゲーム装置において実行される処理]
次に、ゲーム装置10で実行される処理について説明する。図11は、ゲーム装置10が所定時間(例えば1/60秒)ごとに実行する処理を示すフロー図である。制御部14が、光ディスク36に記憶されたプログラムに従って、図11に示す処理を実行する。
まず、図11に示すように、制御部14は、ゲーム状況データに格納された選手キャラクタ52(54)の位置とボール56の位置との距離に関する距離情報を算出する(S101)。S101において算出された距離情報は、主記憶16に記憶される。
制御部14は、S101において算出された距離情報に基づいて支配領域の広さを変更する(S102)。S102においては、例えば、選手キャラクタ52(54)と、支配領域を算出する際に使用される移動時間と、が光ディスク36等に予め対応づけられて記憶されており、この記憶内容が参照されることによって支配領域の広さが変更される。
例えば、ある選手キャラクタ52(54)の距離情報が示す距離が基準値以上であった場合、この選手キャラクタ52(54)の移動時間tが3秒間となる。一方、ある選手キャラクタ52(54)の距離情報が示す距離が基準値未満であった場合、この選手キャラクタ52(54)の移動時間tが1秒間となる。
なお、S102における支配領域の広さの変更方法は、上記の例に限られない。他にも例えば、距離情報が示す距離が、所定の数式に代入されることによって、支配領域の広さが決定(変更)されるようにしてもよい。
次いで、制御部14(支配領域判断部72)は、ゲーム状況データに格納された選手キャラクタ52(54)の位置に基づいて支配領域情報を算出する(S103)。例えば、ゲーム状況データに含まれる選手キャラクタ52(54)の位置と、S102において設定された移動時間とに基づいて、図7のように支配領域が算出される。算出された支配領域は、例えば、選手キャラクタ52(54)を識別する情報と対応付けられて、支配領域情報として主記憶16に記憶される。
制御部14(評価情報決定部74)は、支配領域情報が示す支配領域が複数の部分領域Eに含まれるか否かに基づいて評価情報を算出する(S104)。例えば、S101において算出された支配領域情報に含まれる支配領域と、部分領域Eと、の重なり領域の広さに基づいて部分領域E毎に評価情報が算出される。算出された評価情報は、例えば、部分領域Eの位置を識別する情報と対応付けられて、主記憶16に記憶される。
次いで、制御部14(動作制御部76)は、評価情報に基づいて空きスペースを特定する(S105)。例えば、主記憶16に記憶された評価情報が基準範囲以内(例えば、−10点〜10点)の部分領域Eの位置が特定される。
制御部14(動作制御部76)は、特定された空きスペースに基づいて選手キャラクタ52(54)の動作を制御する(S106)。S104においては、例えば、S103において特定された空きスペースに基づいて、選手キャラクタ52(54)がすべき動作や、移動すべき軌跡を示す移動曲線等が決定され、主記憶16等に記憶される。具体的には、以下のような動作制御が実行される。
例えば、ゲームが図3に示すような状態において、所定のタイミング(例えば、選手キャラクタ54が所定距離以内に侵入した場合)が訪れて選手キャラクタ52aがパスをする場合、このパスを出す方向が、評価情報に基づいて決定される。
図12は、評価情報が設定された部分領域Eの一例を示す図である。例えば、選手キャラクタ52aがパスをする状況になった場合、この部分領域Eの評価情報が参照され、複数の候補地点からパスをする目標地点が絞り込まれる。候補地点は、予め定められた方法で決定されればよく、例えば、候補地点は、ユーザチームに属する選手キャラクタ52のうち、ボール56を保持している選手キャラクタ52の移動方向に対応する位置にいる選手キャラクタ52の位置である。例えば、図3に示すような状態の場合、選手キャラクタ52bの位置と、選手キャラクタ52cの位置と、が候補地点として選出される。
例えば、上記のように選出された複数の候補地点を含む部分領域Eと、ボール56の位置を含む部分領域Eと、がそれぞれ直線で結ばれる。この直線は、例えば、ブレゼンハムの線分描画アルゴリズムやDDA(デジタル微分解析器)アルゴリズム等、公知の直線描画アルゴリズムに基づいて実現される。
この直線上に、対戦相手チームに属する選手キャラクタ54が支配する部分領域Eがあった場合、選手キャラクタ52aは、この目標地点にパスをしないように制御される。例えば、図12の場合、選手キャラクタ52aと選手キャラクタ52cとを結ぶ直線上には、選手キャラクタ54cが支配する部分領域Eがあり、パスをカットされる可能性があるので、選手キャラクタ52aは、選手キャラクタ52cに対してパスをしない。
一方、この直線上に対戦相手チームに属する選手キャラクタ54が支配する部分領域Eがない場合、パスをカットされる可能性が低いので、選手キャラクタ52aは、この目標地点にパスをする。例えば、図12の場合、選手キャラクタ52aと選手キャラクタ52bとを結ぶ直線上には、選手キャラクタ54が支配する部分領域Eがなく、パスをカットされる可能性が低いので、選手キャラクタ52aは、選手キャラクタ52bに対してパスをする。
他にも例えば、評価情報が設定された部分領域Eに基づいて、選手キャラクタ52aのドリブル動作が制御されるようにしてもよい。例えば、選手キャラクタ52aのドリブルの目標地点が、部分領域Eの評価情報に基づいて決定される。例えば、選手キャラクタ52aの位置、移動方向、及び移動速度に基づいて予め定められた方法に基づいて、ドリブルの目標地点の候補が決定される。
例えば、パスの制御と同様に、ある目標地点とボール56とを結ぶ直線上に、対戦相手チームに所属する選手キャラクタ54が支配する部分領域Eがある場合、選手キャラクタ54にボール56を奪われる可能性が高いので、この方向にはドリブルしないように動作が制御される。
上記のように、動作制御部76は、部分領域Eの評価情報に基づいて、複数のゲームキャラクタ(選手キャラクタ52(54))のうちの少なくとも一つに部分領域Eに関連する動作を行わせる。部分領域Eに関連する動作とは、例えば、ゲーム空間40に配置されたオブジェクトの移動方向が、部分領域Eの評価情報に基づいて決定されるような動作である。
なお、S106においては、評価情報と所定の動作アルゴリズムとに基づいて選手キャラクタ52(54)の動作が制御されるようにすればよく、選手キャラクタ52(54)の動作の制御の方法は、これに限られない。例えば、ボール56を保持する選手キャラクタ52(54)以外の他の選手キャラクタ52(54)についても、上記と同様にして動作が制御される。即ち例えば、他の選手キャラクタ52(54)が支配していない部分領域Eに対して選手キャラクタ52(54)を移動させることによって、空きスペースにパスを貰いに行くサッカー選手の動きを再現することができる。
なお、S106における選手キャラクタ52(54)の動作制御に伴ってゲームデータ記憶部70のゲーム状況データが更新される。
以上説明したゲーム装置10によれば、ゲーム空間40に設定された部分領域E毎に、選手キャラクタ52(54)が移動する可能性を示す評価情報を算出し、選手キャラクタ52(54)の動作を制御することができるので、ゲーム装置10は、ゲーム空間40の空きスペースを把握して動作制御をすることができ、選手キャラクタ52(54)の動作制御の高度化を図ることができる。
また、ボール56と選手キャラクタ52との距離に基づいて支配領域の広さを変更するので、選手キャラクタ52(54)の動作制御に際して余分な情報を算出することがなくなり、更に処理負荷を軽減することができる。
具体的には、例えば、図3に示す状態から、選手キャラクタ52aが選手キャラクタ52bに向かってボール56をパスする場合、対戦相手チームに所属する選手キャラクタ54a,54b,54cの動作は、所定のアルゴリズムに基づいて、このパスをカットするような動作に決定されることが考えられる。
しかし、実際に選手キャラクタ52aから選手キャラクタ52bに向かってパスがされた場合、ボール56が選手キャラクタ54b,54cを通り過ぎるまでの時間は、ボール56が選手キャラクタ54aを通り過ぎるまでの時間よりも短い。そこで、ボール56の近くにいる選手キャラクタ54b,54cの支配領域は、ボール56の遠くにいる選手キャラクタ54aよりも短い移動時間に基づいて算出される。したがって、ゲーム装置10は、これらの選手キャラクタ54a,54b,54cについて、同じ移動時間で支配領域を算出する場合に比べて処理負荷を軽減することができる。
即ち例えば、選手キャラクタ52(54)がパスをする場合、ボール56の近くにいる選手キャラクタ52(54)をボール56が通り過ぎるまでの時間と、ボール56から離れた選手キャラクタ52(54)をボール56が通り過ぎるまでの時間と、は異なるので、本実施形態のように、支配領域の広さをそれぞれに対して異ならしめた場合、ゲーム装置10は、動作制御のために必要な情報のみを取得して動作制御を行うことができる。
なお、本実施形態においては、支配領域を楕円形状として説明したが、支配領域は、予め定められた他の形状であってもよい。例えば、支配領域は、選手キャラクタ52(54)を中心とした円形や四角形であってもよい。
また、本実施形態においては、選手キャラクタ52(54)とボール56との距離に基づいて支配領域の広さが変更される場合を説明したが、支配領域は、複数の選手キャラクタ52(54)の現在位置に基づいて算出されるものであればよく、本実施形態のように支配領域の広さが変更されるようにしなくてもよい。
また、部分領域Eの評価情報が重なり領域の広さに基づいて算出される場合を説明したが、評価情報は、支配領域情報が示す支配領域と部分領域Eとの位置関係に基づいて算出されればよく、評価情報の算出方法は、上記の例に限られない。例えば、部分領域Eの評価情報は、支配領域が部分領域Eに重なっているか否かを示すフラグであってもよい。
[2.変形例]
なお、本発明は以上に説明した実施の形態に限定されるものではない。
[2−1.変形例1]
例えば、上記実施形態においては、ゲーム空間40のすべての部分領域Eにおいて同じ方法で評価情報が算出されるようにしたが、部分領域Eによって異なる重みづけがなされて評価情報が算出されるようにしてもよい。即ち例えば、支配領域と部分領域Eとの重なり領域の広さが同じであっても、ピッチ48のうちゴール50に比較的近い部分領域Eについては、ゴール50から比較的遠い部分領域Eよりも評価情報が示す点数が大きくなるようにしてもよい。
図13は、重みづけされた部分領域Eを示す図である。図13に示すように、例えば、ゴール50に比較的近い部分領域E5〜E11,E20〜E26,E200〜E206,E215〜E221(以降、これらをまとめて部分領域Eaという。)と、ゴール50から比較的遠い上記以外の部分領域E(以降、これらを部分領域Ebという。)と、で評価情報が算出される際に重みづけを異ならしめて、それぞれの部分領域Eの評価情報が算出されるようにしてもよい。
例えば、選手キャラクタ52の支配領域と部分領域Eaとの重なり領域の広さが60%であった場合、この部分領域Eaの評価情報が、部分領域Ebの倍の重みづけがなされて120点(60点*2)として設定される。一方、選手キャラクタ52の支配領域と部分領域Ebとの重なり領域の広さが上記と同じ60%であった場合、この部分領域Ebの評価情報が、60点として設定される。
サッカーゲームは、得点で勝敗が決定するため、ゴール50の近辺での選手キャラクタ52(54)の動作が重要になると考えられる。そこで、上記のように重みづけをして部分領域Eの評価情報を決定することによって、ゲーム進行上において重要な領域での動作のリアリティを高めることができる。
即ち、変形例1の評価情報決定部74は、ゲーム空間40における部分領域Eの位置に関する条件と、ゲームキャラクタ(選手キャラクタ52(54))の支配領域と、に基づいて部分領域Eの評価情報を決定する。部分領域Eの位置に関する条件とは、例えば、ゲーム空間40における対象物(例えば、ゴール50)と部分領域Eとの位置関係(例えば、対象物との距離)の条件である。
例えば、評価情報決定部74は、ゲーム空間40における部分領域Eの位置に関する条件に基づいて評価情報の算出の際に用いられる重みづけ条件を変更し、当該変更された重みづけ条件と支配領域情報と、に基づいて部分領域Eの評価情報を算出する。
なお、変形例1においては、ゴール50との距離が所定範囲にある部分領域Eaと、ゴール50との距離が所定範囲にない部分領域Ebと、で重みづけを異ならしめる場合を説明したが、部分領域Eの位置に関する条件に基づいて評価情報が算出される方法は、上記の例に限られない。
他にも例えば、評価情報決定部74は、ゲーム空間40における部分領域Eと移動物体(ボール56)との位置関係に関する条件と、選手キャラクタ52(54)の支配領域と、に基づいて複数の部分領域Eの評価情報を決定するようにしてもよい。この場合、例えば、ボール56に比較的近い部分領域Eについては、ボール56から比較的遠い部分領域Eよりも重みづけが大きくなされて評価情報が算出されるので、ゲーム装置10は、選手キャラクタ52(54)が、ボール56から近い場所にいるか否かに応じて異なる動作制御を行うことができる。
[2−2.変形例2]
また例えば、上記実施形態及び変形例1においては、図7に示すように、選手キャラクタ52(54)の現時点の位置を基準とし、この位置から選手キャラクタ52(54)が移動できる範囲を支配領域とする場合を説明した。変形例2においては、所定のアルゴリズムに基づいて決定される選手キャラクタ52(54)の将来の位置(選手キャラクタ52(54)が移動すべき位置)を基準とし、この位置から選手キャラクタ52(54)が移動できる範囲が支配領域として算出される。
図14は、変形例2における支配領域を示す図である。変形例2においても、図11に示す処理と同様の処理が実行されるが、図14の矢印は、例えば、過去に実行された図11の処理のS106において算出される移動曲線である。変形例2においては、図14に示すように、移動曲線上の任意の一点を基準として支配領域が算出される。
例えば、図14に示す場合、選手キャラクタ52a及び選手キャラクタ54aは、現在位置から移動曲線上に所定間隔離れた位置(例えば、所定距離間隔離れた位置、又は、現在から1秒後の位置等)を基準位置として、この基準位置から移動すべき範囲が支配領域とされる。
移動曲線が算出されている選手キャラクタ52(54)は、この移動曲線上を進む可能性が高いので、このまま移動曲線を進むものとして支配領域の算出範囲を狭めてもゲームのリアリティには支障がないと考えられる。即ち、変形例2のゲーム装置10によれば、余計な計算処理の実行が省かれるので、ゲームのリアリティを高めつつ、処理負荷を更に軽減することができる。
変形例2の支配領域判断部72は、ゲームキャラクタ(選手キャラクタ52(54))に対応する支配領域を、当該ゲームキャラクタの位置と当該ゲームキャラクタの移動方向とに基づいて予測される当該ゲームキャラクタの将来位置に基づいて判断する。将来位置は、例えば、過去に動作制御部76がS106において算出し、主記憶16に記憶された予測軌道情報(例えば、移動曲線の情報)が参照されることによって取得される。
なお、選手キャラクタ52(54)の将来位置の取得方法は、上記の例に限られない。選手キャラクタ52(54)の将来位置は、予め定められた方法に基づいて取得されればよく、他にも例えば、選手キャラクタ52(54)の位置と移動方向とに基づいて算出されるようにしてもよい。
上記のように判断される支配領域に基づいて評価情報が算出される方法は、実施形態と同様である。また、変形例1と変形例2を組み合わせて、部分領域Eの位置が満たす条件によって重みづけがなされて評価情報が算出されるようにしてもよい。
[2−3.その他変形例]
(1)また例えば、上記では部分領域Eを図5に示すような長方形状を例に挙げて説明したが、部分領域Eは、ゲーム空間40に設定されるものであればよく、部分領域Eの形状及び位置は、上記の例に限られない。例えば、部分領域Eは、円形であってもよいし、部分領域E毎に異なる形状であってもよい。
(2)また例えば、複数の部分領域Eが図5に示すように互いに隣接していなくてもよい。即ち例えば、複数の部分領域Eが、互いに所定距離離れていてもよい。即ち、ゲーム空間40のうちでゲーム進行上あまり重要でない場所については、部分領域Eが間引かれて配置されるようにしてもよい。
また例えば、変形例1においては、ゴール50に比較的近い位置においては、重みづけを異ならしめて支配領域情報が算出される場合を説明したが、同様に、ゴール50に比較的近い位置は、他の位置よりも部分領域Eの数(密度)を大きくするようにしてもよい。
図15は、部分領域Eの密度を異ならしめた一例を示す図である。図15は、ゴール50に近い部分領域Ecの密度を最も大きくし、タッチライン46a,46bに近い部分領域Edの密度を最も小さくし、その他の部分領域Eeの密度を部分領域Ecよりも小さく、かつ、部分領域Edよりも大きくした場合を示す。
サッカーゲームにおいては、ゴール50の近くに選手キャラクタ52(54)が密集し、タッチライン46a,46b付近には選手キャラクタ52(54)は、あまり集まらないことが考えられる。そこで、図15のようにゲーム空間40のうちで部分領域Eの密度を異ならしめることによって、ゲームの特性に応じてゲームキャラクタの動作制御を高度化することができる。即ち例えば、ゴール50に比較的近い領域においては、細かな動作制御を行うことができるので、ゲームのリアリティを更に向上させることができる。
このように、ゲーム装置10は、ゲーム空間40における部分領域Eの密度が、ゲーム空間40における複数の部分領域Eの位置に関する条件に基づいて決定する手段を含んでいてもよい。例えば、部分領域Eの位置に関する条件と、部分領域Eの密度と、が予めゲーム装置10に対応づけられており、部分領域Eの密度が決定されるようにしてよい。
(3)また例えば、実施形態においては、複数の部分領域Eの大きさを均等なものとして説明したが、部分領域Eの大きさは互いに異なるものであってもよい。例えば、図15に示した例と同様に、ゲーム空間40の位置毎に部分領域Eの大きさが異なるようにしてもよい。この場合、ゲーム空間40内に設定される複数の部分領域Eが満たす位置に関する条件に基づいて当該複数の部分領域Eの広さが変更されることになる。
即ち例えば、ゴール50に比較的近い部分領域Eについては、ゴール50に比較的遠い部分領域Eよりも面積が小さく設定されるようにしてもよい。このようにすることによって、部分領域Eの密度を異ならしめた場合と同様に、ゴール50前の領域の動作の制御をより詳細なものにすることができる。
(4)また例えば、ゲーム装置10は、選手キャラクタ52(54)の能力値を示すゲームパラメータに応じて部分領域Eの広さ又は密度の少なくとも一方を変更する手段を含んでいてもよい。このゲームパラメータは、例えば、光ディスク36等に記憶されていてよい。この場合、例えば、能力値が比較的高い選手キャラクタ52(54)の動作制御がされる際には、部分領域Eの面積を小さく設定して重なり領域の広さに基づいて部分領域Eの点数を決定する。
一方、例えば、能力値が比較的低い選手キャラクタ52(54)の動作制御がされる際には、部分領域Eの面積を大きく設定して重なり領域の広さに基づいて部分領域Eの評価情報を決定する。このようにして算出される評価情報に基づいて選手キャラクタ52(54)の動作を制御することによって、選手キャラクタ52(54)の能力値が高いほど、より正確な動作を行わせることができるので、ゲームのリアリティが向上する。
(5)他にも例えば、ゲーム装置10は、ゲーム状況データが示すゲーム状況に基づいて部分領域Eの広さ又は密度の少なくとも一方を変更する手段を含んでいてもよい。例えば、ゲーム状況データが示すボール56の位置がゴール50に近い場合、得点のチャンス(又は失点のピンチ)であるので、このような場合には、より精度を高めた動作制御を行うために、細かく部分領域Eが設定されて選手キャラクタ52(54)の動作制御が行われるようにしてもよい。
(6)また、支配領域情報が、支配領域を示す情報と、選手キャラクタ52(54)を識別する情報と、が対応付けられたものである例を挙げて説明したが、支配領域情報のデータ形式は、上記の例に限られない。支配領域情報は、複数のゲームキャラクタが所定時間内に移動すべき範囲に関する情報を識別することができればよく、他にも例えば、支配領域情報は、図7に示す楕円の中心点P0と半径R1,R2を特定する情報であってもよい。
(7)同様に、重なり領域の広さから求まる評価情報(点数)と、部分領域Eを特定する情報と、が対応付けられた例を挙げて説明したが、評価情報のデータ形式は、上記の例に限られない。評価情報は、支配領域情報が示す支配領域が複数の部分領域Eに含まれるか否かを示す情報であればよく、他にも例えば、評価情報は、支配領域が部分領域Eと重なっている領域の輪郭を識別する情報と、部分領域Eを特定する情報と、が対応付けられたものであってもよい。
(8)また例えば、選手キャラクタ52(54)がゲームにおいて果たす役割に基づいて、支配領域の広さが決定されるようにしてもよい。即ち例えば、ゲームにおいて、選手キャラクタ52(54)が、あまり動かないような役割を果たす場合、この選手キャラクタ52(54)の支配領域の広さを小さくするようにしてもよい。
例えば、ディフェンダーの役割をしている選手キャラクタ52(54)は、失点を防ぐため、ゴール付近からあまり動かないことが考えられるので、支配領域を狭くしても動作制御には支障がないと考えられる。一方、ミッドフィールダーの役割をしている選手キャラクタ52(54)は、ピッチ48全体を走り回るので、支配領域の広さを大きくするようにしてもよい。
(9)また例えば、ゲーム空間40を、図2に示すような3次元空間として説明したが、本発明に係るゲーム空間は、選手キャラクタ52(54)やボール56の位置等が、2つの座標要素で管理されるような2次元ゲーム空間であってもよい。
(10)また例えば、本発明は、サッカーゲーム以外のスポーツゲームを実行するゲーム装置にも適用することができる。つまり、本発明は、ゲーム空間をゲームキャラクタが移動するゲームに適用できる。例えば、バスケットボールゲーム、アイスホッケーゲーム、又は、アメリカンフットボールゲームなどを実行するゲーム装置にも、本発明を適用することができる。
他にも例えば、本発明は、スポーツゲーム以外のゲームを実行するゲーム装置10にも適用することができる。例えば、FPS(First Person Shooting)ゲームやロールプレイングゲーム等を実行するゲーム装置にも適用することができる。
例えば、戦場を模したゲーム空間を複数のゲームキャラクタが移動しながら戦うようなFPSゲーム又はロールプレイングゲームに本発明を適用した場合、上記実施形態や変形例と同様にして、このゲーム空間に複数の部分領域が設定される。また、複数のゲームキャラクタの支配領域情報と評価情報とが算出され、複数のゲームキャラクタの動作が制御される。このようなゲームの場合、実施形態における移動物体(ボール56)は、例えば、敵(対戦相手)の大将キャラクタに捕えられた救出対象のゲームキャラクタや敵の戦車の位置等に相当する。
本発明をFPSゲームやロールプレイングゲームに適用すれば、例えば、敵の陣形が手薄になっている場所をゲーム装置が把握して、敵の攻撃を受けないように避難するようなゲームキャラクタの動作制御が実現可能となるので、戦略性を高めたゲームの実現が可能となる。