以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.構成
図1に本実施形態の画像生成システム(ゲームシステム)のブロック図の例を示す。なお、本実施形態の画像生成システムの構成は図1に限定されず、その構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、方向指示キー、操作ボタン、アナログスティック、レバー、各種センサ(角速度センサ、加速度センサ等)、マイク、或いはタッチパネル型ディスプレイなどにより実現できる。
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(DRAM、VRAM)などにより実現できる。そしてゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部170に保持される。
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、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、キャラクタ制御部105、仮想カメラ制御部108、スクリーン距離情報取得部110、ゲーム環境設定部112、画像生成部120、音生成部130を含む。またキャラクタ制御部105は移動処理部106、モーション処理部107を含む。なおこれらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
ゲーム演算部102はゲーム演算処理を行う。ここでゲーム演算としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
オブジェクト空間設定部104は、複数のオブジェクトが配置されるオブジェクト空間の設定処理を行う。例えば、キャラクタ(人、動物、ロボット、車、船舶、飛行機等)、マップ(地形)、建物、コース(道路)、樹木、壁などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。具体的には、記憶部170のオブジェクトデータ記憶部171には、オブジェクト(パーツオブジェクト)の位置、回転角度、移動速度、移動方向等のデータであるオブジェクトデータがオブジェクト番号に対応づけて記憶される。オブジェクト空間設定部104は、例えば各フレーム毎にこのオブジェクトデータを更新する処理などを行う。
キャラクタ制御部105は、オブジェクト空間を移動(動作)するキャラクタの制御を行う。例えばキャラクタ制御部105が含む移動処理部106は、キャラクタ(モデルオブジェクト、移動オブジェクト)を移動させる処理を行う。例えば操作部160によりプレーヤが入力した操作情報や、プログラム(移動アルゴリズム)や、各種データなどに基づいて、キャラクタをオブジェクト空間内で移動させる。具体的には、キャラクタの移動情報(位置、回転角度、速度、或いは加速度)を、1フレーム(例えば1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、移動処理やモーション処理や画像生成処理を行う時間の単位である。キャラクタ制御部105が含むモーション処理部107は、キャラクタにモーション(アニメーション)を行わせるモーション処理(モーション再生、モーション生成)を行う。このモーション処理は、キャラクタのモーションを、モーションデータ記憶部172に記憶されているモーションデータに基づいて再生することなどで実現できる。
仮想カメラ制御部108は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点、基準仮想カメラ)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置、視線方向あるいは画角を制御する処理)を行う。
例えば仮想カメラによりキャラクタを後方から撮影する場合には、キャラクタの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動処理部106で得られたキャラクタの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
スクリーン距離情報取得部110は、スクリーン距離情報を取得する処理を行う。このスクリーン距離情報は、表示部190のスクリーン(表示画面)から観者までの距離を表す情報である。
ゲーム環境設定部112は、ゲーム環境の設定処理を行う。例えばプレーヤからの入力情報に基づいて、プレーヤのゲーム環境の設定処理を行う。具体的には、表示部190によりゲーム環境の設定画面(オプション設定画面)を表示する。そして、表示されたゲーム環境設定画面においてプレーヤが操作部160を用いて入力した情報に基づいて、プレーヤがゲームをプレイにするのに必要な各種のゲーム環境情報を設定する処理を行う。設定されたゲーム環境情報は、ゲーム環境情報記憶部177に保存される。
画像生成部120は、処理部100で行われる種々の処理(ゲーム処理、シミュレーション処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。具体的には、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数プリミティブ面)を、描画バッファ179(フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ)に描画する。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。なお、描画処理は頂点シェーダ処理やピクセルシェーダ処理により実現することができる。
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
そして本実施形態では、オブジェクト空間設定部104は、オブジェクト空間において、湾曲面上に情報表示オブジェクトを配置設定する。例えば情報表示オブジェクトの3次元座標を湾曲面上の位置に設定する。ここで湾曲面は、例えばその曲率中心(1又は複数の曲率中心)が、仮想カメラ側にある曲面である。即ち仮想カメラ側に湾曲している曲面である。この湾曲面としては、例えば仮想カメラの位置を中心とする球面などを想定できる。また情報表示オブジェクトは、観者(狭義にはプレーヤ)に各種の情報を表示するためのオブジェクトである。ゲームを例にとれば、キャラクタの各種ステータスやゲームの状況などをプレーヤに表示するためのオブジェクトである。この情報表示オブジェクトは2次元形状のオブジェクトであってもよいし、3次元形状のオブジェクトであってもよい。
そして画像生成部130は、オブジェクト空間において左目用仮想カメラから見える画像である左目用画像(左目用映像)と、オブジェクト空間において右目用仮想カメラから見える画像である右目用画像(右目用映像)を生成する。即ち左目用仮想カメラの視点で、オブジェクト空間に配置される情報表示オブジェクト等のオブジェクトのレンダリングを行って、左目用画像を生成する。また右目用仮想カメラの視点で、オブジェクト空間に配置される情報表示オブジェクト等のオブジェクトのレンダリングを行って、右目用画像を生成する。これにより、情報表示オブジェクト等のオブジェクトが立体視表示される画像が生成されるようになる。
なお仮想カメラ制御部108は、例えば左目用仮想カメラと右目用仮想カメラを設定するための基準となる基準仮想カメラの制御を行う。そして、得られた基準仮想カメラの位置情報、方向情報と、設定されたカメラ間距離の情報に基づいて、左目用仮想カメラ、右目用仮想カメラの位置情報(視点位置)、方向情報(視線方向)を求める。なお仮想カメラ制御部108が、左目用仮想カメラや右目用仮想カメラを直接制御するようにしてもよい。また画像生成部120は、立体視モードでは、左目用仮想カメラによる左目用画像と、右目用仮想カメラによる右目用画像を生成する。一方、例えば立体視モードではない擬似3次元画像表示モードでは、基準仮想カメラから見える画像を疑似3次元画像として生成する。
また立体方式としては、2眼分離眼鏡方式や、レンティキュラーレンズなどを用いた裸眼方式などの様々な方式を想定できる。2眼分離眼鏡方式としては、例えば偏光眼鏡方式、継時分離方式、2色分離方式などがある。偏光眼鏡方式では、例えば表示部190の奇数ラインと偶数ラインに左目用画像と右目用画像を交互に表示し、これを偏光眼鏡(例えば左目に水平方向の偏光フィルタ、右目に垂直方向の偏光フィルタを付けた眼鏡)で見ることで立体視を実現する。或いは左目用画像と右目用画像を特殊な偏光フィルタを有するプロジェクタで投影し、投影画像を偏光眼鏡で見ることで立体視を実現してもよい。また継時分離方式(ページ・フリップ方式)では、表示部190に左目用画像、右目用画像を所定期間毎(例えば1/120秒毎、1/60秒毎)に交互に表示する。そして、この表示の切り替えに連動して液晶シャッター付きの眼鏡の左目、右目の液晶シャッターを交互に開閉することで、立体視を実現する。2色分離方式では、アナグリフ画像を生成し、赤青眼鏡等で見ることで、立体視を実現する。
また左目用画像と右目用画像から立体視画像を生成する機能は、画像生成部120に持たせてもよいし、表示部190に持たせてもよい。例えば画像生成部120が、サイドバイサイド方式の画像信号を出力する。すると表示部190が、このサイドバイサイドの画像信号に基づいて、奇数ラインと偶数ラインに左目用画像と右目用画像が交互に割り当てられるフィールドシーケンシャル方式の画像を表示する。或いは、左目用画像と右目用画像が所定期間毎に交互に切り替えられるフレームシーケンシャル方式の画像を表示する。或いは画像生成部120の方が、フィールドシーケンシャル方式やフレームシーケンシャル方式の画像を生成して、表示部190に出力するようにしてもよい。
またオブジェクト空間設定部104は、観者(viewer)であるプレーヤに、ゲームに関する情報を表示するための情報表示オブジェクトを、オブジェクト空間の湾曲面上に配置設定する。ここで情報表示オブジェクトにより表示されるゲームに関する情報は、プレーヤが操作するキャラクタに関する情報や、マップや得点などのゲーム状況を表す情報である。例えば、情報表示オブジェクトは、プレーヤが操作するキャラクタの情報(体力等のステータス情報)を表示するためのオブジェクト、キャラクタの装備アイテムの情報(武器等の装備アイテムの情報)を表示するためのオブジェクト、及びオブジェクト空間のマップ情報(マップの地形を簡略化して表した情報)を表示するためのオブジェクトの少なくとも1つを含むことができる。
この場合にオブジェクト空間設定部104は、情報表示オブジェクトとして、3次元形状のオブジェクトを、オブジェクト空間の湾曲面上に配置設定してもよい。例えばマップの情報表示オブジェクトである場合には、オブジェクト空間のマップの形状を簡略化した3次元のマップモデルを用意し、このマップモデルを表す3次元オブジェクト(複数のポリゴンで立体的に形成されるオブジェクト)を、マップの情報表示オブジェクトとして配置設定する。
またオブジェクト空間設定部104は、各湾曲面上に情報表示オブジェクト(1又は複数の情報表示オブジェクト)が配置設定される複数の第1〜第N(Nは2以上の整数)の湾曲面を設定してもよい。これらの第1〜第Nの湾曲面は、仮想カメラからの距離(例えば仮想カメラとスクリーン中心を結ぶ方向での距離)が互いに異なる湾曲面である。
この場合にオブジェクト空間設定部104は、第1〜第Nの湾曲面に配置設定される情報表示オブジェクトの並び替え処理を行ってもよい。例えば観者からの入力情報に基づいて、第1〜第Nの湾曲面に配置設定される情報表示オブジェクトを、仮想カメラからの距離が異なる位置に移動する並び替え処理を行う。具体的には、仮想カメラから見て近くにある湾曲面(第iの湾曲面)に配置設定される情報表示オブジェクトを、仮想カメラから見て遠くにある湾曲面(第jの湾曲面)の位置に移動したり、仮想カメラから見て遠くにある湾曲面(第jの湾曲面)に配置設定される情報表示オブジェクトを、仮想カメラから見て近くにある湾曲面(第iの湾曲面)の位置に移動する並び替え処理を行う。或いは湾曲面自体の並び替え処理を行ってもよい。
そして第1〜第Nの湾曲面に配置設定される情報表示オブジェクトに対して情報表示の優先順位が設定される場合には、オブジェクト空間設定部104は、高い優先順位が設定された情報表示オブジェクトを、第1〜第Nの湾曲面のうちの、仮想カメラから近い位置にある湾曲面に配置設定する。例えば優先順位が高いほど、仮想カメラから近い距離に位置するように情報表示オブジェクトを配置設定する。
またキャラクタ制御部105が、観者であるプレーヤにより操作されるキャラクタの制御を行う場合には、オブジェクト空間設定部104は、仮想カメラから第iの距離にある第iの湾曲面を、仮想カメラから見てキャラクタよりも手前側(仮想カメラから見て奥行き方向において手前側)に設定する。一方、仮想カメラから第jの距離にある第j(1≦i<j≦N)の湾曲面を、仮想カメラから見てキャラクタよりも奧側に設定する。例えば、第iの湾曲面と第jの湾曲面の間にキャラクタが位置するように、第iの湾曲面と第jの湾曲面を設定する。
また画像生成部130は、仮想カメラから第iの距離にある第iの湾曲面上に配置設定される第iの情報表示オブジェクトと、仮想カメラから第jの距離にある第jの湾曲面上に配置設定される第jの情報表示オブジェクトとが異なる表示態様になる画像を生成してもよい。例えば第iの情報表示オブジェクトと第jの情報表示オブジェクトの半透明度(透明度)、情報詳細度、色等の表示態様が異なるように画像処理を行って、画像を生成する。
例えば画像生成部130は、各湾曲面に配置設定される情報表示オブジェクトの半透明度を異ならせる画像処理を行う。具体的には、第jの湾曲面の方が第iの湾曲面よりも仮想カメラから遠い位置にある場合に、第jの湾曲面に配置設定される第jの情報表示オブジェクトを、第iの湾曲面に配置設定される第iの情報表示オブジェクトよりも透明に近づける半透明処理を行う。また画像生成部130は、各湾曲面に配置設定される情報表示オブジェクトの表示情報の詳細度を異ならせる画像処理を行う。具体的には、第jの湾曲面の方が第iの湾曲面よりも仮想カメラから遠い位置にある場合に、第jの湾曲面に配置設定される第jの情報表示オブジェクトよりも、第iの湾曲面に配置設定される第iの情報表示オブジェクトの方が、表示情報の詳細度が高くなる画像を生成する。なお表示情報の詳細度は、表示される情報量の大小を表すものであり、表示情報の詳細度が高い情報表示オブジェクトでは、表示情報の詳細度が低い情報表示オブジェクトに比べて、表示される情報の量が相対的に多くなる。
また本実施形態では、オブジェクト空間設定部104は、所定の情報に基づいて、仮想カメラと湾曲面との距離を変化させる。このようにすることで、仮想カメラと湾曲面との距離を所定情報に応じて可変に制御できるようになる。ここで所定の情報としては、例えば、ゲームステージの情報、ゲームフィールドの情報、ゲームフィールドでのキャラクタの位置情報、装備武器等の装備アイテムの情報、キャラクタのステータス情報、敵のステータス情報、表示部190のディスプレイサイズの情報、年齢、性別等のプレーヤ情報、或いは後述するスクリーン距離情報などの種々の情報を想定できる。
具体的には本実施形態では、スクリーン距離情報取得部110が、表示部190のスクリーンから観者までの距離を表すスクリーン距離情報(スクリーン距離パラメータ)を取得する。例えばゲーム環境設定部112が、観者であるプレーヤからの入力情報に基づいて、プレーヤのゲーム環境の設定処理を行ったとする。この場合にはスクリーン距離情報取得部110は、観者であるプレーヤからの入力情報(スクリーン距離の設定情報)に基づいて、スクリーン距離情報を取得する。
なお、スクリーン距離情報は、表示部190のスクリーン(表示画面)から観者までの距離そのものであってもよいし、その距離と等価な情報であってもよい。またスクリーン距離情報は、ゲーム環境設定画面でのプレーヤの入力情報に基づいて取得してもよいし、例えば画像センサ(デプスセンサ、色画像センサ)などを用いてデプス情報や色画像情報を取得して、スクリーン距離情報を取得してもよい。
そして、このようなスクリーン距離情報が取得されると、オブジェクト空間設定部104は、設定されたスクリーン距離情報に基づいて、仮想カメラと湾曲面との距離を変化させる。例えばスクリーン距離情報に対応する距離だけ仮想カメラの位置から離れた位置に、湾曲面を設定する。具体的には、スクリーン距離情報により表される距離が長くなると、仮想カメラと湾曲面との間の距離も長くする。
更に具体的にはオブジェクト空間設定部104は、表示部190のスクリーンに対応する位置に情報表示オブジェクトが立体視表示されるように、スクリーン距離情報に基づいて仮想カメラと湾曲面との距離を変化させる。例えば、表示部190のスクリーンと観者の距離が変化した場合にも、スクリーンに対応する位置に固定的に情報表示オブジェクトが立体視表示されるように、仮想カメラと湾曲面との距離を変化させる。
ここで、スクリーンに対応する位置は、例えばスクリーンとの相対的な位置関係が予め定まっている位置である。具体的にはオブジェクト空間設定部104は、スクリーンに対応する位置として、表示部190のスクリーンに外接する位置に湾曲面を設定する。即ち、観者とスクリーンの距離が変化した場合にも、スクリーンに外接するように湾曲面を設定する。
またスクリーン距離情報取得部110は、デプスセンサ(画像センサ)を用いて、表示部190側から観者側を見た場合のデプス情報を取得し、取得されたデプス情報に基づいて、スクリーン距離情報を取得してもよい。例えば、画像センサであるデプスセンサ(デプスカメラ)により観者を撮像し、表示部190から観者の方に向く方向(Z方向)でのデプス情報(デプス画像)を取得する。このデプス情報は、例えば各画素位置にデプス値(奥行き値)が設定(格納)された画像情報である。そして取得されたデプス情報に基づいて、スクリーン距離情報を取得する。このようにすることで、例えばゲーム環境設定画面においてプレーヤがスクリーン距離の情報を入力しなくても、自動的にスクリーン距離情報を取得できるようになる。
この場合にスクリーン距離情報取得部110は、色画像センサを用いて、色画像情報(RGB画像データ)を取得し、取得された色画像情報とデプス情報に基づいて、スクリーン距離情報を取得してもよい。例えば画像センサである色画像センサ(RGBセンサであるCCD、CMOSセンサ等)により観者を撮像し、色画像情報(撮像画像情報)を取得する。この色画像情報は、例えば各画素位置に色情報(RGB情報)が設定(格納)された画像情報である。そしてスクリーン距離情報取得部110は、取得された色画像情報とデプス情報に基づいて、スクリーン距離情報を取得する。例えば色画像情報に基づいて、観者の顔領域等を画像認識する。そしてデプス情報に基づいて、画像認識された顔領域でのデプス値を取得し、取得されたデプス値によりスクリーン距離情報を特定する。このようにすれば、自動的にスクリーン距離情報を取得する処理を行う場合に、その処理負荷を軽減できる。
2.本実施形態の手法
次に本実施形態の手法について具体的に説明する。
2.1 湾曲面への情報表示オブジェクトの配置設定
図2に本実施形態の画像生成システムにより生成される画像の例を示す。図2に示すように本実施形態では、IOB1、IOB2、IOB3などの情報表示オブジェクトを、オブジェクト空間(仮想3次元空間)内の湾曲面上に配置設定して立体視表示している。
例えば図3(A)に示すように、表示部190のスクリーンSC(表示画面)に対応する位置に情報表示オブジェクトIOB1、IOB2、IOB3が立体視表示されるように湾曲面CSFを設定する。そして、この湾曲面CSFに沿って情報表示オブジェクトIOB1、IOB2、IOB3を配置して、立体視表示された画像を生成する。ここで情報表示オブジェクトは、プレーヤにゲームに関する情報を表示するためのオブジェクトである。具体的にはIOB1は、プレーヤが操作するキャラクタCHの体力(残り体力)の情報(広義にはキャラクタのステータス情報)を表示するためのオブジェクトである。IOB2は、キャラクタCHの装備アイテムEOBである武器アイテムの情報を表示するためのオブジェクトである。IOB3は、キャラクタCHが移動するオブジェクト空間のマップの情報を表示するためのオブジェクトである。
例えば図3(A)はスクリーンSC及び仮想カメラVCを上方から見た図であり、図3(B)は横方向から見た図である。図3(A)、図3(B)に示すように、湾曲面CSFは、その曲率中心が仮想カメラVC側にある曲面である。具体的には、プレーヤの視点に相当する仮想カメラVCの周りを覆うように配置される球面(略球面を含む)である。例えば図3(A)、図3(B)では、表示部190のスクリーンSCに外接(例えばスクリーンSCの中心で外接)するように湾曲面CSFは配置されている。なお湾曲面は球面には限定されず、例えば円筒状の曲面等であってもよい。
そして本実施形態では、このように情報表示オブジェクトIOB1〜IOB3を湾曲面CSF上に配置設定して、図3(C)に示すように左目用仮想カメラVCLから見える画像である左目用画像と、右目用仮想カメラVCRから見える画像である右目用画像を生成する。このようにすることで、湾曲面CSF上に配置された情報表示オブジェクトIOB1〜IOB3も立体視表示されるようになり、これまでにない表示態様で情報表示オブジェクトを表示できるようになる。
なお、左目用仮想カメラVCL、右目用仮想カメラVCRは、プレーヤの視点に相当する仮想カメラVC(基準仮想カメラ)の位置VPや視線方向と、カメラ間距離DSに基づいて配置設定できる。また図2では、プレーヤが操作するキャラクタCHが表示される三人称視点の画像例であるが、一人称視点の画像であってもよい。一人称視点の場合には、キャラクタCHは表示部190に表示されない仮想的なオブジェクトになり、仮想カメラVCの視点がプレーヤの視点になって、プレーヤはオブジェクト空間内を移動することになる。
例えば図4に、情報表示オブジェクトの比較例の表示手法を示す。この比較例の手法では、体力、装備アイテム、マップ等の情報を表示する情報表示オブジェクトは、オブジェクト空間内に配置設定されるオブジェクトではない。即ち、これらの情報表示オブジェクトは、3次元の座標情報(X、Y、Z座標)を有しておらず、スクリーン上にスプライト等として描画される。つまり、スクリーン上の座標だけを用いて描画されている。このため、これらの情報表示オブジェクトは、常に画面に対応する位置に平面的な画像として表示されるようになる。
そして、立体視表示ではない疑似3次元のゲーム画像においては、図4のように情報表示オブジェクトが画面に貼り付いたような平面的な絵として表示されても、プレーヤは、それほど違和感を感じない。
ところが、立体視表示の画像では、疑似3次元画像に比べて、キャラクタやマップの立体感や奥行き感が、現実世界と同様にリアルに表現される。従って、このような立体感のある世界において、図4に示すように、体力ゲージ等の情報表示オブジェクトだけが、常に画面の位置に平面的に表示されると、せっかく創出した立体感が損なわれてしまい、プレーヤの仮想現実感が低下する。
この点、本実施形態によれば図2に示すように、あたかもプレーヤの周囲で宙に浮かんでいるかのように見える情報表示オブジェクトIOB1〜IOB3が立体視表示される。従って、キャラクタCHやマップなどの他のオブジェクトと同様の立体感、奥行き感で、情報表示オブジェクトIOB1〜IOB3が表示されるようになる。このため、立体感のある世界に、情報表示オブジェクトIOB1〜IOB3も溶け込んで表示されるようになり、情報表示オブジェクトの表示が原因でプレーヤの仮想現実感が低下してしまう事態を防止できる。即ち、本実施形態では、情報表示オブジェクトIOB1〜IOB3に対しても3次元座標情報(X、Y、Z座標)を与えて、プレーヤの視点(仮想カメラの位置)から見て例えば等距離の位置に配置する。例えば球面又は円筒の湾曲面CSFに情報表示オブジェクトIOB1〜IOB3を配置する。このようにすれば、図4のようにディスプレイ面に貼り付いたような表示ではなく、プレーヤから見て、より自然に見える情報表示オブジェクトIOB1〜IOB3の表示が可能になる。
2.2 スクリーン距離に応じた情報表示オブジェクトの配置
本実施形態では、スクリーンSCからプレーヤ(観者)までの距離を表すスクリーン距離情報に応じて情報表示オブジェクトを表示している。
例えば図5に、プレーヤが自身のゲームプレイの環境を設定するためのゲーム環境の設定画面(オプション設定画面)の例を示す。
図5では、プレーヤは、ゲーム環境設定の立体視オプションとして、立体視方式、立体視強度、スクリーンサイズ、スクリーン距離等を設定できるようになっている。立体視方式としては、前述のように偏光眼鏡を使用する偏光方式や、液晶シャッター等を用いるシャッター方式などの種々の方式を設定できる。
また立体視強度は、カメラ間距離DSに対応するものであり、プレーヤは、この立体視強度を設定することで、自身が所望する立体感で立体視画像を見ることが可能になる。
スクリーンサイズは、立体視画像が表示される表示部の表示画面のサイズ(テレビサイズ)である。スクリーン距離は、プレーヤの視聴位置から表示部(テレビ)までの距離である。例えば、スクリーンサイズやスクリーン距離が変わると、同じカメラ間距離の設定であっても、プレーヤが感じる立体感の強さは異なったものになる。このため、スクリーンサイズやスクリーン距離に応じて、カメラ間距離等の補正処理を行う必要がある。
本実施形態では、例えば図5のゲーム環境設定画面でのプレーヤの入力情報に基づいて、スクリーン距離情報を取得する。そして取得されたスクリーン距離情報に応じて、仮想カメラVCと湾曲面CSFとの距離を変化させる。例えばスクリーン距離情報に基づいて、仮想カメラVCと湾曲面CSFとの間の相対的な距離を設定し、湾曲面CSFを配置する。
このようにすれば、情報表示オブジェクトIOB1〜IOB3の表示を有効活用して、プレーヤの視点(仮想カメラ)からスクリーンSCまでの距離をプレーヤに把握させることが可能になる。
即ち、図5のゲーム環境設定画面において、プレーヤがスクリーン距離を入力しても、入力されたスクリーン距離が、プレーヤと表示部の実際の距離と一致しているのか否かを、プレーヤは確証できない。そして、入力されたスクリーン距離が、実際の距離と一致していないと、表示される立体視のゲーム画像は、ゲームメーカ側が意図した立体視の設定とは異なった設定の立体視画像になってしまう。即ち、カメラ間距離に応じて設定される立体感の強度等が、ゲームメーカ側が意図した設定とは異なった設定になってしまい、プレーヤにとって違和感のある立体視画像が生成されてしまうおそれがある。
この点、本実施形態によれば、プレーヤにより入力されたスクリーン距離に対応する位置に、湾曲面CSFが配置設定されて、情報表示オブジェクトIOB1〜IOB3が立体視表示されるようになる。従って、プレーヤは、図2に示すような立体視画像の画面を見ることで、自身が入力したスクリーン距離の設定が正しい設定か否かを確認できる。
例えばプレーヤが入力したスクリーン距離が、実際の距離(視聴位置からスクリーンまでの距離)よりも短い場合には、図6(A)に示すように、湾曲面CSFは、スクリーンSCへの外接位置よりも、プレーヤPLの視点から見て手前側(距離LS1の位置)に配置される。従って、情報表示オブジェクトIOB1〜IOB3も、プレーヤPLの視点から見てスクリーンSCよりも手前側に立体視表示されるようになる。
一方、プレーヤが入力したスクリーン距離が、実際の距離よりも長い場合には、図6(B)に示すように、湾曲面CSFは、プレーヤPLの視点から見てスクリーンSCよりも奥側(距離LS3の位置)に配置される。従って、情報表示オブジェクトIOB1〜IOB3も、スクリーンSCよりも奥側に立体視表示されるようになる。
従って、プレーヤは、図6(A)のように情報表示オブジェクトIOB1〜IOB3が手前側に立体視表示される場合には、図5のゲーム環境設定画面においてスクリーン距離を大きな値に設定する。一方、図6(B)のように情報表示オブジェクトIOB1〜IOB3が奥側に立体視表示される場合には、図5のゲーム環境設定画面においてスクリーン距離を小さな値に設定する。このようにすることで、図6(C)に示すように、湾曲面CSFは、スクリーンSCに対応する位置(外接位置)に配置されるようになり、情報表示オブジェクトIOB1〜IOB3もスクリーンSCに対応する位置に立体視表示されようになる。
従って、プレーヤは、情報表示オブジェクトIOB1〜IOB3の立体視の表示位置を手がかりとして、図5のゲーム環境設定画面において適正なスクリーン距離を入力できるようになる。そして、適正なスクリーン距離が設定されることで、カメラ間距離等の補正処理も適正なものになり、ゲームメーカ側が意図した立体視強度等で立体視画像を表示できるようになる。
なお、以上では、プレーヤの入力情報に基づいてスクリーン距離情報を取得する場合について説明したが、デプスセンサ等を用いてスクリーン距離情報を自動的に算出して取得してもよい。
例えば図7(A)では、表示部190に対応する位置に、デプスセンサ(赤外線センサ等)や色画像センサ(CCDやCMOSセンサなどのRGBセンサ等)により実現される画像センサISEが設置されている。この画像センサISEは、その撮像方向(光軸方向)が表示部190からプレーヤPLの方に向く方向になるように設置されており、表示部190側から見たプレーヤPLのデプス情報や色画像情報を撮像する。なお画像センサISEは、表示部190に内蔵されるものであってもよいし、外付け部品として用意されるものであってもよい。
そして図7(A)の画像センサISEを用いて、図7(B)に示すような色画像情報とデプス情報を取得する。例えば色画像情報では、プレーヤPLやその周りの風景の色情報が得られる。一方、デプス情報では、プレーヤPLやその周りの風景のデプス値(奥行き値)が、例えばグレースケール値として得られる。例えば色画像情報を用いて、公知の画像認識処理により、顔領域RFAを抽出する。そして、この顔領域RFAでのデプス値を、デプス情報を用いて参照し、得られたデプス値に基づいて、スクリーン距離情報を取得する。このようにすれば、図5のゲーム環境設定画面においてプレーヤがスクリーン距離を入力しなくても、スクリーン距離情報を自動的に取得できる。
なお、画像センサISEは、デプスセンサと色画像センサとが別々に設けられたセンサであってもよいし、デプスセンサと色画像センサとが複合的に組み合わせられたセンサであってもよい。またデプス情報の取得手法としては、公知に種々の手法を想定できる。例えば画像センサISE(デプスセンサ)から赤外線等の光を投射し、その投射光の反射光や投射光が戻ってくるまでの時間(Time Of Fright)を検出することで、デプス情報を取得し、画像センサISEの位置から見た観者等の物体のシェイプを検出する。具体的には、デプス情報は、例えば画像センサISEから近い物体では明るくなり、画像センサISEから遠い物体では暗くなるグレースケールデータとして表される。なおデプス情報の取得手法としては種々の変形実施が可能であり、例えばCMOSセンサなどの画像センサを用いて、色画像情報と同時にデプス情報(被写体までの距離情報)を取得するようにしてもよい。また超音波などを用いた測距センサなどによりデプス情報を取得してもよい。
そして本実施形態では、このように画像センサISEを利用して取得されたスクリーン距離情報を用いて、仮想カメラVCと湾曲面CSFとの間の距離を変化させる。
例えば図8(A)では、画像センサISEを用いて、短い距離のスクリーン距離が検知され、図8(B)では、長い距離のスクリーン距離が検知されている。従って、図8(A)では、仮想カメラVCと湾曲面CSFの距離は短い距離LS1に設定され、図8(B)では、仮想カメラVCと湾曲面CSFの距離は長い距離LS2に設定される。例えば図8(A)、図8(B)では、表示部190に対応する位置に情報表示オブジェクトIOB1〜IOB3が立体視表示されるように、湾曲面CSFが配置される。具体的には、表示部190のスクリーンSCに外接するように湾曲面CSFが配置され、この湾曲面CSFに沿って情報表示オブジェクトIOB1〜IOB3が配置される。
このようにすれば、画像センサISEによりスクリーン距離情報を自動検出し、検出されたスクリーン距離情報を用いて、湾曲面CSFを、スクリーンSCに対応する位置に配置できるようになる。従って、プレーヤの視聴位置が変化した場合にも、常に図2のような位置に情報表示オブジェクトIOB1〜IOB3が配置される立体視画像を生成できるようになる。また、画像センサISEにより検出されたスクリーン距離情報を用いて、左目用仮想カメラと右目用仮想カメラのカメラ間距離の補正処理などを行って、適正な立体視強度の立体視画像を生成することが可能になる。
なお図2では、情報表示オブジェクトIOB1〜IOB3が、3次元座標情報(3次元位置情報)を有する2次元形状のオブジェクトである場合を例示しているが、本実施形態はこれに限定されない。例えば図9に示すように、情報表示オブジェクトとして3次元形状のオブジェクトを配置してもよい。
即ち図9では、マップ情報を表示するための情報表示オブジェクトIOB3が、3次元形状のオブジェクトになっている。例えばキャラクタが移動するゲームフィールのマップ形状を簡略化したマップ表示用オブジェクト(複数のポリゴンで形成されるオブジェクト)を用意し、このマップ表示用オブジェクトを、湾曲面CSF上に配置する。こうすることで、立体感のあるマップがプレーヤの周りに表示されるようになるため、より見やすいマップをプレーヤに提供できる。また3次元形状のマップ表示用オブジェクトについても、両眼視差が設定されて、立体視表示されるようになるため、これまでにないゲームインターフェース環境をプレーヤに提供できる。
また本実施形態では、スクリーン距離情報のみならず、様々な情報(所定の情報)に基づいて、仮想カメラVCと湾曲面CSFとの距離LS(情報表示オブジェクトの配置位置)を制御してもよい。例えば、プレーヤがゲームプレイを行うゲームステージの情報に応じて仮想カメラVCと湾曲面CSFとの距離LSを制御してもよい。例えば第1のゲームステージと第2のゲームステージとで例えば図6(A)〜図6(C)に示すように距離LSを異ならせる。或いは、プレーヤが操作するキャラクタがゲームフィールド上を移動する場合に、ゲームフィールド上でのキャラクタの位置情報に基づいて、距離LSを制御してもよい。例えばキャラクタの位置が第1の位置である場合には距離LSを短くし、第2の位置である場合には距離LSを長くする。或いは、キャラクタの装備武器等の装備アイテムやキャラクタの体力、攻撃力、防御力等のステータス情報に基づいて距離LSを制御したり、敵キャラクタの体力、攻撃力、武器等のステータス情報に応じて距離LSを制御してもよい。更に表示部190のディスプレイサイズに応じて距離LSを短くしたり、長くしてもよい。或いは、プレーヤの年齢、性別等のプレーヤ情報に応じて距離LSを制御して、プレーヤの年齢等に応じた最適な距離に仮想カメラVCと湾曲面CSFとの距離LSを設定してもよい。
2.3 複数の湾曲面の設定
以上では、情報表示オブジェクトが配置される湾曲面として、1つの湾曲面を設定する場合について説明したが、複数の湾曲面を設定するようにしてもよい。
例えば図10では、仮想カメラVCからの距離が異なる複数の湾曲面CSF1〜CSF3(広義には第1〜第Nの湾曲面)が設定され、これらのCSF1〜CSF3の各湾曲面に情報表示オブジェクトが配置されている。例えば湾曲面CSF1には情報表示オブジェクトIOB11、IOB12、IOB13が配置され、湾曲面CSF2には情報表示オブジェクトIOB21、IOB22が配置され、湾曲面CSF3には情報表示オブジェクトIOB31、IOB32が配置されている。そして、湾曲面CSF1、CSF2、CSF3の仮想カメラVCからの距離は、各々、L1、L2、L3となっており、互いに異なっている。
このように複数の湾曲面CSF1〜CSF3を、仮想カメラVCから見て層構造に配置すれば、これまでは実現できなかったゲームインターフェース環境をプレーヤに提供できる。例えば、多数の情報表示オブジェクトを各湾曲面毎に分類して配置したり、情報表示オブジェクトを階層構造化して配置することが可能になる。また、重要な情報を表示する情報表示オブジェクトを手前側の湾曲面CSF1に配置し、あまり重要ではない情報を表示する情報表示オブジェクトを奥側の湾曲面CSF3やCSF2に配置することも可能になる。
また、このような湾曲面CSF1〜CSF3を設定すれば、湾曲面CSF1〜CSF3に配置される情報表示オブジェクトの並び替え処理を行うことも可能になる。
具体的には図11(A)に示すように、プレーヤ(観者)からの入力情報(並び替えを指示する入力情報)に基づいて、湾曲面CSF1〜CSF3(第1〜第Nの湾曲面)に配置設定される情報表示オブジェクトを、仮想カメラからの距離が異なる位置に移動する並び替え処理が可能になる。例えば図11(A)において、仮想カメラVCから見て手前側の湾曲面CSF1に配置される情報表示オブジェクトIOB12を、奥側の湾曲面CSF3に移動したり、奥側の湾曲面CSF3に配置される情報表示オブジェクトIOB31を、手前側の湾曲面CSF1に移動するなどの並び替え処理が可能になる。
この場合に、例えばCSF1〜CSF3の湾曲面自体を並び替えてもよい。例えば手前側の湾曲面CSF1を奥側の湾曲面CSF3の位置に移動したり、奧側の湾曲面CSF3を手前側の湾曲面CSF1の位置に移動する。このようにすれば、情報表示オブジェクトIOB11、IOB12、IOB13は、湾曲面CSF1の移動に伴い奥側に移動し、情報表示オブジェクトIOB31、IOB32は、湾曲面CSF3の移動に伴い手前側に移動するようになる。またCSF1〜CSF3の各湾曲面上において情報表示オブジェクトを並び替えてよい。例えば湾曲面CSF1上において、情報表示オブジェクトIOB13の位置にIOB12を移動し、IOB12の位置にIOB13を移動する並び替え処理を行う。この並び替え処理は、各種のゲーム状況に応じて自動的に行ってもよいし、プレーヤの入力情報に基づいてマニュアルで行ってもよい。例えばゲーム環境設定画面のオプション画面で、各湾曲面上での情報表示オブジェクトの配置位置を設定できるようにしてもよい。
また本実施形態をハードディスクレコーダ等の映像記録装置やテレビなどの画像生成システムにおけるメニュー画面表示に適用した場合には、例えばCSF1、CSF2、CSF3の各湾曲面に、各チャンネルで放送される番組情報を表示する情報表示オブジェクトを配置することが可能になる。例えば湾曲面CSF1にはチャンネル1で放送される番組情報の情報表示オブジェクトを配置し、湾曲面CSF2にはチャンネル3で放送される番組情報の情報表示オブジェクトを配置する。そして観者が例えばチャンネル3を選択すると、並び替え処理が行われて、チャンネル3の番組情報の情報表示オブジェクトが、手前側の湾曲面CSF1の位置に移動する。一方、チャンネル1の番組情報の情報表示オブジェクトについては、奥側の湾曲面CSF2の位置に移動する。或いはCSF1、CSF2、CSF3の各湾曲面に、各ジャンルのコンテンツの情報を表示する情報表示オブジェクトを配置してもよい。例えば湾曲面CSF1にはスポーツジャンルのコンテンツの情報表示オブジェクトを配置し、湾曲面CSF2には音楽ジャンルのコンテンツの情報表示オブジェクトを配置する。そして観者が例えば音楽ジャンルを選択すると、音楽ジャンルのコンテンツの情報表示オブジェクトが、手前側の湾曲面CSF1の位置に移動する。一方、スポーツジャンルのコンテンツの情報表示オブジェクトは、奥側の湾曲面CSF2の位置に移動する。
またCSF1〜CSF3の湾曲面に配置設定される情報表示オブジェクトに対して、情報表示の優先順位を設定してもよい。例えば図11(B)に、各情報表示オブジェクトと、その情報表示の優先順位とを対応づけたテーブルの例を示す。図11(B)に示すように、体力、マップ、武器アイテムの情報は、ゲームにおける情報表示の優先順位が高いため、これらの情報表示オブジェクトには高い優先順位(=1)が設定される。即ち、これらの体力、マップ、武器アイテムの情報は、プレーヤがゲーム中に頻繁に確認する必要がある情報であるため、高い優先順位を設定する。一方、体力以外のキャラクタのステータスや、武器以外のアイテムの情報表示オブジェクトには、中ぐらいの優先順位(=2)が設定される。また、キャラクタのステータスの詳細情報や、アイテムの詳細情報には、低い優先順位(=3)が設定される。これのら詳細情報は、ゲーム中に常に確認する必要がある情報ではなく、例えば敵との対戦を行っていないような余裕のある状況において、ゆっくりと確認すればよい情報であるからである。
そして図11(A)では、高い優先順位が設定された情報表示オブジェクトについては、CSF1〜CSF3の湾曲面(第1〜第Nの湾曲面)のうちの、仮想カメラVCから近い位置にある湾曲面CSF1に配置する。即ち図11(B)において高い優先順位に設定されている体力、マップ、武器アイテムの情報表示オブジェクトについては、手前側の湾曲面CSF1に配置する。
一方、低い優先順位が設定された情報表示オブジェクトについては、仮想カメラVCから遠い位置にある湾曲面CSF3に配置する。即ち図11(B)において低い優先順位に設定されているキャラクタやアイテムの詳細情報の情報表示オブジェクトについては、奧側の湾曲面CSF3に配置する。
このようにすれば、情報表示の優先順位が高い情報表示オブジェクトについては、仮想カメラVCから見て手前側に表示され、優先順位が低い情報表示オブジェクトについては、奧側に表示されるようになる。従って、例えばゲームプレイ中に頻繁に見る必要がある重要な情報を表示する情報表示オブジェクトは、プレーヤから見やすい位置に立体視表示されるようになる。これにより、プレーヤのゲームインターフェース環境を向上できる。
一方、時々しか見る必要がない情報を表示する情報表示オブジェクトについては、プレーヤから見て遠い位置に立体視表示されるようになる。これにより、これらの情報表示オブジェクトが、プレーヤのゲームプレイの妨げになる事態を防止できる。また、これらの情報表示オブジェクトにより表示される情報(キャラクタやアイテムの詳細情報)が必要になった場合には、図11(A)で説明したように、プレーヤの指示に基づいて、これらの情報表示オブジェクトを手前側に移動することで、プレーヤは、その情報を確認することが可能になる。
なお図11(B)等で説明した優先順位を可変に設定するようにしてもよい。例えばゲーム状況等の情報に基づいて優先順位を自動的に変化させたり、ゲーム環境設定画面等の設定画面においてプレーヤが優先順位をマニュアルで設定できるようにする。ここでゲーム状況の情報としては、プレーヤがプレイするゲームステージの情報、ゲームフィールドの情報、ゲームフィールド上でのキャラクタの位置情報、プレーヤが操作するキャラクタのステータス情報、敵キャラクタのステータス情報、或いはキャラクタの装備アイテムの情報等を想定できる。例えば各ゲームステージにおいて情報表示の必要性が高い情報を表示する情報表示オブジェクトの優先度を高くしてもよい。或いは、ゲームフィールド上でのキャラクタの位置に応じて優先順位を変化させてもよい。或いは、キャラクタのステータスパラメータのうちの所定のステータスパラメータが大きく変化した場合に、そのステータスパラメータの優先順位を高くしてもよい。また、プレーヤが、所定の情報表示オブジェクトの表示を優先する場合には、設定画面においてプレーヤが表示の優先順位をマニュアルで設定できるようにしてもよい。
また図12では、ゲームコントローラ162(操作部)を用いてプレーヤが操作するキャラクタCHの前後に湾曲面が設定されて、情報表示オブジェクトが配置されている。即ち、プレーヤの操作によって移動するキャラクタCHを挟むように、湾曲面CSF1、CSF2等が配置される。
例えば仮想カメラVCから距離L1(第iの距離)にある湾曲面CSF1(第iの湾曲面)を、仮想カメラVCから見てキャラクタCHよりも手前側に配置する。一方、仮想カメラVCから距離L2(第jの距離)にある湾曲面CSF2(第jの湾曲面)を、仮想カメラVCから見てキャラクタCHよりも奧側に配置する。別の言い方をすれば、湾曲面CSF1と湾曲面CSF2の間にキャラクタCHが位置するような配置にする。
このようにすれば、キャラクタCHの手前側に位置する湾曲面CSF1に情報表示オブジェクトIOB11、IOB12、IOB13を配置して、例えば表示の優先順位が高い情報をプレーヤに対して提示できるようになる。一方、キャラクタCHの奥側に位置する湾曲面CSF2に情報表示オブジェクトIOB21、IOB22を配置して、表示の優先順位がそれほど高くない情報をプレーヤに対して提示できるようになる。また湾曲面CSF1、CSF2を、例えばキャラクタCHとの相対的な位置関係が固定されるように配置することが可能になるため、プレーヤの混乱を招くのを防止し、プレーヤにとって見やすい情報の提示が可能になる。
また、このように複数の湾曲面を配置する場合には、各湾曲面に配置される情報表示オブジェクトの表示態様を、仮想カメラVCからの距離に応じて異ならせて画像を生成してもよい。例えば仮想カメラVCから距離L1(第iの距離)にある湾曲面CSF1(第iの湾曲面)上に配置される情報表示オブジェクトIOB11、IOB12、IOB13(第iの情報表示オブジェクト)と、仮想カメラから距離L2(第jの距離)にある湾曲面CSF2(第jの湾曲面)上に配置される情報表示オブジェクトIOB21、IOB22(第jの情報表示オブジェクト)とが異なる表示態様になる画像を生成する。同様に、湾曲面CSF2上に配置される情報表示オブジェクトIOB21、IOB22と、仮想カメラVCから距離L3にある湾曲面CSF3上に配置される情報表示オブジェクトIOB31、IOB32とが異なる表示態様になる画像を生成する。
この場合に、情報表示オブジェクトの表示態様を異ならせる手法としては、例えば透明度(半透明度)や情報詳細度を異ならせる手法が考えられる。
例えば図13では、仮想カメラVCからの距離に応じて、情報表示オブジェクトの透明度を異ならせている。即ち図13では、湾曲面CSF2(第jの湾曲面)の方が湾曲面CSF1(第iの湾曲面)よりも仮想カメラVCから遠い位置にある。つまり、湾曲面CSF1は仮想カメラVCから距離L1の位置にあり、湾曲面CSF2は仮想カメラVCから距離L2の位置にあり、L2>L1になっている。
この場合に、湾曲面CSF2に配置される情報表示オブジェクトIOB21、IOB22(第jの情報表示オブジェクト)を、湾曲面CSF1に配置設定される情報表示オブジェクトIOB11、IOB12、IOB13(第iの情報表示オブジェクト)よりも透明に近づける半透明処理を行う。例えば手前側の湾曲面CSF1に配置される情報表示オブジェクトIOB11、IOB12、IOB13については、透明度(半透明度)を低くして、例えば不透明なオブジェクトに設定する。一方、奧側の湾曲面CSF2に配置される情報表示オブジェクトIOB21、IOB22については、情報表示オブジェクトIOB11、IOB12、IOB13よりも透明度を高くする。また、更に奧側の湾曲面CSF3に配置される情報表示オブジェクトIOB31、IOB32については、情報表示オブジェクトIOB21、IOB22よりも更に透明度を高くする。
このようにすれば、最も手前側の情報表示オブジェクトIOB11、IOB12、IOB13については、透明度が低く、例えば不透明なオブジェクトになるため、プレーヤの視認性を向上でき、重要な情報をプレーヤに的確に提示できるようになる。
一方、奥側の情報表示オブジェクトIOB21、IOB22、IOB31、IOB32については、透明度が高くなる。従って、これらの情報表示オブジェクトIOB21、IOB22、IOB31、IOB32の存在が邪魔になって、プレーヤのゲームプレイに支障を来す事態を防止できる。
また図14では、仮想カメラVCからの距離に応じて、情報表示オブジェクトの表示情報の詳細度を異ならせている。
例えば湾曲面CSF2に配置される情報表示オブジェクトIOB21、IOB22(第jの情報表示オブジェクト)よりも、湾曲面CSF1に配置設定される情報表示オブジェクトIOB11、IOB12、IOB13(第iの情報表示オブジェクト)の方が、表示情報の詳細度が高くなる画像を生成する。例えば手前側の湾曲面CSF1に配置される情報表示オブジェクトIOB11、IOB12、IOB13については、表示情報の詳細度を高くして、プレーヤへの表示情報量が多くなるようにする。一方、奧側の湾曲面CSF2に配置される情報表示オブジェクトIOB21、IOB22については、表示情報の詳細度を低くして、プレーヤへの表示情報量が少なくなるようにする。更に奧側の湾曲面CSF3に配置される情報表示オブジェクトIOB31、IOB32については、情報表示オブジェクトIOB21、IOB22よりも更に表示情報の詳細度を低くする。
このようにすれば、最も手前側の情報表示オブジェクトIOB11、IOB12、IOB13については、表示情報の詳細度が高くなるため、プレーヤに対して多くの情報を提示できるようになる。そして手前側の情報表示オブジェクトIOB11、IOB12、IOB13は、プレーヤにとって見やすい位置に配置され、視認性が高い。従って、このように表示情報の詳細度を高くしても、プレーヤは、表示される情報の内容を的確に把握できる。
一方、奥側の情報表示オブジェクトIOB21、IOB22、IOB31、IOB32については、表示情報の詳細度が低くなる。従って、プレーヤは、奥側の情報表示オブジェクトについては、大まかな情報の内容だけを把握できるようになり、プレーヤの利便性を向上できる。
なお表示情報の詳細度が高いとは、提示される情報量が多いことを意味し、表示情報の詳細度が低いとは、提示される情報量が少ないことを意味する。例えば表示情報の詳細度は、情報表示オブジェクトにより表示される画像の精細度や、情報表示オブジェクトにより表示されるテキスト(文字)の量などにより設定される。
例えば図15(A)では、手前側に配置される情報表示オブジェクトIOBK(CSF1に配置される情報表示オブジェクト)については、低い透明度(例えば不透明)に設定され、表示情報の詳細度も高くなる。即ち、「ナイフA」、「ピストルB」、「ライフルC」などの多くのテキスト(文字)が表示され、画像の精細度も高くなる。一方、奧側に配置される情報表示オブジェクトIOBL(CSF2に配置される情報表示オブジェクト)については、高い透明度(半透明)に設定され、表示情報の詳細度も低くなる。即ち、テキストの量は最小限に抑えられ、画像の精細度も低くなる。
そして図15(B)では、図11(A)で説明したような情報表示オブジェクトの並び替え処理が行われている。具体的には、図15(A)において手前側(CSF1)にあった情報表示オブジェクトIOBKが、図15(B)では奥側(CSF2)に移動している。また図15(A)において奥側(CSF2)にあった情報表示オブジェクトIOBLが、図15(B)では手前側(CSF1)に移動している。
この場合に、図15(A)では、その透明度が低かった情報表示オブジェクトIOBKが、図15(B)に示すように奥側に移動すると、その透明度が高くなる。一方、図15(A)では、その透明度が高かった情報表示オブジェクトIOBLが、図15(B)に示すように手前側に移動すると、その透明度が低くなる。
また、図15(A)では、その情報詳細度が高かった情報表示オブジェクトIOBKが、図15(B)に示すように奥側に移動すると、その情報詳細度が低くなる。例えば図15(A)の情報表示オブジェクトIOBKでは表示されていたナイフ等の画像が、図15(B)のIOBKでは表示されなくなる。
一方、図15(A)では、その情報詳細度が低かった情報表示オブジェクトIOBLが、図15(B)に示すように手前側に移動すると、その情報詳細度が高くなる。例えば図15(A)では情報表示オブジェクトIOBLに表示されていなかった「ナイフA」の説明文のテキストが、図15(B)のIOBLでは表示されるようになる。
このように、透明度、情報詳細度等を制御しながら、情報表示オブジェクトの並び替え処理を可能にすることで、プレーヤにとって見やすく、必要な情報を的確に表示できるゲームインターフェース環境を実現することが可能になる。
2.4 詳細な処理例
次に本実施形態の詳細な処理例について図16、図17のフローチャートを用いて説明する。図16は本実施形態の全体的な処理例を示すフローチャートである。
まず、フレーム更新のタイミングか否かを判断する(ステップS1)。そしてフレーム更新のタイミングである場合には、キャラクタの制御処理を行う(ステップS2)。例えばプレーヤの操作情報やモーションデータなどに基づいて、オブジェクト空間内のゲームフィールド上でキャラクタを移動させたり、動作(モーション)させる制御を行う。また、仮想カメラ(基準仮想カメラ)の制御処理を行う(ステップS3)。例えば、プレーヤの操作情報や、キャラクタの位置、方向などに基づいて、仮想カメラの位置、方向を特定する処理を行う。また、オブジェクト空間へのオブジェクトの配置設定処理を行う(ステップS4)。例えば情報表示オブジェクト以外の複数のオブジェクトをオブジェクト空間に配置設定する処理(オブジェクトデータの更新処理等)を行う。
次に、図5〜図8(B)等で説明したように、スクリーン距離情報に基づいて湾曲面を設定する処理を行う(ステップS5)。例えばゲーム環境の設定画面において、プレーヤによりスクリーン距離情報が入力された場合には、そのスクリーン距離情報に対応する位置に湾曲面を設定する。或いは、画像センサ等によりスクリーン距離情報が取得され場合には、スクリーンに対応する位置(例えば外接位置)に湾曲面を設定する。そして、設定された湾曲面上に、情報表示オブジェクトを配置設定する(ステップS6)。例えば図10のように複数の湾曲面が設定されている場合には、各湾曲面に対して、対応する情報表示オブジェクトを配置設定する。
次に、仮想カメラの位置、方向とカメラ間距離に基づいて、左目用仮想カメラ、右目用仮想カメラを設定する(ステップS7)。例えばキャラクタに追従する基準仮想カメラの位置、方向を求め、この基準仮想カメラの位置、方向とカメラ間距離に基づいて、左目用仮想カメラ、右目用仮想カメラの位置、方向を設定する。そして設定された左目用仮想カメラから見える画像を描画して、左目用画像を生成する(ステップS8)。また設定された右目用仮想カメラから見える画像を描画して、右目用画像を生成する(ステップS9)。そして、生成され左目用画像、右目用画像は、例えばサイドバイサイド方式等の画像信号で表示部190に出力される。
図17は情報表示オブジェクトの並び替え処理に関するフローチャートである。
まず、情報表示オブジェクトの並び替え操作が行われたか否かを判断する(ステップS11)。例えばプレーヤが操作部160を用いて、並び替えを指示する所定の操作を行った場合に、情報表示オブジェクトの並び替え操作が行われたと判断する。
そして、並び替え操作が行われた場合には、プレーヤによって選択された情報表示オブジェクトを、仮想カメラから見て手前側の湾曲面上に配置設定する(ステップS12)。例えば図15(A)において、奥側の情報表示オブジェクトIOBLが選択された場合には、図15(B)に示すように情報表示オブジェクトIOBLを手前側の湾曲面CSF1に移動して配置する。一方、プレーヤによって選択されていない情報表示オブジェクトを、仮想カメラから見て奥側の湾曲面上に配置設定する(ステップS13)。例えば図15(A)において手前側に配置されていた情報表示オブジェクトIOBKを、図15(B)に示すように奧側の湾曲面CSF2に移動して配置する。
そして図13〜図15(B)で説明したように、情報表示オブジェクトの半透明度の変更処理や情報詳細度の変更処理を行う(ステップS14、S15)。例えば図15(A)から図15(B)への並び替え処理が行われた場合には、情報表示オブジェクトIOBLの透明度を低くすると共に情報詳細度を高くする。また情報表示オブジェクトIOBKの透明度を高くすると共に情報詳細度を低くする。このようにすれば、情報表示オブジェクトの並び替え処理を行った場合にも、プレーヤにとって見やすい的確な表示態様で、情報表示オブジェクトを表示できるようになる。
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語(観者、ステータス情報等)と共に記載された用語(プレーヤ、体力情報等)は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、情報表示オブジェクトや湾曲面の配置設定処理、情報表示オブジェクトの並び替え処理、情報表示オブジェクトの表示態様の変更処理、スクリーン距離情報の取得処理等も本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話、映像記録装置、テレビ等の種々の画像生成システムに適用できる。