説明

表示制御プログラム、表示制御装置、表示制御システム及び表示制御方法

【課題】本発明の目的は、メニュー項目の選択のための表示から、この選択によって実行される拡張現実画像の表示への切り替わりをユーザに強く感じさせないことである。
【解決手段】上記目的を達成するため、ゲーム装置は撮像装置で撮像された実世界画像71L,71Rを取得する。実世界画像71L,71Rからマーカー60を検出する。マーカー60の検出結果に基づいて、撮像装置とマーカー60との相対的位置を算出し、この算出結果に基づいて仮想空間内に仮想カメラを設定する。仮想空間におけるマーカー60の位置を基準とした所定の位置に、ユーザが選択可能なメニュー項目に対応付けられ、かつユーザに選択されるための選択オブジェクトO1を仮想的なオブジェクトとして配置する。仮想空間を仮想カメラで撮像して、選択オブジェクトO1のオブジェクト画像を生成し、オブジェクト画像を実世界画像71L,71Rに重ね合わせた重畳画像を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、表示制御プログラム、表示制御装置、表示制御システム及び表示制御方法に関し、より特定的には、現実空間に重ね合わせてユーザに視認されるように仮想空間を撮像した撮像画像を表示するための表示制御プログラム、表示制御装置、表示制御システム及び表示制御方法に関する。
【背景技術】
【0002】
従来、複数のメニュー項目を示す画像(以下、「メニュー画像」と記載する)を表示して、タッチパネルや十字キー等の入力装置を介してユーザから1つのメニュー項目を選択する操作を受け付け、この操作に基づいて複数のメニュー項目から1つのメニュー項目を選択するゲーム装置(表示制御装置)が知られている(例えば特許文献1参照)。
【0003】
また、実世界をカメラ等の撮像装置によって撮像し、この撮像した実世界の画像に仮想的なオブジェクトの画像を重畳して表示することができるAR(Augmented Reality:拡張現実感)技術も知られている。例えば、特許文献2では、ゲーム装置が、実世界に配置されたゲームカードを含む実世界の画像(以下、本明細書においては「実世界画像」と記載する)をカメラ等の撮像装置によって撮像したときに、この実世界の画像におけるゲームカードの位置及び姿勢を取得する。そして、ゲーム装置は、取得した位置及び姿勢に基づいて、撮像装置とゲームカードの相対的な位置関係を算出し、この算出結果を踏まえて仮想空間に仮想カメラを設定するとともにオブジェクトを配置し、この仮想カメラで撮像したオブジェクトの画像を生成する。そして、ゲーム装置は、この生成したオブジェクトの画像を実世界の撮像画像に重畳した重畳画像(以下、本明細書においては「拡張現実画像」と記載する)を生成して表示する。なお、本明細書において、「拡張現実画像」と記載した場合に、この「拡張現実画像」が、重畳画像だけでなく、光学シースルー方式において現実空間に重ね合わせてユーザに視認されるオブジェクトの画像を含む場合がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−318393号公報
【特許文献2】特開2006−72667号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献2で示すような拡張現実画像を表示するための処理の実行前に、この処理の実行をユーザに選択させるため、メニュー画像を表示することが必要な場合がある。ここで、特許文献1で示すような技術を適用してメニュー画像を表示すると、特許文献2で示すゲーム装置は、まず、実世界の画像に重畳せずに仮想的な画像(コンピュータグラフィックによって生成された画像)を単独でメニュー画像として表示し、メニュー画像で示すメニュー項目の選択がユーザからなされた後で拡張現実画像を表示することになる。この様に、メニュー画像は拡張現実画像ではないため、メニュー画像の表示から拡張現実画像の表示に変更されるときにユーザに表示の切り替わりを意識させることになり、ユーザの拡張現実の世界(拡張現実画像で表示される世界)への没入感が損なわれることになる。また、拡張現実画像を表示している最中にメニュー画像(仮想的な画像)へ切り替えて表示することによりユーザに何らかのメニュー操作を行わせる場合にも、上記と同様の問題が発生する。
【0006】
それゆえ、本発明の目的は、例えば、メニュー画像の表示から、メニュー項目の選択によって実行される拡張現実画像の表示への切り替わりの際などに、ユーザに強く切り替わりを感じさせることのない表示制御プログラム、表示制御装置、表示制御システム及び表示制御方法を提供することに関する。
【課題を解決するための手段】
【0007】
本発明は上記の課題を解決するために以下の構成を採用した。
【0008】
(1)本発明の表示制御プログラムは、撮像装置と画面上において現実空間を視認可能とする表示装置に接続された表示制御装置のコンピュータに実行させるプログラムである。そして、本発明の表示制御プログラムは、撮像画像取得手段、検出手段、算出手段、仮想カメラ設定手段、オブジェクト配置手段、オブジェクト画像生成手段、及び表示制御手段としてコンピュータを機能させる。
【0009】
ここで、撮像画像取得手段は、撮像装置により撮像して得られた撮像画像を取得する。検出手段は、撮像画像から特定対象物を検出する。算出手段は、検出手段による特定対象物の検出結果に基づいて、撮像装置と特定対象物との相対的位置を算出する。仮想カメラ設定手段は、算出手段による算出結果に基づいて、仮想空間内に仮想カメラを設定する。オブジェクト配置手段は、特定対象物の位置を基準とした仮想空間における所定の位置に、ユーザが選択可能なメニュー項目に対応付けられ、かつユーザに選択されるための選択オブジェクトを配置する。オブジェクト画像生成手段は、仮想空間を仮想カメラで撮像して、選択オブジェクトのオブジェクト画像を生成する。表示制御手段は、画面上の現実空間に重ね合わせてユーザに視認されるようにオブジェクト画像を表示装置に表示させる。
【0010】
上記構成によれば、ユーザに選択可能なメニュー項目に対応付けられ、画面上で視認可能とする現実空間に重ね合わせてユーザに視認されるように、ユーザに選択されるための選択オブジェクトの画像が表示され、これによって、現実空間に仮想オブジェクトの画像が重ね合わされた拡張現実画像としてメニュー画像を表示することができる。このため、例えば、メニュー項目の選択によって、選択されたメニュー項目の所定の処理(以下、「メニュー実行処理」と記載する)が実行されるときに、このメニュー実行処理で拡張現実画像が表示されたとしても、メニュー画像もまた拡張現実画像であるため、メニュー画像の表示とメニュー実行処理における表示との切り替えの際に、ユーザに切り替え感を強く感じさせることがない。
【0011】
(2)他の構成例として、上記表示制御プログラムは、コンピュータを、選択確定手段、及び起動手段として更に機能させてもよい。そして、選択確定手段は、ユーザの操作に応じて選択オブジェクトの選択を確定する。起動手段は、選択確定手段によって選択オブジェクトの選択が確定されたときに、確定された選択オブジェクトに対応づけられたメニュー項目の所定の処理(メニュー実行処理)を起動させる。そして、所定の処理は、検出手段による特定対象物の検出結果に基づく処理を含む。
【0012】
上記構成によれば、拡張現実画像として表示されたメニュー画像においてメニュー項目が選択され、これによって、選択されたメニュー実行処理が起動されて実行される。ここで、メニュー実行処理が検出手段による特定対象物の検出結果に基づく処理(すなわち、拡張現実画像を表示する処理)を含む。この様に、メニュー画像もメニュー実行処理で表示される画像も拡張現実画像となるため、メニュー画像の表示と、メニュー実行処理における表示との切り替えの際に、ユーザに切り替え感を強く感じさせることがない。
【0013】
(3)さらに他の構成例として、上記表示制御プログラムは、受付手段としてコンピュータを更に機能させてもよい。受付手段は、所定の処理(メニュー実行処理)が実行されている期間において、選択オブジェクトの再表示の指示をユーザから受け付ける。また、上記オブジェクト配置手段は、選択オブジェクトの再表示の指示が受付手段により受け付けられたときに、選択オブジェクトを再び配置してもよい。この構成によれば、メニュー実行処理が実行されている期間においても選択オブジェクトの再表示の指示がユーザから受け付けることができ、この指示が受け付けられたときには、再度、選択オブジェクトを表示してのメニュー画像の表示を行うことが可能になる。これによって、ユーザが選択オブジェクトの再表示の指示を入力するだけで、メニュー実行処理における表示からメニュー画像の表示への切り替えが行われる。従って、メニュー画像の表示からメニュー実行処理における表示への切り替え、及びメニュー実行処理における表示からメニュー画像の表示への切り替えの両方について、連続的に行うことが可能になる。なお、切り替えの間の短時間にブラックアウト(黒色一色の画面の表示)や他の画像が表示されたとしても、この様な構成も本発明に含む。
【0014】
(4)さらに他の構成例として、上記表示制御プログラムは、コンピュータを選択手段として更に機能させてもよい。この選択手段は表示制御装置本体の動きに応じて選択オブジェクトを選択する。これによって、ユーザに操作ボタンの操作等の煩わしい操作を要求することなく、表示制御装置本体を動かすだけの簡易な操作で選択オブジェクトを選択させることができる。
【0015】
(5)さらに他の構成例として、上記選択手段は、仮想カメラ設定手段によって設定された仮想カメラの視線上または当該視線に平行な所定の直線上に選択オブジェクトが位置するときに、選択オブジェクトを選択してもよい。一般的に、ユーザが撮像装置で撮像しながら撮像装置を動かすとこの動きに応じて自己の視線も動くことになる。この構成によれば、撮像装置を動かすことで自己の視線も動き、これによって仮想カメラの視線の位置も変化する。そして、この仮想カメラの視線上又は視線に平行な直線上に選択オブジェクトが位置するときに選択オブジェクトが選択される。従って、ユーザは、自己の視線を動かすことで選択オブジェクトを選択しているような感覚を得ることができる。
【0016】
(6)さらに他の構成例として、上記表示制御プログラムは、コンピュータをカーソル表示手段として更に機能させてもよい。表示手段は、オブジェクト画像が表示される表示領域の所定位置にカーソル画像を表示する。これによって、カーソル画像の表示位置によって仮想カメラの視線及び視線に平行な直線の向きをユーザに知得させることが可能になり、ユーザが選択オブジェクトの選択を容易に行うことが可能になる。
【0017】
(7)さらに他の構成例として、上記表示制御プログラムは、コンピュータを選択手段及び処理手段として更に機能させてもよい。そして、選択手段は、表示制御装置本体及び撮像装置のうち何れかの特定の動きに応じて、選択オブジェクトを選択する。また、処理手段は、表示制御装置本体及び撮像装置のうち何れかの特定の動きに応じて、起動手段によって起動された所定の処理(メニュー実行処理)を進行させる。この構成によれば、選択オブジェクトの選択のための操作と、メニュー実行処理におけるユーザの操作とが同じ操作であるため、選択オブジェクトの選択のための操作によって、ユーザにメニュー実行処理における操作を練習させるためのチュートリアルとしてメニュー画像を表示することが可能になる。
【0018】
(8)さらに他の構成例として、上記表示制御プログラムは、コンピュータを、選択手段、判断手段、及び警告表示手段として更に機能させてもよい。ここで、選択手段は、表示制御装置本体及び撮像装置のうち何れかの傾きに応じて、選択オブジェクトを選択する。判断手段は、特定対象物及び撮像装置の間の距離が所定の距離内にあるかを判断する。そして、警告表示手段は、特定対象物及び撮像装置の間の距離が所定の距離内にあると判断されたときに、警告を表示装置に表示させる。また、所定の距離は、表示制御装置本体及び撮像装置のうち何れかを選択オブジェクトを選択可能な程度に傾けることによって特定対象物が撮像画像に含まれなくなるような距離に設定されている。
【0019】
上記構成によって、選択オブジェクトを選択するための操作をすれば選択オブジェクトが非表示になることをユーザに予告的に警告することが可能になる。これによって、特定対象物が撮像画像に含まれなくなり、特定対象物を撮像装置の撮像範囲に位置するように調整する手間をユーザに与えることを事前に防止することが可能になる。
【0020】
(9)本発明の表示制御装置は、撮像装置と画面上において現実空間を視認可能とする表示装置に接続された装置であって、撮像画像取得手段、検出手段、算出手段、仮想カメラ設定手段、オブジェクト配置手段、オブジェクト画像生成手段、及び表示制御手段を有する。ここで、撮像画像取得手段は、撮像装置により撮像して得られた撮像画像を取得する。検出手段は、撮像画像から特定対象物を検出する。算出手段は、検出手段による特定対象物の検出結果に基づいて、撮像装置と特定対象物との相対的位置を算出する。仮想カメラ設定手段は、算出手段による算出結果に基づいて、仮想空間内に仮想カメラを設定する。オブジェクト配置手段は、特定対象物の位置を基準とした仮想空間における所定の位置に、ユーザが選択可能なメニュー項目に対応付けられ、かつユーザに選択されるための選択オブジェクトを配置する。オブジェクト画像生成手段は、仮想空間を仮想カメラで撮像して、選択オブジェクトのオブジェクト画像を生成する。表示制御手段は、画面上の現実空間に重ね合わせてユーザに視認されるようにオブジェクト画像を表示装置に表示させる。
【0021】
(10)本発明の表示制御システムは、撮像装置と画面上において現実空間を視認可能とする表示装置に接続されたシステムであって、撮像画像取得手段、検出手段、算出手段、仮想カメラ設定手段、オブジェクト配置手段、オブジェクト画像生成手段、及び表示制御手段を有する。ここで、撮像画像取得手段は、撮像装置により撮像して得られた撮像画像を取得する。検出手段は、撮像画像から特定対象物を検出する。算出手段は、検出手段による特定対象物の検出結果に基づいて、撮像装置と特定対象物との相対的位置を算出する。仮想カメラ設定手段は、算出手段による算出結果に基づいて、仮想空間内に仮想カメラを設定する。オブジェクト配置手段は、特定対象物の位置を基準とした仮想空間における所定の位置に、ユーザが選択可能なメニュー項目に対応付けられ、かつユーザに選択されるための選択オブジェクトを仮想的なオブジェクトとして配置する。オブジェクト画像生成手段は、仮想空間を仮想カメラで撮像して、選択オブジェクトのオブジェクト画像を生成する。表示制御手段は、画面上の現実空間に重ね合わせてユーザに視認されるようにオブジェクト画像を表示装置に表示させる。
【0022】
(11)本発明の表示制御方法は、撮像装置を用いて実世界を撮像するとともに、画面上において現実空間を視認可能とする表示装置を用いて仮想空間内の仮想的なオブジェクトの画像を表示する表示制御方法であって、撮像画像取得ステップ、検出ステップ、算出ステップ、仮想カメラ設定ステップ、オブジェクト配置ステップ、オブジェクト画像生成ステップ、及び表示制御ステップ、を含む。
【0023】
ここで、撮像画像取得ステップでは、撮像装置により撮像して得られた撮像画像を取得する。検出ステップでは、撮像画像から特定対象物を検出する。算出ステップでは、検出ステップにおける特定対象物の検出結果に基づいて、撮像装置と特定対象物との相対的位置を算出する。仮想カメラ設定ステップでは、算出ステップにおける算出結果に基づいて、仮想空間内に仮想カメラを設定する。オブジェクト配置ステップでは、特定対象物の位置を基準とした仮想空間における所定の位置に、ユーザが選択可能なメニュー項目に対応付けられ、かつユーザに選択されるための選択オブジェクトを仮想的なオブジェクトとして配置する。オブジェクト画像生成ステップでは、仮想空間を仮想カメラで撮像して、選択オブジェクトのオブジェクト画像を生成する。表示制御ステップでは、画面上の現実空間に重ね合わせてユーザに視認されるようにオブジェクト画像を表示装置に表示させる。
【0024】
上記(9)〜(11)の表示制御装置、システム及び表示制御方法は、上記(1)の表示制御プログラムと同様の作用効果を奏する。
【発明の効果】
【0025】
本発明によれば、ユーザが選択可能なメニュー項目を示しかつユーザに選択されるための選択オブジェクトを拡張現実画像として表示することができる。
【0026】
上記の様に、メニュー画像が拡張現実画像である。このため、メニュー画像においてメニュー項目がユーザから選択され、この選択されたメニュー実行処理が実行されるときに、このメニュー実行処理が拡張現実画像を表示するための処理(すなわち、検出手段による特定対象物の検出結果に基づく処理)を含むとしても、メニュー画像の表示から、この後に続く拡張現実画像の表示への切り替わりをユーザに強く感じさせることはない。
【0027】
また、仮想的なオブジェクトである選択オブジェクトが表示されることで、ユーザの選択可能なメニュー項目が表示される。この様に仮想的なオブジェクトによって選択可能なメニュー項目を示すため、ユーザは、選択オブジェクトが実世界にあるような感覚を得ることができ、拡張現実の世界への没入感を損なわずメニュー項目を表示することができる。
【図面の簡単な説明】
【0028】
【図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】実世界画像のマーカー60の位置及び姿勢に基づいて生成された仮想空間の一例を模式的に示す図
【図9】図8で示す直線L3の位置及び傾きが変更された状態の仮想空間を示す模式図
【図10】図9で示す仮想空間に基づいて生成された拡張現実画像の一例を示す図
【図11】メモリ32に記憶されるプログラム及びデータの一例を示すメモリマップ
【図12】本実施形態の画像表示処理の一例を示すフローチャート(その1)
【図13】本実施形態の画像表示処理の一例を示すフローチャート(その2)
【図14】本画像表示処理におけるステップS24の選択メニュー実行処理の一例を示すフローチャート
【発明を実施するための形態】
【0029】
(ゲーム装置の構成)
以下、本発明の一実施形態に係るゲーム装置について説明する。図1〜図3は、ゲーム装置10の外観を示す平面図である。ゲーム装置10は携帯型のゲーム装置であり、図1〜図3に示すように折り畳み可能に構成されている。図1および図2は、開いた状態(開状態)におけるゲーム装置10を示し、図3は、閉じた状態(閉状態)におけるゲーム装置10を示している。図1は、開状態におけるゲーム装置10の正面図であり、図2は、開状態におけるゲーム装置10の右側面図である。ゲーム装置10は、撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置10は、交換可能なメモリカード内に記憶され、または、サーバーや他のゲーム装置から受信したゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラで撮像した画像などのコンピュータグラフィックス処理により生成された画像を画面に表示したりすることができる。
【0030】
まず、図1〜図3を参照して、ゲーム装置10の外観構成について説明する。図1〜図3に示されるように、ゲーム装置10は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に接続されている。本実施形態では、各ハウジング11および21はともに横長の長方形の板状形状であり、互いの長辺部分で回転可能に接続されている。
【0031】
図1および図2に示されるように、下側ハウジング11の上側長辺部分には、下側ハウジング11の内側面(主面)11Bに対して垂直な方向に突起する突起部11Aが設けられる。また、上側ハウジング21の下側長辺部分には、上側ハウジング21の下側面から当該下側面に垂直な方向に突起する突起部21Aが設けられる。下側ハウジング11の突起部11Aと上側ハウジング21の突起部21Aとが連結されることにより、下側ハウジング11と上側ハウジング21とが、折り畳み可能に接続される。
【0032】
(下側ハウジングの説明)
まず、下側ハウジング11の構成について説明する。図1〜図3に示すように、下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12、タッチパネル13、各操作ボタン14A〜14L(図1、図3)、アナログスティック15、LED16A〜16B、挿入口17、および、マイクロフォン用孔18が設けられる。以下、これらの詳細について説明する。
【0033】
図1に示すように、下側LCD12は下側ハウジング11に収納される。下側LCD12は横長形状であり、長辺方向が下側ハウジング11の長辺方向に一致するように配置される。下側LCD12は下側ハウジング11の中央に配置される。下側LCD12は、下側ハウジング11の内側面(主面)に設けられ、下側ハウジング11に設けられた開口部から当該下側LCD12の画面が露出される。ゲーム装置10を使用しない場合には閉状態としておくことによって、下側LCD12の画面が汚れたり傷ついたりすることを防止することができる。下側LCD12の画素数は、例えば、256dot×192dot(横×縦)であってもよい。下側LCD12は、後述する上側LCD22とは異なり、画像を(立体視可能ではなく)平面的に表示する表示装置である。なお、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側LCD12として、任意の解像度の表示装置を利用することができる。
【0034】
図1に示されるように、ゲーム装置10は、入力装置として、タッチパネル13を備えている。タッチパネル13は、下側LCD12の画面上に装着されている。なお、本実施形態では、タッチパネル13は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。本実施形態では、タッチパネル13として、下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度が一致している必要はない。また、下側ハウジング11の上側面には挿入口17(図1および図3(d)に示す点線)が設けられている。挿入口17は、タッチパネル13に対する操作を行うために用いられるタッチペン28を収納することができる。なお、タッチパネル13に対する入力は通常タッチペン28を用いて行われるが、タッチペン28に限らずユーザの指でタッチパネル13に対する入力をすることも可能である。
【0035】
各操作ボタン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の電源をオン/オフするために用いられる。
【0036】
アナログスティック15は、方向を指示するデバイスであり、下側ハウジング11の内側面の下側LCD12より左側領域の上部領域に設けられる。図1に示すように、十字ボタン14Aは下側LCD12より左側領域の下部領域に設けられるので、アナログスティック15は、十字ボタン14Aの上方に設けられる。また、アナログスティック15、および、十字ボタン14Aは、下側ハウジングを把持した左手の親指で操作可能な位置に設計される。また、アナログスティック15を上部領域に設けたことにより、下側ハウジング11を把持する左手の親指が自然と位置するところにアナログスティック15が配され、十字ボタン14Aは、左手の親指を少し下にずらした位置に配される。アナログスティック15は、そのキートップが、下側ハウジング11の内側面に平行にスライドするように構成されている。アナログスティック15は、ゲーム装置10が実行するプログラムに応じて機能する。例えば、3次元仮想空間に所定のオブジェクトが登場するゲームがゲーム装置10によって実行される場合、アナログスティック15は、当該所定のオブジェクトを3次元仮想空間内で移動させるための入力装置として機能する。この場合において、所定のオブジェクトはアナログスティック15のキートップがスライドした方向に移動される。なお、アナログスティック15として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いても良い。
【0037】
十字状に配置される、ボタン14B、ボタン14C、ボタン14D、ボタン14Eの4つのボタンは、下側ハウジング11を把持する右手の親指が自然と位置するところに配置される。また、これらの4つのボタンと、アナログスティック15とは、下側LCD12を挟んで、左右対称に配置される。これにより、ゲームプログラムによっては、例えば、左利きの人が、これらの4つのボタンを使用して方向指示入力をすることも可能である。
【0038】
また、下側ハウジング11の内側面には、マイクロフォン用孔18が設けられる。マイクロフォン用孔18の下部には後述する音声入力装置としてのマイク(図6参照)が設けられ、当該マイクがゲーム装置10の外部の音を検出する。
【0039】
図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が備えるスピーカの音量を調整するために用いられる。
【0040】
図3(a)に示されるように、下側ハウジング11の左側面には開閉可能なカバー部11Cが設けられる。このカバー部11Cの内側には、ゲーム装置10とデータ保存用外部メモリ45とを電気的に接続するためのコネクタ(図示せず)が設けられる。データ保存用外部メモリ45は、コネクタに着脱自在に装着される。データ保存用外部メモリ45は、例えば、ゲーム装置10によって撮像された画像のデータを記憶(保存)するために用いられる。なお、上記コネクタおよびそのカバー部11Cは、下側ハウジング11の右側面に設けられてもよい。
【0041】
また、図3(d)に示されるように、下側ハウジング11の上側面には、ゲーム装置10とゲームプログラムを記録した外部メモリ44を挿入するための挿入口11Dが設けられ、その挿入口11Dの内部には、外部メモリ44と電気的に着脱自在に接続するためのコネクタ(図示せず)が設けられる。当該外部メモリ44がゲーム装置10に接続されることにより、所定のゲームプログラムが実行される。なお、上記コネクタおよびその挿入口11Dは、下側ハウジング11の他の側面(例えば、右側面等)に設けられてもよい。
【0042】
また、図1および図3(c)に示されるように、下側ハウジング11の下側面にはゲーム装置10の電源のON/OFF状況をユーザに通知する第1LED16A、下側ハウジング11の右側面にはゲーム装置10の無線通信の確立状況をユーザに通知する第2LED16Bが設けられる。ゲーム装置10は他の機器との間で無線通信を行うことが可能であり、第1LED16Bは、無線通信が確立している場合に点灯する。ゲーム装置10は、例えば、IEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。下側ハウジング11の右側面には、この無線通信の機能を有効/無効にする無線スイッチ19が設けられる(図3(c)参照)。
【0043】
なお、図示は省略するが、下側ハウジング11には、ゲーム装置10の電源となる充電式電池が収納され、下側ハウジング11の側面(例えば、上側面)に設けられた端子を介して当該電池を充電することができる。
【0044】
(上側ハウジングの説明)
次に、上側ハウジング21の構成について説明する。図1〜図3に示すように、上側ハウジング21には、上側LCD(Liquid Crystal Display:液晶表示装置)22、外側撮像部23(外側撮像部(左)23aおよび外側撮像部(右)23b)、内側撮像部24、3D調整スイッチ25、および、3Dインジケータ26が設けられる。以下、これらの詳細について説明する。
【0045】
図1に示すように、上側LCD22は上側ハウジング21に収納される。上側LCD22は、横長形状であり、長辺方向が上側ハウジング21の長辺方向に一致するように配置される。上側LCD22は上側ハウジング21の中央に配置される。上側LCD22の画面の面積は、下側LCD12の画面の面積よりも大きく設定される。また、上側LCD22の画面は、下側LCD12の画面よりも横長に設定される。すなわち、上側LCD22の画面のアスペクト比における横幅の割合は、下側LCD12の画面のアスペクト比における横幅の割合よりも大きく設定される。
【0046】
上側LCD22の画面は、上側ハウジング21の内側面(主面)21Bに設けられ、上側ハウジング21に設けられた開口部から当該上側LCD22の画面が露出される。また、図2に示すように、上側ハウジング21の内側面は、透明なスクリーンカバー27によって覆われている。当該スクリーンカバー27は、上側LCD22の画面を保護するとともに、上側LCD22と上側ハウジング21の内側面と一体的にさせ、これにより統一感を持たせている。上側LCD22の画素数は、例えば、640dot×200dot(横×縦)であってもよい。なお、本実施形態では上側LCD22は液晶表示装置であるとしたが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置などが利用されてもよい。また、上側LCD22として、任意の解像度の表示装置を利用することができる。
【0047】
上側LCD22は、立体視可能な画像を表示することが可能な表示装置である。また、本実施例では、実質的に同一の表示領域を用いて左目用画像と右目用画像が表示される。具体的には、左目用画像と右目用画像が所定単位で(例えば、1列ずつ)横方向に交互に表示される方式の表示装置である。または、左目用画像と右目用画像とが時分割で交互に表示される方式の表示装置であってもよい。また、本実施例では、裸眼立体視可能な表示装置である。そして、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式(視差バリア方式)のものが用いられる。本実施形態では、上側LCD22はパララックスバリア方式のものとする。上側LCD22は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像(立体画像)を表示する。すなわち、上側LCD22は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像を視認させることにより、ユーザにとって立体感のある立体画像(立体視可能な画像)を表示することができる。また、上側LCD22は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる(上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである)。このように、上側LCD22は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する(平面視画像を表示する)平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する3D調整スイッチ25によって行われる。
【0048】
外側撮像部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イメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0049】
図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の間隔は、この範囲に限らない。
【0050】
なお、本実施例においては、外側撮像部(左)23aおよび外側撮像部(右)23はハウジングに固定されており、撮像方向を変更することはできない。
【0051】
また、外側撮像部(左)23aおよび外側撮像部(右)23bは、上側LCD22(上側ハウジング21)の左右方向に関して中央から対称となる位置にそれぞれ配置される。すなわち、外側撮像部(左)23aおよび外側撮像部(右)23bは、上側LCD22を左右に2等分する線に対して対称の位置にそれぞれ配置される。また、外側撮像部(左)23aおよび外側撮像部(右)23bは、上側ハウジング21を開いた状態において、上側ハウジング21の上部であって、上側LCD22の画面の上端よりも上方の位置の裏側に配置される。すなわち、外側撮像部(左)23aおよび外側撮像部(右)23bは、上側ハウジング21の外側面であって、上側LCD22を外側面に投影した場合、投影した上側LCD22の画面の上端よりも上方に配置される。
【0052】
このように、外側撮像部23の2つの撮像部(23aおよび23b)が、上側LCD22の左右方向に関して中央から対称の位置に配置されることにより、ユーザが上側LCD22を正視した場合に、外側撮像部23の撮像方向をユーザの視線方向と一致させることができる。また、外側撮像部23は、上側LCD22の画面の上端より上方の裏側の位置に配置されるため、外側撮像部23と上側LCD22とが上側ハウジング21の内部で干渉することがない。従って、外側撮像部23を上側LCD22の画面の裏側に配置する場合と比べて、上側ハウジング21を薄く構成することが可能となる。
【0053】
内側撮像部24は、上側ハウジング21の内側面(主面)21Bに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部24は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0054】
図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を表している。
【0055】
このように、内側撮像部24は、外側撮像部23とは反対方向を撮像する。内側撮像部24は、上側ハウジング21の内側面であって、外側撮像部23の左右の撮像部の中間位置の裏側に設けられる。これにより、ユーザが上側LCD22を正視した際、内側撮像部24でユーザの顔を正面から撮像することができる。また、外側撮像部23の左右の撮像部と内側撮像部24とが上側ハウジング21の内部で干渉することがないため、上側ハウジング21を薄く構成することが可能となる。
【0056】
3D調整スイッチ25は、スライドスイッチであり、上述のように上側LCD22の表示モードを切り替えるために用いられるスイッチである。また、3D調整スイッチ25は、上側LCD22に表示された立体視可能な画像(立体画像)の立体感を調整するために用いられる。図1〜図3に示されるように、3D調整スイッチ25は、上側ハウジング21の内側面および右側面の端部に設けられ、ユーザが上側LCD22を正視した場合に、当該3D調整スイッチ25を視認できる位置に設けられる。また、3D調整スイッチ25の操作部は、内側面および右側面の両方に突出しており、どちらからも視認および操作することができる。なお、3D調整スイッチ25以外のスイッチは全て下側ハウジング11に設けられる。
【0057】
図4は、図1に示す上側ハウジング21のA−A’線断面図である。図4に示すように、上側ハウジング21の内側面の右端部には、凹部21Cが形成され、当該凹部21Cに3D調整スイッチ25が設けられる。3D調整スイッチ25は、図1および図2に示されるように、上側ハウジング21の正面および右側面から視認可能に配置される。3D調整スイッチ25のスライダ25aは、所定方向(上下方向)の任意の位置にスライド可能であり、当該スライダ25aの位置に応じて上側LCD22の表示モードが設定される。
【0058】
図5Aから図5Cは、3D調整スイッチ25のスライダ25aがスライドする様子を示す図である。図5Aは、3D調整スイッチ25のスライダ25aが最下点(第3の位置)に存在する様子を示す図である。図5Bは、3D調整スイッチ25のスライダ25aが最下点よりも上方位置(第1の位置)に存在する様子を示す図である。図5Cは、3D調整スイッチ25のスライダ25aが最上点(第2の位置)に存在する様子を示す図である。
【0059】
図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の方向に動かした場合とで、右目用画像および左目用画像の横方向の位置のずれ量の調整する方向が逆になる。
【0060】
3Dインジケータ26は、上側LCD22が立体表示モードか否かを示す。3Dインジケータ26は、LEDであり、上側LCD22の立体表示モードが有効の場合に点灯する。なお、3Dインジケータ26は、上側LCD22が立体表示モードになっており、かつ、立体視画像を表示するプログラム処理が実行されているとき(すなわち、3D調整スイッチが上記第1の位置から上記第2の位置にあるときに、左目用画像と右目用画像が異なるような画像処理が実行されているとき)に限り、点灯するようにしてもよい。図1に示されるように、3Dインジケータ26は、上側ハウジング21の内側面に設けられ、上側LCD22の画面近傍に設けられる。このため、ユーザが上側LCD22の画面を正視した場合、ユーザは3Dインジケータ26を視認しやすい。従って、ユーザは上側LCD22の画面を視認している状態でも、上側LCD22の表示モードを容易に認識することができる。
【0061】
また、上側ハウジング21の内側面には、スピーカ孔21Eが設けられる。後述するスピーカ43からの音声がこのスピーカ孔21Eから出力される。
【0062】
(ゲーム装置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でもよい)内に収納される。
【0063】
情報処理部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に当該画像が表示される。
【0064】
情報処理部31には、メインメモリ32、外部メモリI/F33、データ保存用外部メモリI/F34、および、データ保存用内部メモリ35が接続される。外部メモリI/F33は、外部メモリ44を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリI/F34は、データ保存用外部メモリ45を着脱自在に接続するためのインターフェイスである。
【0065】
メインメモリ32は、情報処理部31(のCPU311)のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ32は、上記プログラムに基づく処理に用いられる各種データを一時的に記憶したり、外部(外部メモリ44や他の機器等)から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ32として例えばPSRAM(Pseudo−SRAM)を用いる。
【0066】
外部メモリ44は、情報処理部31によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ44は、例えば読み取り専用の半導体メモリで構成される。外部メモリ44が外部メモリI/F33に接続されると、情報処理部31は外部メモリ44に記憶されたプログラムを読み込むことができる。情報処理部31が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ45は、不揮発性の読み書き可能なメモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ45には、外側撮像部23で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ45がデータ保存用外部メモリI/F34に接続されると、情報処理部31はデータ保存用外部メモリ45に記憶された画像を読み込み、上側LCD22及び/又は下側LCD12に当該画像を表示することができる。
【0067】
データ保存用内部メモリ35は、読み書き可能な不揮発性メモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ35には、無線通信モジュール36を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【0068】
無線通信モジュール36は、例えばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール37は、所定の通信方式(例えば赤外線通信)により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール36およびローカル通信モジュール37は情報処理部31に接続される。情報処理部31は、無線通信モジュール36を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール37を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0069】
また、情報処理部31には、加速度センサ39が接続される。加速度センサ39は、3軸(xyz軸)方向に沿った直線方向の加速度(直線加速度)の大きさを検出する。加速度センサ39は、下側ハウジング11の内部に設けられる。加速度センサ39は、図1に示すように、下側ハウジング11の長辺方向をx軸、下側ハウジング11の短辺方向をy軸、下側ハウジング11の内側面(主面)に対して垂直な方向をz軸として、各軸の直線加速度の大きさを検出する。なお、加速度センサ39は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ39は1軸又は2軸方向を検出する加速度センサであってもよい。情報処理部31は、加速度センサ39が検出した加速度を示すデータ(加速度データ)を受信して、ゲーム装置10の姿勢や動きを検出することができる。
【0070】
また、情報処理部31には、RTC38および電源回路40が接続される。RTC38は、時間をカウントして情報処理部31に出力する。情報処理部31は、RTC38によって計時された時間に基づき現在時刻(日付)を計算する。電源回路40は、ゲーム装置10が有する電源(下側ハウジング11に収納される上記充電式電池)からの電力を制御し、ゲーム装置10の各部品に電力を供給する。
【0071】
また、情報処理部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に対して入力が行われた位置を知ることができる。
【0072】
操作ボタン14は、上記各操作ボタン14A〜14Lからなり、情報処理部31に接続される。操作ボタン14から情報処理部31へは、各操作ボタン14A〜14Iに対する入力状況(押下されたか否か)を示す操作データが出力される。情報処理部31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に従った処理を実行する。
【0073】
下側LCD12および上側LCD22は情報処理部31に接続される。下側LCD12および上側LCD22は、情報処理部31(のGPU312)の指示に従って画像を表示する。本実施形態では、情報処理部31は、上側LCD22に立体画像(立体視可能な画像)を表示させる。
【0074】
具体的には、情報処理部31は、上側LCD22のLCDコントローラ(図示せず)と接続され、当該LCDコントローラに対して視差バリアのON/OFFを制御する。上側LCD22の視差バリアがONになっている場合、情報処理部31のVRAM313に格納された右目用画像と左目用画像とが、上側LCD22に出力される。より具体的には、LCDコントローラは、右目用画像について縦方向に1ライン分の画素データを読み出す処理と、左目用画像について縦方向に1ライン分の画素データを読み出す処理とを交互に繰り返すことによって、VRAM313から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に1ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側LCD22の画面に表示される。そして、上側LCD22の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側LCD22の画面には立体視可能な画像が表示される。
【0075】
外側撮像部23および内側撮像部24は、情報処理部31に接続される。外側撮像部23および内側撮像部24は、情報処理部31の指示に従って画像を撮像し、撮像した画像データを情報処理部31に出力する。
【0076】
3D調整スイッチ25は、情報処理部31に接続される。3D調整スイッチ25は、スライダ25aの位置に応じた電気信号を情報処理部31に送信する。
【0077】
また、3Dインジケータ26は、情報処理部31に接続される。情報処理部31は、3Dインジケータ26の点灯を制御する。例えば、情報処理部31は、上側LCD22が立体表示モードである場合、3Dインジケータ26を点灯させる。以上がゲーム装置10の内部構成の説明である。
【0078】
(本実施形態の特徴の概要)
以下に、図7〜図10を用いて、本実施形態の特徴となる画像表示処理の概要について説明する。画像表示処理は、画像表示プログラムに基づいてゲーム装置10によって実行される。この画像表示処理では、ゲーム装置10が、外側撮像部23(23a,23b)によって現在撮像されている実世界画像に、三次元の仮想空間に存在する仮想的なオブジェクトの画像を重畳(合成)した拡張現実画像を上側LCD22に立体視可能に表示する。この様な画像表示処理において、ゲーム装置10はユーザの所望のメニュー項目の処理(メニュー実行処理)を実行するが、ゲーム装置10がこのメニュー実行処理の前に所望のメニュー項目をユーザに選択させるためのメニュー画像を拡張現実画像として表示することが本実施形態の特徴である。具体的には、ゲーム装置10が、選択可能なメニュー項目に対応する選択オブジェクトの画像を上記仮想的なオブジェクトの画像として実世界画像に合成した拡張現実画像を生成し、この拡張現実画像をメニュー画像として表示することが本実施形態の特徴である。
【0079】
ここで、ゲーム装置10は、上述したようなメニュー画像を常に表示するのではなく、実世界に配置されたマーカー(本発明の特定対象物の一例)を外側撮像部23によって撮像することで、上記メニュー画像を表示する。すなわち、外側撮像部(左)23aで撮像された左実世界画像と、外側撮像部(右)23bで撮像された右実世界画像の双方にマーカーが含まれていなければ、拡張現実画像が表示されない。なお、以下より、左実世界画像と右実世界画像を区別しないときには、「実世界画像」と単に記載し、区別するときには「左実世界画像」「右実世界画像」と記載する。以下に、図7を用いて、マーカーを用いての選択オブジェクトの表示方法について説明する。
【0080】
図7は、上側LCD22に表示される立体画像の一例を示す図である。本例では、マーカー60が撮像されてマーカー60の全体が左実世界画像及び右実世界画像に含まれている。そして、上側LCD22には、4つの選択オブジェクトO1(O1a〜O1b)と、これらの4つの選択オブジェクトO1の何れかを選択するためのカーソルオブジェクトO2が表示される。
【0081】
選択オブジェクトO1は、例えば所定の厚みを有する四角形状のオブジェクトであり、上述したようにユーザに選択可能なメニュー項目(例えば、アプリケーションプログラム)に対応付けられている。なお、本来は、対応づけられたメニュー項目を示すアイコン(例えば、選択オブジェクトO1に対応付けられているアプリケーションプログラムを表すアイコン)が選択オブジェクトO1上に表示されるが、図7では図示を省略する。なお、ゲーム装置10は、他の方法を用いて、選択オブジェクトO1に対応づけられたメニュー項目をユーザに示してもよい。そして、ユーザが選択オブジェクトO1を選択する操作を行ったときに、ゲーム装置10は選択オブジェクトO1に対応付けられているメニュー項目のメニュー実行処理を実行する。このメニュー実行処理は、例えば、拡張現実画像を表示するための処理(例えば所定のゲーム処理等)を含む。この様に、選択オブジェクトO1が表示されることで、ユーザに選択可能なメニュー項目が表示され、選択オブジェクトO1の選択によってこの選択オブジェクトO1に対応するメニュー項目のメニュー実行処理が実行される。
【0082】
選択オブジェクトO1はマーカー60と予め定められた所定の位置関係になるように表示される。また、カーソルオブジェクトO2は、例えば十字形状で板状のポリゴン等から成り、立体視における拡張現実画像の中心に位置するように表示される。なお、本実施形態では、カーソルを表示するためにカーソルオブジェクトO2を仮想空間に配置しているが、この構成に代えて、立体視における拡張現実画像の中心に表示されるようにカーソルの二次元画像を拡張現実画像に合成する構成であってもよい。
【0083】
以下に、ゲーム装置10がマーカー60と予め定められた所定の位置関係になるように選択オブジェクトO1を表示するための方法を説明する。まず、ゲーム装置10は、左実世界画像及び右実世界画像におけるマーカー60の位置及び姿勢を公知のパターンマッチング等の画像処理を行うことで取得し、これらのマーカー60の位置及び姿勢に基づいて、各外側撮像部23とマーカー60との実世界での相対的位置を算出する。そして、ゲーム装置10が、算出した外側撮像部(左)23aとマーカー60の相対的位置に基づいて、マーカー60に対応する仮想空間内の所定点を基準として、仮想空間内の左仮想カメラとの位置および向きを設定する。同様に、ゲーム装置10は、算出した外側撮像部(右)23bとマーカー60の相対的位置に基づいて、仮想空間内の右仮想カメラの位置および向きを設定する。そして、ゲーム装置10は当該所定点を基準として予め定められた位置に4つの選択オブジェクトO1を設定するのである。
【0084】
図8を用いて、上述した、マーカー60と予め定められた所定の位置関係になるように選択オブジェクトO1を表示するための方法をより具体的に説明する。図8は、実世界画像のマーカー60の位置及び姿勢に基づいて生成された仮想空間の一例を模式的に示す図である。ゲーム装置10は、マーカー座標系(仮想空間におけるマーカー60の位置に対応する所定点を基準とした座標系)での選択オブジェクトO1の位置を予め記憶しており、これによって、仮想空間におけるマーカー60の位置に対応する所定点と選択オブジェクトO1の相対的位置は予め設定されている。本実施形態では、4つの選択オブジェクトO1のそれぞれの位置(例えば、それぞれの代表点の位置)が、マーカー座標系の所定点(本実施形態では原点P)からそれぞれ異なった方向に等間隔だけ離れるように(所定点の周囲にそれぞれ配置されるように)設定されている。最も、選択オブジェクトO1の配置位置は、この様な位置に限定されることはなく、如何なる配置位置にアレンジされてもよい。なお、同図で示すX,Y及びZ方向はマーカー座標系の3つの座標軸の方向を示す。
【0085】
そして、ゲーム装置10は、実世界画像におけるマーカー60の位置及び姿勢に基づいて、仮想カメラのマーカー座標系における位置及び向きを決定する。なお、外側撮像部(右)23b及び外側撮像部(左)23aの視差によって、外側撮像部(右)23b及び外側撮像部(左)23aで撮像される2つの実世界画像では、マーカー60の位置及び姿勢が異なっている。このため、ゲーム装置10は、外側撮像部(右)23bに対応する右仮想カメラと、外側撮像部(左)23aに対応する左仮想カメラの2つの仮想カメラを仮想空間に設定し、それぞれの仮想カメラは位置が異なることになる。
【0086】
また、上述したように、ゲーム装置10は、仮想空間に十字形状で板状のポリゴンから成るカーソルオブジェクトO2を配置するが、このカーソルオブジェクトO2の配置位置を次のように決定する。すなわち、ゲーム装置10は、左仮想カメラの位置P1、右仮想カメラの位置P2の中間点P3を通る直線であって、右仮想カメラの視線L1と左仮想カメラの視線L2に平行な直線L3上に、カーソルオブジェクトO2の位置を決定する。なお、カーソルオブジェクトO2は、中間点P3から所定の距離になる位置に決定され、かつ直線L3と直交するように配置される。
【0087】
上述のようにして生成された仮想空間を仮想カメラで撮像して、選択オブジェクトO1の画像及びカーソルオブジェクトO2の画像が生成され、これらの画像が実世界画像に合成されてメニュー画像として表示されるのである。なお、右仮想カメラで撮像されたオブジェクトO1,O2の画像は右実世界画像に合成されて右目用画像として表示され、左仮想カメラで撮像されたオブジェクトO1,O2の画像は左実世界画像に合成されて左目用画像として表示される。
【0088】
次に、図8〜図10を用いて、画像表示処理において、ゲーム装置10がユーザの操作に基づいて、選択オブジェクトO1を選択する動作を説明する。図9は、図8で示す直線L3の位置及び傾きが変更された状態の仮想空間を示す模式図である。図10は、図9で示す仮想空間に基づいて生成された拡張現実画像の一例を示す図である。図8を参照して、ゲーム装置10は、それぞれの選択オブジェクトO1の周囲に、選択オブジェクトO1を囲むように(選択オブジェクトO1の底面を除く5つの側面を囲むように)コリジョン領域C(C1〜C4)を設定する。
【0089】
図9で示すように、ゲーム装置10の本体をユーザが傾ける等して、外側撮像部23の撮像方向や位置が変更されたときに、この変更に応じて、ゲーム装置10は右仮想カメラと左仮想カメラの撮像方向や位置(視線L1、L2の位置や傾き)も変更し、その結果、視線L1、L2に平行な直線L3の位置や傾きも変更する。そして、ゲーム装置10は、直線L3がいずれかのコリジョン領域Cと交差したとき(衝突したとき)に、そのコリジョン領域Cに対応する選択オブジェクトO1が選択されたと決定する。図9では中間点P3が矢印の方向に変更され、直線L3の位置及び傾きが変化している。これによって、直線L3がコリジョン領域C1と衝突するようになり、この結果、選択オブジェクトO1aが選択される(選択状態にされる)。
【0090】
そして、選択オブジェクトO1が選択状態になると、ゲーム装置10は、選択オブジェクトO1の表示態様(例えば、形状、サイズ、姿勢、色及び模様等)を変更する処理(以下、「オブジェクト態様変更処理」と記載する)を行う。本実施形態では、ゲーム装置10は、選択オブジェクトO1の高さを僅かに(所定値だけ)高く変更し、かつ板状のポリゴンから成る影オブジェクトO3を選択オブジェクトO1の下側に配置する処理を行う。この様に、選択状態の選択オブジェクトO1の表示態様を変更することで、ユーザに選択状態の選択オブジェクトO1を報知している。なお、本実施形態では、影オブジェクトO3は選択状態になった選択オブジェクトO1に対してのみ配置されているが、選択状態であるか否かに係わらず、全ての選択オブジェクトO1に対して初期状態から影オブジェクトO3を配置する構成であってもよい。この様な構成では、影オブジェクトO3は、選択オブジェクトO1が選択状態ではなければ選択オブジェクトO1に隠れて表示されず、選択オブジェクトO1が選択状態になって浮かせて配置されたときに表示されることになる。
【0091】
なお、表示態様が変更された選択オブジェクトO1は仮想空間の下面から浮きあがって配置されることになるが、このときのコリジョン領域Cは下面に接地するように下面に向かって伸長して設定される。図9では、コリジョン領域C1がこの様に伸長して設定されている。この様に設定されなければ、選択オブジェクトO1が選択状態になって選択オブジェクトO1が浮き上がったときに、直線L3がコリジョン領域Cと衝突しなくなって、ユーザの意図に反して選択状態が解除されてしまうことが起こり得るからである。このオブジェクト態様変更処理の結果、図10で示すような拡張現実画像が表示される。
【0092】
(メモリマップ)
以下に、図11を用いて、上記画像表示処理の実行時にメモリ32に記憶されるプログラム及び主なデータを説明する。図11は、メモリ32に記憶されるプログラム及びデータの一例を示すメモリマップである。メモリ32には、画像表示プログラム70、左実世界画像71L、右実世界画像71R、左ビュー行列72L、右ビュー行列72R、選択オブジェクト情報73、カーソルオブジェクト情報74、選択情報75、コリジョン情報76、メニュー項目情報77及び影オブジェクト情報78等が記憶されている。
【0093】
画像表示プログラム70は、ゲーム装置10に画像表示処理を実行させるプログラムである。また、左実世界画像71Lは、外側撮像部(左)23aによって撮像された実世界画像である。右実世界画像71Rは、外側撮像部(右)23bによって撮像された実世界画像である。左ビュー行列72Lは、左仮想カメラから見たオブジェクト(選択オブジェクトO1、カーソルオブジェクトO2等)を描画する際に用いられる行列であり、マーカー座標系で表された座標を左仮想カメラ座標系で表された座標へと変換するための座標変換行列である。また、右ビュー行列72Rは、右仮想カメラから見たオブジェクト(選択オブジェクトO1、カーソルオブジェクトO2等)を描画する際に用いられる行列であり、マーカー座標系で表された座標を右仮想カメラ座標系で表された座標へと変換するための座標変換行列である。
【0094】
選択オブジェクト情報73は、選択オブジェクトO1に関連する情報であって、選択オブジェクトO1の形状や模様を表すモデル情報、及びマーカー座標系での位置等を示す。なお、選択オブジェクト情報73は、各選択オブジェクトO1の個数分(O1a、O1b、・・・、O1n)記憶される。カーソルオブジェクト情報74は、カーソルオブジェクトO2に関連する情報であって、カーソルオブジェクトO2の形状や色彩を表すモデル情報、現在位置及び中間点P3からの距離等を示す。選択情報75は、4つの選択オブジェクトO1のうち選択状態にある選択オブジェクトO1を特定するための情報である。コリジョン情報76は、コリジョン領域Cに関連する情報であり、選択オブジェクトO1の位置(例えば代表点の位置)を基準としたコリジョン領域Cの設定領域を示す。なお、コリジョン情報76は、コリジョン領域C1〜C4を生成するために使用される。また、メニュー項目情報77は、各選択オブジェクトO1に対応するメニュー項目をそれぞれ示す情報である。影オブジェクト情報78は、影オブジェクトO3に関連する情報であって、影オブジェクトO3の形状や色彩を表すモデル情報、選択オブジェクトO1の位置(例えば代表点の位置)を基準とした位置を示す。
【0095】
なお、上記左実世界画像71L、右実世界画像71R、左ビュー行列72L、右ビュー行列72R及び選択情報75は、上記画像表示プログラムの実行によって生成され、一時的にメモリ32に記憶されるデータである。また、選択オブジェクト情報73、カーソルオブジェクト情報74、コリジョン情報76、メニュー項目情報77、及び影オブジェクト情報78は、予めデータ保存用内部メモリ35、外部メモリ44、データ保存用外部メモリ45等に記憶され、画像処理プログラムの実行によって読み出されてメモリ32に記憶されるデータである。また、メニュー実行処理において使用される仮想的なオブジェクトの情報、選択情報及びコリジョン情報については、図示を省略しているが、選択オブジェクト情報73、選択情報75及びコリジョン情報76と同様のフォーマットの情報として記憶される。そして、これらの情報も、予めデータ保存用内部メモリ35、外部メモリ44、データ保存用外部メモリ45等に記憶され、画像処理プログラムの実行によって読み出されてメモリ32に記憶される。
【0096】
(画像表示処理)
以下に、図12〜図14を用いて、CPU311が実行する上記画像表示処理を詳細に説明する。図12及び図13は、本実施形態の画像表示処理の一例を示すフローチャートである。図14は画像表示処理におけるステップS24のメニュー実行処理の一例を示すフローチャートである。なお、図12〜図14のフローチャートは単なる一例に過ぎない。従って、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。
【0097】
まず、CPU311は、左実世界画像71Lと右実世界画像71Rをメモリ32から取得する(S10)。そして、CPU311は取得した左実世界画像71Lと右実世界画像71Rに基づいてマーカー認識処理を行う(S11)。
【0098】
前述のように、上側ハウジング21において、外側撮像部(左)23aと外側撮像部(
右)23bは一定の間隔(例えば3.5cm)だけ離れている。したがって、外側撮像部
(左)23aと外側撮像部(右)23bによって同時にマーカー60を撮像した場合、外側撮像部(左)23aによって撮像された左実世界画像におけるマーカー60の位置及び姿勢と、外側撮像部(右)23bによって撮像された右実世界画像におけるマーカー60の位置及び姿勢との間には、視差によるズレが生じる。本実施形態では、CPU311は、左実世界画像および右実世界画像の両方に対してマーカー認識処理を行っている。
【0099】
例えば、左実世界画像に対してマーカー認識処理を行う場合には、CPU311は、パターンマッチング手法等によって左実世界画像にマーカー60が含まれているか否かを判断し、左実世界画像にマーカー60が含まれている場合には、左実世界画像におけるマーカー60の位置および姿勢に基づいて、左ビュー行列72Lを算出する。なお、左ビュー行列72Lは、左実世界画像におけるマーカー60の位置および姿勢に基づいて計算される左仮想カメラの位置および姿勢を反映した行列である。より正確には、図8で示したような仮想空間におけるマーカー座標系(実世界におけるマーカー60の位置に対応する仮想空間内の所定点を原点とした座標系)で表された座標を、左実世界画像におけるマーカー60の位置および姿勢に基づいて計算された左仮想カメラ(実世界の外側撮像部(左)23aに対応する仮想空間内の仮想カメラ)の位置および姿勢を基準とした左仮想カメラ座標系で表される座標へと変換するための座標変換行列である。
【0100】
また例えば、右実世界画像に対してマーカー認識処理を行う場合には、CPU311は、パターンマッチング手法等によって右実世界画像にマーカー60が含まれているか否かを判断し、右実世界画像にマーカー60が含まれている場合には、右実世界画像におけるマーカー60の位置および姿勢に基づいて、右ビュー行列72Rを算出する。なお、右ビュー行列72Rは、右実世界画像におけるマーカー60の位置および姿勢に基づいて計算される右仮想カメラの位置および姿勢を反映した行列である。より正確には、図8で示したような仮想空間におけるマーカー座標系(実世界におけるマーカー60の位置に対応する仮想空間内の所定点を原点とした座標系)で表された座標を、右実世界画像におけるマーカー60の位置および姿勢に基づいて計算された右仮想カメラ(実世界の外側撮像部(右)23bに対応する仮想空間内の仮想カメラ)の位置および姿勢を基準とした右仮想カメラ座標系で表される座標へと変換するための座標変換行列である。
【0101】
なお、このビュー行列72L,72Rの算出において、ゲーム装置10は、マーカー60と各外側撮像部23との相対的位置を算出している。そして、ゲーム装置10は、図8を用いて上述したように、上記相対的位置に基づいて、左仮想カメラ及び右仮想カメラのマーカー座標系における位置及び向きを算出し、この算出した位置及び向きで各仮想カメラを仮想空間に設定している。そして、ゲーム装置10は、このように設定した左仮想カメラの位置及び向きを基準として左ビュー行列72Lを算出し、右仮想カメラの位置及び向きを基準として右ビュー行列72Rを算出する。
【0102】
次に、CPU311は、カーソルオブジェクトO2の位置を算出し仮想空間に配置する処理を行う(S12)。具体的には、CPU311は、まず図8で示すような直線L3を、上記右仮想カメラの位置及び向きと左仮想カメラの位置及び向きに基づいて算出する。そして、CPU311は、直線L3上であり、かつ図8で示す中間点P3からカーソルオブジェクト情報74の示す所定の距離(カーソルオブジェクト情報74で示す距離)に位置するようにこのカーソルオブジェクトO2の位置を算出する。なお、この位置はマーカー座標系で表される。そして、CPU311は、算出した位置をカーソルオブジェクトO2の現在位置として示すようにカーソルオブジェクト情報74を更新する。なお、本実施形態では、仮想空間にカーソルオブジェクトO2を配置する構成であるが、上述したように、カーソルオブジェクトO2を仮想空間に配置せずにカーソルの二次元画像を重畳画像(拡張現実画像)に合成してもよい。この場合には、CPU311は、ステップS12を実行せず、かつ後述のステップS17において生成された左目用の重畳画像と右目用の拡張現実画像のそれぞれにカーソルの二次元画像を合成する。また、各カーソルの二次元画像(左目用画像及び右目用画像)は、ユーザがカーソルを立体視可能なように、各重畳画像に対して所定の視差分だけ異なった位置に合成される。
【0103】
そして、CPU311は、コリジョン判定処理を行う(S13)。具体的には、このコリジョン判定処理では、CPU311は、メモリ32からコリジョン情報76を読み出し、コリジョン情報76の示すコリジョン領域に基づいて各選択オブジェクトO1の各コリジョン領域Cを算出する。なお、このコリジョン領域Cもマーカー座標系で表される。ここで、コリジョン領域Cは、前回のフレームの処理で設定された選択オブジェクトO1の位置を基準として算出され、図8を用いて上述したように、選択オブジェクトO1の底面を除く5つの側面を囲むように設定される。そして、図9で示すように、選択オブジェクトO1が選択状態にあるときには(具体的には、メモリ32に選択情報75が記憶されているときには)、上述したように、この選択オブジェクトO1に設定されているコリジョン領域Cが仮想空間の下方向に伸長される。そして、CPU311は、この様に設定したコリジョン領域CとステップS12で算出した直線L3とが仮想空間において交差しているか(衝突しているか)を判断する。
【0104】
続いて、CPU311は、選択状態にする選択オブジェクトO1を決定する(S14)。具体的には、何れかのコリジョン領域CとステップS12で算出した直線L3とが衝突していると判断したときには、CPU311は、衝突しているコリジョン領域Cに対応する選択オブジェクトO1を、選択状態にする選択オブジェクトO1として決定する。すなわち、衝突している選択オブジェクトO1を示す選択情報75をメモリ32に記憶させる。なお、既に選択情報75が記憶されているときには、CPU311はこの選択情報75を更新する。一方、コリジョン領域CとステップS12で算出した直線L3とが衝突していないと判断したときには、CPU311は、どの選択オブジェクトO1も選択されていない状態にするため、メモリ32に記憶されている選択情報75を削除(またはヌル値を格納)する。
【0105】
続いて、CPU311は、上述したオブジェクト態様変更処理を実行する(S15)。具体的には、CPU311は、選択状態の選択オブジェクトO1(すなわち、選択情報75の示す選択オブジェクトO1)については、初期位置よりも所定の高さだけ高くなるように、当該選択オブジェクトO1の位置を変更する(選択オブジェクト情報74の位置を更新する)。加えて、CPU311は、影オブジェクト情報78に基づいて、選択状態の選択オブジェクトO1の位置を基準とした位置(選択オブジェクトO1の位置の下方)に影オブジェクトO3を配置する。
【0106】
なお、CPU311は、選択状態ではない選択オブジェクトO1については、初期位置に設定し、影オブジェクトO1の配置も行わない。
【0107】
ここで、本実施形態では、CPU311は、選択オブジェクトO1の高さを変更することで選択オブジェクトO1の表示態様を変更しているが、選択オブジェクトO1の姿勢を変える(例えば、起き上がらせるアニメーションを表示する)、振動させる等で選択オブジェクトO1の表示態様を変更してもよい。この様に、選択オブジェクトO1の表示態様の変更を、実世界の実オブジェクトの表示態様の変更に似た自然な内容にすることで、ユーザの拡張現実の世界への没入感をより高めることができる。
【0108】
次に、CPU311は、GPU312を用いて、左実世界画像71Lと右実世界画像71RをそれぞれVRAM313の対応する領域に描画する(S16)。続いて、CPU311は、GPU312を用いて、選択オブジェクトO1及びカーソルオブジェクトO2をVRAM313の実世界画像71L,71R上に重畳して描画する(S17)。具体的には、CPU311は、ステップS11で算出した左ビュー行列72Lを用いて、マーカー座標系の選択オブジェクトO1及びカーソルオブジェクトO2の座標を左仮想カメラ座標系にビューイング変換する。そして、CPU311は、変換された座標に基づいて所定の描画処理を行って、GPU312を用いて、選択オブジェクトO1及びカーソルオブジェクトO2を左実世界画像71L上に描画して重畳画像(左目用画像)を生成する。同様にして、CPU311は、右ビュー行列72Rを用いて各オブジェクトO1,O2の座標のビューイング変換を行う。そして、CPU311は、変換された座標に基づいて所定の描画処理を行って、GPU312を用いて選択オブジェクトO1及びカーソルオブジェクトO2を右実世界画像71R上に描画して重畳画像(右目用画像)を生成する。これによって、例えば、図7や図10で示すような画像が上側LCD22に表示される。
【0109】
次に、CPU311は、外側撮像部23(より具体的には、外側撮像部(左)23aと外側撮像部(右)23bを結ぶ線の中心点)からマーカー60までの距離を算出する(S18)。この距離は、左実世界画像71Lに含まれるマーカー60の位置及び向きと、右実世界画像71Rに含まれるマーカー60の位置及び向きとに基づいて計算することができる。なお、この距離の算出は、左実世界画像71L及び/又は右実世界画像71Rにおけるマーカー60の大きさに基づいてなされてもよい。さらには、実世界における外側撮像部23とマーカー60との間の距離の代わりに、仮想空間における仮想カメラとマーカー座標系の原点との間の距離を計算してもよい。
【0110】
そして、CPU311は、ステップS18で算出した距離が所定値以内かを判断する(S19)。ところで、外側撮像部23とマーカー60との間の距離が小さくなるほど、上側LCD22に表示されるマーカー60および選択オブジェクトO1が大きくなる。そして、外側撮像部23とマーカー60との間の距離が或る値以下になると、ユーザが所望の選択オブジェクトO1を選択しようとしてゲーム装置10の本体(外側撮像部23)を傾けたときに、当該選択オブジェクトO1が選択状態になるよりも先にマーカー60の一部が外側撮像部23の撮像範囲から外れてしまい、拡張現実画像が生成できなくなってしまう。そこで、当該ステップS19では、外側撮像部23とマーカー60との間の距離が小さすぎないかどうかを判断している。なお、上記のような問題が生じ得る外側撮像部23とマーカー60との間の距離は、仮想空間に配置する選択オブジェクトO1の数や、大きさ、及び位置に依存する。よって、選択オブジェクトO1の数や、大きさ、及び位置が可変であるときには、それらに応じて、ステップS19で用いる所定値が可変になるように設定されてもよい。この様にすることで、選択オブジェクトO1の数や、大きさ、及び位置に対応して、必要なときだけ、後述のステップS20の警告の表示を行うことができる。
【0111】
そして、ステップS18で算出した距離が所定値以内であると判断したときには(S19でYES)、CPU311は、警告メッセージをVRAM313の各重畳画像(左目用画像および右目用画像)上に描画するようGPU312に指示する(S20)。この警告メッセージは、例えば、マーカー60からもっと離れるようにユーザに促すものである。この後、CPU311は、処理をステップS22に進める。
【0112】
一方、ステップS18で算出した距離が所定値以内でないと判断したときには(S19でNO)、CPU311は選択オブジェクトO1の選択方法を示したメッセージ(例えば、「所望の選択オブジェクトにカーソルを合わせた状態で所定のボタンを押して下さい」というメッセージ)をVRAM313の各重畳画像(左目用画像および右目用画像)における端部分に描画するようGPU312に指示する(S21)。この後、CPU311は、本処理をステップS22に進める。
【0113】
次に、CPU311は、選択状態の選択オブジェクトO1があるかを判断する(S22)。この判断は、選択情報75を参照してなされる。選択状態の選択オブジェクトO1がないと判断したときには(S22でNO)、CPU311は本処理をステップS10に戻す。一方、選択状態の選択オブジェクトO1があると判断したときには(S22でYES)、CPU311は、メニュー選択確定指示をユーザから受け付けたかを判断する(S23)。このメニュー選択確定指示は例えば操作ボタン14の何れかが操作されることで入力される。そして、メニュー選択確定指示を受け付けていないと判断したときには(S23でNO)、CPU311は、本処理をステップS10に戻す。なお、上記ステップS10〜S22、そしてステップS22でYESと判断されたときのステップS23、及びステップS23でNOと判断されたときの処理は、所定の描画周期毎に(例えば、1/60sec毎に)繰り返し実行される。また、上記ステップS10〜S22、そしてステップS22でNOと判断されたときの処理は、所定の描画周期毎に(例えば、1/60sec毎に)繰り返し実行される。
【0114】
一方、メニュー選択確定指示を受け付けたと判断したときには(S23でYES)、CPU311は、選択オブジェクトO1の選択が確定したと判断し、メニュー項目情報77に基づいてこの選択オブジェクトO1に対応するメニュー実行処理を実行(例えば、選択オブジェクトO1に応じたアプリケーションプログラムを実行)する(S24)。このメニュー実行処理は、所定の描画周期毎に(例えば、1/60sec毎に)繰り返し実行される。
【0115】
以下に図14を参照してメニュー実行処理を説明する。本メニュー実行処理では、まず、CPU311が所定のゲーム処理を実行する(S241)。この所定のゲーム処理は、上述したように、拡張現実画像を表示するための処理、すなわち左実世界画像71L及び右実世界画像71Rにおけるマーカー60の位置及び姿勢を利用しての処理を含む。更に、本実施形態では、所定のゲーム処理は、ゲーム装置10の本体の動き(外側撮像部23の動き)に応じて、拡張現実画像における仮想的なオブジェクトを選択する処理を含む。
【0116】
なお、所定のゲーム処理において、仮想的なオブジェクトを左実世界画像71L、右実世界画像71Rに重畳した拡張現実画像を表示するための処理、及び仮想的なオブジェクトを選択する処理は、上記ステップS10〜S17と同様の処理が実行されてもよい。例えば、所定のゲーム処理は次のようなシューティングゲームの処理である。具体的には、シューティングゲームの処理では、仮想的なオブジェクトとしての敵オブジェクトが、仮想空間のマーカー60を基準とした位置に配置される。そして、ユーザがゲーム装置10を傾けることで、複数表示された敵オブジェクトのコリジョン領域Cと直線L3が仮想空間で衝突すると、ゲーム装置10はこの衝突した敵オブジェクトをシューティング対象となる敵オブジェクトとして選択する。この様なゲーム処理をCPU311が行うときには、このゲーム処理の前に、選択オブジェクトO1を表示しかつユーザに選択オブジェクトO1を選択させることによって、所定のゲーム処理での仮想的なオブジェクトの選択操作をユーザに練習させることができる。すなわち、メニュー画像をチュートリアル画像とすることができる。
【0117】
なお、本実施形態では、ステップS241でゲーム処理を実行するが、拡張現実画像を表示する処理であればゲーム処理以外の如何なる処理がステップS241で実行されてもよい。
【0118】
次に、CPU311は、ゲームクリアとなったかを判断し(S242)、ゲームクリアと判断したときには(S242でYES)、メニュー実行処理を終了させて図12のステップS10に処理を戻す。一方、ゲームクリアと判断しなかったときには(S242でNO)、CPU311は選択オブジェクトO1の再表示指示を受け付けたかを判断する(S243)。この再表示指示は、例えば各操作ボタン14のうちの所定のボタンが操作されることで入力される。ここで、再表示指示が入力されていないと判断したときには(S243でNO)、CPU311は処理をステップS241に戻す。また、再表示指示が入力されたと判断したときには(S243でYES)、CPU311は本メニュー実行処理を終了させて図12のステップS10に処理を戻す。これによって、拡張現実画像として表示されたメニュー画像からメニュー実行処理における拡張現実画像の表示への切り替えがこの切り替え感を強くユーザに与えることなく行うことができるのと同様に、メニュー実行処理における拡張現実画像の表示からメニュー画像の表示への切り替えも切り替え感を強くユーザに与えることなく行うことができる。
【0119】
なお、上述したのは、立体表示モードが選択されているときの画像表示処理であるが、本実施形態では、平面表示モードにおいても選択オブジェクトO1を表示することができる。具体的には、平面表示モードでは、例えば外側撮像部(左)23a及び外側撮像部(右)23bのうち何れか1つのみが有効になる。どちらの外側撮像部23が有効になってもよいが、本実施形態では、外側撮像部(左)23aのみが有効になる。平面表示モードでの画像表示処理は、左ビュー行列72Lのみが算出され(右ビュー行列72Rが算出されず)、この左ビュー行列72Lを用いてマーカー座標系での選択オブジェクトO1の位置が仮想カメラ座標系の位置に変換される。そして、カーソルオブジェクトO2の位置は左仮想カメラの視線上に設定される。そして、直線L3に代えて左仮想カメラの視線とコリジョン領域C1とでコリジョン判定が行われる。その他の点については、平面表示モードでの画像表示処理は立体表示モードの画像表示処理とほぼ同じであるため、説明を省略する。
【0120】
上述したように、本実施形態では、ゲーム装置10は、選択オブジェクトO1の拡張現実画像を表示することで、ユーザに選択可能なメニュー項目を示すメニュー画像を表示することができる。このため、メニュー項目の選択によって拡張現実画像を表示してのメニュー実行処理が実行されるときでも、メニュー画像からメニュー実行処理の拡張現実画像への切り替えのときに、ユーザに切り替え感を強く感じさせることなく切り替えを行うことが可能になる。
【0121】
更に、ゲーム装置10の本体(外側撮像部23)を動かすだけの簡易な操作でユーザが選択オブジェクトO1を選択することができ、選択オブジェクトO1を表示してのメニュー画面においても、操作性良く興趣性高くメニュー項目の選択を行うことができる。
【0122】
以下に本実施形態の変形例を説明する。
【0123】
(1)上記実施形態では、左実世界画像のマーカー認識結果から計算される左仮想カメラ64Lの位置及び姿勢に基づいて、右仮想カメラ64Rの位置及び姿勢を決定しているが、他の実施形態では、左実世界画像のマーカー認識結果から計算される左仮想カメラ64Lの位置及び姿勢と、右実世界画像のマーカー認識結果から計算される右仮想カメラ64Rの位置及び姿勢の一方または両方を考慮して、左仮想カメラ64Lの位置及び姿勢と、右仮想カメラ64Rの位置及び姿勢を決定するようにしてもよい。
【0124】
(2)また、上記実施形態では、マーカー座標系の原点の周囲に選択オブジェクトO1を配置しているが、他の実施形態では、マーカー座標系の原点の周囲の位置に選択オブジェクトO1を配置しなくてもよい。もっとも、マーカー座標系の原点の周囲の位置に選択オブジェクトO1を配置する方が、選択オブジェクトO1を選択状態にするためにゲーム装置10の本体を傾けてもマーカー60が外側撮像部23の撮像領域から外れ難くなるため好ましい。
【0125】
(3)また、上記実施形態では、仮想空間に複数の選択オブジェクトO1を配置しているが、他の実施形態では、仮想空間に選択オブジェクトO1を1つだけ配置してもよい。勿論選択オブジェクトO1の形状も四角形に限定されない。なお、コリジョン領域C及びカーソルオブジェクトO2の形状等も本実施形態の形状に限定されない。
【0126】
(4)本実施形態では、実世界画像71L、71Rにおけるマーカー60の位置及び姿勢に基づいて、仮想空間における仮想カメラと操作オブジェクトO1の相対的な位置を決定しているが、マーカー60以外の他の特定対象物の位置及び姿勢に基づいて決定してもよい。この他の特定対象物としては、例えば、人の顔、手や紙幣等があり、パターンマッチング等で識別可能なものであれば如何なるものであってもよい。
【0127】
(5)本実施形態では、マーカー60等の特定対象物を用いて、外側撮像部23の向きや位置の変化に応じて、仮想カメラの選択オブジェクトO1に対する相対的な位置及び向きを変更しているが、他の方法で変更してもよい。例えば、特願2010−127092に開示されているような次のような方法を採用してもよい。すなわち、画像表示処理の開始時には、仮想カメラの位置と選択オブジェクトO1の仮想空間における位置、及び仮想カメラの撮像方向を予め設定されたデフォルトで設定する。そして、1フレーム前の実世界画像と現在のフレームの実世界画像との差分を1フレーム毎に算出ていくことで、画像表示処理の開始時からの外側撮像部23の移動量(向きの変化量)を算出し、この移動量に応じて仮想カメラの撮像方向をデフォルトの向きから変更する。これによって、マーカー60を使用せずに、外側撮像部23の向きの変化に応じて仮想カメラの向きを変更し、これに応じて上記直線L3の向きも変更して、直線L3と選択オブジェクトO1と衝突させることが可能になる。
【0128】
(6)また、本実施形態では、直線L3が所望の選択オブジェクトO1と交差するようにゲーム装置10の本体(すなわち外側撮像部23)を動かすことによって、ユーザが所望の選択オブジェクトO1を選択するが、これ以外の方法で選択オブジェクトO1を選択するようにしてもよい。例えば、加速度センサや角速度センサ等を用いてゲーム装置10の本体の動きを検出し、当該動きに応じて所望の選択オブジェクトO1を選択するようにしてもよい。また例えば、タッチパネルなどのポインティングデバイスを用いて所望の選択オブジェクトO1を選択するようにしてもよい。
【0129】
(7)本実施形態では、外側撮像部23がゲーム装置10に予め搭載されているが、他の実施形態では、ゲーム装置10に着脱可能な外付け型のカメラを利用してもよい。
【0130】
(8)また、上記実施形態では、上側LCD22がゲーム装置10に予め搭載されているが、他の実施形態では、ゲーム装置10に着脱可能な外付け型の立体視ディスプレイを利用してもよい。
【0131】
(9)また、上記実施形態では、上側LCD22がパララックスバリア方式の立体表示装置であるが、他の実施形態では、上側LCD22がレンチキュラー方式等の他の任意の方式の立体表示装置であってもよい。例えば、レンチキュラー方式の立体表示装置を利用する場合には、左目用画像と右目用画像をCPU311または他のプロセッサで合成してから、当該合成画像をレンチキュラー方式の立体表示装置に供給するようにしてもよい。
【0132】
(10)なお、本実施形態では、立体表示モードと平面表示モードとで切り替え可能な構成であるが、何れか1のモードでのみ表示を行う構成であってもよい。
【0133】
(11)また、上記実施形態では、ゲーム装置10を用いて実世界画像に仮想オブジェクトを合成表示しているが、他の実施形態では、任意の情報処理装置または情報処理システム(例えば、PDA(Personal Digital Assistant)、携帯電話、パーソナルコンピュータ、カメラ等)を用いて実世界画像に仮想オブジェクトを合成表示してもよい。
【0134】
(12)また、上記実施形態では、一台の情報処理装置(ゲーム装置10)のみによって画像表示処理を実行しているが、他の実施形態では、互いに通信可能な複数の情報処理装置を有する画像表示システムにおいて、当該複数の情報処理装置が画像表示処理を分担して実行するようにしてもよい。
【0135】
(13)また、本実施形態においては、外側撮像部23により撮像したカメラ画像と仮想オブジェクト(選択オブジェクトO1等)の画像とを重ね合わせて上側LCD22に表示させるビデオシースルー方式を説明したが、本発明はこれに限定されない。例えば、光学シースルー方式を実現する構成であってもよい。この場合には、少なくともカメラを備えたヘッドマウンドディスプレイで構成され、ユーザはメガネのレンズ部分に相当するディスプレイ部を通して現実空間を視認できるようになっている。このディプレイ部は、現実空間を透過してユーザの目に直接導くことが可能な素材によって構成されている。さらに、このディスプレイ部は液晶表示装置等を備え、この液晶表示装置等にコンピュータにより生成した仮想オブジェクトの画像を表示させ、この液晶表示装置からの光をハーフミラー等で反射させてユーザの網膜に導くことができるようになっている。これにより、ユーザは、現実空間と仮想オブジェクトの画像とが重ね合わせられた像を視認することができる。なお、ヘッドマウンドディスプレイに備えられたカメラは現実空間に配置されたマーカーを検出するために用いられ、この検出結果に基づいて仮想オブジェクトの画像が生成される。また、他の光学シースルー方式として、ハーフミラーを使用せずにディスプレイ部に重ね合わせて透過型液晶表示装置を備える方式があるが、本発明はこの方式を採用してもよい。この場合には、透過型液晶表示装置に仮想オブジェクトの画像を表示することで、ディスプレイ部に透過された現実空間と透過型液晶表示装置に表示された仮想オブジェクトの画像とが重ね合わされてユーザに視認される。
【符号の説明】
【0136】
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 マーカー
O1 選択オブジェクト
64L 左仮想カメラ
64R 右仮想カメラ

【特許請求の範囲】
【請求項1】
撮像装置と画面上において現実空間を視認可能とする表示装置に接続された表示制御装置のコンピュータを、
前記撮像装置により撮像して得られた撮像画像を取得する撮像画像取得手段、
前記撮像画像から特定対象物を検出する検出手段、
前記検出手段による前記特定対象物の検出結果に基づいて、前記撮像装置と前記特定対象物との相対的位置を算出する算出手段、
前記算出手段による算出結果に基づいて、前記仮想空間内に仮想カメラを設定する仮想カメラ設定手段、
前記特定対象物の位置を基準とした前記仮想空間における所定の位置に、ユーザが選択可能なメニュー項目に対応付けられ、かつユーザに選択されるための選択オブジェクトを配置するオブジェクト配置手段、
前記仮想空間を前記仮想カメラで撮像して、前記選択オブジェクトのオブジェクト画像を生成するオブジェクト画像生成手段、及び
前記画面上の現実空間に重ね合わせてユーザに視認されるように前記オブジェクト画像を前記表示装置に表示させる表示制御手段、
として機能させる、表示制御プログラム。
【請求項2】
前記コンピュータを、
ユーザの操作に応じて前記選択オブジェクトの選択を確定する選択確定手段、及び
前記選択確定手段によって前記選択オブジェクトの選択が確定されたときに、当該確定された選択オブジェクトに対応づけられたメニュー項目の所定の処理を起動させる起動手段として更に機能させ、
前記所定の処理は、前記検出手段による前記特定対象物の検出結果に基づく処理を含む、
請求項1に記載の表示制御プログラム。
【請求項3】
前記コンピュータを、
前記所定の処理が実行されている期間において、前記選択オブジェクトの再表示の指示をユーザから受け付ける受付手段、として更に機能させ、
前記オブジェクト配置手段は、前記選択オブジェクトの再表示の指示が前記受付手段により受け付けられたときに、前記選択オブジェクトを再び配置する、請求項2に記載の表示制御プログラム。
【請求項4】
前記コンピュータを
前記表示制御装置本体の動きに応じて前記選択オブジェクトを選択する選択手段、
として更に機能させる、請求項1乃至3の何れかに記載の表示制御プログラム。
【請求項5】
前記選択手段は、前記仮想カメラ設定手段によって設定された前記仮想カメラの視線上または当該視線に平行な所定の直線上に前記選択オブジェクトが位置するときに、前記選択オブジェクトを選択する、請求項4に記載の表示制御プログラム。
【請求項6】
前記コンピュータを、
前記オブジェクト画像が表示される表示領域の所定位置にカーソル画像を表示するカーソル表示手段として更に機能させる、請求項1乃至5の何れかに記載の表示制御プログラム。
【請求項7】
前記コンピュータを、
前記表示制御装置本体及び前記撮像装置のうち何れかの特定の動きに応じて、前記選択オブジェクトを選択する選択手段、及び
前記表示制御装置本体及び前記撮像装置のうち何れかの特定の動きに応じて、前記起動手段によって起動された前記所定の処理を進行させる処理手段、
として更に機能させる、請求項2に記載の表示制御プログラム。
【請求項8】
前記コンピュータを、
前記表示制御装置本体及び前記撮像装置のうち何れかの傾きに応じて、前記選択オブジェクトを選択する選択手段、
前記特定対象物及び前記撮像装置の間の距離が所定の距離内にあるかを判断する判断手段、及び
前記特定対象物及び前記撮像装置の間の距離が所定の距離内にあると判断されたときに、警告を前記表示装置に表示させる警告表示手段、として更に機能させ、
前記所定の距離は、表示制御装置本体及び撮像装置のうち何れかを選択オブジェクトを選択可能な程度に傾けることによって特定対象物が撮像画像に含まれなくなるような距離に設定されている、
請求項1に記載の表示制御プログラム。
【請求項9】
撮像装置と画面上において現実空間を視認可能とする表示装置に接続された表示制御装置であって、
前記撮像装置により撮像して得られた撮像画像を取得する撮像画像取得手段、
前記撮像画像から特定対象物を検出する検出手段、
前記検出手段による前記特定対象物の検出結果に基づいて、前記撮像装置と前記特定対象物との相対的位置を算出する算出手段、
前記算出手段による算出結果に基づいて、前記仮想空間内に仮想カメラを設定する仮想カメラ設定手段、
前記特定対象物の位置を基準とした前記仮想空間における所定の位置に、ユーザが選択可能なメニュー項目に対応付けられ、かつユーザに選択されるための選択オブジェクトを配置するオブジェクト配置手段、
前記仮想空間を前記仮想カメラで撮像して、前記選択オブジェクトのオブジェクト画像を生成するオブジェクト画像生成手段、及び
前記画面上の現実空間に重ね合わせてユーザに視認されるように前記オブジェクト画像を前記表示装置に表示させる表示制御手段、
を有する表示制御装置。
【請求項10】
撮像装置と画面上において現実空間を視認可能とする表示装置に接続された表示制御システムであって、
前記撮像装置により撮像して得られた撮像画像を取得する撮像画像取得手段、
前記撮像画像から特定対象物を検出する検出手段、
前記検出手段による前記特定対象物の検出結果に基づいて、前記撮像装置と前記特定対象物との相対的位置を算出する算出手段、
前記算出手段による算出結果に基づいて、前記仮想空間内に仮想カメラを設定する仮想カメラ設定手段、
前記特定対象物の位置を基準とした前記仮想空間における所定の位置に、ユーザが選択可能なメニュー項目に対応付けられ、かつユーザに選択されるための選択オブジェクトを配置するオブジェクト配置手段、
前記仮想空間を前記仮想カメラで撮像して、前記選択オブジェクトのオブジェクト画像を生成するオブジェクト画像生成手段、及び
前記画面上の現実空間に重ね合わせてユーザに視認されるように前記オブジェクト画像を前記表示装置に表示させる表示制御手段、
を有する表示制御システム。
【請求項11】
撮像装置を用いて実世界を撮像するとともに、画面上において現実空間を視認可能とする表示装置を用いて仮想空間内の仮想的なオブジェクトの画像を表示する表示制御方法であって、
前記撮像装置により撮像して得られた撮像画像を取得する撮像画像取得ステップ、
前記撮像画像から特定対象物を検出する検出ステップ、
前記検出ステップにおける前記特定対象物の検出結果に基づいて、前記撮像装置と前記特定対象物との相対的位置を算出する算出ステップ、
前記算出ステップにおける算出結果に基づいて、前記仮想空間内に仮想カメラを設定する仮想カメラ設定ステップ、
前記特定対象物の位置を基準とした前記仮想空間における所定の位置に、ユーザが選択可能なメニュー項目に対応付けられ、かつユーザに選択されるための選択オブジェクトを前記仮想的なオブジェクトとして配置するオブジェクト配置ステップ、
前記仮想空間を前記仮想カメラで撮像して、前記選択オブジェクトのオブジェクト画像を生成するオブジェクト画像生成ステップ、及び
前記画面上の現実空間に重ね合わせてユーザに視認されるように前記オブジェクト画像を前記表示装置に表示させる表示制御ステップ、
を含む表示制御方法。

【図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


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