説明

プログラム、情報記憶媒体及び画像生成装置

【課題】Zバッファに格納されるZ値の精度を向上させることで、オブジェクトの前後の位置関係が正確に判定されないことによる不適切な画像生成を防止すること。
【解決手段】リプレイカメラCMの位置P0から描画最遠位置P1までの範囲内に、被写体オブジェクトである自車PCの位置Ppを含むZ値適用範囲が設定される。Z値適用範囲の両端位置のうち、奥側位置P3は描画最遠位置P1に設定され、手前側位置P2はリプレイカメラCMを基に設定される。即ち、リプレイカメラCMの位置P0から自車の位置Ppまでの距離Lpに、リプレイカメラCMの画角φ及び俯角θを基に定められる係数kを乗算して得られる距離L2が、手前側位置P2までの距離となる。そして、設定されたZ値適用範囲にZ値が適用され、リプレイカメラCMに基づくZ値適用範囲内の隠面消去処理を行うことでリプレイ画像が生成される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想カメラから見た仮想空間の画像をZバッファ法に基づき生成する画像生成装置等に関する。
【背景技術】
【0002】
従来、画像生成装置の一種であるゲーム装置では、仮想空間であるゲーム空間にプレーヤキャラクタ等のオブジェクトを配置するとともに視点(仮想カメラ)を設定し、この視点を基に生成したゲーム空間の画像がゲーム画像として表示される。
【0003】
ゲーム装置では、予め定められたフレーム時間毎に1枚のゲーム画像(フレーム画像)が生成・表示されるが、視野内に多数のオブジェクトが存在する場合やポリゴン数の多いオブジェクトが存在する場合、画像処理の負担が増大することにより一部のオブジェクトが表示されない不適切なフレーム画像が生成される不具合があった。そこで、このような表示抜けの問題を解決するため、視野内のオブジェクトを選別するためのクリッピング空間を任意に変更することでCPUの演算負荷を軽減し、表示抜け等のない適正な画像の生成を実現した技術が知られている(例えば、特許文献1参照)。
【特許文献1】特開平11−144063号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
視点に基づく画像生成の方法の一つとして、Zバッファ法による隠面消去処理がある。この方法では、フレームバッファに描かれた画像の各画素のZ値をZバッファに格納し、Zバッファに格納されているZ値に応じてフレームバッファへの書き込み(色情報の更新)の有無が決定される。Zバッファには、フレームバッファの各画素に対応するZ値として、視点を基準とした奥行き値が格納される。具体的には、視点の位置から、例えば無限遠として定められた位置までの範囲にZ値が割り当てられ、奥行き値に対応するZ値がZバッファに格納される。
【0005】
この場合、Z値の精度はZ値のビット数によって決まる。具体的には、Z値のビット数が多いほど、Z値の単位値に対する奥行き値(より具体的には、ゲーム空間における視点からの距離)が小さい、即ちZ値の精度が高くなる。例えば、距離1kmを8ビット(256=2)で表す場合には、Z値「1」に対して約3.9mとなるが、12ビット(4096=212)の場合には約0.24mとなる。また、Zバッファ法による隠面消去処理では、Z値を基に画素毎にオブジェクトの前後関係を判定するが、Zバッファの精度が低いと、この前後関係が正確に判定されないことがある。例えば、近接して配置されているオブジェクトについて考えてみると、奥行き値は互いに異なっているのにも関わらずZ値が等しくなるといった事態が発生し、これにより、オブジェクトの前後関係が全部或いは部分的に逆転して描画されるといった不都合が生じる。この問題は、多数のオブジェクトで1つのモデルが構成されたモデルオブジェクトを被写体とし、カメラをズームさせて画像生成する際に問題となる。
【0006】
本発明は上記事情に鑑みて為されたものであり、Z値の精度を向上させることで、オブジェクトの前後の位置関係が正確に判定されないことによる不適切な画像生成を防止することを目的としている。
【課題を解決するための手段】
【0007】
上記課題を解決するための第1の発明は、
コンピュータに、仮想カメラから見た仮想空間の画像をZバッファ法に基づき生成させるためのプログラム(例えば、図12のゲームプログラム410)であって、
前記仮想カメラから描画最遠位置までの全奥行のうち、前記Zバッファ法に用いるZ値を適用するZ値適用範囲を設定する設定手段(例えば、図12のリプレイ制御部211;図16のステップB11〜B19)、
前記設定されたZ値適用範囲に対してZ値を割り付け、当該割り付けたZ値に基づくZバッファ法により当該Z値適用範囲内の隠面消去処理を行って前記仮想カメラから見た前記仮想空間の画像を生成する画像生成手段(例えば、図12のリプレイ制御部211及び画像生成部230;図16のステップB21)、
として前記コンピュータを機能させるためのプログラムである。
【0008】
また、第12の発明は、
仮想カメラから見た仮想空間の画像をZバッファ法に基づき生成する画像生成装置(例えば、図1,12の家庭用ゲーム装置1200)であって、
前記仮想カメラから描画最遠位置までの全奥行のうち、前記Zバッファ法に用いるZ値を適用するZ値適用範囲を設定する設定手段(例えば、図12のリプレイ制御部211)と、
前記設定されたZ値適用範囲に対してZ値を割り付け、当該割り付けたZ値に基づくZバッファ法により当該Z値適用範囲内の隠面消去処理を行って前記仮想カメラから見た前記仮想空間の画像を生成する画像生成手段(例えば、図12のリプレイ制御部211及び画像生成部230)と、
を備える画像生成装置である。
【0009】
この第1又は第12の発明によれば、仮想カメラから描画最遠位置までの全奥行のうち、Zバッファ法に用いるZ値を適用するZ値適用範囲が設定され、設定されたZ値適用範囲に対してZ値を割り付け、割り付けたZ値に基づくZバッファ法によりZ値適用範囲内の隠面消去処理を行って仮想カメラから見た仮想空間の画像が生成される。
【0010】
つまり、従来のように全奥行に対してZ値が割り付けられるのではなく、全奥行のうちの一部範囲であるZ値適用範囲に対してZ値が割り付けられる。これにより、Z値の単位値に対する奥行き値が小さくなる、即ちZ値の精度が高くなるため、近接した2つのオブジェクト同士であっても前後関係が精確に判定され、オブジェクトの前後関係が逆転された不適切な画像が生成されるといったことが防止される。
【0011】
第2の発明は、第1の発明のプログラムであって、
前記仮想空間中のオブジェクトの中から被写体オブジェクトを選択する選択手段(例えば、図12のリプレイ制御部211)として前記コンピュータを機能させ、
前記設定手段が、前記仮想カメラから描画最遠位置までの全奥行のうちの、前記選択された被写体オブジェクトを含む所定範囲をZ値適用範囲として設定するように前記コンピュータを機能させるためのプログラムである。
【0012】
この第2の発明によれば、仮想空間中のオブジェクトの中から被写体オブジェクトが選択され、仮想カメラから描画最遠位置までの全奥行きのうちの、選択された被写体オブジェクトを含む所定範囲がZ値適用範囲として設定される。これにより、被写体オブジェクトを含む所定範囲、即ち仮想カメラを基に描画され得る範囲がZ値適用範囲として適切に設定される。
【0013】
この場合、第3の発明として、
前記選択手段が、前記被写体オブジェクトとするオブジェクトを複数選択し、
前記設定手段が、前記選択された全てのオブジェクトを含むようにZ値適用範囲を設定する、
ように前記コンピュータを機能させるためのプログラムとしても良い。
【0014】
この第3の発明によれば、仮想カメラの被写体オブジェクトとする複数のオブジェクトが選択され、選択された全てのオブジェクトを含むようにZ値適用範囲が設定される。
【0015】
また、第4の発明として、
前記選択手段が、前記被写体オブジェクトとするオブジェクトを複数選択し、
前記設定手段が、前記選択された各オブジェクトそれぞれを含むZ値適用範囲を設定するように前記コンピュータを機能させるためのプログラムとしても良い。
【0016】
この第4の発明によれば、仮想カメラの被写体オブジェクトとするオブジェクトが複数選択され、選択された各オブジェクトそれぞれを含むZ値適用範囲が設定される。これにより、例えばフライトシュミレーションのように、ゲーム空間内を複数体の飛行機オブジェクトが距離をおいて飛行している場合等、複数の被写体オブジェクトがある程度の距離をおいて配置され、且つ被写体オブジェクト間の空間(領域)には描画すべきオブジェクトが無い場合、被写体オブジェクトそれぞれを含むよう複数のZ値適用範囲をとびとびに設定することで、効率良くZ値適用範囲を設定してZ値の精度を高めることが可能となる。
【0017】
第5の発明は、第2〜第4の何れかの発明のプログラムであって、
前記設定手段が、前記Z値適用範囲の奥行長を、前記仮想カメラと前記被写体オブジェクト間の距離に応じて可変に設定するように前記コンピュータを機能させるためのプログラムである。
【0018】
この第5の発明によれば、Z値適用範囲の奥行長が、仮想カメラと被写体オブジェクト間の距離に応じて可変に設定される。仮想カメラと被写体オブジェクト間の距離が変化すると、仮想カメラの視野が変化する、即ち描画すべき範囲が変化する。このため、仮想カメラと被写体オブジェクト間の距離の変化に応じてZ値適用範囲の奥行き長を可変に設定することで、効率良くZ値適用範囲を設定してZ値の精度を高めることが可能となる。
【0019】
この場合、第6の発明のように、
前記設定手段が、前記仮想カメラと前記被写体オブジェクト間の距離が長いほど、前記Z値適用範囲が狭くなるように設定するように前記コンピュータを機能させるためのプログラムとしても良い。
【0020】
この第6の発明によれば、仮想カメラと被写体オブジェクト間の距離が長いほど、Z値適用範囲が狭くなるように設定される。ところで、Z値適用範囲の端部位置であって仮想カメラから見て手前側の位置は、仮想カメラと被写体オブジェクト間に設定される。また、仮想空間中のオブジェクトの配置によっては、仮想カメラと被写体オブジェクトの間に描画すべきオブジェクトが位置しないことがあるが、このような場合、Z値適用範囲の手前側の位置を被写体オブジェクトにより近い位置に設定することで、Z値適用範囲をより狭くなるように設定することができる。このため、仮想カメラと被写体オブジェクト間の距離が長いほど、Z値適用範囲を狭くするように設定することで、効率良くZ値適用範囲を設定してZ値の精度を高めることが可能となる。
【0021】
第7の発明は、第1〜第4の何れかの発明のプログラムであって、
前記設定手段が、前記Z値適用範囲の奥行長を、前記仮想カメラの画角に応じて可変に設定するように前記コンピュータを機能させるためのプログラムである。
【0022】
この第7の発明によれば、Z値適用範囲の奥行長が、仮想カメラの画角に応じて可変に設定される。仮想カメラの画角が変化すると、仮想カメラの視野が変化する、即ち描画すべき範囲が変化する。このため、仮想カメラの画角の変化に応じてZ値適用範囲の奥行き長を可変に設定することで、効率良くZ適用範囲を設定してZ値の精度を高めることが可能となる。
【0023】
この場合、第8の発明として、
前記設定手段が、前記仮想カメラの画角が狭いほど、前記Z値適用範囲が狭くなるように設定するように前記コンピュータを機能させるためのプログラムとしても良い。
【0024】
この第8の発明によれば、仮想カメラの画角が狭いほど、Z値適用範囲が狭くなるように設定される。仮想カメラの画角を狭くすることはズームに相当し、描画される範囲が狭くなる。このため、仮想カメラの画角が狭いほど、Z値適用範囲を狭くなるように設定することで、効率良くZ値適用範囲を設定してZ値の精度を高めることが可能となる。
【0025】
第9の発明は、第1〜第4の何れかの発明のプログラムであって、
前記設定手段が、前記Z値適用範囲の奥行長を、前記仮想カメラの俯角に応じて可変に設定するように前記コンピュータを機能させるためのプログラムである。
【0026】
この第9の発明によれば、Z値適用範囲の奥行長が、仮想カメラの俯角に応じて可変に設定される。仮想カメラの俯角が変化すると、仮想カメラの視野が変化する、即ち描画すべき範囲が変化する。このため、仮想カメラの俯角の変化に応じてZ値適用範囲の奥行き長を可変に設定することで、効率良くZ値適用範囲を設定してZ値の精度を高めることが可能となる。
【0027】
この場合、第10の発明として、
前記設定手段が、前記仮想カメラの俯角が大きいほど、前記Z値適用範囲が狭くなるように設定するように前記コンピュータを機能させるためのプログラムとしても良い。
【0028】
この第10の発明によれば、仮想カメラの俯角が大きいほど、Z値適用範囲が狭くなるように設定される。例えば、略平面上に配置されたオブジェクトを斜め上方から俯瞰するように仮想カメラが設定される場合、位置や画角といった他の設定パラメータが同じならば、俯角が大きいほど、該仮想カメラの視線方向が鉛直方向に近づいて描画範囲が狭くなり、逆に、俯角が小さいほど、視線方向が水平方向に近づいて描画範囲が広くなる。このため、仮想カメラの俯角が大きいほど、Z値適用範囲を狭くなるように設定することで、効率良くZ値適用範囲を設定したZ値の精度を高めることが可能となる。
【0029】
第11の発明は、第1〜第10の何れかの発明のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体(例えば、図12の記憶部400)である。
【0030】
ここで、情報記憶媒体とは、記憶されている情報をコンピュータが読み取り可能な、例えばハードディスクやMO、CD−ROM、DVD、メモリカード、ICメモリ等の記憶媒体である。従って、この第11の発明によれば、情報記憶媒体に記憶されている情報をコンピュータに読み取らせて演算処理を実行させることで、第1〜第10の何れかの発明と同様の効果を奏することができる。
【発明の効果】
【0031】
本発明によれば、従来のように全奥行に対してZ値が割り付けられるのではなく、全奥行のうちの一部範囲であるZ値適用範囲に対してZ値が割り付けられ、割り付けられたZ値に基づくZバッファによりZ値適用範囲内の隠面消去処理を行って、仮想カメラから見た仮想空間の画像が生成される。これにより、Z値の単位値に対する奥行き値が小さくなる、即ちZ値の精度が高くなるため、近接した2つのオブジェクト同士であっても前後関係が精確に判定され、オブジェクトの前後関係が逆転された不適切な画像が生成されるといったことが防止される。
【発明を実施するための最良の形態】
【0032】
以下、図面を参照して、本発明に好適な実施形態を説明する。尚、以下では、家庭用ゲーム装置でバイクレースゲームを実行する場合を説明するが、本発明の適用可能な実施形態がこれに限定されるものではない。
【0033】
[家庭用ゲーム装置の外観]
図1は、本実施形態における家庭用ゲーム装置1200の概略外観図である。同図に示すように、家庭用ゲーム装置1200は、本体装置1210と、プレーヤがゲーム操作を入力するための方向キー1221やボタンスイッチ1222を有するゲームコントローラ1220と、スピーカ1231を有するディスプレイ1230とを備える。ゲームコントローラ1220は本体装置1210に接続され、ディスプレイ1230は、画像信号及び音信号を伝送可能なケーブル1201によって本体装置1210に接続されている。
【0034】
本体装置1210がゲーム処理を行うために必要なプログラムやデータ等を含むゲーム情報等は、例えば本体装置1210に着脱自在な情報記憶媒体であるCD−ROM1212やメモリカード1213、ICカード1214等に格納されている。尚、このゲーム情報等は、本体装置1210が具備する通信装置1215を介して通信回線Nに接続し、外部装置から取得することとしても良い。ここで、通信回線Nとは、データ授受が可能な通信路を意味する。即ち、通信回線Nとは、直接接続のための専用線(専用ケーブル)やイーサネット(登録商標)等によるLANの他、電話通信網やケーブル網、インターネット等の通信網を含む意味であり、また、通信方式については有線/無線を問わない。
【0035】
また、本体装置1210は、例えばCPU、ROMやRAM等のメモリを搭載した制御ユニット1211と、CD−ROM1212等の情報記憶媒体の読取装置とを具備する。本体装置1210は、CD−ROM1212等から読み出したゲーム情報と、ゲームコントローラ1220からの操作信号とに基づいて種々のゲーム処理を実行し、ゲーム画面の画像信号及びゲーム音の音信号を生成する。そして、生成した画像信号及び音信号をディスプレイ1230に出力して、ディスプレイ1230にゲーム画面を表示させるとともに、スピーカ1231からゲーム音を出力させる。プレーヤは、ディスプレイ1230に表示されたゲーム画面を見、スピーカ1231から出力されるゲーム音を聞きながら、ゲームコントローラ1220を操作してバイクレースゲームを楽しむ。
【0036】
[原理]
本実施形態のバイクレースゲームでは、ゲーム終了後、リプレイデータを基にゲームプレイを再現するリプレイが行われる。図2は、リプレイ時のゲーム空間の一例を示す図である。リプレイ時のゲーム空間は、リプレイデータを基に、略平面のレースコース10上にバイク20等のオブジェクトが配置されて再構築される。リプレイデータは、ゲーム進行中に蓄積記録されたプレイデータであり、フレーム毎の各オブジェクトの位置や姿勢のデータ、或いはプレーヤによる操作データを含んでいる。
【0037】
また、リプレイ時のゲーム空間には、複数のリプレイカメラCMが設定される。各リプレイカメラCMは、斜め後方から自車(プレーヤキャラクタであるプレーヤの操作対象のバイク20)に追従されるゲーム中とは異なり、斜め上方からレースコース10の一部を俯瞰する等して複数位置に設定される。同図では、5つのリプレイカメラCM1〜CM5が設定されている。リプレイカメラCM1〜CM5は、それぞれ、レースコース10をその経路に沿って5分割した各部分コースに対応付けられ、対応する部分コースを自車が走行する際に切り替えられる。
【0038】
また、リプレイカメラCMは、位置は固定であり、カメラ角度及び画角φが可変に制御されることで、視線方向が自車に向かうように制御される。カメラ角度には、鉛直方向の首振り角度であるピッチ角X、水平方向の首振り角度であるヨー角Y、視線方向を中心とした回転角度であるロール角Zが含まれる。
【0039】
そして、これら複数のリプレイカメラCMのうち、何れか一のリプレイカメラCM(例えば、レースコース10のうち、自車が位置する部分コースに対応付けられているリプレイカメラCM)に基づく画像が、リプレイ画像としてリプレイ画面に表示される。
【0040】
リプレイ画像は、Zバッファ法による隠面消去処理を用いて生成される。Zバッファ法とは、生成された画像の色を画素毎に記憶するフレームバッファとは別に、描かれた画像のZ値を画素毎に記憶するZバッファを用いる方法であり、Zバッファに格納されているZ値に応じてフレームバッファへの書き込み(色情報の更新)の有無が決定される。Zバッファには、リプレイカメラCMを基準とした各画素の奥行き距離(奥行き値)がZ値として格納される。具体的には、リプレイカメラCMの描画対象となる範囲に対してZ値が適用され、奥行き距離に対応して割り振られたZ値がZバッファに格納される。
【0041】
図3は、従来のZ値の適用を示す図である。同図では、横方向をリプレイカメラCMの奥行き距離として示している。同図に示すように、従来では、リプレイカメラCMの位置P0から無限遠に相当する位置(描画最遠位置)P1までの範囲(全奥行)がZ値適用範囲とされ、このZ値適用範囲にZ値が適用される。
【0042】
具体的には、Zバッファに格納される各画素のZ値のビット数を「n」とすると、リプレイカメラCMの位置P0のZ値が「0」とされ、描画最遠位置P1のZ値が「2−1」とされる。そして、Z値適用範囲である位置P0から描画最遠位置P1の範囲がZ値で表現可能な最大数「2」で等分され、それぞれにZ値が割り当てられる。即ち、Z値の単位値に対して、Z値適用範囲を2等分した奥行き距離が割り当てられる。
【0043】
例えば、リプレイカメラCMの位置P0から描画最遠位置P1までの奥行き距離を「30km」とし、Z値のビット数を「16」とする。そして、位置P0のZ値を「0」とし、描画最遠位置P1のZ値を「216−1」として、位置P0から描画最遠位置P1までのZ値適用範囲にZ値を割り当てると、Z値の最小単位「1」に対して、奥行き距離「約46cm(=30km/216)」が割り当てられる。即ち、Z値の精度は「約46cm」となる。
【0044】
これに対して、本実施形態では、図4(a)に示すようにZ値適用範囲が設定される。即ち、Z値適用範囲は、リプレイカメラCMの位置P0から描画最遠位置P1まで(全奥行)の一部範囲であって、リプレイカメラCMの対象オブジェクトである自車PCの位置Ppを含む範囲として設定される。Z値適用範囲の両端位置のうち、リプレイカメラCMに近い側の位置(手前側位置)P2は、リプレイカメラCMの位置P0と自車の位置Ppとの間に設定され、遠い側の位置(奥側位置)P3は、自車の位置Ppと描画最遠位置P1との間に設定される。
【0045】
そして、このZ値適用範囲にZ値が適用される。例えば、Z値がnビットの場合、手前側位置P2のZ値が「0」とされ、奥側位置P3のZ値が「2−1」される。そして、この手前側位置P2から奥側位置P3までのZ値適用範囲が「2」等分され、それぞれにZ値が割り当てられる。
【0046】
また、Z値適用範囲はどのように設定しても良いが、以下では、同図(b)に示すように、奥側位置P3をリプレイカメラCMの描画最遠位置P1に一致させ、手前側位置P2をリプレイカメラCMに応じて決定することにより、Z値適用範囲を設定することにする。
【0047】
Z値適用範囲の手前側位置P2は、図5に示すように設定される。即ち、式(1)に従って、リプレイカメラの位置P0から自車の位置Ppまでの距離Lpに、リプレイカメラCMを基に定められる係数kを乗じて距離L2が算出される。そして、リプレイカメラの位置P0から距離L2だけ離れた位置が、手前側位置P2として設定される。
L2=Lp×k ・・(1)
但し、0<k<1、である。
【0048】
ところで、バイクレースゲームでは、図6に示すように、リプレイカメラCMは、レースコース10を外部上方から見下ろすように設定される。しかしこの場合、描画対象となるバイク20はレースコース10に配置されているため、リプレイカメラCMの視野のうち手前側の一部領域には描画すべきオブジェクトが位置しない。このため、例えば自車PCに視線方向が向くように設定される場合、リプレイカメラCMと自車PCとの間にZ値適用範囲の手前側位置P2が設定されるとともに、路面や背景等の後方位置に設定される描画最遠位置P1が、Z値適用範囲の奥側位置P3とされる。
【0049】
また、リプレイカメラCMの描画範囲は、図7に示すように、該リプレイカメラCMと自車との間の距離に応じて異なる。同図では、自車との距離がLp1であるリプレイカメラCM1と、自車との距離がLp2であるリプレイカメラCM2とが配置されている。但し、Lp1<Lp2、である。また、リプレイカメラCM1,CM2は、画角φ及びカメラ角度が等しく、位置のみが異なり、視線方向が自車PCに向かうように設定されている。
【0050】
そして、リプレイカメラCM1,CM2それぞれの視野のうち、自車との間の領域であって描画すべきオブジェクトが位置しない領域は、リプレイカメラCM2のほうがリプレイカメラCM1よりも大きい。このため、自車との距離Lpが長い(遠い)ほど、Z値適用範囲の手前側位置P2を、リプレイカメラCMから見て遠い位置に設定することができる。同図においては、リプレイカメラCM2から手前側位置P2までの距離は、リプレイカメラCM1から手前側位置P2までの距離に比べて長い。従って、式(1)に示したように、手前側位置P2までの距離L2を、自車との距離Lpに比例するように決定する。
【0051】
Z値適用範囲の手前側位置P2を決定するための係数kは、リプレイカメラCMに応じて決定される。具体的には、リプレイカメラCMの画角φ及び俯角θに応じて決定され、次式(2)に示すように、画角φを基に定められる係数kφと、俯角θを基に定められる係数kθとを乗じて算出される。
k=kφ×kθ ・・(2)
【0052】
図8は、リプレイカメラの画角φに応じた係数kφの決定を説明するための図である。
同図(a)は、画角φ1のリプレイカメラCM1の場合を示しており、同図(b)は、画角φ2のリプレイカメラCM2の場合を示している。但し、φ1>φ2、である。また、リプレイカメラCM1,CM2の何れも、画角φ以外のパラメータ(位置やカメラ角度)は等しく、視線方向が自車に向かうように設定されている。即ち、リプレイカメラCM2は、リプレイカメラCM1のズーム時に相当する。
【0053】
同図によれば、リプレイカメラCM1,CM2の何れも、自車を中心とする所定範囲が描画範囲となっているが、その範囲は異なる。即ち、リプレイカメラCM1のほうがリプレイカメラCM2よりも描画範囲が狭く、例えば、リプレイカメラCM1では描画範囲内に入っている他車ECが、リプレイカメラCM2では描画範囲内に入らない。
【0054】
つまり、リプレイカメラCMの画角φが異なると、該リプレイカメラCMの描画範囲が異なる。具体的には、画角φが狭いほど、描画範囲が狭くなる。このため、リプレイカメラCMの画角φが狭いほど、Z値適用範囲の手前側位置P2を、該リプレイカメラCMから見てより奥側の位置に設定することができる。即ち、画角φが狭いほど、係数kφが大きく設定される。
【0055】
図9は、画角φと係数kφとの関係の一例を示すグラフである。同図では、横軸をリプレイカメラCMの画角φとし、縦軸に係数kφを示している。同図の場合、係数kφは、画角φが大きくなるにつれて画角φにほぼ比例して小さくなる。尚、画角φと係数kφとの関係を表すグラフの形状はこれに限らず、画角φが大きくなるにつれて係数kφが小さくなるのであれば、これ以外であっても良い。
【0056】
図10は、リプレイカメラCMの俯角θに応じた係数kθの決定を説明するための図である。同図では、俯角がθ1であるリプレイカメラCM1と、俯角がθ2であるリプレイカメラCM2とが配置されている。但し、θ1>θ2、である。また、リプレイカメラCM1,CM2の何れも、画角φ及び自車PCとの距離Lpは等しく、視線方向が自車PCに向かうように設定されている。
【0057】
同図によれば、リプレイカメラCM1,CM2の何れも、自車を中心とする所定範囲が描画範囲となっているが、その範囲は異なる。即ち、リプレイカメラCM2よりリプレイカメラCM1のほうが描画範囲が狭く、例えば、リプレイカメラCM2では描画範囲に入っている他車ECが、リプレイカメラCM1では描画範囲内に入らない。
【0058】
つまり、リプレイカメラの俯角θが異なると、該リプレイカメラCMの描画範囲が異なる。具体的には、俯角θが大きいほど、描画範囲が狭くなる。このため、リプレイカメラCMの俯角θが大きいほど、Z値適用範囲の手前側位置P2を、該リプレイカメラCMから見て奥側の位置に設定することができる。即ち、俯角θが大きいほど、係数kが大きく設定される。
【0059】
図11は、俯角θと係数kθとの関係の一例を示すグラフである。同図では、横軸をリプレイカメラCMの俯角θとし、縦軸に係数kθを示している。同図の場合、係数kθは、俯角θが大きくなるにつれて、俯角θにほぼ比例して大きくなる。尚、俯角θと係数kθとの関係を表すグラフはこれに限らず、俯角θが大きくなるにつれて係数kθが大きくなるのであれば、これ以外であっても良い。
【0060】
[機能構成]
図12は、本実施形態における家庭用ゲーム装置1200の機能構成を示すブロック図である。同図に示すように、家庭用ゲーム装置1200は、機能的には、操作入力部100と、処理部200と、画像表示部330と、音出力部340と、記憶部400とを備えて構成される。
【0061】
操作入力部100は、プレーヤによる操作指示入力を受け付け、操作に応じた操作信号を処理部200に出力する。この機能は、例えばボタンスイッチやレバー、ダイヤル、マウス、キーボード、各種センサ等によって実現される。図1では、ゲームコントローラ1220がこれに該当する。
【0062】
処理部200は、家庭用ゲーム装置1200の全体制御やゲームの進行、画像生成等の各種演算処理を行う。この機能は、例えばCPU(CISC型、RISC型)、ASIC(ゲートアレイ等)等の演算装置やその制御プログラムにより実現される。図1では、制御ユニット1211に実装されているCPU等がこれに該当する。
【0063】
また、処理部200は、主にゲームの実行に係る演算処理を行うゲーム演算部210と、ゲーム演算部210の処理によって求められた各種のデータに基づき、仮想カメラ等の所与の視点から見た仮想三次元空間(ゲーム空間)の画像を生成する画像生成部230と、効果音やBGM等のゲーム音を生成する音生成部240とを含んでいる。
【0064】
ゲーム演算部210は、操作入力部100から入力された操作信号や、記憶部400から読み出したプログラムやデータ等に基づいて種々のゲーム処理を実行する。ゲーム処理としては、例えば、仮想空間にレースコース10やバイク20、背景等のオブジェクトを配置してゲーム空間を設定する処理、操作入力部100からの操作信号に基づくプレーヤキャラクタ(自車)の制御、オブジェクトのヒット交差判定(ヒットチェック)、視点(仮想カメラ)の制御等がある。また、本実施形態では、ゲーム演算部210は、リプレイ制御部211を含んでいる。
【0065】
リプレイ制御部211は、ゲーム終了後、リプレイデータ432を基にリプレイの進行を制御する。具体的には、先ず、リプレイデータ432に基づき、仮想空間にレースコース10やバイク20、背景等のオブジェクトを配置してゲーム空間を再構築する。次いで、リプレイカメラデータ433を参照して、再構築したゲーム空間に複数のリプレイカメラCMを配置する。
【0066】
ここで、リプレイデータ432は、ゲーム中に蓄積記憶された、フレーム毎のバイク20等の各オブジェクトの位置や姿勢等のデータ群である。尚、リプレイデータ432は、オブジェクトの位置姿勢等のデータではなく、フレーム毎のプレーヤにより入力された操作データとしても良い。
【0067】
また、リプレイカメラデータ433は、ゲーム空間に配置されたリプレイカメラCMに関するデータである。図13に、リプレイカメラデータ433のデータ構成の一例を示す。同図によれば、リプレイカメラデータ433は、リプレイカメラCM毎に用意され、該当するリプレイカメラ433aと、描画最遠位置433bと、設定データ433cと、制御データ433gとを格納している。
【0068】
リプレイカメラ433aは、該当するリプレイカメラCMの識別データを格納する。描画最遠位置433bは、該当するリプレイカメラCMから、無限遠の位置として予め定められた位置(描画最遠位置P1)までの距離L1を格納する。この距離L1は固定値である。
【0069】
設定データ433cは、リプレイカメラCMのパラメータ433d毎に、初期値433eと、現在値433fとを対応付けて格納している。パラメータ433dには、ゲーム空間における位置(x,y,z)と、カメラ角度であるピッチ角X、ヨー角Y及びロール角Zと、画角φとがある。尚、このピッチ角Xが俯角θである。
【0070】
制御データ433gは、パラメータ433h毎に制御内容433iを対応付けて格納している。制御内容433iは、該当するパラメータを「固定」とするか「可変」とするかを指定するデータを格納する。
【0071】
リプレイ制御部211は、各リプレイカメラCMについて、該当するリプレイカメラデータ433の設定データ433cを参照し、各パラメータを定められた初期値とすることで、該リプレイカメラCMを再構築されたゲーム空間に配置(初期設定)する。
【0072】
その後、リプレイ制御部211はリプレイを開始する。リプレイ中は、フレーム毎に以下の処理を繰り返す。即ち、(1)リプレイデータ432を基に、バイク20等のオブジェクトを移動制御(再配置)する。次いで、(2)設定されている複数のリプレイカメラCMのうちから画像生成を行う一のリプレイカメラCMを、例えば自車の位置を基に選択する。そして、(3)選択したリプレイカメラCMに該当するリプレイカメラデータ433の制御データ433gに従って該リプレイカメラCMを制御する。即ち、制御データ433gにおいて、制御内容が「可変」に定められているパラメータを可変させることで、視線方向が自車PCに向かうように該リプレイカメラを制御(再配置)する。
【0073】
続いて、(4)選択したリプレイカメラCMに該当するリプレイカメラデータ433を参照して、該リプレイカメラCMの描画最遠位置P1を判定し、判定した描画最遠位置P1をZ値適用範囲の奥側位置P3とする。また、Z値適用範囲の手前側位置P2を決定する。即ち、該当するリプレイカメラデータ433の設定データ433cを参照し、該リプレイカメラCMの画角φを基に、係数算出データ435に従って係数kφを算出する。また、該リプレイカメラCMの俯角θ(ピッチ角X)を基に、係数算出データ435に従って係数kθを算出する。そして、算出した係数kφと係数kθと乗じて係数kを算出する。また、該リプレイカメラCMから自車までの距離Lpを算出し、この距離Lpに算出した係数kを乗じて、Z値適用範囲の手前側位置P2までの距離L2を算出する。
【0074】
ここで、係数算出データ435は、Z値適用範囲の手前側位置P2を決定する係数kの算出方法を定義したデータである。本実施形態では、画角φを基に係数kφを算出するための例えば図9に一例を示した画角φと係数kφとの関係式と、俯角θを基に係数kθを算出するための例えば図11に一例を示した俯角θと係数kθとの関係式と、係数kφ,kθから係数kを算出するための算出式である式(2)とを含んでいる。
【0075】
リプレイ制御部211により決定されたZ値適用範囲は、Z値適用範囲データ434に格納される。図14に、Z値適用範囲データ434のデータ構成の一例を示す。Z値適用範囲データ434は、Z値適用範囲の手前側位置434aと、奥側位置434bとを格納している。各位置は、該当するリプレイカメラCMからの距離Lを格納する。
【0076】
そして、リプレイ制御部211は、算出した手前側位置P2から奥側位置P3までの範囲をZ値適用範囲とし、画像生成部230に、Zバッファ法によるZ値適用範囲内の隠面消去処理を行うことでリプレイカメラCMに基づく画像を生成させ、生成された画像を画像表示部330に表示させる。
【0077】
音生成部240は、ゲーム中に使用される効果音やBGM等のゲーム音を生成し、生成したゲーム音の音信号を音出力部340に出力する。音出力部340は、音生成部240からの音信号に基づいてBGMや効果音等のゲーム音声を出力する。この機能は、例えばスピーカ等によって実現される。図1では、スピーカ1231がこれに相当する。
【0078】
記憶部400は、処理部200に家庭用ゲーム装置1200を統合的に制御させるための諸機能を実現するためのシステムプログラムや、ゲームを実行させるために必要なプログラムやデータ等を記憶するとともに、処理部200の作業領域として用いられ、処理部200が各種プログラムに従って実行した演算結果や操作入力部100から入力される入力データ等を一時的に記憶する。この機能は、例えば各種ICメモリやハードディスク、CD−ROM、DVD、MO、RAM、VRAM等によって実現される。図1では、制御ユニット1211に実装されているROMやRAM等がこれに該当する。
【0079】
また、記憶部400は、処理部200をゲーム演算部210として機能させるためのゲームプログラム410及びゲームデータを記憶するとともに、フレームバッファ421とZバッファ422とが形成されている。ゲームプログラム410には、リプレイ制御部211として機能させるためのリプレイプログラム411が含まれている。また、ゲームデータには、オブジェクトデータ431と、リプレイデータ432と、リプレイカメラデータ433と、Z値適用範囲データ434と、係数算出データ435とが含まれている。
【0080】
オブジェクトデータ431は、ゲーム空間に配置される各オブジェクトについてのデータであり、レースコース10や背景等のデータ、キャラクタである各バイク20の現在の位置や姿勢、移動速度のデータや、バイク20を構成する各オブジェクトのデータであモデリングデータやテクスチャデータ等を含んでいる。
【0081】
[処理の流れ]
図15は、本実施形態におけるゲーム処理の流れを説明するためのフローチャートである。この処理は、ゲーム演算部210がゲームプログラム410を実行することで実現される。
【0082】
同図によれば、ゲーム演算部210は、先ず、仮想空間にレースコース10や背景、自車及び他車のバイク20、視点(仮想カメラ)を配置してゲーム空間の初期設定を行う(ステップA1)。その後、ゲーム処理を実行してゲームを開始する(ステップA3)。ゲーム中は、フレーム毎に、次の処理を行う。即ち、(1)操作入力部100から入力される操作データに従って自車を制御する処理、(2)所定の制御ルーチンに従って他車を自動制御する処理、(3)自車及び他車の各バイク20の位置や姿勢等のデータを、該フレームでのプレイデータとしてリプレイデータ432に蓄積追加する処理、を行う。
【0083】
ゲームが終了すると、ゲーム演算部210は、該終了したゲームのリプレイを行うか否かを判定する。リプレイを行うか否かの判定は、例えば、操作入力部100からプレーヤによるリプレイ開始指示が入力されたか否かにより判定する。リプレイを行うならば(ステップA5:YES)、リプレイ制御部211がリプレイ処理を実行する(ステップA7)。
【0084】
図16は、リプレイ処理の流れを説明するためのフローチャートである。同図によれば、リプレイ制御部211は、仮想空間に、リプレイデータ432に基づき自車や他車等のオブジェクトを初期位置に配置してゲーム空間を再構築する(ステップB1)。また、リプレイカメラデータ433を参照して、再構築したゲーム空間に複数のリプレイカメラCMを配置(所期設定)する(ステップB3)。
【0085】
その後、リプレイが終了するまでの間、フレーム毎にループAの処理を実行する。ループAでは、リプレイ制御部211は、リプレイデータ432に基づき、自車や他車等の各オブジェクトを1フレーム分移動制御する(ステップB5)。次いで、設定されている複数のリプレイカメラCMのうちから、例えば自車の位置を基に、画像生成を行う一のリプレイカメラCMを選択する(ステップB7)。そして、選択したリプレイカメラCMを、該当するリプレイカメラデータ433の制御データ433gに従って、視線方向が自車に向くように制御する(ステップB9)。
【0086】
続いて、リプレイ制御部211は、該当するリプレイカメラデータ433を参照し、選択したリプレイカメラCMに設定されている描画最遠位置を、Z値適用範囲の奥側位置P3とする(ステップB11)。また、選択したリプレイカメラCMの画角φを基に、係数算出データ435を参照して係数kφを算出するとともに、俯角θを基に、係数算出データ435を参照して係数kθを算出する(ステップB13)。次いで、算出した係数kφに係数kθを乗じて係数kを算出する(ステップB15)。また、選択したリプレイカメラCMの位置から自車の位置Ppまでの距離Lpを算出する(ステップB17)。そして、算出した距離Lpに算出した係数kを乗じて、Z値適用範囲の手前側位置P2までの距離L2を算出する(ステップB19)。
【0087】
そして、画像生成部230に、設定したZ値適用範囲内の隠面消去処理を行うことで選択したリプレイカメラCMに基づく画像生成を行わせ、生成された画像を画像表示部330に表示させる(ステップB21)。
【0088】
リプレイデータ432に基づくリプレイが終了すると、ループAを終了し、続いてリプレイ処理を終了する。リプレイ処理が終了すると、ゲーム演算部210は、ゲーム処理を終了する。
【0089】
[ハードウェア構成]
図17は、本実施の形態における家庭用ゲーム装置1200のハードウェア構成の一例を示す図である。同図によれば、家庭用ゲーム装置1200は、CPU1000と、ROM1002と、RAM1004と、情報記憶媒体1006と、画像生成IC1008と、音生成IC1010と、I/Oポート1012,1014とを有し、システムバス1016により相互にデータの入出力が可能に接続されている。また、画像生成IC1008には表示装置1018が接続され、音生成IC1010にはスピーカ1020が接続され、I/Oポート1012にはコントロール装置1022が接続され、I/Oポート1014には通信装置1215が接続されている。
【0090】
CPU1000は、情報記憶媒体1006に格納されているプログラムやデータ、ROM1002に格納されているシステムプログラム(装置本体の初期化情報等)やデータ、コントロール装置1022によって入力される入力信号等に従って、装置全体の制御や各種データ処理を行う。このCPU1000は、図1の制御ユニット1211に搭載されているCPU、図12の処理部200に該当する。
【0091】
ROM1002、RAM1004及び情報記憶媒体1006は、図12の記憶部400に該当する。ROM1002は、家庭用ゲーム装置1200のシステムプログラムや、図12の記憶部400に記憶されている情報の内、特に、予め設定されているプログラムやデータ等を記憶する。RAM1004は、CPU1000の作業領域として用いられ、例えば、ROM1002や情報記憶媒体1006の所与の内容、1フレーム分の画像データ、CPU1000による演算結果等が格納される。また、情報記憶媒体1006は、ICメモリカードや本体装置に着脱自在なハードディスクユニット、MO等によって実現される。
【0092】
画像生成IC1008は、CPU1000からの画像情報に基づいて表示装置1018に表示するゲーム画面の画素情報を生成する集積回路である。表示装置1018は、画像生成IC1008で生成された画素情報に基づくゲーム画面を表示する。この画像生成IC1008は、図12の画像生成部230に該当し、表示装置1018は、図12の画像表示部330、図1のディスプレイ1230に該当する。
【0093】
音生成IC1010は、情報記憶媒体1006やROM1002に記憶される情報に基づいて効果音やBGM等のゲーム音を生成する集積回路であり、生成されたゲーム音はスピーカ1020によって出力される。この音生成IC1010は、図12の音生成部240に該当し、スピーカ1231は、図12の音出力部340、図1のスピーカ1231に該当する。
【0094】
尚、画像生成IC1008、音生成IC1010等で行われる処理は、CPU1000或いは汎用のDSP等によってソフトウェア的に実行されることとしても良い。
【0095】
コントロール装置1022は、プレーヤがゲームの進行に応じて種々のゲーム操作を入力するための装置である。このコントロール装置1022は、図12の操作入力部100、図1のゲームコントローラ1220に該当する。
【0096】
通信装置1215は、家庭用ゲーム装置1200内部で使用される各種情報を外部とやり取りするための装置であり、他のゲーム装置と接続されてゲームプログラムに応じた所与の情報を送受信したり、通信回線を介してゲームプログラム等の情報を送受信する等に利用される。この通信装置1215は、図1の本体装置1210に具備される通信装置に該当する。
【0097】
[画面例]
図18は、本実施形態を適用した画面例であり、同一のゲーム空間において同一のリプレイカメラCMを基に、バイクOBを対象オブジェクトとして生成した画像である。同図(a)は、従来の方法による画像例である。即ち、図3(a)を参照して説明したように、リプレイカメラCMの位置P0から描画最遠位置P1までをZ値適用範囲としてZ値を適用した場合の画像例である。また、図18(b)は、本実施形態の方法による画像例である。即ち、図4(b)を参照して説明したように、リプレイカメラCMの位置P0から描画最遠位置P1までの対象オブジェクトであるバイクOBの位置Ppを含む一部範囲であって、位置P0と位置Ppとの間に設定される手前側位置P2から、描画最遠位置P1に一致する奥側位置P3までの範囲をZ値適用範囲としてZ値を適用した場合の画像例である。
【0098】
このバイクOBは、複数のオブジェクトから成るモデルオブジェクトであり、例えば、車体前方の前輪OB1及びフロントフォークOB2は、前外方からカウルOB3で覆われるように構成されている。しかし、図18(a)では、リプレイカメラCMを基準とした、前輪OB1及びフロントフォークOB2とカウルOB3との前後関係が逆転して判定され、カウルOB3の後方に在るはずの前輪OB1及びフロントフォークOB2が、カウルOB3の手前に在るように描画されている。これは、Z値の単位値に対する奥行き距離が大きいため、前輪OB1、フロントフォークOB2及びカウルOB3それぞれのZ値として同じ値が割り当てられたためである。これに対して、本実施形態の方法を用いた同図(b)では、前後関係が正しく判定され、前輪OB1及びフロントフォークOB2の手前方にカウルOB3が在るように描画されている。これは、バイクOBを構成する各オブジェクトに対して、その奥行き距離に応じた適切なZ値が割り当てられたためである。
【0099】
また、図19は、本実施形態を適用した他の画面例であり、同一のゲーム空間において同一のリプレイカメラCMを基に、画像中右側のバイクOBを被写体オブジェクトとして生成した画像である。同図(a)は、従来の方法による画像例であり、同図(b)は、本実施形態の方法による画像例である。
【0100】
同図によれば、従来の方法を用いた同図(a)では、上述の図18(a)と同様に、リプレイカメラCMを基準とした、バイクOBの前輪OB1及びフロントフォークOB2とカウルOB3との前後関係が逆転して判定され、カウルOB3の後方に在るはずの前輪OB1及びフロントフォークOB2が、カウルOB3の手前に在るように描画されている。これに対して、本実施形態の方法を用いた図19(b)では、上述の図18(b)と同様に、前後関係が正しく判定され、バイクOBの前輪OB1及びフロントフォークOB2の手前方にカウルOB3が在るように描画されている。
【0101】
[作用・効果]
本実施形態によれば、リプレイ時に、リプレイカメラCMの位置P0から描画最遠位置P1までの範囲内に、被写体オブジェクトである自車PCの位置Ppを含むZ値適用範囲が設定される。Z値適用範囲の両端位置のうち、リプレイカメラCMに遠い側の奥側位置P3は描画最遠位置P1に設定され、近い側の手前側位置P2はリプレイカメラCMを基に設定される。即ち、リプレイカメラCMの画角φを基に定められる係数kφと、俯角θを基に定められる係数kθとを乗算して係数kが算出され、リプレイカメラCMの位置P0から自車の位置Ppまでの距離Lpに、この算出した係数kを乗算することで、手前側位置P2までの距離L2が算出される。そして、設定されたZ値適用範囲にZ値が適用され、リプレイカメラCMに基づくZ値適用範囲内の隠面消去処理を行うことで、リプレイ画像が生成される。
【0102】
これにより、Z値の単位値に対する奥行き値が小さくなる、即ちZ値の精度が高くなるため、近接した2つのオブジェクト同士であっても前後関係が精確に判定され、オブジェクトの前後関係が逆転された不適切な画像が生成されるといったことが防止される。また、リプレイカメラCMと被写体オブジェクトである自車PCとの距離Lpや、リプレイカメラCMの画角φや俯角θを基に、Z値適用範囲の手前側位置P2を設定することで、効果的にZ値適用範囲を設定することができる。
【0103】
[変形例]
尚、本発明の適用可能な実施形態は上述の実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で適宜変更可能なのは勿論である。
【0104】
(A)Z値適用範囲
例えば、上述の実施形態では、Z値適用範囲の奥側位置P3を描画最遠位置P1に一致させて固定とし、手前側位置P2をリプレイカメラCMに応じて可変することにしたが、奥側位置P3を、例えば自車の位置に応じて可変とすることにしても良い。また更に、Z値適用範囲の手前側位置P2及び奥側位置P3の双方を可変とすることにしても良い。
【0105】
(B)係数k
また、上述した実施形態では、Z値適用範囲の手前側位置P2を決定するための係数kを、リプレイカメラCMの画角φを基に定まる係数kφと、俯角θを基に定まる係数kθとを乗じることで決定することにしたが、係数kφ,kθの何れか一方のみで決定することにしても良い。
【0106】
また、係数kを、画角φや俯角θといったパラメータに関わらず、リプレイカメラCM毎に予め定められた固定値としても良い。この場合、リプレイカメラCMの描画範囲は位置やカメラ角度といった設定内容から大凡定まるため、その設定内容に応じて係数kを設定しておけばよい。
【0107】
(C)被写体オブジェクト
また、上述の実施形態では、プレーヤキャラクタである自車を被写体オブジェクトとし、この自車の位置Ppを含むようにZ値適用範囲を設定することにしたが、自車以外のオブジェクト、例えば他車を被写体オブジェクトとしてZ値適用範囲を設定することにしても良い。
【0108】
また、自車だけではなく他車(例えば、レース開始前に指定した所定の他車)を含む複数のオブジェクトを被写体オブジェクトとし、この複数の被写体オブジェクトの位置を含むようにZ値適用範囲を設定することにしても良い。
【0109】
具体的には、図20に示すように、複数の被写体オブジェクト全ての位置を含むようにZ値適用範囲を設定する。同図では、自車PC及び他車ECの2つの被写体オブジェクトそれぞれの位置Pp1,Pp2を含むよう、Z値適用範囲が設定されている。この場合、リプレイカメラCMから、リプレイカメラCMに最も近い被写体オブジェクトである自車PCの位置Pp1までの距離Lpに係数kを乗じることで、Z値適用範囲の手前側位置P2までの距離L2を決定する。
【0110】
また、図21に示すように、複数の被写体オブジェクトそれぞれの位置を含むよう、複数のZ値適用範囲を設定することにしても良い。同図では、自車PC及び他車ECが被写体オブジェクトとされ、自車PCの位置Pp1を含むZ値適用範囲Aと、他車ECの位置Pp2を含むZ値適用範囲Bとが設定されている。そして、各Z値適用範囲にZ値が適用される。即ち、リプレイカメラCMに近いZ値適用範囲Aの手前側位置P2aのZ値を「0」、奥側位置P3aのZ値を「2−1」とし、この手前側位置P2aから奥側位置P3aまでのZ値適用範囲を「2」等分して、Z値「0〜2−1」を割り当てる。また、リプレイカメラCMに遠いZ値適用範囲Bの手前側位置P2bのZ値を「2」、奥側位置P3bのZ値を「2−1」とし、この手前側位置P2bから奥側位置P3bまでのZ値適用範囲を「2(n−m)」等分して、Z値「2〜2−1」を割り当てる。但し、m<n、である。
【0111】
(D)適用時
また、上述の実施形態では、本発明をリプレイ時に適用することにして説明したが、ゲーム時にも適用可能なのは勿論である。
【0112】
(E)適用するゲーム装置
また、上述した実施形態では、本発明を家庭用ゲーム装置に適用した場合について説明したが、図1に示した家庭用ゲーム装置1200のみではなく、業務用ゲーム装置や携帯型ゲーム装置、多数のプレーヤが参加する大型アトラクション装置等の種々の装置にも同様に適用できる。
【0113】
例えば図22は、本発明を業務用ゲーム装置に適用した一例を示す外観図である。同図によれば、業務用ゲーム装置1300は、レース用のバイクの形状をモチーフに形成されており、レース用のバイクの形状を模した筐体1310と、ゲーム画面を表示するディスプレイ1320と、ゲームの効果音やBGMを出力するスピーカ1330と、演算処理によって業務用ゲーム装置1300を統合的に制御してバイクゲームを実行する制御ユニット1340とを備えている。
【0114】
制御ユニット1340には、CPU等の演算処理装置と、業務用ゲーム装置1300の制御及びゲームの実行に必要なプログラムやデータが格納されたROMとが搭載されている。CPUは、ROMに記憶されたプログラムやデータを適宜読み出して演算処理することによって、ゲーム処理等の種々の処理を実行する。
【0115】
プレーヤは、筐体1310にまたがり、ディスプレイ1320に表示されるゲーム画面を見、スピーカ1330から出力されるゲーム音声を聞きながら、筐体1310が有するハンドル1311を操作して左右方向を決定し、不図示のアクセルグリップ或いはブレーキレバーによって加速・減速を入力するといった、本物のバイクと同様の操作をしてバイクレースゲームを楽しむ。
【0116】
(F)適用するゲーム
また、上述の実施形態では、バイクレースゲームに適用した場合を説明したが、例えばカーレースゲームやフライトシミュレーションといった他のゲームにも同様に適用可能なのは勿論である。
【図面の簡単な説明】
【0117】
【図1】家庭用ゲーム装置の外観例。
【図2】リプレイ時のゲーム空間の一例。
【図3】従来のZ値の適用例。
【図4】本実施形態のZ値の適用例。
【図5】Z値適用範囲の手前側位置P2の設定方法の説明図。
【図6】リプレイカメラの典型的な設定例。
【図7】被写体オブジェクトとの距離により描画範囲が異なることの説明図。
【図8】画角φにより描画範囲が異なることの説明図。
【図9】リプレイカメラの画角φと係数kφとの関係の一例。
【図10】俯角θにより描画範囲が異なることの説明図。
【図11】リプレイカメラの俯角θと係数kθとの関係の一例。
【図12】家庭用ゲーム装置の機能構成図。
【図13】リプレイカメラデータのデータ構成例。
【図14】Z値適用範囲データのデータ構成例。
【図15】ゲーム処理の流れ図。
【図16】ゲーム処理中に実行されるリプレイ処理の流れ図。
【図17】家庭用ゲーム装置のハードウェア構成例。
【図18】従来及び本実施形態の方法による画面例。
【図19】従来及び本実施形態の方法による画面例。
【図20】Z値適用範囲の変形例。
【図21】Z値適用範囲の変形例。
【図22】業務用ゲーム装置の外観例。
【符号の説明】
【0118】
1200 家庭用ゲーム装置
100 操作入力部
200 処理部
210 ゲーム演算部
211 リプレイ制御部
230 画像生成部
240 音生成部
330 画像表示部
340 音出力部
400 記憶部
410 ゲームプログラム
411 リプレイ制御プログラム
421 フレームバッファ
422 Zバッファ
431 オブジェクトデータ
432 リプレイデータ
433 リプレイカメラデータ
434 Z値適用範囲データ
435 係数算出データ

【特許請求の範囲】
【請求項1】
コンピュータに、仮想カメラから見た仮想空間の画像をZバッファ法に基づき生成させるためのプログラムであって、
前記仮想カメラから描画最遠位置までの全奥行のうち、前記Zバッファ法に用いるZ値を適用するZ値適用範囲を設定する設定手段、
前記設定されたZ値適用範囲に対してZ値を割り付け、当該割り付けたZ値に基づくZバッファ法により当該Z値適用範囲内の隠面消去処理を行って前記仮想カメラから見た前記仮想空間の画像を生成する画像生成手段、
として前記コンピュータを機能させるためのプログラム。
【請求項2】
前記仮想空間中のオブジェクトの中から被写体オブジェクトを選択する選択手段として前記コンピュータを機能させ、
前記設定手段が、前記仮想カメラから描画最遠位置までの全奥行のうちの、前記選択された被写体オブジェクトを含む所定範囲をZ値適用範囲として設定するように前記コンピュータを機能させるための請求項1に記載のプログラム。
【請求項3】
前記選択手段が、前記被写体オブジェクトとするオブジェクトを複数選択し、
前記設定手段が、前記選択された全てのオブジェクトを含むようにZ値適用範囲を設定する、
ように前記コンピュータを機能させるための請求項2に記載のプログラム。
【請求項4】
前記選択手段が、前記被写体オブジェクトとするオブジェクトを複数選択し、
前記設定手段が、前記選択された各オブジェクトそれぞれを含むZ値適用範囲を設定するように前記コンピュータを機能させるための請求項2に記載のプログラム。
【請求項5】
前記設定手段が、前記Z値適用範囲の奥行長を、前記仮想カメラと前記被写体オブジェクト間の距離に応じて可変に設定するように前記コンピュータを機能させるための請求項2〜4の何れか一項に記載のプログラム。
【請求項6】
前記設定手段が、前記仮想カメラと前記被写体オブジェクト間の距離が長いほど、前記Z値適用範囲が狭くなるように設定するように前記コンピュータを機能させるための請求項5に記載のプログラム。
【請求項7】
前記設定手段が、前記Z値適用範囲の奥行長を、前記仮想カメラの画角に応じて可変に設定するように前記コンピュータを機能させるための請求項1〜4の何れか一項に記載のプログラム。
【請求項8】
前記設定手段が、前記仮想カメラの画角が狭いほど、前記Z値適用範囲が狭くなるように設定するように前記コンピュータを機能させるための請求項7に記載のプログラム。
【請求項9】
前記設定手段が、前記Z値適用範囲の奥行長を、前記仮想カメラの俯角に応じて可変に設定するように前記コンピュータを機能させるための請求項1〜4の何れか一項に記載のプログラム。
【請求項10】
前記設定手段が、前記仮想カメラの俯角が大きいほど、前記Z値適用範囲が狭くなるように設定するように前記コンピュータを機能させるための請求項9に記載のプログラム。
【請求項11】
請求項1〜10の何れか一項に記載のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
【請求項12】
仮想カメラから見た仮想空間の画像をZバッファ法に基づき生成する画像生成装置であって、
前記仮想カメラから描画最遠位置までの全奥行のうち、前記Zバッファ法に用いるZ値を適用するZ値適用範囲を設定する設定手段と、
前記設定されたZ値適用範囲に対してZ値を割り付け、当該割り付けたZ値に基づくZバッファ法により当該Z値適用範囲内の隠面消去処理を行って前記仮想カメラから見た前記仮想空間の画像を生成する画像生成手段と、
を備える画像生成装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2007−304727(P2007−304727A)
【公開日】平成19年11月22日(2007.11.22)
【国際特許分類】
【出願番号】特願2006−130725(P2006−130725)
【出願日】平成18年5月9日(2006.5.9)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】