以下、本発明の実施形態の一例について図面に基づき詳細に説明する。
図1は、本発明の実施形態に係るゲーム装置(画像処理装置)の構成を示す図である。同図に示すゲーム装置10は、家庭用ゲーム機11に情報記憶媒体たるDVD−ROM25及びメモリカード28が装着され、さらにモニタ18及びスピーカ22が接続されることによって構成される。例えば、モニタ18には家庭用テレビ受像機が用いられ、スピーカ22にはその内蔵スピーカが用いられる。
家庭用ゲーム機11は、バス12、マイクロプロセッサ14、画像処理部16、音声処理部20、DVD−ROM再生部24、主記憶26、入出力処理部30及びコントローラ32を含んで構成される公知のコンピュータゲームシステムである。コントローラ32以外の構成要素は筐体内に収容される。
バス12はアドレス及びデータを家庭用ゲーム機11の各部でやり取りするためのものである。マイクロプロセッサ14、画像処理部16、主記憶26及び入出力処理部30は、バス12によって相互データ通信可能に接続される。
マイクロプロセッサ14は、図示しないROMに格納されるオペレーティングシステム、DVD−ROM25から読み出されるプログラムや、メモリカード28から読み出されるデータに基づいて、家庭用ゲーム機11の各部を制御する。主記憶26は、例えばRAMを含んで構成されるものであり、DVD−ROM25から読み出されたプログラムやメモリカード28から読み出されたデータが必要に応じて書き込まれる。主記憶26はマイクロプロセッサ14の作業用としても用いられる。
画像処理部16はVRAMを含んで構成されており、モニタ18に表示させるゲーム画面(表示画像)を、マイクロプロセッサ14から送られる画像データに基づいてVRAM上に描画する。すなわち、画像処理部16は、視点座標系で記述された各ポリゴンの頂点座標(X,Y,Z)、頂点色情報(R,G,B)、各頂点に対応するテクスチャ画像中の位置を示すテクスチャ座標(vx,vy)、及びアルファ値等をマイクロプロセッサ14から受け取る。そして、それら情報を用いて表示画像を構成する各ピクセルの色情報、Z値(奥行き情報)及びアルファ値等をVRAMのゲーム画面描画用領域に描画する。このとき、VRAMにはテクスチャ画像が予め書き込まれており、各テクスチャ座標により特定されるテクスチャ画像中の領域が、それらテクスチャ座標に対応する頂点座標により特定されるポリゴンにマッピング(貼付)されるようになっている。こうして生成される表示画像は所定タイミングでビデオ信号に変換されてモニタ18に出力される。
入出力処理部30は、マイクロプロセッサ14が音声処理部20、DVD−ROM再生部24、メモリカード28及びコントローラ32にアクセスするためのインタフェースである。入出力処理部30には、音声処理部20、DVD−ROM再生部24、メモリカード28及びコントローラ32が接続される。
音声処理部20はサウンドバッファを含んで構成されており、DVD−ROM25から読み出され、該サウンドバッファに記憶されたゲーム音楽、ゲーム効果音、メッセージ等の各種音声データを再生してスピーカ22から出力する。
DVD−ROM再生部24は、マイクロプロセッサ14からの指示に従ってDVD−ROM25に記録されたプログラムを読み取る。なお、ここではプログラムを家庭用ゲーム機11に供給するためにDVD−ROM25を用いることとするが、CD−ROMやROMカード等、他のあらゆる情報記憶媒体を用いるようにしてもよい。また、インターネット等のデータ通信網を介して遠隔地からプログラムを家庭用ゲーム機11に供給するようにしてもよい。
メモリカード28は、不揮発性メモリ(例えばEEPROM等)を含んで構成される。家庭用ゲーム機11は、メモリカード28を装着するための複数のメモリカードスロットを備えており、複数のメモリカード28を同時に装着可能となっている。メモリカード28は、このメモリカードスロットに対して脱着可能に構成され、例えばセーブデータなどの各種ゲームデータを記憶させるために用いられる。
コントローラ32は、プレイヤが各種ゲーム操作の入力をするための汎用操作入力手段である。入出力処理部30は一定周期毎(例えば1/60秒毎)にコントローラ32の各部の状態をスキャンし、そのスキャン結果を表す操作信号をバス12を介してマイクロプロセッサ14に渡す。マイクロプロセッサ14は、その操作信号に基づいてプレイヤのゲーム操作を判定する。家庭用ゲーム機11は複数のコントローラ32を接続可能に構成されており、各コントローラ32から入力される操作信号に基づいて、マイクロプロセッサ14がゲーム制御を行う。
上記構成を備えるゲーム装置10では、DVD−ROM25から読み出されたプログラムが実行されることによってサッカーゲームが実現される。
上記サッカーゲームを実現するために、主記憶26には仮想3次元空間が構築される。図2は仮想3次元空間の一例を示す図である。図2に示すように、仮想3次元空間40には、サッカーのフィールドを表すフィールドオブジェクト42と、ゴールを表すゴールオブジェクト44と、観客席を表す観客席オブジェクト46と、が配置され、サッカーの試合会場が形成される。なお図2では省略されているが、フィールドオブジェクト42上には、サッカー選手を表す22体の選手オブジェクトと、サッカーボールを表すボールオブジェクトと、が配置される。また、観客席オブジェクト46上には、多数の観客を表現するためのオブジェクトが配置される。詳細については後述する(図14−図16,図18及び図20参照)。
仮想3次元空間40には仮想カメラ48が設定される。仮想カメラ48は例えば操作対象の選手オブジェクトやボールオブジェクトに従動する。この仮想カメラ48から仮想3次元空間40を見た様子を表すゲーム画面がモニタ18に表示される。プレイヤはゲーム画面を見ながらコントローラ32を操作し、例えば操作対象の選手オブジェクトに対する行動指示を行う。
以下、上記サッカーゲームにおいて、多数の観客が試合状況等に応じて応援を行う様子を表現する場合の処理負荷の軽減を図るための技術について説明する。
まず、DVD−ROM25に記憶されるデータについて説明する。
DVD−ROM25には、例えば、観客を表す観客オブジェクト(第1オブジェクト)のモデルデータ(形状データ)、テクスチャ画像データや応援モーションデータ(応援アニメーションデータ)が記憶される。ここで、テクスチャ画像データは観客オブジェクトの外見(服装等)を表す画像データである。また、応援モーションデータは、観客オブジェクトの一連の応援動作を示すデータであり、より具体的には、観客オブジェクトの応援動作時の所定時間(本実施の形態の場合には1/60秒)ごとの姿勢を示すデータである。なお本明細書では、観客オブジェクトに応援モーションデータに従って応援動作を行わせることを「応援モーションデータを再生する」と記載する。
本実施の形態の場合、DVD−ROM25には観客オブジェクトのモデルデータが1つ記憶される。またDVD−ROM25には、例えば図3に示すように、そのモデルデータに対応するテクスチャ画像データ及び応援モーションデータの組合せが8種類記憶される。すなわち、本実施の形態では、服装や応援動作等の異なる8種類の観客オブジェクト(第1〜第8の観客オブジェクト)が用意されている。なお、「第nの観客オブジェクト」とは、観客オブジェクトID「n」に対応づけられたテクスチャ画像データがマッピングされ、観客オブジェクトID「n」に対応づけられた応援モーションデータに従って応援動作を行う観客オブジェクトである。また本実施の形態では、応援モーションデータとして通常時モーションデータと得点時モーションデータとが用意されている。得点時モーションデータは得点イベントが発生した場合に再生されるモーションデータである。得点時モーションデータは、得点イベントが発生してから所定時間が経過するまでの間に再生される。或いは、得点時モーションデータは、得点イベントが発生した場合に所定回数だけ繰り返し再生される。通常時モーションデータは、得点時モーションデータが再生されない場合(通常時)に再生されるモーションデータである。
次に、ゲーム装置10で実行される処理について説明する。
図4及び図5は、サッカーゲームの前半又は後半が開始されてから終了するまでの間、所定時間(本実施の形態の場合には1/60秒)ごとに繰り返し実行される処理のうち、本発明に関連するものを主として示すフロー図である。
図4に示すように、まずモーションデータ再生状況テーブルが更新される(S101)。モーションデータ再生状況テーブルは各観客オブジェクトのモーションデータの再生状況に関する情報である。図6はモーションデータ再生状況テーブルの一例を示している。図6に示すように、モーションデータ再生状況テーブルには「観客オブジェクトID」フィールドと、「再生中モーションデータ」フィールドと、「現在再生位置」フィールドと、が含まれる。「再生中モーションデータ」フィールドには、再生中のモーションデータを示す情報(モーションデータ名)が格納される。「現在再生位置」フィールドには、モーションデータの現在再生位置を示す情報が格納される。本実施の形態では、現在再生中のモーションデータの再生が開始されてからの経過時間を1/60秒単位で示す数値が格納される。これらの「再生中モーションデータ」フィールド及び「現在再生位置」フィールドによって、観客オブジェクトの姿勢が特定される。
例えば、S101では、「現在再生位置」フィールドの値に1が加算される。また例えば、S101では、モーションデータの再生が完了したか否かが判定される。そして、モーションデータの再生が完了した場合には、そのモーションデータの再生を繰り返すべく、「現在再生位置」フィールドの値が初期値(0)に更新される。
また例えば、S101では、得点イベントが発生したか否かが判定される。そして、得点イベントが発生した場合には、得点時モーションデータの再生を開始するべく、「再生中モーションデータ」フィールドに得点時モーションデータ名がセットされるとともに、「現在再生位置」フィールドの値が初期値(0)に更新される。
また例えば、S101では、得点時モーションデータが再生されている場合に、得点イベントが発生してから所定時間が経過したか否か、又はその得点時モーションデータが所定回数繰り返し再生されたか否かが判定される。そして、得点イベントが発生してから所定時間が経過した場合、又は得点時モーションデータが所定回数繰り返し再生された場合には、通常時モーションデータの再生を開始するべく、「再生中モーションデータ」フィールドに通常時モーションデータ名がセットされるとともに、「現在再生位置」フィールドの値が初期値(0)に更新される。
S101が実行された後、変数iの値が1に初期化される(S102)。そして、第iの観客オブジェクトの姿勢が取得される(S103)。すなわち、観客オブジェクトID「i」に対応する「再生中モーションデータ」フィールド及び「現在再生位置」フィールドの内容が読み出され、第iの観客オブジェクトの姿勢が取得される。
次に、S103で取得された姿勢をとった第iの観客オブジェクトを所与の方向から見た様子を表す観客オブジェクト画像(第1オブジェクト画像)がVRAM上に描画される(S104)。
ここで、「所与の方向」は、例えば仮想3次元空間40に配置される観客席オブジェクト46と仮想カメラ48との相対位置関係に基づいて決定される。図7及び図8は、観客席オブジェクト46と、仮想カメラ48と、観客オブジェクト画像を生成する際の視点と、の関係について説明するための図である。図7は、観客席オブジェクト46と仮想カメラ48との位置関係の例について示す図である。図8は、観客オブジェクト画像を生成する際の視点の例について示す図である。
例えば図7に示す仮想カメラ48aのように、仮想カメラ48が観客席オブジェクト46の正面方向(Z軸負方向)に配置される場合には、例えば図8に示す視点52aのように、観客オブジェクト50の正面方向Fに視点が設定され、該視点52aから観客オブジェクト50を見た様子を表す観客オブジェクト画像が生成される。すなわち、図9(a)に示すように、観客オブジェクト50の正面方向Fから観客オブジェクト50を見た様子を表す観客オブジェクト画像53が生成される。
また、例えば図7に示す仮想カメラ48bのように、仮想カメラ48が観客席オブジェクト46の正面方向に対して左方向(X軸正方向)に配置される場合には、例えば図8に示す視点52bのように、観客オブジェクト50の左方向Lに視点が設定され、該視点52bから観客オブジェクト50を見た様子を表す観客オブジェクト画像が生成される。すなわち、図9(b)に示すように、観客オブジェクト50の左方向Lから観客オブジェクト50を見た様子を表す観客オブジェクト画像53が生成される。
なお図8に示すように、観客オブジェクト画像を生成する場合の視点(視点52aや視点52b等)は、観客オブジェクト50の代表点50aからの距離が一定の距離rとなるような軌道51上に設定される。
また本実施の形態では、VRAM上のゲーム画面描画領域以外の領域の少なくとも一部が、観客オブジェクト画像53を描画するための領域(以下、観客オブジェクト画像描画領域と記載する。)として用いられる。図10は観客オブジェクト画像描画領域の一例を示している。図10に示すように、観客オブジェクト画像描画領域54は縦3個×横8個の24個の同一形状及びサイズの部分領域55から構成される。1つの部分領域55は1つの観客オブジェクト画像53を描画するために用いられる。なお以下では、図10に示すように、各部分領域55を一意に識別するための識別情報(以下、部分領域IDと記載する。)が各部分領域55ごとに設定されていることとして説明する。また、部分領域ID「n」の部分領域55のことを「第nの部分領域55」と記載する。
S104では、第iの観客オブジェクト50の観客オブジェクト画像53が第iの部分領域55に描画される。
S104が実行された後、変数iの値に1が加算される(S105)。そして、変数iの値が8以下であるか否かが判定される(S106)。変数iの値が8以下である場合にはS103乃至S106が再実行される。
図11は、S106において変数iの値が8より大きいと判定される時点の観客オブジェクト画像描画領域54の状態の一例を示している。図11に示すように、その時点の観客オブジェクト画像描画領域54には、第1〜第8の観客オブジェクト50の観客オブジェクト画像53−1〜53−8が描画されている。すなわち、部分領域55−1(第1の部分領域55)に第1の観客オブジェクト50の観客オブジェクト画像53−1が描画されている。部分領域55−2(第2の部分領域55)に第2の観客オブジェクト50の観客オブジェクト画像53−2が描画されている。部分領域55−3(第3の部分領域55)に第3の観客オブジェクト50の観客オブジェクト画像53−3が描画されている。部分領域55−4(第4の部分領域55)に第4の観客オブジェクト50の観客オブジェクト画像53−4が描画されている。部分領域55−5(第5の部分領域55)に第5の観客オブジェクト50の観客オブジェクト画像53−5が描画されている。部分領域55−6(第6の部分領域55)に第6の観客オブジェクト50の観客オブジェクト画像53−6が描画されている。部分領域55−7(第7の部分領域55)に第7の観客オブジェクト50の観客オブジェクト画像53−7が描画されている。部分領域55−8(第8の部分領域55)に第8の観客オブジェクト50の観客オブジェクト画像53−8が描画されている。また、この時点の観客オブジェクト画像描画領域54には、第1〜第8の観客オブジェクト50の観客オブジェクト画像53−1〜53−8が横一列に配列されてなる観客オブジェクト群画像56が形成されている。なお、図11では各部分領域55の境界線が点線で表されているが、実際にはこの点線は描画されない(後述の図13についても同様である)。
S106において変数iの値が8より大きいと判定された場合には、第9〜第24の部分領域55に対して観客オブジェクト画像53を描画するための処理が実行される。
本実施の形態の場合、第9〜第24の部分領域55に対しては、第1〜第8の部分領域55に描画された観客オブジェクト画像53(観客オブジェクト画像53−1〜53−8)のいずれかがコピーされる。具体的には、「第9〜第24の部分領域55の各々に、第1〜第8の部分領域55のいずれかをコピー元の部分領域55として対応づけてなるコピー制御テーブル」が主記憶26又はDVD−ROM25に記憶されており、このコピー制御テーブルに従って、第9〜第24の部分領域55に対して、第1〜第8の部分領域55に描画された観客オブジェクト画像53のいずれかがコピーされる。図12はコピー制御テーブルの一例を示している。図12に示すコピー制御テーブルでは、第9〜第16の部分領域55の各々に、第1〜第8の部分領域55のいずれかが重複しないように対応づけられ、第17〜第24の部分領域55の各々に、第1〜第8の部分領域55のいずれかが重複しないように対応づけられている。
第9〜第24の部分領域55に対して観客オブジェクト画像53を描画するための処理では、まず、部分領域ID「i」に対応づけられたコピー元部分領域IDが変数jに代入される(S107)。そして、第jの部分領域55に描画された観客オブジェクト画像53が第iの部分領域55にコピーされる(S108)。
次に、変数iの値が24であるか否かが判定される(S109)。変数iの値が24でない場合には変数iの値に1が加算され(S110)、S107乃至S109が再実行される。
図13は、S109において変数iの値が24であると判定される時点の観客オブジェクト画像描画領域54の状態の一例を示している。図13に示すように、この時点の観客オブジェクト画像描画領域54には、3種類の観客オブジェクト群画像56−1,56−2,56−3が形成されている。観客オブジェクト群画像56−1,56−2,56−3は、第1〜第8の観客オブジェクト50の観客オブジェクト画像53が横一列に配列されてなる画像である点で共通しているが、第1〜第8の観客オブジェクト50の観客オブジェクト画像53の配列順が異なっている。すなわち、上述のコピー制御テーブルは、観客オブジェクト群画像56−1,56−2,56−3における観客オブジェクト画像53の配列順が異なるように設定されている。
S109において変数iの値が24であると判定された場合には、観客表現用オブジェクト(第2オブジェクト)を観客席オブジェクト46上に配置するための処理が実行される。
ここで、観客表現用オブジェクトについて説明しておく。本実施の形態では、観客表現用オブジェクトAと、観客表現用オブジェクトBと、の2種類の観客表現用オブジェクトが用意されている。
図14は観客表現用オブジェクトAの一例を示している。図14に示すように、観客表現用オブジェクトA58aは板状のオブジェクトであり、1枚のポリゴンによって構成される。すなわち、観客表現用オブジェクトA58aは、観客オブジェクト50を構成するポリゴンの数よりも少ない数のポリゴンによって構成される。観客表現用オブジェクトA58aには1つの観客オブジェクト画像53がマッピングされる。図14では、観客表現用オブジェクトA58aに第1の観客オブジェクト50の観客オブジェクト画像53がマッピングされている。
図15は観客表現用オブジェクトBの一例を示している。図15に示すように、観客表現用オブジェクトB58bも板状のオブジェクトであり、1枚のポリゴンによって構成される。すなわち、観客表現用オブジェクトB58bも、観客オブジェクト50を構成するポリゴンの数よりも少ない数のポリゴンによって構成される。また、観客表現用オブジェクトB58bの横幅は観客表現用オブジェクトA58aよりも長くなっている。観客表現用オブジェクトB58bには、観客オブジェクト画像描画領域54に形成された観客オブジェクト群画像56(図13に示す観客オブジェクト群画像56−1,56−2,56−3)のいずれかがマッピングされる。このため、観客表現用オブジェクトB58bの横幅は観客表現用オブジェクトA58aよりも長くなっている。図15に示す観客表現用オブジェクトB58bには、図13に示す観客オブジェクト群画像56−2がマッピングされている。
また本実施の形態では、観客席オブジェクト46上に、観客表現用オブジェクトを配置するための領域(以下、観客表現用オブジェクト配置領域と記載する。)が設定されている。図16は観客表現用オブジェクト配置領域について示す図である。図16に示すように、観客席オブジェクト46上には、長方形の観客表現用オブジェクト配置領域60が複数設定される。
観客表現用オブジェクト配置領域60に関する観客表現用オブジェクト配置領域情報テーブルが主記憶26には記憶される。図17は観客表現用オブジェクト配置領域情報テーブルの一例を示している。図17に示すように、観客表現用オブジェクト配置領域情報テーブルには「観客表現用オブジェクト配置領域ID」フィールドと、「中心点」フィールドと、「頂点」フィールドと、「観客オブジェクト群画像種別」フィールドと、「観客表現用オブジェクト種別」フィールドと、が含まれる。
「観客表現用オブジェクト配置領域ID」フィールドには、観客表現用オブジェクト配置領域60を一意に識別するための観客表現用オブジェクト配置領域IDが格納される。以下では、観客表現用オブジェクト配置領域IDが「n」である観客表現用オブジェクト配置領域60のことを「第nの観客表現用オブジェクト配置領域60」と記載する。「中心点」フィールドには、観客表現用オブジェクト配置領域60の中心点60aの座標が格納される。「頂点」フィールドには、観客表現用オブジェクト配置領域60の各頂点60bの座標が格納される。
「観客オブジェクト群画像種別」フィールドには、観客オブジェクト画像描画領域54に形成される観客オブジェクト群画像56(図13に示す観客オブジェクト群画像56−1,56−2,56−3)のいずれかを特定する情報が格納される。なお図17において、「観客オブジェクト群画像種別」フィールドに格納される「1」,「2」,「3」は、それぞれ、図13に示す観客オブジェクト群画像56−1,56−2,56−3に対応している。
「観客表現用オブジェクト種別」フィールドには、観客表現用オブジェクト配置領域60に配置される観客表現用オブジェクトの種別(観客表現用オブジェクトA58a、観客表現用オブジェクトB58bのいずれか)を示す情報が記憶される。なお図17において、「観客表現用オブジェクト種別」フィールドに格納される「A」、「B」は、それぞれ、観客表現用オブジェクトA58a、観客表現用オブジェクトB58bに対応している。
なお、各観客表現用オブジェクト配置領域60の中心点座標、頂点座標及び観客オブジェクト群画像種別はあらかじめ定められる。ただし、各観客表現用オブジェクト配置領域60の観客表現用オブジェクト種別は、図5に示す以下の処理(S110乃至S116)によってその都度決定される。
観客表現用オブジェクトを観客席オブジェクト46上に配置するための処理では、まず変数kの値が1に初期化される(S110)。次に、第kの観客表現用オブジェクト配置領域60の中心点60aと、仮想カメラ48と、の間の距離d(仮想3次元空間40における距離)が取得される(S111)。そして、S111で取得された距離dが所定の基準距離D未満であるか否かが判定される(S112)。距離dが基準距離D未満である場合には、観客表現用オブジェクト配置領域ID「k」に対応する「観客表現用オブジェクト種別」フィールドが「A」に更新される(S113)。一方、距離dが基準距離D以上である場合には、観客表現用オブジェクト配置領域ID「k」に対応する「観客表現用オブジェクト種別」フィールドが「B」に更新される(S114)。
S113又はS114が実行された後、変数kの値がNであるか否かが判定される(S115)。Nは、観客席オブジェクト46上に設定された観客表現用オブジェクト配置領域60の総数である。変数kの値がNでない場合には、変数kの値に1が加算され(S116)、その後、S111乃至S115が再実行される。
一方、変数kの値がNである場合には、観客表現用オブジェクト配置領域情報テーブルに基づいてゲーム画面が生成される(S117)。すなわち、「観客表現用オブジェクト配置領域情報テーブルに従って、観客席オブジェクト46の各観客表現用オブジェクト配置領域60に観客表現用オブジェクトA58a又は観客表現用オブジェクトB58bが配置された仮想3次元空間40」を仮想カメラ48から見た様子を表すゲーム画面がVRAMのゲーム画面描画用領域に描画される。VRAM上に描画されたゲーム画面は所定のタイミングでモニタ18に出力される。
ここで、観客表現用オブジェクト配置領域60への観客表現用オブジェクトの配置について説明する。
観客表現用オブジェクト配置領域60の観客表現用オブジェクト種別が「A」である場合には、その観客表現用オブジェクト配置領域60に、第1〜第8の観客オブジェクト50(言い換えれば、第1〜第8の観客オブジェクト50の観客オブジェクト画像53)の各々に対応する観客表現用オブジェクトA58aが配置される。
図18は、観客表現用オブジェクト配置領域60の観客表現用オブジェクト種別が「A」である場合の観客表現用オブジェクトの配置の一例を示している。図18に示すように、この場合、観客表現用オブジェクト配置領域60には8つの観客表現用オブジェクトA58a(観客表現用オブジェクトA58a−1〜58a−8)が配置される。
観客表現用オブジェクトA58a−1〜58a−8は等間隔で配置される。また、観客表現用オブジェクトA58a−1〜58a−8の位置は、観客表現用オブジェクト配置領域60の各頂点60bの座標に基づいて算出される。観客表現用オブジェクト配置領域60の各頂点60bの座標は観客表現用オブジェクト配置領域情報テーブルから取得される。
また、観客表現用オブジェクトA58a−1〜58a−8にマッピングされる観客オブジェクト画像53は、観客表現用オブジェクト配置領域60の観客オブジェクト群画像種別に基づいて決定される。より具体的には、観客表現用オブジェクトA58a−1〜58a−8には、観客表現用オブジェクト配置領域60に対応する観客オブジェクト群画像56に含まれる観客オブジェクト画像53が順にマッピングされる。
図18に示した例は、観客表現用オブジェクト配置領域60の観客オブジェクト群画像種別が「2」である場合を示している。このため、図18では、観客表現用オブジェクトA58a−1に、第3の観客オブジェクト50の観客オブジェクト画像53がマッピングされている。また、観客表現用オブジェクトA58a−2に、第6の観客オブジェクト50の観客オブジェクト画像53がマッピングされている。観客表現用オブジェクトA58a−3に、第1の観客オブジェクト50の観客オブジェクト画像53がマッピングされている。観客表現用オブジェクトA58a−4に、第5の観客オブジェクト50の観客オブジェクト画像53がマッピングされている。観客表現用オブジェクトA58a−5に、第7の観客オブジェクト50の観客オブジェクト画像53がマッピングされている。観客表現用オブジェクトA58a−6に、第2の観客オブジェクト50の観客オブジェクト画像53がマッピングされている。観客表現用オブジェクトA58a−7に、第8の観客オブジェクト50の観客オブジェクト画像53がマッピングされている。観客表現用オブジェクトA58a−8に、第4の観客オブジェクト50の観客オブジェクト画像53がマッピングされている。
なお例えば、観客表現用オブジェクト配置領域60の観客オブジェクト群画像種別が「1」である場合には、観客表現用オブジェクトA58a−1に、第1の観客オブジェクト50の観客オブジェクト画像53がマッピングされる。また、観客表現用オブジェクトA58a−2に、第2の観客オブジェクト50の観客オブジェクト画像53がマッピングされる。観客表現用オブジェクトA58a−3に、第3の観客オブジェクト50の観客オブジェクト画像53がマッピングされる。観客表現用オブジェクトA58a−4に、第4の観客オブジェクト50の観客オブジェクト画像53がマッピングされる。観客表現用オブジェクトA58a−5に、第5の観客オブジェクト50の観客オブジェクト画像53がマッピングされる。観客表現用オブジェクトA58a−6に、第6の観客オブジェクト50の観客オブジェクト画像53がマッピングされる。観客表現用オブジェクトA58a−7に、第7の観客オブジェクト50の観客オブジェクト画像53がマッピングされる。観客表現用オブジェクトA58a−8に、第8の観客オブジェクト50の観客オブジェクト画像53がマッピングされる。
また例えば、観客表現用オブジェクト配置領域60の観客オブジェクト群画像種別が「3」である場合には、観客表現用オブジェクトA58a−1に、第7の観客オブジェクト50の観客オブジェクト画像53がマッピングされる。観客表現用オブジェクトA58a−2に、第4の観客オブジェクト50の観客オブジェクト画像53がマッピングされる。観客表現用オブジェクトA58a−3に、第8の観客オブジェクト50の観客オブジェクト画像53がマッピングされる。観客表現用オブジェクトA58a−4に、第6の観客オブジェクト50の観客オブジェクト画像53がマッピングされる。観客表現用オブジェクトA58a−5に、第3の観客オブジェクト50の観客オブジェクト画像53がマッピングされる。観客表現用オブジェクトA58a−6に、第5の観客オブジェクト50の観客オブジェクト画像53がマッピングされる。観客表現用オブジェクトA58a−7に、第2の観客オブジェクト50の観客オブジェクト画像53がマッピングされる。観客表現用オブジェクトA58a−8に、第1の観客オブジェクト50の観客オブジェクト画像53がマッピングされる。
また、観客表現用オブジェクトA58a−1〜58a−8に対しては、仮想カメラ48の方を向くように、個々に姿勢制御が行われる。図19は、観客表現用オブジェクトA58a−1〜58a−3に対する姿勢制御について示す図である。図19に示すように、観客表現用オブジェクトA58a−1の姿勢は、観客表現用オブジェクトA58a−1の正面方向(法線方向)F1と、観客表現用オブジェクトA58a−1から仮想カメラ48への方向と、が一致するように制御される。同様に、観客表現用オブジェクトA58a−2の姿勢は、観客表現用オブジェクトA58a−2の正面方向F2と、観客表現用オブジェクトA58a−2から仮想カメラ48への方向と、が一致するように制御され、観客表現用オブジェクトA58a−3の姿勢は、観客表現用オブジェクトA58a−3の正面方向F3と、観客表現用オブジェクトA58a−3から仮想カメラ48への方向と、が一致するように制御される。図19では省略されているが、観客表現用オブジェクトA58a−4〜58a−8の姿勢も同様にして制御される。
観客表現用オブジェクトA58aは板状のオブジェクトであるため、仮想カメラ48と観客表現用オブジェクトA58aとの位置関係によっては、ゲーム画面に観客が適切に表されなくなるおそれがある。この点、本実施の形態では、以上のように姿勢制御が行われることによって、ゲーム画面に観客が適切に表されるように図られている。
図20は、観客表現用オブジェクト配置領域60の観客表現用オブジェクト種別が「B」である場合の観客表現用オブジェクトの配置の一例を示している。図20に示すように、この場合、観客表現用オブジェクト配置領域60には1つの観客表現用オブジェクトB58bが配置される。すなわち、観客表現用オブジェクト配置領域60の観客表現用オブジェクト種別が「B」である場合には、観客表現用オブジェクト種別が「A」である場合に比べて、観客表現用オブジェクト配置領域60に配置される観客表現用オブジェクトの数が少なくなる。
観客表現用オブジェクトB58bの位置は、観客表現用オブジェクト配置領域60の各頂点60bの座標に基づいて算出される。観客表現用オブジェクト配置領域60の各頂点60bの座標は観客表現用オブジェクト配置領域情報テーブルから取得される。
また、観客表現用オブジェクトB58bにマッピングされる観客オブジェクト群画像56は、観客表現用オブジェクト配置領域60の観客オブジェクト群画像種別に基づいて決定される。より具体的には、観客表現用オブジェクトB58bには、観客表現用オブジェクト配置領域60の観客オブジェクト群画像種別に対応する観客オブジェクト群画像56がマッピングされる。図20に示した例は、観客表現用オブジェクト配置領域60の観客オブジェクト群画像種別が「2」である場合を示している。このため、図20では、図13に示す観客オブジェクト群画像56−2が観客表現用オブジェクトB58bにマッピングされている。例えば、観客表現用オブジェクト配置領域60の観客オブジェクト群画像種別が「1」である場合には、図13に示す観客オブジェクト群画像56−1が観客表現用オブジェクトB58bにマッピングされ、観客オブジェクト群画像種別が「3」である場合には、図13に示す観客オブジェクト群画像56−3が観客表現用オブジェクトB58bにマッピングされる。
また、観客表現用オブジェクトB58bの姿勢は仮想カメラ48のY軸座標に基づいて制御される。すなわち、観客表現用オブジェクトB58bの姿勢に対しては、仮想カメラ48のY軸方向の位置変化に応じた姿勢制御が行われる。図21は、観客表現用オブジェクトB58bに対する姿勢制御について説明するための図である。図21に示すように、仮想カメラ48のY軸座標が、観客表現用オブジェクトB58b(又は該観客表現用オブジェクトB58bが配置される観客表現用オブジェクト配置領域60)のY軸座標よりも大きくなると、観客表現用オブジェクトB58bの姿勢は、観客表現用オブジェクトB58bの正面方向(法線方向)Fが仮想カメラ48のY軸座標と交わるように制御される。こうして、仮想カメラ48のY軸座標が大きくなるにつれて、観客表現用オブジェクトB58bは後方に傾くようになっている。観客表現用オブジェクトB58bは板状のオブジェクトであるため、仮想カメラ48と観客表現用オブジェクトB58bとの位置関係によっては、ゲーム画面に観客が適切に表されなくなるおそれがある。この点、本実施の形態では、以上のように姿勢制御が行われることによって、仮想カメラ48の位置がY軸方向に変化しても、ゲーム画面に観客が適切に表されるように図られている。
なお、仮想カメラ48の位置がX軸方向(観客表現用オブジェクトB58bの長手方向)に変化しても、観客表現用オブジェクトB58bの姿勢は変化しない。すなわち、観客表現用オブジェクトB58bについては、仮想カメラ48のX軸方向の位置変化に応じた姿勢制御が制限(抑止)される。本実施の形態では観客席オブジェクト46が階段状に形成されている。また、観客表現用オブジェクトB58bの横幅は観客表現用オブジェクトA58aに比べて長くなっている。このため、観客表現用オブジェクトA58aと同様に、観客表現用オブジェクトB58bが常に仮想カメラ48の方を向くようにするべく、観客表現用オブジェクトB58bの長手方向(X軸方向)に対する仮想カメラ48の位置変化に応じて、観客表現用オブジェクトB58bの姿勢を制御してしまうと、観客表現用オブジェクトB58bが観客席オブジェクト46の異なる段にまたがって配置されてしまい、その結果、ゲーム画面に観客が不自然に表示されてしまうおそれがある。この点、本実施の形態では、以上のように姿勢制御が行われることによって、そのような不具合が発生しないように図られている。
次に、ゲーム装置10において実現される機能について説明する。
図22は、ゲーム装置10において実現される機能のうち、本発明に関連するものを主として示す機能ブロック図である。図22に示すように、ゲーム装置10は、オブジェクトデータ記憶部70と、観客オブジェクト姿勢情報更新部71と、表示制御部72と、表示部74と、を機能的に含んでいる。これらの機能は、例えば図4及び図5を実行するためのプログラムがDVD−ROM25から読み出され、マイクロプロセッサ14によって実行されることによって実現される。
[オブジェクトデータ記憶部]
オブジェクトデータ記憶部70は例えばDVD−ROM25や主記憶26によって実現される。オブジェクトデータ記憶部70には、仮想3次元空間40に配置される各種オブジェクトに関するデータが記憶される。オブジェクトデータ記憶部70には、観客オブジェクトデータ記憶部76と、観客オブジェクト姿勢情報記憶部78と、が含まれる。
[観客オブジェクトデータ記憶部]
観客オブジェクトデータ記憶部76には、観客オブジェクト50のモデルデータが記憶されるとともに、そのモデルデータに対応するテクスチャ画像データ及び応援モーションデータの組み合わせが複数種類記憶される(図3参照)。
[観客オブジェクト姿勢情報記憶部]
観客オブジェクト姿勢情報記憶部78には、観客オブジェクト50の現在の姿勢を示す姿勢情報が記憶される(図6参照)。
[観客オブジェクト姿勢情報更新部]
観客オブジェクト姿勢情報更新部71は例えばマイクロプロセッサ14を主として実現される。観客オブジェクト姿勢情報更新部71は、所与の姿勢更新タイミングの到来に応じて、観客オブジェクト姿勢情報記憶部78に記憶される姿勢情報を更新する。本実施の形態の場合、観客オブジェクト姿勢情報更新部71は、所定時間(1/60秒)ごとに、観客オブジェクト姿勢情報記憶部78に記憶される姿勢情報を更新する(図4のS101参照)。
[表示制御部及び表示部]
表示制御部72は例えばマイクロプロセッサ14,主記憶26や画像処理部16を主として実現される。表示部74は例えばモニタ18によって実現される。表示制御部72は、オブジェクトデータ記憶部70に記憶されるデータに基づいて、仮想3次元空間40を仮想カメラ48から見た様子を表すゲーム画面を生成し、そのゲーム画面を表示部74に表示させる。
表示制御部72には、観客オブジェクト画像生成部80と、観客オブジェクト画像記憶部82(画像バッファ)と、観客表現用オブジェクト配置部84と、が含まれる。
[観客オブジェクト画像生成部及び記憶部]
観客オブジェクト画像生成部80は例えばマイクロプロセッサ14,主記憶26や画像処理部16を主として実現される。観客オブジェクト画像記憶部82は、例えば、画像処理部16に含まれるVRAM、又は主記憶26によって実現される。観客オブジェクト画像生成部80は、「観客オブジェクト姿勢情報記憶部78に記憶される姿勢情報によって示される姿勢をとった観客オブジェクト50」を所与の方向から見た様子を表す観客オブジェクト画像53を生成し、その観客オブジェクト画像53を観客オブジェクト画像記憶部82に記憶させる。
本実施の形態の場合、観客オブジェクト画像生成部80は、第1〜第8の観客オブジェクト50の各々の観客オブジェクト画像53を生成し、それらの観客オブジェクト画像53を観客オブジェクト画像記憶部82に記憶させる(図11参照)。また、観客オブジェクト画像生成部80は、観客オブジェクト画像記憶部82に記憶された第1〜第8の観客オブジェクト50の各々の観客オブジェクト画像53に基づいて、複数種類の観客オブジェクト群画像56をVRAM上に形成する(図13参照)。
[観客表現用オブジェクト配置部]
観客表現用オブジェクト配置部84は例えばマイクロプロセッサ14,主記憶26や画像処理部16を主として実現される。観客表現用オブジェクト配置部84は観客表現用オブジェクトを仮想3次元空間40に複数配置するとともに、該複数の観客表現用オブジェクトの各々に、観客オブジェクト画像記憶部82に記憶された観客オブジェクト画像53をマッピングする。
観客表現用オブジェクト配置部84には、配置制御切替部86と、第1観客表現用オブジェクト配置部88と、第2観客表現用オブジェクト配置部90と、が含まれる。
[第1観客表現用オブジェクト配置部]
第1観客表現用オブジェクト配置部88は、1つの観客表現用オブジェクト配置領域60に対して、第1の個数(本実施の形態の場合には8つ)の観客表現用オブジェクトA58aを配置する(図18参照)。観客表現用オブジェクトA58aには、第2の個数(本実施の形態の場合には1つ)の観客オブジェクト画像53を含んでなる画像がマッピングされる。また、第1観客表現用オブジェクト配置部88は、各観客表現用オブジェクトA58aの姿勢を、その観客表現用オブジェクトA58aの位置と、仮想カメラ48の位置と、に基づいて制御する(図19参照)。
[第2観客表現用オブジェクト配置部]
第2観客表現用オブジェクト配置部90は、1つの観客表現用オブジェクト配置領域60に対して、上記第1の個数よりも少ない第3の個数(本実施の形態の場合には1つ)の観客表現用オブジェクトB58bを配置する(図20参照)。観客表現用オブジェクトB58bには観客オブジェクト群画像56がマッピングされる。すなわち、観客表現用オブジェクトB58bには、上記第2の個数よりも多い第4の個数(本実施の形態の場合には8つ)の観客オブジェクト画像53を含んでなる画像がマッピングされる。また、第2観客表現用オブジェクト配置部90は、観客表現用オブジェクトB58bの姿勢を、その観客表現用オブジェクトB58bの位置と、仮想カメラ48の位置と、に基づいて制御する(図21参照)。
[配置制御切替部]
配置制御切替部86は、各観客表現用オブジェクト配置領域60について、その観客表現用オブジェクト配置領域60に対する観客表現用オブジェクトの配置を、第1観客表現用オブジェクト配置部88又は第2観客表現用オブジェクト配置部90のいずれに行わせるかを決定する。
上記の決定は、観客表現用オブジェクト配置領域60の基準点(本実施の形態の場合には中心点)と、仮想3次元空間40の基準点(本実施の形態の場合には仮想カメラ48の位置)と、の間の距離に基づいて行われる。本実施の形態の場合、該距離が所定の基準距離未満である場合には、その観客表現用オブジェクト配置領域60に対する観客表現用オブジェクトの配置が第1観客表現用オブジェクト配置部88によって行われる。一方、該距離が所定の基準距離以上である場合には、その観客表現用オブジェクト配置領域60に対する観客表現用オブジェクトの配置が第2観客表現用オブジェクト配置部90によって行われる。
以上説明したように、ゲーム装置10では、「応援動作を行う観客オブジェクト50」を所与の方向から見た様子を表す観客オブジェクト画像53がVRAM上に描画される。仮想3次元空間40には、1つのポリゴンで構成される板状オブジェクトである観客表現用オブジェクトが多数配置されるとともに、各観客表現用オブジェクトに、VRAM上に描画された観客オブジェクト画像53を含んでなる画像がマッピングされる。そして、上記のような観客表現用オブジェクトが多数配置された仮想3次元空間40を仮想カメラ48から見た様子を表すゲーム画面が生成され、そのゲーム画面がモニタ18に表示される。こうして、ゲーム装置10では多数の観客が応援動作を行う様子がゲーム画面に表される。
ゲーム装置10によれば、多数の観客が応援動作を行う様子の表現を処理負荷の軽減を図りつつ実現することが可能になる。多数の観客が応援動作を行う様子を表現するために多数の観客オブジェクト50を仮想3次元空間40に配置した場合には、ゲーム画面を生成する際に、各観客オブジェクト50の各ポリゴンについて座標変換処理等を実行しなければならなくなるため、処理負荷が重くなってしまう。例えば、100個のポリゴンから構成される1種類の観客オブジェクト50を仮想3次元空間40に500体配置した場合には、50000(=100×500)ポリゴン分の座標変換処理等を実行しなければならなくなる。この点、ゲーム装置10によれば、まず、該1種類の観客オブジェクト50の観客オブジェクト画像53を生成するために、100個のポリゴンについて座標変換処理等を実行し、その後、500体の観客表現用オブジェクト(観客表現用オブジェクトA58a)を構成するポリゴン、すなわち500(=1×500)個のポリゴンについて座標変換処理等を実行すればよくなる。すなわち、600(=100+500)ポリゴン分の座標変換処理等を実行するだけでよくなる。
また、ゲーム装置10では、第1〜第8の観客オブジェクト50の各々の観客オブジェクト画像53がVRAM上に描画される。そして、VRAM上に描画された観客オブジェクト画像53をコピーすることによって、複数種類の観客オブジェクト群画像56がVRAM上に形成される。観客オブジェクト群画像56が1種類しかいないと、ゲーム画面に表される観客群のパターンが均一化されてしまい、リアリティが損なわれてしまうおそれがある。この点、ゲーム装置10では、複数種類の観客オブジェクト群画像56が生成されるため、ゲーム画面に表される観客群のパターンが均一化されないように図ることが可能になり、リアリティが損なわれないように図ることが可能になる。また、ゲーム装置10では、VRAM上に描画された第1〜第8の観客オブジェクト50の各々の観客オブジェクト画像53をコピーすることによって、複数種類の観客オブジェクト群画像56がVRAM上に生成されるため、複数種類の観客オブジェクト群画像56の生成が比較的簡易に行われるように図られている。
また、ゲーム装置10では、仮想カメラ48と、観客表現用オブジェクト配置領域60と、の間の距離が所定の基準距離未満の場合には、その観客表現用オブジェクト配置領域60に8つの観客表現用オブジェクトA58aが配置されるとともに、該8つの観客表現用オブジェクトA58aの各々の姿勢が、その観客表現用オブジェクトA58aの位置と、仮想カメラ48の位置と、に基づいて制御される。一方、仮想カメラ48と、観客表現用オブジェクト配置領域60と、の間の距離が所定の基準距離以上の場合には、その観客表現用オブジェクト配置領域60に1つの観客表現用オブジェクトB58bが配置されるとともに、観客表現用オブジェクトB58bの姿勢が、その観客表現用オブジェクトB58bの位置と、仮想カメラ48の位置と、に基づいて制御される。このため、ゲーム装置10では、ゲーム画面に観客が比較的大きく表される場合には観客がより好適に表され、ゲーム画面に観客が比較的小さく表される場合には観客が簡易に表される。以上のようにして、ゲーム装置10では観客表現にかかる処理負荷のさらなる軽減が図られている。
なお、本発明は以上に説明した実施の形態に限定されるものではない。
例えば、コピー制御テーブルはあらかじめ作成しておくようにしてもよいし、例えばサッカーゲームの前半又は後半が開始されるタイミングで乱数に基づいて生成するようにしてもよい。また例えば、各観客表現用オブジェクト配置領域60の観客オブジェクト群種別も、例えばサッカーゲームの前半又は後半が開始されるタイミングで乱数に基づいて決定するようにしてもよい。
また例えば、各観客表現用オブジェクト配置領域60に、試合を行う2つのチームのいずれか一方を対応づけておき、各観客表現用オブジェクト配置領域60に配置される観客表現用オブジェクトの各頂点の色情報(RGB値)を、その観客表現用オブジェクト配置領域60に対応づけられたチームに基づいて制御するようにしてもよい。例えば、各観客表現用オブジェクト配置領域60に配置される観客表現用オブジェクトの各頂点の色情報(RGB値)として、その観客表現用オブジェクト配置領域60に対応づけられたチームに対応する色情報を設定するようにしてもよい。このようにして、一方のチームを応援する観客と、他方のチームを応援する観客と、を好適に表現するようにしてもよい。
また例えば、本発明は、多数の観客が応援動作を行う様子を表現する場合以外の場合にも適用することができる。本発明は、多数の人や物体等が動作する様子を表現する場合に適用することができる。
また例えば、以上の説明では、プログラムを情報記憶媒体たるDVD−ROM25から家庭用ゲーム機11に供給するようにしたが、通信ネットワークを介してプログラムを家庭等に配信するようにしてもよい。図23は、通信ネットワークを用いたプログラム配信システムの全体構成を示す図である。図23に基づいて本発明に係るプログラム配信方法を説明する。図23に示すように、このプログラム配信システム100は、ゲームデータベース102、サーバ104、通信ネットワーク106、パソコン108、家庭用ゲーム機110、PDA(携帯情報端末)112を含んでいる。このうち、ゲームデータベース102とサーバ104とによりプログラム配信装置114が構成される。通信ネットワーク106は、例えばインターネットやケーブルテレビネットワークを含んで構成されている。このシステムでは、ゲームデータベース(情報記憶媒体)102に、DVD−ROM25の記憶内容と同様のプログラムが記憶されている。そして、パソコン108、家庭用ゲーム機110又はPDA112等を用いて需要者がゲーム配信要求をすることにより、それが通信ネットワーク106を介してサーバ104に伝えられる。そして、サーバ104はゲーム配信要求に応じてゲームデータベース102からプログラムを読み出し、それをパソコン108、家庭用ゲーム機110、PDA112等、ゲーム配信要求元に送信する。ここではゲーム配信要求に応じてゲーム配信するようにしたが、サーバ104から一方的に送信するようにしてもよい。また、必ずしも一度にゲームの実現に必要な全てのプログラムを配信(一括配信)する必要はなく、ゲームの局面に応じて必要な部分を配信(分割配信)するようにしてもよい。このように通信ネットワーク106を介してゲーム配信するようにすれば、プログラムを需要者は容易に入手することができるようになる。
10 ゲーム装置、11,110 家庭用ゲーム機、12 バス、14 マイクロプロセッサ、16 画像処理部、18 モニタ、20 音声処理部、22 スピーカ、24 DVD−ROM再生部、25 DVD−ROM、26 主記憶、28 メモリカード、30 入出力処理部、32 コントローラ、40 仮想3次元空間、42 フィールドオブジェクト、44 ゴールオブジェクト、46 観客席オブジェクト、48,48a,48b 仮想カメラ、50 観客オブジェクト、50a 代表点、51 軌道、52a,52b 視点、53,53−1,53−2,53−3,53−4,53−5,53−6,53−7,53−8 観客オブジェクト画像、54 観客オブジェクト画像描画領域、55,55−1,55−2,55−3,55−4,55−5,55−6,55−7,55−8 部分領域、56,56−1,56−2,56−3 観客オブジェクト群画像、58a,58a−1,58a−2,58a−3,58a−4,58a−5,58a−6,58a−7,58a−8 観客表現用オブジェクトA、58b 観客表現用オブジェクトB、60 観客表現用オブジェクト配置領域、60a 中心点、60b 頂点、70 オブジェクトデータ記憶部、71 観客オブジェクト姿勢情報更新部、72 表示制御部、74 表示部、76 観客オブジェクトデータ記憶部、78 観客オブジェクト姿勢情報記憶部、80 観客オブジェクト画像生成部、82 観客オブジェクト画像記憶部、84 観客表現用オブジェクト配置部、86 配置制御切替部、88 第1観客表現用オブジェクト配置部、90 第2観客表現用オブジェクト配置部、100 プログラム配信システム、102 ゲームデータベース、104 サーバ、106 通信ネットワーク、108 パソコン、112 携帯情報端末(PDA)、114 プログラム配信装置。