説明

画像表示プログラム、装置、システムおよび方法

【課題】立体視可能な立体表示装置において、ユーザが立体視しやすいように仮想オブジェクトを立体表示すること。
【解決手段】まず、仮想空間に配置された複数の仮想オブジェクトのそれぞれに関して、仮想オブジェクトの奥行位置に基づいて仮想オブジェクト用の立体視基準距離を個別に決定する。次に、立体表示装置の画面を通じてユーザによって視認される当該立体表示装置の画面に対する仮想オブジェクトの相対位置が、仮想空間における当該仮想オブジェクト用の立体視基準面に対する当該仮想オブジェクトの相対位置に合致するように、一対の仮想カメラに基づいて各仮想オブジェクトを描画して、合成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像表示プログラム、装置、システムおよび方法に関し、特に、立体視可能な立体表示装置の画面に仮想オブジェクトを立体表示するための、画像表示プログラム、装置、システムおよび方法に関する。
【背景技術】
【0002】
近年、実世界の画像に仮想オブジェクトを合成表示することによって、その仮想オブジェクトがあたかも実世界内に実在するかのように表示する、AR(Augmented Reality:拡張現実感)技術の研究が進んでいる。
【0003】
例えば、特許文献1に開示されている立体表示装置では、ヘッドマウントディスプレイに取り付けられている右目カメラおよび左目カメラによってそれぞれ撮像された画像から、実空間に配置されたマーカーに対する右目カメラおよび左目カメラの相対位置姿勢をそれぞれ求め、その結果に基づいて、右目用の仮想オブジェクトの画像と左目用の仮想オブジェクトの画像をそれぞれ生成している。そして、右目カメラおよび左目カメラによってそれぞれ撮像された画像に対して、右目用の仮想オブジェクトの画像と左目用の仮想オブジェクトの画像をそれぞれ合成して、それらの合成画像を右目LCD(液晶画面)と左目LCDにそれぞれ表示している。
【0004】
また、非特許文献1には、カメラによって撮像された画像におけるマーカーの位置および姿勢に基づいて、実世界におけるマーカーとカメラとの相対位置及び相対姿勢を計算する方法が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−146109号公報
【非特許文献】
【0006】
【非特許文献1】Hirokazu Kato, Mark Billinghurst, "Marker Tracking and HMD Calibration for a Video-Based Augmented Reality Conferencing System," iwar, pp.85, 2nd IEEE and ACM International Workshop on Augmented Reality, 1999
【発明の概要】
【発明が解決しようとする課題】
【0007】
ところで、特許文献1に記載の立体表示装置では、基本的にマーカーと同じ位置に仮想オブジェクトがあるように見えるように仮想オブジェクトを立体表示しているだけである。しかしながら、例えば、マーカーよりも大きく手前に見えるような位置に別の仮想オブジェクトを配置した場合、ユーザにとって、マーカーと同じ位置に配置されている仮想オブジェクトと、マーカーから離れた位置に配置されている仮想オブジェクトの両方が仮想カメラで撮影されている場合に、一方の仮想オブジェクトの画面上での表示ずれ量(立体視のための表示ずれ量)と他方の仮想オブジェクトの画面上での表示ずれ量の差異が大きくなって、それらの仮想オブジェクトの視認が困難なことがあった。
【0008】
それ故、本発明の目的は、立体視可能な立体表示装置において、ユーザが立体視しやすいように仮想オブジェクトを立体表示することができる、画像表示プログラム、装置、システムおよび方法を提供することである。
【課題を解決するための手段】
【0009】
本発明は、上記の課題を解決するために、以下の構成を採用した。
本発明の画像表示プログラムは、仮想空間に配置された仮想オブジェクトを一対の仮想カメラを用いて描画することによって、立体視可能な立体表示装置の画面に当該仮想オブジェクトを立体表示する画像表示プログラムであって、コンピュータを、立体視基準距離決定手段、仮想カメラ設定手段、および立体表示制御手段として機能させる。上記立体視基準距離決定手段は、上記一対の仮想カメラから撮影方向への距離であって、立体視の奥行感の基準となる立体視基準距離を、上記仮想カメラから撮影方向への仮想オブジェクトの距離である撮影距離に応じて変化するように決定する。上記仮想カメラ設定手段は、上記立体視基準距離決定手段によって決定された立体視基準距離が所定の奥行感となるような視体積をそれぞれ持つように、上記一対の仮想カメラを設定する。上記立体表示制御手段は、上記仮想カメラ設定手段によって設定された上記一対の仮想カメラにより上記仮想オブジェクトを撮影して一対の仮想画像を生成し、当該一対の仮想画像を用いて上記立体表示装置の画面に上記仮想オブジェクトを立体表示する。
これにより、立体表示装置の画面を通じてユーザから見たときの仮想オブジェクトの奥行感を適切に設定することができる。
【0010】
なお、上記所定の奥行感は、上記立体表示装置の画面に一致する奥行感であってもよい。
【0011】
また、上記画像表示プログラムは、上記コンピュータを、一対の撮像部で撮像された一対の実世界画像のうちの少なくとも一方の実世界画像から所定の認識対象を認識する認識手段、および上記少なくとも一方の実世界画像における上記認識対象の位置に基づいて、上記一対の仮想カメラと上記認識対象に対応する仮想空間内の所定点の相対的な位置関係を決定する位置関係決定手段としてさらに機能させ、上記立体視基準距離決定手段は、上記一対の仮想カメラから上記所定点までの撮影方向についての距離と、上記撮影距離との差に応じて、上記立体視基準距離を決定してもよい。
【0012】
また、上記立体視基準距離決定手段は、上記立体視基準距離を決めるための基礎となる第1基礎距離と上記撮影距離との差に応じて、上記立体視基準距離を決定してもよい。
【0013】
また、上記立体視基準距離決定手段は、上記撮影距離が上記第1基礎距離から離れるほど、上記立体視基準距離を上記基礎距離から上記撮影距離の方向に近づけてもよい。
【0014】
また、上記立体視基準距離決定手段は、仮想空間に複数の仮想オブジェクトが存在する場合に、当該複数の仮想オブジェクトのそれぞれに対して個別に立体視基準距離を決定し、上記立体表示制御手段は、上記複数の仮想オブジェクトのそれぞれを、対応する立体視基準距離に基づいて個別に描画することによって、当該複数の仮想オブジェクトの画像をそれぞれ生成し、その結果得られた当該複数の仮想オブジェクトの画像を合成することによって、上記仮想画像を生成してもよい。
これにより、ユーザから見たときの各仮想オブジェクトの奥行感を、個別に適切に設定することができる。
【0015】
また、上記立体視基準距離決定手段は、上記仮想オブジェクトの奥行位置が、第1奥行位置から当該第1奥行位置よりも上記一対の仮想カメラ側に位置する第2奥行位置に近づくほど、立体視基準距離が上記一対の仮想カメラにより近づき、かつ立体視基準距離に対する当該仮想オブジェクトの相対位置が上記一対の仮想カメラ側に移動するように、当該仮想オブジェクト用の立体視基準距離を決定してもよい。
これにより、ユーザにとって仮想空間があたかも画面の奥行方向に圧縮されたように見えるため、ユーザが仮想オブジェクトに左右の目の焦点を合わせやすくなる。
【0016】
また、上記立体視基準距離決定手段は、上記仮想オブジェクトが所定の奥行位置に位置するときには、立体視基準距離に対する当該仮想オブジェクトの相対位置が所定の相対位置となるように、当該仮想オブジェクト用の立体視基準距離を決定してもよい。
これにより、仮想空間において所定の奥行距離にある仮想オブジェクトが、ユーザから見て所定の奥行距離にあるように見える。
【0017】
また、上記立体視基準距離決定手段は、上記仮想オブジェクトが第1奥行位置に位置するときには、立体視基準距離に対する当該仮想オブジェクトの相対位置が第1相対位置となるように、当該仮想オブジェクト用の立体視基準距離を決定し、上記仮想オブジェクトが第2奥行位置に位置するときには、立体視基準距離に対する当該仮想オブジェクトの相対位置が第2相対位置となるように、当該仮想オブジェクト用の立体視基準距離を決定し、上記仮想オブジェクトが上記第1奥行位置と上記第2奥行位置の間に位置するときには、上記第1奥行位置および上記第2奥行位置に対する当該仮想オブジェクトの相対位置に応じて、当該仮想オブジェクト用の立体視基準距離を決定してもよい。
これにより、第1奥行位置から第2奥行位置までの範囲に位置する仮想オブジェクトを適切に立体表示することができる。
【0018】
また、上記立体視基準距離決定手段は、上記仮想オブジェクトが上記第1奥行位置と上記第2奥行位置の間に位置するときには、上記第1奥行位置と上記第2奥行位置の間の距離と、上記仮想オブジェクトの奥行位置と上記第2奥行位置との間の距離の比率に基づいて、当該仮想オブジェクト用の立体視基準距離を決定してもよい。
【0019】
また、上記第2奥行位置は、上記第1奥行位置よりも上記一対の仮想カメラ側に位置し、上記第2相対位置は、上記第1相対位置よりも上記一対の仮想カメラ側に位置してもよい。
【0020】
また、上記第2相対位置が、立体視基準距離と上記仮想オブジェクトが同じ奥行位置となるような相対位置であってもよい。
これにより、第2奥行位置にある仮想オブジェクトが、ユーザから見て常に立体表示装置の画面と同じ奥行距離に見える。
【0021】
また、上記第1奥行位置と上記第2奥行位置の相対的な位置関係が、状況によって変化してもよい。
これにより、状況が変化しても、ユーザから見たときの仮想オブジェクトの奥行感を適切に設定することができる。
【0022】
また、上記一対の仮想カメラに対する上記第1奥行位置の相対位置は可変であり、上記一対の仮想カメラに対する上記第2奥行位置の相対位置は固定であってもよい。
【0023】
また、上記画像表示プログラムは、上記コンピュータを、一対の撮像部で撮像された一対の実世界画像のうちの少なくとも一方の実世界画像から所定の認識対象を認識する認識手段、および上記少なくとも一方の実世界画像における上記認識対象の位置に基づいて、上記一対の仮想カメラと上記第1奥行位置の相対的な位置関係を決定する位置関係決定手段としてさらに機能させてもよい。
これにより、一対の撮像部と所定の認識対象との位置関係が変化しても、ユーザから見たときの仮想オブジェクトの奥行感を適切に設定することができる。
【0024】
また、上記立体表示制御手段は、上記一対の実世界画像に、上記一対の仮想カメラを用いて順次生成される上記仮想オブジェクトの一対の画像を順次それぞれ合成することによって、上記立体表示装置に表示するための立体画像を生成してもよい。
これにより、あたかも実世界に存在するかのように仮想オブジェクトを立体表示することができる。
【0025】
また、上記画像表示プログラムは、上記コンピュータを、上記一対の仮想カメラと上記第1奥行位置の間の距離に応じて上記第1相対位置を決定する第1相対位置決定手段としてさらに機能させてもよい。
【0026】
また、上記立体表示制御手段は、上記一対の仮想カメラから等距離の立体視基準距離上の点である立体視基準点を変更することによって、上記立体視基準距離決定手段によって決定された立体視基準距離に応じた上記仮想オブジェクトの立体画像を生成してもよい。
これにより、正常な見た目となるように仮想オブジェクトを立体表示することができる。
【0027】
本発明の画像表示装置は、仮想空間に配置された仮想オブジェクトを一対の仮想カメラを用いて描画することによって、立体視可能な立体表示装置の画面に当該仮想オブジェクトを立体表示する画像表示装置であって、上記一対の仮想カメラから撮影方向への距離であって、立体視の奥行感の基準となる立体視基準距離を、上記仮想カメラから撮影方向への仮想オブジェクトの距離である撮影距離に応じて変化するように決定する立体視基準距離決定手段、上記立体視基準距離決定手段によって決定された立体視基準距離が所定の奥行感となるような視体積をそれぞれ持つように、上記一対の仮想カメラを設定する仮想カメラ設定手段、および上記仮想カメラ設定手段によって設定された上記一対の仮想カメラにより上記仮想オブジェクトを撮影して一対の仮想画像を生成し、当該一対の仮想画像を用いて上記立体表示装置の画面に上記仮想オブジェクトを立体表示する立体表示制御手段を備える。
【0028】
本発明の画像表示システムは、仮想空間に配置された仮想オブジェクトを一対の仮想カメラを用いて描画することによって、立体視可能な立体表示装置の画面に当該仮想オブジェクトを立体表示する画像表示システムであって、上記一対の仮想カメラから撮影方向への距離であって、立体視の奥行感の基準となる立体視基準距離を、上記仮想カメラから撮影方向への仮想オブジェクトの距離である撮影距離に応じて変化するように決定する立体視基準距離決定手段、上記立体視基準距離決定手段によって決定された立体視基準距離が所定の奥行感となるような視体積をそれぞれ持つように、上記一対の仮想カメラを設定する仮想カメラ設定手段、および上記仮想カメラ設定手段によって設定された上記一対の仮想カメラにより上記仮想オブジェクトを撮影して一対の仮想画像を生成し、当該一対の仮想画像を用いて上記立体表示装置の画面に上記仮想オブジェクトを立体表示する立体表示制御手段を備える。
【0029】
本発明の画像表示方法は、仮想空間に配置された仮想オブジェクトを一対の仮想カメラを用いて描画することによって、立体視可能な立体表示装置の画面に当該仮想オブジェクトを立体表示する画像表示方法であって、上記一対の仮想カメラから撮影方向への距離であって、立体視の奥行感の基準となる立体視基準距離を、上記仮想カメラから撮影方向への仮想オブジェクトの距離である撮影距離に応じて変化するように決定する立体視基準距離決定ステップ、上記立体視基準距離決定ステップにおいて決定された立体視基準距離が所定の奥行感となるような視体積をそれぞれ持つように、上記一対の仮想カメラを設定する仮想カメラ設定ステップ、および上記仮想カメラ設定ステップにおいて設定された上記一対の仮想カメラにより上記仮想オブジェクトを撮影して一対の仮想画像を生成し、当該一対の仮想画像を用いて上記立体表示装置の画面に上記仮想オブジェクトを立体表示する立体表示制御ステップを備える。
【発明の効果】
【0030】
本発明によれば、立体視可能な立体表示装置において、ユーザが立体視しやすいように仮想オブジェクトを立体表示することができる。
【図面の簡単な説明】
【0031】
【図1】開状態におけるゲーム装置10の正面図
【図2】開状態におけるゲーム装置10の側面図
【図3】閉状態におけるゲーム装置10の左側面図、正面図、右側面図および背面図
【図4】図1に示す上側ハウジング21のA−A’線断面図
【図5A】3D調整スイッチ25のスライダ25aが最下点(第3の位置)に存在する様子を示す図
【図5B】3D調整スイッチ25のスライダ25aが最下点よりも上方位置(第1の位置)に存在する様子を示す図
【図5C】3D調整スイッチ25のスライダ25aが最上点(第2の位置)に存在する様子を示す図
【図6】ゲーム装置10の内部構成を示すブロック図
【図7】上側LCD22の画面に表示される立体画像の一例を示す図
【図8】ゲーム装置10のメインメモリ32のメモリマップを示す図
【図9】メイン処理の流れを示すフローチャート
【図10】実世界画像描画処理の流れを示すフローチャート
【図11】ゲーム処理の流れを示すフローチャート
【図12】立体視基準距離決定処理の流れを示すフローチャート
【図13】左実世界画像および右実世界画像の一例を示す図
【図14】マーカー認識処理の結果に応じて算出される左仮想カメラ64Lの位置及び姿勢を示す図
【図15】マーカー認識処理の結果に応じて算出される右仮想カメラ64Rの位置及び姿勢を示す図
【図16】左仮想カメラ64Lの位置及び姿勢に基づいて決定される右仮想カメラ64Rの位置を示す図
【図17】左仮想カメラ64Lから見たマーカー座標系の原点の奥行距離Dmを示す図
【図18】実世界画像用の立体視基準距離を示す図
【図19】左実世界画像の描画範囲を示す図
【図20】右実世界画像の描画範囲を示す図
【図21】上側LCD22の画面を通じたマーカーの見え方を示す図
【図22】仮想空間における仮想画面および各種の仮想オブジェクトの位置の一例を示す図
【図23】比率Rpと、立体視基準距離に対する仮想オブジェクトの相対的な奥行位置との対応関係の一例を示す図
【図24】仮想オブジェクトの奥行距離Doと、立体視基準距離Fとの対応関係の一例を示す図
【図25】ドラゴンオブジェクトを描画するときの左仮想カメラ64Lの描画範囲を示す図
【図26】ドラゴンオブジェクトを描画するときの右仮想カメラ64Rの描画範囲を示す図
【図27】弾オブジェクトを描画するときの左仮想カメラ64Lの描画範囲を示す図
【図28】実世界画像に仮想オブジェクトが順次合成される様子を示す図
【図29】仮想オブジェクト毎に決定される立体視基準距離を示す図
【図30】上側LCD22の画面を通じた仮想オブジェクトの見え方を示す図
【図31】比較例として、各仮想オブジェクトに対して同一の立体視基準距離を設定した場合の、上側LCD22の画面を通じた仮想オブジェクトの見え方を示す図
【図32】比較例として、仮想画面をマーカー座標系の原点の近くに配置した場合の、仮想空間における仮想画面および各種の仮想オブジェクトの位置の一例を示す図
【図33】比較例として、仮想画面をマーカー座標系の原点の近くに配置した場合の、上側LCD22の画面を通じた仮想オブジェクトの見え方を示す図
【図34】比較例として、奥行方向に長い仮想オブジェクトを仮想空間に配置した場合の、仮想空間における仮想画面および当該仮想オブジェクトの位置の一例を示す図
【図35】比較例として、奥行方向に長い仮想オブジェクトを仮想空間に配置した場合の、上側LCD22の画面を通じた当該仮想オブジェクトの見え方を示す図
【図36】奥行方向に長い仮想オブジェクトを複数の部位に分割して仮想空間に配置した場合の、仮想空間における仮想画面および当該仮想オブジェクトの各部位の位置の一例を示す図
【図37】奥行方向に長い仮想オブジェクトを複数の部位に分割して仮想空間に配置した場合の、上側LCD22の画面を通じた当該仮想オブジェクトの見え方を示す図
【図38】メイン処理の変形例を示す図
【図39】変形例におけるマーカー座標系の原点の奥行距離DmとオフセットOsとの対応関係の一例を示す図
【発明を実施するための形態】
【0032】
(ゲーム装置の構成)
以下、本発明の一実施形態に係るゲーム装置について説明する。図1〜図3は、ゲーム装置10の外観を示す平面図である。ゲーム装置10は携帯型のゲーム装置であり、図1〜図3に示すように折り畳み可能に構成されている。図1および図2は、開いた状態(開状態)におけるゲーム装置10を示し、図3は、閉じた状態(閉状態)におけるゲーム装置10を示している。図1は、開状態におけるゲーム装置10の正面図であり、図2は、開状態におけるゲーム装置10の右側面図である。ゲーム装置10は、撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置10は、交換可能なメモリカード内に記憶され、または、サーバーや他のゲーム装置から受信したゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラで撮像した画像などのコンピュータグラフィックス処理により生成された画像を画面に表示したりすることができる。
【0033】
まず、図1〜図3を参照して、ゲーム装置10の外観構成について説明する。図1〜図3に示されるように、ゲーム装置10は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に接続されている。本実施形態では、各ハウジング11および21はともに横長の長方形の板状形状であり、互いの長辺部分で回転可能に接続されている。
【0034】
図1および図2に示されるように、下側ハウジング11の上側長辺部分には、下側ハウジング11の内側面(主面)11Bに対して垂直な方向に突起する突起部11Aが設けられる。また、上側ハウジング21の下側長辺部分には、上側ハウジング21の下側面から当該下側面に垂直な方向に突起する突起部21Aが設けられる。下側ハウジング11の突起部11Aと上側ハウジング21の突起部21Aとが連結されることにより、下側ハウジング11と上側ハウジング21とが、折り畳み可能に接続される。
【0035】
(下側ハウジングの説明)
まず、下側ハウジング11の構成について説明する。図1〜図3に示すように、下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12、タッチパネル13、各操作ボタン14A〜14L(図1、図3)、アナログスティック15、LED16A〜16B、挿入口17、および、マイクロフォン用孔18が設けられる。以下、これらの詳細について説明する。
【0036】
図1に示すように、下側LCD12は下側ハウジング11に収納される。下側LCD12は横長形状であり、長辺方向が下側ハウジング11の長辺方向に一致するように配置される。下側LCD12は下側ハウジング11の中央に配置される。下側LCD12は、下側ハウジング11の内側面(主面)に設けられ、下側ハウジング11に設けられた開口部から当該下側LCD12の画面が露出される。ゲーム装置10を使用しない場合には閉状態としておくことによって、下側LCD12の画面が汚れたり傷ついたりすることを防止することができる。下側LCD12の画素数は、例えば、256dot×192dot(横×縦)であってもよい。下側LCD12は、後述する上側LCD22とは異なり、画像を(立体視可能ではなく)平面的に表示する表示装置である。なお、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側LCD12として、任意の解像度の表示装置を利用することができる。
【0037】
図1に示されるように、ゲーム装置10は、入力装置として、タッチパネル13を備えている。タッチパネル13は、下側LCD12の画面上に装着されている。なお、本実施形態では、タッチパネル13は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。本実施形態では、タッチパネル13として、下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度が一致している必要はない。また、下側ハウジング11の上側面には挿入口17(図1および図3(d)に示す点線)が設けられている。挿入口17は、タッチパネル13に対する操作を行うために用いられるタッチペン28を収納することができる。なお、タッチパネル13に対する入力は通常タッチペン28を用いて行われるが、タッチペン28に限らずユーザの指でタッチパネル13に対する入力をすることも可能である。
【0038】
各操作ボタン14A〜14Lは、所定の入力を行うための入力装置である。図1に示されるように、下側ハウジング11の内側面(主面)には、各操作ボタン14A〜14Lのうち、十字ボタン14A(方向入力ボタン14A)、ボタン14B、ボタン14C、ボタン14D、ボタン14E、電源ボタン14F、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lが、設けられる。十字ボタン14Aは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン14B、ボタン14C、ボタン14D、ボタン14Eは、十字状に配置される。ボタン14A〜14E、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lには、ゲーム装置10が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン14Aは選択操作等に用いられ、各操作ボタン14B〜14Eは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン14Fは、ゲーム装置10の電源をオン/オフするために用いられる。
【0039】
アナログスティック15は、方向を指示するデバイスであり、下側ハウジング11の内側面の下側LCD12より左側領域の上部領域に設けられる。図1に示すように、十字ボタン14Aは下側LCD12より左側領域の下部領域に設けられるので、アナログスティック15は、十字ボタン14Aの上方に設けられる。また、アナログスティック15、および、十字ボタン14Aは、下側ハウジングを把持した左手の親指で操作可能な位置に設計される。また、アナログスティック15を上部領域に設けたことにより、下側ハウジング11を把持する左手の親指が自然と位置するところにアナログスティック15が配され、十字ボタン14Aは、左手の親指を少し下にずらした位置に配される。アナログスティック15は、そのキートップが、下側ハウジング11の内側面に平行にスライドするように構成されている。アナログスティック15は、ゲーム装置10が実行するプログラムに応じて機能する。例えば、3次元仮想空間に所定のオブジェクトが登場するゲームがゲーム装置10によって実行される場合、アナログスティック15は、当該所定のオブジェクトを3次元仮想空間内で移動させるための入力装置として機能する。この場合において、所定のオブジェクトはアナログスティック15のキートップがスライドした方向に移動される。なお、アナログスティック15として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いても良い。
【0040】
十字状に配置される、ボタン14B、ボタン14C、ボタン14D、ボタン14Eの4つのボタンは、下側ハウジング11を把持する右手の親指が自然と位置するところに配置される。また、これらの4つのボタンと、アナログスティック15とは、下側LCD12を挟んで、左右対称に配置される。これにより、ゲームプログラムによっては、例えば、左利きの人が、これらの4つのボタンを使用して方向指示入力をすることも可能である。
【0041】
また、下側ハウジング11の内側面には、マイクロフォン用孔18が設けられる。マイクロフォン用孔18の下部には後述する音声入力装置としてのマイク(図6参照)が設けられ、当該マイクがゲーム装置10の外部の音を検出する。
【0042】
図3(a)は閉状態におけるゲーム装置10の左側面図であり、図3(b)は閉状態におけるゲーム装置10の正面図であり、図3(c)は閉状態におけるゲーム装置10の右側面図であり、図3(d)は閉状態におけるゲーム装置10の背面図である。図3(b)および(d)に示されるように、下側ハウジング11の上側面には、Lボタン14GおよびRボタン14Hが設けられている。Lボタン14Gは、下側ハウジング11の上面の左端部に設けられ、Rボタン14Hは、下側ハウジング11の上面の右端部に設けられる。Lボタン14GおよびRボタン14Hは、例えば、撮像部のシャッターボタン(撮影指示ボタン)として機能することができる。また、図3(a)に示されるように、下側ハウジング11の左側面には、音量ボタン14Iが設けられる。音量ボタン14Iは、ゲーム装置10が備えるスピーカの音量を調整するために用いられる。
【0043】
図3(a)に示されるように、下側ハウジング11の左側面には開閉可能なカバー部11Cが設けられる。このカバー部11Cの内側には、ゲーム装置10とデータ保存用外部メモリ45とを電気的に接続するためのコネクタ(図示せず)が設けられる。データ保存用外部メモリ45は、コネクタに着脱自在に装着される。データ保存用外部メモリ45は、例えば、ゲーム装置10によって撮像された画像のデータを記憶(保存)するために用いられる。なお、上記コネクタおよびそのカバー部11Cは、下側ハウジング11の右側面に設けられてもよい。
【0044】
また、図3(d)に示されるように、下側ハウジング11の上側面には、ゲーム装置10とゲームプログラムを記録した外部メモリ44を挿入するための挿入口11Dが設けられ、その挿入口11Dの内部には、外部メモリ44と電気的に着脱自在に接続するためのコネクタ(図示せず)が設けられる。当該外部メモリ44がゲーム装置10に接続されることにより、所定のゲームプログラムが実行される。なお、上記コネクタおよびその挿入口11Dは、下側ハウジング11の他の側面(例えば、右側面等)に設けられてもよい。
【0045】
また、図1および図3(c)に示されるように、下側ハウジング11の下側面にはゲーム装置10の電源のON/OFF状況をユーザに通知する第1LED16A、下側ハウジング11の右側面にはゲーム装置10の無線通信の確立状況をユーザに通知する第2LED16Bが設けられる。ゲーム装置10は他の機器との間で無線通信を行うことが可能であり、第1LED16Bは、無線通信が確立している場合に点灯する。ゲーム装置10は、例えば、IEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。下側ハウジング11の右側面には、この無線通信の機能を有効/無効にする無線スイッチ19が設けられる(図3(c)参照)。
【0046】
なお、図示は省略するが、下側ハウジング11には、ゲーム装置10の電源となる充電式電池が収納され、下側ハウジング11の側面(例えば、上側面)に設けられた端子を介して当該電池を充電することができる。
【0047】
(上側ハウジングの説明)
次に、上側ハウジング21の構成について説明する。図1〜図3に示すように、上側ハウジング21には、上側LCD(Liquid Crystal Display:液晶表示装置)22、外側撮像部23(外側撮像部(左)23aおよび外側撮像部(右)23b)、内側撮像部24、3D調整スイッチ25、および、3Dインジケータ26が設けられる。以下、これらの詳細について説明する。
【0048】
図1に示すように、上側LCD22は上側ハウジング21に収納される。上側LCD22は、横長形状であり、長辺方向が上側ハウジング21の長辺方向に一致するように配置される。上側LCD22は上側ハウジング21の中央に配置される。上側LCD22の画面の面積は、下側LCD12の画面の面積よりも大きく設定される。また、上側LCD22の画面は、下側LCD12の画面よりも横長に設定される。すなわち、上側LCD22の画面のアスペクト比における横幅の割合は、下側LCD12の画面のアスペクト比における横幅の割合よりも大きく設定される。
【0049】
上側LCD22の画面は、上側ハウジング21の内側面(主面)21Bに設けられ、上側ハウジング21に設けられた開口部から当該上側LCD22の画面が露出される。また、図2に示すように、上側ハウジング21の内側面は、透明なスクリーンカバー27によって覆われている。当該スクリーンカバー27は、上側LCD22の画面を保護するとともに、上側LCD22と上側ハウジング21の内側面と一体的にさせ、これにより統一感を持たせている。上側LCD22の画素数は、例えば、640dot×200dot(横×縦)であってもよい。なお、本実施形態では上側LCD22は液晶表示装置であるとしたが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置などが利用されてもよい。また、上側LCD22として、任意の解像度の表示装置を利用することができる。
【0050】
上側LCD22は、立体視可能な画像を表示することが可能な表示装置である。また、本実施例では、実質的に同一の表示領域を用いて左目用画像と右目用画像が表示される。具体的には、左目用画像と右目用画像が所定単位で(例えば、1列ずつ)横方向に交互に表示される方式の表示装置である。または、左目用画像と右目用画像とが時分割で交互に表示される方式の表示装置であってもよい。また、本実施例では、裸眼立体視可能な表示装置である。そして、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式(視差バリア方式)のものが用いられる。本実施形態では、上側LCD22はパララックスバリア方式のものとする。上側LCD22は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像(立体画像)を表示する。すなわち、上側LCD22は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像を視認させることにより、ユーザにとって立体感のある立体画像(立体視可能な画像)を表示することができる。また、上側LCD22は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる(上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである)。このように、上側LCD22は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する(平面視画像を表示する)平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する3D調整スイッチ25によって行われる。
【0051】
外側撮像部23は、上側ハウジング21の外側面(上側LCD22が設けられた主面と反対側の背面)21Dに設けられた2つの撮像部(23aおよび23b)の総称である。外側撮像部(左)23aと外側撮像部(右)23bの撮像方向は、いずれも当該外側面21Dの外向きの法線方向である。また、これらの撮像部はいずれも、上側LCD22の表示面(内側面)の法線方向と180度反対の方向に設計される。すなわち、外側撮像部(左)23aの撮像方向および外側撮像部(右)23bの撮像方向は、平行である。外側撮像部(左)23aと外側撮像部(右)23bとは、ゲーム装置10が実行するプログラムによって、ステレオカメラとして使用することが可能である。また、プログラムによっては、2つの外側撮像部(23aおよび23b)のいずれか一方を単独で用いて、外側撮像部23を非ステレオカメラとして使用することも可能である。また、プログラムによっては、2つの外側撮像部(23aおよび23b)で撮像した画像を合成してまたは補完的に使用することにより撮像範囲を広げた撮像をおこなうことも可能である。本実施形態では、外側撮像部23は、外側撮像部(左)23aおよび外側撮像部(右)23bの2つの撮像部で構成される。外側撮像部(左)23aおよび外側撮像部(右)23bは、それぞれ所定の共通の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0052】
図1の破線および図3(b)の実線で示されるように、外側撮像部23を構成する外側撮像部(左)23aおよび外側撮像部(右)23bは、上側LCD22の画面の横方向と平行に並べられて配置される。すなわち、2つの撮像部を結んだ直線が上側LCD22の画面の横方向と平行になるように、外側撮像部(左)23aおよび外側撮像部(右)23bが配置される。図1の破線で示す23aおよび23bは、上側ハウジング21の内側面とは反対側の外側面に存在する外側撮像部(左)23aおよび外側撮像部(右)23bをそれぞれ表している。図1に示すように、ユーザが上側LCD22の画面を正面から視認した場合に、外側撮像部(左)23aは左側に外側撮像部(右)23bは右側にそれぞれ位置している。外側撮像部23をステレオカメラとして機能させるプログラムが実行されている場合、外側撮像部(左)23aは、ユーザの左目で視認される左目用画像を撮像し、外側撮像部(右)23bは、ユーザの右目で視認される右目用画像を撮像する。外側撮像部(左)23aおよび外側撮像部(右)23bの間隔は、人間の両目の間隔程度に設定され、例えば、30mm〜70mmの範囲で設定されてもよい。なお、外側撮像部(左)23aおよび外側撮像部(右)23bの間隔は、この範囲に限らない。
【0053】
なお、本実施例においては、外側撮像部(左)23aおよび外側撮像部(右)23はハウジングに固定されており、撮像方向を変更することはできない。
【0054】
また、外側撮像部(左)23aおよび外側撮像部(右)23bは、上側LCD22(上側ハウジング21)の左右方向に関して中央から対称となる位置にそれぞれ配置される。すなわち、外側撮像部(左)23aおよび外側撮像部(右)23bは、上側LCD22を左右に2等分する線に対して対称の位置にそれぞれ配置される。また、外側撮像部(左)23aおよび外側撮像部(右)23bは、上側ハウジング21を開いた状態において、上側ハウジング21の上部であって、上側LCD22の画面の上端よりも上方の位置の裏側に配置される。すなわち、外側撮像部(左)23aおよび外側撮像部(右)23bは、上側ハウジング21の外側面であって、上側LCD22を外側面に投影した場合、投影した上側LCD22の画面の上端よりも上方に配置される。
【0055】
このように、外側撮像部23の2つの撮像部(23aおよび23b)が、上側LCD22の左右方向に関して中央から対称の位置に配置されることにより、ユーザが上側LCD22を正視した場合に、外側撮像部23の撮像方向をユーザの視線方向と一致させることができる。また、外側撮像部23は、上側LCD22の画面の上端より上方の裏側の位置に配置されるため、外側撮像部23と上側LCD22とが上側ハウジング21の内部で干渉することがない。従って、外側撮像部23を上側LCD22の画面の裏側に配置する場合と比べて、上側ハウジング21を薄く構成することが可能となる。
【0056】
内側撮像部24は、上側ハウジング21の内側面(主面)21Bに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部24は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0057】
図1に示すように、内側撮像部24は、上側ハウジング21を開いた状態において、上側ハウジング21の上部であって、上側LCD22の画面の上端よりも上方に配置され、上側ハウジング21の左右方向に関して中央の位置(上側ハウジング21(上側LCD22の画面)を左右に2等分する線の線上)に配置される。具体的には、図1および図3(b)に示されるように、内側撮像部24は、上側ハウジング21の内側面であって、外側撮像部23の左右の撮像部(外側撮像部(左)23aおよび外側撮像部(右)23b)の中間の裏側の位置に配置される。すなわち、上側ハウジング21の外側面に設けられた外側撮像部23の左右の撮像部を上側ハウジング21の内側面に投影した場合、当該投影した左右の撮像部の中間に、内側撮像部24が設けられる。図3(b)で示される破線24は、上側ハウジング21の内側面に存在する内側撮像部24を表している。
【0058】
このように、内側撮像部24は、外側撮像部23とは反対方向を撮像する。内側撮像部24は、上側ハウジング21の内側面であって、外側撮像部23の左右の撮像部の中間位置の裏側に設けられる。これにより、ユーザが上側LCD22を正視した際、内側撮像部24でユーザの顔を正面から撮像することができる。また、外側撮像部23の左右の撮像部と内側撮像部24とが上側ハウジング21の内部で干渉することがないため、上側ハウジング21を薄く構成することが可能となる。
【0059】
3D調整スイッチ25は、スライドスイッチであり、上述のように上側LCD22の表示モードを切り替えるために用いられるスイッチである。また、3D調整スイッチ25は、上側LCD22に表示された立体視可能な画像(立体画像)の立体感を調整するために用いられる。図1〜図3に示されるように、3D調整スイッチ25は、上側ハウジング21の内側面および右側面の端部に設けられ、ユーザが上側LCD22を正視した場合に、当該3D調整スイッチ25を視認できる位置に設けられる。また、3D調整スイッチ25の操作部は、内側面および右側面の両方に突出しており、どちらからも視認および操作することができる。なお、3D調整スイッチ25以外のスイッチは全て下側ハウジング11に設けられる。
【0060】
図4は、図1に示す上側ハウジング21のA−A’線断面図である。図4に示すように、上側ハウジング21の内側面の右端部には、凹部21Cが形成され、当該凹部21Cに3D調整スイッチ25が設けられる。3D調整スイッチ25は、図1および図2に示されるように、上側ハウジング21の正面および右側面から視認可能に配置される。3D調整スイッチ25のスライダ25aは、所定方向(上下方向)の任意の位置にスライド可能であり、当該スライダ25aの位置に応じて上側LCD22の表示モードが設定される。
【0061】
図5Aから図5Cは、3D調整スイッチ25のスライダ25aがスライドする様子を示す図である。図5Aは、3D調整スイッチ25のスライダ25aが最下点(第3の位置)に存在する様子を示す図である。図5Bは、3D調整スイッチ25のスライダ25aが最下点よりも上方位置(第1の位置)に存在する様子を示す図である。図5Cは、3D調整スイッチ25のスライダ25aが最上点(第2の位置)に存在する様子を示す図である。
【0062】
図5Aに示すように、3D調整スイッチ25のスライダ25aが最下点位置(第3の位置)に存在する場合、上側LCD22は平面表示モードに設定され、上側LCD22の画面には平面画像が表示される(なお、上側LCD22を立体表示モードのままとして、左目用画像と右目用画像を同一の画像とすることにより平面表示してもよい)。一方、図5Bに示す位置(最下点より上側の位置(第1の位置))から図5Cに示す位置(最上点の位置(第2の位置))までの間にスライダ25aが存在する場合、上側LCD22は立体表示モードに設定される。この場合、上側LCD22の画面には立体視可能な画像が表示される。スライダ25aが第1の位置から第2の位置の間に存在する場合、スライダ25aの位置に応じて、立体画像の見え方が調整される。具体的には、スライダ25aの位置に応じて、右目用画像および左目用画像の横方向の位置のずれ量が調整される。3D調整スイッチ25のスライダ25aは、第3の位置で固定されるように構成されており、第1の位置と第2の位置との間では上下方向に任意の位置にスライド可能に構成されている。例えば、スライダ25aは、第3の位置において、3D調整スイッチ25を形成する側面から図5Aに示す横方向に突出した凸部(図示せず)によって固定されて、所定以上の力が上方に加わらないと第3の位置よりも上方にスライドしないように構成されている。第3の位置から第1の位置にスライダ25aが存在する場合、立体画像の見え方は調整されないが、これはいわゆるあそびである。他の例においては、あそびをなくして、第3の位置と第1の位置とを同じ位置としてもよい。また、第3の位置を第1の位置と第2の位置の間としてもよい。その場合、スライダを第3の位置から第1の位置の方向に動かした場合と、第2の方向に動かした場合とで、右目用画像および左目用画像の横方向の位置のずれ量の調整する方向が逆になる。
【0063】
3Dインジケータ26は、上側LCD22が立体表示モードか否かを示す。3Dインジケータ26は、LEDであり、上側LCD22の立体表示モードが有効の場合に点灯する。なお、3Dインジケータ26は、上側LCD22が立体表示モードになっており、かつ、立体視画像を表示するプログラム処理が実行されているとき(すなわち、3D調整スイッチが上記第1の位置から上記第2の位置にあるときに、左目用画像と右目用画像が異なるような画像処理が実行されているとき)に限り、点灯するようにしてもよい。図1に示されるように、3Dインジケータ26は、上側ハウジング21の内側面に設けられ、上側LCD22の画面近傍に設けられる。このため、ユーザが上側LCD22の画面を正視した場合、ユーザは3Dインジケータ26を視認しやすい。従って、ユーザは上側LCD22の画面を視認している状態でも、上側LCD22の表示モードを容易に認識することができる。
【0064】
また、上側ハウジング21の内側面には、スピーカ孔21Eが設けられる。後述するスピーカ43からの音声がこのスピーカ孔21Eから出力される。
【0065】
(ゲーム装置10の内部構成)
次に、図6を参照して、ゲーム装置10の内部の電気的構成について説明する。図6は、ゲーム装置10の内部構成を示すブロック図である。図6に示すように、ゲーム装置10は、上述した各部に加えて、情報処理部31、メインメモリ32、外部メモリインターフェイス(外部メモリI/F)33、データ保存用外部メモリI/F34、データ保存用内部メモリ35、無線通信モジュール36、ローカル通信モジュール37、リアルタイムクロック(RTC)38、加速度センサ39、電源回路40、およびインターフェイス回路(I/F回路)41等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング11(または上側ハウジング21でもよい)内に収納される。
【0066】
情報処理部31は、所定のプログラムを実行するためのCPU(Central Processing Unit)311、画像処理を行うGPU(Graphics Processing Unit)312等を含む情報処理手段である。情報処理部31のCPU311は、ゲーム装置10内のメモリ(例えば外部メモリI/F33に接続された外部メモリ44やデータ保存用内部メモリ35)に記憶されているプログラムを実行することによって、当該プログラムに応じた処理(例えば、撮影処理や、後述する画像表示処理)を実行する。なお、情報処理部31のCPU311によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部31は、VRAM(Video RAM)313を含む。情報処理部31のGPU312は、情報処理部31のCPU311からの命令に応じて画像を生成し、VRAM313に描画する。そして、情報処理部31のGPU312は、VRAM313に描画された画像を上側LCD22及び/又は下側LCD12に出力し、上側LCD22及び/又は下側LCD12に当該画像が表示される。
【0067】
情報処理部31には、メインメモリ32、外部メモリI/F33、データ保存用外部メモリI/F34、および、データ保存用内部メモリ35が接続される。外部メモリI/F33は、外部メモリ44を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリI/F34は、データ保存用外部メモリ45を着脱自在に接続するためのインターフェイスである。
【0068】
メインメモリ32は、情報処理部31(のCPU311)のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ32は、上記プログラムに基づく処理に用いられる各種データを一時的に記憶したり、外部(外部メモリ44や他の機器等)から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ32として例えばPSRAM(Pseudo−SRAM)を用いる。
【0069】
外部メモリ44は、情報処理部31によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ44は、例えば読み取り専用の半導体メモリで構成される。外部メモリ44が外部メモリI/F33に接続されると、情報処理部31は外部メモリ44に記憶されたプログラムを読み込むことができる。情報処理部31が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ45は、不揮発性の読み書き可能なメモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ45には、外側撮像部23で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ45がデータ保存用外部メモリI/F34に接続されると、情報処理部31はデータ保存用外部メモリ45に記憶された画像を読み込み、上側LCD22及び/又は下側LCD12に当該画像を表示することができる。
【0070】
データ保存用内部メモリ35は、読み書き可能な不揮発性メモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ35には、無線通信モジュール36を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【0071】
無線通信モジュール36は、例えばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール37は、所定の通信方式(例えば赤外線通信)により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール36およびローカル通信モジュール37は情報処理部31に接続される。情報処理部31は、無線通信モジュール36を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール37を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0072】
また、情報処理部31には、加速度センサ39が接続される。加速度センサ39は、3軸(xyz軸)方向に沿った直線方向の加速度(直線加速度)の大きさを検出する。加速度センサ39は、下側ハウジング11の内部に設けられる。加速度センサ39は、図1に示すように、下側ハウジング11の長辺方向をx軸、下側ハウジング11の短辺方向をy軸、下側ハウジング11の内側面(主面)に対して垂直な方向をz軸として、各軸の直線加速度の大きさを検出する。なお、加速度センサ39は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ39は1軸又は2軸方向を検出する加速度センサであってもよい。情報処理部31は、加速度センサ39が検出した加速度を示すデータ(加速度データ)を受信して、ゲーム装置10の姿勢や動きを検出することができる。
【0073】
また、情報処理部31には、RTC38および電源回路40が接続される。RTC38は、時間をカウントして情報処理部31に出力する。情報処理部31は、RTC38によって計時された時間に基づき現在時刻(日付)を計算する。電源回路40は、ゲーム装置10が有する電源(下側ハウジング11に収納される上記充電式電池)からの電力を制御し、ゲーム装置10の各部品に電力を供給する。
【0074】
また、情報処理部31には、I/F回路41が接続される。I/F回路41には、マイク42およびスピーカ43が接続される。具体的には、I/F回路41には、図示しないアンプを介してスピーカ43が接続される。マイク42は、ユーザの音声を検知して音声信号をI/F回路41に出力する。アンプは、I/F回路41からの音声信号を増幅し、音声をスピーカ43から出力させる。また、タッチパネル13はI/F回路41に接続される。I/F回路41は、マイク42およびスピーカ43(アンプ)の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部31に出力する。タッチ位置データは、タッチパネル13の入力面において入力が行われた位置の座標を示す。なお、タッチパネル制御回路は、タッチパネル13からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。情報処理部31は、タッチ位置データを取得することにより、タッチパネル13に対して入力が行われた位置を知ることができる。
【0075】
操作ボタン14は、上記各操作ボタン14A〜14Lからなり、情報処理部31に接続される。操作ボタン14から情報処理部31へは、各操作ボタン14A〜14Iに対する入力状況(押下されたか否か)を示す操作データが出力される。情報処理部31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に従った処理を実行する。
【0076】
下側LCD12および上側LCD22は情報処理部31に接続される。下側LCD12および上側LCD22は、情報処理部31(のGPU312)の指示に従って画像を表示する。本実施形態では、情報処理部31は、上側LCD22に立体画像(立体視可能な画像)を表示させる。
【0077】
具体的には、情報処理部31は、上側LCD22のLCDコントローラ(図示せず)と接続され、当該LCDコントローラに対して視差バリアのON/OFFを制御する。上側LCD22の視差バリアがONになっている場合、情報処理部31のVRAM313に格納された右目用画像と左目用画像とが、上側LCD22に出力される。より具体的には、LCDコントローラは、右目用画像について縦方向に1ライン分の画素データを読み出す処理と、左目用画像について縦方向に1ライン分の画素データを読み出す処理とを交互に繰り返すことによって、VRAM313から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に1ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側LCD22の画面に表示される。そして、上側LCD22の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側LCD22の画面には立体視可能な画像が表示される。
【0078】
外側撮像部23および内側撮像部24は、情報処理部31に接続される。外側撮像部23および内側撮像部24は、情報処理部31の指示に従って画像を撮像し、撮像した画像データを情報処理部31に出力する。
【0079】
3D調整スイッチ25は、情報処理部31に接続される。3D調整スイッチ25は、スライダ25aの位置に応じた電気信号を情報処理部31に送信する。
【0080】
また、3Dインジケータ26は、情報処理部31に接続される。情報処理部31は、3Dインジケータ26の点灯を制御する。例えば、情報処理部31は、上側LCD22が立体表示モードである場合、3Dインジケータ26を点灯させる。以上がゲーム装置10の内部構成の説明である。
【0081】
(ゲーム装置10の動作の概要)
以下、本実施形態におけるゲーム装置10の動作の概要について説明する。本実施形態では、画像表示プログラムに基づいて、外側撮像部23(外側撮像部(左)23a、外側撮像部(右)23b)によって現在撮像されている実世界の画像と、3次元の仮想空間に存在する仮想オブジェクトの画像とを合成した合成画像が、上側LCD22の画面に立体視可能に表示される。
【0082】
図7は、外側撮像部23によってマーカー60が撮像されているときに上側LCD22の画面に表示される立体画像の一例を示している。マーカー60には、矢印を含む正方形が描かれており、CPU311は、外側撮像部23から取得される画像(実世界画像)に対して例えばパターンマッチング等の画像処理を行うことによって、当該画像にマーカーが含まれているか否かを判定することができる。外側撮像部23によってマーカー60が撮像されているときには、上側LCD22には、マーカー60の上にドラゴンを模した仮想オブジェクト(以下、ドラゴンオブジェクトとも称す)61が立体視可能に表示される。上側LCD22には、ドラゴンオブジェクト61の他にも、ドラゴンが吐いた炎を模した仮想オブジェクト(以下、炎オブジェクトとも称す)62や、ユーザからの発射指示(例えば、Lボタン14GまたはRボタン14Hの押下)に応じて発射される弾を模した仮想オブジェクト(以下、弾オブジェクトとも称す)63などが立体視可能に表示される。
【0083】
なお、ユーザーがゲーム装置10を移動させることによって、上側LCD22の画面に表示されるマーカー60の位置および向きが変化すると、それに応じて、仮想オブジェクト61〜63の位置および向きが変化する。よって、ユーザーには仮想オブジェクト61〜63があたかも実世界に本当に存在しているかのように見える。
【0084】
以下、図8〜図33を参照して、ゲーム装置10において画像表示プログラムに基づいて実行される画像表示処理の詳細について説明する。
【0085】
(メモリマップ)
まず、画像表示プログラムの実行中にメインメモリ32に記憶される主なデータについて説明する。図8は、ゲーム装置10のメインメモリ32のメモリマップを示す図である。図8に示されるように、メインメモリ32には、画像表示プログラム70、左実世界画像71L、右実世界画像71R、左ビュー行列72L、右ビュー行列72R、仮想オブジェクト情報73、各種変数74等が記憶される。
【0086】
画像表示プログラム70は、CPU311に上記画像表示処理を実行させるためのプログラムである。
【0087】
左実世界画像71Lは、外側撮像部(左)23aによって撮像された画像である。
【0088】
右実世界画像71Rは、外側撮像部(右)23bによって撮像された画像である。
【0089】
左ビュー行列72Lは、左仮想カメラから見た仮想オブジェクトを描画する際に用いられる行列であり、マーカー座標系で表された座標を左仮想カメラ座標系で表された座標へと変換するための座標変換行列である。
【0090】
右ビュー行列72Rは、右仮想カメラから見た仮想オブジェクトを描画する際に用いられる行列であり、マーカー座標系で表された座標を右仮想カメラ座標系で表された座標へと変換するための座標変換行列である。
【0091】
仮想オブジェクト情報73は、仮想オブジェクトに関連する情報であって、仮想オブジェクトの形状や模様を表すモデル情報や、仮想空間における仮想オブジェクトの現在位置などを含む。
【0092】
各種変数74は、画像表示プログラム70の実行の際に用いられる変数であって、後述するオフセットOsなどを含む。
【0093】
ゲーム装置10の電源が投入されると、ゲーム装置10の情報処理部31(CPU311)は、図示しないROMに記憶されている起動プログラムを実行し、これによってメインメモリ32等の各ユニットが初期化される。次に、データ保存用内部メモリ35に記憶された画像表示プログラムがメインメモリ32に読み込まれ、情報処理部31のCPU311によって当該画像表示プログラムの実行が開始される。
【0094】
以下、図9〜図12のフローチャートを参照して、画像表示プログラムに基づいて実行される処理の流れを説明する。なお、図9〜図12のフローチャートは、単なる一例に過ぎない。したがって、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、変数の値や、判断ステップで利用される閾値も、単なる一例に過ぎず、必要に応じて他の値を採用してもよい。また、本実施形態では、図9〜図12のフローチャートの全てのステップの処理をCPU311が実行するものとして説明するが、図9〜図12のフローチャートの一部のステップの処理を、CPU311以外のプロセッサや専用回路が実行するようにしてもよい。
【0095】
(メイン処理)
図9は、画像表示プログラム70に基づいてCPU311によって実行されるメイン処理の流れを示すフローチャートである。以下、メイン処理の詳細について説明する。
【0096】
図9のステップS10において、CPU311は、マーカー認識処理を行う。以下、マーカー認識処理の概要について説明する。
【0097】
前述のように、上側ハウジング21において、外側撮像部(左)23aと外側撮像部(右)23bは一定の間隔(例えば3.5cm)だけ離れている。したがって、外側撮像部(左)23aと外側撮像部(右)23bによって同時にマーカー60を撮像した場合、図13に示すように、外側撮像部(左)23aによって撮像された左実世界画像におけるマーカー60の位置及び姿勢と、外側撮像部(右)23bによって撮像された右実世界画像におけるマーカー60の位置及び姿勢との間には、視差によるズレが生じる。CPU311は、左実世界画像および右実世界画像の少なくとも一方に対してマーカー認識処理を行う。
【0098】
例えば、左実世界画像に対してマーカー認識処理を行う場合には、CPU311は、パターンマッチング手法等によって左実世界画像にマーカー60が含まれているか否かを判断し、左実世界画像にマーカー60が含まれている場合には、左実世界画像におけるマーカー60の位置および姿勢に基づいて、左ビュー行列72Lを算出する。なお、左ビュー行列72Lは、左実世界画像におけるマーカー60の位置および姿勢に基づいて計算される左仮想カメラの位置および姿勢を反映した行列である。より正確には、図14に示すように、仮想空間におけるマーカー座標系(実世界におけるマーカー60の位置に対応する仮想空間内の所定点を原点とした座標系)で表された座標を、左実世界画像におけるマーカー60の位置および姿勢に基づいて計算された左仮想カメラ64L(実世界の外側撮像部(左)23aに対応する仮想空間内の仮想カメラ)の位置および姿勢を基準とした左仮想カメラ座標系で表される座標へと変換するための座標変換行列である。
【0099】
また例えば、右実世界画像に対してマーカー認識処理を行う場合には、CPU311は、パターンマッチング手法等によって右実世界画像にマーカー60が含まれているか否かを判断し、右実世界画像にマーカー60が含まれている場合には、右実世界画像におけるマーカー60の位置および姿勢に基づいて、右ビュー行列72Rを算出する。なお、右ビュー行列72Rは、右実世界画像におけるマーカー60の位置および姿勢に基づいて計算される右仮想カメラの位置および姿勢を反映した行列である。より正確には、図15に示すように、仮想空間におけるマーカー座標系(実世界におけるマーカー60の位置に対応する仮想空間内の所定点を原点とした座標系)で表された座標を、右実世界画像におけるマーカー60の位置および姿勢に基づいて計算された右仮想カメラ64R(実世界の外側撮像部(右)23bに対応する仮想空間内の仮想カメラ)の位置および姿勢を基準とした右仮想カメラ座標系で表される座標へと変換するための座標変換行列である。
【0100】
なお、マーカー認識精度に誤差が全く無く、かつゲーム装置10に対する外側撮像部(左)23aおよび外側撮像部(右)23bの取り付け精度に誤差が全く無いと仮定すると、右実世界画像のマーカー認識結果から計算される右仮想カメラ64Rの位置は、左実世界画像のマーカー認識結果から計算される左仮想カメラ64Lの位置を、左仮想カメラ座標系のx軸方向に沿って一定距離だけずらした位置となり、右実世界画像のマーカー認識結果から計算される右仮想カメラ64Rの姿勢と左実世界画像のマーカー認識結果から計算される左仮想カメラ64Lの姿勢は同じとなる(すなわち、左仮想カメラ座標系のx軸,y軸,z軸が、右仮想カメラ座標系のx軸,y軸,z軸とそれぞれ平行となる)。しかしながら実際には、マーカー認識精度にも、ゲーム装置10に対する外側撮像部(左)23aおよび外側撮像部(右)23bの取り付け精度にも誤差があるため、左実世界画像のマーカー認識結果から計算される左仮想カメラ64Lの位置及び姿勢と、右実世界画像のマーカー認識結果から計算される右仮想カメラ64Rの位置及び姿勢は、理想的な関係にはならない(例えば、左仮想カメラ64Lと右仮想カメラ64Rが近すぎたり、離れすぎたり、左仮想カメラ64Lの姿勢と右仮想カメラ64Rの姿勢が異なったりする)。よって、このようにして計算された左仮想カメラ64Lおよび右仮想カメラ64Rの位置及び姿勢をそのまま用いて仮想オブジェクトを上側LCD22に立体表示する場合には、仮想オブジェクトが正常に立体視できないことがあり得る。そこで本実施形態では、一例として、図16に示すように、左実世界画像のマーカー認識結果から計算される左仮想カメラ64Lの位置及び姿勢に基づいて、右仮想カメラ64Rの位置及び姿勢を決定している。
【0101】
ステップS11において、CPU311は、仮想空間におけるマーカー座標系の原点の奥行距離Dmを計算する。この明細書において、「奥行距離」とは、仮想カメラ(左仮想カメラ64L、または右仮想カメラ64R、またはそれらの中間点)から見た深さ(撮影方向についての距離)を意味するものとする。また、現実世界のカメラについても、カメラから見た深さ(撮影方向についての距離)を奥行距離と呼ぶ。例えば、図17に示すように、(0,0,0)に左ビュー行列72Lを乗算した結果得られる座標(すなわち、左仮想カメラ座標系で表されたマーカー座標系の原点の座標)のZ軸値を、マーカー座標系の原点の奥行距離Dmとして決定する。
【0102】
ステップS12において、CPU311は、実世界画像描画処理を行う。以下、図10のフローチャートを参照して、実世界画像描画処理の詳細を説明する。
【0103】
(実世界画像描画処理)
図10のステップS20において、CPU311は、ステップS11で計算したマーカー座標系の原点の奥行距離Dmと、オフセットOs(本実施形態では固定値(例えば5cm)とする)とに基づいて、左実世界画像の描画範囲を決定する。オフセットOsとは、ユーザから見て上側LCD22の画面よりもどれだけ奥にマーカー60があるように見えるかを示す変数である。オフセットOsは、現実世界における単位(例えばcm)で定義されていてもよいし、仮想空間(またはマーカー座標系)における単位で定義されていてもよい。
【0104】
具体的には、まず、図18に示すように、CPU311は、マーカー座標系の原点の奥行距離DmからオフセットOsを減算することによって、実世界画像用の立体視基準距離を決定する。「立体視基準距離」とは、奥行距離であって、カメラからその撮影方向にその距離だけ離れた表示対象がユーザーから見て所定の奥行感(以下、奥行感A)で見える距離であり、実世界画像用の立体視基準距離とは、現実世界において実カメラ(外側撮像部23)からその撮影方向にその距離だけ離れた現実オブジェクトが奥行感Aで見える距離である。また、仮想世界画像用の立体視基準距離とは、仮想世界において仮想カメラからその撮影方向にその距離だけ離れた仮想オブジェクトが奥行感Aで見える距離である。本実施形態では、奥行感Aは画面と同じ奥行感(上側LCD22の画面と同じ奥行にあるように見える)であり、すなわち、立体視基準距離にある現実オブジェクトや仮想オブジェクトは画面上での表示ズレ量が0である(左目用画像におけるそのオブジェクト画像と右目用画像におけるそのオブジェクト画像が画面において同じ位置に表示される)。本実施形態において、実世界画像用の立体視基準距離は一定であるが、仮想世界画像用の立体視基準距離は、仮想オブジェクトごとに設定される。より具体的には、奥行距離が異なる仮想オブジェクトには異なる立体視基準距離が設定される。
【0105】
次に、上記のようにして決定された立体視基準距離に基づいて、図19に示すように、左実世界画像の描画範囲を決定する。すなわち、外側撮像部(左)23aと外側撮像部(右)23bの中間点から立体視基準面(撮影方向に垂直な面であって、当該中間点から立体視基準距離だけ離れた面)に垂線を下ろしたときの交点を立体視基準点とし、左実世界画像における当該立体視基準点を中心とした所定範囲を、左実世界画像の描画範囲として決定する。言い換えると、立体視基準点が中心に表示されるように描画範囲を決定する(右実世界画像についても同様)。なお、立体視基準点は、2つの撮像部の中間点から、2つの撮像部を結ぶ線分に直交する直線上であって、当該中間点から立体基準距離だけ撮影方向に離れた点と特定することもできる。
【0106】
なお、後述するステップS22において右実世界画像の描画範囲を決定するときには、図20に示すように、右実世界画像における当該立体視基準点を中心とした所定範囲を、右実世界画像の描画範囲として決定する。これにより、上側LCD22に表示される左目用画像における立体視基準点の位置と右目用画像における立体視基準点の位置が、上側LCD22の画面上で一致することになり、ユーザから見て立体視基準点が上側LCD22の画面と同じ位置にあるように見える(すなわち、立体視基準点が画面の手前に見えたり画面の奥に見えたりすることがない)。立体視基準面上にある立体視基準点以外の点についても同様である。
【0107】
ステップS21において、CPU311は、左実世界画像におけるステップS20で決定した描画範囲を、上側LCD22へ供給すべき左目用画像を一時的に記憶するためのVRAM313内の所定の記憶領域(以下、左フレームバッファと称す)に描画する。
【0108】
ステップS22において、CPU311は、ステップS11で計算したマーカー座標系の原点の奥行距離Dmと、オフセットOsとに基づいて、右実世界画像の描画範囲を決定する。
【0109】
ステップS23において、CPU311は、右実世界画像におけるステップS22で決定した描画範囲を、上側LCD22へ供給すべき右目用画像を一時的に記憶するためのVRAM313内の所定の記憶領域(以下、右フレームバッファと称す)に描画する。
【0110】
上記のようにして右フレームバッファおよび左フレームバッファに描画された画像に基づいて上側LCD22に立体画像を表示すると、図21に示すように、ユーザから見て上側LCD22の画面よりもオフセットOs(例えば5cm)分だけ奥にマーカー60があるように見える。
【0111】
上記のような実世界画像描画処理が終了すると、処理は図9のステップS13に進む。
【0112】
図9のステップS13において、CPU311は、ゲーム処理を行う。以下、図11のフローチャートを参照して、ゲーム処理の詳細を説明する。
【0113】
(ゲーム処理)
図11のステップS30において、CPU311は、各仮想オブジェクト(ドラゴンオブジェクト61、炎オブジェクト62、弾オブジェクト63)の位置(必要に応じて姿勢も)を更新する。例えば、ドラゴンオブジェクト61から遠ざかるように炎オブジェクト62の位置が更新され、仮想画面(仮想カメラから撮影方向に立体視基準の基礎距離だけ離れた面;この面に存在する仮想オブジェクトは画面と同じ奥行感で視認される)から遠ざかるように弾オブジェクト63の位置が更新される。なお、本実施形態では、一例として、各仮想オブジェクトの位置は、マーカー座標系の座標で表されているものとする。
【0114】
ステップS31において、CPU311は、ドラゴンが炎を吐いたかどうかを判断し、炎を吐いた場合には処理はステップS32に進み、そうでない場合には処理はステップS33に進む。本実施形態では、例えば、ドラゴンが炎を吐いたかどうかを乱数に基づいて判断する。
【0115】
ステップS32において、CPU311は、仮想空間に炎オブジェクト62を新たに追加する。すなわち、ドラゴンオブジェクト61の近傍に、新たな炎オブジェクト62が配置される。
【0116】
ステップS33において、CPU311は、弾が発射されたかどうかを判断し、発射された場合には処理はステップS34に進み、そうでない場合には処理はステップS35に進む。本実施形態では、例えば、ユーザによってLボタン14GまたはRボタン14Hが押されたときに、弾が発射されたと判断する。
【0117】
ステップS34において、CPU311は、仮想空間に弾オブジェクト63を新たに追加する。すなわち、仮想画面の近傍に、新たな弾オブジェクト63が配置される。
【0118】
ステップS35において、CPU311は、弾がドラゴンに命中したかどうかを判断し、命中した場合には処理はステップS36に進み、そうでない場合には処理はステップS37に進む。
【0119】
ステップS36において、CPU311は、ゲームスコアに所定の点数を加算する加点処理を行い、その後、処理はステップS38に進む。
【0120】
ステップS37において、CPU311は、弾がドラゴンを逸れたかどうかを判断し、逸れた場合には処理はステップS38に進み、そうでない場合には処理はステップS39に進む。
【0121】
ステップS38において、CPU311は、仮想空間から弾オブジェクト63を消去し、その後、処理はステップS39に進む。
【0122】
ステップS39において、CPU311は、炎が仮想画面に命中したかどうかを判断し、命中した場合には処理はステップS40に進み、そうでない場合には処理はステップS41に進む。
【0123】
ステップS40において、CPU311は、ゲームスコアから所定の点数を減算する減点処理を行い、その後、処理はステップS42に進む。
【0124】
ステップS41において、CPU311は、炎が仮想画面を逸れたかどうかを判断し、逸れた場合には処理はステップS42に進み、そうでない場合にはゲーム処理を終了する。
【0125】
ステップS42において、CPU311は、仮想空間から炎オブジェクト62を消去し、ゲーム処理を終了する。
【0126】
上記のようなゲーム処理が終了すると、処理は図9のステップS14に進む。
【0127】
図9のステップS14において、CPU311は、仮想空間に配置されている1以上の仮想オブジェクトの中から1つの仮想オブジェクトを選択する。ここで選択された仮想オブジェクトを対象として、下記のステップS15およびステップS16の処理が行われることになる。ここでは、仮想空間において、ドラゴンオブジェクト61、炎オブジェクト62および弾オブジェクト63が、図22に示すような位置に配置されているものと仮定して、以下の説明を行う。
【0128】
ステップS15において、CPU311は、立体視基準距離決定処理を行う。なお、前述のとおり、立体視基準距離は仮想オブジェクトごとに決定される。立体視基準距離決定処理は、仮想オブジェクト毎に個別に立体視基準距離を決定する処理である。以下、図12のフローチャートを参照して、立体視基準距離決定処理の詳細を説明する。
【0129】
(立体視基準距離決定処理)
図12のステップS50において、CPU311は、仮想オブジェクト(図9のステップS14で選択された仮想オブジェクト。以下同様。)の奥行距離Doを計算する。仮想オブジェクトの奥行距離Doは、仮想カメラ64L,64Rから撮像方向への仮想オブジェクトまでの距離である。例えば、仮想オブジェクトの現在位置を示す座標に左ビュー行列72Lを乗算した結果得られる座標(すなわち、左仮想カメラ座標系で表されたマーカー座標系の原点の座標)のZ軸値を、仮想オブジェクトの奥行距離Doとして決定する。
【0130】
ステップS51において、CPU311は、ステップS50で計算された仮想オブジェクトの奥行距離Doが、立体視基準の基礎距離Dsより大きいかどうかを判断し、大きい場合には処理はステップS52に進み、そうでない場合には処理はステップS54に進む。本実施形態では、仮想オブジェクトごとに立体視基準距離を設定するが、「立体視基準の基礎距離」とは、立体視基準距離を決めるための基礎的な距離であり、仮想オブジェクトの立体視基準距離は、仮想オブジェクトの奥行距離Doと立体視基準の基礎距離Dsとの差により決定される。より具体的には、仮想オブジェクトの奥行距離Doと立体視基準の基礎距離Dsが一致する場合は、その仮想オブジェクトについての立体視基準距離は立体視基準の基礎距離Dsと一致し、その仮想オブジェクトは奥行感Aで表示される。そして、仮想オブジェクトの奥行距離Dsと立体視基準の基礎距離Dsが離れるほど、その仮想オブジェクトについての立体視基準距離は立体視基準の基礎距離Dsから仮想オブジェクトの奥行距離Doの方に近づく。これにより、仮想オブジェクトの奥行感の変化は、実際の奥行位置の変化よりも少なくすることができる。それゆえ、さまざまな奥行位置に仮想オブジェクトが存在する場合であっても、それらの仮想オブジェクトの奥行感の差を抑えることができて(すなわち、画面上での表示ずれ量の差を抑えることができて)、立体視が見やすい仮想画像を表示できる。なお、本実施形態では、仮想オブジェクトの奥行距離Doが立体視基準の基礎距離Dsよりも仮想カメラ側になったときには、その仮想オブジェクトについての立体視基準距離は立体視基準の基礎距離Dsと一致するように設定される。本実施形態では、立体視基準の基礎距離Dsは固定値(例えばカメラ位置から撮影方向に4cmの位置)とする。立体視基準の基礎距離Dsは、現実世界における単位(例えばcm)で定義されていてもよいし、仮想空間(またはマーカー座標系)における単位で定義されていてもよい。
【0131】
ステップS52において、CPU311は、立体視基準の基礎距離Dsと、マーカー座標系の原点の奥行距離Dmと、仮想オブジェクトの奥行距離Doとに基づいて、比率Rpを計算する。当該比率Rpは、図22に示すように、立体視基準の基礎距離Dsとマーカー座標系の原点の奥行距離Dmとの差を「1」としたときの、立体視基準の基礎距離Dsと各仮想オブジェクト(図22の例では、弾オブジェクト63)の奥行距離Doとの差を表すものであって、具体的には、下記の数式により計算される。
Rp=(Do−Ds)/(Dm−Ds)
【0132】
ステップS53において、CPU311は、ステップS52で計算した比率Rpに基づいて、立体視基準距離Fを計算する。具体的には、立体視基準距離Fは下記の数式により計算される。
F=Do−(Rp×Os)
上記数式において、(Rp×Os)の値は、立体視基準距離と仮想オブジェクトの奥行距離との差を表している。言い換えると、立体視基準面から仮想オブジェクトまでのカメラの撮影方向における距離を表している(これが奥行感に影響する)。したがって、(Rp×Os)の値が0である場合には、当該仮想オブジェクトが上側LCD22に立体表示されたときに、ユーザから見て当該仮想オブジェクトが上側LCD22の画面と同じ位置にあるような奥行感で見える。また、(Rp×Os)の値が大きくなるほど、ユーザから見て当該仮想オブジェクトが上側LCD22の画面からより奥に位置するように見える。これにより、マーカー座標系の原点の奥行距離DmからオフセットOsを減算した奥行距離にある仮想オブジェクトは、画面から5cm奥の位置にあるような奥行感で表示される。
【0133】
ステップS54において、CPU311は、立体視基準距離Fを、立体視基準の基礎距離Dsと同じ値に決定する。
【0134】
図24の実線は、仮想オブジェクトの奥行距離Doと、ステップS53またはステップS54において決定される立体視基準距離Fとの対応関係を示している。
【0135】
上記のような立体視基準距離決定処理が終了すると、処理は図9のステップS16に進む。
【0136】
図9のステップS16において、CPU311は、ステップS15で決定された立体視基準距離に基づいて、仮想オブジェクト(ステップS14で選択された仮想オブジェクト)を描画する。具体的には、ステップS15で決定された立体視基準距離に基づいて、左フレームバッファに格納されている画像に左仮想カメラ64Lから見た当該仮想オブジェクトの画像を上書きするとともに、右フレームバッファに格納されている画像に右仮想カメラ64Rから見た当該仮想オブジェクトの画像を上書きする。
【0137】
図25の斜線領域は、左仮想カメラ64Lから見たドラゴンオブジェクト61の画像を生成するときの描画範囲を示している。図25に示すように、左仮想カメラ64Lと右仮想カメラ64Rの中間点からドラゴンオブジェクト用の立体視基準面に垂線を下ろしたときの交点を立体視基準点とし、左仮想カメラ64Lから見て当該立体視基準点が中心に見えるような所定空間を、左仮想カメラ64Lの描画範囲として決定する。当該描画範囲に応じた射影行列と、左ビュー行列72Lとを用いて、左仮想カメラ64Lから見たドラゴンオブジェクト61の画像が生成される。右仮想カメラ64Rから見たドラゴンオブジェクト61の画像を生成するときも同様に、図26に示すように、右仮想カメラ64Rから見て上記立体視基準点が中心に見えるような所定空間を、右仮想カメラ64Rの描画範囲として決定する。
【0138】
なお、上述の通り、仮想オブジェクトの奥行位置(奥行距離)に応じて、仮想カメラの射影行列は変更されるが、仮想カメラ間の距離(左仮想カメラと右仮想カメラの間の距離)は変更されない。それゆえ、仮想オブジェクトは奥行位置(奥行距離)に応じて奥行感は変わるが、その仮想オブジェクト自体の立体感は損なわれない。
【0139】
また、仮想オブジェクトの奥行位置(奥行距離)に応じて仮想カメラの位置を変更することもないので、仮想画像自体が違和感のある画像になることもない。
【0140】
図27の斜線領域は、左仮想カメラ64Lから見た弾オブジェクト63の画像を生成するときの描画範囲を示している。図27に示すように、左仮想カメラ64Lと右仮想カメラ64Rの中間点から弾オブジェクト用の立体視基準面に垂線を下ろしたときの交点を立体視基準点とし、左仮想カメラ64Lから見て当該立体視基準点が中心に見えるような所定空間を、左仮想カメラ64Lの描画範囲として決定する。
【0141】
ステップS17において、CPU311は、仮想空間に配置されている全ての仮想オブジェクト(ただし、左仮想カメラ64Lおよび右仮想カメラ64Rから見えない仮想オブジェクトは除く)が描画されたかどうかを判断し、全ての仮想オブジェクトが描画された場合には処理はステップS18に進み、そうでない場合には処理はステップS14に戻る。
【0142】
以上のような処理の結果、図10のステップS21で左フレームバッファに描画された左実世界画像と、図10のステップS23で右フレームバッファに描画された右実世界画像のそれぞれに対して、仮想空間内の各仮想オブジェクトが順次合成され(図28参照)、その後、所定のタイミングで左目用画像及び右目用画像として上側LCD22に供給される。
【0143】
図29は、仮想オブジェクト毎に個別に決定される立体視基準面(ドラゴンオブジェクト用の立体視基準面、炎オブジェクト用の立体視基準面、弾オブジェクト用の立体視基準面)を示している。本実施形態によれば、仮想オブジェクトの奥行位置が、マーカー座標系の原点から仮想画面(カメラから撮影方向に立体視基準の基礎距離だけ離れた面)により近づくほど、当該仮想オブジェクト用の立体視基準面が仮想カメラ64L,64Rにより近づくとともに、立体視基準面から仮想オブジェクトまでの奥行方向(カメラの撮影方向)の距離が小さくなる。これにより、ユーザから見て、仮想オブジェクトの立体形状はそのままで、仮想空間だけがあたかも奥行方向に縮んだかのように見える。図29において、ドラゴンオブジェクト用の立体視基準面とドラゴンオブジェクト61との間の奥行方向の距離は、オフセットOsである。そして、ドラゴンオブジェクト61よりも仮想画面により近い仮想オブジェクトほど、当該仮想オブジェクト用の立体視基準面と当該仮想オブジェクトとの間の奥行方向の距離がより小さくなる。したがって、図30に示すように、上側LCD22に立体表示される画像をユーザが見ると、画面からオフセットOs(例えば5cm)だけ奥側にドラゴンオブジェクト61が位置し、炎オブジェクト62は、ドラゴンオブジェクト61よりも少し手前に位置し、弾オブジェクト63は、炎オブジェクト62よりも少し手前に位置するように見える。
【0144】
(比較例)
ここで、本実施形態の効果をより分かりやすく示すために、いくつかの比較例を挙げ、その問題点を説明する。
【0145】
まず、第1の比較例として、仮想画面と同じ奥行位置に立体視基準距離を固定的に(すなわち、仮想オブジェクト毎に立体視基準距離を変えることなく)設定する場合について説明する。この場合、仮想画面からマーカー座標系の原点までの奥行距離(すなわち、実世界におけるゲーム装置10からマーカー60までの奥行距離)が遠いほど、上側LCD22に立体表示されるドラゴンオブジェクト61の位置が、ユーザから見て遠ざかっていく(図31参照)。したがって、仮想画面からマーカー座標系の原点までの奥行距離が大き過ぎる場合には、ユーザはドラゴンオブジェクト61を立体視するために、上側LCD22の画面のかなり奥の方に左右の目の焦点を合わせる必要がある。しかしながら、立体視ディスプレイにおいて、画面からかなり離れた位置に左右の目の焦点を合わせることは熟練を要するため、多くのユーザにとって、ドラゴンオブジェクト61を正常に立体視することができない状態となってしまう。これに対して、本実施形態では、ユーザには常に画面からオフセットOs(例えば5cm)だけ奥側にドラゴンオブジェクト61が位置しているように見えるため、ドラゴンオブジェクト61を常に正常に立体視しやすい状態となる。
【0146】
次に、第2の比較例として、図32に示すように、マーカー座標系の原点からオフセットOs分だけ仮想画面に近づいた奥行位置に仮想画面を設定し、当該仮想画面と同じ位置に立体視基準距離を固定的に(すなわち、仮想オブジェクト毎に立体視基準距離を変えることなく)設定する場合について説明する。この場合、図33に示すように、ユーザには常に画面からオフセットOs(例えば5cm)だけ奥側にドラゴンオブジェクト61が位置しているように見えるため、ドラゴンオブジェクト61については常に正常に立体視しやすい状態となる。しかしながら、図32において、弾オブジェクト63は、仮想画面よりも仮想カメラ64L,64Rに近い位置にあるため、図33に示すように、ユーザには、弾オブジェクト63が画面の手前にあるように見える。そして、図30に示す本実施形態の例と比較して、ユーザによって視認されるドラゴンオブジェクト61の奥行位置と弾オブジェクト63の奥行位置の差がかなり大きいため、例えば、ドラゴンオブジェクト61および弾オブジェクト63の一方から他方に左右の目の焦点を移動させるときに、焦点の移動距離が大きくなり、焦点を合わせにくいという問題がある。また、ゲーム処理において、炎オブジェクト62が仮想画面に命中したときに前述の減点処理が行われるが、仮想画面からマーカー座標系の原点までの奥行距離(すなわち、実世界におけるゲーム装置10からマーカー60までの奥行距離)が遠いほど、仮想画面に命中する直前の炎オブジェクト62の見た目の大きさが小さくなるため、ユーザにとっては、炎オブジェクト62がまだ十分遠くに位置しているにも関わらず仮想画面に命中したような印象を受けるため、ユーザに違和感を与えてしまうという問題がある。これに対して、本実施形態では、仮想オブジェクト毎に立体視基準距離が個別に決定されるので、弾オブジェクト63が画面の手前に見えてしまうことがなく、また、ドラゴンオブジェクト61および弾オブジェクト63の一方から他方に左右の目の焦点を移動させるときの焦点の移動距離も少ない。
【0147】
(本実施形態の効果)
以上のように、本実施形態によれば、仮想オブジェクト毎に立体視基準距離が個別に決定されるので、上側LCD22に仮想オブジェクトを立体視しやすく立体表示することができる。
【0148】
また、本実施形態によれば、オフセットOsが固定値であるため、マーカー座標系の原点と同じ奥行位置にある仮想オブジェクト(ドラゴンオブジェクト61)が、ゲーム装置10から見たマーカー60の奥行距離に関係なく、ユーザから見て常に一定の奥行位置にあるように見える。よって、マーカー座標系の原点の付近に位置する仮想オブジェクトを常に見やすく立体表示することができる。
【0149】
また、本実施形態によれば、仮想画面と同じ奥行位置にある仮想オブジェクトが、ユーザから見て常に上側LCD22の画面と同じ奥行位置にあるように見える。よって、仮想画面の付近に位置する仮想オブジェクトを常に見やすく立体表示することができる。
【0150】
また、本実施形態によれば、仮想オブジェクトに対する仮想カメラ64L,64Rの相対的な奥行位置を仮想オブジェクト毎に変更して仮想オブジェクトを描画するのではなく、仮想オブジェクト毎に立体視基準距離(図25〜図27に示す左仮想カメラ64Lと右仮想カメラ64Rの立体視基準点)を変更して仮想オブジェクトを描画しているだけなので、正常な見た目となるように仮想オブジェクトを立体表示することができる。
【0151】
(変形例)
なお、上記実施形態では、仮想オブジェクト毎に立体視基準距離を決定しているが、図34に示すように、仮想カメラ64L,64Rから見て奥行方向に長い仮想オブジェクトを立体表示する場合には、仮想カメラ64L,64Rから見て最も遠い部位も最も近い部位も同じ立体視基準距離に基づいて描画されるため、図35に示すように、意図しない立体表示となってしまう。そこで、このような場合には、図36に示すように、奥行方向に長い仮想オブジェクトを複数の仮想オブジェクト61a〜61hで構成することによって、奥行方向に長い仮想オブジェクトであっても図37に示すように適切に立体表示することができる。
【0152】
また、上記実施形態では、オフセットOsを固定値(例えば5cm)としたが、他の実施形態では、例えばマーカー座標系の原点の奥行位置などに応じて、オフセットOsの値を変化させてもよい。マーカー座標系の原点の奥行位置に応じてオフセットOsの値を変化させる場合には、図38に示すように、図9のステップS11の後に、CPU311がマーカー座標系の原点の奥行距離Dmに応じてオフセットOsを決定する処理(ステップS60)を追加すればよい。図39は、マーカー座標系の原点の奥行距離Dmに応じてオフセットOsを決定する際の、マーカー座標系の原点の奥行距離DmとオフセットOsの対応関係の一例を示している。なお、図39では、マーカー座標系の原点の奥行距離DmとオフセットOsの関係が線形性をもつ関係となっているが、他の実施形態では、それらの関係が非線形であってもよい。
【0153】
また、上記実施形態では、図24に示すように、仮想オブジェクトの奥行距離Doと立体視基準距離Fの関係が線形性をもつ関係となっているが、他の実施形態では、それらの関係が非線形であってもよい。
【0154】
また、上記実施形態では、図24に示すように、仮想オブジェクトの奥行距離Doが立体視基準の基礎距離Dsよりも小さいときに、立体視基準距離Fが一定となっているが、他の実施形態では、仮想オブジェクトの奥行距離Doが立体視基準の基礎距離Dsよりも小さいときにおいても、仮想オブジェクトの奥行距離Doに応じて立体視基準距離Fを変化させてもよい。
【0155】
また、上記実施形態では、図12のステップS52で比率Rpを計算し、この比率Rpに基づいて立体視基準距離Fを計算しているが、他の実施形態では、比率Rpを計算することなく直接的に立体視基準距離Fを計算してもよい。
【0156】
また、上記実施形態では、立体視基準の基礎距離Dsおよびマーカー座標系の原点の奥行距離Dmの2つの奥行位置に対する仮想オブジェクトの奥行距離Doの相対位置(例えば、比率Rp)に応じて、立体視基準距離Fを計算しているが、他の実施形態では、任意の1つまたは2つの所定の奥行位置に対する仮想オブジェクトの奥行距離Doの相対位置(例えば、比率Rp)に応じて、立体視基準距離Fを計算してもよい。
【0157】
また、上記実施形態では、仮想オブジェクト毎に決定された立体視基準距離に応じて左仮想カメラ64Lおよび右仮想カメラ64Rの描画範囲(射影行列と言い換えることもできる)を変更することによって、立体視基準距離に応じた立体画像を生成しているが、他の実施形態では、仮想オブジェクト毎に決定された立体視基準距離に応じて左仮想カメラ64Lおよび右仮想カメラ64Rの向きを変更することによって、立体視基準距離に応じた立体画像を生成してもよい。さらに他の実施形態では、仮想オブジェクト毎に決定された立体視基準距離に応じて左仮想カメラ64Lおよび右仮想カメラ64Rの間隔を変更することによって、立体視基準距離に応じた立体画像を生成してもよい。
【0158】
また、上記実施形態では、実世界画像に含まれるマーカー60の位置及び姿勢を認識して、その認識結果に応じて実世界画像に仮想オブジェクトを合成しているが、他の実施形態では、マーカー60に限らず、任意の認識対象の位置及び/又は姿勢を認識して、その認識結果に応じて実世界画像に仮想オブジェクトを合成してもよい。認識対象の一例として、人物の顔が挙げられる。
【0159】
また、上記実施形態では、外側撮像部23によってリアルタイムに撮像される実世界画像に基づいて上側LCD22に立体画像を表示しているが、他の実施形態では、外側撮像部23や外部のステレオカメラ等によって過去に撮像された動画像データに基づいて上側LCD22に立体画像を表示するようにしてもよい。
【0160】
また、上記実施形態では、外側撮像部23がゲーム装置10に予め搭載されているが、他の実施形態では、ゲーム装置10に着脱可能な外付け型のカメラを利用してもよい。
【0161】
また、上記実施形態では、上側LCD22がゲーム装置10に予め搭載されているが、他の実施形態では、ゲーム装置10に着脱可能な外付け型の立体視ディスプレイを利用してもよい。
【0162】
また、上記実施形態では、マーカー座標系の原点の位置に特定の仮想オブジェクト(ドラゴンオブジェクト61)を配置しているが、他の実施形態では、マーカー座標系の原点の位置に仮想オブジェクトを配置しなくてもよい。
【0163】
また、上記実施形態では、仮想空間に複数の仮想オブジェクトを配置しているが、他の実施形態では、仮想空間に仮想オブジェクトを1つだけ配置してもよい。
【0164】
また、上記実施形態では、実世界画像に対して仮想オブジェクトを合成した立体画像を上側LCD22に立体表示しているが、他の実施形態では、仮想オブジェクトだけを上側LCD22に立体表示するようにしてもよい。
【0165】
また、上記実施形態では、左実世界画像のマーカー認識結果から計算される左仮想カメラ64Lの位置及び姿勢に基づいて、右仮想カメラ64Rの位置及び姿勢を決定しているが、他の実施形態では、左実世界画像のマーカー認識結果から計算される左仮想カメラ64Lの位置及び姿勢と、右実世界画像のマーカー認識結果から計算される右仮想カメラ64Rの位置及び姿勢の一方または両方を考慮して、左仮想カメラ64Lの位置及び姿勢と、右仮想カメラ64Rの位置及び姿勢を決定するようにしてもよい。
【0166】
また、上記実施形態では、上側LCD22がパララックスバリア方式の立体表示装置であるが、他の実施形態では、上側LCD22がレンチキュラー方式等の他の任意の方式の立体表示装置であってもよい。例えば、レンチキュラー方式の立体表示装置を利用する場合には、左目用画像と右目用画像をCPU311または他のプロセッサで合成してから、当該合成画像をレンチキュラー方式の立体表示装置に供給するようにしてもよい。
【0167】
また、上記実施形態では、ゲーム装置10を用いて実世界画像に仮想オブジェクトを合成表示しているが、他の実施形態では、任意の情報処理装置または情報処理システム(例えば、PDA(Personal Digital Assistant)、携帯電話、パーソナルコンピュータ、カメラ等)を用いて実世界画像に仮想オブジェクトを合成表示してもよい。
【0168】
また、上記実施形態では、上側LCD22にゲーム画像を立体表示しているが、他の実施形態では、ゲーム画像以外の任意の画像を立体表示してもよい。
【0169】
また、上記実施形態では、一台の情報処理装置(ゲーム装置10)のみによって画像表示処理を実行しているが、他の実施形態では、互いに通信可能な複数の情報処理装置を有する画像表示システムにおいて、当該複数の情報処理装置が画像表示処理を分担して実行するようにしてもよい。
【符号の説明】
【0170】
10 ゲーム装置
11 下側ハウジング
12 下側LCD
13 タッチパネル
14 操作ボタン
15 アナログスティック
16 LED
21 上側ハウジング
22 上側LCD
23 外側撮像部
23a 外側撮像部(左)
23b 外側撮像部(右)
24 内側撮像部
25 3D調整スイッチ
26 3Dインジケータ
28 タッチペン
31 情報処理部
311 CPU
312 GPU
32 メインメモリ
60 マーカー
61 仮想オブジェクト(ドラゴンオブジェクト)
62 仮想オブジェクト(炎オブジェクト)
63 仮想オブジェクト(弾オブジェクト)
64L 左仮想カメラ
64R 右仮想カメラ

【特許請求の範囲】
【請求項1】
仮想空間に配置された仮想オブジェクトを一対の仮想カメラを用いて描画することによって、立体視可能な立体表示装置の画面に当該仮想オブジェクトを立体表示する画像表示プログラムであって、コンピュータを、
前記一対の仮想カメラから撮影方向への距離であって、立体視の奥行感の基準となる立体視基準距離を、前記仮想カメラから撮影方向への仮想オブジェクトの距離である撮影距離に応じて変化するように決定する立体視基準距離決定手段、
前記立体視基準距離決定手段によって決定された立体視基準距離が所定の奥行感となるような視体積をそれぞれ持つように、前記一対の仮想カメラを設定する仮想カメラ設定手段、および
前記仮想カメラ設定手段によって設定された前記一対の仮想カメラにより前記仮想オブジェクトを撮影して一対の仮想画像を生成し、当該一対の仮想画像を用いて前記立体表示装置の画面に前記仮想オブジェクトを立体表示する立体表示制御手段として機能させる、画像表示プログラム。
【請求項2】
前記所定の奥行感は、前記立体表示装置の画面に一致する奥行感である、請求項1に記載の画像表示プログラム。
【請求項3】
前記コンピュータを、
一対の撮像部で撮像された一対の実世界画像のうちの少なくとも一方の実世界画像から所定の認識対象を認識する認識手段、および
前記少なくとも一方の実世界画像における前記認識対象の位置に基づいて、前記一対の仮想カメラと前記認識対象に対応する仮想空間内の所定点の相対的な位置関係を決定する位置関係決定手段としてさらに機能させ、
前記立体視基準距離決定手段は、前記一対の仮想カメラから前記所定点までの撮影方向についての距離と、前記撮影距離との差に応じて、前記立体視基準距離を決定する、請求項1に記載の画像表示プログラム。
【請求項4】
前記立体視基準距離決定手段は、前記立体視基準距離を決めるための基礎となる第1基礎距離と前記撮影距離との差に応じて、前記立体視基準距離を決定する、請求項1に記載の画像表示プログラム。
【請求項5】
前記立体視基準距離決定手段は、前記撮影距離が前記第1基礎距離から離れるほど、前記立体視基準距離を前記基礎距離から前記撮影距離の方向に近づける、請求項1に記載の画像表示プログラム。
【請求項6】
前記立体視基準距離決定手段は、仮想空間に複数の仮想オブジェクトが存在する場合に、当該複数の仮想オブジェクトのそれぞれに対して個別に立体視基準距離を決定し、
前記立体表示制御手段は、前記複数の仮想オブジェクトのそれぞれを、対応する立体視基準距離に基づいて個別に描画することによって、当該複数の仮想オブジェクトの画像をそれぞれ生成し、その結果得られた当該複数の仮想オブジェクトの画像を合成することによって、前記仮想画像を生成する、請求項1に記載の画像表示プログラム。
【請求項7】
前記立体視基準距離決定手段は、前記仮想オブジェクトの奥行位置が、第1奥行位置から当該第1奥行位置よりも前記一対の仮想カメラ側に位置する第2奥行位置に近づくほど、立体視基準距離が前記一対の仮想カメラにより近づき、かつ立体視基準距離に対する当該仮想オブジェクトの相対位置が前記一対の仮想カメラ側に移動するように、当該仮想オブジェクト用の立体視基準距離を決定する、請求項1に記載の画像表示プログラム。
【請求項8】
前記立体視基準距離決定手段は、前記仮想オブジェクトが所定の奥行位置に位置するときには、立体視基準距離に対する当該仮想オブジェクトの相対位置が所定の相対位置となるように、当該仮想オブジェクト用の立体視基準距離を決定する、請求項1に記載の画像表示プログラム。
【請求項9】
前記立体視基準距離決定手段は、
前記仮想オブジェクトが第1奥行位置に位置するときには、立体視基準距離に対する当該仮想オブジェクトの相対位置が第1相対位置となるように、当該仮想オブジェクト用の立体視基準距離を決定し、
前記仮想オブジェクトが第2奥行位置に位置するときには、立体視基準距離に対する当該仮想オブジェクトの相対位置が第2相対位置となるように、当該仮想オブジェクト用の立体視基準距離を決定し、
前記仮想オブジェクトが前記第1奥行位置と前記第2奥行位置の間に位置するときには、前記第1奥行位置および前記第2奥行位置に対する当該仮想オブジェクトの相対位置に応じて、当該仮想オブジェクト用の立体視基準距離を決定する、請求項1に記載の画像表示プログラム。
【請求項10】
前記立体視基準距離決定手段は、前記仮想オブジェクトが前記第1奥行位置と前記第2奥行位置の間に位置するときには、前記第1奥行位置と前記第2奥行位置の間の距離と、前記仮想オブジェクトの奥行位置と前記第2奥行位置との間の距離の比率に基づいて、当該仮想オブジェクト用の立体視基準距離を決定する、請求項9に記載の画像表示プログラム。
【請求項11】
前記第2奥行位置は、前記第1奥行位置よりも前記一対の仮想カメラ側に位置し、
前記第2相対位置は、前記第1相対位置よりも前記一対の仮想カメラ側に位置する、請求項9に記載の画像表示プログラム。
【請求項12】
前記第2相対位置が、立体視基準距離と前記仮想オブジェクトが同じ奥行位置となるような相対位置である、請求項9に記載の画像表示プログラム。
【請求項13】
前記第1奥行位置と前記第2奥行位置の相対的な位置関係が、状況によって変化する、請求項9に記載の画像表示プログラム。
【請求項14】
前記一対の仮想カメラに対する前記第1奥行位置の相対位置は可変であり、前記一対の仮想カメラに対する前記第2奥行位置の相対位置は固定である、請求項13に記載の画像表示プログラム。
【請求項15】
前記コンピュータを、
一対の撮像部で撮像された一対の実世界画像のうちの少なくとも一方の実世界画像から所定の認識対象を認識する認識手段、および
前記少なくとも一方の実世界画像における前記認識対象の位置に基づいて、前記一対の仮想カメラと前記第1奥行位置の相対的な位置関係を決定する位置関係決定手段としてさらに機能させる、請求項14に記載の画像表示プログラム。
【請求項16】
前記立体表示制御手段は、前記一対の実世界画像に、前記一対の仮想カメラを用いて順次生成される前記仮想オブジェクトの一対の画像を順次それぞれ合成することによって、前記立体表示装置に表示するための立体画像を生成する、請求項15に記載の画像表示プログラム。
【請求項17】
前記一対の仮想カメラと前記第1奥行位置の間の距離に応じて前記第1相対位置を決定する第1相対位置決定手段として前記コンピュータをさらに機能させる、請求項15に記載の画像表示プログラム。
【請求項18】
前記立体表示制御手段は、前記一対の仮想カメラから等距離の立体視基準距離上の点である立体視基準点を変更することによって、前記立体視基準距離決定手段によって決定された立体視基準距離に応じた前記仮想オブジェクトの立体画像を生成する、請求項1に記載の画像表示プログラム。
【請求項19】
仮想空間に配置された仮想オブジェクトを一対の仮想カメラを用いて描画することによって、立体視可能な立体表示装置の画面に当該仮想オブジェクトを立体表示する画像表示装置であって、
前記一対の仮想カメラから撮影方向への距離であって、立体視の奥行感の基準となる立体視基準距離を、前記仮想カメラから撮影方向への仮想オブジェクトの距離である撮影距離に応じて変化するように決定する立体視基準距離決定手段、
前記立体視基準距離決定手段によって決定された立体視基準距離が所定の奥行感となるような視体積をそれぞれ持つように、前記一対の仮想カメラを設定する仮想カメラ設定手段、および
前記仮想カメラ設定手段によって設定された前記一対の仮想カメラにより前記仮想オブジェクトを撮影して一対の仮想画像を生成し、当該一対の仮想画像を用いて前記立体表示装置の画面に前記仮想オブジェクトを立体表示する立体表示制御手段を備える、画像表示装置。
【請求項20】
仮想空間に配置された仮想オブジェクトを一対の仮想カメラを用いて描画することによって、立体視可能な立体表示装置の画面に当該仮想オブジェクトを立体表示する画像表示システムであって、
前記一対の仮想カメラから撮影方向への距離であって、立体視の奥行感の基準となる立体視基準距離を、前記仮想カメラから撮影方向への仮想オブジェクトの距離である撮影距離に応じて変化するように決定する立体視基準距離決定手段、
前記立体視基準距離決定手段によって決定された立体視基準距離が所定の奥行感となるような視体積をそれぞれ持つように、前記一対の仮想カメラを設定する仮想カメラ設定手段、および
前記仮想カメラ設定手段によって設定された前記一対の仮想カメラにより前記仮想オブジェクトを撮影して一対の仮想画像を生成し、当該一対の仮想画像を用いて前記立体表示装置の画面に前記仮想オブジェクトを立体表示する立体表示制御手段を備える、画像表示システム。
【請求項21】
仮想空間に配置された仮想オブジェクトを一対の仮想カメラを用いて描画することによって、立体視可能な立体表示装置の画面に当該仮想オブジェクトを立体表示する画像表示方法であって、
前記一対の仮想カメラから撮影方向への距離であって、立体視の奥行感の基準となる立体視基準距離を、前記仮想カメラから撮影方向への仮想オブジェクトの距離である撮影距離に応じて変化するように決定する立体視基準距離決定ステップ、
前記立体視基準距離決定ステップにおいて決定された立体視基準距離が所定の奥行感となるような視体積をそれぞれ持つように、前記一対の仮想カメラを設定する仮想カメラ設定ステップ、および
前記仮想カメラ設定ステップにおいて設定された前記一対の仮想カメラにより前記仮想オブジェクトを撮影して一対の仮想画像を生成し、当該一対の仮想画像を用いて前記立体表示装置の画面に前記仮想オブジェクトを立体表示する立体表示制御ステップを備える、画像表示方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図5C】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate


【公開番号】特開2012−3350(P2012−3350A)
【公開日】平成24年1月5日(2012.1.5)
【国際特許分類】
【出願番号】特願2010−135589(P2010−135589)
【出願日】平成22年6月14日(2010.6.14)
【出願人】(000233778)任天堂株式会社 (1,115)
【出願人】(391041718)株式会社ハル研究所 (38)
【Fターム(参考)】