以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.構成
図1に本実施形態の画像生成システム(ゲームシステム)のブロック図の例を示す。なお、本実施形態の画像生成システムの構成は図1に限定されず、その構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、方向指示キー、操作ボタン、アナログスティック、レバー、各種センサ(角速度センサ、加速度センサ等)、マイク、或いはタッチパネル型ディスプレイなどにより実現できる。
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(DRAM、VRAM)などにより実現できる。そしてゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部170に保持される。
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(DVD、CD等)、HDD(ハードディスクドライブ)、或いはメモリ(ROM等)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータ(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、LCD、有機ELディスプレイ、CRT、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
補助記憶装置194(補助メモリ、2次メモリ)は、記憶部170の容量を補うために使用される記憶装置であり、SDメモリーカード、マルチメディアカードなどのメモリーカードなどにより実現できる。
通信部196は、有線や無線のネットワークを介して外部(例えば他の画像生成システム、サーバ、ホスト装置)との間で通信を行うものであり、その機能は、通信用ASIC又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、サーバ(ホスト装置)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(あるいは記憶部170、補助記憶装置194)に配信してもよい。このようなサーバ(ホスト装置)による情報記憶媒体の使用も本発明の範囲内に含めることができる。
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などを行う。処理部100は記憶部170をワーク領域として各種処理を行う。この処理部100の機能は、各種プロセッサ(CPU、GPU等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
処理部100は、ゲーム演算部102、オブジェクト空間設定部104、移動体演算部106、仮想カメラ制御部108、描画領域設定部110、画像生成部120、音生成部130を含む。
ゲーム演算部102はゲーム演算処理を行う。ここでゲーム演算としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
オブジェクト空間設定部104は、複数のオブジェクトが配置されるオブジェクト空間の設定処理を行う。例えば、キャラクタ(人、動物、ロボット、車、船舶、飛行機等)、マップ(地形)、建物、コース(道路)、樹木、壁などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。具体的には、記憶部170のオブジェクトデータ記憶部172には、オブジェクト(パーツオブジェクト)の位置、回転角度、移動速度、移動方向等のデータであるオブジェクトデータがオブジェクト番号に対応づけて記憶される。オブジェクト空間設定部104は、例えば各フレーム毎にこのオブジェクトデータを更新する処理などを行う。
移動体演算部106は、キャラクタ等の移動体を移動させるための演算を行う。また移動体(移動体オブジェクト)を動作させるための演算も行う。即ち操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、移動体(オブジェクト、モデルオブジェクト)をオブジェクト空間内で移動させたり、移動体を動作(モーション、アニメーション)させる処理を行う。具体的には、移動体の移動情報(位置、回転角度、速度、或いは加速度)や動作情報(パーツオブジェクトの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、移動体の移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
仮想カメラ制御部108は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点、基準仮想カメラ)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置、視線方向あるいは画角を制御する処理)を行う。
例えば仮想カメラによりキャラクタを後方から撮影する場合には、キャラクタの位置又は方向の変化に仮想カメラが追従するように、仮想カメラの位置(視点位置)や方向(視線方向)を制御する。この場合には、移動体演算部106で得られたキャラクタの位置、方向又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は方向を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
描画領域設定部110は、描画領域についての種々の設定処理を行う。具体的には、描画バッファ178に描画領域を確保する処理などを行う。
画像生成部120は、処理部100で行われる種々の処理(ゲーム処理、シミュレーション処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。具体的には、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数プリミティブ面)を、描画バッファ178(フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ)に描画する。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。なお、描画処理は頂点シェーダ処理やピクセルシェーダ処理等により実現することができる。
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
そして本実施形態では、オブジェクト空間設定部104が、複数のオブジェクトが配置されるオブジェクト空間の設定処理(配置処理等)を行う。また描画領域設定部110が、主描画領域と、主描画領域の周囲に設定される周囲描画領域の設定処理を行う。例えば描画バッファ178に対して主描画領域(中央描画領域)や周囲描画領域(周辺描画領域)の領域指定(アドレス指定)を行って、主描画領域及び周囲描画領域を描画バッファ178に確保する処理を行う。
そして画像生成部120は、複数のオブジェクトのうちの第1のオブジェクト(例えば背景オブジェクト)については、主描画領域が描画領域に設定される描画処理を行う。一方、複数のオブジェクトのうちの第2のオブジェクト(例えば飛び出し対象オブジェクト)については、主描画領域及び周囲描画領域の全体が描画領域に設定される描画処理を行って、立体視用画像(左眼用画像、右眼用画像等)を生成する。
このように本実施形態では、第1のオブジェクトについては主描画領域が描画領域に設定されて描画されるのに対して、第2のオブジェクトについては、主描画領域のみならず周囲描画領域も描画領域に設定されて描画され、立体視用画像が生成されるようになる。従って、周囲描画領域にはみ出して第2のオブジェクトを描画できるようになり、例えば画面から手前側に第2のオブジェクトが大きく飛び出して見える立体視表現や、画面の横方向に第2のオブジェクトが飛び出して見える立体視表現などが可能になり、立体視表現の自由度の向上等を図れる。
なお、主描画領域は、例えば表示部190の画面中央に対応する描画領域であり、オブジェクト描画のメインとなる描画領域である。周囲描画領域は、主描画領域の周囲(周辺)に設けられる描画領域であり、例えば主描画領域は、周囲描画領域に囲まれた領域になる。これらの主描画領域、周囲描画領域は例えば描画バッファ178上に確保される領域であり、領域のサイズ、形状又は位置等の設定状態(設定情報)を可変に設定できる。
また第1のオブジェクトは、例えば背景などのオブジェクトであり、この第1のオブジェクトは、主描画領域に描画される。一方、第2のオブジェクトは、例えば画面から飛び出して見えることが想定される飛び出し対象オブジェクトであり、主描画領域のみならず周囲描画領域にも描画される。また立体視用画像は、2眼分離眼鏡方式等を例にとれば、左眼用画像、右眼用画像である。但し立体視用画像は、2眼分離眼鏡方式の左眼用画像、右眼用画像には限定されず、裸眼方式方式の立体視用画像であってもかまわない。裸眼方式には、裸眼2眼式のほか、多眼方式や、空間像方式等が含まれる。空間像方式としては、例えば「フラクショナル・ビュー方式」(特開2006−048659号公報)が提案されている。
また本実施形態では描画領域設定部110は、所与の情報(描画領域設定用情報)に基づいて、主描画領域の設定状態(設定情報、設定状況)を制御する。ここで主描画領域の設定状態は、主描画領域(周囲描画領域)のサイズ、形状及び位置の少なくとも1つである。そして主描画領域のサイズは主描画領域の面積等であり、主描画領域の形状は、主描画領域の外形形状等であり、主描画領域の位置は主描画領域の設定位置等である。なお、主描画領域の設定状態を制御することは、周囲描画領域の設定状態(サイズ、形状又は位置)を制御することと等価である。
例えば描画領域設定部110は、第2のオブジェクトの情報に基づいて、主描画領域の設定状態(サイズ、位置又は形状)を制御する。具体的には、第2のオブジェクトの位置情報、方向情報、移動情報、個数情報及び画面での占有面積情報の少なくとも1つに基づいて、主描画領域の設定状態を制御する。ここで第2のオブジェクトの位置情報は、例えば第2のオブジェクトのX座標、Y座標又はZ座標情報などであり、方向情報は、第2のオブジェクトの進行方向情報又は視線方向情報などである。また移動情報は、速度情報、加速度情報、角速度情報又は角加速度情報などである。また個数情報は、第2のオブジェクトの個数(出現数)を表す情報であり、占有面積情報は、例えば表示部190の画面において第2のオブジェクト(1又は複数の第2のオブジェクト)の画像が占有する面積を表す情報などである。
また描画領域設定部110は、ユーザの入力情報に基づいて、主描画領域の設定状態を制御してもよい。この入力情報は、例えば操作部160を介してユーザ(狭義にはプレーヤ)により入力される情報である。具体的には描画領域設定部110は、ユーザが入力した立体視の強さ設定情報に基づいて、主描画領域の設定状態を制御する。或いは描画領域設定部110は、時間情報に基づいて、主描画領域の設定状態を制御してもよい。ここで時間情報は、ゲーム等の経過時間情報又はプレイ時間情報などの情報であり、時間経過や日時やプレイ時間などを表す情報である。
また描画領域設定部110は、主描画領域及び周囲描画領域の少なくとも一方の設定状態を、立体視における複数の視点の第1の視点での描画時と、第2の視点(第1の視点とは異なる他の視点)での描画時とで、互いに異ならせてもよい。例えば第1の視点での描画時と第2の視点での描画時とで、主描画領域の設定状態を異ならせたり、周囲描画領域の設定状態を異ならせたり、主描画領域及び周囲描画領域の両方の設定状態を異ならせてもよい。例えば第1の視点での描画時には第1の設定状態にし、第2の視点での描画時には第2の設定状態にする。ここで設定状態は、主描画領域、周囲描画領域の設定位置、サイズ又は形状等である。また第1、第2の視点は2眼式の視点であってもよいし、多眼式(3眼以上)の視点であってもよい。
更に具体的には描画領域設定部110は、主描画領域及び周囲描画領域の少なくとも一方が設定される位置を、第1の視点での描画時と第2の視点での描画時とで、互いに異ならせてもよい。例えば第1の視点での描画時には第1の位置に設定し、第2の視点での描画時には第2の位置に設定する。
また画像生成部120は画像処理部122を含む。そして画像処理部122は、周囲描画領域の画像に対して画像処理を行う。一方、画像処理部122は、第2のオブジェクトを周囲描画領域に描画する際には、画像処理を行わない又は画像処理とは異なる態様の画像処理を行う。ここで異なる態様の画像処理とは、画像処理のエフェクトの度合い(程度)や種類等が異なる処理を意味する。
具体的には画像処理部122は、周囲描画領域の画像に対して、周囲描画領域の外側に向かうにつれてピクセル色をターゲット色に近づけるグラデーション処理を行う。一方、第2のオブジェクトを周囲描画領域に描画する際には、グラデーション処理を行わない又はグラデーション度合いが少ないグラデーション処理(広義には異なる態様のグラデーション処理)を行う。或いは、画像処理部122は、周囲描画領域の画像に対してぼかし処理(ブラー処理)を行う。一方、第2のオブジェクトを周囲描画領域に描画する際には、ぼかし処理を行わない又はぼかし度合いが少ないぼかし処理(広義には異なる態様のぼかし処理)を行う。
また画像生成部120は、周囲描画領域に、表示枠画像が描画された立体視用画像を生成してもよい。ここで表示枠画像は、主描画領域を擬似的な画面とした場合に、その画面の周囲に画面の表示枠として表示される画像である。
なお第2のオブジェクトは、例えば第1のオブジェクトよりも仮想カメラ(左眼用仮想カメラ、右眼用仮想カメラ、基準仮想カメラ)から見て手前側(奥行き方向において手前側)に配置されるオブジェクトである。そして画像生成部120は、周囲描画領域に、第2のオブジェクトの少なくとも一部がはみ出て描画された立体視用画像を生成する。例えば画像生成部120は、周囲描画領域に、第2のオブジェクトである情報表示オブジェクトの少なくとも一部がはみ出て描画された立体視用画像を生成する。ここで情報表示オブジェクトは、各種の情報をユーザ(プレーヤ)に伝えるためのオブジェクトであり、伝えられる情報としては、ユーザの使用キャラクタの情報(ステータス情報等)、敵の情報、ゲーム状況情報又はマップ情報などである。
また2眼分離眼鏡方式の場合には、画像生成部120は、左眼用画像生成部(広義には第1視点画像生成部)124、右眼用画像生成部(広義には第2視点画像生成部)126を含む。この場合には左眼用画像生成部124は、第1のオブジェクトについては、主描画領域が描画領域に設定された描画処理を行い、第2のオブジェクトについては、主描画領域及び周囲描画領域の全体が描画領域に設定された描画処理を行って、左眼用画像を生成する。即ち左眼用仮想カメラの視点(広義には第1の視点)での画像である左眼用画像(広義には第1視点画像)を生成する。また右眼用画像生成部(広義には第2視点画像生成部)126も、第1のオブジェクトについては、主描画領域が描画領域に設定された描画処理を行い、第2のオブジェクトについては、主描画領域及び周囲描画領域の全体が描画領域に設定された描画処理を行って、右眼用画像を生成する。即ち右眼用仮想カメラの視点(広義には第2の視点)での画像である右眼用画像(広義には第2視点画像)を生成する。
なお仮想カメラ制御部108は、例えば左眼用、右眼用仮想カメラを設定するための基準となる基準仮想カメラの制御を行う。そして、得られた基準仮想カメラの位置情報、方向情報と、設定されたカメラ間距離の情報に基づいて、左眼用、右眼用仮想カメラの位置情報(視点位置)、方向情報(視線方向)を求める。なお仮想カメラ制御部108が、左眼用、右眼用仮想カメラを直接制御するようにしてもよい。
また立体方式としては、2眼分離眼鏡方式や、パララックスバリアやレンチキュラや、その他、光線の方向を制御することができる光学素子を用いた裸眼方式などの様々な方式を想定できる。2眼分離眼鏡方式としては、例えば偏光眼鏡方式、継時分離方式、色分離方式などがある。偏光眼鏡方式では、例えば表示部190の奇数ラインと偶数ラインに左眼用画像と右眼用画像を交互に表示し、これを偏光眼鏡(例えば左眼に水平方向の偏光フィルタ、右眼に垂直方向の偏光フィルタを付けた眼鏡)で見ることで立体視を実現する。或いは左眼用画像と右眼用画像を特殊な偏光フィルタを有するプロジェクタで投影し、投影画像を偏光眼鏡で見ることで立体視を実現してもよい。また継時分離方式(ページ・フリップ方式)では、表示部190に左眼用画像、右眼用画像を所定期間毎(例えば1/120秒毎、1/60秒毎)に交互に表示する。そして、この表示の切り替えに連動して液晶シャッター付きの眼鏡の左眼、右眼の液晶シャッターを交互に開閉することで、立体視を実現する。色分離方式では、例えばアナグリフ画像を生成し、赤青眼鏡等で見ることで、立体視を実現する。
また左眼用画像と右眼用画像から立体用視画像を生成する機能は、画像生成部120に持たせてもよいし、表示部190(テレビ等)に持たせてもよい。例えば画像生成部120が、サイドバイサイド方式の画像信号を出力する。すると表示部190が、このサイドバイサイドの画像信号に基づいて、奇数ラインと偶数ラインに左眼用画像と右眼用画像が交互に割り当てられるフィールドシーケンシャル方式の画像を表示する。或いは、左眼用画像と右眼用画像が所定期間毎に交互に切り替えられるフレームシーケンシャル方式の画像を表示する。或いは画像生成部120の方が、フィールドシーケンシャル方式やフレームシーケンシャル方式の画像を生成して、表示部190に出力するようにしてもよい。
2.本実施形態の手法
次に本実施形態の手法について具体的に説明する。
2.1 主描画領域、周囲描画領域の設定
まず立体視におけるビューボリュームの設定について説明する。図2に示すように、立体視用画像を生成するためには、所与のカメラ間距離だけ離れた位置に設定される左眼用仮想カメラVCLと右眼用仮想カメラVCRを用いる。
そして左眼用仮想カメラVCLに対応して左眼用ビューボリュームVVL(左眼用視錐台)が設定され、右眼用仮想カメラVCRに対応して右眼用ビューボリュームVVR(右眼用視錐台)が設定される。具体的には左眼用、右眼用仮想カメラVCL、VCRの位置や方向に基づいて、左眼用、右眼用ビューボリュームVVL、VVRの位置や方向が設定される。
この場合に左眼用仮想カメラVCLから見える画像である左眼用画像は、左眼用ビューボリュームVVL内に存在するオブジェクトをスクリーンSCに透視投影して描画することで生成される。同様に右眼用仮想カメラVCRから見える画像である右眼用画像は、右眼用ビューボリュームVVR内に存在するオブジェクトをスクリーンSCに透視投影して描画することで生成される。
この場合、スクリーンSCに透視投影されない位置にあるオブジェクトは、描画対象にはならないため、これらのオブジェクトに対して透視投影変換処理を行うと、処理の無駄となる。このため、各左眼用、右眼用仮想カメラにおいてスクリーンSCに透視投影されない位置にあるオブジェクトがビューボリューム内に入らないように、図2に示すように左眼用、右眼用ビューボリュームVVL、VVRが設定される。なお図2において、CNL、CFLは、各々、左眼用ビューボリュームVVLの前方クリッピング面、後方クリッピング面であり、CNR、CFRは、各々、右眼用ビューボリュームVVRの前方クリッピング面、後方クリッピング面である。
さて、以上のように左眼用画像、右眼用画像を生成して立体視を実現する手法では、左眼用画像と右眼用画像の視差により奥行き感を認識させている。
例えば図3において、スクリーンSC上の点Aに位置するオブジェクトについての、左眼用画像での描画位置ALと、右眼用画像での描画位置ARは同じ位置になる。
これに対して、点Bに位置するオブジェクトは、左眼用画像では点BLの位置に描画され、右眼用画像では点BRの位置に描画される。そして、このように左眼用画像、右眼用画像の描画位置にズレを持たせることで、点Bに位置するオブジェクトが、画面からユーザの方に飛び出して見える立体視表現を実現できる。
しかしながら、左眼用画像、右眼用画像などの立体視用画像が表示される表示部190のディスプレイサイズは有限である。このため、オブジェクトを画面から飛び出させる立体視表現の際に、画面からのオブジェクトの飛び出し度合いや飛び出し方向が制限されてしまう。
例えば図4のOB2Rは、オブジェクトOB2の右眼用画像でのオブジェクト画像であり、OB2Lは、オブジェクトOB2の左眼用画像でのオブジェクト画像である。オブジェクト画像OB2RがOB2Lよりも向かって左側にずれている位置関係において、その描画位置のズレが大きくなればなるほど、図3で説明したように、立体視におけるオブジェクトの飛び出し度合いが大きくなる。
しかしながら、図4に示すように表示部190のディスプレイサイズは有限であり、従来手法では、表示部190の画面を超えてキャラクタなどのオブジェクトが飛び出して見えるような立体視表現が困難になる。例えば、画面の左右端の周辺にキャラクタなどのオブジェクトが位置する場合、オブジェクトを飛び出させようとすると、すぐに画面の範囲を超えてしまうため、飛び出させられる量が少なくなってしまうという問題があった。
そこで本実施形態では、描画領域の周りに余白領域を設け、飛び出し対象となるオブジェクトを描画する際には、余白領域も含む領域に当該オブジェクトを描画する。このようにことで、心理的な錯覚を誘導し、従来手法の問題を解決しているかのように見せかけることができる。即ち、実際のディスプレイサイズよりも小さなサイズの描画領域を設定して背景画像等を描画し、飛び出し対象となるオブジェクトを描画する際には、当該描画領域と余白領域からなる領域に当該オブジェクトを描画する。
例えば図5では、主描画領域ARMと、その余白領域となる周囲描画領域ARPが設定される。これらの主描画領域ARM、周囲描画領域ARPは例えば描画バッファ178に確保される。なお主描画領域ARM、周囲描画領域ARPの形状・配置等は図5には限定されず、種々の変形実施が可能である。例えば主描画領域ARMの左右のみに、余白領域となる周囲描画領域ARPを設けてもよいし、主描画領域ARMの上下のみに、余白領域となる周囲描画領域ARPを設けてもよい。もちろん、設ける場所は、左のみ、右のみ、上のみ、下のみ、或いはこれらの組み合わせであってもよい。また主描画領域ARMは矩形領域には限定されず、種々の形状を想定できる。さらには、これらの主描画領域ARMや周囲描画領域ARPの設定状態は、左眼用(第1の視点)と右眼用(第2の視点)とで異なっていてもよい。
そして本実施形態では図5に示すように、背景などの第1のオブジェクトOB1については、例えば主描画領域ARMだけを描画領域に設定して描画する。一方、飛び出し対象等となる第2のオブジェクトOB2(図3の点Bのオブジェクト)については、主描画領域ARMのみならず周囲描画領域ARPも描画領域に設定して描画する。例えば周囲描画領域ARPに、第2のオブジェクトOB2の少なくとも一部がはみ出て描画されるようにする。
例えば図6では、ドアを表す第1のオブジェクトOB1などの背景オブジェクトが主描画領域ARMに描画されて、背景画像が生成されている。即ち主描画領域ARMだけが描画領域に設定されて、オブジェクトの描画が行われ、主描画領域ARMの画像が生成される。具体的には、主描画領域ARMの画像として、左眼用仮想カメラの視点での画像と右眼用仮想カメラの視点での画像が生成される。なお、この時に図6では、周囲描画領域ARPは、画像が何も書かれていない状態(黒色)、或いは所定色に塗りつぶされた状態になっている。
次に、主描画領域ARM及び周囲描画領域ARPの両方が描画領域に設定されて、飛び出し対象となるキャラクタを表す第2のオブジェクトOB2(OB2R、OB2L)が描画される。
ここで、図6ではオブジェクトOB2は仮想カメラ(左眼用仮想カメラ、右眼用仮想カメラ)側にそれほど近づいていないため、オブジェクト画像OB2RとOB2Lの描画位置のズレは少なく、立体視における画面からの飛び出し度合いも少ない。
一方、図7ではオブジェクトOB2は仮想カメラ側に近づいており、オブジェクト画像OB2RとOB2Lの描画位置のズレは大きく、画面からの飛び出し度合いも大きい。
しかも図7では、オブジェクトOB2は、主描画領域ARMのみならず周囲描画領域ARPにもその一部が描画されている。従って、ユーザから見ると、あたかもオブジェクトOB2が画面から手前側に大きく飛び出して見えるような画像が生成される。即ち、図4では、表示部190の画面から手前側にオブジェクトOB2が大きく飛び出して見えるような立体視表現は実現できなかった。これに対して図7では、主描画領域ARMにより表現される擬似的な画面から手前側にオブジェクトOB2が大きく飛び出して見える立体視表現を実現できる。
また図8では、オブジェクトOB2は、仮想カメラから見て右方向に移動しており、主描画領域ARMの右方向において周囲描画領域ARPにその一部がはみ出して描画されている。従って、ユーザから見ると、あたかもオブジェクトOB2が画面から右方向に飛び出して見えるようになる。即ち、図4では、表示部190の画面の右方向にオブジェクトOB2が飛び出して見えるような立体視表現は実現できなかった。これに対して図8では、主描画領域ARMにより表現される擬似的な画面から右方向にオブジェクトOB2が飛び出して見える立体視表現を実現できる。
図9は本実施形態の手法の優位点を説明するための図である。例えば図4の従来手法においても、画面の中央部付近のオブジェクトについては、仮想カメラVCL、VCR側に移動させて大きく飛び出させることは可能であった。しかしながら、画面の左端部や右端部のオブジェクトについては、大きく飛び出させようとすると、左眼用、右眼用の仮想カメラVCL、VCRの共通領域の外側に移動することになってしまい、視野範囲に入らなくなるため、大きく飛び出させる立体視を表現できなかった。また、画面の右端部付近のオブジェクトを、更に右側に移動させて飛び出させたり、画面の左端部付近のオブジェクトを、更に左側に移動させて飛び出させることも表現できなかった。
これに対して本実施形態の手法では、実際の画面サイズよりも小さなサイズの主描画領域ARMが、擬似的な画面としてユーザに見られるようになる。従って、図9に示すように、画面の中央部付近のオブジェクトOB2Aのみならず、主描画領域ARMによる擬似的な画面の端部付近のオブジェクトOB2B、OB2Cについても、仮想カメラVCL、VCR側に大きく移動させて飛び出させることが表現可能になる。
また本実施形態の手法によれば、図9の左端部付近のオブジェクトOB2Dを、画面(ARM)から更に左方向に飛び出させたり、右端部付近のオブジェクトOB2Eを、画面(ARM)から更に右方向に飛び出させたりするなどの表現が可能になる。
即ち図4の従来技術では、画面の左端部の左側や右端部の右側に、オブジェクトを配置するスペースを設けることができない。これに対して本実施形態では図9に示すように、主描画領域ARMによる擬似的な画面の左端部の左側や右端部の右側に、オブジェクトの配置スペースを設けることができる。従って、画面端部から左方向や右方向へのオブジェクトの飛び出しを、従来よりも自由に行うことが可能になり、立体視表現の自由度を向上できる。
また、主描画領域ARMや周囲描画領域ARPは、左眼映像の描画用(第1の視点での描画用)と、右眼映像の描画用(第2の視点での描画用)に、別々に設定してもよい。例えば図10(A)に示すように、左眼用(第1の視点用)の主描画領域ARMLと、右眼用(第2の視点用)の主描画領域ARMRを、左右にずらした状態で設定してもよい。このようにすることで、図10(B)に示すように、あたかも表示画面が実際とは異なる位置(ARMCの位置、奥側の位置)に移動したかのような映像表現が可能になる。このような設定にした上で、飛び出し対象となるオブジェクトについては、周囲描画領域をも用いて描画することで、図10(B)のように、画面から飛び出している表現を、より効果的に行うことが可能になる。
2.2 主描画領域の設定状態の制御
本実施形態では主描画領域のサイズ、形状又は位置等の設定状態をリアルタイムに制御してもよい。例えば所与の情報に基づいて主描画領域の設定状態を制御する。
例えば図11(A)〜図12(B)では、飛び出し対象オブジェクトである第2のオブジェクトOB2の情報に基づいて、主描画領域ARMのサイズ等の設定状態を制御している。例えば図11(A)、図11(B)では、オブジェクトOB2の位置が変化して仮想カメラVCL、VCRの方に近づいており、この位置の変化に連動して主描画領域ARMのサイズが変化している。具体的にはオブジェクトOB2の位置が仮想カメラVCL、VCRに近づくにつれて、主描画領域ARMのサイズが小さくなっている。このように主描画領域ARMのサイズが小さくなることで、主描画領域ARMのサイズが一定である場合に比べて、より急激にオブジェクトOB2が手前側に飛び出しているような感覚をユーザに与えることができ、立体視における飛び出し効果を向上できる。即ち、図7等において擬似的な画面に相当する主描画領域ARMが小さくなりながら、オブジェクトOB2の左眼用、右眼用のオブジェクト画像OB2L、OB2R間の距離が離れることで、主描画領域ARMのサイズが固定である場合に比べて、オブジェクトOB2の飛び出し度合いが更に強調されるようになる。
なお図11(A)、図11(B)では、主描画領域ARMのサイズを、オブジェクトOB2の位置(仮想カメラとの位置関係)に基づいて変化させているが、主描画領域ARMのサイズのみならず、主描画領域ARMの形状や位置(配置位置)を変化させてもよい。また、オブジェクトOB2の位置情報ではなく、方向情報(進行方向、視線方向)や移動情報(速度、加速度)に基づいて、主描画領域ARMのサイズ、形状又は位置を変化させてもよい。例えばオブジェクトOB2の移動方向に対応する方向に主描画領域ARMの配置位置を移動させたり、オブジェクトOB2の速度や加速度が速くになるにつれて、主描画領域ARMのサイズ、形状又は位置の変化率を速くしてもよい。
また図12(A)、図12(B)では、第2のオブジェクトOB2の個数情報(出現数情報)に基づいて主描画領域ARMの設定状態を制御している。例えば図12(A)では、オブジェクトOB2の数は1個であるが、図12(B)では、多数のオブジェクトOB2A〜OB2Gが出現している。このように主描画領域ARM及び周囲描画領域ARPが描画領域に設定される第2のオブジェクトの数が増えると、この数の増加に連動して、主描画領域ARMのサイズが小さくなる。このように主描画領域ARMのサイズが小さくなることで、主描画領域ARMのサイズが一定である場合に比べて、立体視における飛び出し効果を向上できる。即ち、図12(A)に比べて、より多数のオブジェクトがユーザの目の前に飛び出して見えるようになり、オブジェクトがモンスターなどを表すものである場合には、ユーザの恐怖感等を高めることができ、これまでにないタイプの映像効果を実現できる。
なお図12(A)、図12(B)では、第2のオブジェクトの個数情報に基づいて主描画領域ARMのサイズ等の設定状態を制御していたが、第2のオブジェクトの画面(表示領域)での占有面積情報に基づいて、主描画領域ARMの設定状態を制御してもよい。例えば、第2のオブジェクトの画面での占有面積(占有面積の割合)が大きくなったら、図12(A)、図12(B)と同様に主描画領域ARMのサイズを小さくする。このように占有面積情報を用いて制御することで、第2のオブジェクトの個数情報による主描画領域ARMの制御と同等の効果を得ることができる。
更に、図10(A)、図10(B)で説明したような、主描画領域ARMや周囲描画領域ARPを、左眼映像の描画用と右眼映像の描画用に、左右別々に設定する場合にも、この領域を動的に変更してもよい。例えば、表示オブジェクトが飛び出してくるにつれて、左眼用主描画領域ARMLと右眼用主描画領域ARMRのズレを、その領域が画面より奥側に移動するように設定することで、更に効果的な飛び出し表現が可能になる。
また本実施形態では、ユーザの入力情報(操作情報)に基づいて、主描画領域ARMの設定状態を制御してもよい。
例えば図13(A)に、ユーザが自身のゲームプレイの環境を設定するためのゲーム環境の設定画面(オプション設定画面)の例を示す。
例えば図13(A)では、ユーザは、ゲーム環境設定の立体視オプションとして、立体視方式、立体視強度、テレビサイズ、テレビまでの距離等を設定できるようになっている。立体視方式としては、偏光眼鏡を使用する偏光方式や、液晶シャッター等を用いるシャッター方式などの種々の方式を設定できる。
また、立体視強度は、左眼用仮想カメラと右眼用仮想カメラのカメラ間距離に対応するものであり、ユーザは、この立体視強度を設定することで、自身が所望する立体感で立体視用画像を見ることが可能になる。テレビサイズは、立体視用画像が表示するテレビ(表示部)のサイズである。テレビまでの距離は、ユーザの視聴位置からテレビまでの距離である。これらのテレビサイズやテレビまでの距離が変わると、同じカメラ間距離の設定であっても、ユーザが感じる立体感の強さは異なったものになる。従って、テレビサイズやテレビまでの距離に応じて、カメラ間距離の補正処理を行うことが望ましい。
例えば図13(A)のオプション画面において、立体視強度が弱い値に設定されたとする。すると図13(B)のように、左眼用仮想カメラVCLと右眼用仮想カメラVCRのカメラ間距離DSが狭くなる。このようにカメラ間距離DSを狭くすると、立体感が少し控えめになり、近距離のものが立体的に見やすい状態になる。一方、遠方のもの(奥行き方向で遠い位置にあるもの)の立体感は薄れる。
一方、図13(A)のオプション画面において、立体視強度が強い値に設定されたとする。すると図13(C)のようにカメラ間距離DSが広くなる。このようにカメラ間距離DSを広くすると、ユーザは、より強い立体感を感じるようになる。但し、このカメラ間距離DSは、ユーザの両眼距離に相当する距離よりも短く設定しないと、ユーザの不快感等を招く原因となるため、その設定には注意が必要になる。
そして本実施形態では、図13(A)のようにユーザが入力した立体視の強さ設定情報に基づいて、主描画領域ARMのサイズ等の設定状態を制御する。即ち、ユーザが入力した立体視の強さ設定情報によるカメラ間距離DSの制御に連動して、主描画領域ARMのサイズ等の設定状態も制御する。
例えば図13(B)のように、立体視強度が弱い値に設定された場合には、カメラ間距離DSを狭くすると共に、主描画領域ARMのサイズを大きくする。このようにすれば、カメラ間距離DSが狭くなることで立体視強度が弱くなると共に、主描画領域ARMのサイズが大きくなることで図6、図7で説明した立体視における飛び出し効果も低くなる。
一方、図13(C)のように、立体視強度が強い値に設定された場合には、カメラ間距離DSを広くすると共に、主描画領域ARMのサイズを小さくする。このようにすれば、カメラ間距離DSが広くなることで立体視強度が強くなると共に、主描画領域ARMのサイズが小さくなることで立体視における飛び出し効果も高くなる。立体視強度と飛び出し効果を連動して高くすることで、ユーザにとってよりインパクトのある立体視の飛び出し表現を実現できるようになる。なお、このように立体視強度に連動させずに、主描画領域ARMのサイズに相当する情報を、入力情報としてユーザに直接入力させるようにしてもよい。
また本実施形態では、時間情報に基づいて、主描画領域ARMの設定状態を制御してもよい。
例えば図14では、時間情報に基づいて主描画領域ARMのサイズを変化させている。具体的にはゲームを開始してからの経過時間に基づいて主描画領域ARMのサイズを変化させており、時間が経過するにつれて主描画領域ARMのサイズを小さくする。例えばゲーム開始タイミングでは、主描画領域ARMは通常のサイズ(例えば画面サイズ)となっており、その後、時間が経過するにつれて、ユーザに気づかれないように、主描画領域ARMのサイズを小さくする。そして主描画領域ARMのサイズが小さくなったところで、図7に示すようにオブジェクトOB2を仮想カメラ側に移動させて飛び出させるイベントを発生する。このようにすれば、ユーザに、予め表示領域が狭く設定されていることを気づかせることなく、図7のような飛び出し映像効果を実現できるようになる。
なお、主描画領域ARMのサイズ等を変化させる時間経過の開始タイミングは、ゲームそのものの開始タイミングであってもよいし、ゲームを構成する各ゲームステージの開始タイミングであってもよい。或いは、ゲーム中で発生するイベントの発生タイミングであってもよい。また時間情報は、経過時間そのものではなく、経過時間と等価な情報(例えばプレイ時間等)であってもよい。また、時間情報に基づいて、主描画領域ARMの形状や配置位置を変化させてもよい。例えば時間経過に伴い主描画領域ARMの形状を第1の形状(例えば矩形等)から第2の形状(例えば円形等)に変化させる。また、時間経過に伴い、主描画領域ARMの配置設定位置をシフトさせるような処理を行ってもよい。
また、以上では主描画領域ARMの設定状態を制御する所与の情報として、第2のオブジェクトの情報、時間情報、ユーザの入力情報を例示したが、本実施形態はこれに限定されない。例えば主描画領域ARMの設定状態を制御する所与の情報は、イベントの発生フラグの情報等であってもよい。例えば、ゲームにおいて所与のイベントが発生して、イベント発生フラグが立ったら、主描画領域ARMの設定状態の制御を開始する。
2.3 周囲描画領域への画像処理
本実施形態では、主描画領域の周りの周囲描画領域の画像に対して画像処理を行ってもよい。
例えば図15では、周囲描画領域ARPの画像に対してグラデーション処理を行っている。このグラデーション処理は、周囲描画領域ARPの外側(画面外側)に向かうにつれてピクセル色をターゲット色に近づける処理である。例えば表示部190の枠(縁部)の色をターゲット色としてグラデーション処理を行う。或いは、表示部190の周囲の色(プレーヤ側から見た場合の周囲の色)をターゲット色としてグラデーション処理を行い、いわゆる光学迷彩を実現する。このようにすることで、表示部190の実在感を無くすことが可能になり、主描画領域ARMを本当の画面のように見せることが可能になる。
そして、このように周囲描画領域ARPの画像に対してグラデーション処理を行った場合にも、第2のオブジェクトを周囲描画領域に描画する際には、このグラデーション処理を行わないようにする。或いは、第2のオブジェクトにグラデーション処理を行ったとしても、その態様を変更して、弱いグラデーション処理を行うようにする。
このようにすれば、図7のようにオブジェクトOB2を画面から飛び出させる映像効果を実現する場合に、このオブジェクトOB2に対してはグラデーション処理が施されないようになり、ユーザが不自然さを感じない立体視用画像を生成できる。
なお、ユーザが、ゲームコントローラ等の操作部160に設けられたカメラを用いて、表示部190やその周囲を撮影し、得られた撮影画像から、表示部190の枠の色や表示部190の周りの背景の色を取得してもよい。この場合には、撮影画像から取得された枠の色や背景の色をターゲット色に設定して、図15に示すようなグラデーション処理を行えばよい。
また周囲描画領域ARPの画像に対する画像処理は図15のようなグラデーション処理には限定されず、種々の変形実施が可能である。例えば周囲描画領域ARPの画像に対してぼかし処理(ブラー処理)を行ってもよい。
例えば図16はレースゲームの画像の例であり、主描画領域ARMには、ユーザが操作するレースカーのオブジェクトOB1が描画されている。一方、周囲描画領域ARPに対しては、レースカーのオブジェクトOB1の周りの背景画像が描画されている。
この場合に、レースカーが速い速度で走っていることをユーザにリアルに感じさせるために、周囲描画領域ARPの画像に対してはぼかし処理が施されている。このようにすることで、レースカーが走行することにより背景が流れて見えるような画像表現を実現できる。
そして図16では、レースカーのタイヤ付近から飛んでくる砂利や小石や火花等が、第2のオブジェクトOB2A、OB2Bとして描画されている。具体的には図7のキャラクタを表すオブジェクトOB2と同様に、オブジェクトOB2A、OB2Bを仮想カメラ側に速い速度で移動させる。
そして、このように周囲描画領域ARPの画像に対してぼかし処理を行っている場合にも、砂利等を表すオブジェクトOB2A、OB2Bを周囲描画領域ARPに描画する際には、オブジェクトOB2A、OB2Bに対してはぼかし処理を行わないようにする。或いはオブジェクトOB2A、OB2Bにぼかし処理を行ったとしても、その態様を変更して、弱いぼかし処理を行うようにする。
このようにすれば、レースカーの周りの背景については、ぼかし処理を行うことでスピード感を表現できるようになると共に、砂利等を表すオブジェクトOB2A、OB2Bについては、ぼかし処理が行われないハッキリとした画像でユーザの視点側に飛んで来る表現が可能になる。従って、ぼかし処理によるスピード感の表現と、飛び出し効果の強い立体視表現とを両立して実現することが可能になる。
なお、ぼかし処理は、例えばぼかしフィルタなどを用いることで実現できる。具体的には、バイリニアフィルタリングによるぼかし処理である線形テクスチャフィルタリングの手法や、何枚ものテクスチャを同時に使用するマルチテクスチャによるぼかし処理であるボックスフィルタサンプリングの手法などを採用できる。また図16では、説明の簡素化のために左眼用オブジェクト画像と右眼用オブジェクト画像の描画位置を同じ位置にしている。
2.4 変形例
次に本実施形態の変形例の手法について説明する。
例えば図6〜図8では、周囲描画領域ARPは黒色等の所定色に設定されているが、本実施形態はこれに限定されない。例えば周囲描画領域ARPに、表示枠画像が描画された立体視用画像を生成してもよい。
例えば図17(A)では、映画館のスクリーンの周囲の幕などを表す枠画像が生成されて、周囲描画領域ARPに描画されている。そして映画館のスクリーンに対応する場所が主描画領域ARMに設定されている。また図17(B)では、昔風のテレビの画面の周囲を表す枠画像が生成されて、周囲描画領域ARPに描画されている。そしてテレビの画面に対応する場所が主描画領域ARMに設定されている。
このような枠画像を生成すれば、表示部190の画面よりも小さいサイズに主描画領域ARMのサイズが設定されている場合にも、ユーザが感じる不自然さを低減できる。即ち、主描画領域ARMを、あたかも本物の画面のように、ユーザに感じさせることが可能になる。そして、このように主描画領域ARMを擬似的な画面に設定し、図6〜図8のように、この擬似的な画面からオブジェクトOB2が飛び出して見える立体視演出を実現できる。
なお周囲描画領域ARPに描画される表示枠画像は図17(A)、図17(B)には限定されず、例えば写真印刷機のデコレーションフレーム画像などの種々の態様の表示枠画像を採用できる。
さらには、周囲描画領域を左眼映像の描画用(第1の視点での描画用)と右眼映像の描画用(第2の視点での描画用)に、別々に設定してもよい。例えば図18(A)に示すように、左眼用(第1の視点用)の周囲描画領域ARPLと、右眼用(第2の視点用)の周囲描画領域ARPRを、左右にずらした状態で設定してもよい(192は画面全体を表す)。このようにすることで、図18(B)に示すように、あたかも、周囲領域に配置したオブジェクト(例えば図17(A)、図17(B)における表示枠画像)を表示している画面が、実際とは異なる奥行き値位置(ARPCの位置、手前側の位置)に移動したかのような映像表現が可能になる。この周囲描画領域の左右でのずれは、動的に変化させてもよいことはもちろんである。例えば、普段は実際の画面よりも手前側に表示させておき、ここからオブジェクトが飛び出してくるような表現を行う場合に、そのオブジェクトの飛び出し具合と連動させて、奥側に移動するような左右のズレの設定を行ってもよい。
また図6〜図8では主描画領域ARMの形状は矩形形状であったが、これに限定されない。例えば図19(A)では主描画領域ARMは鍵穴の形状になっている。そして図19(B)に示すように、お化けの発生イベントが発生すると、主描画領域ARMと周囲描画領域ARPが描画領域に設定されて、お化けを表すオブジェクトOB2A、OB2Bが描画される。このようにすることで、あたかも鍵穴からお化けが飛び出して来たように見える立体視表現を実現でき、これまでにない映像効果をユーザに提供できる。
また、飛び出し対象となる第2のオブジェクトとしては、種々のオブジェクトを想定できる。例えば図20(A)、図20(B)は、RPG(ロールプレーイング)ゲームの例である。図20(A)では、主描画領域ARMに対して、敵のモンスターのオブジェクトOB1A、OB1B、OB1C(第1のオブジェクト)が描画されている。
そして図20(B)では、ユーザ(プレーヤ)の攻撃時等に、RPGゲームの情報表示オブジェクトOB2が第2のオブジェクトとして描画される。この情報表示オブジェクトOB2では、ユーザが操作する各キャラクタの名前、各キャラクタのヒットポイント・マジックポイント等の情報が表示されている。そして図20(B)では、周囲描画領域ARPに、第2のオブジェクトである情報表示オブジェクトOB2の少なくとも一部がはみ出て描画された立体視用画像を生成されている。なお図20(B)では、説明の簡素化のために、左眼用オブジェクト画像と右眼用オブジェクト画像の描画位置を同じ位置にしている。
図20(B)のように、情報表示オブジェクトOB2が飛び出して見えるような画像を生成することで、これまでにないタイプのユーザインターフェースを、立体視表現により実現することが可能になる。
なお図21に示すように、情報表示オブジェクトOB3(体力ゲージ、ヒットポイント、文字、アイコン情報等の表示オブジェクト)を周囲描画領域ARPに描画しておき、キャラクタなどのオブジェクトOB2A〜OB2Cの飛び出しイベント時に、そのオブジェクトOB2A〜OB2Cを、主描画領域ARM及び周囲描画領域ARPの両方を描画領域として描画するようにしてもよい。即ち周囲描画領域ARPに描画される表示枠画像として、図21に示すような情報表示オブジェクトOB3の画像を生成してもよい。
2.5 詳細な処理例
次に本実施形態の詳細な処理例について図22〜図25のフローチャートを用いて説明する。
図22は、本実施形態の立体視用画像の生成処理の詳細を説明するためのフローチャートである。
まず、主描画領域を描画領域に設定する(ステップS1)。そして、左眼用仮想カメラの視点で主描画領域にオブジェクトを描画して、主描画領域の左眼用画像を生成する(ステップS2)。また右眼用仮想カメラの視点で主描画領域にオブジェクトを描画して、主描画領域の右眼用画像を生成する(ステップS3)。
次に、主描画領域及び周囲描画領域の全体を描画領域に設定する(ステップS4)。そして、左眼用仮想カメラの視点で主描画領域及び周囲描画領域の全体領域にオブジェクトを描画することで、左眼用画像を生成する(ステップS5)。また右眼用仮想カメラの視点で主描画領域及び周囲描画領域の全体領域にオブジェクトを描画することで、右眼用画像を生成する(ステップS6)。
以上により、図6〜図8で説明したような飛び出し効果を実現できる立体視用画像が生成される。
図23は、主描画領域の設定状態を制御する処理の詳細を説明するためのフローチャートである。
まず飛び出し対象オブジェクト(第2のオブジェクト)の出現イベントが発生したか否かを判断する(ステップS11)。そして出現イベントが発生した場合には、飛び出し対象オブジェクトの位置情報に基づいて、仮想カメラとの距離情報奥行き距離を取得する(ステップS12)。そして図11(A)、図11(B)で説明したように、取得された距離情報に基づいて、主描画領域のサイズを設定する(ステップS13)。
次に、設定されたサイズの主描画領域、周囲描画領域でオブジェクトを描画して、左眼用画像を生成する(ステップS14)。また、設定されたサイズの主描画領域、周囲描画領域でオブジェクトを描画して、右眼用画像を生成する(ステップS15)。
以上により、第2のオブジェクトの情報に基づいて主描画領域のサイズ等の設定状態を制御する手法が実現される。
図24は、周囲描画領域の画像に画像処理を施す場合の処理の詳細を説明するためのフローチャートである。
まず、図22等で説明した処理により左眼用画像、右眼用画像を生成する(ステップS21)。そして、左眼用画像の周囲描画領域の画像に対して、ぼかし処理又はグラデーション処理等の画像処理を行う(ステップS22)。また、右眼用画像の周囲描画領域の画像に対して、ぼかし処理又はグラデーション処理等の画像処理を行う(ステップS23)。
次に、飛び出し対象となるオブジェクトを、ぼかし処理又はグラデーション処理等の画像処理を行わずに描画して、最終的な左眼用画像を生成する(ステップS24)。また、飛び出し対象となるオブジェクトを、ぼかし処理又はグラデーション処理等の画像処理を行わずに描画して、最終的な右眼用画像を生成する(ステップS25)。
以上により、図15、図16で説明した手法による立体視用画像を生成することが可能になる。
図25は、主描画領域を左右で別々に設定する処理の詳細を説明するためのフローチャートである。
まず、左眼用主描画領域を描画領域に設定する(ステップS31)。そして、左眼用仮想カメラの視点で左眼用主描画領域にオブジェクトを描画して、左眼用主描画領域での画像を生成する(ステップS32)。
次に、右眼用主描画領域を描画領域に設定する(ステップS33)。そして、右眼用仮想カメラの視点で右眼用主描画領域にオブジェクトを描画して、右眼用主描画領域での画像を生成する(ステップS34)。
次に、主描画領域及び周囲描画領域の全体領域を描画領域に設定する(ステップS35)。そして、左眼用仮想カメラの視点で、ステップS32で生成された左眼用主描画領域での画像を用いて、全体領域にオブジェクトを描画することで、左眼用画像を生成する(ステップS36)。また右眼用仮想カメラの視点で、ステップS34で生成された右眼用主描画領域での画像を用いて、全体領域にオブジェクトを描画することで、右眼用画像を生成する(ステップS37)。
以上により、図10(A)、図10(B)で説明したような主描画領域を左右別々に設定する手法を実現できる。
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、主描画領域、周囲描画領域の設定処理、第1、第2のオブジェクトの描画処理、主描画領域の設定状態の制御処理、周囲描画領域の画像処理手法等も本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
また本実施形態の手法は、例えば特開2004−17858号公報に記載されるような立体視用画像生成手法にも適用可能である。この画像生成手法では、例えば、図26(A)に示すように、左眼用仮想カメラVCLからのビューボリュームVVLによって左眼用画像を作成し、右眼用仮想カメラVCRからのビューボリュームVVRによって右眼用画像を作成する。そしてこれらの左眼用画像と右目用画像により立体視が実現され、プレーヤは、図26(B)に示すような左眼視点VPL、右眼視点VPRで立体視用画像を鑑賞する。これにより、ピント調整や奥行き感の矛盾が少なく、より自然な立体視を実現できるようになる。
このような立体視用画像生成手法においても、図5のように主描画領域、周囲描画領域を設定してオブジェクトの描画処理を行うことで、これまでにはないタイプの立体視表現を実現できる。例えば主描画領域に、ゲームの迷路等のゲームフィールド(第1のオブジェクト)を描画し、このゲームフィールド上で移動するキャラクタ等を、第2のオブジェクトとして描画する。こうすれば、背の高いキャラクタについても、ユーザの視点から見て周囲描画領域側にはみ出させて描画することが可能になり、立体視表現の自由度の向上等を図れる。