以下、本発明の実施形態の例について図面に基づき詳細に説明する。本発明の実施形態に係るゲーム装置は、例えば家庭用ゲーム機(据置型ゲーム機)、携帯ゲーム機、携帯電話機、携帯情報端末(PDA)、又はパーソナルコンピュータなどによって実現される。ここでは、本発明の実施形態に係るゲーム装置を家庭用ゲーム機によって実現する場合について説明する。
図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は一又は複数のマイクロプロセッサを含む。制御部14は、光ディスク36から読み出されるプログラムに基づいて、各部の制御処理や情報処理を実行する。主記憶16は例えばRAMを含み、光ディスク36から読み出されたプログラム及びデータが主記憶16に書き込まれる。主記憶16は制御部14の作業用メモリとしても用いられる。バス12はアドレス及びデータを家庭用ゲーム機11の各部でやり取りするためのものである。
画像処理部18はVRAMを含み、制御部14から供給される画像データに基づいてVRAM上に画面を描画する。VRAM上に描画された画面はビデオ信号に変換されて表示部32に出力される。
入出力処理部20は、制御部14が音声処理部22、光ディスクドライブ24、ハードディスク26、通信インタフェース28、及びコントローラ30にアクセスするためのインタフェースである。音声処理部22はサウンドバッファを含み、光ディスク36からサウンドバッファに読み出された音声データを音声出力部34から出力する。通信インタフェース28は、インターネットなどの通信ネットワークに家庭用ゲーム機11を有線又は無線接続するためのインタフェースである。
光ディスクドライブ24は、光ディスク36に記録されたプログラムやデータを読み取る。ここでは、プログラムやデータを家庭用ゲーム機11に供給するために光ディスク36を用いるが、メモリカード等、他の情報記憶媒体を用いるようにしてもよい。また、例えば通信ネットワークを介して遠隔地からプログラムやデータを家庭用ゲーム機11に供給するようにしてもよい。ハードディスク26は一般的なハードディスク装置(補助記憶装置)である。なお、光ディスク36に記憶されることとして説明するプログラムやデータはハードディスク26に記憶されていてもよい。また、ハードディスク26の代わりに、ソリッドステートドライブがゲーム装置10に備えられるようにしてもよい。
コントローラ30はユーザが操作を行うための操作部である。家庭用ゲーム機11には複数のコントローラ30を有線又は無線接続することが可能になっている。図2A及び図2Bはコントローラ30の一例を示す。なお、図2Aにおいて、X軸はコントローラ30の長軸方向(左右方向)に対応し、Y軸はコントローラ30の短軸方向(上下方向)に対応している。X軸とY軸とは直交している。また、図2Bにおいて、Z軸はコントローラ30の表面30aの法線方向に対応している。
コントローラ30の表面30aには複数の操作部材が備えられている。例えば、方向ボタン群40と、ボタン42A,42B,42X,42Yと、左スティック(レバー)44Lと、右スティック(レバー)44Rとが備えられている。
方向ボタン群40は例えば方向を指示する操作に用いられる。方向ボタン群40は、上方向に対応する上方向ボタン40Uと、下方向に対応する下方向ボタン40Dと、左方向に対応する左方向ボタン40Lと、右方向に対応する右方向ボタン40Rと、を含む。ボタン42A,42B,42X,42Yは各種ゲーム操作に用いられる。方向ボタン群40やボタン42A,42B,42X,42Yの押下状態を示す情報が制御部14に供給される。
左スティック44L及び右スティック44Rも例えば方向を指示する操作に用いられる。左スティック44L及び右スティック44Rは、コントローラ30の筐体の表面30aに直立しており、この直立状態から全方位に所定角度だけ傾倒自在に構成されている。また、左スティック44L及び右スティック44RはZ軸負方向に押し込むこともできるようになっている。左スティック44L及び右スティック44RはZ軸負方向に押し込んだ状態で傾けることが可能である。
左スティック44Lの操作状態を示す操作状態情報が制御部14に供給される。例えば、左スティック44Lの左右方向及び上下方向への傾きを示す情報や、左スティック44Lが押し込まれているか否かを示す情報が制御部14に供給される。例えば、左右方向への傾きの大きさは、例えば−127〜+127の数値で表される。値「0」は、左スティック44LがX軸方向(左右方向)に傾いていないことを示す。また、値「+127」は、左スティック44LがX軸正方向(右方向)に限界まで倒れていることを示す。さらに、値「−127」は、左スティック44LがX軸負方向(左方向)に限界まで倒れていることを示す。上下方向への傾きについても同様である。また、右スティック44Rについても左スティック44Lと同様である。なお以下では、左スティック44Lが左右方向及び上下方向のいずれにも傾けられていない状態のことを、左スティック44Lが「ニュートラルの状態」にあるというように記載する。右スティック44Rについても同様である。
入出力処理部20は一定周期毎(例えば1/60秒ごと)にコントローラ30の各操作部材の操作状態をスキャンし、そのスキャン結果を表す操作信号をバス12を介して制御部14に供給する。方向ボタン群40やボタン42A,42B,42X,42Yの押下状態を示す情報や、左スティック44L及び右スティック44Rの操作状態を示す情報も操作信号として制御部14に供給される。制御部14は操作信号に基づいてユーザのゲーム操作を判定する。
ゲーム装置10では、ユーザの操作対象になっているゲームキャラクタと、ユーザの操作対象になっていない複数のゲームキャラクタと、を含むゲームキャラクタグループがゲーム空間内で行動するゲームが実行される。
以下では、ユーザに対応するユーザチームと、敵チームと、が移動物体(例えばボール又はパック等)を用いて行われる競技を行うゲームが実行される場合について説明する。具体的には、サッカーゲームが実行される場合について説明する。このサッカーゲームでは、ユーザチームと敵チームとの間のサッカーの試合が行われる。なお、敵チームを操作するのはコンピュータであってもよいし、他のユーザであってもよい。ただし、以下では、敵チームがコンピュータによって操作される場合について説明する。
サッカーゲームが実行される場合、ゲーム空間が主記憶16に構築される。図3はゲーム空間の一例を示す。図3に示すゲーム空間50は、互いに直交する3つの座標軸(Xw軸、Yw軸、及びZw軸)が設定された仮想的な3次元空間である。ゲーム空間50に配置されるオブジェクトの位置などはこれらの3つの座標軸によって特定される。
図3に示すように、ゲーム空間50には、サッカーフィールドを表すオブジェクトであるフィールド52が配置される。また、フィールド52上には、サッカーのゴールを表すオブジェクトであるゴール54と、サッカーボールを表すオブジェクトであるボール56と、ユーザチームに所属するサッカー選手を表すオブジェクトであるゲームキャラクタ58と、敵チームに所属するサッカー選手を表すオブジェクトであるゲームキャラクタ60と、が配置される。図3では省略されているが、フィールド52上には11人のゲームキャラクタ58と11人のゲームキャラクタ60とが配置される。
ゴール54の一方はユーザチームに関連づけられ、他方は敵チームに関連づけられる。いずれか一方のチームに関連づけられたゴール54内にボール56が移動すると、他方のチームの得点イベントが発生する。
ゲームキャラクタ58(60)とボール56とが近づくと、所定条件の下、そのゲームキャラクタ58(60)とボール56とが関連づけられる。この場合、ゲームキャラクタ58(60)の移動動作はドリブル動作になる。以下では、ゲームキャラクタ58(60)にボール56が関連づけられた状態のことを「ゲームキャラクタ58(60)がボール56を保持している」というように記載する。
また、ゲーム空間50には仮想カメラ62(視点)が設定される。この仮想カメラ62から見たゲーム空間50を表すゲーム画面が表示部32に表示される。例えば、ボール56が常にゲーム画面に表示されるように、仮想カメラ62はボール56の位置に基づいて移動する。
図4はゲーム画面の一例を示す。図4に示すゲーム画面には4人のゲームキャラクタ58A,58B,60A,60Bが表示されている。そのうち、2人のゲームキャラクタ58A,58Bはユーザチームに所属するゲームキャラクタ58であり、残りの2人のゲームキャラクタ60A,60Bは敵チームに所属するゲームキャラクタ60である。
このサッカーゲームでは、ユーザチームに所属するゲームキャラクタ58のうちのいずれかがユーザの操作対象に設定される。ユーザの操作対象はユーザチームに所属するゲームキャラクタ58のうちで切り替えられる。図4に示すゲーム画面ではゲームキャラクタ58Aの頭上にカーソル64が表示されている。カーソル64は、ユーザの操作対象になっているゲームキャラクタ58を案内する役割を果たす。
ユーザの操作対象になっているゲームキャラクタ58はユーザの操作に基づいて行動する。例えば、ゲームキャラクタ58を移動させるための操作には左スティック44Lが用いられ、ユーザの操作対象になっているゲームキャラクタ58は、ユーザが左スティック44Lを用いて指示している方向に移動する。また例えば、ゲームキャラクタ58にショートパスを行わせるための操作にはボタン42Aが用いられ、ボタン42Aが押下されると、ユーザの操作対象になっているゲームキャラクタ58はショートパスを行う。同様に、ゲームキャラクタ58にロングパスを行わせるための操作にはボタン42Bが用いられ、ボタン42Bが押下されると、ユーザの操作対象になっているゲームキャラクタ58はロングパスを行う。さらに、ゲームキャラクタ58にシュートを行わせるための操作にはボタン42Xが用いられ、ボタン42Xが押下されると、ユーザの操作対象になっているゲームキャラクタ58はシュートを行う。なお、ユーザの操作対象になっているゲームキャラクタ58がショートパス、ロングパス、又はシュートを行う場合のパス方向又はシュート方向は、ボタン42A,42B,42Xが押下された時点において左スティック44Lを用いて指示されていた方向に基づいて設定される。
一方、ユーザチームに所属するゲームキャラクタ58のうちの、ユーザの操作対象になっていないゲームキャラクタ58はコンピュータの操作に従って行動する。また、敵チームに所属するゲームキャラクタ60もコンピュータの操作に従って行動する。なお、以下では、ユーザチームに所属するゲームキャラクタ58のうちの、ユーザの操作対象になっているゲームキャラクタ58のことを「ユーザキャラクタ」と呼ぶ。ユーザチームに所属するゲームキャラクタ58のうちの、ユーザの操作対象になっていないゲームキャラクタ58のことを「味方キャラクタ」と呼ぶ。また、敵チームに所属するゲームキャラクタ60のことを「敵キャラクタ」と呼ぶ。
上述したように、ユーザの操作対象は、ユーザチームに所属するゲームキャラクタ58のうちで切り替わるようになっている。以下、ユーザが操作対象を所望のゲームキャラクタ58に切り替え易くできるようにするための技術について説明する。
図5は、操作対象を切り替えるためにユーザが行う操作について説明するための図である。ここでは、ユーザが操作対象をゲームキャラクタ58Aからゲームキャラクタ58Bに切り替えたいと考えている場合を想定する。
この場合、ユーザは、右スティック44Rを用いて、ゲームキャラクタ58Aからゲームキャラクタ58Bへの方向66を指定する。つまり、ユーザは、右スティック44Rを、ゲームキャラクタ58Aからゲームキャラクタ58Bへの方向66に対応する方向に傾ける。ゲームキャラクタ58Aからゲームキャラクタ58Bへの方向66が右スティック44Rを用いて指定された場合、ユーザの操作対象がゲームキャラクタ58Aからゲームキャラクタ58Bへと切り替わる。図6はこの場合のゲーム画面の一例を示している。図6に示すゲーム画面では、カーソル64がゲームキャラクタ58Bの頭上に表示されている。
以上のように、ゲーム装置10では、ユーザが、所望のゲームキャラクタ58がいる方向を右スティック44Rを用いて指定することによって、操作対象を所望のゲームキャラクタ58に切り替えることができるようになっている。すなわち、ユーザが操作対象を所望のゲームキャラクタ58に切り替え易くなっている。
なお、所望のゲームキャラクタ58がいる方向を指定する場合には、操作対象になっているゲームキャラクタ58の移動操作に用いられる左スティック44Lとは異なる操作部材(右スティック44R)が用いられるようになっている。その結果、ユーザは、例えば、操作対象になっているゲームキャラクタ58を左スティック44Lを用いて移動させながら、該ゲームキャラクタ58の移動方向とは逆の方向に位置しているゲームキャラクタ58に操作対象を切り替えることも円滑に行えるようになる。
以下、上記の機能を実現するための構成について説明する。図7は、ゲーム装置10で実現される機能のうち、本発明に関連する機能ブロックを示す機能ブロック図である。図7に示すように、ゲーム装置10は、記憶部70、ゲームキャラクタ制御部72、及び切替部76を含む。記憶部70は例えば主記憶16及び光ディスク36によって実現され、その他の機能ブロックは制御部14が光ディスク36から読み出されたプログラムを実行することによって実現される。
まず、記憶部70について説明する。記憶部70はゲームを実行するために必要なデータを記憶する。例えば、ゲーム空間に配置される各オブジェクトのモデルデータ、ゲームキャラクタのモーションデータや、ゲームキャラクタの行動を制御するための行動制御データ(例えば人工知能(AI))が記憶部70に記憶される。
また例えば、ゲームキャラクタの能力に関する能力パラメータデータが記憶部70に記憶される。例えば、サッカーゲームの場合、能力パラメータとしては、例えば走力パラメータ、持久力パラメータ、パス能力パラメータ、シュート能力パラメータ、及びフリーキック能力パラメータ等がある。能力パラメータは能力の高さを例えば「0」〜「100」の数値で表すパラメータである。
また例えば、ゲームの現在の状況を示すゲーム状況データが記憶部70に記憶される。例えば、サッカーゲームの場合、サッカーゲームの現在の状況を示すゲーム状況データが記憶部70に記憶される。そして、例えば、下記に示すようなデータがゲーム状況データに含まれる。
・各ゲームキャラクタ58,60の状態データ(位置、移動方向、及び移動速度等)
・ボール56の状態データ(位置、移動方向、及び移動速度等)
・仮想カメラ62の状態データ(位置、視線方向、及び画角等)
・両チームの得点状況を示すデータ
・試合が開始されてからの経過時間を示すデータ
図8はゲームキャラクタ58,60の現在の状態を示すゲームキャラクタ状態データの一例を示す。図8に示すゲームキャラクタ状態データは、「ID」、「位置」、「移動方向」、「操作対象フラグ」、及び「ボール保持フラグ」フィールド等を含んでいる。
「ID」フィールドはゲームキャラクタ58,60を一意に識別する情報を示す。図8において、「P101」〜「P111」はユーザチームに所属するゲームキャラクタ58のIDであり、「P201」〜「P211」は敵チームに所属するゲームキャラクタ60のIDである。「位置」フィールドはゲームキャラクタ58,60の現在の位置を示し、「移動方向」フィールドはゲームキャラクタ58,60の現在の移動方向を示す。
「操作対象フラグ」フィールドは、ゲームキャラクタ58がユーザの操作対象になっているか否かを示し、0又は1の値をとる。値「0」は、現在、ゲームキャラクタ58がユーザの操作対象でないことを示し、値「1」は、現在、ゲームキャラクタ58がユーザの操作対象であることを示す。「ボール保持フラグ」フィールドは、ゲームキャラクタ58,60がボール56を保持しているか否かを示し、0又は1の値をとる。値「0」は、現在、ゲームキャラクタ58,60がボール56を保持していないことを示し、値「1」は、現在、ゲームキャラクタ58,60がボール56を保持していることを示す。
ゲームキャラクタ制御部72について説明する。ゲームキャラクタ制御部72はゲームキャラクタを制御する。本実施形態の場合、ゲームキャラクタ制御部72は、ユーザチームに所属するゲームキャラクタ58や、敵チームに所属するゲームキャラクタ58を制御する。ゲームキャラクタ制御部72は第1ゲームキャラクタ制御部72A(第1制御手段)と第2ゲームキャラクタ制御部72B(第2制御手段)とを含んでいる。
第1ゲームキャラクタ制御部72Aは、ユーザチームに所属するゲームキャラクタ58のうちの、ユーザの操作対象になっているゲームキャラクタ58(すなわち、ユーザキャラクタ)を、第1操作部材の操作状態に基づいて取得される方向に移動させる。本実施形態の場合、左スティック44Lが「第1操作部材」に相当する。なお、左スティック44Lの代わりに方向ボタン群40が用いられるようにしてもよい。その場合、方向ボタン群40が「第1操作部材」に相当することになる。
第2ゲームキャラクタ制御部72Bは、ユーザチームに所属するゲームキャラクタ58のうちの、ユーザの操作対象になっていないゲームキャラクタ58(すなわち、味方キャラクタ)をコンピュータの操作に基づいて移動させる。第2ゲームキャラクタ制御部72Bは味方キャラクタをAIに従って移動させる。
切替部76について説明する。切替部76は、ユーザチームに所属する複数のゲームキャラクタ58のうちでユーザの操作対象を切り替える。切替部76は選出部74を含んでいる。
選出部74について説明する。選出部74は、第2ゲームキャラクタ制御部72Bによって制御されるゲームキャラクタ58(すなわち、味方キャラクタ)のうちのいずれかを、第2操作部材の操作状態に基づいて取得される方向に基づいて選出する。本実施形態の場合、右スティック44Rが「第2操作部材」に相当する。なお、左スティック44Lの代わりに方向ボタン群40が用いられていない場合には、右スティック44Rの代わりに方向ボタン群40が用いられるようにしてもよい。その場合、方向ボタン群40が「第2操作部材」に相当することになる。
例えば、選出部74は、「ユーザキャラクタと味方キャラクタとの間の距離」と、「ユーザキャラクタの位置から、右スティック44Rの操作状態に基づいて取得される方向へと伸ばした直線と、ユーザキャラクタの位置から味方キャラクタの位置への方向に伸ばした直線と、の間の角度」と、に基づいて、味方キャラクタのうちのいずれかを選出する。
図9は、選出部74の動作の一例について説明するための図である。なお、図9において、符号58Xは、ユーザの操作対象に設定されているゲームキャラクタ58(すなわち、現在のユーザキャラクタ)を示しており、符号58Yは、ユーザの操作対象に設定されていないゲームキャラクタ58(すなわち、味方キャラクタ)を示している。また、符号80は、ユーザキャラクタ58Xの位置から、右スティック44Rの操作状態に対応する方向(すなわち、右スティック44Rを用いて指定された方向)に伸ばした直線を示している。さらに、符号82は、ユーザキャラクタ58Xの位置から伸ばした直線と、直線80と、の間の角度が基準角度θr以下となるような領域(以下「注目領域」と呼ぶ。)を示している。
まず、選出部74は、注目領域82内に位置していない味方キャラクタを選出しない。すなわち、選出部74は、直線80と、ユーザキャラクタ58Xの位置から味方キャラクタ58Yの位置へと伸ばした直線と、の間の角度θが基準角度θrよりも大きい場合、その味方キャラクタを選出しない。
選出部74は、注目領域82内に位置している味方キャラクタの各々について、評価値を算出する。そして、選出部74は、それらの味方キャラクタの各々の評価値を比較することによって、注目領域82内に位置している味方キャラクタのうちのいずれかを選出する。
例えば、選出部74は下記のような式(1)に基づいて評価値Eを算出する。なお、下記の式(1)において、「L」は、ユーザキャラクタ58Xと味方キャラクタ58Yとの間の距離を示している。さらに、「p」及び「q」は所定の係数であり、それぞれ、上記の角度θ又は上記の距離Lの重みを示している。
E=1/(p*θ+q*L) ・・・ (1)
上記の式(1)によれば、上記の角度θが大きいほど、評価値Eは小さくなり、上記の角度θが小さいほど、評価値Eは大きくなる。すなわち、味方キャラクタ58Yの位置の直線80からのずれが小さいほど、評価値Eは大きくなる。また、上記の距離Lが長いほど、評価値Eは小さくなり、上記の距離Lが短いほど、評価値Eは大きくなる。すなわち、味方キャラクタ58Yがユーザキャラクタ58Xに近いほど、評価値Eは大きくなる。このため、選出部74は、最も評価値Eが大きい(すなわち、最も評価が高い)味方キャラクタを操作対象の切替先として選出する。
なお、評価値Eとして、味方キャラクタ58Yの位置の直線80からのずれが小さいほど小さくなり、かつ、味方キャラクタ58Yがユーザキャラクタ58Aに近いほど小さくなるような値を用いるようにしてもよい。このような場合、選出部74は、評価値Eが最も小さい(すなわち、最も評価が高い)味方キャラクタを操作対象の切替先として選出するようにすればよい。
切替部76は、ユーザの操作対象を、選出部74によって選出されたゲームキャラクタに切り替える。本実施形態の場合、切替部76は、ユーザの操作対象を選出部74によって選出された味方キャラクタに切り替える。この場合、選出部74によって選出された味方キャラクタが新たなユーザキャラクタになり、元々のユーザキャラクタが味方キャラクタになる。
次に、上記の機能ブロックを実現するためにゲーム装置10で実行される処理について説明する。図10は、ゲーム装置10で所定時間(例えば1/60秒)ごとに実行される処理の一例を示すフロー図である。制御部14は光ディスク36から読み出されたプログラムに従って、図10に示す処理を実行することによって、制御部14がゲームキャラクタ制御部72及び切替部76として機能するようになる。
図10に示すように、制御部14は右スティック44Rが傾倒されたか否かを判定する(S101)。すなわち、制御部14は、右スティック44Rが「ニュートラルの状態」から「いずれかの方向に傾倒された状態」へと変化したか否かを操作信号に基づいて判定する。右スティック44Rが傾倒されていないと判定された場合、制御部14は後述のステップS105の処理を実行する。
右スティック44Rが傾倒されたと判定された場合、制御部14は操作信号に基づいて右スティック44Rの傾倒方向を取得し(S102)、右スティック44Rの傾倒方向に基づいて、味方キャラクタのうちのいずれかを選出する(S103)。
例えば、ステップS103において、制御部14は、右スティック44Rに対応するゲーム空間50内の方向を取得する。その後、制御部14は、ユーザキャラクタの位置から上記の方向に伸ばした直線80(図9参照)を取得する。また、制御部14は、各味方キャラクタについて、上記の直線80とのずれを示す角度θ(図9参照)が基準角度θrよりも大きいか否かを判定する。さらに、制御部14は、上記の角度θが基準角度θr以下である各味方キャラクタ(つまり、注目領域82に位置している各味方キャラクタ)について、評価値Eを算出する(上記の式(1)参照)。そして、制御部14は、それらの味方キャラクタの評価値Eを比較することによって、それらの味方キャラクタのうちのいずれかを選出する。
ステップS103の処理が実行された後、制御部14は、ユーザの操作対象を、ステップS103で選出された味方キャラクタに切り替える(S104)。すなわち、制御部14は、ステップS103で選出された味方キャラクタがユーザの操作対象となるように、ゲームキャラクタ状態データの操作対象フラグを更新する。この場合、ステップS103で選出された味方キャラクタの操作対象フラグが「1」に更新され、それまでユーザの操作対象であったゲームキャラクタ58の操作対象フラグが「0」に更新される。
ステップS104の処理が実行された場合、又は、ステップS101で右スティック44Rが傾倒されていないと判定された場合、制御部14はゲーム状況データを更新する(S105)。
例えば、制御部14は、ユーザキャラクタの移動方向を左スティック44Lの傾倒方向に基づいて判断し、ユーザキャラクタを該移動方向に移動させる。また例えば、ショートパスボタン、ロングパスボタン、又はシュートボタンが押下された場合、制御部14はユーザキャラクタにショートパス、ロングパス、又はシュートを行わせる。
また例えば、制御部14は味方キャラクタをAIに従って行動させる。なお、制御部14は敵キャラクタもAIに従って行動させる。また、制御部14は、いずれかのゲームキャラクタ58(60)によってボール56が蹴られた場合、ボール56の移動方向を取得し、ボール56を該移動方向に移動させる。さらに、制御部14は得点状況を示すデータや経過時間を示すデータも更新する。
ステップS105の処理が実行された後、制御部14はゲーム画面を更新する(S106)。すなわち、制御部14は、ゲーム空間50を仮想カメラ62から見た様子を表すゲーム画面をゲーム状況データに基づいて生成する。生成されたゲーム画面が表示部32に表示される。以上で図10に示す処理の説明を終了する。
以上説明したゲーム装置10によれば、所望のゲームキャラクタ58がいる方向を右スティック44Rを用いて指定することによって、操作対象を所望のゲームキャラクタ58に切り替えることができるようにすることが可能になる。すなわち、ゲーム装置10によれば、ユーザが操作対象を所望のゲームキャラクタ58に切り替え易くなるようにすることが可能になる。
なお、本発明は以上に説明した実施の形態に限定されるものではない。
[1]例えば、ユーザキャラクタがボール56を保持している場合、選出部74は、ユーザキャラクタの位置の代わりに、ボール56の位置を用いるようにしてもよい。例えば、図9における直線80は、ボール56の位置から、右スティック44Rの操作状態に対応する方向に伸ばした直線であってもよい。
例えば、ユーザキャラクタがドリブルを行っている場合、ユーザはユーザキャラクタの位置よりもボール56の位置に注目する場合がある。また、ユーザキャラクタのドリブルが大きい場合(すなわち、ユーザキャラクタが、ユーザキャラクタとボール56との間の距離が比較的長くなるようにして、ドリブルを行っている場合)にユーザの操作対象の切り替える場合、ユーザは、ユーザキャラクタとボール56との間の距離が長い状態で右スティック44Rを操作しなければならなくなる。このような場合、選出部74がユーザキャラクタの位置に基づいて味方キャラクタを選出するようになっていると(図9参照)、ユーザはユーザキャラクタの位置から所望の味方キャラクタへの方向を右スティック44Rを用いて指定する必要があり、ユーザキャラクタの位置よりもボール56の位置に注目してゲームをプレイするユーザにとって、所望の味方キャラクタを指定し難くなってしまうおそれがある。この点、以上のようにすれば、ユーザがユーザキャラクタの位置よりもボール56の位置に注目してゲームをプレイする場合であっても所望の味方キャラクタを指定し易くすることが可能になる。
[2]例えば、ユーザチームが守備を行っている場合(すなわち、敵キャラクタがボール56を保持している場合)、選出部74は、下記に説明するようにして、味方キャラクタのうちのいずれかを選出するようにしてもよい。
本実施形態では、ユーザチームが守備を行っている場合、味方キャラクタが敵キャラクタをマークするようになっている。「マーク」とは、特定の敵キャラクタから離れないようにしつつ(特定の敵キャラクタからの距離が一定の距離以下となるように保ちつつ)、該敵キャラクタに対する守備等を行うことである。
なお、マーカー(マークを行うゲームキャラクタ58)とマーク対象(マークされるゲームキャラクタ60)との組み合わせは、例えば、試合前やハーフタイム中にユーザによって設定される。または、試合中に、ユーザが、ユーザチームに属するゲームキャラクタ58のうちのいずれかをマーカーとして選択し、かつ、敵チームに属するゲームキャラクタ60のうちのいずれかをマーク対象として選択する操作を行うことによって、マーカーとマーク対象との組み合わせが設定されるようにしてもよい。あるいは、試合中に、AIが、味方キャラクタをマーカーとして設定し、かつ、敵チームに属するゲームキャラクタ60のうちのいずれかをマーク対象として選択することによって、マーカーとマーク対象との組み合わせが設定されるようにしてもよい。
選出部74は、敵キャラクタをマークしている味方キャラクタが存在するか否かに基づいて、味方キャラクタのいずれかを選出するようにしてもよい。
例えば、選出部74は、注目領域82内に位置している味方キャラクタのうちに、敵キャラクタをマークしている味方キャラクタが存在するか否かを判定する。そして、敵キャラクタをマークしている味方キャラクタが注目領域82内に存在する場合、選出部74は、その味方キャラクタを優先的に選出する。
なお、「敵キャラクタをマークしている味方キャラクタを優先的に選出する」とは、例えば、評価値に関係なく、敵キャラクタをマークしている味方キャラクタを選出することを含む。または、「敵キャラクタをマークしている味方キャラクタを優先的に選出する」とは、敵キャラクタをマークしている味方キャラクタの評価値を変更(例えば増加)させることによって、敵キャラクタをマークしている味方キャラクタが選出されやすくすることも含む。すなわち、敵キャラクタをマークしている味方キャラクタの評価値に所定の数値を加算したり、敵キャラクタをマークしている味方キャラクタの評価値に1よりも大きい係数を乗じたりすることを含む。
[3]例えば、選出部74は、ユーザキャラクタの位置と味方キャラクタの位置とを結ぶ直線と、敵キャラクタの位置と、の位置関係に基づいて、味方キャラクタのうちのいずれかを選出するようにしてもよい。
例えば、選出部74は、ユーザキャラクタの位置と味方キャラクタの位置とを結ぶ直線と、敵キャラクタの位置と、の位置関係が所定の位置関係を有するか否かを判定する。例えば、選出部74は、ユーザキャラクタの位置と味方キャラクタの位置とを結ぶ直線上に敵キャラクタが位置しているか否かを判定する。または、選出部74は、ユーザキャラクタの位置と味方キャラクタの位置とを結ぶ直線上に敵キャラクタが位置しているか否かを判定する。例えば、選出部74は、敵キャラクタの位置から直線に垂らした垂線の長さが基準値よりも短いか否かを判定することによって、直線と敵キャラクタの位置とが近いか否かを判定する。
そして、ユーザキャラクタの位置と味方キャラクタの位置とを結ぶ直線と、敵キャラクタの位置と、の位置関係が所定の位置関係を有すると判定された場合、選出部74は、その味方キャラクタを選出しない。あるいは、選出部74は、その味方キャラクタの評価値を変更(例えば減少)させることによって、その味方キャラクタが選出されにくくする。すなわち、味方キャラクタの評価値から所定の数値を減算したり、味方キャラクタの評価値に1よりも小さい係数を乗じたりする。
こうすれば、ユーザの操作対象に切り替える味方キャラクタを敵キャラクタの位置を考慮しつつ選出できるようになる。
[4]例えば、選出部74は、試合の状況に基づいて、味方キャラクタのうちのいずれかを選出するようにしてもよい。
例えば、選出部74は、図11に示すような対応関係データと、試合の現在の状況と、に基づいて、味方キャラクタのうちのいずれかを選出するようにしてもよい。図11に示す対応関係データは、試合の状況と、その状況において選出されるべきゲームキャラクタ58(味方キャラクタ)の類型と、の対応関係を示している。例えば、図11に示す対応関係データでは、「ユーザチームが敵チームにリードされている状況」と、「攻撃能力が高いゲームキャラクタ58」(すなわち、攻撃能力に関するパラメータの値が基準値以上であるゲームキャラクタ58)と、が対応づけられる。
選出部74は、図11に示す対応関係データに基づいて、試合の現在の状況に対応づけられた「選出されるべきゲームキャラクタ58の類型」を取得する。そして、選出部74は、該類型に属する味方キャラクタが注目領域82内に位置しているか否かを判定する。そして、該類型に属する味方キャラクタが注目領域82内に位置している場合、選出部74はその味方キャラクタを選出する。このようにすれば、試合の現在の状況に合ったゲームキャラクタ58にユーザの操作対象が切り替えられるようになる。
[5]例えば、選出部74は、ユーザチームが採用する戦術に基づいて、味方キャラクタのうちのいずれかを選出するようにしてもよい。
例えば、選出部74は、図12に示すような対応関係データと、ユーザチームが採用する戦術と、に基づいて、味方キャラクタのうちのいずれかを選出するようにしてもよい。図12に示す対応関係データは、ユーザチームが採用し得る戦術(例えば、サイドアタック、又はカウンターアタック等)と、選出されるべきゲームキャラクタ58(味方キャラクタ)の類型と、の対応関係を示している。例えば、図12に示す対応関係データでは、戦術と、その戦術を実施するのに適したゲームキャラクタ58の類型と、が対応づけられる。具体的には、例えば、「サイドアタック」と、「サイドライン付近に位置しているゲームキャラクタ58」と、が対応づけられる。
選出部74は、図12に示す対応関係データに基づいて、ユーザチームが採用する戦術に対応づけられた「選出されるべきゲームキャラクタ58の類型」を取得する。そして、選出部74は、該類型に属する味方キャラクタが注目領域82内に位置しているか否かを判定する。そして、該類型に属する味方キャラクタが注目領域82内に位置している場合、選出部74はその味方キャラクタを選出する。このようにすれば、ユーザチームが採用する戦術に合ったゲームキャラクタ58にユーザの操作対象が切り替えられるようになる。
[6]例えば、選出部74は、敵チームが採用する戦術に基づいて、味方キャラクタのうちのいずれかを選出するようにしてもよい。
変形例5と同様に、選出部74は、図12に示すような対応関係データを用いて、味方キャラクタのうちのいずれかを選出するようにすればよい。ただし、この場合、図12に示す対応関係データでは、敵チームが採用し得る戦術(例えば、サイドアタック、又はカウンターアタック等)と、その戦術を妨げるのに適したゲームキャラクタ58の類型と、が対応づけられることになる。この場合、選出部74は、図12に示す対応関係データと、敵チームが採用する戦術と、に基づいて、味方キャラクタのうちのいずれかを選出することになる。
選出部74は、図12に示す対応関係データに基づいて、敵チームが採用する戦術に対応づけられた「選出されるべきゲームキャラクタ58の類型」を取得する。そして、選出部74は、該類型に属する味方キャラクタが注目領域82内に位置しているか否かを判定する。そして、該類型に属する味方キャラクタが注目領域82内に位置している場合、選出部74はその味方キャラクタを選出する。このようにすれば、敵チームが採用する戦術に合ったゲームキャラクタ58にユーザの操作対象が切り替えられるようになる。
[7]例えば、フリーキック、コーナーキック、ゴールキック、又はスローインをユーザチームのゲームキャラクタ58が行う場面の、フリーキック等が実行される前の期間においても、ユーザが操作対象を切り替えることができるようにしてもよい。すなわち、ユーザが、操作対象を切り替えることによって、フリーキック等を行うゲームキャラクタ58以外のゲームキャラクタ58の位置を変更できるようにしてもよい。
図13は、フリーキックの場面においてユーザが行う操作手順の一例を示している。図13に示すように、キッカーであるゲームキャラクタ58以外のゲームキャラクタ58の位置を変更する場合(S201:Y)、ユーザは、操作対象を、位置を変更したいゲームキャラクタ58に切り替える(S202)。この場合の操作は図5,6において説明した操作と同様である。すなわち、ユーザは、その時点で操作対象になっているゲームキャラクタ58(つまり、ユーザキャラクタ)の位置から、位置を変更したいゲームキャラクタ58への方向に対応する方向に右スティック44Rを傾ける。
そして、位置を変更したいゲームキャラクタ58が操作対象に変わったら、ユーザは、新たに操作対象になったゲームキャラクタ58の位置を変更する。すなわち、ユーザは、新たに操作対象になったゲームキャラクタ58を、左スティック44Lを操作することによって、所望の位置まで移動させる。その後、ユーザは引き続き他のゲームキャラクタ58の位置を変更するか否かを判断する(S201)。他のゲームキャラクタ58の位置を変更する場合、ユーザは同様の操作を行う。
一方、ゲームキャラクタ58の位置を変更しない場合(S201:N)、すなわち、キッカーであるゲームキャラクタ58以外のゲームキャラクタ58の位置の変更を完了した場合、ユーザはショートパスボタン又はロングパスボタンを押下する(S204)。
この場合、キッカーであるゲームキャラクタ58がショートパス又はロングパスを行う。また、この場合、ショートパス又はロングパスの目標位置は、ショートパスボタン又はロングパスボタンが押下された時点においてユーザの操作対象になっていたゲームキャラクタ58の位置に基づいて設定される。すなわち、ショートパスボタン又はロングパスボタンが押下された時点においてユーザの操作対象になっていたゲームキャラクタ58へのショートパス又はロングパスが行われるようになる。
なお、以上に説明したような操作手順をユーザが行えるようにするためにゲーム装置10が実行すべき処理は図10に示す処理とほぼ同様である。すなわち、フリーキックをユーザチームのゲームキャラクタ58が行う場面の、フリーキックが実行される前の期間においても、図10に示す処理が所定時間(例えば1/60秒)ごとに実行されるようにすればよい。ただし、フリーキックの場面においてショートパス又はロングパスボタンが押下されたと判定された場合、制御部14は、キッカーであるゲームキャラクタ58にショートパス又はロングパスを行わせる。また、この場合、制御部14は、ショートパスボタン又はロングパスボタンの目標位置を、ショートパスボタン又はロングパスボタンが押下された時点においてユーザの操作対象になっていたゲームキャラクタ58の位置に基づいて設定する。
以上のようにすれば、フリーキック等が行われる前の期間においてキッカー以外のゲームキャラクタ58の操作をユーザは行えるようになる。すなわち、キッカー等からのパスを受ける動きを行うようにユーザはゲームキャラクタ58を操作することが可能になる。
[8]なお、上記の変形例7においては、フリーキック、コーナーキック、ゴールキック、又はスローインを行うゲームキャラクタ58の能力パラメータに基づいて、選出部74による選出(又は切替部76による切替)を制限するようにしてもよい。
ゲームキャラクタ58の能力パラメータに基づいて、選出部74による選出(又は切替部76による切替)を制限する場合、ゲームキャラクタ58の能力パラメータと、選出部74による選出(又は切替部76による切替)の制限内容と、の対応関係を示す情報が必要となる。図14は上記の対応関係を示す対応関係データの一例を示している。図14に示す対応関係データでは、例えば、能力が低いほど、制限の程度がきつくなるように、能力パラメータ(p)の範囲と制限内容との対応関係が設定される。このため、「制限内容A」は「制限内容B」に比べて制限の程度がきつく設定される。
ここで、「制限内容」の例について説明する。ここでは、フリーキックが行われる場合を想定して説明する。なお、コーナーキック、ゴールキック、又はスローインの場合もフリーキックの場合と同様である。
例えば、ゲーム装置10は、フリーキックを行うゲームキャラクタ58の能力パラメータに基づいて、フリーキックが行われる前の期間における選出部74による選出(又は切替部76による切替)の回数を制限する。
この場合、図14に示す対応関係データにおける「制限内容A」は、例えば、選出部74による選出(又は切替部76による切替)の回数をM回に制限することを示す。また、「制限内容B」は、例えば、選出部74による選出(又は切替部76による切替)の回数をN(M<N)回に制限することを示す。
また例えば、ゲーム装置10は、フリーキックを行うゲームキャラクタ58の能力パラメータに基づいて、フリーキックが行われる前の期間において選出部74によって選出可能なゲームキャラクタ(又は切替部76によってユーザの操作対象を切替可能なゲームキャラクタ)を制限する。
この場合、図14に示す対応関係データにおける「制限内容A」は、例えば、選出部74によって選出可能なゲームキャラクタ58(又は切替部76によってユーザの操作対象を切り替え可能なゲームキャラクタ58)を、周辺に位置する敵キャラクタの数がM人であるゲームキャラクタ58に制限することを示す。なお、「周辺に位置する敵キャラクタの数がM人であるゲームキャラクタ58」とは、例えば、ゲームキャラクタ58からの距離が所定距離以内の範囲に位置している敵キャラクタの数がM人であるようなゲームキャラクタ58である。
また、「制限内容B」は、例えば、選出部74によって選出可能なゲームキャラクタ58(又は切替部76によってユーザの操作対象を切り替え可能なゲームキャラクタ58)を、周辺に位置する敵キャラクタの数がN(M<N)人であるゲームキャラクタ58に制限することを示す。
以上のようにすれば、フリーキック、コーナーキック、ゴールキック、又はスローインを行うゲームキャラクタ58の能力に応じて、フリーキック等が行われる前の期間におけるユーザの操作対象の切り替えを制限できるようになる。
[9]例えば、あるゲームキャラクタ58(ここでは「ゲームキャラクタA」と記載する。)から他のゲームキャラクタ58(ここでは「ゲームキャラクタB」と記載する。)へとユーザの操作対象が切り替えられる場合、第1ゲームキャラクタ制御部72Aは、ゲームキャラクタBの動作を、ゲームキャラクタAとゲームキャラクタBとの間の関係に基づいて制限するようにしてもよい。
この場合、記憶部70は、ユーザチームに属するゲームキャラクタ58の組み合わせに対応づけて、それらのゲームキャラクタ58の関係(例えば連携度又は相性等)に関するパラメータを記憶する。
図15は記憶部70に記憶される連携度パラメータデータの一例を示す。図15に示す連携度パラメータデータは「ゲームキャラクタの組合せ」及び「連携度パラメータ」フィールドを含む。「ゲームキャラクタの組合せ」フィールドは、ユーザチームに属する2名のゲームキャラクタ58のIDの組合せを示す。「連携度パラメータ」フィールドには連携度パラメータが記憶される。連携度パラメータは2名のゲームキャラクタ58の連携度の高さを示す。具体的には、連携度パラメータは0〜100の数値をとり、連携度パラメータの値が高い程、2名のゲームキャラクタ58の連携度が高いことを示す。
第1ゲームキャラクタ制御部72Aは、ユーザの操作対象がゲームキャラクタAからゲームキャラクタBへの切り替えられた後のゲームキャラクタBの動作を、ゲームキャラクタA,Bの組み合わせに対応づけられたパラメータ(連携度パラメータ)に基づいて制限する。
ゲームキャラクタA,Bの組み合わせに対応づけられたパラメータ(連携度パラメータ)に基づいてゲームキャラクタBの動作を制限する場合、パラメータと動作の制限内容との対応関係を示すデータが必要となる。図16は、連携度パラメータと動作の制限内容との対応関係を示す制限内容データの一例を示している。例えば、図16に示す制限内容データでは、連携度が小さいほど、ゲームキャラクタ58の動作に課せられる制限の内容がきつくなるように、連携度パラメータ(p)の範囲と動作の制限内容との間の対応関係が設定される。
ゲームキャラクタA,Bの組み合わせに対応づけられたパラメータ(連携度パラメータ)に基づいてゲームキャラクタBの動作を制限する場合、第1ゲームキャラクタ制御部72Aは、図16に示す制限内容データを参照することによって、ゲームキャラクタA,Bの組み合わせに対応づけられたパラメータ(連携度パラメータ)に対応する制限内容を取得し、ゲームキャラクタBの動作を制限する。
なお、「ゲームキャラクタBの動作を制限する」とは、例えば、ゲームキャラクタBの移動方向を制限することを含む。
この場合、図16に示す制限内容データにおける「制限内容A」とは、例えば、ゲームキャラクタBが移動可能な方向の数をM個に制限することである。例えば、「M」は「4」であり、「制限内容A」とは、ゲームキャラクタBが移動可能な方向を、例えばXw軸正方向、Xw負方向、Zw軸正方向、及びZw軸負方向の4方向に限定することである。
また、「制限内容B」とは、例えば、ゲームキャラクタBが移動可能な方向の数をN(M<N)個に制限することである。例えば、「N」は「8」であり、「制限内容B」とは、ゲームキャラクタBが移動可能な方向を、例えばXw軸正方向と、Xw負方向と、Zw軸正方向と、Zw軸負方向と、Xw軸正方向とZw軸正方向との中間方向と、Xw軸負方向とZw軸正方向との中間方向と、Xw軸負方向とZw軸負方向との中間方向と、Xw軸正方向とZw軸負方向との中間方向と、の8方向に限定することである。
以上のようにすれば、ゲームキャラクタAからゲームキャラクタBにユーザの操作対象が切り替えられた場合、ゲームキャラクタA,Bとの関係に基づいて、ユーザの操作対象が切り替えられた後のゲームキャラクタBの動作が制限されるようになる。その結果、ゲームキャラクタA,Bの関係をユーザに実感させることが可能になる。
[10]例えば、ゲーム空間は、2つの座標軸が設定された仮想2次元空間であってもよい。すなわち、ゲーム空間は、ゲームキャラクタやボールの位置などが2つの座標要素で管理されるような仮想2次元空間であってもよい。
[11]例えば、本発明は、サッカーゲーム以外のスポーツゲーム(例えばバスケットボールゲーム、アイスホッケーゲーム、又は野球ゲーム等)にも適用することができる。また、本発明は、スポーツゲーム以外のゲームにも適用することができる。