プログラム、情報記憶媒体、画像生成システム及びサーバシステム
【課題】表示されない移動体の存在を把握しやすいマーカ表示を行うことができるゲーム画像を提供すること。
【解決手段】本プログラムは、移動体をオブジェクト空間内で移動させる演算を行う移動演算部と、記移動体に対応するマーカの表示制御を行うマーカ表示制御部と、前記オブジェクト空間を所与の視点からみた画像を立体視用画像として生成する画像生成部としてコンピュータを機能させ、前記マーカ表示制御部は、少なくとも前記移動体又は前記移動体に対応するマーカが前記所与の視点から見えない位置にいることを条件として、マーカに対応する移動体とプレーヤ移動体との位置関係に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行う。
【解決手段】本プログラムは、移動体をオブジェクト空間内で移動させる演算を行う移動演算部と、記移動体に対応するマーカの表示制御を行うマーカ表示制御部と、前記オブジェクト空間を所与の視点からみた画像を立体視用画像として生成する画像生成部としてコンピュータを機能させ、前記マーカ表示制御部は、少なくとも前記移動体又は前記移動体に対応するマーカが前記所与の視点から見えない位置にいることを条件として、マーカに対応する移動体とプレーヤ移動体との位置関係に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体、画像生成システム及びサーバシステム等に関する。
【背景技術】
【0002】
従来より、仮想的な3次元空間であるオブジェクト空間内に複数のオブジェクトを配置し、オブジェクト空間内の所与の視点から見える画像を生成する画像生成装置が開発、実用化されており、いわゆる仮想現実を体験できるものとして人気が高い。レーシングカーゲームを楽しむことができる画像生成装置を例にとれば、プレーヤは、レーシングカーを操作してオブジェクト空間内で走行させ、他のプレーヤが操作するレーシングカーと競争することで3次元ゲームを楽しむ。また通信等を利用して複数のプレーヤが同一のゲーム空間内で他のプレーヤの運転するレーシングカーと時間、順位を競い合いながらマルチプレーヤゲームを楽しむこともできる。
【0003】
さて、このような画像生成装置では、どのプレーヤがどの移動体を操作しているかは、どのようなゲーム状況であっても、プレーヤが容易且つ明確に識別できることが望まれるため、各プレーヤの顔写真等をマーカとして表示するものがあり、マーカにより競争相手を意識しながらレースを行うことができる。
【0004】
また近年、映画やゲーム等の分野において、より臨場感が溢れる画像を生成するシステムとして、立体視画像の生成システムが脚光を浴びており、オブジェクト空間を立体視用画像として生成することで、より臨場感をあふれるゲーム画像を提供することができる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平10−73416号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところでレーシングゲーム等では、プレーヤ移動体の後方の移動体については、位置の把握が難しく、レーダー画像等でしか、競争相手の位置を把握することができないという問題があった。本願発明者は、前記マーカを利用して、競争相手の位置の把握がしやすい画像生成システムの開発を行っている。
【0007】
本発明の幾つかの態様によれば、立体視用画像が提供されるゲームにおいて、表示されない移動体の存在を把握しやすいマーカ表示を行うことができるプログラム、情報記憶媒体、画像生成システム及び等を提供できる。
【課題を解決するための手段】
【0008】
(1)本発明の一態様は、
移動体をオブジェクト空間内で移動させる演算を行う移動演算部と、
前記移動体に対応するマーカの表示制御を行うマーカ表示制御部と、
前記オブジェクト空間を所与の視点からみた画像を立体視用画像として生成する画像生成部としてコンピュータを機能させ、
前記マーカ表示制御部は、
少なくとも前記移動体又は前記移動体に対応するマーカが前記所与の視点から見えない位置にいることを条件として、マーカに対応する移動体とプレーヤ移動体との位置関係に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行うプログラムに関する。
【0009】
視差制御は、マーカに対応する2D画像を前記オブジェクト空間を所与の視点からみた画像(透視投影変換画像)に対して立体視用の所与の視差(表示画面から飛び出して見えるような視差や表示画面から奥まって見えるような視差)を与えて描画してもよい(所定のずれを与えて描画してもよい)。
【0010】
本発明によれば見えない位置にいる移動体については、移動体に対応するマーカが移動体とは独立して表示され、プレーヤ移動体との位置関係に応じて前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行う。従って視差制御が行われているマーカによって、見えない位置にいる移動体との位置関係を立体的に把握することができるゲーム画像を提供することができる。
【0011】
(2)このプログラム、情報記憶媒体、画像生成システム及びサーバシステムにおいて、
前記マーカ表示制御部は、
前記移動体に付随するように設定されているマーカ付随位置が、ビューボリューム内に存在する場合には、対応するマーカを当該移動体に付随して表示させる付随表示制御処理を行い、
前記マーカ付随位置がビューボリューム内に存在しない場合には、対応するマーカを移動体とは分離して表示させ、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行ってもよい。
【0012】
(3)このプログラム、情報記憶媒体、画像生成システム及びサーバシステムにおいて、
前記マーカ表示制御部は、
前記移動体がビューボリューム内に存在する場合には、対応するマーカを当該移動体に付随して表示させる付随表示制御処理を行い、
前記移動体がビューボリューム内に存在しない場合には、対応するマーカを移動体とは分離して表示させ、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行ってもよい。
【0013】
前記マーカ表示制御部は、前記移動体が前記ビューボリューム以外の所定の条件を満たす判定空間(3次元的に判断する場合)や判定領域(2次元的に判断する場合)にいる場合に、当該移動体に対応するマーカに対して視差制御を行うようにしてもよい。判定空間や判定領域は、例えば視点やビューボリュームやプレーヤ移動体や投影面等のいずれかに基づき設定される空間や領域でもよい。
【0014】
また前記マーカ表示制御部は、前記移動体が、前記プレーヤ移動体又は視点又は仮想カメラ又は立体視用画像を生成する際の投影面と所定の位置関係にある場合に、当該移動体に対応するマーカに対して視差制御を行うようにしてもよい。
【0015】
前記投影面は、投影面に位置するオブジェクトの画像の視差が無くなる面である。
【0016】
例えば前記移動体の奥行き方向の位置が、前記プレーヤ移動体又は前記視点又は前記仮想カメラ又は前記投影面より手前方向にある場合に、前記移動体に対応する前記マーカの視差制御を行うようにしてもよい。
【0017】
(4)このプログラム、情報記憶媒体、画像生成システム及びサーバシステムにおいて、
前記マーカ表示制御部は、
前記移動体と前記プレーヤ移動体との距離に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行ってもよい。
【0018】
前記移動体と前記プレーヤ移動体との距離は、3次元空間における距離でもよいし、所定の軸方向の距離でもよいし、所定の平面上の距離でもよいし、コース座標系におけるコース方向の距離でもよい。
【0019】
このようにすると、プレーヤ移動体からの距離に応じて対応するマーカの奥行き感又は飛び出し感が変化して見えるので、移動体との距離感が奥行き感又は飛び出し感とシンクロナイズして、プレーヤが見えない移動体の位置が把握しやすいゲーム画像を提供することができる。
【0020】
(5)このプログラム、情報記憶媒体、画像生成システム及びサーバシステムにおいて、
前記マーカ表示制御部は、
前記移動体と前記プレーヤ移動体との相対速度、又は相対加速度、又はタイム差に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行ってもよい。
【0021】
この様にすると、速度感や加速度感やタイム差を反映して奥行き感または飛び出し感が変化する表示を行うことができる。
【0022】
(6)このプログラム、情報記憶媒体、画像生成システム及びサーバシステムにおいて、
前記移動体演算部は、
オブジェクト空間に設定されているコース内で移動体を移動させる制御を行い、
前記マーカ表示制御部は、
前記コースに対して設定されたコース座標系における位置座標に基づき、前記視差制御対象となるマーカの位置を設定してもよい。
【0023】
(7)このプログラム、情報記憶媒体、画像生成システム及びサーバシステムにおいて、
前記マーカ表示制御部は、
前記視差制御対象のマーカの水平方向の位置を、対応する移動体のコースの幅方向に位置に基づき設定し、
前記プレーヤ移動体と視差制御対象のマーカに対応する移動体のコース方向の距離が離れるほど、前記コース幅方向の位置の変動の反映率を低くして、前記マーカの水平方向の位置を設定してもよい。
【0024】
(8)このプログラム、情報記憶媒体、画像生成システム及びサーバシステムにおいて、
前記マーカ表示制御部は、
移動体の位置が変化することにより、視差制御対象の対象となっているマーカが視差制御対象外となった場合、または視差制御対象外であったマーカが視差制御対象となった場合の少なくとも一方の場合に、前記マーカのぼかし制御を行なってもよい。
【0025】
(9)本発明の一態様は、
上記のいずれかに記載のプログラムが記憶されたコンピュータ読み取り可能な情報記憶媒体に関する。
【0026】
(10)本発明の一態様は、
移動体をオブジェクト空間内で移動させる演算を行う移動演算部と、
前記移動体に対応するマーカの表示制御を行うマーカ表示制御部と、
前記オブジェクト空間を所与の視点からみた画像を立体視用画像として生成する画像生成部とを含み、
前記マーカ表示制御部は、
少なくとも前記移動体又は前記移動体に対応するマーカが前記所与の視点から見えない位置にいることを条件として、マーカに対応する移動体とプレーヤ移動体との位置関係に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行う画像生成システムに関する。
【0027】
(11)本発明の一態様は、
移動体をオブジェクト空間内で移動させる演算を行う移動演算部と、
前記移動体に対応するマーカの表示制御を行うマーカ表示制御部と、
前記オブジェクト空間を所与の視点からみた画像を立体視用画像として生成する画像生成部とを含み、
前記マーカ表示制御部は、
少なくとも前記移動体又は前記移動体に対応するマーカが前記所与の視点から見えない位置にいることを条件として、マーカに対応する移動体とプレーヤ移動体との位置関係に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行うサーバシステムに関する。
【図面の簡単な説明】
【0028】
【図1】本実施形態の画像生成システムの構成例。
【図2】立体視画像を生成する際の投影面及びビューボリュームについて説明するための図。
【図3】マーカの表示制御について説明するための図。
【図4】マーカの表示制御について説明するための図。
【図5】マーカの表示制御について説明するための図。
【図6】視差の度合いの制御について説明するための図。
【図7】コース上で判定区間を設定する例を説明するための図。
【図8】コース座標系について説明するための図。
【図9】視差制御の対象となるマーカの表示位置について説明するための図。
【図10】視差制御を行うマーカのぼかし処理について説明するための図。
【図11】視差角について説明するための図。
【図12】視差制御処理の流れについて説明するためのフローチャート。
【発明を実施するための形態】
【0029】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0030】
1.構成
図1に本実施形態の画像生成装置(コンピュータ、端末、ゲーム装置)の機能ブロック図の例を示す。なお本実施形態の画像生成装置は図1の構成要素(各部)の一部を省略した構成としてもよい。
【0031】
入力部160は、プレーヤからの入力情報を入力するための機器であり、プレーヤの入力情報を処理部に出力する。本実施形態の入力部160は、プレーヤの入力情報(入力信号)を検出する検出部162を備える。入力部160は、例えば、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイなどがある。また、入力部160は、所定振動信号に基づいて振動させる処理を行う振動部を備えていてもよい。
【0032】
また、入力部160は、3軸の加速度を検出する加速度センサや、角速度を検出するジャイロセンサ、撮像部を備えた入力機器でもよい。例えば、入力機器は、プレーヤが把持して動かすものであってもよいし、プレーヤが身につけて動かすものであってもよい。また、入力機器には、プレーヤが把持する刀型コントローラや銃型コントローラ、あるいはプレーヤが身につける(プレーヤが手に装着する)グローブ型コントローラなど実際の道具を模して作られたコントローラも含まれる。また入力機器には、入力機器と一体化されている画像生成装置、携帯型画像生成装置、携帯電話なども含まれる。
【0033】
記憶部200は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM、VRAMなどにより実現できる。
【0034】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。
【0035】
処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。
【0036】
撮像部162は、被写体を撮像するものであり、CCDやCMOSセンサなどの撮像素子や、レンズ等の光学系により実現できる。撮像部162の撮像により取得された撮像情報(撮像画像データ)は、撮像情報記憶部174に記憶されて保存される。撮像部162で撮像されたプレーヤの画像を、マーカに使用してもよい。
【0037】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(DRAM、VRAM)などにより実現できる。そしてゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部170に保持される。
【0038】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(DVD、CD等)、HDD(ハードディスクドライブ)、或いはメモリ(ROM等)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータ(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
【0039】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、LCD、有機ELディスプレイ、CRT、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0040】
通信部196は外部(例えば他の画像生成装置)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0041】
なお、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体180や記憶部200に記憶してもよい。このようにプログラムやデータを受信して画像生成装置を機能させる場合も本発明の範囲内に含む。
【0042】
処理部100(プロセッサ)は、入力部160からの入力情報やプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。
【0043】
この処理部100は記憶部170内の主記憶部172をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、GPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0044】
処理部100は、オブジェクト空間設定部110、ゲーム演算部112、移動体演算部114、マーカ表示制御部116、画像生成部(描画部)120、音処理部130を含む。なおこれらの一部を省略する構成としてもよい。
【0045】
オブジェクト空間設定部110は、キャラクタ(敵オブジェクト)の他に、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を、オブジェクト空間に配置設定する処理を行う。
【0046】
ここでオブジェクト空間とは、仮想的な3次元空間である。3次元空間とは、例えば3次元座標(X,Y,Z)においてオブジェクトが配置される空間である。
【0047】
例えば、オブジェクト空間設定部110は、オブジェクト空間を3次元空間とした場合には、ワールド座標系にオブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)を配置する。また、例えば、ワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0048】
ゲーム演算部116は、種々のゲーム処理を行う。例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム終了条件が満たされた場合にゲームを終了する処理、最終ステージをクリアした場合にはエンディングを進行させる処理などがある。
【0049】
マーカ表示制御部116は、移動体に対応するマーカの表示制御を行うもので、少なくとも前記移動体又は前記移動体に対応するマーカが前記所与の視点から見えない位置にいることを条件として、マーカに対応する移動体とプレーヤ移動体との位置関係に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行う。
【0050】
またマーカ表示制御部116は、前記移動体がビューボリューム内に存在する場合には、対応するマーカを当該移動体に付随して表示させる付随表示制御処理を行い、
前記移動体がビューボリューム内に存在しない場合には、対応するマーカを移動体とは分離して表示させ、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行ってもよい。
【0051】
またマーカ表示制御部116は、前記移動体と前記プレーヤ移動体との距離に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行ってもよい。
【0052】
またマーカ表示制御部116は、記移動体と前記プレーヤ移動体との相対速度、又は相対加速度、又はタイム差に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行ってもよい。
【0053】
また移動体演算部116は、オブジェクト空間に設定されているコース内で移動体を移動させる制御を行い、マーカ表示制御部116は、前記コースに対して設定されたコース座標系における位置座標に基づき、前記視差制御対象のマーカの位置を設定してもよい。
【0054】
マーカ表示制御部116は、前記視差制御対象のマーカの水平方向の位置を、対応する移動体のコースの幅方向に位置に基づき設定し、
前記プレーヤ移動体と視差制御対象のマーカに対応する移動体のコース方向の距離が離れるほど、前記コース幅方向の位置の変動の反映率を低くして、前記マーカの水平方向の位置を設定してもよい。
【0055】
またマーカ表示制御部116は、移動体の位置が変化することにより、視差制御対象の対象となっているマーカが視差制御対象外となった場合、または視差制御対象外であったマーカが視差制御対象となった場合の少なくとも一方の場合に、前記マーカのぼかし制御を行ってもよい。
【0056】
画像生成部120は、処理部100で行われる種々の処理(ゲーム処理、シミュレーション処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。具体的には、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数プリミティブ面)を、描画バッファ178(フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ)に描画する。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。画像生成部120は頂点処理やピクセル処理を行ってもよい。
【0057】
頂点処理は頂点シェーダ、ジオメトリーシェーダ等がおこなってもよい。具体的には、オブジェクトの頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)に基づいて、頂点処理(頂点シェーダによるシェーディング)を行う。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0058】
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。
【0059】
ピクセル処理はピクセルシェーダがおこなってもよい。具体的には、ラスタライズ後に、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)を行う。
【0060】
ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読み出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ178に出力(描画)する。即ち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
【0061】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現できる。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0062】
なお、画像生成部120は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、3次元の画像を生成する場合には、ワールド座標系における仮想カメラの位置(X、Y、Z)又は回転角度(例えば、X、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を制御する処理を行う。要するに、視点位置、視線方向、画角を制御する処理を行う。また、画像生成部120は、仮想カメラを、予め決められた回転角度で回転させてもよい。この場合には、仮想カメラの位置又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0063】
例えば、フロントビュー視点やドライバー視点等(一人称視点)に基づいて画像を生成する処理を行ってもよいし、車体後方視点や俯瞰視点等(三人称視点)に基づいて画像を生成する処理を行ってもよい。
【0064】
また、本実施形態では、仮想カメラの移動、向き、画角はプログラムで制御してもよいし、入力部160の入力情報に基づいて仮想カメラの移動、向き、画角を制御してもよい。
【0065】
例えば仮想カメラによりオブジェクト(例えば、プレーヤキャラクタ)を後方から撮影する場合には、オブジェクトの位置、向きの変化に仮想カメラが追従するように、仮想カメラの位置、仮想カメラの向きを制御する。この場合には、移動演算部114で得られたオブジェクトの位置、向き又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた向きに設定し、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は向きを特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0066】
なお画像生成部120は、オブジェクトを描画する際に、αブレンディング等を行ってもよい。
【0067】
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。
【0068】
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0069】
画像生成部120は立体視用画像生成部122を含む。
【0070】
立体視用画像生成部122は、立体視用画像を生成する場合に、視点に基づき左眼用仮想カメラ及び右眼用仮想カメラの設定を行い、オブジェクト空間において左眼用仮想カメラから見える左眼用画像と、オブジェクト空間において右眼用仮想カメラから見える右眼用画像を生成する。
【0071】
立体視方式としては、2眼分離眼鏡方式や、パララックスバリアやレンチキュラや、その他、光線の方向を制御することができる光学素子を用いた裸眼方式などの様々な方式を想定できる。2眼分離眼鏡方式としては、例えば偏光眼鏡方式、継時分離方式、色分離方式などがあるが、いずれかの方式に対応した立体視用画像を生成するものであればよい。
【0072】
音処理部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0073】
また、音生成部130は、オブジェクトやマーカの位置に応じて音像定位が変化する音を生成してもよい。例えば、マーカが画面よりも手前側に飛び出して見える場合には、該マーカに対応する音の音像定位を画面よりも手前側の位置に設定し、マーカが画面よりも奥側に引っ込んで見える場合には、該マーカに対応する音の音像定位を画面よりも手前側の位置に設定してもよい。また、マーカの移動に連動して音像定位の位置を移動させるようにしてもよい。
【0074】
なお、本実施形態の画像生成装置は、1人のプレーヤのみがプレイできるシングルプレーヤモード用の装置にしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードを備える装置にしてもよい。
【0075】
また、本実施形態の画像生成システムをサーバシステムとして構成してもよい。サーバシステムは、1又は複数のサーバ(認証サーバ、ゲーム処理サーバ、通信サーバ、課金サーバ、データベースサーバ等)により構成することができる。この場合には、サーバシステムは、ネットワークを介して接続された1又は複数の端末装置(例えば、据え置き型ゲーム装置、携帯型ゲーム装置、プログラム実行可能な携帯電話等)から送信された操作情報に基づき各種処理を行って、立体視用画像を生成するための画像生成用データを生成し、生成した画像生成用データを各端末装置に対して送信する。ここで、画像生成用データとは、本実施形態の手法により生成された立体視用画像を各端末装置において表示するためのデータであり、画像データそのものでもよいし、各端末装置が立体視用画像を生成するために用いる各種データ(オブジェクトデータ、ゲーム処理結果データ等)であってもよい。
【0076】
2.本実施形態の手法
2−1.立体視画像の原理
次に本実施形態の手法について具体的に説明する。
【0077】
図2は、立体視画像を生成する際の投影面及びビューボリュームについて説明するための図である。
【0078】
立体視用画像を生成する際には、所定の距離(両眼の幅に対応して設定)だけ離れた位置に設定される左眼用仮想カメラ210−Lと右眼用仮想カメラ210−Rを用いて左眼用画像と右眼用画像を生成する。左眼用画像は左眼用仮想カメラ210−Lからみたオブジェクト空間を投影面240に投影した画像であり、右眼用画像は右眼用仮想カメラ210−Rからみたオブジェクト空間を投影面240に投影した画像である。
【0079】
左眼用仮想カメラ210−Lに対応して左眼用ビューボリューム220−Lが設定され、右眼用仮想カメラ210−Rに対応して右眼用ビューボリューム220−Rが設定される。具体的には左眼用仮想カメラ210−L、右眼用仮想カメラ210−Rの位置や視線方向に基づいて、左眼用ビューボリューム220−L、右眼用ビューボリューム220−Rの位置や方向が設定される。
【0080】
左眼用画像は、左眼用ビューボリューム220−L内に存在するオブジェクトを投影面240に透視投影して描画することで生成される。同様に右眼用画像は、右眼用ビューボリューム220−R内に存在するオブジェクトを投影面240に透視投影して描画することで生成される。230は最大手前面(前方クリッピング面)、250は最大奥行き面(後方クリッピング面)である。
【0081】
各オブジェクトについての左眼用画像と右眼用画像に生じる視差により、各オブジェクトに奥行き感又は飛び出し感を持たせることができる。ここで、最大手前面230と投影面240の間(飛び出し空間と呼ぶ)の点Aに位置するオブジェクトOA、投影面240上の点Bに位置するオブジェクトOB、投影面240と最大奥行き面250の間(奥行き空間と呼ぶ)の点Cに位置するオブジェクトOCを投影面240に描画した場合に生じる左眼用画像と右眼用画像のずれについて説明する。
【0082】
投影面240に位置するオブジェクトOBは左眼用画像でも右眼用画像でも同じ位置BP−L、BP−Rに描画されるため、左眼用画像と右眼用画像とでずれが生じない。
【0083】
これに対し、飛び出し空間の点Aに位置に位置するオブジェクトOAは左眼用画像では点AP−Lの位置に描画され、右眼用画像では点AP−Rの位置に描画されるため、左眼用画像と右眼用画像とで第1の方向(例えばX軸正方向)にずれが生じる。この第1の方向に生じたずれにより、点Aに位置するオブジェクトOAがユーザが見るモニタ画面(表示部)からユーザの方に飛び出して見える。
【0084】
また奥行き空間の点Cに位置に位置するオブジェクトOCは左眼用画像では点CP−Lの位置に描画され、右眼用画像では点CP−Rの位置に描画されるため、左眼用画像と右眼用画像とで第1の方向と逆の第2の方向(例えばX軸負方向)にずれが生じる。この第2の方向に生じたずれにより、点Cに位置するオブジェクトOCはユーザが見るモニタ画面(表示部)より奥行き方向に奥まっているように見える。
【0085】
2−2.本実施の形態のレーシングゲーム
本実施の形態のレースゲームは、例えば複数のプレーヤが通信対戦を行えるマルチプレーヤゲームでもよい。各プレーヤは、各自の入力部(例えばコントローラやゲーム筐体の操作部等)から操作入力を行うことで自己の移動体であるプレーヤ移動体(例えば車)をゲーム空間内(オブジェクト空間の一例)に設定されたコース上を移動させて、順位やタイム等を競うことができる。各プレーヤの表示部(モニタ画面)等には、各プレーヤのプレーヤ移動体に追従する視点でのゲーム画像が、立体視用画像として表示されるので、プレーヤは臨場感に富んだレースゲームを楽しむことができる。
【0086】
また本実施の形態のレースゲームでは、図3に示すように所与の視点から見える位置にいるプレーヤ移動体410−1、410−2、410−3に関しては、それぞれに対応するマーカ420−1、420−2、420−3が付随して表示される。マーカ420−1、420−2、420−3には、対応するプレーヤ移動体を操作するプレーヤを識別するための情報等(画像等)が付されており、例えば各プレーヤのニックネームや登録画像(例えば撮像部で撮影した画像でもよいし、サーバや携帯情報機器等の他の情報記憶媒体に予め格納されている画像でもよい)や選択したキャラクタの画像でもよい。
【0087】
2−3.マーカの視差制御
図3、図4、図5は、本実施の形態のマーカの表示制御について説明するための図である。
【0088】
図5は、レーシングゲームが行われるゲーム空間400(オブジェクト空間の一例)内をY軸方向(上)からみた場合の移動体の配置状態を示す図である。最大奥行き面250と最大手前面(前方クリッピング面)230を底面(上と下)とする視錐台(図5では台形表示になっている)がビューボリューム220となり、このビューボリューム220に含まれるオブジェクトが透視投影変換(描画対象)となり、表示部に表示される(実際には他のオブジェクト等に隠れて見えない場合もある)。
【0089】
図3は、図5に対応するゲーム空間を所与の視点(図5の210であり、例えばプレーヤ移動体410を操作するプレーヤP1の視点)から見た様子を示している。図3では最大奥行き面250と最大手前面(前方クリッピング面)230を底面(上と下)とする視錐台がビューボリューム220となる。270は飛び出し描画面であり、この面にマーカを描画すると、マーカが表示画面から飛び出して見える。
【0090】
移動体410−1、410−2、410−340がプレーヤP1のから見える(表示部に表示される)オブジェクトであるので、これらに対応するマーカ420−1、420−2、420−3については、移動体410−1、410−2、410−340に付随して表示させる。
【0091】
この様に本実施の形態では、移動体(プレーヤ移動体でもよいし、NPC(Non Player Character)でもよい)がオブジェクト空間のビューボリューム内にある場合(表示部に表示されプレーヤP1から見える場合)に、移動体に付随してマーカを表示させる付随表示制御処理を行う。
【0092】
また移動体がオブジェクト空間のビューボリューム内にいない場合(表示部に表示されずプレーヤP1から見えない場合)に前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行う。
【0093】
図3のマーカ420−4、420−5は、移動体410−4、410−5(図5に示すようにビューボリューム220外に存在するためプレーヤP1から見えない移動体である)に対応するマーカであり、視差制御が行われているため、表示画面から飛び出して見える。しかし、マーカ420−4、420−5に対応する移動体410−4、410−5自体の画像は表示されていない。従って通常であればプレーヤP1はこれらの移動体の存在を把握できないところ、本実施の形態では、プレーヤP1から見えない位置にいる移動体410−4、410−5については移動体410−4、410−5に対応するマーカ420−4、420−5が表示部から飛び出して見えるように表示するので、見えない位置にいる移動体410−4、410−5の存在を感じながらレースを行うことができる。
【0094】
例えば、プレーヤ移動体410−1の後方にいる移動体410−4が、プレーヤ移動体410−1を追いこす場合には、追い越し前は、プレーヤ移動体410−4に対応するマーカのみが420−4が表示されているが、追い越し後はプレーヤ移動体410−4もビューボリューム220内に入るため、画面内に表示されるようになる。従って移動体410−2と対応するマーカ420−2や、移動体410−3と対応するマーカ420−3のように、移動体410−4に対応するマーカ420−4も、画面内の移動体410−4に付随して表示されることになる。
【0095】
例えば、移動体410−4がオブジェクト空間内の投影面240を通過したときに、表示されていなかった移動体410−4が画面内に表示され、対応するマーカ420−4の表示が、独立表示状態(図9に示すゲーム画像下部の所定の領域710にあり、視差制御により飛び出して見える状態)から付随表示状態(対応する移動体410−4に付随して表示される状態)に切り替わるようにしてもよい。
【0096】
本実施の形態では図9で説明するように、独立表示状態のマーカの水平方向の表示位置は、対応する移動体のコース幅方向の位置に基づき設定されるため、マーカの表示が独立表示状態から付随表示状態に切り替わる場合でも、マーカの水平方向の位置の変化はシームレスである。
【0097】
また独立表示状態から付随表示状態へ切り替えを、オブジェクト空間内における移動体が投影面240を通過したタイミングで行う場合には、移動体410−4が投影面240を通過するタイミングに合わせて、マーカの垂直方向の表示位置を、独立表示時の垂直位置(これは、図9で説明するようにゲーム画像の下部の所定の領域710の垂直位置)から、ゲーム画面内の移動体410−4の表示位置(2次元画像における描画位置)にスムーズに移動させるようにしてもよい。
【0098】
マーカの付随表示状態と独立表示状態の切替は、プレーヤ移動体以外の他の移動体の代表点が、プレーヤのビューボリューム内外かを判断して行っても良いし、移動体に付随させるマーカを配置する位置(又は配置する基準となる位置)となるマーカ付随位置を予め移動体に関連付けて設定し、このマーカ付随位置がビューボリューム内外かを判断して切替を行っても良い。
【0099】
マーカ付随位置に基づいて、マーカの付随表示状態と独立表示状態を切替える場合、他の移動体がプレーヤ移動体の後方から近づくにつれて視差を視差0方向に変更し、投影面で視差を0にすると良い。このように視差を変更することにより、マーカの付随表示状態と独立表示状態の切替え時の立体感を滑らかに移行することができる。
【0100】
さらに本実施の形態では、視差制御されるマーカ420−4、420−5に与える立体視用の視差の度合いを、マーカに対応する移動体410−4、410−5とプレーヤ移動体410−1との位置関係に応じて変化させる。
【0101】
図4(A)(B)は、マーカの視差制御について説明するための図である。
【0102】
図4(A)はプレーヤP1が、表示画面500に表示されるゲーム画像を介してゲーム空間(オブジェクト空間、図5の400)を見ている様子を模式的に示している。また図4(B)は、プレーヤP1が見ているゲーム空間400をX軸方向から見た様子を模式的に示している。
【0103】
図4(B)の320は、ゲーム空間400において投影面240と最大奥行き面250の間の空間である奥行き空間である。この奥行き空間320に位置する移動体410−1,410−2、410−3については、視点(仮想カメラ)210から見える画像として表示画面500に立体視用画像として表示されているため、プレーヤP1は、図4(A)に示すように移動体410−1、410−2、410−3が表示画面500の奥にあるように奥行き感を感じることができる。
【0104】
また図4(B)の310は、ゲーム空間400において投影面240と最大手前面230の間の空間である飛び出し空間である。この飛び出し空間310に位置するマーカ420−5,420−4については、プレーヤP1には、図4(A)に示すように表示画面500から手前に飛び出しているように見える。
【0105】
図4(B)のゲーム空間において最大奥行き面250より視点(仮想カメラ210)から見て奥側の空間330−1、及び最大手前面230より視点(仮想カメラ210)側の空間330−2は、プレーヤP1からは見えない空間(仮想カメラ210から見えない空間でもある)である。従って移動体410−4、410−5は、表示画面500には表示されないが、これらに対応するマーカ420−4、420−5については、図4(A)に示すように飛び出し感を出すための視差が与えられて移動体とは別個に表示される。
【0106】
マーカ420−4、420−5については、いずれも表示画面500の手前にあるように飛び出して見えるが、その飛び出し度合い(立体視用の視差の度合い)が異なっている。ここでは、プレーヤ移動体410−1より離れた移動体のマーカほど飛び出し度合いが大きくなる場合を例示している。
【0107】
マーカ420−4は移動体410−4に対応したマーカであり、マーカ420−5は移動体410−5に対応したマーカであり、移動体410−4とプレーヤ移動体410−1の位置関係(例えばz軸方向の距離l1)、移動体410−5とプレーヤ移動体410−1の位置関係(例えばz軸方向の距離l2)が異なっているため、距離に応じて、飛び出し度合いを変化させるようにしてもよい。例えばプレーヤ移動体との距離(3次元空間における距離でもよいし、ある軸方向の距離でもよい)が離れた移動体ほど、対応するマーカの飛び出し度合いが大きくなるように、与える視差の度合いを制御してもよい。
【0108】
このようにすることで、プレーヤP1は自己のプレーヤ移動体410−1の後方に位置するが表示画面500には表示されていない移動体410−4,410−5の存在を把握することができ、マーカ420−4,420−5の飛び出し度合いによって、プレーヤ移動体410−1との位置関係(例えば離れ具合)を把握することができる。
【0109】
なお視差制御は、マーカをオブジェクトとして仮想空間内の飛び出し空間に配置して投影面240に透視投影変換して描画することによって実現してもよい。またマーカの2次元画像を視差をつけて、左眼用画像と右眼用画像(透視投影変換後の画像)に上書きして描画してもよい。
【0110】
図6は、視差制御について説明するための図である。
【0111】
立体視用画像は、各オブジェクトについての左眼用画像と右眼用画像に生じる視差により、各オブジェクトに奥行き感又は飛び出し感を持たせることができるが、飛び出し感を持たせた画像が生成されるのは、オブジェクトが投影面240より手前の空間(ビューボリュームにおける投影面240と最大手前面(前方クリッピング面)の間の空間(飛び出し空間)にある場合である。
【0112】
飛び出し空間の点Dに位置に位置するオブジェクトODは左眼用画像では点DP−Lの位置に描画され、右眼用画像では点DP−Rの位置に描画されるため、左眼用画像と右眼用画像とで第1の方向に(例えばX軸正方向)にずれSDが生じる。このずれSDにより、点Dに位置するオブジェクトODがユーザが見るモニタ画面(表示部)からユーザの方にαD(図4(A)参照)飛び出して見える。従って例えばマーカ410−5の2次元画像にずれSDをつけて、左眼用画像と右眼用画像(透視投影変換後の画像)に上書き合成することでマーカの飛び出し表示を実現することができる。
【0113】
飛び出し空間の点E(点Dより奥行き方向にある)に位置に位置するオブジェクトOEは左眼用画像では点EP−Lの位置に描画され、右眼用画像では点EP−Rの位置に描画されるため、左眼用画像と右眼用画像とで第1の方向に(例えばX軸正方向)にずれSEが生じる。このずれSEにより、点Eに位置するオブジェクトOEがユーザが見るモニタ画面(表示部)からユーザの方にαE(図4(A)参照)飛び出して見える。従って例えばマーカ410−4の2次元画像にずれSEをつけて左眼用画像と右眼用画像(透視投影変換後の画像)に上書き合成することでマーカ410−4の視差制御を行うことができる。
【0114】
2−4.視差制御の対象となるマーカ
次に視差制御の対象となるマーカについて説明する。
【0115】
視差制御の対象となるマーカは、所与の視点から見えない移動体(ビューボリューム内に存在しない移動体)すべてに対応するマーカでもよいし、所与の視点から見えない移動体(ビューボリューム内に存在しない移動体)のうちその位置が所定の条件を満たす移動体に対応するマーカでもよい。
【0116】
所定の条件として、例えば移動体と、視点やビューボリュームやプレーヤ移動体や立体視用画像を生成する際の投影面との位置関係に関する条件を設定してもよい。
【0117】
例えば移動体が、前記プレーヤ移動体又は視点又は仮想カメラ又は立体視用画像を生成する際の投影面よりZ軸手前方向(奥行き方向と反対の方向)にいる場合に、当該移動体に対応するマーカの視差制御を行うようにしてもよい。このようにすると後方で見えない移動体に対応するマーカの視差制御を行うことができる。
【0118】
また図5に示すように、投影面240から手前方向の空間(投影面240からのZ軸方向の距離がK以内の空間)にいる移動体410−4、410−5に対応するマーカを視差制御対象としてもよい。この様にすると当該空間よりさらに手前方向に存在する移動体410−6(プレーヤ移動体410−1より後方に位置する移動体)に対応するマーカも視差制御の対象とならない。しかし移動体410−6は、移動体410−4、410−5に比べてプレーヤ移動体410−1から後方に離れているので、これらに比べてプレーヤ移動体に与える脅威が低くなるため、あえてその存在をプレーヤに知らしめる必要が低くなる。このように視差制御の対象を制限して、余分な表示を行わないことで、より見やすいゲーム画面を提供することができる。
【0119】
なお本実施の形態のように移動体がゲーム空間上に設定されたコース上を走行する場合には、コース上の領域を判定領域690として設定し、判定領域内の移動体に対応するマーカについて視差制御を行ってもよい。
【0120】
図7は、コースに判定領域を設定する例を説明するための図であり、図8はコース座標系について説明するための図である。
【0121】
例えばコース上において、視点位置210や、投影面240や、プレーヤ移動体410−1の後方の所定範囲の区間を判定領域690として設定してもよい。
【0122】
690は、視点位置210の後方の所定区間を表示対象区間としている様子を示している。移動体をコース上で走行させる場合には、移動体の位置をコース座標系(l、w)で設定してもよい。
【0123】
コース座標系は図8に示すように、コースの長手方向(コース方向)Lを第1の軸とし、コースの長手方向に直行するコースの幅方向Wを第2の軸として、コース上の所与の点Pの座標(l、w)を、L方向のスタートラインからの距離lと、W方向の中心点(L軸上の点)からの距離wで表す。例えば点PはL方向のスタートラインLからの距離がl1で、W方向の中心点からの距離がw1であるので、点Pのコース座標系における座標値は(l1、w1)となる。
【0124】
従って視点位置210の後方の所定区間を判定領域とする場合には、視点210からのコース方向の距離KL(図7参照)を定義しておくとよい。
【0125】
2−5.視差制御対象となるマーカの表示位置
図9は、視差制御の対象となるマーカの表示位置について説明するための図である。
【0126】
700は表示画面に表示されるゲーム画像である。ゲーム画像700内の所定の領域710を飛び出し表示対象のマーカM1,M2を表示する領域としてもよい。所定の領域は、ゲーム画像710の下部の領域としてもよい。マーカを表示する領域はゲーム画像の他の場所に設定してもよいが、マーカM1、M2の表示が本来のゲーム画像の表示のじゃまになりくい場所することが好ましい。
【0127】
ここで所定の領域のどの位置(例えば水平方向の位置)に表示するかは、マーカに対応する移動体の位置E1、E2に基づき設定してもよい。例えば移動体E1の位置のコース座標系の幅方向の値が’+w1’、移動体E2の位置のコース座標系の幅方向の値が’−w2’である場合には、所定の領域710の基準点KPからマークM1までの距離lm1、所定の領域の基準点KPからマークM2までの距離lm2の値がlm1:lm2=w1:w2になるような位置にマークM1、M2を設定してもよい。この様にすると、水平方向のマークの表示位置に、対応する移動体のコース幅方向の位置が反映されるので、プレーヤに対して見えない移動体の位置を把握させやすいマーカ表示を行うことができる。
【0128】
後方の近い位置の移動体についてはデッドヒートになる可能性があるため、より正確な位置を知ることが重要であるが、遠く離れた移動体については、あまり細かな位置変化(コース幅方向の位置変化)を把握する必要はない。
【0129】
従って視差制御対象のマーカに対応する移動体とプレーヤ移動体のコース方向Lの距離が離れるほど、前記コース幅方向Wの位置の変動の反映率を低くしてもよい。例えば図7において、移動体410−5は移動体410−4よりもプレーヤ移動体410−1からのコース方向Lの距離が離れているので、移動体410−5に対応するマーカへ反映率を移動体410−4に対応するマーカへの反映率よりも低くなるようにしてもよい。
【0130】
反映率の変更は、位置を反映させるタイミングの間隔を変更することで実現してもよい。例えばn秒に1回の割合で位置を反映させる場合と2n秒に1回の割合で位置を反映させる場合には後者のほうが位置変動の反映率が低くなる。
【0131】
この様にすると移動体410−5と移動体410−4が同じような幅方向の位置変化を起こしたとしても、プレーヤ移動体により近い移動体410−4に対応するマーカのほうが水平方向の位置変化が激しくなり、プレーヤ移動体からより遠い移動体410−5に対応するマーカにはあまり細かい位置変化は反映されず、見やすい画像を提供することができる。また、移動体の幅方向の位置変化が激しい場合、マーカの表示位置の変化も激しくなり画面が見づらくなるのを防止することができる。
【0132】
2−6.視差制御を行うマーカのぼかし処理
マーカのぼかし処理は、半透明処理や被写界深度処理やモーションブラー処理、ブリンク処理などにより実現することができる。例えばぼかしフィルタ(ブラーフィルタ)などを用いて、フェードイン、フェードアウト時のマーカの画像をぼかす処理を行ってもよい。また、モーションブラー処理によりぼかすようにしてもよい。また、マーカの画像の表示・非表示を所定期間毎に繰り返すブリンク処理(点滅処理)を行ってもよい。またマーカの各頂点のα値を変更して描画する半透明処理を行ってもよい。
【0133】
図10は、視差制御を行うマーカの半透明処理について説明するための図である。
【0134】
視差制御の対象となっているマーカ420に対応する移動体の位置が変化して、マーカが視差制御の対象外となった場合(例えば移動体の位置がビューボリューム以外から前記ビューボリューム内に変化した場合)には、図10に示すように視差制御により飛び出してみえるよう表示されていたマーカ420が、半透明表示(ぼかし処理の一例である)された(420参照)のち、消失するようにしてもよい。半透明処理において時間とともに透明度を大きくすることで、次第にマーカが消えていく様子を演出(フェードアウト演出)することができる。
【0135】
また視差制御の対象でなかったマーカに対応する移動体の位置が変化して対応するマーカが視差制御の対象となった場合(例えば移動体の位置がビューボリューム内から前記ビューボリューム以外に変化した場合)には、マーカを半透明表示(ぼかし処理の一例である)した後に表示させてもよい。半透明処理において時間とともに透明度を小さくすることで、次第にマーカが現れる様子を演出(フェードイン演出)することができる。
【0136】
2−7.投影面の設定
次に投影面の設定手法の一例について説明する。
【0137】
投影面は、図2に示すようにオブジェクト空間内に仮想的に設定され、左眼用画像や右眼用画像が透視投影変換される面である。オブジェクト空間内において、視点位置が与えられ視点位置に基づき左眼用仮想カメラと右眼用仮想カメラが設定されると、これらに基づき投影面が設定される。投影面をどのように設定するかは、望ましい視差角θとの関係で決定してもよい。
【0138】
図11は、視差角について説明するための図である。
【0139】
立体視画像を見る場合に視差角θ(α−β)が大きいほど、左眼用画像と右眼用画像のずれが大きくなる。ずれが大きくなりすぎるとぶれて見えたりするので、視差角θを適切な範囲内に納めることがこのましい。視差角θは、表示画面(実際にプレーヤが見るモニタ画面)に対する輻輳角αと、オブジェクトOB1やOB2に対する輻輳角β1、β2と角度差(視差角θ=αーβ)表すことができる。視差角θが小さいほうが左眼用画像と右眼用画像のずれが小さくなり快適な立体視領域となる。一般にθ=±1度で快適に見られる程度で、θ=±2度で許容できる程度となる。
【0140】
810は手前空間(表示画面の手前の空間で飛び出して見える空間)における快適な立体視領域(例えば視差角θ=−1の領域)を示しており、820は奥行き空間(表示画面の奥側の空間で奥行き方向に見える空間)における快適な立体視領域(例えば視差角θ=+の領域)を示しており、830は手前空間における許容できる立体視領域(例えば視差角θ=−2の領域)を示しており、840は奥行き空間における許容できる立体視領域(例えば視差角θ=+2の領域)を示している。810、820、830、840を含む領域850は立体視表示を行う際の制限領域となる。
【0141】
視点からモニタ面までの距離筐体シートからモニタまでの標準距離=DLと、設定している両眼の幅=EWから、実際のモニタ面での左右映像の差(左眼用画像と右眼用画像のずれ)を求める事ができる。EW=50.0mm、DL=600.0mm とすると、810や820の快適な立体視領域における左右映像の差を基準値1(例えば±10.5mm程度)とし、830や840の許容できる立体視領域における左右映像の差を基準値2(基準値1>基準値2となる値であり、例えば±21.0mm程度)としてもよい。プレーヤ移動体等の常に注視するオブジェクトは、基準値1の範囲を超えないようにし、その他のゲームオブジェクトは、基準値2の範囲を超えないように投影面240を設定してもよい。
【0142】
この様に視差角θを設定するためには、表示画面500に対する輻輳角αに基づいてオブジェクト空間の投影面を設定してもよい。すなわち投影面上の基準点(例えば視線方向と交わる点)の輻輳角がαとなる位置に投影面を設定してもよい。
【0143】
2−8.視差制御処理の流れ
図12は、視差制御処理の流れについて説明するためのフローチャートである。
【0144】
以下の処理をフレーム毎に行い、所定の条件を満たす移動体に対応するマーカの飛び出し表示を行ってもよい。図12では、表示される移動体に対応するマーカついては、マーカの2次元画像を、オブジェクト空間を透視投影変換した画像に上書き合成する場合を例にとり説明する。
【0145】
まず所与の視点に基づきビューボリュームや投影面を設定する(ステップS10)。所与の視点とは、例えばプレーヤ移動体に追従する視点でもよい。また一人称視点のゲーム画像を生成する場合の視点でもよいし、三人称視点のゲーム画像を生成する場合の視点でもよい。立体視用画像を生成する場合には、視点に基づき左眼用仮想カメラと右眼用仮想カメラを設定する。投影面は、オブジェクト空間内に仮想的に設定される面であり、ゲーム中に注視するオブジェクトの右眼画像と左眼画像の許容視差や最遠景に表示されるオブジェクトの右眼画像と左眼画像の許容視差等に基づき設定してもよいし、図11で説明した手法により設定してもよいし、その他の規則により設定してもよい。
【0146】
そして移動体は、ビューボリューム内にいるか(所与の視点から見える位置にいるか)否か判断し(ステップS20)、ビューボリューム内にいる場合(所与の視点から見える位置にいる場合)には、マーカに対応する移動体の位置に基づき、マーカの表示位置と立体視用の視差の度合いを演算する(ステップS30)。
【0147】
移動体がビューボリューム内にいない(所与の視点から見える位置にいない場合)であって、移動体は、投影面よりもZ軸方向またはコース軸方向で手前に位置する所定範囲内にいる場合(ステップS40)には、マーカに対応する移動体とプレーヤ移動体との位置関係に基づき、移動体に対応するマーカの立体視用の視差の度合いを決定し、移動体の位置に基づき、マーカの表示位を演算する(ステップS50)。
【0148】
すべての移動体についてチェックが済んだら以下の処理を行う(ステップS60)。
【0149】
オブジェクト空間を所与の視点から見た画像を投影面に透視投影変換する(ステップS70)。
【0150】
表示対象マーカについて、求めた表示位置と立体視用の視差の度合いに基づき、マーカの2次元画像を透視投影変換画像に上書き合成する
(ステップS80、S90)。
【0151】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【0152】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、携帯型ゲームシステム、ゲーム画像を生成するシステムボード等の種々のゲームシステムに適用できる。
【0153】
上記実施の形態では、視差制御されるマーカに与える立体視用の視差の度合いを、マーカに対応する移動体とプレーヤ移動体との位置関係に応じて変化させる場合を例にとり説明したがそれに限られない。
【0154】
マーカに対応する移動体とプレーヤ移動体との位置関係に加えて、マーカに対応する移動体とプレーヤ移動体との相対速度、又は相対加速度、又はタイム差に応じてさらに前記立体視用の視差の度合いを変化させてもよい。この場合の立体視用の視差の度合いの変化は一時的なものでもよい。またマーカに対応する移動体とプレーヤ移動体との位置関係により求めた立体視用の視差の度合いに対して上記いずれかのファクターにより変更演算や補正演算を行い最終的な立体視用の視差の度合いを求めてもよい。
【符号の説明】
【0155】
100 処理部、110 オブジェクト空間設定部、 112 ゲーム演算部、114 移動体演算部、116 マーカ表示制御部、120 画像生成部、122 立体視用画像精製部130 音生成部、160 入力部、162 撮像部、170 記憶部、180 情報記憶媒体、190 表示部、192 音出力部、
210−L 左眼用仮想カメラ、210−R 右眼用仮想カメラ、240 投影面、220−L 左眼用ビューボリューム、220−R 右眼用ビューボリューム、230 最大手前面、250 最大奥行き面
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体、画像生成システム及びサーバシステム等に関する。
【背景技術】
【0002】
従来より、仮想的な3次元空間であるオブジェクト空間内に複数のオブジェクトを配置し、オブジェクト空間内の所与の視点から見える画像を生成する画像生成装置が開発、実用化されており、いわゆる仮想現実を体験できるものとして人気が高い。レーシングカーゲームを楽しむことができる画像生成装置を例にとれば、プレーヤは、レーシングカーを操作してオブジェクト空間内で走行させ、他のプレーヤが操作するレーシングカーと競争することで3次元ゲームを楽しむ。また通信等を利用して複数のプレーヤが同一のゲーム空間内で他のプレーヤの運転するレーシングカーと時間、順位を競い合いながらマルチプレーヤゲームを楽しむこともできる。
【0003】
さて、このような画像生成装置では、どのプレーヤがどの移動体を操作しているかは、どのようなゲーム状況であっても、プレーヤが容易且つ明確に識別できることが望まれるため、各プレーヤの顔写真等をマーカとして表示するものがあり、マーカにより競争相手を意識しながらレースを行うことができる。
【0004】
また近年、映画やゲーム等の分野において、より臨場感が溢れる画像を生成するシステムとして、立体視画像の生成システムが脚光を浴びており、オブジェクト空間を立体視用画像として生成することで、より臨場感をあふれるゲーム画像を提供することができる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平10−73416号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところでレーシングゲーム等では、プレーヤ移動体の後方の移動体については、位置の把握が難しく、レーダー画像等でしか、競争相手の位置を把握することができないという問題があった。本願発明者は、前記マーカを利用して、競争相手の位置の把握がしやすい画像生成システムの開発を行っている。
【0007】
本発明の幾つかの態様によれば、立体視用画像が提供されるゲームにおいて、表示されない移動体の存在を把握しやすいマーカ表示を行うことができるプログラム、情報記憶媒体、画像生成システム及び等を提供できる。
【課題を解決するための手段】
【0008】
(1)本発明の一態様は、
移動体をオブジェクト空間内で移動させる演算を行う移動演算部と、
前記移動体に対応するマーカの表示制御を行うマーカ表示制御部と、
前記オブジェクト空間を所与の視点からみた画像を立体視用画像として生成する画像生成部としてコンピュータを機能させ、
前記マーカ表示制御部は、
少なくとも前記移動体又は前記移動体に対応するマーカが前記所与の視点から見えない位置にいることを条件として、マーカに対応する移動体とプレーヤ移動体との位置関係に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行うプログラムに関する。
【0009】
視差制御は、マーカに対応する2D画像を前記オブジェクト空間を所与の視点からみた画像(透視投影変換画像)に対して立体視用の所与の視差(表示画面から飛び出して見えるような視差や表示画面から奥まって見えるような視差)を与えて描画してもよい(所定のずれを与えて描画してもよい)。
【0010】
本発明によれば見えない位置にいる移動体については、移動体に対応するマーカが移動体とは独立して表示され、プレーヤ移動体との位置関係に応じて前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行う。従って視差制御が行われているマーカによって、見えない位置にいる移動体との位置関係を立体的に把握することができるゲーム画像を提供することができる。
【0011】
(2)このプログラム、情報記憶媒体、画像生成システム及びサーバシステムにおいて、
前記マーカ表示制御部は、
前記移動体に付随するように設定されているマーカ付随位置が、ビューボリューム内に存在する場合には、対応するマーカを当該移動体に付随して表示させる付随表示制御処理を行い、
前記マーカ付随位置がビューボリューム内に存在しない場合には、対応するマーカを移動体とは分離して表示させ、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行ってもよい。
【0012】
(3)このプログラム、情報記憶媒体、画像生成システム及びサーバシステムにおいて、
前記マーカ表示制御部は、
前記移動体がビューボリューム内に存在する場合には、対応するマーカを当該移動体に付随して表示させる付随表示制御処理を行い、
前記移動体がビューボリューム内に存在しない場合には、対応するマーカを移動体とは分離して表示させ、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行ってもよい。
【0013】
前記マーカ表示制御部は、前記移動体が前記ビューボリューム以外の所定の条件を満たす判定空間(3次元的に判断する場合)や判定領域(2次元的に判断する場合)にいる場合に、当該移動体に対応するマーカに対して視差制御を行うようにしてもよい。判定空間や判定領域は、例えば視点やビューボリュームやプレーヤ移動体や投影面等のいずれかに基づき設定される空間や領域でもよい。
【0014】
また前記マーカ表示制御部は、前記移動体が、前記プレーヤ移動体又は視点又は仮想カメラ又は立体視用画像を生成する際の投影面と所定の位置関係にある場合に、当該移動体に対応するマーカに対して視差制御を行うようにしてもよい。
【0015】
前記投影面は、投影面に位置するオブジェクトの画像の視差が無くなる面である。
【0016】
例えば前記移動体の奥行き方向の位置が、前記プレーヤ移動体又は前記視点又は前記仮想カメラ又は前記投影面より手前方向にある場合に、前記移動体に対応する前記マーカの視差制御を行うようにしてもよい。
【0017】
(4)このプログラム、情報記憶媒体、画像生成システム及びサーバシステムにおいて、
前記マーカ表示制御部は、
前記移動体と前記プレーヤ移動体との距離に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行ってもよい。
【0018】
前記移動体と前記プレーヤ移動体との距離は、3次元空間における距離でもよいし、所定の軸方向の距離でもよいし、所定の平面上の距離でもよいし、コース座標系におけるコース方向の距離でもよい。
【0019】
このようにすると、プレーヤ移動体からの距離に応じて対応するマーカの奥行き感又は飛び出し感が変化して見えるので、移動体との距離感が奥行き感又は飛び出し感とシンクロナイズして、プレーヤが見えない移動体の位置が把握しやすいゲーム画像を提供することができる。
【0020】
(5)このプログラム、情報記憶媒体、画像生成システム及びサーバシステムにおいて、
前記マーカ表示制御部は、
前記移動体と前記プレーヤ移動体との相対速度、又は相対加速度、又はタイム差に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行ってもよい。
【0021】
この様にすると、速度感や加速度感やタイム差を反映して奥行き感または飛び出し感が変化する表示を行うことができる。
【0022】
(6)このプログラム、情報記憶媒体、画像生成システム及びサーバシステムにおいて、
前記移動体演算部は、
オブジェクト空間に設定されているコース内で移動体を移動させる制御を行い、
前記マーカ表示制御部は、
前記コースに対して設定されたコース座標系における位置座標に基づき、前記視差制御対象となるマーカの位置を設定してもよい。
【0023】
(7)このプログラム、情報記憶媒体、画像生成システム及びサーバシステムにおいて、
前記マーカ表示制御部は、
前記視差制御対象のマーカの水平方向の位置を、対応する移動体のコースの幅方向に位置に基づき設定し、
前記プレーヤ移動体と視差制御対象のマーカに対応する移動体のコース方向の距離が離れるほど、前記コース幅方向の位置の変動の反映率を低くして、前記マーカの水平方向の位置を設定してもよい。
【0024】
(8)このプログラム、情報記憶媒体、画像生成システム及びサーバシステムにおいて、
前記マーカ表示制御部は、
移動体の位置が変化することにより、視差制御対象の対象となっているマーカが視差制御対象外となった場合、または視差制御対象外であったマーカが視差制御対象となった場合の少なくとも一方の場合に、前記マーカのぼかし制御を行なってもよい。
【0025】
(9)本発明の一態様は、
上記のいずれかに記載のプログラムが記憶されたコンピュータ読み取り可能な情報記憶媒体に関する。
【0026】
(10)本発明の一態様は、
移動体をオブジェクト空間内で移動させる演算を行う移動演算部と、
前記移動体に対応するマーカの表示制御を行うマーカ表示制御部と、
前記オブジェクト空間を所与の視点からみた画像を立体視用画像として生成する画像生成部とを含み、
前記マーカ表示制御部は、
少なくとも前記移動体又は前記移動体に対応するマーカが前記所与の視点から見えない位置にいることを条件として、マーカに対応する移動体とプレーヤ移動体との位置関係に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行う画像生成システムに関する。
【0027】
(11)本発明の一態様は、
移動体をオブジェクト空間内で移動させる演算を行う移動演算部と、
前記移動体に対応するマーカの表示制御を行うマーカ表示制御部と、
前記オブジェクト空間を所与の視点からみた画像を立体視用画像として生成する画像生成部とを含み、
前記マーカ表示制御部は、
少なくとも前記移動体又は前記移動体に対応するマーカが前記所与の視点から見えない位置にいることを条件として、マーカに対応する移動体とプレーヤ移動体との位置関係に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行うサーバシステムに関する。
【図面の簡単な説明】
【0028】
【図1】本実施形態の画像生成システムの構成例。
【図2】立体視画像を生成する際の投影面及びビューボリュームについて説明するための図。
【図3】マーカの表示制御について説明するための図。
【図4】マーカの表示制御について説明するための図。
【図5】マーカの表示制御について説明するための図。
【図6】視差の度合いの制御について説明するための図。
【図7】コース上で判定区間を設定する例を説明するための図。
【図8】コース座標系について説明するための図。
【図9】視差制御の対象となるマーカの表示位置について説明するための図。
【図10】視差制御を行うマーカのぼかし処理について説明するための図。
【図11】視差角について説明するための図。
【図12】視差制御処理の流れについて説明するためのフローチャート。
【発明を実施するための形態】
【0029】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0030】
1.構成
図1に本実施形態の画像生成装置(コンピュータ、端末、ゲーム装置)の機能ブロック図の例を示す。なお本実施形態の画像生成装置は図1の構成要素(各部)の一部を省略した構成としてもよい。
【0031】
入力部160は、プレーヤからの入力情報を入力するための機器であり、プレーヤの入力情報を処理部に出力する。本実施形態の入力部160は、プレーヤの入力情報(入力信号)を検出する検出部162を備える。入力部160は、例えば、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイなどがある。また、入力部160は、所定振動信号に基づいて振動させる処理を行う振動部を備えていてもよい。
【0032】
また、入力部160は、3軸の加速度を検出する加速度センサや、角速度を検出するジャイロセンサ、撮像部を備えた入力機器でもよい。例えば、入力機器は、プレーヤが把持して動かすものであってもよいし、プレーヤが身につけて動かすものであってもよい。また、入力機器には、プレーヤが把持する刀型コントローラや銃型コントローラ、あるいはプレーヤが身につける(プレーヤが手に装着する)グローブ型コントローラなど実際の道具を模して作られたコントローラも含まれる。また入力機器には、入力機器と一体化されている画像生成装置、携帯型画像生成装置、携帯電話なども含まれる。
【0033】
記憶部200は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM、VRAMなどにより実現できる。
【0034】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。
【0035】
処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。
【0036】
撮像部162は、被写体を撮像するものであり、CCDやCMOSセンサなどの撮像素子や、レンズ等の光学系により実現できる。撮像部162の撮像により取得された撮像情報(撮像画像データ)は、撮像情報記憶部174に記憶されて保存される。撮像部162で撮像されたプレーヤの画像を、マーカに使用してもよい。
【0037】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(DRAM、VRAM)などにより実現できる。そしてゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部170に保持される。
【0038】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(DVD、CD等)、HDD(ハードディスクドライブ)、或いはメモリ(ROM等)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータ(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
【0039】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、LCD、有機ELディスプレイ、CRT、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0040】
通信部196は外部(例えば他の画像生成装置)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0041】
なお、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体180や記憶部200に記憶してもよい。このようにプログラムやデータを受信して画像生成装置を機能させる場合も本発明の範囲内に含む。
【0042】
処理部100(プロセッサ)は、入力部160からの入力情報やプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。
【0043】
この処理部100は記憶部170内の主記憶部172をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、GPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0044】
処理部100は、オブジェクト空間設定部110、ゲーム演算部112、移動体演算部114、マーカ表示制御部116、画像生成部(描画部)120、音処理部130を含む。なおこれらの一部を省略する構成としてもよい。
【0045】
オブジェクト空間設定部110は、キャラクタ(敵オブジェクト)の他に、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を、オブジェクト空間に配置設定する処理を行う。
【0046】
ここでオブジェクト空間とは、仮想的な3次元空間である。3次元空間とは、例えば3次元座標(X,Y,Z)においてオブジェクトが配置される空間である。
【0047】
例えば、オブジェクト空間設定部110は、オブジェクト空間を3次元空間とした場合には、ワールド座標系にオブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)を配置する。また、例えば、ワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0048】
ゲーム演算部116は、種々のゲーム処理を行う。例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム終了条件が満たされた場合にゲームを終了する処理、最終ステージをクリアした場合にはエンディングを進行させる処理などがある。
【0049】
マーカ表示制御部116は、移動体に対応するマーカの表示制御を行うもので、少なくとも前記移動体又は前記移動体に対応するマーカが前記所与の視点から見えない位置にいることを条件として、マーカに対応する移動体とプレーヤ移動体との位置関係に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行う。
【0050】
またマーカ表示制御部116は、前記移動体がビューボリューム内に存在する場合には、対応するマーカを当該移動体に付随して表示させる付随表示制御処理を行い、
前記移動体がビューボリューム内に存在しない場合には、対応するマーカを移動体とは分離して表示させ、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行ってもよい。
【0051】
またマーカ表示制御部116は、前記移動体と前記プレーヤ移動体との距離に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行ってもよい。
【0052】
またマーカ表示制御部116は、記移動体と前記プレーヤ移動体との相対速度、又は相対加速度、又はタイム差に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行ってもよい。
【0053】
また移動体演算部116は、オブジェクト空間に設定されているコース内で移動体を移動させる制御を行い、マーカ表示制御部116は、前記コースに対して設定されたコース座標系における位置座標に基づき、前記視差制御対象のマーカの位置を設定してもよい。
【0054】
マーカ表示制御部116は、前記視差制御対象のマーカの水平方向の位置を、対応する移動体のコースの幅方向に位置に基づき設定し、
前記プレーヤ移動体と視差制御対象のマーカに対応する移動体のコース方向の距離が離れるほど、前記コース幅方向の位置の変動の反映率を低くして、前記マーカの水平方向の位置を設定してもよい。
【0055】
またマーカ表示制御部116は、移動体の位置が変化することにより、視差制御対象の対象となっているマーカが視差制御対象外となった場合、または視差制御対象外であったマーカが視差制御対象となった場合の少なくとも一方の場合に、前記マーカのぼかし制御を行ってもよい。
【0056】
画像生成部120は、処理部100で行われる種々の処理(ゲーム処理、シミュレーション処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。具体的には、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数プリミティブ面)を、描画バッファ178(フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ)に描画する。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。画像生成部120は頂点処理やピクセル処理を行ってもよい。
【0057】
頂点処理は頂点シェーダ、ジオメトリーシェーダ等がおこなってもよい。具体的には、オブジェクトの頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)に基づいて、頂点処理(頂点シェーダによるシェーディング)を行う。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0058】
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。
【0059】
ピクセル処理はピクセルシェーダがおこなってもよい。具体的には、ラスタライズ後に、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)を行う。
【0060】
ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読み出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ178に出力(描画)する。即ち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
【0061】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現できる。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0062】
なお、画像生成部120は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、3次元の画像を生成する場合には、ワールド座標系における仮想カメラの位置(X、Y、Z)又は回転角度(例えば、X、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を制御する処理を行う。要するに、視点位置、視線方向、画角を制御する処理を行う。また、画像生成部120は、仮想カメラを、予め決められた回転角度で回転させてもよい。この場合には、仮想カメラの位置又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0063】
例えば、フロントビュー視点やドライバー視点等(一人称視点)に基づいて画像を生成する処理を行ってもよいし、車体後方視点や俯瞰視点等(三人称視点)に基づいて画像を生成する処理を行ってもよい。
【0064】
また、本実施形態では、仮想カメラの移動、向き、画角はプログラムで制御してもよいし、入力部160の入力情報に基づいて仮想カメラの移動、向き、画角を制御してもよい。
【0065】
例えば仮想カメラによりオブジェクト(例えば、プレーヤキャラクタ)を後方から撮影する場合には、オブジェクトの位置、向きの変化に仮想カメラが追従するように、仮想カメラの位置、仮想カメラの向きを制御する。この場合には、移動演算部114で得られたオブジェクトの位置、向き又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた向きに設定し、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は向きを特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0066】
なお画像生成部120は、オブジェクトを描画する際に、αブレンディング等を行ってもよい。
【0067】
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。
【0068】
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0069】
画像生成部120は立体視用画像生成部122を含む。
【0070】
立体視用画像生成部122は、立体視用画像を生成する場合に、視点に基づき左眼用仮想カメラ及び右眼用仮想カメラの設定を行い、オブジェクト空間において左眼用仮想カメラから見える左眼用画像と、オブジェクト空間において右眼用仮想カメラから見える右眼用画像を生成する。
【0071】
立体視方式としては、2眼分離眼鏡方式や、パララックスバリアやレンチキュラや、その他、光線の方向を制御することができる光学素子を用いた裸眼方式などの様々な方式を想定できる。2眼分離眼鏡方式としては、例えば偏光眼鏡方式、継時分離方式、色分離方式などがあるが、いずれかの方式に対応した立体視用画像を生成するものであればよい。
【0072】
音処理部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0073】
また、音生成部130は、オブジェクトやマーカの位置に応じて音像定位が変化する音を生成してもよい。例えば、マーカが画面よりも手前側に飛び出して見える場合には、該マーカに対応する音の音像定位を画面よりも手前側の位置に設定し、マーカが画面よりも奥側に引っ込んで見える場合には、該マーカに対応する音の音像定位を画面よりも手前側の位置に設定してもよい。また、マーカの移動に連動して音像定位の位置を移動させるようにしてもよい。
【0074】
なお、本実施形態の画像生成装置は、1人のプレーヤのみがプレイできるシングルプレーヤモード用の装置にしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードを備える装置にしてもよい。
【0075】
また、本実施形態の画像生成システムをサーバシステムとして構成してもよい。サーバシステムは、1又は複数のサーバ(認証サーバ、ゲーム処理サーバ、通信サーバ、課金サーバ、データベースサーバ等)により構成することができる。この場合には、サーバシステムは、ネットワークを介して接続された1又は複数の端末装置(例えば、据え置き型ゲーム装置、携帯型ゲーム装置、プログラム実行可能な携帯電話等)から送信された操作情報に基づき各種処理を行って、立体視用画像を生成するための画像生成用データを生成し、生成した画像生成用データを各端末装置に対して送信する。ここで、画像生成用データとは、本実施形態の手法により生成された立体視用画像を各端末装置において表示するためのデータであり、画像データそのものでもよいし、各端末装置が立体視用画像を生成するために用いる各種データ(オブジェクトデータ、ゲーム処理結果データ等)であってもよい。
【0076】
2.本実施形態の手法
2−1.立体視画像の原理
次に本実施形態の手法について具体的に説明する。
【0077】
図2は、立体視画像を生成する際の投影面及びビューボリュームについて説明するための図である。
【0078】
立体視用画像を生成する際には、所定の距離(両眼の幅に対応して設定)だけ離れた位置に設定される左眼用仮想カメラ210−Lと右眼用仮想カメラ210−Rを用いて左眼用画像と右眼用画像を生成する。左眼用画像は左眼用仮想カメラ210−Lからみたオブジェクト空間を投影面240に投影した画像であり、右眼用画像は右眼用仮想カメラ210−Rからみたオブジェクト空間を投影面240に投影した画像である。
【0079】
左眼用仮想カメラ210−Lに対応して左眼用ビューボリューム220−Lが設定され、右眼用仮想カメラ210−Rに対応して右眼用ビューボリューム220−Rが設定される。具体的には左眼用仮想カメラ210−L、右眼用仮想カメラ210−Rの位置や視線方向に基づいて、左眼用ビューボリューム220−L、右眼用ビューボリューム220−Rの位置や方向が設定される。
【0080】
左眼用画像は、左眼用ビューボリューム220−L内に存在するオブジェクトを投影面240に透視投影して描画することで生成される。同様に右眼用画像は、右眼用ビューボリューム220−R内に存在するオブジェクトを投影面240に透視投影して描画することで生成される。230は最大手前面(前方クリッピング面)、250は最大奥行き面(後方クリッピング面)である。
【0081】
各オブジェクトについての左眼用画像と右眼用画像に生じる視差により、各オブジェクトに奥行き感又は飛び出し感を持たせることができる。ここで、最大手前面230と投影面240の間(飛び出し空間と呼ぶ)の点Aに位置するオブジェクトOA、投影面240上の点Bに位置するオブジェクトOB、投影面240と最大奥行き面250の間(奥行き空間と呼ぶ)の点Cに位置するオブジェクトOCを投影面240に描画した場合に生じる左眼用画像と右眼用画像のずれについて説明する。
【0082】
投影面240に位置するオブジェクトOBは左眼用画像でも右眼用画像でも同じ位置BP−L、BP−Rに描画されるため、左眼用画像と右眼用画像とでずれが生じない。
【0083】
これに対し、飛び出し空間の点Aに位置に位置するオブジェクトOAは左眼用画像では点AP−Lの位置に描画され、右眼用画像では点AP−Rの位置に描画されるため、左眼用画像と右眼用画像とで第1の方向(例えばX軸正方向)にずれが生じる。この第1の方向に生じたずれにより、点Aに位置するオブジェクトOAがユーザが見るモニタ画面(表示部)からユーザの方に飛び出して見える。
【0084】
また奥行き空間の点Cに位置に位置するオブジェクトOCは左眼用画像では点CP−Lの位置に描画され、右眼用画像では点CP−Rの位置に描画されるため、左眼用画像と右眼用画像とで第1の方向と逆の第2の方向(例えばX軸負方向)にずれが生じる。この第2の方向に生じたずれにより、点Cに位置するオブジェクトOCはユーザが見るモニタ画面(表示部)より奥行き方向に奥まっているように見える。
【0085】
2−2.本実施の形態のレーシングゲーム
本実施の形態のレースゲームは、例えば複数のプレーヤが通信対戦を行えるマルチプレーヤゲームでもよい。各プレーヤは、各自の入力部(例えばコントローラやゲーム筐体の操作部等)から操作入力を行うことで自己の移動体であるプレーヤ移動体(例えば車)をゲーム空間内(オブジェクト空間の一例)に設定されたコース上を移動させて、順位やタイム等を競うことができる。各プレーヤの表示部(モニタ画面)等には、各プレーヤのプレーヤ移動体に追従する視点でのゲーム画像が、立体視用画像として表示されるので、プレーヤは臨場感に富んだレースゲームを楽しむことができる。
【0086】
また本実施の形態のレースゲームでは、図3に示すように所与の視点から見える位置にいるプレーヤ移動体410−1、410−2、410−3に関しては、それぞれに対応するマーカ420−1、420−2、420−3が付随して表示される。マーカ420−1、420−2、420−3には、対応するプレーヤ移動体を操作するプレーヤを識別するための情報等(画像等)が付されており、例えば各プレーヤのニックネームや登録画像(例えば撮像部で撮影した画像でもよいし、サーバや携帯情報機器等の他の情報記憶媒体に予め格納されている画像でもよい)や選択したキャラクタの画像でもよい。
【0087】
2−3.マーカの視差制御
図3、図4、図5は、本実施の形態のマーカの表示制御について説明するための図である。
【0088】
図5は、レーシングゲームが行われるゲーム空間400(オブジェクト空間の一例)内をY軸方向(上)からみた場合の移動体の配置状態を示す図である。最大奥行き面250と最大手前面(前方クリッピング面)230を底面(上と下)とする視錐台(図5では台形表示になっている)がビューボリューム220となり、このビューボリューム220に含まれるオブジェクトが透視投影変換(描画対象)となり、表示部に表示される(実際には他のオブジェクト等に隠れて見えない場合もある)。
【0089】
図3は、図5に対応するゲーム空間を所与の視点(図5の210であり、例えばプレーヤ移動体410を操作するプレーヤP1の視点)から見た様子を示している。図3では最大奥行き面250と最大手前面(前方クリッピング面)230を底面(上と下)とする視錐台がビューボリューム220となる。270は飛び出し描画面であり、この面にマーカを描画すると、マーカが表示画面から飛び出して見える。
【0090】
移動体410−1、410−2、410−340がプレーヤP1のから見える(表示部に表示される)オブジェクトであるので、これらに対応するマーカ420−1、420−2、420−3については、移動体410−1、410−2、410−340に付随して表示させる。
【0091】
この様に本実施の形態では、移動体(プレーヤ移動体でもよいし、NPC(Non Player Character)でもよい)がオブジェクト空間のビューボリューム内にある場合(表示部に表示されプレーヤP1から見える場合)に、移動体に付随してマーカを表示させる付随表示制御処理を行う。
【0092】
また移動体がオブジェクト空間のビューボリューム内にいない場合(表示部に表示されずプレーヤP1から見えない場合)に前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行う。
【0093】
図3のマーカ420−4、420−5は、移動体410−4、410−5(図5に示すようにビューボリューム220外に存在するためプレーヤP1から見えない移動体である)に対応するマーカであり、視差制御が行われているため、表示画面から飛び出して見える。しかし、マーカ420−4、420−5に対応する移動体410−4、410−5自体の画像は表示されていない。従って通常であればプレーヤP1はこれらの移動体の存在を把握できないところ、本実施の形態では、プレーヤP1から見えない位置にいる移動体410−4、410−5については移動体410−4、410−5に対応するマーカ420−4、420−5が表示部から飛び出して見えるように表示するので、見えない位置にいる移動体410−4、410−5の存在を感じながらレースを行うことができる。
【0094】
例えば、プレーヤ移動体410−1の後方にいる移動体410−4が、プレーヤ移動体410−1を追いこす場合には、追い越し前は、プレーヤ移動体410−4に対応するマーカのみが420−4が表示されているが、追い越し後はプレーヤ移動体410−4もビューボリューム220内に入るため、画面内に表示されるようになる。従って移動体410−2と対応するマーカ420−2や、移動体410−3と対応するマーカ420−3のように、移動体410−4に対応するマーカ420−4も、画面内の移動体410−4に付随して表示されることになる。
【0095】
例えば、移動体410−4がオブジェクト空間内の投影面240を通過したときに、表示されていなかった移動体410−4が画面内に表示され、対応するマーカ420−4の表示が、独立表示状態(図9に示すゲーム画像下部の所定の領域710にあり、視差制御により飛び出して見える状態)から付随表示状態(対応する移動体410−4に付随して表示される状態)に切り替わるようにしてもよい。
【0096】
本実施の形態では図9で説明するように、独立表示状態のマーカの水平方向の表示位置は、対応する移動体のコース幅方向の位置に基づき設定されるため、マーカの表示が独立表示状態から付随表示状態に切り替わる場合でも、マーカの水平方向の位置の変化はシームレスである。
【0097】
また独立表示状態から付随表示状態へ切り替えを、オブジェクト空間内における移動体が投影面240を通過したタイミングで行う場合には、移動体410−4が投影面240を通過するタイミングに合わせて、マーカの垂直方向の表示位置を、独立表示時の垂直位置(これは、図9で説明するようにゲーム画像の下部の所定の領域710の垂直位置)から、ゲーム画面内の移動体410−4の表示位置(2次元画像における描画位置)にスムーズに移動させるようにしてもよい。
【0098】
マーカの付随表示状態と独立表示状態の切替は、プレーヤ移動体以外の他の移動体の代表点が、プレーヤのビューボリューム内外かを判断して行っても良いし、移動体に付随させるマーカを配置する位置(又は配置する基準となる位置)となるマーカ付随位置を予め移動体に関連付けて設定し、このマーカ付随位置がビューボリューム内外かを判断して切替を行っても良い。
【0099】
マーカ付随位置に基づいて、マーカの付随表示状態と独立表示状態を切替える場合、他の移動体がプレーヤ移動体の後方から近づくにつれて視差を視差0方向に変更し、投影面で視差を0にすると良い。このように視差を変更することにより、マーカの付随表示状態と独立表示状態の切替え時の立体感を滑らかに移行することができる。
【0100】
さらに本実施の形態では、視差制御されるマーカ420−4、420−5に与える立体視用の視差の度合いを、マーカに対応する移動体410−4、410−5とプレーヤ移動体410−1との位置関係に応じて変化させる。
【0101】
図4(A)(B)は、マーカの視差制御について説明するための図である。
【0102】
図4(A)はプレーヤP1が、表示画面500に表示されるゲーム画像を介してゲーム空間(オブジェクト空間、図5の400)を見ている様子を模式的に示している。また図4(B)は、プレーヤP1が見ているゲーム空間400をX軸方向から見た様子を模式的に示している。
【0103】
図4(B)の320は、ゲーム空間400において投影面240と最大奥行き面250の間の空間である奥行き空間である。この奥行き空間320に位置する移動体410−1,410−2、410−3については、視点(仮想カメラ)210から見える画像として表示画面500に立体視用画像として表示されているため、プレーヤP1は、図4(A)に示すように移動体410−1、410−2、410−3が表示画面500の奥にあるように奥行き感を感じることができる。
【0104】
また図4(B)の310は、ゲーム空間400において投影面240と最大手前面230の間の空間である飛び出し空間である。この飛び出し空間310に位置するマーカ420−5,420−4については、プレーヤP1には、図4(A)に示すように表示画面500から手前に飛び出しているように見える。
【0105】
図4(B)のゲーム空間において最大奥行き面250より視点(仮想カメラ210)から見て奥側の空間330−1、及び最大手前面230より視点(仮想カメラ210)側の空間330−2は、プレーヤP1からは見えない空間(仮想カメラ210から見えない空間でもある)である。従って移動体410−4、410−5は、表示画面500には表示されないが、これらに対応するマーカ420−4、420−5については、図4(A)に示すように飛び出し感を出すための視差が与えられて移動体とは別個に表示される。
【0106】
マーカ420−4、420−5については、いずれも表示画面500の手前にあるように飛び出して見えるが、その飛び出し度合い(立体視用の視差の度合い)が異なっている。ここでは、プレーヤ移動体410−1より離れた移動体のマーカほど飛び出し度合いが大きくなる場合を例示している。
【0107】
マーカ420−4は移動体410−4に対応したマーカであり、マーカ420−5は移動体410−5に対応したマーカであり、移動体410−4とプレーヤ移動体410−1の位置関係(例えばz軸方向の距離l1)、移動体410−5とプレーヤ移動体410−1の位置関係(例えばz軸方向の距離l2)が異なっているため、距離に応じて、飛び出し度合いを変化させるようにしてもよい。例えばプレーヤ移動体との距離(3次元空間における距離でもよいし、ある軸方向の距離でもよい)が離れた移動体ほど、対応するマーカの飛び出し度合いが大きくなるように、与える視差の度合いを制御してもよい。
【0108】
このようにすることで、プレーヤP1は自己のプレーヤ移動体410−1の後方に位置するが表示画面500には表示されていない移動体410−4,410−5の存在を把握することができ、マーカ420−4,420−5の飛び出し度合いによって、プレーヤ移動体410−1との位置関係(例えば離れ具合)を把握することができる。
【0109】
なお視差制御は、マーカをオブジェクトとして仮想空間内の飛び出し空間に配置して投影面240に透視投影変換して描画することによって実現してもよい。またマーカの2次元画像を視差をつけて、左眼用画像と右眼用画像(透視投影変換後の画像)に上書きして描画してもよい。
【0110】
図6は、視差制御について説明するための図である。
【0111】
立体視用画像は、各オブジェクトについての左眼用画像と右眼用画像に生じる視差により、各オブジェクトに奥行き感又は飛び出し感を持たせることができるが、飛び出し感を持たせた画像が生成されるのは、オブジェクトが投影面240より手前の空間(ビューボリュームにおける投影面240と最大手前面(前方クリッピング面)の間の空間(飛び出し空間)にある場合である。
【0112】
飛び出し空間の点Dに位置に位置するオブジェクトODは左眼用画像では点DP−Lの位置に描画され、右眼用画像では点DP−Rの位置に描画されるため、左眼用画像と右眼用画像とで第1の方向に(例えばX軸正方向)にずれSDが生じる。このずれSDにより、点Dに位置するオブジェクトODがユーザが見るモニタ画面(表示部)からユーザの方にαD(図4(A)参照)飛び出して見える。従って例えばマーカ410−5の2次元画像にずれSDをつけて、左眼用画像と右眼用画像(透視投影変換後の画像)に上書き合成することでマーカの飛び出し表示を実現することができる。
【0113】
飛び出し空間の点E(点Dより奥行き方向にある)に位置に位置するオブジェクトOEは左眼用画像では点EP−Lの位置に描画され、右眼用画像では点EP−Rの位置に描画されるため、左眼用画像と右眼用画像とで第1の方向に(例えばX軸正方向)にずれSEが生じる。このずれSEにより、点Eに位置するオブジェクトOEがユーザが見るモニタ画面(表示部)からユーザの方にαE(図4(A)参照)飛び出して見える。従って例えばマーカ410−4の2次元画像にずれSEをつけて左眼用画像と右眼用画像(透視投影変換後の画像)に上書き合成することでマーカ410−4の視差制御を行うことができる。
【0114】
2−4.視差制御の対象となるマーカ
次に視差制御の対象となるマーカについて説明する。
【0115】
視差制御の対象となるマーカは、所与の視点から見えない移動体(ビューボリューム内に存在しない移動体)すべてに対応するマーカでもよいし、所与の視点から見えない移動体(ビューボリューム内に存在しない移動体)のうちその位置が所定の条件を満たす移動体に対応するマーカでもよい。
【0116】
所定の条件として、例えば移動体と、視点やビューボリュームやプレーヤ移動体や立体視用画像を生成する際の投影面との位置関係に関する条件を設定してもよい。
【0117】
例えば移動体が、前記プレーヤ移動体又は視点又は仮想カメラ又は立体視用画像を生成する際の投影面よりZ軸手前方向(奥行き方向と反対の方向)にいる場合に、当該移動体に対応するマーカの視差制御を行うようにしてもよい。このようにすると後方で見えない移動体に対応するマーカの視差制御を行うことができる。
【0118】
また図5に示すように、投影面240から手前方向の空間(投影面240からのZ軸方向の距離がK以内の空間)にいる移動体410−4、410−5に対応するマーカを視差制御対象としてもよい。この様にすると当該空間よりさらに手前方向に存在する移動体410−6(プレーヤ移動体410−1より後方に位置する移動体)に対応するマーカも視差制御の対象とならない。しかし移動体410−6は、移動体410−4、410−5に比べてプレーヤ移動体410−1から後方に離れているので、これらに比べてプレーヤ移動体に与える脅威が低くなるため、あえてその存在をプレーヤに知らしめる必要が低くなる。このように視差制御の対象を制限して、余分な表示を行わないことで、より見やすいゲーム画面を提供することができる。
【0119】
なお本実施の形態のように移動体がゲーム空間上に設定されたコース上を走行する場合には、コース上の領域を判定領域690として設定し、判定領域内の移動体に対応するマーカについて視差制御を行ってもよい。
【0120】
図7は、コースに判定領域を設定する例を説明するための図であり、図8はコース座標系について説明するための図である。
【0121】
例えばコース上において、視点位置210や、投影面240や、プレーヤ移動体410−1の後方の所定範囲の区間を判定領域690として設定してもよい。
【0122】
690は、視点位置210の後方の所定区間を表示対象区間としている様子を示している。移動体をコース上で走行させる場合には、移動体の位置をコース座標系(l、w)で設定してもよい。
【0123】
コース座標系は図8に示すように、コースの長手方向(コース方向)Lを第1の軸とし、コースの長手方向に直行するコースの幅方向Wを第2の軸として、コース上の所与の点Pの座標(l、w)を、L方向のスタートラインからの距離lと、W方向の中心点(L軸上の点)からの距離wで表す。例えば点PはL方向のスタートラインLからの距離がl1で、W方向の中心点からの距離がw1であるので、点Pのコース座標系における座標値は(l1、w1)となる。
【0124】
従って視点位置210の後方の所定区間を判定領域とする場合には、視点210からのコース方向の距離KL(図7参照)を定義しておくとよい。
【0125】
2−5.視差制御対象となるマーカの表示位置
図9は、視差制御の対象となるマーカの表示位置について説明するための図である。
【0126】
700は表示画面に表示されるゲーム画像である。ゲーム画像700内の所定の領域710を飛び出し表示対象のマーカM1,M2を表示する領域としてもよい。所定の領域は、ゲーム画像710の下部の領域としてもよい。マーカを表示する領域はゲーム画像の他の場所に設定してもよいが、マーカM1、M2の表示が本来のゲーム画像の表示のじゃまになりくい場所することが好ましい。
【0127】
ここで所定の領域のどの位置(例えば水平方向の位置)に表示するかは、マーカに対応する移動体の位置E1、E2に基づき設定してもよい。例えば移動体E1の位置のコース座標系の幅方向の値が’+w1’、移動体E2の位置のコース座標系の幅方向の値が’−w2’である場合には、所定の領域710の基準点KPからマークM1までの距離lm1、所定の領域の基準点KPからマークM2までの距離lm2の値がlm1:lm2=w1:w2になるような位置にマークM1、M2を設定してもよい。この様にすると、水平方向のマークの表示位置に、対応する移動体のコース幅方向の位置が反映されるので、プレーヤに対して見えない移動体の位置を把握させやすいマーカ表示を行うことができる。
【0128】
後方の近い位置の移動体についてはデッドヒートになる可能性があるため、より正確な位置を知ることが重要であるが、遠く離れた移動体については、あまり細かな位置変化(コース幅方向の位置変化)を把握する必要はない。
【0129】
従って視差制御対象のマーカに対応する移動体とプレーヤ移動体のコース方向Lの距離が離れるほど、前記コース幅方向Wの位置の変動の反映率を低くしてもよい。例えば図7において、移動体410−5は移動体410−4よりもプレーヤ移動体410−1からのコース方向Lの距離が離れているので、移動体410−5に対応するマーカへ反映率を移動体410−4に対応するマーカへの反映率よりも低くなるようにしてもよい。
【0130】
反映率の変更は、位置を反映させるタイミングの間隔を変更することで実現してもよい。例えばn秒に1回の割合で位置を反映させる場合と2n秒に1回の割合で位置を反映させる場合には後者のほうが位置変動の反映率が低くなる。
【0131】
この様にすると移動体410−5と移動体410−4が同じような幅方向の位置変化を起こしたとしても、プレーヤ移動体により近い移動体410−4に対応するマーカのほうが水平方向の位置変化が激しくなり、プレーヤ移動体からより遠い移動体410−5に対応するマーカにはあまり細かい位置変化は反映されず、見やすい画像を提供することができる。また、移動体の幅方向の位置変化が激しい場合、マーカの表示位置の変化も激しくなり画面が見づらくなるのを防止することができる。
【0132】
2−6.視差制御を行うマーカのぼかし処理
マーカのぼかし処理は、半透明処理や被写界深度処理やモーションブラー処理、ブリンク処理などにより実現することができる。例えばぼかしフィルタ(ブラーフィルタ)などを用いて、フェードイン、フェードアウト時のマーカの画像をぼかす処理を行ってもよい。また、モーションブラー処理によりぼかすようにしてもよい。また、マーカの画像の表示・非表示を所定期間毎に繰り返すブリンク処理(点滅処理)を行ってもよい。またマーカの各頂点のα値を変更して描画する半透明処理を行ってもよい。
【0133】
図10は、視差制御を行うマーカの半透明処理について説明するための図である。
【0134】
視差制御の対象となっているマーカ420に対応する移動体の位置が変化して、マーカが視差制御の対象外となった場合(例えば移動体の位置がビューボリューム以外から前記ビューボリューム内に変化した場合)には、図10に示すように視差制御により飛び出してみえるよう表示されていたマーカ420が、半透明表示(ぼかし処理の一例である)された(420参照)のち、消失するようにしてもよい。半透明処理において時間とともに透明度を大きくすることで、次第にマーカが消えていく様子を演出(フェードアウト演出)することができる。
【0135】
また視差制御の対象でなかったマーカに対応する移動体の位置が変化して対応するマーカが視差制御の対象となった場合(例えば移動体の位置がビューボリューム内から前記ビューボリューム以外に変化した場合)には、マーカを半透明表示(ぼかし処理の一例である)した後に表示させてもよい。半透明処理において時間とともに透明度を小さくすることで、次第にマーカが現れる様子を演出(フェードイン演出)することができる。
【0136】
2−7.投影面の設定
次に投影面の設定手法の一例について説明する。
【0137】
投影面は、図2に示すようにオブジェクト空間内に仮想的に設定され、左眼用画像や右眼用画像が透視投影変換される面である。オブジェクト空間内において、視点位置が与えられ視点位置に基づき左眼用仮想カメラと右眼用仮想カメラが設定されると、これらに基づき投影面が設定される。投影面をどのように設定するかは、望ましい視差角θとの関係で決定してもよい。
【0138】
図11は、視差角について説明するための図である。
【0139】
立体視画像を見る場合に視差角θ(α−β)が大きいほど、左眼用画像と右眼用画像のずれが大きくなる。ずれが大きくなりすぎるとぶれて見えたりするので、視差角θを適切な範囲内に納めることがこのましい。視差角θは、表示画面(実際にプレーヤが見るモニタ画面)に対する輻輳角αと、オブジェクトOB1やOB2に対する輻輳角β1、β2と角度差(視差角θ=αーβ)表すことができる。視差角θが小さいほうが左眼用画像と右眼用画像のずれが小さくなり快適な立体視領域となる。一般にθ=±1度で快適に見られる程度で、θ=±2度で許容できる程度となる。
【0140】
810は手前空間(表示画面の手前の空間で飛び出して見える空間)における快適な立体視領域(例えば視差角θ=−1の領域)を示しており、820は奥行き空間(表示画面の奥側の空間で奥行き方向に見える空間)における快適な立体視領域(例えば視差角θ=+の領域)を示しており、830は手前空間における許容できる立体視領域(例えば視差角θ=−2の領域)を示しており、840は奥行き空間における許容できる立体視領域(例えば視差角θ=+2の領域)を示している。810、820、830、840を含む領域850は立体視表示を行う際の制限領域となる。
【0141】
視点からモニタ面までの距離筐体シートからモニタまでの標準距離=DLと、設定している両眼の幅=EWから、実際のモニタ面での左右映像の差(左眼用画像と右眼用画像のずれ)を求める事ができる。EW=50.0mm、DL=600.0mm とすると、810や820の快適な立体視領域における左右映像の差を基準値1(例えば±10.5mm程度)とし、830や840の許容できる立体視領域における左右映像の差を基準値2(基準値1>基準値2となる値であり、例えば±21.0mm程度)としてもよい。プレーヤ移動体等の常に注視するオブジェクトは、基準値1の範囲を超えないようにし、その他のゲームオブジェクトは、基準値2の範囲を超えないように投影面240を設定してもよい。
【0142】
この様に視差角θを設定するためには、表示画面500に対する輻輳角αに基づいてオブジェクト空間の投影面を設定してもよい。すなわち投影面上の基準点(例えば視線方向と交わる点)の輻輳角がαとなる位置に投影面を設定してもよい。
【0143】
2−8.視差制御処理の流れ
図12は、視差制御処理の流れについて説明するためのフローチャートである。
【0144】
以下の処理をフレーム毎に行い、所定の条件を満たす移動体に対応するマーカの飛び出し表示を行ってもよい。図12では、表示される移動体に対応するマーカついては、マーカの2次元画像を、オブジェクト空間を透視投影変換した画像に上書き合成する場合を例にとり説明する。
【0145】
まず所与の視点に基づきビューボリュームや投影面を設定する(ステップS10)。所与の視点とは、例えばプレーヤ移動体に追従する視点でもよい。また一人称視点のゲーム画像を生成する場合の視点でもよいし、三人称視点のゲーム画像を生成する場合の視点でもよい。立体視用画像を生成する場合には、視点に基づき左眼用仮想カメラと右眼用仮想カメラを設定する。投影面は、オブジェクト空間内に仮想的に設定される面であり、ゲーム中に注視するオブジェクトの右眼画像と左眼画像の許容視差や最遠景に表示されるオブジェクトの右眼画像と左眼画像の許容視差等に基づき設定してもよいし、図11で説明した手法により設定してもよいし、その他の規則により設定してもよい。
【0146】
そして移動体は、ビューボリューム内にいるか(所与の視点から見える位置にいるか)否か判断し(ステップS20)、ビューボリューム内にいる場合(所与の視点から見える位置にいる場合)には、マーカに対応する移動体の位置に基づき、マーカの表示位置と立体視用の視差の度合いを演算する(ステップS30)。
【0147】
移動体がビューボリューム内にいない(所与の視点から見える位置にいない場合)であって、移動体は、投影面よりもZ軸方向またはコース軸方向で手前に位置する所定範囲内にいる場合(ステップS40)には、マーカに対応する移動体とプレーヤ移動体との位置関係に基づき、移動体に対応するマーカの立体視用の視差の度合いを決定し、移動体の位置に基づき、マーカの表示位を演算する(ステップS50)。
【0148】
すべての移動体についてチェックが済んだら以下の処理を行う(ステップS60)。
【0149】
オブジェクト空間を所与の視点から見た画像を投影面に透視投影変換する(ステップS70)。
【0150】
表示対象マーカについて、求めた表示位置と立体視用の視差の度合いに基づき、マーカの2次元画像を透視投影変換画像に上書き合成する
(ステップS80、S90)。
【0151】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【0152】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、携帯型ゲームシステム、ゲーム画像を生成するシステムボード等の種々のゲームシステムに適用できる。
【0153】
上記実施の形態では、視差制御されるマーカに与える立体視用の視差の度合いを、マーカに対応する移動体とプレーヤ移動体との位置関係に応じて変化させる場合を例にとり説明したがそれに限られない。
【0154】
マーカに対応する移動体とプレーヤ移動体との位置関係に加えて、マーカに対応する移動体とプレーヤ移動体との相対速度、又は相対加速度、又はタイム差に応じてさらに前記立体視用の視差の度合いを変化させてもよい。この場合の立体視用の視差の度合いの変化は一時的なものでもよい。またマーカに対応する移動体とプレーヤ移動体との位置関係により求めた立体視用の視差の度合いに対して上記いずれかのファクターにより変更演算や補正演算を行い最終的な立体視用の視差の度合いを求めてもよい。
【符号の説明】
【0155】
100 処理部、110 オブジェクト空間設定部、 112 ゲーム演算部、114 移動体演算部、116 マーカ表示制御部、120 画像生成部、122 立体視用画像精製部130 音生成部、160 入力部、162 撮像部、170 記憶部、180 情報記憶媒体、190 表示部、192 音出力部、
210−L 左眼用仮想カメラ、210−R 右眼用仮想カメラ、240 投影面、220−L 左眼用ビューボリューム、220−R 右眼用ビューボリューム、230 最大手前面、250 最大奥行き面
【特許請求の範囲】
【請求項1】
移動体をオブジェクト空間内で移動させる演算を行う移動演算部と、
前記移動体に対応するマーカの表示制御を行うマーカ表示制御部と、
前記移オブジェクト空間を所与の視点からみた画像を立体視用画像として生成する画像生成部としてコンピュータを機能させ、
前記マーカ表示制御部は、
少なくとも前記移動体又は前記移動体に対応するマーカが前記所与の視点から見えない位置にいることを条件として、マーカに対応する移動体とプレーヤ移動体との位置関係に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行うプログラム。
【請求項2】
請求項1において、
前記マーカ表示制御部は、
前記移動体に付随するように設定されているマーカ付随位置が、ビューボリューム内に存在する場合には、対応するマーカを当該移動体に付随して表示させる付随表示制御処理を行い、
前記マーカ付随位置がビューボリューム内に存在しない場合には、対応するマーカを移動体とは分離して表示させ、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行うプログラム。
【請求項3】
請求項1において、
前記マーカ表示制御部は、
前記移動体がビューボリューム内に存在する場合には、対応するマーカを当該移動体に付随して表示させる付随表示制御処理を行い、
前記移動体がビューボリューム内に存在しない場合には、対応するマーカを移動体とは分離して表示させ、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行うプログラム。
【請求項4】
請求項1乃至3のいずれかにおいて、
前記マーカ表示制御部は、
前記移動体と前記プレーヤ移動体との距離に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行うプログラム。
【請求項5】
請求項1乃至4のいずれかにおいて、
前記マーカ表示制御部は、
前記移動体と前記プレーヤ移動体との相対速度、又は相対加速度、又はタイム差に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行うプログラム。
【請求項6】
請求項1乃至5のいずれかにおいて、
前記移動体演算部は、
オブジェクト空間に設定されているコース内で移動体を移動させる制御を行い、
前記マーカ表示制御部は、
前記コースに対して設定されたコース座標系における位置座標に基づき、前記視差制御対象のマーカの位置を設定するプログラム。
【請求項7】
請求項6において、
前記マーカ表示制御部は、
前記視差制御対象のマーカの水平方向の位置を、対応する移動体のコースの幅方向に位置に基づき設定し、
前記プレーヤ移動体と視差制御対象のマーカに対応する移動体のコース方向の距離が離れるほど、前記コース幅方向の位置の変動の反映率を低くして、前記マーカの水平方向の位置を設定するプログラム。
【請求項8】
請求項1乃至7のいずれかにおいて、
前記マーカ表示制御部は、
移動体の位置が変化することにより、視差制御対象の対象となっているマーカが視差制御対象外となった場合、または視差制御対象外であったマーカが視差制御対象となった場合の少なくとも一方の場合に、前記マーカのぼかし制御を行うプログラム。
【請求項9】
請求項1乃至8のいずれかに記載のプログラムが記憶されたコンピュータ読み取り可能な情報記憶媒体。
【請求項10】
移動体をオブジェクト空間内で移動させる演算を行う移動演算部と、
前記移動体に対応するマーカの表示制御を行うマーカ表示制御部と、
前記移オブジェクト空間を所与の視点からみた画像を立体視用画像として生成する画像生成部とを含み、
前記マーカ表示制御部は、
少なくとも前記移動体又は前記移動体に対応するマーカが前記所与の視点から見えない位置にいることを条件として、マーカに対応する移動体とプレーヤ移動体との位置関係に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行う画像生成システム。
【請求項11】
移動体をオブジェクト空間内で移動させる演算を行う移動演算部と、
前記移動体に対応するマーカの表示制御を行うマーカ表示制御部と、
前記移オブジェクト空間を所与の視点からみた画像を立体視用画像として生成する画像生成部とを含み、
前記マーカ表示制御部は、
少なくとも前記移動体又は前記移動体に対応するマーカが前記所与の視点から見えない位置にいることを条件として、マーカに対応する移動体とプレーヤ移動体との位置関係に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行うサーバシステム。
【請求項1】
移動体をオブジェクト空間内で移動させる演算を行う移動演算部と、
前記移動体に対応するマーカの表示制御を行うマーカ表示制御部と、
前記移オブジェクト空間を所与の視点からみた画像を立体視用画像として生成する画像生成部としてコンピュータを機能させ、
前記マーカ表示制御部は、
少なくとも前記移動体又は前記移動体に対応するマーカが前記所与の視点から見えない位置にいることを条件として、マーカに対応する移動体とプレーヤ移動体との位置関係に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行うプログラム。
【請求項2】
請求項1において、
前記マーカ表示制御部は、
前記移動体に付随するように設定されているマーカ付随位置が、ビューボリューム内に存在する場合には、対応するマーカを当該移動体に付随して表示させる付随表示制御処理を行い、
前記マーカ付随位置がビューボリューム内に存在しない場合には、対応するマーカを移動体とは分離して表示させ、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行うプログラム。
【請求項3】
請求項1において、
前記マーカ表示制御部は、
前記移動体がビューボリューム内に存在する場合には、対応するマーカを当該移動体に付随して表示させる付随表示制御処理を行い、
前記移動体がビューボリューム内に存在しない場合には、対応するマーカを移動体とは分離して表示させ、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行うプログラム。
【請求項4】
請求項1乃至3のいずれかにおいて、
前記マーカ表示制御部は、
前記移動体と前記プレーヤ移動体との距離に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行うプログラム。
【請求項5】
請求項1乃至4のいずれかにおいて、
前記マーカ表示制御部は、
前記移動体と前記プレーヤ移動体との相対速度、又は相対加速度、又はタイム差に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行うプログラム。
【請求項6】
請求項1乃至5のいずれかにおいて、
前記移動体演算部は、
オブジェクト空間に設定されているコース内で移動体を移動させる制御を行い、
前記マーカ表示制御部は、
前記コースに対して設定されたコース座標系における位置座標に基づき、前記視差制御対象のマーカの位置を設定するプログラム。
【請求項7】
請求項6において、
前記マーカ表示制御部は、
前記視差制御対象のマーカの水平方向の位置を、対応する移動体のコースの幅方向に位置に基づき設定し、
前記プレーヤ移動体と視差制御対象のマーカに対応する移動体のコース方向の距離が離れるほど、前記コース幅方向の位置の変動の反映率を低くして、前記マーカの水平方向の位置を設定するプログラム。
【請求項8】
請求項1乃至7のいずれかにおいて、
前記マーカ表示制御部は、
移動体の位置が変化することにより、視差制御対象の対象となっているマーカが視差制御対象外となった場合、または視差制御対象外であったマーカが視差制御対象となった場合の少なくとも一方の場合に、前記マーカのぼかし制御を行うプログラム。
【請求項9】
請求項1乃至8のいずれかに記載のプログラムが記憶されたコンピュータ読み取り可能な情報記憶媒体。
【請求項10】
移動体をオブジェクト空間内で移動させる演算を行う移動演算部と、
前記移動体に対応するマーカの表示制御を行うマーカ表示制御部と、
前記移オブジェクト空間を所与の視点からみた画像を立体視用画像として生成する画像生成部とを含み、
前記マーカ表示制御部は、
少なくとも前記移動体又は前記移動体に対応するマーカが前記所与の視点から見えない位置にいることを条件として、マーカに対応する移動体とプレーヤ移動体との位置関係に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行う画像生成システム。
【請求項11】
移動体をオブジェクト空間内で移動させる演算を行う移動演算部と、
前記移動体に対応するマーカの表示制御を行うマーカ表示制御部と、
前記移オブジェクト空間を所与の視点からみた画像を立体視用画像として生成する画像生成部とを含み、
前記マーカ表示制御部は、
少なくとも前記移動体又は前記移動体に対応するマーカが前記所与の視点から見えない位置にいることを条件として、マーカに対応する移動体とプレーヤ移動体との位置関係に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行うサーバシステム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図8】
【図9】
【図10】
【図11】
【図12】
【図7】
【図2】
【図3】
【図4】
【図5】
【図6】
【図8】
【図9】
【図10】
【図11】
【図12】
【図7】
【公開番号】特開2012−173822(P2012−173822A)
【公開日】平成24年9月10日(2012.9.10)
【国際特許分類】
【出願番号】特願2011−32686(P2011−32686)
【出願日】平成23年2月17日(2011.2.17)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】
【公開日】平成24年9月10日(2012.9.10)
【国際特許分類】
【出願日】平成23年2月17日(2011.2.17)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】
[ Back to top ]