以下、本発明の実施形態の例について図面に基づき詳細に説明する。本発明の実施形態に係るゲーム装置は、例えば家庭用ゲーム機(据置型ゲーム機)、携帯ゲーム機、携帯電話機、携帯情報端末(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は、光ディスク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に記憶されていてもよい。
コントローラ30はゲーム操作を受け付けるための汎用操作手段である。入出力処理部20は一定周期毎(例えば1/60秒ごと)にコントローラ30の各操作部材の状態をスキャンし、そのスキャン結果を表す操作信号をバス12を介してマイクロプロセッサ14に供給する。マイクロプロセッサ14は操作信号に基づいてユーザのゲーム操作を判定する。
家庭用ゲーム機11には複数のコントローラ30を有線又は無線接続することが可能になっている。このため、ゲーム装置10では、複数のユーザが一つの表示部32を見ながら一緒にゲームをプレイすることができるようになっている。
ゲーム装置10では、光ディスク36から読み出されたゲームプログラムが実行されることによって、例えば、ボールやパック等の移動物体を用いて行われる競技のゲームが実行される。
以下では、三名のユーザA,B,Cが一つの表示部32を見ながら一緒にサッカーゲームをプレイする場合を例として説明する。このサッカーゲームでは第1チームと第2チームとの試合が行われる。特に、以下では、ユーザA,Bが協力して操作する第1チームと、ユーザCが操作する第2チームと、の試合が行われる場合を例として説明する。なお、ユーザA,B,Cが協力して操作する第1チームと、コンピュータが操作する第2チームと、の試合が行われるようにしてもよい。
ゲーム装置10ではゲーム空間が主記憶16に構築される。図2はゲーム空間の一例を示す。図2に示すゲーム空間40は、互いに直交する三つの座標軸(Xw軸、Yw軸、及びZw軸)が設定された仮想的な3次元空間になっている。ゲーム空間40に配置されるオブジェクトの位置等はこれら三つの座標軸の座標値によって特定される。
図2に示すように、ゲーム空間40には、サッカーフィールドを表すオブジェクトであるフィールド42が配置される。フィールド42上にはゴールライン43a、タッチライン43b、及びハーフウェーライン43cが表される。二本のゴールライン43aと二本のタッチライン43bとに囲まれた領域であるピッチ45内で試合は行われる。
また、フィールド42上には、サッカーのゴールを表すオブジェクトであるゴール44と、第1チームに所属するサッカー選手を表すオブジェクトである選手キャラクタ46と、第2チームに所属するサッカー選手を表すオブジェクトである選手キャラクタ48と、サッカーボールを表すオブジェクトであるボール50と、が配置される。
ゴール44の一方は第1チームに対応づけられ、他方は第2チームに対応づけられる。いずれか一方のチームに対応づけられたゴール44内にボール50が移動すると、他方のチームの得点イベントが発生する。以下では、第1チームのゴール44側のゴールライン43aと、ハーフウェーライン43cと、の間の領域のことを「第1チームの自陣」と呼ぶ。同様に、第2チームのゴール44側のゴールライン43aと、ハーフウェーライン43cと、の間の領域のことを「第1チームの敵陣」と呼ぶ。なお、「第1チームの自陣」は「第2チームの敵陣」に相当し、「第1チームの敵陣」は「第2チームの自陣」に相当する。
図2では省略されているが、フィールド42上には、第1チームに所属する11体の選手キャラクタ46と、第2チームに所属する11体の選手キャラクタ48と、が配置される。
第1チームに所属する選手キャラクタ46のうちのいずれかがユーザAの操作対象に設定される。同様に、第1チームに所属する選手キャラクタ46のうちの他のいずれかがユーザBの操作対象に設定される。ユーザAの操作対象になっている選手キャラクタ46はユーザAの操作に基づいて行動し、ユーザBの操作対象になっている選手キャラクタ46はユーザBの操作に基づいて行動する。
また、第2チームに所属する選手キャラクタ48のうちのいずれかがユーザCの操作対象に設定される。ユーザCの操作対象になっている選手キャラクタ46はユーザCの操作に基づいて行動する。
以下では、ユーザの操作対象になっている選手キャラクタ46,48のことを「ユーザキャラクタ」と呼ぶ。例えば、ユーザAの操作対象になっている選手キャラクタ46のことを「ユーザキャラクタA」と呼ぶ。なお、ユーザキャラクタ以外の選手キャラクタ46,48はAI(人工知能)に従って行動する。
なお、選手キャラクタ46(48)とボール50とが近づくと、所定条件の下、その選手キャラクタ46(48)とボール50とが関連づけられる。この場合、選手キャラクタ46(48)の移動動作はドリブル動作になる。以下では、選手キャラクタ46(48)にボール50が関連づけられた状態のことを「選手キャラクタ46(48)がボール50を保持している」というように記載する。
ゲーム空間40には仮想カメラ(視点)が設定される。複数のユーザが一つの表示部32を見ながら一緒にゲームをプレイする場合には、複数のユーザに対応する複数の仮想カメラ52がゲーム空間40に設定される。例えば、三名のユーザA,B,Cが一つの表示部32を見ながら一緒にゲームをプレイする場合には、図2に示すように、ユーザAに対応する仮想カメラ52aと、ユーザBに対応する仮想カメラ52bと、ユーザCに対応する仮想カメラ52cと、がゲーム空間40に設定される。
図3は表示部32に表示される画面の一例を示す。図3に示す画面は三つのゲーム画面60a,60b,60cと情報画面64とを含んでいる。なお、以下では、図3に示すように、画面全体の幅をWで表し、ゲーム画面60a,60b,60cの高さをHで表す。
情報画面64はサッカーゲームの現在の状況に関する情報を表示する画面であり、ユーザA,B,Cに共通の画面である。情報画面64には、経過時間66aと、得点66bと、レーダー66cと、が表示される。レーダー66cはYw軸上方から見たフィールド42を縮小して表示したものであり、各選手キャラクタ46,48及びボール50の位置を案内する画像である。図3では省略されているが、レーダー66c内には、選手キャラクタ46,48及びボール50の位置を示す画像(例えば点画像)が表示される。
ゲーム画面60a,60b,60cは、それぞれ、ユーザA,B,Cが操作するためのゲーム画面である。ゲーム画面60a,60b,60cに表示されるカーソル62a,62b,62cは、それぞれ、ユーザキャラクタA,B,Cを案内する役割を果たしている。カーソル62aは選手キャラクタ46aがユーザキャラクタAであることを示している。同様に、カーソル62bは選手キャラクタ46bがユーザキャラクタBであることを示しており、カーソル62cは選手キャラクタ48cがユーザキャラクタCであることを示している。
ゲーム画面60aはユーザAが操作するためのゲーム画面である。以下では、ユーザAが操作するためのゲーム画面60aのことを単に「ユーザAのゲーム画面60a」というように記載する。ユーザAのゲーム画面60aにはユーザキャラクタAの周辺領域が表示される。すなわち、ゲーム画面60aには、ユーザAに対応する仮想カメラ52aからゲーム空間40を見た様子を表す画像が表示される。仮想カメラ52aは、ユーザAが操作するユーザキャラクタAを常にゲーム画面60aに表示するために、ユーザキャラクタAの位置に基づいてゲーム空間40内を移動する。
例えば、仮想カメラ52aは、ユーザキャラクタAと一定の位置関係を有するように設定され、仮想カメラ52aの注視点はユーザキャラクタAの足元位置に設定される。その結果、ユーザキャラクタAの足元位置がゲーム画面60aの中心点に表示される。「ゲーム画面60aの中心点」とは、ゲーム画面60aの上端からの距離とゲーム画面60aの下端からの距離とが等しく、かつ、ゲーム画面60aの左端からの距離とゲーム画面60aの右端からの距離とが等しいような点である。なお、必ずしも、ユーザキャラクタAの足元位置がゲーム画面60aの中心点に表示される必要はなく、例えば、ユーザキャラクタAの足元位置はゲーム画面60aの中央付近に表示されるようにしてもよい。
同様に、ゲーム画面60bはユーザBが操作するためのゲーム画面である。以下では、ユーザBが操作するためのゲーム画面60bのことを単に「ユーザBのゲーム画面60b」というように記載する。ユーザBのゲーム画面60bにはユーザキャラクタBの周辺領域が表示される。すなわち、ゲーム画面60bには、ユーザBに対応する仮想カメラ52bからゲーム空間40を見た様子を表す画像が表示される。仮想カメラ52bは、ユーザBが操作するユーザキャラクタBを常にゲーム画面60bに表示するために、ユーザキャラクタBの位置に基づいてゲーム空間40内を移動する。
また同様に、ゲーム画面60cはユーザCが操作するためのゲーム画面である。以下では、ユーザCが操作するためのゲーム画面60cのことを単に「ユーザCのゲーム画面60c」というように記載する。ユーザCのゲーム画面60cにはユーザキャラクタCの周辺領域が表示される。すなわち、ゲーム画面60cには、ユーザCに対応する仮想カメラ52cからゲーム空間40を見た様子を表す画像が表示される。仮想カメラ52cは、ユーザCが操作するユーザキャラクタCを常にゲーム画面60cに表示するために、ユーザキャラクタCの位置に基づいてゲーム空間40内を移動する。
図3に示す例では三つのゲーム画面60a〜60cの大きさ(面積)が同じになっている。すなわち、ゲーム画面60a〜60cの高さと幅は一定値で等しくなっている。ユーザの数をnとすると、原則として、ゲーム画面60a〜60cの幅はW/nになる。図3に示す例では、ユーザの数が3名であるため、ゲーム画面60a〜60cの幅がそれぞれW/3になっている。以下では、ゲーム画面60a〜60cが同じ大きさに設定された画面(図3参照)のことを「通常画面」と呼ぶ。
特に、本実施形態では、各ゲーム画面60a〜60cの大きさが、ユーザキャラクタA,B,Cの位置と、他の選手キャラクタ46,48の位置と、に基づいて変化するようになっている。
より具体的には、ユーザAが操作するユーザキャラクタAの周辺に、第2チーム(敵チーム)に所属する選手キャラクタ48が位置していない場合に、ユーザAのゲーム画面60aが大きくなるようになっている。図4は、その場合に表示部32に表示される画面の一例を示す。図4では、ユーザAのゲーム画面60aの大きさが他のゲーム画面60b,60bに比べて大きくなっている。すなわち、ゲーム画面60aの幅がW/2になっており、ゲーム画面60aの大きさ(幅)は通常画面における大きさ(幅)の1.5倍になっている。一方、ゲーム画面60b,60cの幅がそれぞれW/4になっており、ゲーム画面60b,60cの大きさ(幅)が通常画面における大きさ(幅)よりも小さくなっている。
この場合、ユーザAのゲーム画面60aが大きくなることによって、ユーザAは、第2チームに所属する選手キャラクタ48がユーザキャラクタAの周辺に位置していないことを把握し易くなる。なお、ユーザAだけでなく、ユーザB,Cも第2チームに所属する選手キャラクタ48がユーザキャラクタAの周辺に位置していないことを把握し易くなる。
なお、上記と同様に、ユーザBが操作するユーザキャラクタBの周辺に、第2チーム(敵チーム)に所属する選手キャラクタ48が位置していない場合には、ユーザBのゲーム画面60bが大きくなる。また、ユーザCが操作するユーザキャラクタCの周辺に、第1チーム(敵チーム)に所属する選手キャラクタ46が位置していない場合には、ユーザCのゲーム画面60cが大きくなる。
以下では、ユーザAのゲーム画面60aが他のゲーム画面60b,60cよりも大きく設定された画面(図4参照)のことを「特別画面A」と呼ぶ。同様に、ユーザBのゲーム画面60bが他のゲーム画面60a,60cよりも大きく設定された画面のことを「特別画面B」と呼び、ユーザCのゲーム画面60cが他のゲーム画面60a,60bよりも大きく設定された画面のことを「特別画面C」と呼ぶ。
図5は、ゲーム装置10で実現される機能を示す機能ブロック図である。図5に示すように、ゲーム装置10はゲーム状況データ記憶部70、更新部72、及び表示制御部74を含む。ゲーム状況データ記憶部70は例えば主記憶16によって実現され、更新部72及び表示制御部74はマイクロプロセッサ14が光ディスク36から読み出されたプログラムを実行することによって実現される。
ゲーム状況データ記憶部70は現在のゲーム状況を示すゲーム状況データを記憶する。例えば、下記に示すようなデータがゲーム状況データに含まれる。
(a)各選手キャラクタ46,48の状態データ
(b)ボール50の状態データ(例えば位置、移動方向、及び移動速度など)
(c)仮想カメラ52の状態データ(例えば位置、視線方向、及び画角など)
(d)両チームの得点データ
(e)経過時間データ
なお、選手キャラクタ46,48の状態データには、例えば、選手キャラクタ46,48の位置、向き(正面方向)、姿勢、動作種類、移動方向、移動速度などが含まれる。その他、選手キャラクタ46,48の状態データには、例えば、選手キャラクタ46,48がユーザの操作対象に設定されているか否かを示すデータや、選手キャラクタ46,48がボール50を保持しているか否かを示すデータも含まれる。
更新部72は、ゲーム状況データ記憶部70に記憶されるゲーム状況データを更新する。例えば、更新部72は、ユーザAが行った移動指示操作に基づいて、ユーザキャラクタAの正面方向や移動方向を更新したり、ユーザキャラクタAを移動させたりする。
表示制御部74は、複数のユーザに対応する複数のゲーム画面を一つの表示部32に表示する。また、表示制御部74は、各ゲーム画面に、そのゲーム画面に対応するユーザの操作対象キャラクタの位置に基づいて設定される仮想カメラからゲーム空間を見た様子を表す画像を表示する。
本実施形態では、例えば図3に示すように、三名のユーザA,B,Cに対応する三つのゲーム画面60a,60b,60cが一つの表示部32に表示される。また、ユーザAに対応する仮想カメラ52aがユーザキャラクタAの位置に基づいて設定され、仮想カメラ52aからゲーム空間40を見た様子を表す画像が、ユーザAのゲーム画面60aに表示される。同様に、ユーザBに対応する仮想カメラ52bからゲーム空間40を見た様子を表す画像が、ユーザBのゲーム画面60bに表示され、ユーザCに対応する仮想カメラ52cからゲーム空間40を見た様子を表す画像が、ユーザCのゲーム画面60cに表示される。
表示制御部74は変更部76を含む。変更部76は、表示部32に表示される少なくとも一つのゲーム画面の大きさを、そのゲーム画面に対応するユーザの操作対象キャラクタの位置に基づいて設定される注目領域内に他のゲームキャラクタが位置するか否かの判定結果に基づいて変更する。
図6は注目領域の一例について説明するための図である。図6に示すように、注目領域80は、例えば、操作対象キャラクタの位置82からの距離が基準距離(r)以下であるような領域である。
本実施形態の場合、変更部76は、ユーザAのゲーム画面60aの大きさを、ユーザキャラクタAの位置に基づいて設定される注目領域80内に他の選手キャラクタが位置しているか否かの判定結果に基づいて変更する。
「他の選手キャラクタ」とは、例えば、第2チーム(敵チーム)に所属する選手キャラクタ48(敵キャラクタ)である。なお、「他の選手キャラクタ」とは、例えば、第2チームに所属する選手キャラクタ48と、第1チームに所属する選手キャラクタ46のうちのユーザキャラクタA以外の選手キャラクタ46と、であってもよい。ここでは、「他の選手キャラクタ」が敵キャラクタ(第2チームに所属する選手キャラクタ)であることとして説明する。
例えば、変更部76は、ユーザAのゲーム画面60aの大きさを変更するために満足されるべき条件(以下「発動条件」と呼ぶ。)が満足されたか否かを、ユーザキャラクタAの位置に基づいて設定される注目領域80内に他の選手キャラクタが位置しているか否かの判定結果に基づいて判定する。そして、発動条件が満足されたと判定された場合、変更部76はゲーム画面60aの大きさを変更する。
本実施形態の場合、上記「発動条件」は、注目領域80内に位置している敵キャラクタの数に関する条件であり、変更部76は、ユーザAのゲーム画面60aの大きさを、注目領域80内に位置している敵キャラクタの数に基づいて変更する。
より具体的には、上記「発動条件」は、注目領域80内に位置している敵キャラクタの数が基準数以下であるか否かの条件であり、変更部76は、注目領域80内に位置する敵キャラクタの数が基準数以下である場合のゲーム画面60aの大きさを、注目領域80内に位置する敵キャラクタの数が基準数より多い場合に比べて大きく設定する。この場合の「基準数」は例えば「0」に設定される。
このようにすれば、例えば、ユーザキャラクタAに対応する注目領域80内に位置する敵キャラクタの数が0である場合に、ユーザAのゲーム画面60aが大きくなる。その結果、ユーザキャラクタAの周辺に敵キャラクタ(第2チームに所属する選手キャラクタ48)が位置していないこと(すなわち、ユーザキャラクタAがいわゆるフリーの状態であること)をユーザAは把握し易くなる。また、ユーザAのゲーム画面60aのサイズが大きくなるため、ユーザキャラクタAの周辺に敵キャラクタが位置していないこと(すなわち、ユーザキャラクタAがフリーの状態であること)を他のユーザB,Cも容易に把握することができる。
また、上記と反対に、上記「発動条件」を、注目領域80内に位置している敵キャラクタの数が基準数より多いか否かの条件とし、変更部76は、注目領域80内に位置する敵キャラクタの数が基準数より多い場合のゲーム画面60aの大きさを、注目領域80内に位置する敵キャラクタの数が基準数以下である場合に比べて大きく設定するようにしてもよい。この場合の「基準数」は例えば「5」に設定される。
このようにすれば、例えば、ユーザキャラクタAに対応する注目領域80内に位置する敵キャラクタの数が5より多い場合に、ユーザAのゲーム画面60aが大きくなる。その結果、ユーザキャラクタAの周辺に位置している敵キャラクタ(第2チームに所属する選手キャラクタ48)を把握し易くなるように図ることが可能になる。
変更部76は、ユーザB,Cに対応するゲーム画面60b,60cの大きさもゲーム画面60aと同様にして変更する。例えば、変更部76は、ユーザBのゲーム画面60bの大きさを、ユーザキャラクタBの位置に基づいて設定される注目領域80内に他の選手キャラクタが位置しているか否かの判定結果に基づいて変更する。例えば、変更部76は、ユーザCのゲーム画面60cの大きさを、ユーザキャラクタCの位置に基づいて設定される注目領域80内に他の選手キャラクタが位置しているか否かの判定結果に基づいて変更する。
次に、ゲーム装置10が実行する処理について説明する。図7はゲーム装置10が所定時間(例えば1/60秒)ごとに実行する処理のうちの、本発明に関連する処理を主に示すフロー図である。マイクロプロセッサ14は光ディスク36から読み出されたプログラムに従って、図7に示す処理を実行する。マイクロプロセッサ14が図7に示す処理を実行することによって、更新部72及び表示制御部74が実現される。
図7に示すように、まずマイクロプロセッサ14(更新部72)はゲーム状況データを更新する(S101)。例えば、マイクロプロセッサ14は、ユーザAが行った操作に基づいてユーザキャラクタAの状態データ(位置等)を更新する。同様に、マイクロプロセッサ14は、ユーザBが行った操作に基づいてユーザキャラクタBの状態データを更新し、ユーザCが行った操作に基づいてユーザキャラクタCの状態データを更新する。
さらに、マイクロプロセッサ14は、AI(人工知能)に従って、ユーザキャラクタA,B,C以外の選手キャラクタ46,48の状態データを更新する。また、いずれかの選手キャラクタ46,48によってボール50が蹴られた場合、マイクロプロセッサ14はボール50の位置や移動方向等を更新する。
その後、マイクロプロセッサ14は、ユーザキャラクタAに対応する注目領域80内に位置している敵キャラクタの数(Ea)を取得する(S102)。「ユーザキャラクタAに対応する注目領域80」とは、ユーザキャラクタAからの距離が基準距離(r)以下である領域である(図6参照)。また、ユーザキャラクタAは第1チームに所属するため、この場合の「敵キャラクタ」は第2チームに所属する選手キャラクタ48である。このステップS102の処理はゲーム状況データに基づいて実行される。
同様に、マイクロプロセッサ14は、ユーザキャラクタBに対応する注目領域80内に位置している敵キャラクタの数(Eb)を取得する(S103)。「ユーザキャラクタBに対応する注目領域80」とは、ユーザキャラクタBからの距離が基準距離(r)以下である領域である(図6参照)。また、ユーザキャラクタBも第1チームに所属するため、この場合の「敵キャラクタ」も第2チームに所属する選手キャラクタ48である。このステップS103の処理もゲーム状況データに基づいて実行される。
さらに、マイクロプロセッサ14は、ユーザキャラクタCに対応する注目領域80内に位置している敵キャラクタの数(Ec)を取得する(S104)。「ユーザキャラクタCに対応する注目領域80」とは、ユーザキャラクタCからの距離が基準距離(r)以下である領域である(図6参照)。また、ユーザキャラクタCは第2チームに所属するため、この場合の「敵キャラクタ」は第1チームに所属する選手キャラクタ46である。このステップS104の処理もゲーム状況データに基づいて実行される。
その後、マイクロプロセッサ14は、S102〜S104で取得されたEa,Eb,Ecのいずれか一つが0であるか否かを判定する(S105)。ステップS105における判定結果が「偽」である場合、マイクロプロセッサ14(表示制御部74)は通常画面(図3参照)を表示部32に表示する(S106)。
通常画面は下記に説明するようにして生成される。図8A及び図8Bは通常画面の生成方法について説明するための図である。
まず、マイクロプロセッサ14はユーザAのゲーム画面60aを生成する。具体的には、マイクロプロセッサ14は、ユーザAに対応する仮想カメラ52aからゲーム空間40を見た様子を表す視野画像をゲーム状況データに基づいて生成し、さらに、カーソル62a,62b,62cを視野画像上に必要に応じて描画する。
なお、この場合、視野画像の幅がW以上の所定値になり、かつ、高さがH以上の所定値になるように、仮想カメラ52aのカメラワーク(ズーム等)が設定される。図8Aは、上記のようにして生成された視野画像の一例を示す。図8Aに示す視野画像の幅はWになっており、高さはHになっている。
その後、マイクロプロセッサ14は、ゲーム画面60aとして表示する画像を上記の視野画像(図8A参照)から取得する。例えば図8Bに示すように、マイクロプロセッサ14は、視野画像のうちの、左端からの距離がΔW1以下である領域90lと、右端からの距離がΔW1以下である領域90rと、が取り除かれた画像92を取得する。ここで、ΔW1は、光ディスク36に記憶される下記式(1)によって決定される。なお、「n」はユーザの数である。
このようにして取得される画像92の幅はW/nとなり、高さはHとなる。画像92はゲーム画面60aとして通常画面に表示される。
また、マイクロプロセッサ14は、ゲーム画面60aと同様にして、ユーザBのゲーム画面60bを生成する。すなわち、マイクロプロセッサ14は、ユーザBに対応する仮想カメラ52bからゲーム空間40を見た様子を表す視野画像を生成し、ゲーム画面60bとして表示する画像をこの視野画像から取得する。
さらに、マイクロプロセッサ14は、ゲーム画面60aと同様にして、ユーザCのゲーム画面60cを生成する。すなわち、マイクロプロセッサ14は、ユーザCに対応する仮想カメラ52cからゲーム空間40を見た様子を表す視野画像を生成し、ゲーム画面60cとして表示する画像をこの視野画像から取得する。
また、マイクロプロセッサ14は情報画面64をゲーム状況データに基づいて生成する。ステップS106では、上記のようにして生成されたゲーム画面60a〜60cと情報画面64とに基づいて通常画面が生成され、通常画面が表示部32に表示される。
一方、ステップS105においてEa,Eb,Ecのいずれか一つが0であると判定された場合、マイクロプロセッサ14はEaが0であるか否かを判定する(S107)。Eaが0である場合、マイクロプロセッサ14(変更部76)は特別画面A(図4参照)を表示部32に表示する(S108)。
特別画面Aは下記に説明するようにして生成される。図9A及び図9Bは特別画面Aの生成方法について説明するための図である。
まず、マイクロプロセッサ14はユーザAのゲーム画面60aを生成する。すなわち、ステップS106の場合と同様にして、マイクロプロセッサ14は、ユーザAに対応する仮想カメラ52aからゲーム空間40を見た様子を表す視野画像を生成し、カーソル62a,62b,62cを視野画像上に必要に応じて描画する(図8A参照)。
その後、マイクロプロセッサ14は、ユーザAのゲーム画面60aとして表示する画像を上記の視野画像から取得する。例えば図9Aに示すように、マイクロプロセッサ14は、視野画像のうちの、左端からの距離がΔW2以下である部分94lと、右端からの距離がΔW2以下である部分94rと、が取り除かれた画像96を取得する。ΔW2は、光ディスク36に記憶される下記式(2)によって決定される。
このようにして取得される画像96の幅は(W*3)/(n*2)となり、高さはHとなる。画像96はゲーム画面60aとして特別画面Aに表示される。
また、マイクロプロセッサ14はユーザBのゲーム画面60bを生成する。すなわち、ステップS106の場合と同様にして、マイクロプロセッサ14は、ユーザBに対応する仮想カメラ52bからゲーム空間40を見た様子を表す視野画像を生成し、カーソル62a,62b,62cを視野画像上に必要に応じて描画する。
その後、マイクロプロセッサ14は、ユーザBのゲーム画面60bとして表示する画像を上記の視野画像から抽出する。例えば図9Bに示すように、マイクロプロセッサ14は、視野画像のうちの、左端からの距離がΔW3以下である部分98lと、右端からの距離がΔW3以下である部分98rと、が取り除かれた画像99を取得する。ΔW3は、光ディスク36に記憶される下記式(3)によって決定される。
このようにして取得される画像99の幅はΔW2となり、高さはHとなる。画像99はゲーム画面60bとして特別画面Aに表示される。
また、マイクロプロセッサ14は、ゲーム画面60bと同様にして、ユーザCのゲーム画面60cを生成する。つまり、マイクロプロセッサ14は、ユーザCに対応する仮想カメラ52cからゲーム空間40を見た様子を表す視野画像を生成し、カーソル62a,62b,62cを必要に応じて視野画像上に描画する。
その後、マイクロプロセッサ14は、ユーザCのゲーム画面60cとして表示する画像を上記の視野画像から抽出する。マイクロプロセッサ14は、図9Bに示した場合と同様にして、視野画像のうちの、左端からの距離がΔW3以下である部分98lと、右端からの距離がΔW3以下である部分98rと、が取り除かれた画像99を取得する。このようにして取得される画像99の幅はΔW2となり、高さはHとなる。この画像99はゲーム画面60cとして特別画面Aに表示される。
さらに、マイクロプロセッサ14は情報画面64をゲーム状況データに基づいて生成する。ステップS108では、上記のようにして生成されたゲーム画面60a〜60cと情報画面64とに基づいて特別画面A(図4参照)が生成され、特別画面Aが表示部32に表示される。
ステップS107においてEaが0でないと判定された場合、マイクロプロセッサ14はEbが0であるか否かを判定する(S109)。Ebが0である場合、マイクロプロセッサ14(変更部76)は特別画面Bを表示部32に表示する(S110)。特別画面Bは特別画面Aと同様にして生成される。
ステップS109においてEbが0でないと判定された場合、すなわち、Ecが0である場合、マイクロプロセッサ14(変更部76)は特別画面Cを表示部32に表示する(S111)。特別画面Cも特別画面Aと同様にして生成される。
以上に説明したゲーム装置10によれば、複数のユーザ(例えばユーザA〜C)に対応する複数のゲーム画面が一つの表示部32に表示される場合において、操作対象キャラクタ(例えばユーザキャラクタA〜C)の周辺に他のゲームキャラクタが位置しているか否かを把握し易くすることが可能になる。例えば、操作対象キャラクタがフリーの状態であるか否かを把握し易くすることが可能になる。また、ゲーム装置10によれば、ユーザA,B,C各々のゲーム画面60a,60b,60cのサイズから、その時点の操作対象キャラクタ(ユーザキャラクタA,B,C)のおおよその状態を把握できるようになる。
さらに、ゲーム装置10では、例えば図4に示す画面が表示される場合に、図3に示す画面が表示される場合と比較して、画面に表示される選手キャラクタ46,48の数が少なくなるため、画面を表示するための処理負荷が軽減される。
なお、本発明は以上に説明した実施の形態に限定されるものではない。
[A]例えば、ゲーム画面60a〜60c及び情報画面64の配置の仕方は図3,4に示す例に限られない。例えば図3,4では、ゲーム画面60a〜60cが横に並ぶようにして表示されているが、ゲーム画面60a〜60cを縦に並ぶようにして表示してもよい。
[B]また例えば、上記式(1)〜(3)は、ユーザの数とゲーム画面60a〜60cの大きさ(幅)との関係に関するデータに相当しているが、このデータは数式形式のデータでなくてもよく、テーブル形式のデータであってもよい。
[C]また例えば、注目領域80は、ユーザの操作対象キャラクタの位置と、ユーザの操作対象キャラクタの正面方向又は進行方向と、に基づいて設定されるようにしてもよい。図10はこの場合の注目領域80の一例を示す。
図10に示す例では、注目領域80の中心点86が、ユーザの操作対象キャラクタの位置82から、その操作対象キャラクタの正面方向(又は進行方向)84に、所定距離(d)だけ移動してなる位置に設定されている。そして、注目領域80は、中心点86からの距離が基準距離(r)以下である領域になっている。
この場合、例えば、図7のステップS102における「ユーザキャラクタAに対応する注目領域」とは、「ユーザキャラクタAの位置から、ユーザキャラクタAの正面方向(又は進行方向)に、所定距離(d)だけ移動してなる位置」を中心とする半径(r)の領域となる。図7のステップS103,S104における「ユーザキャラクタB,Cに対応する注目領域」も同様である。
このようにすれば、ユーザキャラクタAの正面方向(又は進行方向)に設定された注目領域80に位置する敵キャラクタの数が0である場合にゲーム画面60aが大きく表示されるようになる。その結果、ユーザキャラクタAの正面方向(又は進行方向)に敵キャラクタが位置していないことを把握し易くすることが可能になる。
なお、この場合、表示制御部74は、例えば特別画面A内のゲーム画面60aにおいて、ユーザキャラクタAの表示位置と、ゲーム画面60aの中心点と、の関係をユーザキャラクタAの正面方向又は進行方向に基づいて変えるようにしてもよい。
図11はこの場合の特別画面Aの一例を示す。図11に示す特別画面A内のゲーム画面60aでは、ゲーム画面60aの中心点68から、ユーザキャラクタAの正面方向(又は進行方向)84と逆方向に移動した位置に、ユーザキャラクタA(選手キャラクタ46a)が表示されている。より詳しくは、図10に示す注目領域80の中心点86がゲーム画面60aの中心点68に表示されている。このようにすれば、ユーザキャラクタAの正面方向(又は進行方向)に設定された注目領域80がゲーム画面60aに表示されるため、ユーザキャラクタAの正面方向(又は進行方向)に敵キャラクタが位置していないことをさらに把握し易くすることが可能になる。
ところで、この場合、図7のステップS108において、仮想カメラ52aの視野画像(図8A等)を生成する場合に、仮想カメラ52aの注視点を注目領域80の中心点86に設定するようにすればよい。
または、仮想カメラ52aの注視点をユーザキャラクタAの足元位置に設定した状態で視野画像(図8A等)を生成した後、ユーザAのゲーム画面60aに表示する画像を視野画像から取得する際に、ゲーム画面60aの中心点68が注目領域80の中心点86に一致するようにして、ゲーム画面60aに表示する画像を視野画像から取得するようにしてもよい。
なお、特別画面Aにおけるゲーム画面60aと同様に、特別画面B内の、ユーザBのゲーム画面60bでは、ユーザキャラクタBの表示位置と、ゲーム画面60bの中心点と、の関係をユーザキャラクタBの正面方向又は進行方向に基づいて変えるようにしてもよい。同様に、特別画面C内の、ユーザCのゲーム画面60cでは、ユーザキャラクタCの表示位置と、ゲーム画面60cの中心点と、の関係をユーザキャラクタCの正面方向又は進行方向に基づいて変えるようにしてもよい。
[D]また例えば、ユーザキャラクタAがボール50を保持している場合には、そのユーザAのゲーム画面60aの大きさを変更することを制限するようにしてもよい。ユーザキャラクタB,C及びゲーム画面60b,60cについても同様である。
例えば、ユーザキャラクタAの位置に基づいて設定される注目領域80内に位置する敵キャラクタの数が基準数(例えば「0」)以下である場合であっても、ユーザキャラクタAがボール50を保持している場合には、変更部76はゲーム画面60aの大きさを大きくしないようにしてもよい。ユーザキャラクタAがボール50を保持している場合にゲーム画面60aの大きさが変化してしまうと、ユーザAが戸惑ってしまうおそれがあるが、上記のようにすれば、このような不都合が生じないように図ることが可能になる。
[E]また例えば、ユーザキャラクタAがフリーの状態であることをユーザA,B,Cに知らせる必要性が低い場合には、変更部76は、ユーザAのゲーム画面60aの大きさを大きくしないようにしてもよい。ユーザキャラクタB,C及びゲーム画面60b,60cについても同様である。
[E−1]例えば、ユーザキャラクタAのポジションがゴールキーパー(GK)である場合、ユーザキャラクタAがフリーの状態であることをユーザA,B,Cに知らせる必要性は低い。また、そもそも、ゴールキーパーの周辺に位置している敵キャラクタの数は少なくなりやすく、ゴールキーパーはフリー状態になりやすい。このため、ユーザキャラクタAのポジションがゴールキーパーである場合には、ゲーム画面60aが大きくなっている時間が長くなってしまうおそれがある。
このため、変更部76は、ユーザの操作対象キャラクタの役割(ポジション)を考慮して、そのユーザに対応するゲーム画面の大きさを変更するようにしてもよい。すなわち、変更部76は、ゲーム画面の大きさを、そのゲーム画面に対応するユーザの操作対象キャラクタの位置に基づいて設定される注目領域内に他のゲームキャラクタが位置しているか否かの判定結果と、その操作対象キャラクタの役割が所定の役割であるか否かの判定結果と、に基づいて変更するようにしてもよい。
なお、「役割」とは操作対象キャラクタに課せられている役割であり、例えば、サッカーゲームの場合、フォワード(FW)、ミッドフィルダー(MF)、ディフェンダー(DF)、及びゴールキーパー等のポジションが「役割」に相当する。
例えば、この態様における変更部76は、ユーザキャラクタAの位置に基づいて設定される注目領域80内に位置する敵キャラクタの数が基準数(例えば「0」)以下である場合であっても、ユーザキャラクタAのポジション(役割)がゴールキーパー(所定の役割)である場合には、ゲーム画面60aの大きさを大きくすることを制限する。
[E−2]また例えば、ユーザキャラクタAが自陣内に位置している場合には、ユーザキャラクタAが敵陣内に位置している場合に比べて、ユーザキャラクタAがフリーの状態であることをユーザA,B,Cに知らせる必要性は低い。
このため、変更部76は、ユーザの操作対象キャラクタの位置を考慮して、そのユーザに対応するゲーム画面の大きさを変更するようにしてもよい。すなわち、変更部76は、ゲーム画面の大きさを、そのゲーム画面に対応するユーザの操作対象キャラクタの位置に基づいて設定される注目領域内に他のゲームキャラクタが位置しているか否かの判定結果と、その操作対象キャラクタが所定の領域内に位置しているか否かの判定結果と、に基づいて変更するようにしてもよい。
例えば、この態様における変更部76は、ユーザキャラクタAの位置に基づいて設定される注目領域80内に位置する敵キャラクタの数が基準数(例えば「0」)以下である場合であっても、ユーザキャラクタAが自陣(所定の領域)内に位置している場合には、ゲーム画面60aの大きさを大きくすることを制限する。
[E−3]また例えば、ボール50が敵陣内に位置しており、かつ、ユーザキャラクタAが自陣内に位置しているような場合、ユーザキャラクタAがフリーの状態であることをユーザA,B,Cに知らせる必要性が特に低い。
このため、変更部76は、ユーザの操作対象キャラクタの位置と、ボール50の位置とを考慮して、そのユーザに対応するゲーム画面の大きさを変更するようにしてもよい。すなわち、変更部76は、ゲーム画面の大きさを、そのゲーム画面に対応するユーザの操作対象キャラクタの位置に基づいて設定される注目領域内に他のゲームキャラクタが位置しているか否かの判定結果と、その操作対象キャラクタが所定の第1領域内に位置しているか否かの判定結果と、ボール50が所定の第2領域内に位置しているか否かの判定結果と、に基づいて変更するようにしてもよい。
例えば、この態様における変更部76は、ユーザキャラクタAの位置に基づいて設定される注目領域80内に位置する敵キャラクタの数が基準数(例えば「0」)以下である場合であっても、ユーザキャラクタAが自陣(所定の第1領域)内に位置しており、かつ、ボール50が敵陣(所定の第2領域)内に位置している場合には、ゲーム画面60aの大きさを大きくすることを制限する。
[E−4]なお、例えば、ユーザキャラクタAのポジションがフォワードであって、かつ、ユーザキャラクタAが敵陣(特に第2チームのゴール44付近の領域)内に位置している場合には、ユーザキャラクタAがフリーの状態であることをユーザA,B,Cに知らせる必要性が特に高い。このため、このような場合にのみ、ゲーム画面60aを大きくするようにしてもよい。
この態様における変更部76は、ユーザの操作対象キャラクタの役割(ポジション)及び位置を考慮して、そのユーザに対応するゲーム画面の大きさを変更する。すなわち、変更部76は、ゲーム画面の大きさを、そのゲーム画面に対応するユーザの操作対象キャラクタの位置に基づいて設定される注目領域内に他のゲームキャラクタが位置しているか否かの判定結果と、その操作対象キャラクタの役割が所定の役割であるか否かの判定結果と、その操作対象キャラクタが所定の領域内に位置しているか否かの判定結果と、に基づいて変更する。
例えば、この態様における変更部76は、ユーザキャラクタAの位置に基づいて設定される注目領域80内に位置する敵キャラクタの数が基準数(例えば「0」)以下であり、ユーザキャラクタAのポジション(役割)がフォワード(所定の役割)であり、かつ、ユーザキャラクタAが敵陣(所定の領域)内に位置している場合にのみ、ゲーム画面60aの大きさを大きくする。
[F]また、図7に示す処理では、ステップS105の処理が存在するため、例えばゲーム画面60aのみに関して発動条件(すなわち、ユーザキャラクタAの位置に基づいて設定される注目領域80内に位置する敵キャラクタの数が0以下であるか否かの条件)が満足された場合に限って、ゲーム画面60aの大きさが大きくなるようになっていた(ステップS108参照)。例えば、ゲーム画面60a,60bの両方に関して発動条件が満足された場合には、ゲーム画面60a,60bのいずれの大きさも大きくならないようになっていた(ステップS106参照)。
しかしながら、ゲーム画面60a,60bの両方に関して発動条件が満足されたような場合には、ゲーム画面60a,60bの優先度を判断し、ゲーム画面60a,60bのうちで最も優先度が高いゲーム画面の大きさを大きくするようにしてもよい。この場合、ゲーム画面60a,60bの優先度は、例えば、ユーザキャラクタA,Bの役割とユーザキャラクタA,Bの位置とのうちの少なくとも一つに基づいて判断されるようにすればよい。
[F−1]例えば、変更部76は、ポジション(役割)に関する優先関係を予め定めてなる判断基準情報に基づいて、ユーザキャラクタA,Bのポジション(役割)を比較することによって、ゲーム画面60a,60bの優先度を判断する。なお、上記の判断基準情報は記憶部(例えば光ディスク36)に記憶される。また、この判断基準情報では、例えば、主に攻撃を行うことを要求されるポジション(例えばフォワード)の優先度が、主に守備を行うことを要求されるポジション(例えばディフェンダー及びゴールキーパー)の優先度よりも高く設定される。
例えば、ユーザキャラクタAのポジションがフォワードであり、かつ、ユーザキャラクタBのポジションがディフェンダ−である場合、変更部76はゲーム画面60aの優先度がゲーム画面60bの優先度よりも高いと判断する。
[F−2]また例えば、変更部76は、位置に関する優先関係を予め定めてなる判断基準情報に基づいて、ユーザキャラクタA,Bの位置を比較することによって、ゲーム画面60a,60bの優先度を判断する。なお、上記の判断基準情報も記憶部(例えば光ディスク36)に記憶される。また、この判断基準情報では、例えば、ユーザキャラクタが敵陣内に位置している場合の優先度がユーザキャラクタが自陣内に位置している場合の優先度よりも高く設定される。
例えば、ユーザキャラクタAが敵陣内に位置しており、かつ、ユーザキャラクタBが自陣内に位置している場合、変更部76はゲーム画面60aの優先度がゲーム画面60bの優先度よりも高いと判断する。
[F−3]なお、上記態様[F−1]及び[F−2]を組み合わせるようにしてもよい。例えば、まず、ユーザキャラクタA,Bの役割に基づいて、ゲーム画面60a,60bの優先度を判断するようにしてもよい。そして、ゲーム画面60a,60bの優先度が同じと判断された場合に、さらに、ユーザキャラクタA,Bの位置に基づいて、ゲーム画面60a,60bの優先度を判断するようにしてもよい。なお、ユーザキャラクタA,Bの位置に基づく優先度の判断を先に行った後に、ユーザキャラクタA,Bの役割に基づく優先度の判断を行うようにしてもよい。
[G]また、以上の説明では、例えば、通常画面及び特別画面A〜Cにおけるゲーム画面60aを生成する場合に、ユーザAに対応する仮想カメラ52aの視野画像として、ゲーム画面60aよりも大きい視野画像(図8A参照)を生成し、この視野画像の一部を、ゲーム画面60aとして表示する画像として取得する方法を採用していた。
しかしながら、通常画面及び特別画面A〜Cにおけるゲーム画面60aを生成する方法はこの方法に限られない。例えば、仮想カメラ52aのカメラワーク(例えば画角等)を変えることによって、通常画面及び特別画面A〜Cにおけるゲーム画面60aを生成するようにしてもよい。例えば、仮想カメラ52aの視野画像が、図8Bに示す画像92又は図9Aに示す画像96になるように、仮想カメラ52aのカメラワーク(例えば画角等)を調整することによって、図8Bに示す画像92又は図9Aに示す画像96を生成するようにしてもよい。通常画面及び特別画面A〜Cにおけるゲーム画面60b,60cについても同様である。
[H]また、ゲーム空間は、選手キャラクタ46,48やボール50の位置などが2つの座標要素で管理されるような2次元ゲーム空間であってもよい。
[I]また、本発明は、サッカーゲーム以外のスポーツゲームを実行するゲーム装置10にも適用することができる。例えば、バスケットボールゲーム、アイスホッケーゲーム、アメリカンフットボールゲーム、野球ゲーム、テニスゲーム、又は卓球ゲームなどを実行するゲーム装置10にも本発明は適用することができる。また、本発明はスポーツゲーム以外のゲーム(例えばアクションゲーム、ロールプレイングゲーム、又はシミュレーションゲーム)を実行するゲーム装置10にも適用することができる。