(57)【要約】【課題】表示されない移動体の存在を把握しやすいマーカ表示を行うことができるゲーム画像を提供すること。【解決手段】本プログラムは、移動体をオブジェクト空間内で移動させる演算を行う移動演算部と、記移動体に対応するマーカの表示制御を行うマーカ表示制御部と、前記オブジェクト空間を所与の視点からみた画像を立体視用画像として生成する画像生成部としてコンピュータを機能させ、前記マーカ表示制御部は、少なくとも前記移動体又は前記移動体に対応するマーカが前記所与の視点から見えない位置にいることを条件として、マーカに対応する移動体とプレーヤ移動体との位置関係に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行う。【選択図】図１２
2012173822.tif 000002
【特許請求の範囲】
【請求項１】
移動体をオブジェクト空間内で移動させる演算を行う移動演算部と、
前記移動体に対応するマーカの表示制御を行うマーカ表示制御部と、
前記移オブジェクト空間を所与の視点からみた画像を立体視用画像として生成する画像生成部としてコンピュータを機能させ、
前記マーカ表示制御部は、
少なくとも前記移動体又は前記移動体に対応するマーカが前記所与の視点から見えない位置にいることを条件として、マーカに対応する移動体とプレーヤ移動体との位置関係に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行うプログラム。
【請求項２】
請求項１において、
前記マーカ表示制御部は、
前記移動体に付随するように設定されているマーカ付随位置が、ビューボリューム内に存在する場合には、対応するマーカを当該移動体に付随して表示させる付随表示制御処理を行い、
前記マーカ付随位置がビューボリューム内に存在しない場合には、対応するマーカを移動体とは分離して表示させ、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行うプログラム。
【請求項３】
請求項１において、
前記マーカ表示制御部は、
前記移動体がビューボリューム内に存在する場合には、対応するマーカを当該移動体に付随して表示させる付随表示制御処理を行い、
前記移動体がビューボリューム内に存在しない場合には、対応するマーカを移動体とは分離して表示させ、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行うプログラム。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記マーカ表示制御部は、
前記移動体と前記プレーヤ移動体との距離に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行うプログラム。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記マーカ表示制御部は、
前記移動体と前記プレーヤ移動体との相対速度、又は相対加速度、又はタイム差に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行うプログラム。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記移動体演算部は、
オブジェクト空間に設定されているコース内で移動体を移動させる制御を行い、
前記マーカ表示制御部は、
前記コースに対して設定されたコース座標系における位置座標に基づき、前記視差制御対象のマーカの位置を設定するプログラム。
【請求項７】
請求項６において、
前記マーカ表示制御部は、
前記視差制御対象のマーカの水平方向の位置を、対応する移動体のコースの幅方向に位置に基づき設定し、
前記プレーヤ移動体と視差制御対象のマーカに対応する移動体のコース方向の距離が離れるほど、前記コース幅方向の位置の変動の反映率を低くして、前記マーカの水平方向の位置を設定するプログラム。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記マーカ表示制御部は、
移動体の位置が変化することにより、視差制御対象の対象となっているマーカが視差制御対象外となった場合、または視差制御対象外であったマーカが視差制御対象となった場合の少なくとも一方の場合に、前記マーカのぼかし制御を行うプログラム。
【請求項９】
請求項１乃至８のいずれかに記載のプログラムが記憶されたコンピュータ読み取り可能な情報記憶媒体。
【請求項１０】
移動体をオブジェクト空間内で移動させる演算を行う移動演算部と、
前記移動体に対応するマーカの表示制御を行うマーカ表示制御部と、
前記移オブジェクト空間を所与の視点からみた画像を立体視用画像として生成する画像生成部とを含み、
前記マーカ表示制御部は、
少なくとも前記移動体又は前記移動体に対応するマーカが前記所与の視点から見えない位置にいることを条件として、マーカに対応する移動体とプレーヤ移動体との位置関係に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行う画像生成システム。
【請求項１１】
移動体をオブジェクト空間内で移動させる演算を行う移動演算部と、
前記移動体に対応するマーカの表示制御を行うマーカ表示制御部と、
前記移オブジェクト空間を所与の視点からみた画像を立体視用画像として生成する画像生成部とを含み、
前記マーカ表示制御部は、
少なくとも前記移動体又は前記移動体に対応するマーカが前記所与の視点から見えない位置にいることを条件として、マーカに対応する移動体とプレーヤ移動体との位置関係に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行うサーバシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体、画像生成システム及びサーバシステム等に関する。
【背景技術】
【０００２】
従来より、仮想的な３次元空間であるオブジェクト空間内に複数のオブジェクトを配置し、オブジェクト空間内の所与の視点から見える画像を生成する画像生成装置が開発、実用化されており、いわゆる仮想現実を体験できるものとして人気が高い。レーシングカーゲームを楽しむことができる画像生成装置を例にとれば、プレーヤは、レーシングカーを操作してオブジェクト空間内で走行させ、他のプレーヤが操作するレーシングカーと競争することで３次元ゲームを楽しむ。また通信等を利用して複数のプレーヤが同一のゲーム空間内で他のプレーヤの運転するレーシングカーと時間、順位を競い合いながらマルチプレーヤゲームを楽しむこともできる。
【０００３】
さて、このような画像生成装置では、どのプレーヤがどの移動体を操作しているかは、どのようなゲーム状況であっても、プレーヤが容易且つ明確に識別できることが望まれるため、各プレーヤの顔写真等をマーカとして表示するものがあり、マーカにより競争相手を意識しながらレースを行うことができる。
【０００４】
また近年、映画やゲーム等の分野において、より臨場感が溢れる画像を生成するシステムとして、立体視画像の生成システムが脚光を浴びており、オブジェクト空間を立体視用画像として生成することで、より臨場感をあふれるゲーム画像を提供することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−７３４１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところでレーシングゲーム等では、プレーヤ移動体の後方の移動体については、位置の把握が難しく、レーダー画像等でしか、競争相手の位置を把握することができないという問題があった。本願発明者は、前記マーカを利用して、競争相手の位置の把握がしやすい画像生成システムの開発を行っている。
【０００７】
本発明の幾つかの態様によれば、立体視用画像が提供されるゲームにおいて、表示されない移動体の存在を把握しやすいマーカ表示を行うことができるプログラム、情報記憶媒体、画像生成システム及び等を提供できる。
【課題を解決するための手段】
【０００８】
（１）本発明の一態様は、
移動体をオブジェクト空間内で移動させる演算を行う移動演算部と、
前記移動体に対応するマーカの表示制御を行うマーカ表示制御部と、
前記オブジェクト空間を所与の視点からみた画像を立体視用画像として生成する画像生成部としてコンピュータを機能させ、
前記マーカ表示制御部は、
少なくとも前記移動体又は前記移動体に対応するマーカが前記所与の視点から見えない位置にいることを条件として、マーカに対応する移動体とプレーヤ移動体との位置関係に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行うプログラムに関する。
【０００９】
視差制御は、マーカに対応する２Ｄ画像を前記オブジェクト空間を所与の視点からみた画像（透視投影変換画像）に対して立体視用の所与の視差（表示画面から飛び出して見えるような視差や表示画面から奥まって見えるような視差）を与えて描画してもよい（所定のずれを与えて描画してもよい）。
【００１０】
本発明によれば見えない位置にいる移動体については、移動体に対応するマーカが移動体とは独立して表示され、プレーヤ移動体との位置関係に応じて前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行う。従って視差制御が行われているマーカによって、見えない位置にいる移動体との位置関係を立体的に把握することができるゲーム画像を提供することができる。
【００１１】
（２）このプログラム、情報記憶媒体、画像生成システム及びサーバシステムにおいて、
前記マーカ表示制御部は、
前記移動体に付随するように設定されているマーカ付随位置が、ビューボリューム内に存在する場合には、対応するマーカを当該移動体に付随して表示させる付随表示制御処理を行い、
前記マーカ付随位置がビューボリューム内に存在しない場合には、対応するマーカを移動体とは分離して表示させ、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行ってもよい。
【００１２】
（３）このプログラム、情報記憶媒体、画像生成システム及びサーバシステムにおいて、
前記マーカ表示制御部は、
前記移動体がビューボリューム内に存在する場合には、対応するマーカを当該移動体に付随して表示させる付随表示制御処理を行い、
前記移動体がビューボリューム内に存在しない場合には、対応するマーカを移動体とは分離して表示させ、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行ってもよい。
【００１３】
前記マーカ表示制御部は、前記移動体が前記ビューボリューム以外の所定の条件を満たす判定空間（３次元的に判断する場合）や判定領域（２次元的に判断する場合）にいる場合に、当該移動体に対応するマーカに対して視差制御を行うようにしてもよい。判定空間や判定領域は、例えば視点やビューボリュームやプレーヤ移動体や投影面等のいずれかに基づき設定される空間や領域でもよい。
【００１４】
また前記マーカ表示制御部は、前記移動体が、前記プレーヤ移動体又は視点又は仮想カメラ又は立体視用画像を生成する際の投影面と所定の位置関係にある場合に、当該移動体に対応するマーカに対して視差制御を行うようにしてもよい。
【００１５】
前記投影面は、投影面に位置するオブジェクトの画像の視差が無くなる面である。
【００１６】
例えば前記移動体の奥行き方向の位置が、前記プレーヤ移動体又は前記視点又は前記仮想カメラ又は前記投影面より手前方向にある場合に、前記移動体に対応する前記マーカの視差制御を行うようにしてもよい。
【００１７】
（４）このプログラム、情報記憶媒体、画像生成システム及びサーバシステムにおいて、
前記マーカ表示制御部は、
前記移動体と前記プレーヤ移動体との距離に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行ってもよい。
【００１８】
前記移動体と前記プレーヤ移動体との距離は、３次元空間における距離でもよいし、所定の軸方向の距離でもよいし、所定の平面上の距離でもよいし、コース座標系におけるコース方向の距離でもよい。
【００１９】
このようにすると、プレーヤ移動体からの距離に応じて対応するマーカの奥行き感又は飛び出し感が変化して見えるので、移動体との距離感が奥行き感又は飛び出し感とシンクロナイズして、プレーヤが見えない移動体の位置が把握しやすいゲーム画像を提供することができる。
【００２０】
（５）このプログラム、情報記憶媒体、画像生成システム及びサーバシステムにおいて、
前記マーカ表示制御部は、
前記移動体と前記プレーヤ移動体との相対速度、又は相対加速度、又はタイム差に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行ってもよい。
【００２１】
この様にすると、速度感や加速度感やタイム差を反映して奥行き感または飛び出し感が変化する表示を行うことができる。
【００２２】
（６）このプログラム、情報記憶媒体、画像生成システム及びサーバシステムにおいて、
前記移動体演算部は、
オブジェクト空間に設定されているコース内で移動体を移動させる制御を行い、
前記マーカ表示制御部は、
前記コースに対して設定されたコース座標系における位置座標に基づき、前記視差制御対象となるマーカの位置を設定してもよい。
【００２３】
（７）このプログラム、情報記憶媒体、画像生成システム及びサーバシステムにおいて、
前記マーカ表示制御部は、
前記視差制御対象のマーカの水平方向の位置を、対応する移動体のコースの幅方向に位置に基づき設定し、
前記プレーヤ移動体と視差制御対象のマーカに対応する移動体のコース方向の距離が離れるほど、前記コース幅方向の位置の変動の反映率を低くして、前記マーカの水平方向の位置を設定してもよい。
【００２４】
（８）このプログラム、情報記憶媒体、画像生成システム及びサーバシステムにおいて、
前記マーカ表示制御部は、
移動体の位置が変化することにより、視差制御対象の対象となっているマーカが視差制御対象外となった場合、または視差制御対象外であったマーカが視差制御対象となった場合の少なくとも一方の場合に、前記マーカのぼかし制御を行なってもよい。
【００２５】
（９）本発明の一態様は、
上記のいずれかに記載のプログラムが記憶されたコンピュータ読み取り可能な情報記憶媒体に関する。
【００２６】
（１０）本発明の一態様は、
移動体をオブジェクト空間内で移動させる演算を行う移動演算部と、
前記移動体に対応するマーカの表示制御を行うマーカ表示制御部と、
前記オブジェクト空間を所与の視点からみた画像を立体視用画像として生成する画像生成部とを含み、
前記マーカ表示制御部は、
少なくとも前記移動体又は前記移動体に対応するマーカが前記所与の視点から見えない位置にいることを条件として、マーカに対応する移動体とプレーヤ移動体との位置関係に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行う画像生成システムに関する。
【００２７】
（１１）本発明の一態様は、
移動体をオブジェクト空間内で移動させる演算を行う移動演算部と、
前記移動体に対応するマーカの表示制御を行うマーカ表示制御部と、
前記オブジェクト空間を所与の視点からみた画像を立体視用画像として生成する画像生成部とを含み、
前記マーカ表示制御部は、
少なくとも前記移動体又は前記移動体に対応するマーカが前記所与の視点から見えない位置にいることを条件として、マーカに対応する移動体とプレーヤ移動体との位置関係に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行うサーバシステムに関する。
【図面の簡単な説明】
【００２８】
【図１】本実施形態の画像生成システムの構成例。
【図２】立体視画像を生成する際の投影面及びビューボリュームについて説明するための図。
【図３】マーカの表示制御について説明するための図。
【図４】マーカの表示制御について説明するための図。
【図５】マーカの表示制御について説明するための図。
【図６】視差の度合いの制御について説明するための図。
【図７】コース上で判定区間を設定する例を説明するための図。
【図８】コース座標系について説明するための図。
【図９】視差制御の対象となるマーカの表示位置について説明するための図。
【図１０】視差制御を行うマーカのぼかし処理について説明するための図。
【図１１】視差角について説明するための図。
【図１２】視差制御処理の流れについて説明するためのフローチャート。
【発明を実施するための形態】
【００２９】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３０】
１．構成
図１に本実施形態の画像生成装置（コンピュータ、端末、ゲーム装置）の機能ブロック図の例を示す。なお本実施形態の画像生成装置は図１の構成要素（各部）の一部を省略した構成としてもよい。
【００３１】
入力部１６０は、プレーヤからの入力情報を入力するための機器であり、プレーヤの入力情報を処理部に出力する。本実施形態の入力部１６０は、プレーヤの入力情報（入力信号）を検出する検出部１６２を備える。入力部１６０は、例えば、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイなどがある。また、入力部１６０は、所定振動信号に基づいて振動させる処理を行う振動部を備えていてもよい。
【００３２】
また、入力部１６０は、３軸の加速度を検出する加速度センサや、角速度を検出するジャイロセンサ、撮像部を備えた入力機器でもよい。例えば、入力機器は、プレーヤが把持して動かすものであってもよいし、プレーヤが身につけて動かすものであってもよい。また、入力機器には、プレーヤが把持する刀型コントローラや銃型コントローラ、あるいはプレーヤが身につける（プレーヤが手に装着する）グローブ型コントローラなど実際の道具を模して作られたコントローラも含まれる。また入力機器には、入力機器と一体化されている画像生成装置、携帯型画像生成装置、携帯電話なども含まれる。
【００３３】
記憶部２００は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ、ＶＲＡＭなどにより実現できる。
【００３４】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。
【００３５】
処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）を記憶することができる。
【００３６】
撮像部１６２は、被写体を撮像するものであり、ＣＣＤやＣＭＯＳセンサなどの撮像素子や、レンズ等の光学系により実現できる。撮像部１６２の撮像により取得された撮像情報（撮像画像データ）は、撮像情報記憶部１７４に記憶されて保存される。撮像部１６２で撮像されたプレーヤの画像を、マーカに使用してもよい。
【００３７】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＤＲＡＭ、ＶＲＡＭ）などにより実現できる。そしてゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部１７０に保持される。
【００３８】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＤＶＤ、ＣＤ等）、ＨＤＤ（ハードディスクドライブ）、或いはメモリ（ＲＯＭ等）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータ（操作部、処理部、記憶部、出力部を備える装置）を機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００３９】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＬＣＤ、有機ＥＬディスプレイ、ＣＲＴ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００４０】
通信部１９６は外部（例えば他の画像生成装置）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００４１】
なお、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体１８０や記憶部２００に記憶してもよい。このようにプログラムやデータを受信して画像生成装置を機能させる場合も本発明の範囲内に含む。
【００４２】
処理部１００（プロセッサ）は、入力部１６０からの入力情報やプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。
【００４３】
この処理部１００は記憶部１７０内の主記憶部１７２をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＧＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００４４】
処理部１００は、オブジェクト空間設定部１１０、ゲーム演算部１１２、移動体演算部１１４、マーカ表示制御部１１６、画像生成部（描画部）１２０、音処理部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００４５】
オブジェクト空間設定部１１０は、キャラクタ（敵オブジェクト）の他に、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を、オブジェクト空間に配置設定する処理を行う。
【００４６】
ここでオブジェクト空間とは、仮想的な3次元空間である。３次元空間とは、例えば３次元座標（Ｘ，Ｙ，Ｚ）においてオブジェクトが配置される空間である。
【００４７】
例えば、オブジェクト空間設定部１１０は、オブジェクト空間を３次元空間とした場合には、ワールド座標系にオブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）を配置する。また、例えば、ワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００４８】
ゲーム演算部１１６は、種々のゲーム処理を行う。例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム終了条件が満たされた場合にゲームを終了する処理、最終ステージをクリアした場合にはエンディングを進行させる処理などがある。
【００４９】
マーカ表示制御部１１６は、移動体に対応するマーカの表示制御を行うもので、少なくとも前記移動体又は前記移動体に対応するマーカが前記所与の視点から見えない位置にいることを条件として、マーカに対応する移動体とプレーヤ移動体との位置関係に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行う。
【００５０】
またマーカ表示制御部１１６は、前記移動体がビューボリューム内に存在する場合には、対応するマーカを当該移動体に付随して表示させる付随表示制御処理を行い、
前記移動体がビューボリューム内に存在しない場合には、対応するマーカを移動体とは分離して表示させ、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行ってもよい。
【００５１】
またマーカ表示制御部１１６は、前記移動体と前記プレーヤ移動体との距離に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行ってもよい。
【００５２】
またマーカ表示制御部１１６は、記移動体と前記プレーヤ移動体との相対速度、又は相対加速度、又はタイム差に応じて、前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行ってもよい。
【００５３】
また移動体演算部１１６は、オブジェクト空間に設定されているコース内で移動体を移動させる制御を行い、マーカ表示制御部１１６は、前記コースに対して設定されたコース座標系における位置座標に基づき、前記視差制御対象のマーカの位置を設定してもよい。
【００５４】
マーカ表示制御部１１６は、前記視差制御対象のマーカの水平方向の位置を、対応する移動体のコースの幅方向に位置に基づき設定し、
前記プレーヤ移動体と視差制御対象のマーカに対応する移動体のコース方向の距離が離れるほど、前記コース幅方向の位置の変動の反映率を低くして、前記マーカの水平方向の位置を設定してもよい。
【００５５】
またマーカ表示制御部１１６は、移動体の位置が変化することにより、視差制御対象の対象となっているマーカが視差制御対象外となった場合、または視差制御対象外であったマーカが視差制御対象となった場合の少なくとも一方の場合に、前記マーカのぼかし制御を行ってもよい。
【００５６】
画像生成部１２０は、処理部１００で行われる種々の処理（ゲーム処理、シミュレーション処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。具体的には、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ（プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）が作成される。そして、この描画データ（プリミティブ面データ）に基づいて、透視変換後（ジオメトリ処理後）のオブジェクト（１又は複数プリミティブ面）を、描画バッファ１７８（フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ）に描画する。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。画像生成部１２０は頂点処理やピクセル処理を行ってもよい。
【００５７】
頂点処理は頂点シェーダ、ジオメトリーシェーダ等がおこなってもよい。具体的には、オブジェクトの頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）に基づいて、頂点処理（頂点シェーダによるシェーディング）を行う。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。
【００５８】
頂点処理では、頂点処理プログラム（頂点シェーダプログラム、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。
【００５９】
ピクセル処理はピクセルシェーダがおこなってもよい。具体的には、ラスタライズ後に、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（ピクセルシェーダによるシェーディング、フラグメント処理）を行う。
【００６０】
ピクセル処理では、ピクセル処理プログラム（ピクセルシェーダプログラム、第２のシェーダプログラム）に従って、テクスチャの読み出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ１７８に出力（描画）する。即ち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。
【００６１】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現できる。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００６２】
なお、画像生成部１２０は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、３次元の画像を生成する場合には、ワールド座標系における仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（例えば、Ｘ、Ｙ、Ｚ軸の各軸の正方向からみて時計回りに回る場合における回転角度）を制御する処理を行う。要するに、視点位置、視線方向、画角を制御する処理を行う。また、画像生成部１２０は、仮想カメラを、予め決められた回転角度で回転させてもよい。この場合には、仮想カメラの位置又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【００６３】
例えば、フロントビュー視点やドライバー視点等（一人称視点）に基づいて画像を生成する処理を行ってもよいし、車体後方視点や俯瞰視点等（三人称視点）に基づいて画像を生成する処理を行ってもよい。
【００６４】
また、本実施形態では、仮想カメラの移動、向き、画角はプログラムで制御してもよいし、入力部１６０の入力情報に基づいて仮想カメラの移動、向き、画角を制御してもよい。
【００６５】
例えば仮想カメラによりオブジェクト（例えば、プレーヤキャラクタ）を後方から撮影する場合には、オブジェクトの位置、向きの変化に仮想カメラが追従するように、仮想カメラの位置、仮想カメラの向きを制御する。この場合には、移動演算部１１４で得られたオブジェクトの位置、向き又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた向きに設定し、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は向きを特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【００６６】
なお画像生成部１２０は、オブジェクトを描画する際に、αブレンディング等を行ってもよい。
【００６７】
αブレンディング（α合成）は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）のことである。
【００６８】
なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００６９】
画像生成部１２０は立体視用画像生成部１２２を含む。
【００７０】
立体視用画像生成部１２２は、立体視用画像を生成する場合に、視点に基づき左眼用仮想カメラ及び右眼用仮想カメラの設定を行い、オブジェクト空間において左眼用仮想カメラから見える左眼用画像と、オブジェクト空間において右眼用仮想カメラから見える右眼用画像を生成する。
【００７１】
立体視方式としては、２眼分離眼鏡方式や、パララックスバリアやレンチキュラや、その他、光線の方向を制御することができる光学素子を用いた裸眼方式などの様々な方式を想定できる。２眼分離眼鏡方式としては、例えば偏光眼鏡方式、継時分離方式、色分離方式などがあるが、いずれかの方式に対応した立体視用画像を生成するものであればよい。
【００７２】
音処理部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００７３】
また、音生成部１３０は、オブジェクトやマーカの位置に応じて音像定位が変化する音を生成してもよい。例えば、マーカが画面よりも手前側に飛び出して見える場合には、該マーカに対応する音の音像定位を画面よりも手前側の位置に設定し、マーカが画面よりも奥側に引っ込んで見える場合には、該マーカに対応する音の音像定位を画面よりも手前側の位置に設定してもよい。また、マーカの移動に連動して音像定位の位置を移動させるようにしてもよい。
【００７４】
なお、本実施形態の画像生成装置は、１人のプレーヤのみがプレイできるシングルプレーヤモード用の装置にしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードを備える装置にしてもよい。
【００７５】
また、本実施形態の画像生成システムをサーバシステムとして構成してもよい。サーバシステムは、１又は複数のサーバ（認証サーバ、ゲーム処理サーバ、通信サーバ、課金サーバ、データベースサーバ等）により構成することができる。この場合には、サーバシステムは、ネットワークを介して接続された１又は複数の端末装置（例えば、据え置き型ゲーム装置、携帯型ゲーム装置、プログラム実行可能な携帯電話等）から送信された操作情報に基づき各種処理を行って、立体視用画像を生成するための画像生成用データを生成し、生成した画像生成用データを各端末装置に対して送信する。ここで、画像生成用データとは、本実施形態の手法により生成された立体視用画像を各端末装置において表示するためのデータであり、画像データそのものでもよいし、各端末装置が立体視用画像を生成するために用いる各種データ（オブジェクトデータ、ゲーム処理結果データ等）であってもよい。
【００７６】
２．本実施形態の手法 
２−１．立体視画像の原理
次に本実施形態の手法について具体的に説明する。
【００７７】
図２は、立体視画像を生成する際の投影面及びビューボリュームについて説明するための図である。
【００７８】
立体視用画像を生成する際には、所定の距離（両眼の幅に対応して設定）だけ離れた位置に設定される左眼用仮想カメラ２１０−Ｌと右眼用仮想カメラ２１０−Ｒを用いて左眼用画像と右眼用画像を生成する。左眼用画像は左眼用仮想カメラ２１０−Ｌからみたオブジェクト空間を投影面２４０に投影した画像であり、右眼用画像は右眼用仮想カメラ２１０−Ｒからみたオブジェクト空間を投影面２４０に投影した画像である。
【００７９】
左眼用仮想カメラ２１０−Ｌに対応して左眼用ビューボリューム２２０−Ｌが設定され、右眼用仮想カメラ２１０−Ｒに対応して右眼用ビューボリューム２２０−Ｒが設定される。具体的には左眼用仮想カメラ２１０−Ｌ、右眼用仮想カメラ２１０−Ｒの位置や視線方向に基づいて、左眼用ビューボリューム２２０−Ｌ、右眼用ビューボリューム２２０−Ｒの位置や方向が設定される。
【００８０】
左眼用画像は、左眼用ビューボリューム２２０−Ｌ内に存在するオブジェクトを投影面２４０に透視投影して描画することで生成される。同様に右眼用画像は、右眼用ビューボリューム２２０−Ｒ内に存在するオブジェクトを投影面２４０に透視投影して描画することで生成される。２３０は最大手前面（前方クリッピング面）、２５０は最大奥行き面（後方クリッピング面）である。
【００８１】
各オブジェクトについての左眼用画像と右眼用画像に生じる視差により、各オブジェクトに奥行き感又は飛び出し感を持たせることができる。ここで、最大手前面２３０と投影面２４０の間（飛び出し空間と呼ぶ）の点Ａに位置するオブジェクトＯＡ、投影面２４０上の点Ｂに位置するオブジェクトＯＢ、投影面２４０と最大奥行き面２５０の間（奥行き空間と呼ぶ）の点Ｃに位置するオブジェクトＯＣを投影面２４０に描画した場合に生じる左眼用画像と右眼用画像のずれについて説明する。
【００８２】
投影面２４０に位置するオブジェクトＯＢは左眼用画像でも右眼用画像でも同じ位置ＢＰ−Ｌ、ＢＰ−Ｒに描画されるため、左眼用画像と右眼用画像とでずれが生じない。
【００８３】
これに対し、飛び出し空間の点Ａに位置に位置するオブジェクトＯＡは左眼用画像では点ＡＰ−Ｌの位置に描画され、右眼用画像では点ＡＰ−Ｒの位置に描画されるため、左眼用画像と右眼用画像とで第１の方向（例えばＸ軸正方向）にずれが生じる。この第１の方向に生じたずれにより、点Ａに位置するオブジェクトＯＡがユーザが見るモニタ画面（表示部）からユーザの方に飛び出して見える。
【００８４】
また奥行き空間の点Ｃに位置に位置するオブジェクトＯＣは左眼用画像では点ＣＰ−Ｌの位置に描画され、右眼用画像では点ＣＰ−Ｒの位置に描画されるため、左眼用画像と右眼用画像とで第１の方向と逆の第２の方向（例えばＸ軸負方向）にずれが生じる。この第２の方向に生じたずれにより、点Ｃに位置するオブジェクトＯＣはユーザが見るモニタ画面（表示部）より奥行き方向に奥まっているように見える。
【００８５】
２−２．本実施の形態のレーシングゲーム
本実施の形態のレースゲームは、例えば複数のプレーヤが通信対戦を行えるマルチプレーヤゲームでもよい。各プレーヤは、各自の入力部（例えばコントローラやゲーム筐体の操作部等）から操作入力を行うことで自己の移動体であるプレーヤ移動体（例えば車）をゲーム空間内（オブジェクト空間の一例）に設定されたコース上を移動させて、順位やタイム等を競うことができる。各プレーヤの表示部（モニタ画面）等には、各プレーヤのプレーヤ移動体に追従する視点でのゲーム画像が、立体視用画像として表示されるので、プレーヤは臨場感に富んだレースゲームを楽しむことができる。
【００８６】
また本実施の形態のレースゲームでは、図３に示すように所与の視点から見える位置にいるプレーヤ移動体４１０−１、４１０−２、４１０−３に関しては、それぞれに対応するマーカ４２０−１、４２０−２、４２０−３が付随して表示される。マーカ４２０−１、４２０−２、４２０−３には、対応するプレーヤ移動体を操作するプレーヤを識別するための情報等（画像等）が付されており、例えば各プレーヤのニックネームや登録画像（例えば撮像部で撮影した画像でもよいし、サーバや携帯情報機器等の他の情報記憶媒体に予め格納されている画像でもよい）や選択したキャラクタの画像でもよい。
【００８７】
２−３．マーカの視差制御
図３、図４、図５は、本実施の形態のマーカの表示制御について説明するための図である。
【００８８】
図５は、レーシングゲームが行われるゲーム空間４００（オブジェクト空間の一例）内をＹ軸方向（上）からみた場合の移動体の配置状態を示す図である。最大奥行き面２５０と最大手前面（前方クリッピング面）２３０を底面（上と下）とする視錐台（図５では台形表示になっている）がビューボリューム２２０となり、このビューボリューム２２０に含まれるオブジェクトが透視投影変換（描画対象）となり、表示部に表示される（実際には他のオブジェクト等に隠れて見えない場合もある）。
【００８９】
図３は、図５に対応するゲーム空間を所与の視点（図５の２１０であり、例えばプレーヤ移動体４１０を操作するプレーヤＰ１の視点）から見た様子を示している。図３では最大奥行き面２５０と最大手前面（前方クリッピング面）２３０を底面（上と下）とする視錐台がビューボリューム２２０となる。２７０は飛び出し描画面であり、この面にマーカを描画すると、マーカが表示画面から飛び出して見える。
【００９０】
移動体４１０−１、４１０−２、４１０−３４０がプレーヤＰ１のから見える（表示部に表示される）オブジェクトであるので、これらに対応するマーカ４２０−１、４２０−２、４２０−３については、移動体４１０−１、４１０−２、４１０−３４０に付随して表示させる。
【００９１】
この様に本実施の形態では、移動体（プレーヤ移動体でもよいし、ＮＰＣ（Non Player Character）でもよい）がオブジェクト空間のビューボリューム内にある場合（表示部に表示されプレーヤＰ１から見える場合）に、移動体に付随してマーカを表示させる付随表示制御処理を行う。
【００９２】
また移動体がオブジェクト空間のビューボリューム内にいない場合（表示部に表示されずプレーヤＰ１から見えない場合）に前記移動体に対応するマーカに与える立体視用の視差の度合いを変化させる視差制御を行う。
【００９３】
図３のマーカ４２０−４、４２０−５は、移動体４１０−４、４１０−５（図５に示すようにビューボリューム２２０外に存在するためプレーヤＰ１から見えない移動体である）に対応するマーカであり、視差制御が行われているため、表示画面から飛び出して見える。しかし、マーカ４２０−４、４２０−５に対応する移動体４１０−４、４１０−５自体の画像は表示されていない。従って通常であればプレーヤＰ１はこれらの移動体の存在を把握できないところ、本実施の形態では、プレーヤＰ１から見えない位置にいる移動体４１０−４、４１０−５については移動体４１０−４、４１０−５に対応するマーカ４２０−４、４２０−５が表示部から飛び出して見えるように表示するので、見えない位置にいる移動体４１０−４、４１０−５の存在を感じながらレースを行うことができる。
【００９４】
例えば、プレーヤ移動体４１０−１の後方にいる移動体４１０−４が、プレーヤ移動体４１０−１を追いこす場合には、追い越し前は、プレーヤ移動体４１０−４に対応するマーカのみが４２０−４が表示されているが、追い越し後はプレーヤ移動体４１０−４もビューボリューム２２０内に入るため、画面内に表示されるようになる。従って移動体４１０−２と対応するマーカ４２０−２や、移動体４１０−３と対応するマーカ４２０−３のように、移動体４１０−４に対応するマーカ４２０−４も、画面内の移動体４１０−４に付随して表示されることになる。
【００９５】
例えば、移動体４１０−４がオブジェクト空間内の投影面２４０を通過したときに、表示されていなかった移動体４１０−４が画面内に表示され、対応するマーカ４２０−４の表示が、独立表示状態（図９に示すゲーム画像下部の所定の領域７１０にあり、視差制御により飛び出して見える状態）から付随表示状態（対応する移動体４１０−４に付随して表示される状態）に切り替わるようにしてもよい。
【００９６】
本実施の形態では図９で説明するように、独立表示状態のマーカの水平方向の表示位置は、対応する移動体のコース幅方向の位置に基づき設定されるため、マーカの表示が独立表示状態から付随表示状態に切り替わる場合でも、マーカの水平方向の位置の変化はシームレスである。
【００９７】
また独立表示状態から付随表示状態へ切り替えを、オブジェクト空間内における移動体が投影面２４０を通過したタイミングで行う場合には、移動体４１０−４が投影面２４０を通過するタイミングに合わせて、マーカの垂直方向の表示位置を、独立表示時の垂直位置（これは、図９で説明するようにゲーム画像の下部の所定の領域７１０の垂直位置）から、ゲーム画面内の移動体４１０−４の表示位置（２次元画像における描画位置）にスムーズに移動させるようにしてもよい。
【００９８】
マーカの付随表示状態と独立表示状態の切替は、プレーヤ移動体以外の他の移動体の代表点が、プレーヤのビューボリューム内外かを判断して行っても良いし、移動体に付随させるマーカを配置する位置（又は配置する基準となる位置）となるマーカ付随位置を予め移動体に関連付けて設定し、このマーカ付随位置がビューボリューム内外かを判断して切替を行っても良い。
【００９９】
マーカ付随位置に基づいて、マーカの付随表示状態と独立表示状態を切替える場合、他の移動体がプレーヤ移動体の後方から近づくにつれて視差を視差０方向に変更し、投影面で視差を０にすると良い。このように視差を変更することにより、マーカの付随表示状態と独立表示状態の切替え時の立体感を滑らかに移行することができる。
【０１００】
さらに本実施の形態では、視差制御されるマーカ４２０−４、４２０−５に与える立体視用の視差の度合いを、マーカに対応する移動体４１０−４、４１０−５とプレーヤ移動体４１０−１との位置関係に応じて変化させる。
【０１０１】
図４（Ａ）（Ｂ）は、マーカの視差制御について説明するための図である。
【０１０２】
図４（Ａ）はプレーヤＰ１が、表示画面５００に表示されるゲーム画像を介してゲーム空間（オブジェクト空間、図５の４００）を見ている様子を模式的に示している。また図４（Ｂ）は、プレーヤＰ１が見ているゲーム空間４００をＸ軸方向から見た様子を模式的に示している。
【０１０３】
図４（Ｂ）の３２０は、ゲーム空間４００において投影面２４０と最大奥行き面２５０の間の空間である奥行き空間である。この奥行き空間３２０に位置する移動体４１０−１，４１０−２、４１０−３については、視点（仮想カメラ）２１０から見える画像として表示画面５００に立体視用画像として表示されているため、プレーヤＰ１は、図４（Ａ）に示すように移動体４１０−１、４１０−２、４１０−３が表示画面５００の奥にあるように奥行き感を感じることができる。
【０１０４】
また図４（Ｂ）の３１０は、ゲーム空間４００において投影面２４０と最大手前面２３０の間の空間である飛び出し空間である。この飛び出し空間３１０に位置するマーカ４２０−５，４２０−４については、プレーヤＰ１には、図４（Ａ）に示すように表示画面５００から手前に飛び出しているように見える。
【０１０５】
図４（Ｂ）のゲーム空間において最大奥行き面２５０より視点（仮想カメラ２１０）から見て奥側の空間３３０−１、及び最大手前面２３０より視点（仮想カメラ２１０）側の空間３３０−２は、プレーヤＰ１からは見えない空間（仮想カメラ２１０から見えない空間でもある）である。従って移動体４１０−４、４１０−５は、表示画面５００には表示されないが、これらに対応するマーカ４２０−４、４２０−５については、図４（Ａ）に示すように飛び出し感を出すための視差が与えられて移動体とは別個に表示される。
【０１０６】
マーカ４２０−４、４２０−５については、いずれも表示画面５００の手前にあるように飛び出して見えるが、その飛び出し度合い（立体視用の視差の度合い）が異なっている。ここでは、プレーヤ移動体４１０−１より離れた移動体のマーカほど飛び出し度合いが大きくなる場合を例示している。
【０１０７】
マーカ４２０−４は移動体４１０−４に対応したマーカであり、マーカ４２０−５は移動体４１０−５に対応したマーカであり、移動体４１０−４とプレーヤ移動体４１０−１の位置関係（例えばｚ軸方向の距離ｌ１）、移動体４１０−５とプレーヤ移動体４１０−１の位置関係（例えばｚ軸方向の距離ｌ２）が異なっているため、距離に応じて、飛び出し度合いを変化させるようにしてもよい。例えばプレーヤ移動体との距離（３次元空間における距離でもよいし、ある軸方向の距離でもよい）が離れた移動体ほど、対応するマーカの飛び出し度合いが大きくなるように、与える視差の度合いを制御してもよい。
【０１０８】
このようにすることで、プレーヤＰ１は自己のプレーヤ移動体４１０−１の後方に位置するが表示画面５００には表示されていない移動体４１０−４，４１０−５の存在を把握することができ、マーカ４２０−４，４２０−５の飛び出し度合いによって、プレーヤ移動体４１０−１との位置関係（例えば離れ具合）を把握することができる。
【０１０９】
なお視差制御は、マーカをオブジェクトとして仮想空間内の飛び出し空間に配置して投影面２４０に透視投影変換して描画することによって実現してもよい。またマーカの２次元画像を視差をつけて、左眼用画像と右眼用画像（透視投影変換後の画像）に上書きして描画してもよい。
【０１１０】
図６は、視差制御について説明するための図である。
【０１１１】
立体視用画像は、各オブジェクトについての左眼用画像と右眼用画像に生じる視差により、各オブジェクトに奥行き感又は飛び出し感を持たせることができるが、飛び出し感を持たせた画像が生成されるのは、オブジェクトが投影面２４０より手前の空間（ビューボリュームにおける投影面２４０と最大手前面（前方クリッピング面）の間の空間（飛び出し空間）にある場合である。
【０１１２】
飛び出し空間の点Ｄに位置に位置するオブジェクトＯＤは左眼用画像では点ＤＰ−Ｌの位置に描画され、右眼用画像では点ＤＰ−Ｒの位置に描画されるため、左眼用画像と右眼用画像とで第１の方向に（例えばＸ軸正方向）にずれＳＤが生じる。このずれＳＤにより、点Ｄに位置するオブジェクトＯＤがユーザが見るモニタ画面（表示部）からユーザの方にαＤ（図４（Ａ）参照）飛び出して見える。従って例えばマーカ４１０−５の２次元画像にずれＳＤをつけて、左眼用画像と右眼用画像（透視投影変換後の画像）に上書き合成することでマーカの飛び出し表示を実現することができる。
【０１１３】
飛び出し空間の点Ｅ（点Ｄより奥行き方向にある）に位置に位置するオブジェクトＯＥは左眼用画像では点ＥＰ−Ｌの位置に描画され、右眼用画像では点ＥＰ−Ｒの位置に描画されるため、左眼用画像と右眼用画像とで第１の方向に（例えばＸ軸正方向）にずれＳＥが生じる。このずれＳＥにより、点Ｅに位置するオブジェクトＯＥがユーザが見るモニタ画面（表示部）からユーザの方にαＥ（図４（Ａ）参照）飛び出して見える。従って例えばマーカ４１０−４の２次元画像にずれＳＥをつけて左眼用画像と右眼用画像（透視投影変換後の画像）に上書き合成することでマーカ４１０−４の視差制御を行うことができる。
【０１１４】
２−４．視差制御の対象となるマーカ
次に視差制御の対象となるマーカについて説明する。
【０１１５】
視差制御の対象となるマーカは、所与の視点から見えない移動体（ビューボリューム内に存在しない移動体）すべてに対応するマーカでもよいし、所与の視点から見えない移動体（ビューボリューム内に存在しない移動体）のうちその位置が所定の条件を満たす移動体に対応するマーカでもよい。
【０１１６】
所定の条件として、例えば移動体と、視点やビューボリュームやプレーヤ移動体や立体視用画像を生成する際の投影面との位置関係に関する条件を設定してもよい。
【０１１７】
例えば移動体が、前記プレーヤ移動体又は視点又は仮想カメラ又は立体視用画像を生成する際の投影面よりＺ軸手前方向（奥行き方向と反対の方向）にいる場合に、当該移動体に対応するマーカの視差制御を行うようにしてもよい。このようにすると後方で見えない移動体に対応するマーカの視差制御を行うことができる。
【０１１８】
また図５に示すように、投影面２４０から手前方向の空間（投影面２４０からのＺ軸方向の距離がＫ以内の空間）にいる移動体４１０−４、４１０−５に対応するマーカを視差制御対象としてもよい。この様にすると当該空間よりさらに手前方向に存在する移動体４１０−６（プレーヤ移動体４１０−１より後方に位置する移動体）に対応するマーカも視差制御の対象とならない。しかし移動体４１０−６は、移動体４１０−４、４１０−５に比べてプレーヤ移動体４１０−１から後方に離れているので、これらに比べてプレーヤ移動体に与える脅威が低くなるため、あえてその存在をプレーヤに知らしめる必要が低くなる。このように視差制御の対象を制限して、余分な表示を行わないことで、より見やすいゲーム画面を提供することができる。
【０１１９】
なお本実施の形態のように移動体がゲーム空間上に設定されたコース上を走行する場合には、コース上の領域を判定領域６９０として設定し、判定領域内の移動体に対応するマーカについて視差制御を行ってもよい。
【０１２０】
図７は、コースに判定領域を設定する例を説明するための図であり、図８はコース座標系について説明するための図である。
【０１２１】
例えばコース上において、視点位置２１０や、投影面２４０や、プレーヤ移動体４１０−１の後方の所定範囲の区間を判定領域６９０として設定してもよい。
【０１２２】
６９０は、視点位置２１０の後方の所定区間を表示対象区間としている様子を示している。移動体をコース上で走行させる場合には、移動体の位置をコース座標系（ｌ、ｗ）で設定してもよい。
【０１２３】
コース座標系は図８に示すように、コースの長手方向（コース方向）Ｌを第１の軸とし、コースの長手方向に直行するコースの幅方向Ｗを第２の軸として、コース上の所与の点Ｐの座標（ｌ、ｗ）を、Ｌ方向のスタートラインからの距離ｌと、Ｗ方向の中心点（Ｌ軸上の点）からの距離ｗで表す。例えば点ＰはＬ方向のスタートラインＬからの距離がｌ１で、Ｗ方向の中心点からの距離がｗ１であるので、点Ｐのコース座標系における座標値は（ｌ１、ｗ１）となる。
【０１２４】
従って視点位置２１０の後方の所定区間を判定領域とする場合には、視点２１０からのコース方向の距離ＫＬ（図７参照）を定義しておくとよい。
【０１２５】
２−５．視差制御対象となるマーカの表示位置
図９は、視差制御の対象となるマーカの表示位置について説明するための図である。
【０１２６】
７００は表示画面に表示されるゲーム画像である。ゲーム画像７００内の所定の領域７１０を飛び出し表示対象のマーカＭ１，Ｍ２を表示する領域としてもよい。所定の領域は、ゲーム画像７１０の下部の領域としてもよい。マーカを表示する領域はゲーム画像の他の場所に設定してもよいが、マーカＭ１、Ｍ２の表示が本来のゲーム画像の表示のじゃまになりくい場所することが好ましい。
【０１２７】
ここで所定の領域のどの位置（例えば水平方向の位置）に表示するかは、マーカに対応する移動体の位置Ｅ１、Ｅ２に基づき設定してもよい。例えば移動体Ｅ１の位置のコース座標系の幅方向の値が’＋ｗ１’、移動体Ｅ２の位置のコース座標系の幅方向の値が’−ｗ２’である場合には、所定の領域７１０の基準点ＫＰからマークＭ１までの距離ｌｍ１、所定の領域の基準点ＫＰからマークＭ２までの距離ｌｍ２の値がｌｍ１：ｌｍ２＝ｗ１：ｗ２になるような位置にマークＭ１、Ｍ２を設定してもよい。この様にすると、水平方向のマークの表示位置に、対応する移動体のコース幅方向の位置が反映されるので、プレーヤに対して見えない移動体の位置を把握させやすいマーカ表示を行うことができる。
【０１２８】
後方の近い位置の移動体についてはデッドヒートになる可能性があるため、より正確な位置を知ることが重要であるが、遠く離れた移動体については、あまり細かな位置変化（コース幅方向の位置変化）を把握する必要はない。
【０１２９】
従って視差制御対象のマーカに対応する移動体とプレーヤ移動体のコース方向Ｌの距離が離れるほど、前記コース幅方向Ｗの位置の変動の反映率を低くしてもよい。例えば図７において、移動体４１０−５は移動体４１０−４よりもプレーヤ移動体４１０−１からのコース方向Ｌの距離が離れているので、移動体４１０−５に対応するマーカへ反映率を移動体４１０−４に対応するマーカへの反映率よりも低くなるようにしてもよい。
【０１３０】
反映率の変更は、位置を反映させるタイミングの間隔を変更することで実現してもよい。例えばｎ秒に１回の割合で位置を反映させる場合と２ｎ秒に１回の割合で位置を反映させる場合には後者のほうが位置変動の反映率が低くなる。
【０１３１】
この様にすると移動体４１０−５と移動体４１０−４が同じような幅方向の位置変化を起こしたとしても、プレーヤ移動体により近い移動体４１０−４に対応するマーカのほうが水平方向の位置変化が激しくなり、プレーヤ移動体からより遠い移動体４１０−５に対応するマーカにはあまり細かい位置変化は反映されず、見やすい画像を提供することができる。また、移動体の幅方向の位置変化が激しい場合、マーカの表示位置の変化も激しくなり画面が見づらくなるのを防止することができる。
【０１３２】
２−６．視差制御を行うマーカのぼかし処理
マーカのぼかし処理は、半透明処理や被写界深度処理やモーションブラー処理、ブリンク処理などにより実現することができる。例えばぼかしフィルタ（ブラーフィルタ）などを用いて、フェードイン、フェードアウト時のマーカの画像をぼかす処理を行ってもよい。また、モーションブラー処理によりぼかすようにしてもよい。また、マーカの画像の表示・非表示を所定期間毎に繰り返すブリンク処理（点滅処理）を行ってもよい。またマーカの各頂点のα値を変更して描画する半透明処理を行ってもよい。
【０１３３】
図１０は、視差制御を行うマーカの半透明処理について説明するための図である。
【０１３４】
視差制御の対象となっているマーカ４２０に対応する移動体の位置が変化して、マーカが視差制御の対象外となった場合（例えば移動体の位置がビューボリューム以外から前記ビューボリューム内に変化した場合）には、図１０に示すように視差制御により飛び出してみえるよう表示されていたマーカ４２０が、半透明表示（ぼかし処理の一例である）された（４２０参照）のち、消失するようにしてもよい。半透明処理において時間とともに透明度を大きくすることで、次第にマーカが消えていく様子を演出（フェードアウト演出）することができる。
【０１３５】
また視差制御の対象でなかったマーカに対応する移動体の位置が変化して対応するマーカが視差制御の対象となった場合（例えば移動体の位置がビューボリューム内から前記ビューボリューム以外に変化した場合）には、マーカを半透明表示（ぼかし処理の一例である）した後に表示させてもよい。半透明処理において時間とともに透明度を小さくすることで、次第にマーカが現れる様子を演出（フェードイン演出）することができる。
【０１３６】
２−７．投影面の設定
次に投影面の設定手法の一例について説明する。
【０１３７】
投影面は、図２に示すようにオブジェクト空間内に仮想的に設定され、左眼用画像や右眼用画像が透視投影変換される面である。オブジェクト空間内において、視点位置が与えられ視点位置に基づき左眼用仮想カメラと右眼用仮想カメラが設定されると、これらに基づき投影面が設定される。投影面をどのように設定するかは、望ましい視差角θとの関係で決定してもよい。
【０１３８】
図１１は、視差角について説明するための図である。
【０１３９】
立体視画像を見る場合に視差角θ（α−β）が大きいほど、左眼用画像と右眼用画像のずれが大きくなる。ずれが大きくなりすぎるとぶれて見えたりするので、視差角θを適切な範囲内に納めることがこのましい。視差角θは、表示画面（実際にプレーヤが見るモニタ画面）に対する輻輳角αと、オブジェクトＯＢ１やＯＢ２に対する輻輳角β１、β２と角度差（視差角θ＝αーβ）表すことができる。視差角θが小さいほうが左眼用画像と右眼用画像のずれが小さくなり快適な立体視領域となる。一般にθ＝±１度で快適に見られる程度で、θ＝±２度で許容できる程度となる。
【０１４０】
８１０は手前空間（表示画面の手前の空間で飛び出して見える空間）における快適な立体視領域（例えば視差角θ＝−１の領域）を示しており、８２０は奥行き空間（表示画面の奥側の空間で奥行き方向に見える空間）における快適な立体視領域（例えば視差角θ＝＋の領域）を示しており、８３０は手前空間における許容できる立体視領域（例えば視差角θ＝−２の領域）を示しており、８４０は奥行き空間における許容できる立体視領域（例えば視差角θ＝＋２の領域）を示している。８１０、８２０、８３０、８４０を含む領域８５０は立体視表示を行う際の制限領域となる。
【０１４１】
視点からモニタ面までの距離筐体シートからモニタまでの標準距離＝ＤＬと、設定している両眼の幅＝ＥＷから、実際のモニタ面での左右映像の差（左眼用画像と右眼用画像のずれ）を求める事ができる。ＥＷ＝50.0mm、ＤＬ=600.0mm とすると、８１０や８２０の快適な立体視領域における左右映像の差を基準値１（例えば±10.5mm程度）とし、８３０や８４０の許容できる立体視領域における左右映像の差を基準値２（基準値１＞基準値２となる値であり、例えば±21.0mm程度）としてもよい。プレーヤ移動体等の常に注視するオブジェクトは、基準値１の範囲を超えないようにし、その他のゲームオブジェクトは、基準値２の範囲を超えないように投影面２４０を設定してもよい。
【０１４２】
この様に視差角θを設定するためには、表示画面５００に対する輻輳角αに基づいてオブジェクト空間の投影面を設定してもよい。すなわち投影面上の基準点（例えば視線方向と交わる点）の輻輳角がαとなる位置に投影面を設定してもよい。
【０１４３】
２−８．視差制御処理の流れ
図１２は、視差制御処理の流れについて説明するためのフローチャートである。
【０１４４】
以下の処理をフレーム毎に行い、所定の条件を満たす移動体に対応するマーカの飛び出し表示を行ってもよい。図１２では、表示される移動体に対応するマーカついては、マーカの２次元画像を、オブジェクト空間を透視投影変換した画像に上書き合成する場合を例にとり説明する。
【０１４５】
まず所与の視点に基づきビューボリュームや投影面を設定する（ステップＳ１０）。所与の視点とは、例えばプレーヤ移動体に追従する視点でもよい。また一人称視点のゲーム画像を生成する場合の視点でもよいし、三人称視点のゲーム画像を生成する場合の視点でもよい。立体視用画像を生成する場合には、視点に基づき左眼用仮想カメラと右眼用仮想カメラを設定する。投影面は、オブジェクト空間内に仮想的に設定される面であり、ゲーム中に注視するオブジェクトの右眼画像と左眼画像の許容視差や最遠景に表示されるオブジェクトの右眼画像と左眼画像の許容視差等に基づき設定してもよいし、図１１で説明した手法により設定してもよいし、その他の規則により設定してもよい。
【０１４６】
そして移動体は、ビューボリューム内にいるか（所与の視点から見える位置にいるか）否か判断し（ステップＳ２０）、ビューボリューム内にいる場合（所与の視点から見える位置にいる場合）には、マーカに対応する移動体の位置に基づき、マーカの表示位置と立体視用の視差の度合いを演算する（ステップＳ３０）。
【０１４７】
移動体がビューボリューム内にいない（所与の視点から見える位置にいない場合）であって、移動体は、投影面よりもＺ軸方向またはコース軸方向で手前に位置する所定範囲内にいる場合（ステップＳ４０）には、マーカに対応する移動体とプレーヤ移動体との位置関係に基づき、移動体に対応するマーカの立体視用の視差の度合いを決定し、移動体の位置に基づき、マーカの表示位を演算する（ステップＳ５０）。
【０１４８】
すべての移動体についてチェックが済んだら以下の処理を行う（ステップＳ６０）。
【０１４９】
オブジェクト空間を所与の視点から見た画像を投影面に透視投影変換する（ステップＳ７０）。
【０１５０】
表示対象マーカについて、求めた表示位置と立体視用の視差の度合いに基づき、マーカの２次元画像を透視投影変換画像に上書き合成する
（ステップＳ８０、Ｓ９０）。
【０１５１】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【０１５２】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、携帯型ゲームシステム、ゲーム画像を生成するシステムボード等の種々のゲームシステムに適用できる。
【０１５３】
上記実施の形態では、視差制御されるマーカに与える立体視用の視差の度合いを、マーカに対応する移動体とプレーヤ移動体との位置関係に応じて変化させる場合を例にとり説明したがそれに限られない。
【０１５４】
マーカに対応する移動体とプレーヤ移動体との位置関係に加えて、マーカに対応する移動体とプレーヤ移動体との相対速度、又は相対加速度、又はタイム差に応じてさらに前記立体視用の視差の度合いを変化させてもよい。この場合の立体視用の視差の度合いの変化は一時的なものでもよい。またマーカに対応する移動体とプレーヤ移動体との位置関係により求めた立体視用の視差の度合いに対して上記いずれかのファクターにより変更演算や補正演算を行い最終的な立体視用の視差の度合いを求めてもよい。
【符号の説明】
【０１５５】
１００ 処理部、１１０ オブジェクト空間設定部、 １１２ ゲーム演算部、１１４  移動体演算部、１１６  マーカ表示制御部、１２０ 画像生成部、１２２ 立体視用画像精製部１３０ 音生成部、１６０ 入力部、１６２ 撮像部、１７０ 記憶部、１８０ 情報記憶媒体、１９０ 表示部、１９２ 音出力部、 
２１０−Ｌ 左眼用仮想カメラ、２１０−Ｒ  右眼用仮想カメラ、２４０  投影面、２２０−Ｌ 左眼用ビューボリューム、２２０−Ｒ 右眼用ビューボリューム、２３０  最大手前面、２５０  最大奥行き面
【図１】
2012173822.tif 000003
【図２】
2012173822.tif 000004
【図３】
2012173822.tif 000005
【図４】
2012173822.tif 000006
【図５】
2012173822.tif 000007
【図６】
2012173822.tif 000008
【図８】
2012173822.tif 000009
【図９】
2012173822.tif 000010
【図１０】
2012173822.tif 000011
【図１１】
2012173822.tif 000012
【図１２】
2012173822.tif 000013
【図７】
2012173822.tif 000014