(57)【特許請求の範囲】
【請求項１】
所定のオブジェクトを配置した仮想３次元空間を仮想ステレオカメラで撮像して表示装置に立体視表示させる表示制御装置のコンピュータによって実行される表示制御プログラムであって、
前記コンピュータを、
前記所定のオブジェクトに関するパラメータであるオブジェクトパラメータに応じて、前記仮想ステレオカメラの視点位置から前記所定のオブジェクトまでの距離であるオブジェクト距離と、前記仮想ステレオカメラの視点位置から当該仮想ステレオカメラで前記仮想３次元空間を撮像した際に視差が生じない位置である基準面までの距離である立体視基準距離との割合である立体視割合を設定する立体視割合設定手段と、
前記立体視割合に基づいて、前記仮想ステレオカメラに関するパラメータであるカメラパラメータを設定するカメラパラメータ設定手段と、
前記カメラパラメータ設定手段によって設定されたカメラパラメータに基づいて、前記仮想ステレオカメラで前記仮想３次元空間を撮像した立体視画像を生成する画像生成手段と、
前記画像生成手段によって生成された立体視画像を前記表示装置に表示させる表示制御手段として機能させる、表示制御プログラム。
【請求項２】
前記表示制御プログラムは、前記コンピュータを、前記オブジェクト距離を変化させるオブジェクト距離変化手段として更に機能させ、
前記立体視割合設定手段は、前記オブジェクト距離変化手段により変化したオブジェクト距離に基づいて前記立体視割合を設定する、請求項１に記載の表示制御プログラム。
【請求項３】
前記カメラパラメータ設定手段は、前記立体視割合を固定にした上で、前記カメラパラメータを設定する、請求項１又は２に記載の表示制御プログラム。
【請求項４】
前記カメラパラメータ設定手段は、
前記オブジェクトパラメータの変化により前記所定のオブジェクトの状態が所定の変化をしたか否かを判定する判定手段と、
前記所定のオブジェクトの状態が所定の変化をしたと前記判定手段によって判定された場合に、前記立体視割合を変化させる割合変更手段とを含む、請求項３に記載の表示制御プログラム。
【請求項５】
前記割合変更手段は、変化した前記オブジェクトパラメータに応じた値に前記立体視割合を変化させる、請求項４に記載の表示制御プログラム。
【請求項６】
前記オブジェクトパラメータは、前記仮想ステレオカメラの視点位置からの奥行き方向に沿った前記所定のオブジェクトの移動速度を示すパラメータであり、
前記判定手段は、前記所定のオブジェクトの移動速度が所定の閾値を超えたか否かを判定し、
前記割合変更手段は、前記所定の閾値を超えたと前記判定手段によって判定された場合に、前記立体視割合を前記所定のオブジェクトの移動速度に応じた値に変化させる、請求項５に記載の表示制御プログラム。
【請求項７】
前記割合変更手段は、前記所定のオブジェクトの移動速度が前記所定の閾値を上回った場合に、前記立体視割合を所定の基準割合よりも高い値に変化させる、請求項６に記載の表示制御プログラム。
【請求項８】
前記割合変更手段は、前記所定のオブジェクトの移動速度が前記所定の閾値を下回った場合に、前記立体視割合を所定の基準割合よりも低い値に変化させる、請求項６に記載の表示制御プログラム。
【請求項９】
前記オブジェクトパラメータは、前記仮想ステレオカメラの視点位置からの奥行き方向に沿った前記所定のオブジェクトの加速度を示すパラメータであり、
前記判定手段は、前記所定のオブジェクトの加速度が所定の閾値を超えたか否かを判定し、
前記割合変更手段は、前記所定の閾値を超えたと前記判定手段によって判定された場合に、前記立体視割合を前記所定のオブジェクトの加速度に応じた値に変化させる、請求項５に記載の表示制御プログラム。
【請求項１０】
前記割合変更手段は、前記仮想ステレオカメラの撮像方向における前記所定のオブジェクトの加速度が第１の閾値を上回った場合に、前記立体視割合を所定の基準割合よりも高い値に変化させる、請求項９に記載の表示制御プログラム。
【請求項１１】
前記割合変更手段は、前記仮想ステレオカメラの撮像方向における前記所定のオブジェクトの加速度が第２の閾値を下回った場合に、前記立体視割合を所定の基準割合よりも高い値に変化させる、請求項９に記載の表示制御プログラム。
【請求項１２】
前記オブジェクトパラメータは、前記所定のオブジェクトの大きさを示すパラメータであり、
前記判定手段は、前記所定のオブジェクトの大きさが変化したか否かを判定し、
前記割合変更手段は、大きさが変化したと前記判定手段によって判定された場合に、前記立体視割合を前記所定のオブジェクトの大きさに応じた値に変化させる、請求項５に記載の表示制御プログラム。
【請求項１３】
前記割合変更手段は、前記所定のオブジェクトが小さくなった場合に、前記立体視割合を所定の基準割合よりも高い値に変化させる、請求項１２に記載の表示制御プログラム。
【請求項１４】
前記オブジェクトパラメータは、前記仮想ステレオカメラの視点位置からの奥行き方向に垂直な所定の方向に沿った前記所定のオブジェクトの厚みを示すパラメータであり、
前記判定手段は、前記所定のオブジェクトの厚みが変化したか否かを判定し、
前記割合変更手段は、厚みが変化したと前記判定手段によって判定された場合に、前記立体視割合を前記所定のオブジェクトの厚みに応じた値に変化させる、請求項５に記載の表示制御プログラム。
【請求項１５】
前記割合変更手段は、前記所定のオブジェクトが薄くなった場合に、前記立体視割合を所定の基準割合よりも高い値に変化させる、請求項１４に記載の表示制御プログラム。
【請求項１６】
前記割合変更手段は、前記立体視割合を変化させる際に、前記オブジェクト距離を一時的に維持する、請求項４から１５のいずれかに記載の表示制御プログラム。
【請求項１７】
前記割合変更手段は、前記立体視割合を変化させる際に、当該立体視割合を変化した前記オブジェクトパラメータに応じた値とは異なる値に変化させてから、当該オブジェクトパラメータに応じた値に変化させる、請求項５から１６のいずれかに記載の表示制御プログラム。
【請求項１８】
前記割合変更手段は、前記立体視割合を徐々に変化させる、請求項４から１７のいずれ
かに記載の表示制御プログラム。
【請求項１９】
前記仮想ステレオカメラは、左目用画像を撮像する左目用カメラと、右目用画像を撮像する右目用カメラとから構成されており、
前記仮想ステレオカメラの視点位置は、前記左目用カメラと前記右目用カメラとの間のいずれかの位置である、請求項１から１８のいずれかに記載の表示制御プログラム。
【請求項２０】
前記仮想ステレオカメラの視点位置は、前記左目用カメラと前記右目用カメラとを結ぶ線分の中点の位置である、請求項１９に記載の表示制御プログラム。
【請求項２１】
前記仮想ステレオカメラの視点位置は、前記左目用カメラの位置および前記右目用カメラの位置の間の位置である、請求項１９に記載の表示制御プログラム。
【請求項２２】
前記表示制御プログラムは、前記コンピュータを、ユーザによって操作される入力手段からの入力を受け付ける入力受付手段として更に機能させ、
前記オブジェクトパラメータは、前記入力受付手段によって受け付けられた入力に応じて変化する、請求項３から２１のいずれかに記載の表示制御プログラム。
【請求項２３】
所定のオブジェクトを配置した仮想３次元空間を仮想ステレオカメラで撮像して表示装置に立体視表示させる表示制御装置であって、
前記所定のオブジェクトに関するパラメータであるオブジェクトパラメータに応じて、前記仮想ステレオカメラの視点位置から前記所定のオブジェクトまでの距離であるオブジェクト距離と、前記仮想ステレオカメラの視点位置から当該仮想ステレオカメラで前記仮想３次元空間を撮像した際に視差が生じない位置である基準面までの距離である立体視基準距離との割合である立体視割合を設定する立体視割合設定手段と、
前記立体視割合に基づいて、前記仮想ステレオカメラに関するパラメータであるカメラパラメータを設定するカメラパラメータ設定手段と、
前記カメラパラメータ設定手段によって設定されたカメラパラメータに基づいて、前記仮想ステレオカメラで前記仮想３次元空間を撮像した立体視画像を生成する画像生成手段と、
前記画像生成手段によって生成された立体視画像を前記表示装置に表示させる表示制御手段とを備える、表示制御装置。
【請求項２４】
所定のオブジェクトを配置した仮想３次元空間を仮想ステレオカメラで撮像して表示装置に立体視表示させる表示制御システムであって、
前記所定のオブジェクトに関するパラメータであるオブジェクトパラメータに応じて、前記仮想ステレオカメラの視点位置から前記所定のオブジェクトまでの距離であるオブジェクト距離と、前記仮想ステレオカメラの視点位置から当該仮想ステレオカメラで前記仮想３次元空間を撮像した際に視差が生じない位置である基準面までの距離である立体視基準距離との割合である立体視割合を設定する立体視割合設定手段と、
前記立体視割合に基づいて、前記仮想ステレオカメラに関するパラメータであるカメラパラメータを設定するカメラパラメータ設定手段と、
前記カメラパラメータ設定手段によって設定されたカメラパラメータに基づいて、前記仮想ステレオカメラで前記仮想３次元空間を撮像した立体視画像を生成する画像生成手段と、
前記画像生成手段によって生成された立体視画像を前記表示装置に表示させる表示制御手段とを備える、表示制御システム。
【請求項２５】
所定のオブジェクトを配置した仮想３次元空間を仮想ステレオカメラで撮像して表示装置に立体視表示させる表示制御方法であって、
前記所定のオブジェクトに関するパラメータであるオブジェクトパラメータに応じて、前記仮想ステレオカメラの視点位置から前記所定のオブジェクトまでの距離であるオブジェクト距離と、前記仮想ステレオカメラの視点位置から当該仮想ステレオカメラで前記仮想３次元空間を撮像した際に視差が生じない位置である基準面までの距離である立体視基準距離との割合である立体視割合を設定するステップと、
前記立体視割合に基づいて、前記仮想ステレオカメラに関するパラメータであるカメラパラメータを設定するステップと、
設定された前記カメラパラメータに基づいて、前記仮想ステレオカメラで前記仮想３次元空間を撮像した立体視画像を生成するステップと、
生成された前記立体視画像を前記表示装置に表示させるステップとを含む、表示制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表示制御プログラム、表示制御装置、表示制御システム、及び表示制御方法に関し、より特定的には、立体視表示を行う表示制御装置のコンピュータに実行される表示制御プログラム、表示制御装置、表示制御システム、及び表示制御方法に関する。
【背景技術】
【０００２】
近年、立体視表示を行う様々な装置が提案されている。これらの装置は、左目用画像をユーザの左目に視認させると同時に右目用画像をユーザの右目に視認させることによって、人工的に立体感を感じさせるようにしたものである（例えば特許文献１参照）。
【０００３】
特許文献１に開示されている装置は、立体視表示すべきオブジェクトの立体感をユーザの操作に応じて調整する機能を備えている。具体的には、左目用画像と右目用画像の視差が相異なる複数の同一オブジェクトを同時に又は順番に表示する。これに対して、ユーザが複数の同一オブジェクトに対して距離感の範囲が「適正」であるか否かを入力すると、そのユーザが許容できる適正視差を特定して、立体視表示すべき立体画像に対して適正視差に基づいて処理を施す。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−００７３９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、特許文献１に記載の装置では、仮想３次元空間に配置されたオブジェクトを描画する場合に、上述のように、ユーザの操作に基づいて立体視表示されるオブジェクトの立体感が調整される。このように、立体視表示を行う従来の装置においては、外部からの入力に基づいてオブジェクトの立体感を調整するといった処理が行われるため、仮想３次元空間におけるオブジェクトの状態に応じた適切な臨場感を必ずしも自然に表現することができているとは言えなかった。
【０００６】
それ故に、本発明の目的は、仮想３次元空間におけるオブジェクトの状態に応じた適切な臨場感を自然に表現することを可能にする表示制御プログラム、表示制御装置、表示制御システム、及び表示制御方法を提供することである。
【課題を解決するための手段】
【０００７】
本発明の表示制御プログラムは、所定のオブジェクトを配置した仮想３次元空間を仮想ステレオカメラで撮像して表示装置に立体視表示させる表示制御装置のコンピュータによって実行される表示制御プログラムである。この表示制御プログラムは、コンピュータを、立体視割合設定手段、カメラパラメータ設定手段、画像生成手段、及び表示制御手段として機能させる。立体視割合設定手段は、所定のオブジェクトに関するパラメータであるオブジェクトパラメータに応じて、オブジェクト距離と立体視基準距離の割合である立体視割合を設定する。ここで、オブジェクト距離は、仮想ステレオカメラの視点位置から所定のオブジェクトまでの距離である。立体視基準距離は、仮想ステレオカメラの視点位置から仮想ステレオカメラで仮想３次元空間を撮像した際に視差が生じない位置である基準面までの距離である。カメラパラメータ設定手段は、設定された立体視割合に基づいて、仮想ステレオカメラに関するパラメータであるカメラパラメータを設定する。画像生成手段は、カメラパラメータ設定手段によって設定されたカメラパラメータに基づいて、仮想ステレオカメラで仮想３次元空間を撮像した立体視画像を生成する。表示制御手段は、画像生成手段によって生成された立体視画像を表示装置に表示させる。
【０００８】
この構成によれば、立体視割合に基づいてカメラパラメータが設定される。すなわち、仮想３次元空間内の状況を表す２つの距離の割合に基づいてカメラパラメータが設定される。これにより、仮想３次元空間におけるオブジェクトの状態に応じた適切な臨場感を自然に表現することが可能になる。
【０００９】
表示制御プログラムは、コンピュータを、オブジェクト距離を変化させるオブジェクト距離変化手段として更に機能させてもよい。この場合、立体視割合設定手段は、オブジェクト距離変化手段により変化したオブジェクト距離に基づいて立体視割合を設定する。
【００１０】
この構成によれば、所定のオブジェクト又は仮想ステレオカメラが移動してオブジェクト距離が変化したとしても、仮想３次元空間におけるオブジェクトの状態に応じた適切な臨場感を自然に表現することが可能である。
【００１１】
カメラパラメータ設定手段は、立体視割合を固定した上で、カメラパラメータを設定してもよい。
【００１２】
立体視割合が一定である場合、所定のオブジェクトの立体感は変化しない。逆に、立体視割合が変化した場合、所定のオブジェクトの立体感も変化することになる。上記構成によれば、オブジェクトパラメータが変化しなければ、立体視割合設定手段によって設定された立体視割合が一定の値に維持されるので、所定のオブジェクトの状態に応じた臨場感が損なわれてしまうのを効果的に防止することが可能になる。なお、オブジェクトパラメータとしては、所定のオブジェクトの速度を示すパラメータ、加速度を示すパラメータ、大きさを示すパラメータ、厚みを示すパラメータ等が例として挙げられる。
【００１３】
カメラパラメータ設定手段は、判定手段、及び割合変更手段を含んでいてもよい。判定手段は、オブジェクトパラメータの変化により所定のオブジェクトの状態が所定の変化をしたか否かを判定する。割合変更手段は、所定のオブジェクトの状態が所定の変化をしたと判定手段によって判定された場合に、立体視割合を変化させる。
【００１４】
この構成によれば、オブジェクトパラメータが変化して所定のオブジェクトの状態が変化した場合に、立体視割合が状態変化前の値から変化して状態変化に応じた別の値に収束する。このように、所定のオブジェクトの状態が変化したときに例外的に立体視割合が変更されるので、所定のオブジェクトの状態変化をユーザに効果的に知らしめることができ、且つ所定のオブジェクトの立体感を状態変化後のオブジェクトの状態に適したものにすることが可能になる。
【００１５】
割合変更手段は、変化したオブジェクトパラメータに応じた値に立体視割合を変化させる。
【００１６】
この構成によれば、変化したオブジェクトパラメータに応じた値を適切な値に設定しておくことにより、変化したオブジェクトパラメータとは無関係な値に立体視割合を変化させる場合に比べて、所定のオブジェクトの状態変化をより効果的に知らしめることが可能である。
【００１７】
オブジェクトパラメータは、仮想ステレオカメラの視点位置からの奥行き方向に沿った所定のオブジェクトの移動速度を示すパラメータであってもよい。この場合、判定手段は、所定のオブジェクトの移動速度が所定の閾値を超えたか否かを判定する。割合変更手段は、所定の閾値を超えたと判定手段によって判定された場合に、立体視割合を所定のオブジェクトの移動速度に応じた値に変化させる。
【００１８】
この構成によれば、所定のオブジェクトの移動速度が所定の閾値を超えることにより、立体視割合がその移動速度に応じた値に変更される。これにより、所定のオブジェクトの移動速度の変化をユーザに効果的に知らしめることができ、且つ所定のオブジェクトの立体感を移動速度に応じた自然なものにすることが可能になる。なお、所定の閾値を超えるとは、所定の閾値を上回る場合と、所定の閾値を下回る場合との両方を含むものである。
【００１９】
割合変更手段は、所定のオブジェクトの移動速度が所定の閾値を上回った場合に、立体視割合を所定の基準割合よりも高い値に変化させることが好ましい。
【００２０】
この構成によれば、所定のオブジェクトの移動速度が所定の閾値を上回ると、立体視割合が高くなる。これにより、例えば所定のオブジェクトに対して基準面が仮想ステレオカメラから離れる方向に移動する。その結果、所定のオブジェクトがより近くにいるかのようにユーザに感じさせることができ、所定のオブジェクトの移動速度が大きくなったときの臨場感を効果的に表現することが可能になる。
【００２１】
割合変更手段は、所定のオブジェクトの移動速度が所定の閾値を下回った場合に、立体視割合を所定の基準割合よりも低い値に変化させることが好ましい。
【００２２】
この構成によれば、所定のオブジェクトの移動速度が所定の閾値を下回ると、立体視割合が低くなる。これにより、例えば、仮想ステレオカメラが所定のオブジェクトから離される。その結果、ユーザが離れた位置から所定のオブジェクトを俯瞰するように見ることができ、所定のオブジェクトがゆっくりと移動していることをユーザが自然に感じることが可能になる。
【００２３】
オブジェクトパラメータは、仮想ステレオカメラの視点位置からの奥行き方向に沿った所定のオブジェクトの加速度を示すパラメータであってもよい。この場合、判定手段は、所定のオブジェクトの加速度が所定の閾値を超えたか否かを判定する。割合変更手段は、所定の閾値を超えたと判定手段によって判定された場合に、立体視割合を所定のオブジェクトの加速度に応じた値に変化させる。
【００２４】
この構成によれば、所定のオブジェクトの加速度が所定の閾値を超えることにより、立体視割合がそのオブジェクトの加速度に応じた値に変更される。これにより、所定のオブジェクトの加速度の変化をユーザに効果的に知らしめることができ、且つ所定のオブジェクトの立体感を加速度に応じた自然なものにすることが可能になる。なお、所定の閾値を超えるとは、所定の閾値を上回る場合と、所定の閾値を下回る場合との両方を含むものである。
【００２５】
割合変更手段は、仮想ステレオカメラの撮像方向における所定のオブジェクトの加速度が第１の閾値を上回った場合に、立体視割合を所定の基準割合よりも高い値に変化させることが好ましい。
【００２６】
この構成によれば、撮像方向における所定のオブジェクトの加速度が第１の閾値を上回ると、立体視割合が高くなる。これにより、例えば所定のオブジェクトに対して基準面が仮想ステレオカメラから離れる方向に移動する。その結果、所定のオブジェクトがより近くにいるかのようにユーザに感じさせることができ、所定のオブジェクトの加速度が大きくなったときの臨場感を効果的に表現することが可能になる。
【００２７】
割合変更手段は、仮想ステレオカメラの撮像方向における所定のオブジェクトの加速度が第２の閾値を下回った場合に、立体視割合を所定の基準割合よりも高い値に変化させることが好ましい。
【００２８】
この構成によれば、所定のオブジェクトの加速度が第２の閾値を下回ると、立体視割合が高くなる。これにより、例えば所定のオブジェクトに対して基準面が仮想ステレオカメラから離れる方向に移動する。その結果、所定のオブジェクトがより近くにいるかのようにユーザに感じさせることができ、所定のオブジェクトの加速度が小さくなったときの臨場感を効果的に表現することが可能になる。
【００２９】
オブジェクトパラメータは、所定のオブジェクトの大きさを示すパラメータであってもよい。この場合、判定手段は、所定のオブジェクトの大きさが変化したか否かを判定する。割合変更手段は、大きさが変化したと判定手段によって判定された場合に、立体視割合を所定のオブジェクトの大きさに応じた値に変化させる。
【００３０】
この構成によれば、立体視割合が、所定のオブジェクトの大きさに応じた値に変更される。すなわち、所定のオブジェクトが小さいときに第１設定値に維持されていた立体視割合が、所定のオブジェクトが大きくなることで第１設定値とは異なる第２設定値に変更される。これにより、所定のオブジェクトの大きさの変化をユーザに効果的に知らしめることができ、且つ所定のオブジェクトの立体感を大きさに応じた自然なものにすることが可能になる。
【００３１】
割合変更手段は、所定のオブジェクトが小さくなった場合に、立体視割合を所定の基準割合よりも高い値に変化させることが好ましい。
【００３２】
この構成によれば、所定のオブジェクトが小さくなると、立体視割合が高くなる。これにより、例えば所定のオブジェクトに対して基準面が仮想ステレオカメラから離れる方向に移動する。その結果、所定のオブジェクトがより近くにいるかのようにユーザに感じさせることができ、所定のオブジェクトが小さくなって周りのオブジェクトが大きく見えるような臨場感を効果的に表現することが可能になる。
【００３３】
オブジェクトパラメータは、仮想ステレオカメラの視点位置からの奥行き方向に垂直な所定の方向に沿った所定のオブジェクトの厚みを示すパラメータであってもよい。この場合、判定手段は、所定のオブジェクトの厚みが変化したか否かを判定する。割合変更手段は、厚みが変化したと判定手段によって判定された場合に、立体視割合を所定のオブジェクトの厚みに応じた値に変化させる。
【００３４】
この構成によれば、立体視割合が、所定のオブジェクトの厚みに応じた値に変更される。すなわち、所定のオブジェクトが厚いときに第１設定値に維持されていた立体視割合が、所定のオブジェクトが薄くなることで第１設定値とは異なる第２設定値に変更される。これにより、所定のオブジェクトの厚みの変化をユーザに効果的に知らしめることができ、且つ所定のオブジェクトの立体感を厚みに応じた自然なものにすることが可能になる。
【００３５】
割合変更手段は、所定のオブジェクトが薄くなった場合に、立体視割合を所定の基準割合よりも高い値に変化させることが好ましい。
【００３６】
この構成によれば、所定のオブジェクトが薄くなると、立体視割合が高くなる。これにより、例えば所定のオブジェクトに対して基準面が仮想ステレオカメラから離れる方向に移動する。その結果、所定のオブジェクトがより近くにいるかのようにユーザに感じさせることができ、所定のオブジェクトが薄くなったときの臨場感を効果的に表現することが可能になる。
【００３７】
割合変更手段は、立体視割合を変化させる際に、オブジェクト距離を一時的に維持してもよい。
【００３８】
この構成によれば、立体視割合を変化させる際に、オブジェクト距離が一時的に維持された状態で立体視基準距離だけが変化する。このため、立体視画像を見ているユーザが所定のオブジェクトを見失うことなく、オブジェクトパラメータが変化してオブジェクトの状態が変わったことをユーザに効果的に知らしめることが可能になる。
【００３９】
割合変更手段は、立体視割合を変化させる際に、その立体視割合を変化したオブジェクトパラメータに応じた値とは異なる値に変化させてから、オブジェクトパラメータに応じた値に変化させてもよい。
【００４０】
この構成によれば、立体視割合の変化により、立体視割合を単純に変化させる場合に比べて、オブジェクトパラメータが変化したことが視覚的に強調される。このため、オブジェクトパラメータが変化してオブジェクトの状態が変わったことをユーザにより効果的に知らしめることが可能になる。
【００４１】
割合変更手段は、立体視割合を徐々に変化させてもよい。
【００４２】
この構成によれば、所定のオブジェクトの状態変化に伴い、立体視割合が徐々に変化するので、所定のオブジェクトの状態が変化する様子を自然に表現することが可能になる。
【００４３】
仮想ステレオカメラは、左目用画像を撮像する左目用カメラと、右目用画像を撮像する右目用カメラとから構成されている。この場合、仮想ステレオカメラの視点位置は、左目用カメラと右目用カメラとの間のいずれかの位置である。
【００４４】
この構成によれば、仮想３次元空間における左目用カメラの位置座標と右目用カメラの位置座標とに基づいて、仮想ステレオカメラの視点位置の位置座標が容易に算出される。
【００４５】
仮想ステレオカメラの視点位置は、左目用カメラと右目用カメラとを結ぶ線分の中点の位置であってもよい。
【００４６】
この構成によれば、仮想３次元空間における左目用カメラの位置座標と右目用カメラの位置座標とに基づいて、仮想ステレオカメラの視点位置の位置座標が容易に算出される。
【００４７】
仮想ステレオカメラの視点位置は、左目用カメラの位置および右目用カメラの位置の間の位置であってもよい。
【００４８】
この構成によれば、仮想３次元空間における左目用カメラの位置座標と右目用カメラの位置座標とに基づいて、仮想ステレオカメラの視点位置の位置座標が更に容易に算出される。
【００４９】
表示制御プログラムは、コンピュータを、ユーザによって操作される入力手段からの入力を受け付ける入力受付手段として更に機能させてもよい。オブジェクトパラメータは、この入力受付手段によって受け付けられた入力に応じて変化する。
【００５０】
所定のオブジェクトは、ユーザによって操作される操作対象オブジェクトである。上記構成によれば、ユーザの操作によって操作対象オブジェクトの状態（オブジェクトパラメータ）が変化するので、ユーザの操作に伴う操作対象オブジェクトの状態変化を効果的に表現することが可能になる。
【００５１】
本発明は、所定のオブジェクトを配置した仮想３次元空間を仮想ステレオカメラで撮像して表示装置に立体視表示させる表示制御装置として捉えることもできる。この表示制御装置は、立体視割合設定手段、カメラパラメータ設定手段、画像生成手段、及び表示制御手段を備える。立体視割合設定手段は、所定のオブジェクトに関するパラメータであるオブジェクトパラメータに応じて、オブジェクト距離と立体視基準距離の割合である立体視割合を設定する。ここで、オブジェクト距離は、仮想ステレオカメラの視点位置から所定のオブジェクトまでの距離である。立体視基準距離は、仮想ステレオカメラの視点位置から仮想ステレオカメラで仮想３次元空間を撮像した際に視差が生じない位置である基準面までの距離である。カメラパラメータ設定手段は、設定された立体視割合に基づいて、仮想ステレオカメラに関するパラメータであるカメラパラメータを設定する。画像生成手段は、カメラパラメータ設定手段によって設定されたカメラパラメータに基づいて、仮想ステレオカメラで仮想３次元空間を撮像した立体視画像を生成する。表示制御手段は、画像生成手段によって生成された立体視画像を表示装置に表示させる。
【００５２】
また、本発明は、所定のオブジェクトを配置した仮想３次元空間を仮想ステレオカメラで撮像して表示装置に立体視表示させる表示制御システムとして捉えることもできる。この表示制御システムは、立体視割合設定手段、カメラパラメータ設定手段、画像生成手段、及び表示制御手段を備える。立体視割合設定手段は、所定のオブジェクトに関するパラメータであるオブジェクトパラメータに応じて、オブジェクト距離と立体視基準距離の割合である立体視割合を設定する。ここで、オブジェクト距離は、仮想ステレオカメラの視点位置から所定のオブジェクトまでの距離である。立体視基準距離は、仮想ステレオカメラの視点位置から仮想ステレオカメラで仮想３次元空間を撮像した際に視差が生じない位置である基準面までの距離である。カメラパラメータ設定手段は、設定された立体視割合に基づいて、仮想ステレオカメラに関するパラメータであるカメラパラメータを設定する。画像生成手段は、カメラパラメータ設定手段によって設定されたカメラパラメータに基づいて、仮想ステレオカメラで仮想３次元空間を撮像した立体視画像を生成する。表示制御手段は、画像生成手段によって生成された立体視画像を表示装置に表示させる。
【００５３】
また、本発明は、所定のオブジェクトを配置した仮想３次元空間を仮想ステレオカメラで撮像して表示装置に立体視表示させる表示制御方法として捉えることもできる。この表示制御方法では、まず、所定のオブジェクトに関するパラメータであるオブジェクトパラメータに応じて、オブジェクト距離と立体視基準距離の割合である立体視割合が設定される。ここで、オブジェクト距離は、仮想ステレオカメラの視点位置から所定のオブジェクトまでの距離である。立体視基準距離は、仮想ステレオカメラの視点位置から仮想ステレオカメラで仮想３次元空間を撮像した際に視差が生じない位置である基準面までの距離である。次に、設定された立体視割合に基づいて、仮想ステレオカメラに関するパラメータであるカメラパラメータが設定される。続いて、設定されたカメラパラメータに基づいて、仮想ステレオカメラで仮想３次元空間を撮像した立体視画像が生成される。そして、生成された立体視画像が表示装置に表示される。
【発明の効果】
【００５４】
この発明によれば、オブジェクト距離に対する立体視基準距離の割合である立体視割合に基づいて設定されたカメラパラメータで仮想ステレオカメラにより撮像された仮想３次元空間の立体視画像が表示装置に表示される。その際、外部から入力されたデータではなく、仮想３次元空間内の状況を表す２つの距離の割合に基づいてカメラパラメータが設定されるので、仮想３次元空間におけるオブジェクトの状態に応じた適切な臨場感を自然に表現することができる。
【図面の簡単な説明】
【００５５】
【図１】開状態におけるゲーム装置１０の正面図
【図２Ａ】閉状態におけるゲーム装置１０の左側面図
【図２Ｂ】閉状態におけるゲーム装置１０の正面図
【図２Ｃ】閉状態におけるゲーム装置１０の右側面図
【図２Ｄ】閉状態におけるゲーム装置１０の背面図
【図３】ゲーム装置１０の内部構成を示すブロック図
【図４】プレイヤオブジェクト５０が走行する様子を示す図
【図５】プレイヤオブジェクト５０が急加速する様子を示す図
【図６】プレイヤオブジェクト５０が雷に打たれて小さくなった状態を示す図
【図７】プレイヤオブジェクト５０に重りが落下してプレイヤオブジェクト５０が薄くなる様子を示す図
【図８】設定割合ｄ２／ｄ１が基準割合に設定されている場合の仮想３次元空間を模式的に示す説明図
【図９】設定割合ｄ２／ｄ１が低めに設定されている場合の仮想３次元空間を模式的に示す説明図
【図１０】設定割合ｄ２／ｄ１が高めに設定されている場合の仮想３次元空間を模式的に示す説明図
【図１１】メインメモリ３２のメモリマップ
【図１２】ゲーム装置１０で実行されるメイン処理の一例を示すフローチャート
【図１３】図１２のステップＳ４におけるカメラ制御処理の詳細フローチャート
【図１４】オブジェクト距離ｄ１が維持された状態で立体視基準距離ｄ２が高めに設定された場合の仮想３次元空間を模式的に示す説明図
【図１５】図１２のステップＳ４におけるカメラ制御処理の詳細フローチャート
【図１６】図１２のステップＳ４におけるカメラ制御処理の詳細フローチャート
【発明を実施するための形態】
【００５６】
［第１の実施形態］
以下、適宜図面を参照しつつ、本発明の第１の実施形態について説明する。
【００５７】
［ゲーム装置１０の構成］
まず、本発明の表示制御装置の一実施形態に係るゲーム装置１０について説明する。ゲーム装置１０は携帯型のゲーム装置である。図１および図２Ａ〜Ｄに示されるように、ゲーム装置１０は、下側ハウジング１１および上側ハウジング２１を有する。下側ハウジング１１と上側ハウジング２１とは、開閉可能（折り畳み可能）に接続されている。
【００５８】
［下側ハウジング１１の説明］
図１および図２Ａ〜Ｄに示すように、下側ハウジング１１には、下側ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）１２、タッチパネル１３、各操作ボタン１４Ａ〜１４Ｌ、アナログスティック１５、ＬＥＤ１６Ａ〜１６Ｂ、挿入口１７、および、マイクロフォン用孔１８が設けられる。
【００５９】
タッチパネル１３は、下側ＬＣＤ１２の画面上に装着されている。下側ハウジング１１の上側面には、タッチペン２８を収納するための挿入口１７（図１および図２Ｄに示す点線）が設けられている。
【００６０】
下側ハウジング１１の内側面（主面）には、十字ボタン１４Ａ（方向入力ボタン１４Ａ）、ボタン１４Ｂ、ボタン１４Ｃ、ボタン１４Ｄ、ボタン１４Ｅ、電源ボタン１４Ｆ、セレクトボタン１４Ｊ、ＨＯＭＥボタン１４Ｋ、およびスタートボタン１４Ｌが、設けられる。
【００６１】
アナログスティック１５は、方向を指示するデバイスである。
【００６２】
下側ハウジング１１の内側面には、マイクロフォン用孔１８が設けられる。マイクロフォン用孔１８の下部には後述する音声入力装置としてのマイク４２（図３参照）が設けられる。
【００６３】
図２ＢおよびＤに示されるように、下側ハウジング１１の上側面には、Ｌボタン１４ＧおよびＲボタン１４Ｈが設けられている。また、図２Ａに示されるように、下側ハウジング１１の左側面には、ゲーム装置１０が備えるスピーカ４３（図３参照）の音量を調整するための音量ボタン１４Ｉが設けられる。
【００６４】
図２Ａに示されるように、下側ハウジング１１の左側面には開閉可能なカバー部１１Ｃが設けられる。このカバー部１１Ｃの内側には、ゲーム装置１０とデータ保存用外部メモリ４５とを電気的に接続するためのコネクタが設けられる。
【００６５】
図２Ｄに示されるように、下側ハウジング１１の上側面には、外部メモリ４４を挿入するための挿入口１１Ｄが設けられる。
【００６６】
図１および図２Ｃに示されるように、下側ハウジング１１の下側面にはゲーム装置１０の電源のＯＮ／ＯＦＦ状況をユーザに通知する第１ＬＥＤ１６Ａ、下側ハウジング１１の右側面にはゲーム装置１０の無線通信の確立状況をユーザに通知する第２ＬＥＤ１６Ｂが設けられる。ゲーム装置１０は他の機器との間で無線通信を行うことが可能であり、下側ハウジング１１の右側面には、この無線通信の機能を有効／無効にする無線スイッチ１９が設けられる（図２Ｃ参照）。
【００６７】
［上側ハウジング２１の説明］
図１および図２に示すように、上側ハウジング２１には、上側ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）２２、外側撮像部２３（外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂ）、内側撮像部２４、３Ｄ調整スイッチ２５、および、３Ｄインジケータ２６が設けられる。
【００６８】
上側ＬＣＤ２２は、立体視可能な画像を表示することが可能な表示装置である。具体的には、パララックスバリア方式の裸眼立体視可能な表示装置である。上側ＬＣＤ２２は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像を視認させることにより、ユーザにとって立体感のある画像（立体視画像）を表示することができる。また、上側ＬＣＤ２２は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる。このように、上側ＬＣＤ２２は、立体視画像を表示する立体表示モードと、画像を平面的に表示する（平面視画像を表示する）平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、例えば、後述する３Ｄ調整スイッチ２５によって行われる。
【００６９】
外側撮像部２３は、上側ハウジング２１の外側面２１Ｄに設けられた２つの撮像部（２３ａおよび２３ｂ）の総称である。外側撮像部（左）２３ａと外側撮像部（右）２３ｂとは、ゲーム装置１０が実行するプログラムによって、ステレオカメラとして使用することが可能である。
【００７０】
内側撮像部２４は、上側ハウジング２１の内側面２１Ｂに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。
【００７１】
３Ｄ調整スイッチ２５は、スライドスイッチであり、上述のように上側ＬＣＤ２２の表示モードを切り替えるために用いられるスイッチである。また、３Ｄ調整スイッチ２５は、上側ＬＣＤ２２に表示された立体視可能な画像（立体画像）の立体感を調整するために用いられる。３Ｄ調整スイッチ２５のスライダ２５ａは、所定方向（上下方向）の任意の位置にスライド可能であり、当該スライダ２５ａの位置に応じて上側ＬＣＤ２２の表示モードが設定される。また、スライダ２５ａの位置に応じて、立体画像の見え方が調整される。
【００７２】
３Ｄインジケータ２６は、上側ＬＣＤ２２が立体表示モードか否かを示すＬＥＤである。
【００７３】
また、上側ハウジング２１の内側面には、スピーカ孔２１Ｅが設けられる。後述するスピーカ４３からの音声がこのスピーカ孔２１Ｅから出力される。
【００７４】
［ゲーム装置１０の内部構成］
次に、図３を参照して、ゲーム装置１０の内部の電気的構成について説明する。図３に示すように、ゲーム装置１０は、上述した各部に加えて、情報処理部３１、メインメモリ３２、外部メモリインターフェイス（外部メモリＩ／Ｆ）３３、データ保存用外部メモリＩ／Ｆ３４、データ保存用内部メモリ３５、無線通信モジュール３６、ローカル通信モジュール３７、リアルタイムクロック（ＲＴＣ）３８、加速度センサ３９、電源回路４０、およびインターフェイス回路（Ｉ／Ｆ回路）４１等の電子部品を備えている。
【００７５】
情報処理部３１は、所定のプログラムを実行するためのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１１、画像処理を行うＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１２、ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）３１３を含む。ＣＰＵ３１１は、ゲーム装置１０内のメモリ（例えば外部メモリＩ／Ｆ３３に接続された外部メモリ４４やデータ保存用内部メモリ３５）に記憶されているプログラムを実行することによって、当該プログラムに応じた処理を実行する。なお、ＣＰＵ３１１によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。ＧＰＵ３１２は、ＣＰＵ３１１からの命令に応じて画像を生成し、ＶＲＡＭ３１３に描画する。ＶＲＡＭ３１３に描画された画像は、上側ＬＣＤ２２及び／又は下側ＬＣＤ１２に出力され、上側ＬＣＤ２２及び／又は下側ＬＣＤ１２に当該画像が表示される。
【００７６】
外部メモリＩ／Ｆ３３は、外部メモリ４４を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリＩ／Ｆ３４は、データ保存用外部メモリ４５を着脱自在に接続するためのインターフェイスである。
【００７７】
メインメモリ３２は、情報処理部３１（のＣＰＵ３１１）のワーク領域やバッファ領域として用いられる揮発性の記憶装置である。
【００７８】
外部メモリ４４は、情報処理部３１によって実行されるプログラム等を記憶するための不揮発性の記憶装置である。外部メモリ４４は、例えば読み取り専用の半導体メモリで構成される。
【００７９】
データ保存用外部メモリ４５は、不揮発性の読み書き可能なメモリ（例えばＮＡＮＤ型フラッシュメモリ）で構成され、任意のデータを保存するために用いられる。
【００８０】
データ保存用内部メモリ３５は、読み書き可能な不揮発性メモリ（例えばＮＡＮＤ型フラッシュメモリ）で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ３５には、無線通信モジュール３６を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【００８１】
無線通信モジュール３６は、例えばＩＥＥＥ８０２．１１ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。また、ローカル通信モジュール３７は、所定の通信方式（例えば独自プロトコルによる通信や、赤外線通信）により同種のゲーム装置との間で無線通信を行う機能を有する。
【００８２】
加速度センサ３９は、３軸（ｘｙｚ軸）方向に沿った直線方向の加速度（直線加速度）の大きさを検出する。情報処理部３１は、加速度センサ３９が検出した加速度を示すデータ（加速度データ）を受信して、ゲーム装置１０の姿勢や動きを検出することができる。
【００８３】
ＲＴＣ３８は、時間をカウントして情報処理部３１に出力する。情報処理部３１は、ＲＴＣ３８によって計時された時間に基づき現在時刻（日付）を計算する。電源回路４０は、ゲーム装置１０が有する電源（充電式電池）からの電力を制御し、ゲーム装置１０の各部品に電力を供給する。
【００８４】
Ｉ／Ｆ回路４１には、タッチパネル１３、マイク４２およびスピーカ４３が接続される。Ｉ／Ｆ回路４１は、マイク４２およびスピーカ４３（アンプ）の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するＡ／Ｄ変換およびＤ／Ａ変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル１３からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部３１に出力する。情報処理部３１は、タッチ位置データを取得することにより、タッチパネル１３に対して入力が行われた位置を知ることができる。
【００８５】
操作ボタン１４は、上記各操作ボタン１４Ａ〜１４Ｌからなり、操作ボタン１４から情報処理部３１へは、各操作ボタン１４Ａ〜１４Ｉに対する入力状況（押下されたか否か）を示す操作データが出力される。
【００８６】
下側ＬＣＤ１２および上側ＬＣＤ２２は情報処理部３１に接続される。具体的には、情報処理部３１は、上側ＬＣＤ２２のＬＣＤコントローラ（図示せず）と接続され、当該ＬＣＤコントローラに対して視差バリアのＯＮ／ＯＦＦを制御する。上側ＬＣＤ２２の視差バリアがＯＮになっている場合、情報処理部３１のＶＲＡＭ３１３に格納された右目用画像と左目用画像とが、上側ＬＣＤ２２に出力される。より具体的には、ＬＣＤコントローラは、右目用画像について縦方向に１ライン分の画素データを読み出す処理と、左目用画像について縦方向に１ライン分の画素データを読み出す処理とを交互に繰り返すことによって、ＶＲＡＭ３１３から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に１ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側ＬＣＤ２２の画面に表示される。そして、上側ＬＣＤ２２の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側ＬＣＤ２２の画面には立体視可能な画像が表示される。
【００８７】
外側撮像部２３および内側撮像部２４は、情報処理部３１の指示に従って画像を撮像し、撮像した画像データを情報処理部３１に出力する。
【００８８】
３Ｄ調整スイッチ２５は、スライダ２５ａの位置に応じた電気信号を情報処理部３１に送信する。
【００８９】
情報処理部３１は、３Ｄインジケータ２６の点灯を制御する。例えば、情報処理部３１は、上側ＬＣＤ２２が立体表示モードである場合、３Ｄインジケータ２６を点灯させる。
【００９０】
なお、上述したハードウェア構成は単なる一例に過ぎず、ゲーム装置１０の構成は適宜変更可能である。
【００９１】
［ゲームの概要］
次に、図４〜図７を参照しつつ、ゲーム装置１０のＣＰＵ３１１が表示制御プログラムを実行することによって進行するゲームの概要について説明する。ここで、図４は、プレイヤオブジェクト５０が走行する様子を示す図である。図５は、プレイヤオブジェクト５０が急加速する様子を示す図である。図６は、プレイヤオブジェクト５０が雷に打たれて小さくなった状態を示す図である。図７は、プレイヤオブジェクト５０に重りが落下してプレイヤオブジェクト５０が薄くなる様子を示す図である。
【００９２】
本実施形態において実行されるゲームは、仮想３次元空間内（仮想ゲーム空間内）に配置されたプレイヤオブジェクト５０（所定のオブジェクトの一例）をユーザ（プレイヤ）が操作して着順を競うレースゲームである。このプレイヤオブジェクト５０は、プレイヤによって操作される操作対象オブジェクトであって、カート５１と、カート５１を操縦するプレイヤキャラクタ５２とから構成されている。
【００９３】
また、プレイヤは、十字ボタン１４Ａ、ボタン１４Ｂ、ボタン１４Ｃ、及びボタン１４Ｅを操作することによって、プレイヤオブジェクト５０の動きをコントロールすることができる。プレイヤが十字ボタン１４Ａを操作すると、プレイヤオブジェクト５０の進行方向が変化する。
【００９４】
プレイヤがボタン１４Ｂを押下すると、プレイヤオブジェクト５０が通常速度まで順次加速した後、プレイヤオブジェクト５０の移動速度が通常速度で一定となる。すなわち、ボタン１４Ｂは、本実施形態ではアクセルボタンとして機能する。
【００９５】
プレイヤがボタン１４Ｃを押下すると、プレイヤオブジェクト５０が順次減速する。すなわち、ボタン１４Ｃは、本実施形態ではブレーキボタンとして機能する。なお、プレイヤがボタン１４Ｂ、ボタン１４Ｃ、及びボタン１４Ｅをいずれも押下していない場合にもプレイヤオブジェクト５０は減速するが、ボタン１４Ｃを押下した時の方が、プレイヤオブジェクト５０が減速する速度の変化量が大きい。
【００９６】
プレイヤがボタン１４Ｅを押下すると、プレイヤオブジェクト５０を急加速させるためのアイテムを利用することができる。このため、ボタン１４Ｅが押下されると、押下された時点の速度から上述した通常速度以上の上限速度までプレイヤオブジェクト５０が急加速（ボタン１４Ｂを押下した時の加速度以上の加速）する。すなわち、ボタン１４Ｅは、本実施形態では、急加速ボタン（アイテム利用ボタン）として機能する。
【００９７】
なお、ここで説明した各ボタン１４に対する機能の割り当ては一例であって、ここで説明したプレイヤオブジェクト５０の各動作は、別のボタンの操作によって実現されてもよい。
【００９８】
本実施形態におけるレースゲームでは、プレイヤの操作、プレイヤオブジェクト５０と着順を競う別のカートに乗った敵キャラクタによるアイテムの使用、或いはその他のオブジェクトの変化等により、プレイヤオブジェクト５０の状態が変化する場合がある。すなわち、例えば、プレイヤがボタン１４Ｅを押下することによって、プレイヤオブジェクト５０が急加速している状態（図４及び図５参照）となる。また、プレイヤがボタン１４Ｃを押下することによって、プレイヤキャラクタ５２がブレーキを踏んでプレイヤオブジェクト５０が減速する。また、プレイヤオブジェクト５０が例えば障害物（壁など）に衝突すると、プレイヤオブジェクト５０が急減速（ボタン１４Ｃを押下した時の減速度以上の減速）する。また、例えば敵キャラクタが雷を落とすためのアイテムを使用すると、プレイヤオブジェクト５０が雷に打たれて小さくなり（図６参照）、アイテムの使用から一定時間（例えば１０秒）が経過すると、プレイヤオブジェクト５０が元の大きさに戻る（図４参照）。また、仮想３次元空間には所定の時間間隔で上がり下がりを繰り返す重りのオブジェクト（以下単に「重り」という。）が配置されており、プレイヤオブジェクト５０は、その重りに潰されると薄くなる（図７参照）。そして、重りに潰されてから一定時間（例えば５秒）が経過すると、プレイヤオブジェクト５０は、元の厚みに戻る（図４参照）。本実施形態におけるゲーム装置１０では、このようなプレイヤオブジェクト５０の状態変化をプレイヤに効果的に知らしめるために、以下に説明するオブジェクト距離ｄ１と立体視基準距離ｄ２を制御する処理が行われる。
【００９９】
［立体視割合ｄ２／ｄ１の説明］
以下、図８〜図１０を参照しつつ、立体視割合ｄ２／ｄ１について説明する。ここで、図８は、仮想３次元空間を模式的に示す説明図であり、設定割合ｄ２／ｄ１が基準割合に設定された状態を示す。図９は、仮想３次元空間を模式的に示す説明図であり、設定割合ｄ２／ｄ１が低めに設定された状態を示す。図１０は、仮想３次元空間を模式的に示す説明図であり、設定割合ｄ２／ｄ１が高めに設定された状態を示す。
【０１００】
図８〜図１０に示されるように、仮想３次元空間には、仮想ステレオカメラ５３、及び仮想ステレオカメラ５３によって撮像されるプレイヤオブジェクト５０が配置されている。仮想ステレオカメラ５３は、プレイヤの左目に視認される左目用画像を撮像する左目用カメラ５３Ａと、プレイヤの右目に視認される右目用画像を撮像する右目用カメラ５３Ｂとから構成されている。図８〜図１０において、左目用カメラ５３Ａ及び右目用カメラ５３Ｂのそれぞれから延びる２本の直線により、各仮想カメラ５３Ａ，５３Ｂの撮像範囲（画角）が示されている。ゲーム装置１０では、情報処理部３１によって表示制御プログラム３２２（図１１参照）が実行されることにより、仮想３次元空間を仮想ステレオカメラ５３（左目用カメラ５３Ａ及び右目用カメラ５３Ｂ）で撮像した左目用画像及び右目用画像が生成されて、立体視画像として上側ＬＣＤ２２に立体視表示される。
【０１０１】
このようにして仮想ステレオカメラ５３によって撮像される仮想３次元空間に対して、図８〜図１０に示されるように、基準面（視差ゼロ面）が設定されている。ここで、基準面は、仮想ステレオカメラ５３で仮想３次元空間を撮像した際に視差が生じない位置である。ゲーム装置１０では、この基準面が上側ＬＣＤ２２の表面に位置するように制御が行われる。このため、この基準面上に位置しているオブジェクトは上側ＬＣＤ２２の画面上に再生される。また、基準面の手前（基準面に対して仮想ステレオカメラ５３側）に位置しているオブジェクトは上側ＬＣＤ２２の画面に対して手前の位置に再生され、基準面の奥に位置しているオブジェクトは上側ＬＣＤ２２の画面に対して奥の位置に再生される。
【０１０２】
このように、オブジェクトと基準面との位置関係によって、上側ＬＣＤ２２に表示される立体視画像の見え方（立体感）が変化する。逆に言えば、左目用カメラ５３Ａと右目用カメラ５３Ｂとの距離、左目用カメラ５３Ａ及び右目用カメラ５３Ｂの画角（２本の直線がなす角度）等のカメラパラメータや、仮想ステレオカメラ５３からオブジェクトまでの距離が変化しても、立体視割合ｄ２／ｄ１が一定であれば、そのオブジェクトの立体感は維持される。つまり、立体視割合ｄ２／ｄ１が変化しなければ、オブジェクトの立体感はプレイヤにとって同じように感じられる。ここで、オブジェクト距離ｄ１は、仮想ステレオカメラ５３の撮像方向５４における仮想ステレオカメラ５３の視点位置（ここでは左目用カメラ５３Ａの視点位置と右目用カメラ５３Ｂの視点位置の中点）からプレイヤオブジェクト５０までの距離である。立体視基準距離ｄ２は、仮想ステレオカメラ５３の撮像方向５４における仮想ステレオカメラ５３の視点位置から基準面までの距離である。なお、仮想ステレオカメラ５３の視点位置は、左目用カメラ５３Ａの視点位置と右目用カメラ５３Ｂの視点位置の間のいずれかの位置であれば、これらの視点位置の中点に限定されるものではない。
【０１０３】
本実施形態におけるゲーム装置１０では、プレイヤオブジェクト５０の状態に応じた適切な臨場感を自然に表現することを目的として、仮想ステレオカメラ５３のカメラパラメータを設定する際に、上述した立体視割合ｄ２／ｄ１をプレイヤオブジェクト５０の状況に基づいて制御することとしている。
【０１０４】
図８に例示されるように立体視割合ｄ２／ｄ１を基準割合（例えば「０．９」）に設定すると、プレイヤオブジェクト５０が上側ＬＣＤ２２の画面から若干奥の位置に再生される。すなわち、プレイヤオブジェクト５０が上側ＬＣＤ２２の画面から少し引っ込んで見える。
【０１０５】
また、図９に例示されるように立体視割合ｄ２／ｄ１を小さめの値（例えば「０．６」）に設定すると、オブジェクト距離ｄ１に対して立体視基準距離ｄ２が小さいので、立体視割合ｄ２／ｄ１が基準割合に設定されている場合に比べて、プレイヤオブジェクト５０が上側ＬＣＤ２２の画面から更に奥の位置に再生される。このため、プレイヤは、プレイヤオブジェクト５０を少し離れた位置（遠く）から俯瞰するように見ることができる。
【０１０６】
図１０に例示されるように立体視割合ｄ２／ｄ１を大きめの値（例えば「１．２」）に設定すると、オブジェクト距離ｄ１に対して立体視基準距離ｄ２が大きいので、プレイヤオブジェクト５０が上側ＬＣＤ２２の画面の手前に再生される。このため、プレイヤは、プレイヤオブジェクト５０が目の前に位置しているかのような臨場感を感じながらプレイヤオブジェクト５０を近くで見ることができる。後に詳述するが、本実施形態におけるゲーム装置１０では、このような立体視割合ｄ２／ｄ１が、プレイヤオブジェクト５０の状態（プレイヤオブジェクト５０の移動速度、加速度、大きさ、厚み等）に基づいて制御される。
【０１０７】
［メモリマップ］
以下、図１１を参照しつつ、メインメモリ３２に記憶されるデータについて説明する。ここで、図１１は、メインメモリ３２のメモリマップである。図１１に例示されるように、メインメモリ３２は、プログラム記憶領域３２１及びデータ記憶領域３２３を有している。プログラム記憶領域３２１には、ＣＰＵ３１１によって実行されるプログラムが記憶される。データ記憶領域３２３には、仮想３次元空間を仮想ステレオカメラ５３で撮像して上側ＬＣＤ２２に表示させるための処理に必要な各種データが記憶される。プログラム記憶領域３２１内のプログラム、及びデータ記憶領域３２３内のデータの一部は、外部メモリ４４に予め記憶されたデータが、仮想ステレオカメラ５３による仮想３次元空間の撮像に際してメインメモリ３２に読み出されたものである。
【０１０８】
プログラム記憶領域３２１には、表示制御プログラム３２２等が記憶されている。表示制御プログラム３２２は、図１２以降のフローチャートに示されている一連の処理を情報処理部３１に実行させるためのプログラムである。
【０１０９】
データ記憶領域３２３には、操作データ３２４、プレイヤオブジェクトデータ３２５、ノンプレイヤオブジェクトデータ３２６、閾値データ３２７、割合データ３２８、基準割合データ３２９、設定割合データ３３０、カメラパラメータデータ３３１、左目用画像データ３３２、右目用画像データ３３３等が記憶される。
【０１１０】
操作データ３２４は、各操作ボタン１４Ａ〜Ｅ、Ｇ〜Ｈ、アナログスティック１５及びタッチパネル１３に対して行われたユーザの操作を示すデータである。
【０１１１】
プレイヤオブジェクトデータ３２５は、プレイヤオブジェクト５０に関するオブジェクトパラメータを示すデータであって、プレイヤオブジェクト５０の向きや形状（ポリゴン形状）、色彩（テクスチャ）を示すデータの他に、位置座標データ３２５１、加速度データ３２５２、移動速度データ３２５３、サイズデータ３２５４、厚みデータ３２５５等から構成されている。位置座標データ３２５１は、仮想３次元空間におけるプレイヤオブジェクト５０の位置座標を示すデータである。加速度データ３２５２は、プレイヤオブジェクト５０の加速度又は減速度を示すパラメータのデータである。言い換えれば、加速度データ３２５２は、プレイヤオブジェクト５０が急加速又は急減速する際にプレイヤオブジェクト５０に生じる加速度を示すパラメータのデータである。この加速度データ３２５２は、プレイヤオブジェクト５０が急加速中のときはプレイヤオブジェクト５０の加速度を示し、プレイヤオブジェクト５０が急減速中のときはプレイヤオブジェクト５０の減速度を示す。移動速度データ３２５３は、プレイヤオブジェクト５０の移動速度を示すパラメータのデータである。サイズデータ３２５４は、プレイヤオブジェクト５０の大きさを示すパラメータのデータである。厚みデータ３２５５は、プレイヤオブジェクト５０の厚みを示すパラメータのデータである。
【０１１２】
ノンプレイヤオブジェクトデータ３２６は、仮想３次元空間におけるノンプレイヤオブジェクトの位置、向き、形状（ポリゴン形状）、色彩（テクスチャ）等を示すデータである。なお、ノンプレイヤオブジェクトは、プレイヤオブジェクト５０と着順を競う他のカート、地形オブジェクト、背景オブジェクト等である。
【０１１３】
閾値データ３２７は、各種判定処理に使用される閾値を示すデータである。具体的には、ボタン１４Ｅの押下によりプレイヤオブジェクト５０が急加速したか否かを判定するための閾値、プレイヤオブジェクト５０が例えば障害物に衝突して急減速したか否かを判定するための閾値、プレイヤオブジェクト５０の移動速度が変化したか否かを判定するための閾値等である。
【０１１４】
割合データ３２８は、現時点のオブジェクト距離ｄ１と、現時点の立体視基準距離ｄ２と、これらのオブジェクト距離ｄ１及び立体視基準距離ｄ２に基づいて算出された立体視割合ｄ２／ｄ１とを示すデータである。基準割合データ３２９は、プレイヤオブジェクト５０の状態が通常の状態から変化していない場合に設定される立体視割合ｄ２／ｄ１の基準割合を示すデータである。
【０１１５】
設定割合データ３３０は、プレイヤオブジェクト５０の状態に対して立体視割合ｄ２／ｄ１の最適な設定割合を示すデータである。後に詳述するが、プレイヤオブジェクト５０の状態が変化しない場合、設定割合データ３３０が示す設定割合が、基準割合データ３２９が示す基準割合（例えば「０．９」）に設定される。このように、設定割合データ３３０が基準割合に設定されると、割合データ３２８が示す立体視割合ｄ２／ｄ１が、設定割合データ３３０が示す基準割合を維持するように、オブジェクト距離ｄ１及び立体視基準距離ｄ２の両方又は一方が制御される。これに対して、プレイヤオブジェクト５０の状態が変化すると、状態変化後のプレイヤオブジェクト５０の状態に応じて、設定割合データ３３０が示す設定割合が低めの値（例えば「０．６」）又は高めの値（例えば「１．２」）に設定される。このように設定割合データ３３０が設定されると、割合データ３２８が示す立体視割合ｄ２／ｄ１が設定割合データ３３０が示す状態変化後の設定割合の値に徐々に近付いて収束するように、オブジェクト距離ｄ１及び立体視基準距離ｄ２の両方又は一方が制御される。
【０１１６】
なお、設定割合として設定される低めの値及び高めの値は、基準割合データ３２９が示す基準割合と同様に予め定められたものである。また、図には示されていないが、低めの値及び高めの値を示すデータは、基準割合データ３２９と同様に、データ記憶領域３２３に格納されている。そして、必要に応じて、設定割合データ３３０が示す設定割合に設定される。ただし、設定割合の高めの値及び低めの値は、必ずしもデータ記憶領域３２３に予め格納されている必要はなく、例えば、基準割合データ３２９を用いた表示制御プログラム３２２に基づく演算処理を行うことにより、設定割合を設定する毎に算出するようにしてもよい。
【０１１７】
また、後に詳述するが、立体視割合ｄ２／ｄ１を決定するオブジェクト距離ｄ１と立体視基準距離ｄ２のうち、オブジェクト距離ｄ１を一定に維持したまま立体視基準距離ｄ２だけを変化させるといった制御が行われる場合がある。このような場合、ＣＰＵ３１１は、設定割合ｄ２／ｄ１の値を示すデータに加えて、オブジェクト距離ｄ１を示すデータ、及び立体視基準距離ｄ２を示すデータを設定割合データ３３０としてデータ記憶領域３２３に格納する。その際、ＣＰＵ３１１は、割合データ３２８が示す現時点のオブジェクト距離ｄ１を設定割合データ３３０のオブジェクト距離ｄ１に設定すると共に、設定割合データ３３０の立体視基準距離ｄ２を例えば予め定められた高めの値に設定する。このような設定が行われた場合、割合データ３２８が示すオブジェクト距離ｄ１と、設定割合データ３３０が示すオブジェクト距離ｄ１とが同じ値となるので、ＣＰＵ３１１は、割合データ３２８が示す現在の立体視基準距離ｄ２が設定割合データ３３０が示す立体視基準距離ｄ２に収束するように、立体視基準距離ｄ２を変化させる。
【０１１８】
カメラパラメータデータ３３１は、左目用カメラ５３Ａ及び右目用カメラ５３Ｂのそれぞれの仮想カメラの仮想３次元空間における視点位置、両仮想カメラの距離、撮像方向、画角等のカメラパラメータを示すデータである。このカメラパラメータデータ３３１は、割合データ３２８が示す立体視割合ｄ２／ｄ１に基づいて設定される。
【０１１９】
左目用画像データ３３２及び右目用画像データ３３３は、仮想ステレオカメラ５３による撮像で得られた左目用画像と右目用画像のデータであり、撮像が行われる毎に上側ＬＣＤ２２に出力される。
【０１２０】
なお、図には示されていないが、データ記憶領域３２３には、実カメラである外側撮像部２３又は内側撮像部２４による撮像で得られた画像データ等も記憶されるが、これらのデータは本発明とは直接関係しないので、ここでの詳細な説明は省略する。
【０１２１】
［メイン処理の説明］
次に、図１２を参照しつつ、ゲーム装置１０によって実行されるメイン処理について説明する。ここで、図１２は、ゲーム装置１０で実行されるメイン処理の一例を示すフローチャートである。まず、ＣＰＵ３１１は、以降の処理において用いられるデータの初期化処理を実行する（ステップＳ１）。具体的には、ＣＰＵ３１１は、以降の処理に使用されるデータ記憶領域３２３内の各種変数やフラグ等を初期化する。そして、ＣＰＵ３１１は、プレイヤオブジェクト５０、敵キャラクタが操縦するカートや地形オブジェクト等のノンプレイヤオブジェクトを仮想３次元空間に配置する。具体的には、ＣＰＵ３１１は、ゲーム開始時における仮想ステレオカメラ５３の初期位置、及び各種オブジェクトの初期状態を示すデータをデータ記憶領域３２３に格納する。
【０１２２】
続いて、仮想３次元空間が構築されて仮想ステレオカメラ５３により撮像された立体視画像が上側ＬＣＤ２２に表示される。すなわち、ＣＰＵ３１１は、仮想３次元空間を構築し、各オブジェクトの初期状態を示すデータに従って各オブジェクトを仮想３次元空間内に配置する。そして、ＣＰＵ３１１は、この仮想３次元空間を仮想ステレオカメラ５３の視点から見た立体視画像（左目用画像及び右目用画像）をＧＰＵ３１２に生成させて、その立体視画像を上側ＬＣＤ２２に表示させる。以降、ステップＳ２〜ステップＳ７の処理ループが１フレーム（例えば１／６０秒）毎に繰り返されることによって、ゲームが進行していく。
【０１２３】
ステップＳ１の処理に続いて、ＣＰＵ３１１は、プレイヤによって操作される入力手段からの入力を受け付ける（ステップＳ２）。具体的には、各操作ボタン１４Ａ〜Ｅ、Ｇ〜Ｈ、アナログスティック１５及びタッチパネル１３の入力状況を示す操作データが情報処理部３１に入力されるので、情報処理部３１のＣＰＵ３１１は、その操作データを操作データ３２４としてデータ記憶領域３２３に格納する。なお、新たな操作データ３２４が格納されると、古い操作データ３２４は新たな操作データ３２４に書き換えられて、操作データ３２４が適宜更新される。プレイヤオブジェクト５０のオブジェクトパラメータ（加速度、移動速度、サイズ、厚み等）は、このようにしてデータ記憶領域３２３に格納された操作データ３２４や、プレイヤオブジェクト５０と他のオブジェクトとの接触、他のオブジェクトの動作等に基づいて制御される。
【０１２４】
次に、ＣＰＵ３１１は、各オブジェクトの動作処理を実行する（ステップＳ３）。具体的には、ＣＰＵ３１１は、操作データ３２４が示す位置へプレイヤオブジェクト５０を移動させると共に、敵キャラクタが搭乗するカートやその他のノンプレイヤオブジェクトを表示制御プログラム３２２等に基づいて移動させる。また、ＣＰＵ３１１は、ゲームの状況に応じて、プレイヤオブジェクト５０の大きさを変化させたり、或いは厚みを変化させるといった処理を行う。これにより、データ記憶領域３２３のプレイヤオブジェクトデータ３２５及びノンプレイヤオブジェクトデータ３２６が更新される。このステップＳ３の処理によって仮想３次元空間におけるプレイヤオブジェクト５０の位置が変化するので、これに応じてオブジェクト距離ｄ１が変化することになる。なお、オブジェクト距離ｄ１は、プレイヤオブジェクト５０の動作に限らず、仮想ステレオカメラ５３に関するプレイヤのカメラ操作によっても変化する。
【０１２５】
ステップＳ３の処理に続いて、ＣＰＵ３１１は、立体視割合ｄ２／ｄ１がプレイヤオブジェクト５０の状態を示すプレイヤオブジェクトデータ３２５に応じた値となるように、オブジェクト距離ｄ１及び立体視基準距離ｄ２を制御するカメラ制御処理を実行する（ステップＳ４）。このカメラ制御処理については、図１３以降のフローチャートに基づいて後に詳述する。
【０１２６】
ステップＳ４の処理に続いて、ＣＰＵ３１１は、ステップＳ２〜ステップＳ４の処理に基づいて、仮想ステレオカメラ５３のカメラパラメータを設定するカメラパラメータ設定処理を実行する（ステップＳ５）。具体的には、ＣＰＵ３１１は、ステップＳ２及びステップＳ３の処理によって更新されたプレイヤオブジェクトデータ３２５及びノンプレイヤオブジェクトデータ３２６と、ステップＳ４の処理によって更新された割合データ３２８が示す立体視割合ｄ２／ｄ１に基づいて、左目用カメラ５３Ａ及び右目用カメラ５３Ｂのそれぞれの仮想カメラの仮想３次元空間における視点位置、撮像方向、画角等の各種カメラパラメータを設定する。このステップＳ５の処理で設定されたカメラパラメータは、カメラパラメータデータ３３１としてデータ記憶領域３２３に格納される。
【０１２７】
ステップＳ５の処理でカメラパラメータを設定すると、ＣＰＵ３１１は、描画処理を実行する（ステップＳ６）。具体的には、ＣＰＵ３１１は、設定されたカメラパラメータに基づいて、仮想ステレオカメラ５３で仮想３次元空間を撮像した立体視画像（左目用画像及び右目用画像）をＧＰＵ３１２に生成させる。そして、ＣＰＵ３１１は、生成された立体視画像を上側ＬＣＤ２２に表示させる。
【０１２８】
ステップＳ６の処理に続いて、ＣＰＵ３１１は、電源ボタン１４Ｆ等の操作の有無に基づいて、ゲームの終了が指示されたか否かを判定する（ステップＳ７）。ゲームの終了が指示されていないとＣＰＵ３１１によって判定された場合（ステップＳ７：ＮＯ）、ステップＳ２に処理が戻されて、ステップＳ２以降の処理が繰り返される。逆に、ゲームの終了が指示されたとＣＰＵ３１１によって判定された場合（ステップＳ７：ＹＥＳ）、一連のゲーム処理が終了する。
【０１２９】
［カメラ制御処理の説明］
以下、図１３を参照しつつ、プレイヤオブジェクト５０の加速度又は移動速度が変化する場合に情報処理部３１によって実行されるカメラ制御処理について説明する。ここで、図１３は、図１２のステップＳ４におけるカメラ制御処理の詳細フローチャートであり、プレイヤオブジェクト５０の移動速度又は加速度が変化する場合に行われるカメラ制御処理を例示している。
【０１３０】
例えばプレイヤがボタン１４Ｂを押下すると、プレイヤオブジェクト５０が上述した通常速度まで順次加速した後、通常速度を維持した状態で前（図４の紙面奥側）に進む。このため、プレイヤオブジェクト５０の移動速度が通常速度に達した後もプレイヤがボタン１４Ｂを押下し続けている間は、加速度データ３２５２が示す撮像方向５４におけるプレイヤオブジェクト５０の加速度は「０」である。これに対して、プレイヤがカート５１の急加速を指示するためにボタン１４Ｅ（急加速ボタン）を押下すると、加速度データ３２５２が示す加速度が、ボタン１４Ｂ（アクセルボタン）が押下された時よりも大きな値となる。逆に、例えばプレイヤオブジェクト５０が障害物に衝突すると、加速度データ３２５２が示す減速度（プレイヤオブジェクト５０の進行方向の逆向きに生じる加速度）が、ボタン１４Ｃ（ブレーキボタン）が押下された時よりも大きな値となる。
【０１３１】
そこで、ＣＰＵ３１１は、ステップＳ３の処理に続いて、まず、プレイヤオブジェクト５０が急加速中であるか否かを判定する（ステップＳ４０１）。具体的には、ＣＰＵ３１１は、加速度データ３２５２が示す加速度（プレイヤオブジェクト５０の進行方向における加速度）が、閾値データ３２７が示す加速度以上であるか否かを判定する。なお、ここでの急加速は、ボタン１４Ｅ（急加速ボタン）の押下によるものであり、ボタン１４Ｂ（アクセルボタン）の押下によるものではない。このため、このステップＳ４０１の処理に使用される閾値は、ボタン１４Ｂの押下によってプレイヤオブジェクト５０に生じる加速度よりも大きい値に設定されている。加速度データ３２５２が示す加速度が閾値データ３２７が示す加速度以上であれば、プレイヤオブジェクト５０が急加速中であると判定される。逆に、加速度データ３２５２が示す加速度が閾値データ３２７が示す加速度未満であれば、プレイヤオブジェクト５０が急加速中ではないと判定される。このように、ＣＰＵ３１１は、プレイヤオブジェクト５０の加速度が第１の閾値（ここでは閾値データ３２７が示す加速度）を上回ったか否かを判定する。
【０１３２】
ＣＰＵ３１１は、プレイヤオブジェクト５０が急加速中ではないと判定した場合（ステップＳ４０１：ＮＯ）、プレイヤオブジェクト５０が急減速中であるか否かを判定する（ステップＳ４０２）。具体的には、ＣＰＵ３１１は、加速度データ３２５２が示す減速度（プレイヤオブジェクト５０の進行方向の逆向きに生じる加速度）が、閾値データ３２７が示す減速度以上であるか否かを判定する。なお、ここでの急減速は、プレイヤオブジェクト５０が障害物に衝突することによるものであり、ボタン１４Ｃ（ブレーキボタン）の押下によるものではない。このため、このステップＳ４０２の処理に使用される閾値は、ボタン１４Ｃの押下によってプレイヤオブジェクト５０に生じる減速度よりも大きい値に設定されている。加速度データ３２５２が示す減速度が閾値データ３２７が示す減速度以上であれば、プレイヤオブジェクト５０が急減速中であると判定される。逆に、加速度データ３２５２が示す減速度が閾値データ３２７が示す減速度未満であれば、プレイヤオブジェクト５０が急減速中ではないと判定される。このように、ＣＰＵ３１１は、プレイヤオブジェクト５０の加速度が第２の閾値（ここでは閾値データ３２７が示す減速度）を下回ったか否かを判定する。
【０１３３】
ＣＰＵ３１１は、プレイヤオブジェクト５０が急減速中ではないと判定した場合（ステップＳ４０２：ＮＯ）、プレイヤオブジェクト５０の移動速度が大きいか否かを判定する（ステップＳ４０３）。具体的には、ＣＰＵ３１１は、移動速度データ３２５３が示すプレイヤオブジェクト５０の移動速度が、閾値データ３２７が示す所定の速度（所定の閾値）よりも大きいか否か（所定の閾値を上回ったか否か）を判定する。
【０１３４】
ＣＰＵ３１１は、プレイヤオブジェクト５０の移動速度が大きくないと判定した場合（ステップＳ４０３：ＮＯ）、プレイヤオブジェクト５０の移動速度が小さいか否かを判定する（ステップＳ４０４）。具体的には、ＣＰＵ３１１は、移動速度データ３２５３が示すプレイヤオブジェクト５０の移動速度が、閾値データ３２７が示す所定の速度（所定の閾値）よりも小さいか否か（所定の閾値を下回ったか否か）を判定する。なお、このステップＳ４０４の処理に用いられる閾値データ３２７が示す所定の速度は、ステップＳ４０３の処理に用いられる閾値データ３２７が示す所定の速度よりも小さい値に設定されている。
【０１３５】
ＣＰＵ３１１は、プレイヤオブジェクト５０の移動速度が小さくないと判定した場合（ステップＳ４０４：ＮＯ）、すなわちプレイヤオブジェクト５０の移動速度が標準的な速度である場合、設定割合ｄ２／ｄ１を基準割合に設定する（ステップＳ４０５）。具体的には、ＣＰＵ３１１は、設定割合データ３３０が示す設定割合ｄ２／ｄ１を、基準割合データ３２９が示す値（例えば「０．９」）に書き換える。
【０１３６】
図８には、設定割合ｄ２／ｄ１が基準割合に設定されている場合のオブジェクト距離ｄ１と立体視基準距離ｄ２との関係が例示されている。なお、ここでの基準割合は、プレイヤオブジェクト５０が標準的な速度で走行する様子をプレイヤが自然に感じることができるのに適した値であれば、本実施形態で例示した数値に限定されるものではない。また、後に詳述するが、設定割合データ３３０を設定する処理が行われると、割合データ３２８が示す立体視割合ｄ２／ｄ１が設定割合データ３３０が示す設定割合ｄ２／ｄ１に収束するように、オブジェクト距離ｄ１及び立体視基準距離ｄ２の両方又はいずれか一方が制御される。その結果、プレイヤオブジェクト５０の状態が変化しなければ、立体視割合ｄ２／ｄ１が設定割合ｄ２／ｄ１に維持され、その結果、プレイヤオブジェクト５０の立体感も維持されることになる。
【０１３７】
ところで、プレイヤオブジェクト５０の移動速度が小さい場合、プレイヤオブジェクト５０がゆっくりと進んでいることをプレイヤが自然に感じることができるように、仮想ステレオカメラ５３をプレイヤオブジェクト５０から離す（オブジェクト距離ｄ１を大きくする）制御と、基準面を仮想ステレオカメラ５３に近付ける（立体視基準距離ｄ２を小さくする）制御のいずれか一方又は両方を行うのが効果的である。すなわち、立体視割合ｄ２／ｄ１を低めに設定するのが効果的である。立体視割合ｄ２／ｄ１を低めに設定することで、プレイヤが離れた位置からプレイヤオブジェクト５０を俯瞰するように見ることができる。この場合、道路等のノンプレイヤオブジェクトがプレイヤオブジェクト５０に対してプレイヤオブジェクト５０の進行方向の反対側にゆっくりと流れていくように見えるため、プレイヤオブジェクト５０の移動速度が小さいことをプレイヤが十分に感じることができる。
【０１３８】
そこで、ＣＰＵ３１１は、プレイヤオブジェクト５０の移動速度が小さいと判定した場合（ステップＳ４０４：ＹＥＳ）、設定割合ｄ２／ｄ１を低めの値に設定する（ステップＳ４０６）。具体的には、ＣＰＵ３１１は、設定割合データ３３０が示す設定割合ｄ２／ｄ１の値を低めの値（例えば「０．６」）に書き換える。図９には、設定割合ｄ２／ｄ１が低めに設定されている場合のオブジェクト距離ｄ１と立体視基準距離ｄ２との関係が例示されている。
【０１３９】
このように、設定割合ｄ２／ｄ１が低めに設定されると、プレイヤオブジェクト５０の移動速度が小さいままであれば、割合データ３２８が示す現時点の立体視割合ｄ２／ｄ１が設定割合データ３３０が示す設定割合ｄ２／ｄ１に近付いていくように、オブジェクト距離ｄ１と立体視基準距離ｄ２が徐々に変化する。その結果、割合データ３２８が示す立体視割合ｄ２／ｄ１が設定割合ｄ２／ｄ１に収束して、立体視割合ｄ２／ｄ１が低めのまま維持される。このようにして立体視割合ｄ２／ｄ１の値が低めの値に維持されることで、プレイヤオブジェクト５０の立体感が保たれるので、プレイヤオブジェクト５０の移動速度が小さい場合の仮想３次元空間の様子をプレイヤが自然に感じることができる。
【０１４０】
ところで、プレイヤオブジェクト５０の移動速度が大きい場合、プレイヤオブジェクト５０が高速で進んでいることをプレイヤが自然に感じることができるように、仮想ステレオカメラ５３をプレイヤオブジェクト５０に近付ける（オブジェクト距離ｄ１を小さくする）制御と、基準面を仮想ステレオカメラ５３から遠ざける（立体視基準距離ｄ２を大きくする）制御のいずれか一方又は両方を行うのが効果的である。すなわち、立体視割合ｄ２／ｄ１を高めに設定するのが効果的である。立体視割合ｄ２／ｄ１を高めに設定することで、プレイヤがプレイヤオブジェクト５０が目の前に位置しているかのようにプレイヤオブジェクト５０を近くで見ることができる。この場合、道路等のノンプレイヤオブジェクトがプレイヤオブジェクト５０に対してプレイヤオブジェクト５０の進行方向の反対側に高速で流れていくように見えるため、プレイヤオブジェクト５０の移動速度が大きいことをプレイヤが十分に感じることができる。言い換えれば、プレイヤオブジェクト５０が高速移動するときの臨場感をプレイヤが自然に感じることができる。
【０１４１】
そこで、ＣＰＵ３１１は、プレイヤオブジェクト５０の移動速度が大きいと判定した場合（ステップＳ４０３：ＹＥＳ）、設定割合ｄ２／ｄ１を高めの値に設定する（ステップＳ４０７）。具体的には、ＣＰＵ３１１は、設定割合データ３３０が示す設定割合ｄ２／ｄ１の値を高めの値（例えば「１．２」）に書き換える。図１０には、設定割合ｄ２／ｄ１が高めに設定されている場合のオブジェクト距離ｄ１と立体視基準距離ｄ２との関係が例示されている。
【０１４２】
このように、設定割合ｄ２／ｄ１が高めに設定されると、プレイヤオブジェクト５０の移動速度が大きいままであれば、割合データ３２８が示す現時点の立体視割合ｄ２／ｄ１が設定割合データ３３０が示す設定割合ｄ２／ｄ１に近付いていくように、オブジェクト距離ｄ１と立体視基準距離ｄ２が徐々に変化する。その結果、割合データ３２８が示す立体視割合ｄ２／ｄ１が設定割合ｄ２／ｄ１に収束して、立体視割合ｄ２／ｄ１が高めのまま維持される。このようにして立体視割合ｄ２／ｄ１の値が高めの値に維持されることで、プレイヤオブジェクト５０の立体感が保たれるので、プレイヤオブジェクト５０の移動速度が大きい場合の仮想３次元空間の臨場感をプレイヤが自然に感じることができる。
【０１４３】
ところで、プレイヤオブジェクト５０の急加速又は急減速が始まった瞬間にオブジェクト距離ｄ１と立体視基準距離ｄ２を両方変化させると、オブジェクト距離ｄ１が変化するために、プレイヤがプレイヤオブジェクト５０を一瞬見失ってしまうおそれがある。このため、プレイヤオブジェクト５０の急加速又は急減速が完了するまでは、オブジェクト距離ｄ１を維持したまま立体視基準距離ｄ２だけを変化させてプレイヤオブジェクト５０の状態が変化したことを表現することが好ましい。
【０１４４】
そこで、ＣＰＵ３１１は、プレイヤオブジェクト５０が急加速中であると判定した場合（ステップＳ４０１：ＹＥＳ）、又はプレイヤオブジェクト５０が急減速中であると判定した場合（ステップＳ４０２：ＹＥＳ）、現在のオブジェクト距離ｄ１を設定割合のオブジェクト距離ｄ１に設定する（ステップＳ４０８）。具体的には、ＣＰＵ３１１は、設定割合データ３３０が示すオブジェクト距離ｄ１の値を、割合データ３２８が示す現在のオブジェクト距離ｄ１の値に書き換える。そして、ＣＰＵ３１１は、設定割合の立体視基準距離ｄ２を高めに設定する（ステップＳ４０９）。具体的には、ＣＰＵ３１１は、設定割合データ３３０が示す立体視基準距離ｄ２の値を、表示制御プログラム３２２に基づいて、予め定められた高めの値に書き換える。
【０１４５】
このステップＳ４０８の処理及びステップＳ４０９の処理が行われることによって、設定割合ｄ２／ｄ１が、ステップＳ４０７の処理で設定される設定割合よりも更に高い値に設定されることになる。
【０１４６】
なお、ここでは、プレイヤオブジェクト５０に急な加速度又は急な減速度が生じている間は設定割合ｄ２／ｄ１に関する立体視基準距離ｄ２を常に高めに設定しておく場合について説明したが、急加速又は急減速の途中でステップＳ４０３へ処理が進められるようにして、立体視割合ｄ２／ｄ１を制御することによる効果を急加速中又は急減速中に変化させるようにしてもよい。
【０１４７】
ＣＰＵ３１１は、ステップＳ４０５の処理を行った場合、ステップＳ４０６の処理を行った場合、ステップＳ４０７の処理を行った場合、又はステップＳ４０９の処理を行った場合、オブジェクト距離ｄ１及び立体視基準距離ｄ２が共に可変であるか否かを判定する（ステップＳ４１１）。具体的には、ＣＰＵ３１１は、設定割合データ３３０の一部としてオブジェクト距離ｄ１がデータ記憶領域３２３に格納されており、且つ割合データ３２８が示す現在のオブジェクト距離ｄ１が設定割合データ３３０のオブジェクト距離ｄ１と一致しているか否かを判定する。
【０１４８】
設定割合データ３３０の一部としてオブジェクト距離ｄ１がデータ記憶領域３２３に格納されていない場合、オブジェクト距離ｄ１が設定されていないので、オブジェクト距離ｄ１及び立体視基準距離ｄ２が共に可変であると判定することができる。すなわち、ステップＳ４０５、ステップＳ４０６、又はステップＳ４０７の処理が行われてからステップＳ４１１に処理が進められた場合に、オブジェクト距離ｄ１及び立体視基準距離ｄ２が共に可変であると判定することができる。ＣＰＵ３１１は、オブジェクト距離ｄ１及び立体視基準距離ｄ２が共に可変であると判定した場合（ステップＳ４１１：ＹＥＳ）、割合データ３２８が示す現在の立体視割合ｄ２／ｄ１が設定割合データ３３０が示す設定割合ｄ２／ｄ１に近付くように、プレイヤオブジェクトデータ３２５に基づいてオブジェクト距離ｄ１及び立体視基準距離ｄ２を変化させる（ステップＳ４１２）。
【０１４９】
ところで、プレイヤオブジェクト５０の移動速度が急加速又は急減速を伴わずに緩やかに変化するという状況に対して、立体視割合ｄ２／ｄ１を設定割合ｄ２／ｄ１に向けて急激に変化させた場合、仮想３次元空間の状況変化に相応しくない立体視画像が上側ＬＣＤ２２に表示されてしまう可能性がある。そこで、上記ステップＳ４１２の処理では、立体視割合ｄ２／ｄ１が設定割合ｄ２／ｄ１に向けて徐々に変化するように、１回のステップＳ４１２の処理で立体視割合ｄ２／ｄ１が変化する立体視割合ｄ２／ｄ１の変化値を小さくしている。例えば現時点の立体視割合ｄ２／ｄ１が「０．９」で、設定割合ｄ２／ｄ１が「１．２」に設定されている状態で２秒間（１２０フレーム）かけて立体視割合ｄ２／ｄ１を設定割合ｄ２／ｄ１に一致させる場合、１回のステップＳ４１２の処理による立体視割合ｄ２／ｄ１の変化値は、０．００２５（＝（１．２−０．９）／１２０）である。また、このように立体視割合ｄ２／ｄ１を一定量ずつ変化させる代わりに、立体視割合ｄ２／ｄ１と設定割合ｄ２／ｄ１との差の一定割合ずつ立体視割合ｄ２／ｄ１を変化させるようにしてもよい。
【０１５０】
一方、設定割合データ３３０の一部としてオブジェクト距離ｄ１がデータ記憶領域３２３に格納されている場合、割合データ３２８が示す現在のオブジェクト距離ｄ１が設定割合データ３３０が示すオブジェクト距離ｄ１と一致しているため、オブジェクト距離ｄ１及び立体視基準距離ｄ２が共に可変ではない（立体視基準距離ｄ２のみが可変である）と判定することができる。すなわち、ステップＳ４０８及びステップＳ４０９の処理が行われてからステップＳ４１１に処理が進められた場合に、オブジェクト距離ｄ１及び立体視基準距離ｄ２が共に可変ではないと判定することができる。ＣＰＵ３１１は、オブジェクト距離ｄ１及び立体視基準距離ｄ２が共に可変ではないと判定した場合（ステップＳ４１１：ＮＯ）、割合データ３２８が示す現在の立体視割合ｄ２／ｄ１が設定割合データ３３０が示す設定割合ｄ２／ｄ１に近付くように、立体視基準距離ｄ２を変化させる（ステップＳ４１３）。
【０１５１】
ところで、プレイヤオブジェクト５０が急加速又は急減速するという状況に対して、立体視割合ｄ２／ｄ１を設定割合ｄ２／ｄ１に向けて少しずつ変化させた場合、仮想３次元空間の状況変化に相応しくない立体視画像が上側ＬＣＤ２２に表示されてしまう可能性がある。すなわち、プレイヤオブジェクト５０の状態変化（急激な移動速度の変化）をプレイヤに対して効果的に知らしめることができない可能性がある。そこで、上記ステップＳ４１３の処理では、立体視割合ｄ２／ｄ１が設定割合ｄ２／ｄ１に向けて急激に変化するように、１回のステップＳ４１３の処理による立体視割合ｄ２／ｄ１の変化値を、ステップＳ４１２の処理が行われる場合に比べて大きくしている。
【０１５２】
図１４は、オブジェクト距離ｄ１が維持された状態で立体視基準距離ｄ２が高めに設定された場合の仮想３次元空間を模式的に示す説明図である。例えばボタン１４Ｂ（アクセルボタン）の押下によりプレイヤオブジェクト５０が通常速度で走行している場合、図８に例示されるように、設定割合ｄ２／ｄ１が基準割合に設定される。この状態から、例えばボタン１４Ｅ（急加速ボタン）の押下によりプレイヤオブジェクト５０が急加速すると、その瞬間に、オブジェクト距離ｄ１を維持したまま立体視基準距離ｄ２を大きくする制御（図８及び図１４参照）が、ステップＳ４０８、ステップＳ４０９、及びステップＳ４１３の一連の処理によって実現される。この場合、図１４から明らかなように、プレイヤオブジェクト５０が通常速度で移動する場合（図８参照）に比べて、仮想ステレオカメラ５３から見てプレイヤオブジェクト５０の手前に位置していた基準面がプレイヤオブジェクト５０の奥に移動しているので、プレイヤオブジェクト５０は、通常速度で移動していた時に比べて、プレイヤの方に大きく飛び出して見えることとなる。これにより、プレイヤオブジェクト５０の状態が大きく変化したことをプレイヤに対して効果的に知らしめることができる。この場合、プレイヤの焦点の位置がずれて、プレイヤオブジェクト５０が瞬間的にぼけて見える状態となる。なお、プレイヤオブジェクト５０が急加速（又は急減速）する場合（図１４参照）、プレイヤオブジェクト５０の移動速度が大きい場合（図１０参照）に比べて、設定割合ｄ２／ｄ１がより大きくなっている。このため、通常速度で移動しているプレイヤオブジェクト５０が急加速する場合には、通常速度で移動しているプレイヤオブジェクト５０の移動速度が急加速を伴わずに大きくなる場合に比べて、プレイヤオブジェクト５０の状態変化を知らしめる効果がより大きいと言える。
【０１５３】
ところで、図１３から明らかなように、急加速中又は急減速中は、ステップＳ４０３ではなくステップＳ４０８に処理が進められて、オブジェクト距離ｄ１を維持したまま立体視基準距離ｄ２だけを大きくした状態が所定時間継続されることになる。このように、オブジェクト距離ｄ１を変化させることなく立体視基準距離ｄ２だけを変化させて設定割合ｄ２／ｄ１を変化させることで、プレイヤがプレイヤオブジェクト５０を見失うことなく、プレイヤオブジェクト５０の状態が変化したこと（ここではプレイヤオブジェクト５０が急加速又は急減速したこと）を効果的に表現することができる。
【０１５４】
また、急加速又は急減速が完了すると、ステップＳ４０８ではなくステップＳ４０３へ処理が進められる。これにより、設定割合ｄ２／ｄ１をステップＳ４０３以降の判定結果に応じた値とは異なる値（図１４参照）に一旦変化させてから、その判定結果に応じた値に変化させる制御が行われる。具体的には、通常速度で移動していたプレイヤオブジェクト５０が急加速してから高速移動する状態となる場合、まず、ステップＳ４０８、ステップＳ４０９、及びステップＳ４１３の処理によって、オブジェクト距離ｄ１を維持したまま立体視基準距離ｄ２を高めに設定した場合の値に設定割合ｄ２／ｄ１が設定される。そして、プレイヤオブジェクト５０の移動速度が上限速度から通常速度まで小さくなる過程で、オブジェクト距離ｄ１が小さくなりながら（図１４及び図１０参照）、設定割合ｄ２／ｄ１がステップＳ４０７の処理で設定された高めの値に徐々に収束していくことになる。
【０１５５】
このように、立体視基準距離ｄ２を大きくしてプレイヤオブジェクト５０をプレイヤ側に飛び出させ、それから、仮想ステレオカメラ５３がプレイヤオブジェクト５０に徐々に近付いていく（オブジェクト距離ｄ１が徐々に小さくなる）ように設定割合ｄ２／ｄ１が変更されることにより、プレイヤオブジェクト５０が急加速してから一定の速度（通常速度）で高速移動する状態になるまでの状態変化の様子を自然に表現することができる。
【０１５６】
［第２の実施形態］
以下、図１５を参照しつつ、本発明の第２の実施形態について説明する。この第２の実施形態では、プレイヤオブジェクト５０の大きさが変化する場合に情報処理部３１によって実行されるカメラ制御処理について説明する。ここで、図１５は、図１２のステップＳ４におけるカメラ制御処理の詳細フローチャートであり、プレイヤオブジェクト５０の大小が変化する場合に行われるカメラ制御処理を例示している。なお、以下に説明するカメラ制御処理において、図１３に基づいて説明したカメラ制御処理と共通する内容については、その説明を一部省略する。
【０１５７】
［カメラ制御処理の説明］
ＣＰＵ３１１は、ステップＳ３の処理に続いて、プレイヤオブジェクト５０が大きいか否かを判定する（ステップＳ４２１）。具体的には、ＣＰＵ３１１は、サイズデータ３２５４を参照して、プレイヤオブジェクト５０の大小を判定する。なお、上述したように、本実施形態では、プレイヤオブジェクト５０は、雷に打たれることでその大きさが小さくなり（図６参照）、雷に打たれてから一定の時間が経過すると元の大きさ（図４参照）に戻る。
【０１５８】
ＣＰＵ３１１は、プレイヤオブジェクト５０が大きいと判定した場合（ステップＳ４２１：ＹＥＳ）、ステップＳ４０５の処理と同様に、設定割合ｄ２／ｄ１を基準割合に設定する（ステップＳ４２２）。なお、ここでの基準割合は、プレイヤオブジェクト５０が大きい状態であることをプレイヤが自然に感じることができるのに適した値であれば、ステップＳ４０５の処理で設定される設定割合と異なっていてもよい。
【０１５９】
このステップＳ４２２の処理が行われることにより、プレイヤは、プレイヤオブジェクト５０から少し離れた位置からプレイヤオブジェクト５０を俯瞰するように、上側ＬＣＤ２２に表示された立体視画像を視認することができる。なお、プレイヤオブジェクト５０が大きくなって、プレイヤオブジェクト５０の移動範囲が拡大したことを効果的に表現するために、ここでの基準割合は、後述するステップＳ４２４の処理で設定される設定割合ｄ２／ｄ１よりも小さな値に設定されている。
【０１６０】
ＣＰＵ３１１は、プレイヤオブジェクト５０が大きくないと判定した場合（ステップＳ４２１：ＮＯ）、プレイヤオブジェクト５０が小さい状態から大きい状態へと変化している途中であるか否かを判定する（ステップＳ４２３）。ところで、プレイヤオブジェクト５０が雷に打たれてから第１時間（例えば８．５秒間）が経過するまではプレイヤオブジェクト５０が小さい状態となっている。そして、第１時間が経過したタイミングから更に第２時間（例えば１．５秒間）が経過するまでの間にプレイヤオブジェクト５０が徐々に大きくなり、第２時間が経過するとプレイヤオブジェクト５０が完全に大きい状態となる。そこで、ＣＰＵ３１１は、上記第１時間が経過してから上記第２時間が経過するまでの間であるか否かに基づいて、プレイヤオブジェクト５０が小さい状態から大きい状態へと変化している途中であるか否かを判定する。
【０１６１】
ＣＰＵ３１１は、プレイヤオブジェクト５０が小さい状態から大きい状態へと変化している途中ではないと判定した場合（ステップＳ４２３：ＮＯ）、すなわちプレイヤオブジェクト５０が小さいままである場合、ステップＳ４０７の処理と同様に、設定割合ｄ２／ｄ１を高めの値に設定する（ステップＳ４２４）。このように、設定割合ｄ２／ｄ１が高めの値に設定されることで、仮想ステレオカメラ５３がプレイヤオブジェクト５０に近付いてオブジェクト距離ｄ１が小さくなると共に、基準面が仮想ステレオカメラ５３から遠ざかって立体視基準距離ｄ２が大きくなる。
【０１６２】
その結果、プレイヤは、プレイヤオブジェクト５０の真後ろにいるかのように、上側ＬＣＤ２２に表示された立体視画像を視認することができる。ここで設定割合ｄ２／ｄ１を基準割合に対して高めの値に設定しているのは、プレイヤオブジェクト５０が小さくなって周りのオブジェクトが大きく見えるときの臨場感を自然に表現するためである。
【０１６３】
このように、プレイヤオブジェクト５０が大きくなったか否かが判定され、立体視割合ｄ２／ｄ１を一定の値に維持するための設定割合ｄ２／ｄ１がその判定結果に応じた値に変更される。これにより、プレイヤオブジェクト５０の大きさに応じた適切な臨場感を自然に表現することができる。
【０１６４】
一方、ＣＰＵ３１１は、プレイヤオブジェクト５０が小さい状態から大きい状態へと変化している途中であると判定した場合（ステップＳ４２３：ＹＥＳ）、上記ステップＳ４０８及びステップＳ４０９の処理と同様に、現在のオブジェクト距離ｄ１を設定割合のオブジェクト距離ｄ１に設定し（ステップＳ４２５）、設定割合の立体視基準距離ｄ２を高めに設定する（ステップＳ４２６）。
【０１６５】
この場合、ＣＰＵ３１１は、設定割合ｄ２／ｄ１を変化させる際に、プレイヤオブジェクト５０が小さい状態から大きい状態への状態変化が始まってから一定の時間（上記第２時間）が経過するまでの間、オブジェクト距離ｄ１を維持したまま、立体視基準距離ｄ２だけを変化させる（大きくする）。
【０１６６】
これにより、オブジェクト距離ｄ１を保ったまま立体視割合ｄ２／ｄ１が変化するので、プレイヤがプレイヤオブジェクト５０を見失うことなく、プレイヤオブジェクト５０が小さい状態から大きい状態へ状態変化するときの臨場感を自然に表現することができる。
【０１６７】
ＣＰＵ３１１は、ステップＳ４２２の処理を行った場合、ステップＳ４２４の処理を行った場合、又はステップＳ４２６の処理を行った場合、上記ステップＳ４１１の処理と同様に、オブジェクト距離ｄ１及び立体視基準距離ｄ２が共に可変であるか否かを判定する（ステップＳ４２７）。
【０１６８】
ＣＰＵ３１１は、オブジェクト距離ｄ１及び立体視基準距離ｄ２が共に可変であると判定した場合（ステップＳ４２７：ＹＥＳ）、上記ステップＳ４１２の処理と同様に、割合データ３２８が示す現在の立体視割合ｄ２／ｄ１が設定割合データ３３０が示す設定割合ｄ２／ｄ１に近付くように、プレイヤオブジェクトデータ３２５に基づいてオブジェクト距離ｄ１及び立体視基準距離ｄ２を変化させる（ステップＳ４２８）。このステップＳ４２８の処理は、ステップＳ４２５及びステップＳ４２６の処理が行われていない場合、すなわち、ステップＳ４２２の処理、又はステップＳ４２４の処理が行われた場合に実行される。
【０１６９】
ＣＰＵ３１１は、オブジェクト距離ｄ１及び立体視基準距離ｄ２が共に可変ではないと判定した場合（ステップＳ４２７：ＮＯ）、上記ステップＳ４１３の処理と同様に、割合データ３２８が示す現在の立体視割合ｄ２／ｄ１が設定割合データ３３０が示す設定割合ｄ２／ｄ１に近付くように、立体視基準距離ｄ２を変化させる（ステップＳ４２９）。
【０１７０】
ところで、図１５の表記から明らかなように、プレイヤオブジェクト５０が小さい状態から大きい状態へと変化している途中であれば、処理がステップＳ４２５及びステップＳ４２６に進められる。そして、プレイヤオブジェクト５０が完全に大きくなると、処理がステップＳ４２２に進められる。このため、プレイヤオブジェクト５０が小さい状態から大きい状態へと変化するときに、ステップＳ４２５及びステップＳ４２６の処理により、立体視割合ｄ２／ｄ１が、まずはプレイヤオブジェクト５０が大きいときの設定割合（基準割合）、及びプレイヤオブジェクト５０が小さいときの設定割合（基準割合に対して高めの値）のどちらとも異なる値に変化する。そして、立体視割合ｄ２／ｄ１は、ステップＳ４２２の処理で設定される基準割合に変化する。このように立体視割合ｄ２／ｄ１を変化させることにより、プレイヤオブジェクト５０の大きさが変化したことをプレイヤに効果的に認識させることができると共に、プレイヤオブジェクト５０の大きさが変化した後の臨場感を自然に表現することができる。
【０１７１】
［第３の実施形態］
以下、図１６を参照しつつ、本発明の第３の実施形態について説明する。この第３の実施形態では、プレイヤオブジェクト５０の厚みが変化する場合に情報処理部３１によって実行されるカメラ制御処理について説明する。ここで、図１６は、図１２のステップＳ４におけるカメラ制御処理の詳細フローチャートであり、プレイヤオブジェクト５０の厚みが変化する場合に行われるカメラ制御処理を例示している。なお、以下に説明するカメラ制御処理において、図１３に基づいて説明したカメラ制御処理と共通する内容については、その説明を一部省略する。
【０１７２】
［カメラ制御処理の説明］
ＣＰＵ３１１は、ステップＳ３の処理に続いて、プレイヤオブジェクト５０が厚いか薄いかを判定する（ステップＳ４４１）。具体的には、ＣＰＵ３１１は、厚みデータ３２５５を参照して、プレイヤオブジェクト５０が厚いか薄いかを判定する。なお、上述したように、本実施形態では、プレイヤオブジェクト５０は、重りに潰されることで薄くなり（図７参照）、潰されてから一定の時間が経過すると元の厚み（図４参照）に戻る。
【０１７３】
ＣＰＵ３１１は、プレイヤオブジェクト５０が厚いと判定した場合（ステップＳ４４１：ＹＥＳ）、ステップＳ４０５の処理と同様に、設定割合ｄ２／ｄ１を基準割合に設定する（ステップＳ４４２）。なお、ここでの基準割合は、プレイヤオブジェクト５０が厚い状態であることをプレイヤが自然に感じることができるのに適した値であれば、ステップＳ４０５の処理で設定される設定割合と異なっていてもよい。
【０１７４】
このステップＳ４４２の処理が行われることにより、プレイヤは、プレイヤオブジェクト５０から少し離れた位置からプレイヤオブジェクト５０を俯瞰するように、上側ＬＣＤ２２に表示された立体視画像を視認することができる。なお、プレイヤオブジェクト５０が厚くなって普通に移動できる状態になったことを効果的に表現するために、ここでの基準割合は、後述するステップＳ４４４の処理で設定される設定割合ｄ２／ｄ１よりも小さな値に設定されている。
【０１７５】
ＣＰＵ３１１は、プレイヤオブジェクト５０が厚くないと判定した場合（ステップＳ４４１：ＮＯ）、プレイヤオブジェクト５０が薄い状態から厚い状態へと変化している途中であるか否かを判定する（ステップＳ４４３）。ところで、プレイヤオブジェクト５０が重りに潰されてから第３時間（例えば４秒間）が経過するまではプレイヤオブジェクト５０が薄い状態となっている。そして、第３時間が経過したタイミングから更に第４時間（例えば１．５秒間）が経過するまでの間にプレイヤオブジェクト５０が徐々に厚くなり、第４時間が経過するとプレイヤオブジェクト５０が完全に厚い状態となる。そこで、ＣＰＵ３１１は、上記第３時間が経過してから上記第４時間が経過するまでの間であるか否かに基づいて、プレイヤオブジェクト５０が薄い状態から厚い状態へと変化している途中であるか否かを判定する。
【０１７６】
ＣＰＵ３１１は、プレイヤオブジェクト５０が薄い状態から厚い状態へと変化している途中ではないと判定した場合（ステップＳ４４３：ＮＯ）、すなわちプレイヤオブジェクト５０が薄いままである場合、ステップＳ４０７の処理と同様に、設定割合ｄ２／ｄ１を高めの値に設定する（ステップＳ４４４）。このように、設定割合ｄ２／ｄ１が高めの値に設定されることで、仮想ステレオカメラ５３がプレイヤオブジェクト５０に近付いてオブジェクト距離ｄ１が小さくなると共に、基準面が仮想ステレオカメラ５３から遠ざかって立体視基準距離ｄ２が大きくなる。
【０１７７】
その結果、プレイヤは、プレイヤオブジェクト５０の真後ろにいるかのように、上側ＬＣＤ２２に表示された立体視画像を視認することができる。ここで設定割合ｄ２／ｄ１を基準割合に対して高めの値に設定しているのは、プレイヤオブジェクト５０が薄くなったときの臨場感を自然に表現するためである。
【０１７８】
このように、プレイヤオブジェクト５０が厚くなったか否かが判定され、立体視割合ｄ２／ｄ１を一定の値に維持するための設定割合ｄ２／ｄ１がその判定結果に応じた値に変更される。これにより、プレイヤオブジェクト５０の厚みに応じた適切な臨場感を自然に表現することができる。
【０１７９】
一方、ＣＰＵ３１１は、プレイヤオブジェクト５０が薄い状態から厚い状態へと変化している途中であると判定した場合（ステップＳ４４３：ＹＥＳ）、上記ステップＳ４０８及びステップＳ４０９の処理と同様に、現在のオブジェクト距離ｄ１を設定割合のオブジェクト距離ｄ１に設定し（ステップＳ４４５）、設定割合の立体視基準距離ｄ２を高めに設定する（ステップＳ４４６）。
【０１８０】
この場合、ＣＰＵ３１１は、設定割合ｄ２／ｄ１を変化させる際に、プレイヤオブジェクト５０が薄い状態から厚い状態への状態変化が始まってから一定の時間（上記第４時間）が経過するまでの間、オブジェクト距離ｄ１を維持したまま、立体視基準距離ｄ２だけを変化させる（大きくする）。
【０１８１】
これにより、オブジェクト距離ｄ１を保ったまま立体視割合ｄ２／ｄ１が変化するので、プレイヤがプレイヤオブジェクト５０を見失うことなく、プレイヤオブジェクト５０が薄い状態から厚い状態へ状態変化するときの臨場感を自然に表現することができる。
【０１８２】
ＣＰＵ３１１は、ステップＳ４４２の処理を行った場合、ステップＳ４４４の処理を行った場合、又はステップＳ４４６の処理を行った場合、上記ステップＳ４１１の処理と同様に、オブジェクト距離ｄ１及び立体視基準距離ｄ２が共に可変であるか否かを判定する（ステップＳ４４７）。
【０１８３】
ＣＰＵ３１１は、オブジェクト距離ｄ１及び立体視基準距離ｄ２が共に可変であると判定した場合（ステップＳ４４７：ＹＥＳ）、上記ステップＳ４１２の処理と同様に、割合データ３２８が示す現在の立体視割合ｄ２／ｄ１が設定割合データ３３０が示す設定割合ｄ２／ｄ１に近付くように、プレイヤオブジェクトデータ３２５に基づいてオブジェクト距離ｄ１及び立体視基準距離ｄ２を変化させる（ステップＳ４４８）。このステップＳ４４８の処理は、ステップＳ４４５及びステップＳ４４６の処理が行われていない場合、すなわち、ステップＳ４４２の処理、又はステップＳ４４４の処理が行われた場合に実行される。
【０１８４】
ＣＰＵ３１１は、オブジェクト距離ｄ１及び立体視基準距離ｄ２が共に可変ではないと判定した場合（ステップＳ４４７：ＮＯ）、上記ステップＳ４１３の処理と同様に、割合データ３２８が示す現在の立体視割合ｄ２／ｄ１が設定割合データ３３０が示す設定割合ｄ２／ｄ１に近付くように、立体視基準距離ｄ２を変化させる（ステップＳ４４９）。
【０１８５】
ところで、図１６の表記から明らかなように、プレイヤオブジェクト５０が薄い状態から厚い状態へと変化している途中であれば、処理がステップＳ４４５及びステップＳ４４６に進められる。そして、プレイヤオブジェクト５０が完全に厚くなると、処理がステップＳ４４２に進められる。このため、プレイヤオブジェクト５０が薄い状態から厚い状態へと変化するときに、ステップＳ４４５及びステップＳ４４６の処理により、立体視割合ｄ２／ｄ１が、まずはプレイヤオブジェクト５０が厚いときの設定割合（基準割合）、及びプレイヤオブジェクト５０が薄いときの設定割合（基準割合に対して高めの値）のどちらとも異なる値に変化する。そして、立体視割合ｄ２／ｄ１は、ステップＳ４４２の処理で設定される基準割合に変化する。このように立体視割合ｄ２／ｄ１を変化させることにより、プレイヤオブジェクト５０の厚みが変化したことをプレイヤに効果的に認識させることができると共に、プレイヤオブジェクト５０の厚みが変化した後の臨場感を自然に表現することができる。
【０１８６】
［第１〜第３の実施形態の作用効果］
以上説明したように、第１〜第３の実施形態によれば、オブジェクト距離ｄ１に対する立体視基準距離ｄ２の割合である立体視割合ｄ２／ｄ１に基づいてカメラパラメータが設定される。すなわち、外部入力されたデータではなく、いずれも仮想３次元空間内の状況を表す２つの距離の割合に基づいてカメラパラメータが設定されるので、仮想３次元空間におけるプレイヤオブジェクト５０の状態に応じた適切な臨場感を自然に表現することができる。
【０１８７】
また、第１〜第３の実施形態では、プレイヤオブジェクト５０のオブジェクトパラメータが変化しなければ立体視割合ｄ２／ｄ１が一定の値に維持されるので、プレイヤオブジェクト５０の状態に応じた臨場感が損なわれてしまうのを効果的に防止することができる。
【０１８８】
また、第１〜第３の実施形態では、オブジェクトパラメータが変化してプレイヤオブジェクト５０の状態が変化した場合に、立体視割合ｄ２／ｄ１が状態変化前の値から変化して、その立体視割合ｄ２／ｄ１が状態変化に応じた別の値に収束する。このように、プレイヤオブジェクト５０の状態が変化したときに例外的に立体視割合ｄ２／ｄ１が変更されるので、プレイヤオブジェクト５０の状態変化をプレイヤに効果的に知らしめることができ、且つプレイヤオブジェクト５０の立体感を状態変化後のプレイヤオブジェクト５０の状態に応じたものにすることができる。
【０１８９】
また、第１〜第３の実施形態では、立体視割合ｄ２／ｄ１を変化させる際に、オブジェクト距離ｄ１が一時的に維持された状態で立体視基準距離ｄ２だけが変化する。このため、立体視画像を見ているプレイヤがプレイヤオブジェクト５０を見失うことなく、オブジェクトパラメータが変化してプレイヤオブジェクト５０の状態が変わったことをプレイヤに効果的に知らしめることができる。
【０１９０】
また、第１〜第３の実施形態では、立体視割合ｄ２／ｄ１の変化により、オブジェクトパラメータが変化したことが視覚的に強調されるので、オブジェクトパラメータが変化してプレイヤオブジェクト５０の状態が変わったことをプレイヤにより効果的に知らしめることができる。
【０１９１】
また、第１〜第３の実施形態では、プレイヤオブジェクト５０の状態変化に伴い、立体視割合ｄ２／ｄ１が徐々に変化するので、プレイヤオブジェクト５０の状態が変化する様子をより自然に表現することができる。
【０１９２】
また、第１〜第３の実施形態では、操作対象オブジェクトであるプレイヤオブジェクト５０の状態が変化した際に立体視割合ｄ２／ｄ１が制御されるので、プレイヤの操作に伴うプレイヤオブジェクト５０の状態変化を効果的に表現することができる。
【０１９３】
［変形例］
本発明は上記実施形態に限定されるものではなく、例えば以下の形態であってもよい。
すなわち、上記実施形態では、プレイヤオブジェクト５０の状態変化が始まった際に、オブジェクト距離ｄ１を維持したまま立体視基準距離ｄ２だけを変化させて立体視割合ｄ２／ｄ１を変化させることとした。これに代えて、プレイヤオブジェクト５０の状態変化が始まった際に、オブジェクト距離ｄ１と立体視基準距離ｄ２の両方を変化させて、立体視割合ｄ２／ｄ１を変化させるようにしてもよい。
【０１９４】
また、上記実施形態では、立体視割合ｄ２／ｄ１を高めの設定割合ｄ２／ｄ１又は低めの設定割合ｄ２／ｄ１のいずれかに収束させることとしているが、立体視割合ｄ２／ｄ１を収束させる設定割合ｄ２／ｄ１の値はこれら２つの値に限定されるものではない。すなわち、プレイヤオブジェクト５０の状態（オブジェクトパラメータ）に応じて、立体視割合ｄ２／ｄ１が３つ以上の設定割合ｄ２／ｄ１のいずれかに収束するようにしてもよい。
【０１９５】
また、上記実施形態では、本発明の所定のオブジェクトがプレイヤによって操作されるプレイヤオブジェクト５０である場合について説明したが、所定のオブジェクトは、ノンプレイヤオブジェクトであってもよい。すなわち、本発明は、仮想３次元空間を撮像した立体視画像をユーザ（或いはプレイヤ）の操作とは無関係に表示するデモ画面の表示等に適用されてもよい。
【０１９６】
また、上記実施形態では、上記のような一連の処理を１台のゲーム装置１０で実現しているが、これは必須ではなく、複数の情報処理装置が協働することによって上記のような一連の処理を実現してもよい。すなわち、オブジェクト距離変化手段、カメラパラメータ設定手段、画像生成手段、表示制御手段のうちの少なくとも１つの手段の機能を、ゲーム装置１０以外の例えばネットワーク上のサーバ装置等が実現するようにしてもよい。この場合、ゲーム装置１０及びサーバ装置からなるゲームシステムが、上述したゲーム装置１０と同様に機能する。
【０１９７】
また、上記実施形態において、ゲーム装置１０の形状や、それに設けられている各種操作ボタン１４やタッチパネル１３の形状、数、設置位置等は単なる一例に過ぎず、他の形状、数、設置位置であっても、本発明を実現できることは言うまでもない。また、上述したフローチャートに基づいて説明した処理の順序、設定値、判定に用いられる閾値等は単なる一例に過ぎず、本発明の範囲を逸脱しなければ他の順序や値であっても、本発明を実現できることは言うまでもない。
【０１９８】
また、上記実施形態のゲーム装置１０において実行される表示制御プログラムは、外部メモリ４４等の記憶媒体を通じてゲーム装置１０に供給されるだけでなく、有線又は無線の通信回線を通じてゲーム装置１０に供給されてもよい。また、上記表示制御プログラムは、ゲーム装置１０内部の不揮発性記憶装置（データ保存用内部メモリ３５等）に予め記録されていてもよい。なお、上記表示制御プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、ＣＤ−ＲＯＭ、ＤＶＤ、或いはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ等であってもよい。また、上記表示制御プログラムを記憶する情報記憶媒体としては、上記表示制御プログラムを一時的に記憶する揮発性メモリでもよい。
【産業上の利用可能性】
【０１９９】
本発明は、立体視表示を行う表示制御装置のコンピュータに実行される表示制御プログラム、表示制御装置、表示制御システム、及び表示制御方法等に適用可能である。
【符号の説明】
【０２００】
１０  ゲーム装置（表示制御装置の一例）
２２  上側ＬＣＤ（表示装置の一例）
３１  情報処理部（コンピュータの一例）
３２  メインメモリ
５０  プレイヤオブジェクト（所定のオブジェクトの一例）
５３  仮想ステレオカメラ
５３Ａ  左目用カメラ
５３Ｂ  右目用カメラ
３１１  ＣＰＵ
３２４  操作データ
３２５  プレイヤオブジェクトデータ
３２７  閾値データ
３２８  割合データ
３２９  基準割合データ
３３０  設定割合データ
３３１  カメラパラメータデータ
３２５２  加速度データ
３２５３  移動速度データ
３２５４  サイズデータ
３２５５  厚みデータ
【図１】
0005798334.tif 000002
【図２Ａ】
0005798334.tif 000003
【図２Ｂ】
0005798334.tif 000004
【図２Ｃ】
0005798334.tif 000005
【図２Ｄ】
0005798334.tif 000006
【図３】
0005798334.tif 000007
【図４】
0005798334.tif 000008
【図５】
0005798334.tif 000009
【図６】
0005798334.tif 000010
【図７】
0005798334.tif 000011
【図８】
0005798334.tif 000012
【図９】
0005798334.tif 000013
【図１０】
0005798334.tif 000014
【図１１】
0005798334.tif 000015
【図１２】
0005798334.tif 000016
【図１３】
0005798334.tif 000017
【図１４】
0005798334.tif 000018
【図１５】
0005798334.tif 000019
【図１６】
0005798334.tif 000020