(57)【特許請求の範囲】
【請求項１】
撮像装置と画面上において現実空間を視認可能とする表示装置に接続された表示制御装置のコンピュータを、
前記撮像装置により撮像して得られた撮像画像を取得する撮像画像取得手段、
前記撮像画像から特定対象物を検出する検出手段、
前記検出手段による前記特定対象物の検出結果に基づいて、前記撮像装置と前記特定対象物との相対的位置を算出する算出手段、
前記算出手段による算出結果に基づいて、前記仮想空間内に仮想カメラを設定する仮想カメラ設定手段、
前記特定対象物の位置を基準とした前記仮想空間における所定の位置に、ユーザが選択可能なアプリケーションプログラムに対応付けられ、かつユーザに選択されるための選択オブジェクトを配置するオブジェクト配置手段、
前記仮想空間を前記仮想カメラで撮像して、前記選択オブジェクトのオブジェクト画像を生成するオブジェクト画像生成手段、
前記画面上の現実空間に重ね合わせてユーザに視認されるように前記オブジェクト画像を前記表示装置に表示させる表示制御手段、
ユーザの操作に応じて前記選択オブジェクトの選択を確定する選択確定手段、及び
前記選択確定手段によって前記選択オブジェクトの選択が確定されたときに、当該確定された選択オブジェクトに対応づけられたアプリケーションプログラムを起動させる起動手段
として機能させ、
前記アプリケーションプログラムの実行により、前記検出手段による前記特定対象物の検出結果に基づく処理であって、拡張現実画像を表示するための処理が行われる表示制御プログラム。
【請求項２】
前記コンピュータを、
前記アプリケーションプログラムが実行されている期間において、前記選択オブジェクトの再表示の指示をユーザから受け付ける受付手段、として更に機能させ、
前記オブジェクト配置手段は、前記選択オブジェクトの再表示の指示が前記受付手段により受け付けられたときに、前記アプリケーションプログラムを終了して前記選択オブジェクトを再び配置する、請求項２に記載の表示制御プログラム。
【請求項３】
前記コンピュータを
前記表示制御装置本体の動きに応じて前記選択オブジェクトを選択する選択手段、
として更に機能させる、請求項１乃至３の何れかに記載の表示制御プログラム。
【請求項４】
前記選択手段は、前記仮想カメラ設定手段によって設定された前記仮想カメラの視線上または当該視線に平行な所定の直線上に前記選択オブジェクトが位置するときに、前記選択オブジェクトを選択する、請求項４に記載の表示制御プログラム。
【請求項５】
前記コンピュータを、
前記オブジェクト画像が表示される表示領域の所定位置にカーソル画像を表示するカーソル表示手段として更に機能させる、請求項１乃至５の何れかに記載の表示制御プログラム。
【請求項６】
前記コンピュータを、
前記表示制御装置本体及び前記撮像装置のうち何れかの特定の動きに応じて、前記選択オブジェクトを選択する選択手段、及び
前記表示制御装置本体及び前記撮像装置のうち何れかの特定の動きに応じて、前記起動手段によって起動された前記アプリケーションプログラムの処理を進行させる処理手段、
として更に機能させる、請求項２に記載の表示制御プログラム。
【請求項７】
前記コンピュータを、
前記表示制御装置本体及び前記撮像装置のうち何れかの傾きに応じて、前記選択オブジェクトを選択する選択手段、
前記特定対象物及び前記撮像装置の間の距離が所定の距離内にあるかを判断する判断手段、及び
前記特定対象物及び前記撮像装置の間の距離が所定の距離内にあると判断されたときに、警告を前記表示装置に表示させる警告表示手段、として更に機能させ、
前記所定の距離は、表示制御装置本体及び撮像装置のうち何れかを選択オブジェクトを選択可能な程度に傾けることによって特定対象物が撮像画像に含まれなくなるような距離に設定されている、
請求項１に記載の表示制御プログラム。
【請求項８】
撮像装置と画面上において現実空間を視認可能とする表示装置に接続された表示制御装置であって、
前記撮像装置により撮像して得られた撮像画像を取得する撮像画像取得手段、
前記撮像画像から特定対象物を検出する検出手段、
前記検出手段による前記特定対象物の検出結果に基づいて、前記撮像装置と前記特定対象物との相対的位置を算出する算出手段、
前記算出手段による算出結果に基づいて、前記仮想空間内に仮想カメラを設定する仮想カメラ設定手段、
前記特定対象物の位置を基準とした前記仮想空間における所定の位置に、ユーザが選択可能なアプリケーションプログラムに対応付けられ、かつユーザに選択されるための選択オブジェクトを配置するオブジェクト配置手段、
前記仮想空間を前記仮想カメラで撮像して、前記選択オブジェクトのオブジェクト画像を生成するオブジェクト画像生成手段、
前記画面上の現実空間に重ね合わせてユーザに視認されるように前記オブジェクト画像を前記表示装置に表示させる表示制御手段、
ユーザの操作に応じて前記選択オブジェクトの選択を確定する選択確定手段、及び
前記選択確定手段によって前記選択オブジェクトの選択が確定されたときに、当該確定された選択オブジェクトに対応づけられたアプリケーションプログラムを起動させる起動手段
を有し、
前記アプリケーションプログラムの実行により、前記検出手段による前記特定対象物の検出結果に基づく処理であって、拡張現実画像を表示するための処理がおこなわれる、表示制御装置。
【請求項９】
撮像装置と画面上において現実空間を視認可能とする表示装置に接続された表示制御システムであって、
前記撮像装置により撮像して得られた撮像画像を取得する撮像画像取得手段、
前記撮像画像から特定対象物を検出する検出手段、
前記検出手段による前記特定対象物の検出結果に基づいて、前記撮像装置と前記特定対象物との相対的位置を算出する算出手段、
前記算出手段による算出結果に基づいて、前記仮想空間内に仮想カメラを設定する仮想カメラ設定手段、
前記特定対象物の位置を基準とした前記仮想空間における所定の位置に、ユーザが選択可能なアプリケーションプログラムに対応付けられ、かつユーザに選択されるための選択オブジェクトを配置するオブジェクト配置手段、
前記仮想空間を前記仮想カメラで撮像して、前記選択オブジェクトのオブジェクト画像を生成するオブジェクト画像生成手段、
前記画面上の現実空間に重ね合わせてユーザに視認されるように前記オブジェクト画像を前記表示装置に表示させる表示制御手段、
ユーザの操作に応じて前記選択オブジェクトの選択を確定する選択確定手段、及び
前記選択確定手段によって前記選択オブジェクトの選択が確定されたときに、当該確定された選択オブジェクトに対応づけられたアプリケーションプログラムを起動させる起動手段
を有し、
前記アプリケーションプログラムの実行により、前記検出手段による前記特定対象物の検出結果に基づく処理であって、拡張現実画像を表示するための処理が行われる表示制御システム。
【請求項１０】
撮像装置を用いて実世界を撮像するとともに、画面上において現実空間を視認可能とする表示装置を用いて仮想空間内の仮想的なオブジェクトの画像を表示する表示制御方法であって、
前記撮像装置により撮像して得られた撮像画像を取得する撮像画像取得ステップ、
前記撮像画像から特定対象物を検出する検出ステップ、
前記検出ステップにおける前記特定対象物の検出結果に基づいて、前記撮像装置と前記特定対象物との相対的位置を算出する算出ステップ、
前記算出ステップにおける算出結果に基づいて、前記仮想空間内に仮想カメラを設定する仮想カメラ設定ステップ、
前記特定対象物の位置を基準とした前記仮想空間における所定の位置に、ユーザが選択可能なアプリケーションプログラムに対応付けられ、かつユーザに選択されるための選択オブジェクトを前記仮想的なオブジェクトとして配置するオブジェクト配置ステップ、
前記仮想空間を前記仮想カメラで撮像して、前記選択オブジェクトのオブジェクト画像を生成するオブジェクト画像生成ステップ、
前記画面上の現実空間に重ね合わせてユーザに視認されるように前記オブジェクト画像を前記表示装置に表示させる表示制御ステップ、
ユーザの操作に応じて前記選択オブジェクトの選択を確定する選択確定ステップ、及び
前記選択確定ステップにおいて前記選択オブジェクトの選択が確定されたときに、当該確定された選択オブジェクトに対応づけられたアプリケーションプログラムを起動させる起動ステップ、
を含み、
前記アプリケーションプログラムの実行により、前記検出ステップでの前記特定対象物の検出結果に基づく処理であって、拡張現実画像を表示するための処理が行われる、
表示制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表示制御プログラム、表示制御装置、表示制御システム及び表示制御方法に関し、より特定的には、現実空間に重ね合わせてユーザに視認されるように仮想空間を撮像した撮像画像を表示するための表示制御プログラム、表示制御装置、表示制御システム及び表示制御方法に関する。
【背景技術】
【０００２】
従来、複数のメニュー項目を示す画像（以下、「メニュー画像」と記載する）を表示して、タッチパネルや十字キー等の入力装置を介してユーザから１つのメニュー項目を選択する操作を受け付け、この操作に基づいて複数のメニュー項目から１つのメニュー項目を選択するゲーム装置（表示制御装置）が知られている（例えば特許文献１参照）。
【０００３】
また、実世界をカメラ等の撮像装置によって撮像し、この撮像した実世界の画像に仮想的なオブジェクトの画像を重畳して表示することができるＡＲ（Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ：拡張現実感）技術も知られている。例えば、特許文献２では、ゲーム装置が、実世界に配置されたゲームカードを含む実世界の画像（以下、本明細書においては「実世界画像」と記載する）をカメラ等の撮像装置によって撮像したときに、この実世界の画像におけるゲームカードの位置及び姿勢を取得する。そして、ゲーム装置は、取得した位置及び姿勢に基づいて、撮像装置とゲームカードの相対的な位置関係を算出し、この算出結果を踏まえて仮想空間に仮想カメラを設定するとともにオブジェクトを配置し、この仮想カメラで撮像したオブジェクトの画像を生成する。そして、ゲーム装置は、この生成したオブジェクトの画像を実世界の撮像画像に重畳した重畳画像（以下、本明細書においては「拡張現実画像」と記載する）を生成して表示する。なお、本明細書において、「拡張現実画像」と記載した場合に、この「拡張現実画像」が、重畳画像だけでなく、光学シースルー方式において現実空間に重ね合わせてユーザに視認されるオブジェクトの画像を含む場合がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３１８３９３号公報
【特許文献２】特開２００６−７２６６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献２で示すような拡張現実画像を表示するための処理の実行前に、この処理の実行をユーザに選択させるため、メニュー画像を表示することが必要な場合がある。ここで、特許文献１で示すような技術を適用してメニュー画像を表示すると、特許文献２で示すゲーム装置は、まず、実世界の画像に重畳せずに仮想的な画像（コンピュータグラフィックによって生成された画像）を単独でメニュー画像として表示し、メニュー画像で示すメニュー項目の選択がユーザからなされた後で拡張現実画像を表示することになる。この様に、メニュー画像は拡張現実画像ではないため、メニュー画像の表示から拡張現実画像の表示に変更されるときにユーザに表示の切り替わりを意識させることになり、ユーザの拡張現実の世界（拡張現実画像で表示される世界）への没入感が損なわれることになる。また、拡張現実画像を表示している最中にメニュー画像（仮想的な画像）へ切り替えて表示することによりユーザに何らかのメニュー操作を行わせる場合にも、上記と同様の問題が発生する。
【０００６】
それゆえ、本発明の目的は、例えば、メニュー画像の表示から、メニュー項目の選択によって実行される拡張現実画像の表示への切り替わりの際などに、ユーザに強く切り替わりを感じさせることのない表示制御プログラム、表示制御装置、表示制御システム及び表示制御方法を提供することに関する。
【課題を解決するための手段】
【０００７】
本発明は上記の課題を解決するために以下の構成を採用した。
【０００８】
（１）本発明の表示制御プログラムは、撮像装置と画面上において現実空間を視認可能とする表示装置に接続された表示制御装置のコンピュータに実行させるプログラムである。そして、本発明の表示制御プログラムは、撮像画像取得手段、検出手段、算出手段、仮想カメラ設定手段、オブジェクト配置手段、オブジェクト画像生成手段、及び表示制御手段としてコンピュータを機能させる。
【０００９】
ここで、撮像画像取得手段は、撮像装置により撮像して得られた撮像画像を取得する。検出手段は、撮像画像から特定対象物を検出する。算出手段は、検出手段による特定対象物の検出結果に基づいて、撮像装置と特定対象物との相対的位置を算出する。仮想カメラ設定手段は、算出手段による算出結果に基づいて、仮想空間内に仮想カメラを設定する。オブジェクト配置手段は、特定対象物の位置を基準とした仮想空間における所定の位置に、ユーザが選択可能なメニュー項目に対応付けられ、かつユーザに選択されるための選択オブジェクトを配置する。オブジェクト画像生成手段は、仮想空間を仮想カメラで撮像して、選択オブジェクトのオブジェクト画像を生成する。表示制御手段は、画面上の現実空間に重ね合わせてユーザに視認されるようにオブジェクト画像を表示装置に表示させる。
【００１０】
上記構成によれば、ユーザに選択可能なメニュー項目に対応付けられ、画面上で視認可能とする現実空間に重ね合わせてユーザに視認されるように、ユーザに選択されるための選択オブジェクトの画像が表示され、これによって、現実空間に仮想オブジェクトの画像が重ね合わされた拡張現実画像としてメニュー画像を表示することができる。このため、例えば、メニュー項目の選択によって、選択されたメニュー項目の所定の処理（以下、「メニュー実行処理」と記載する）が実行されるときに、このメニュー実行処理で拡張現実画像が表示されたとしても、メニュー画像もまた拡張現実画像であるため、メニュー画像の表示とメニュー実行処理における表示との切り替えの際に、ユーザに切り替え感を強く感じさせることがない。
【００１１】
（２）他の構成例として、上記表示制御プログラムは、コンピュータを、選択確定手段、及び起動手段として更に機能させてもよい。そして、選択確定手段は、ユーザの操作に応じて選択オブジェクトの選択を確定する。起動手段は、選択確定手段によって選択オブジェクトの選択が確定されたときに、確定された選択オブジェクトに対応づけられたメニュー項目の所定の処理（メニュー実行処理）を起動させる。そして、所定の処理は、検出手段による特定対象物の検出結果に基づく処理を含む。
【００１２】
上記構成によれば、拡張現実画像として表示されたメニュー画像においてメニュー項目が選択され、これによって、選択されたメニュー実行処理が起動されて実行される。ここで、メニュー実行処理が検出手段による特定対象物の検出結果に基づく処理（すなわち、拡張現実画像を表示する処理）を含む。この様に、メニュー画像もメニュー実行処理で表示される画像も拡張現実画像となるため、メニュー画像の表示と、メニュー実行処理における表示との切り替えの際に、ユーザに切り替え感を強く感じさせることがない。
【００１３】
（３）さらに他の構成例として、上記表示制御プログラムは、受付手段としてコンピュータを更に機能させてもよい。受付手段は、所定の処理（メニュー実行処理）が実行されている期間において、選択オブジェクトの再表示の指示をユーザから受け付ける。また、上記オブジェクト配置手段は、選択オブジェクトの再表示の指示が受付手段により受け付けられたときに、選択オブジェクトを再び配置してもよい。この構成によれば、メニュー実行処理が実行されている期間においても選択オブジェクトの再表示の指示がユーザから受け付けることができ、この指示が受け付けられたときには、再度、選択オブジェクトを表示してのメニュー画像の表示を行うことが可能になる。これによって、ユーザが選択オブジェクトの再表示の指示を入力するだけで、メニュー実行処理における表示からメニュー画像の表示への切り替えが行われる。従って、メニュー画像の表示からメニュー実行処理における表示への切り替え、及びメニュー実行処理における表示からメニュー画像の表示への切り替えの両方について、連続的に行うことが可能になる。なお、切り替えの間の短時間にブラックアウト（黒色一色の画面の表示）や他の画像が表示されたとしても、この様な構成も本発明に含む。
【００１４】
（４）さらに他の構成例として、上記表示制御プログラムは、コンピュータを選択手段として更に機能させてもよい。この選択手段は表示制御装置本体の動きに応じて選択オブジェクトを選択する。これによって、ユーザに操作ボタンの操作等の煩わしい操作を要求することなく、表示制御装置本体を動かすだけの簡易な操作で選択オブジェクトを選択させることができる。
【００１５】
（５）さらに他の構成例として、上記選択手段は、仮想カメラ設定手段によって設定された仮想カメラの視線上または当該視線に平行な所定の直線上に選択オブジェクトが位置するときに、選択オブジェクトを選択してもよい。一般的に、ユーザが撮像装置で撮像しながら撮像装置を動かすとこの動きに応じて自己の視線も動くことになる。この構成によれば、撮像装置を動かすことで自己の視線も動き、これによって仮想カメラの視線の位置も変化する。そして、この仮想カメラの視線上又は視線に平行な直線上に選択オブジェクトが位置するときに選択オブジェクトが選択される。従って、ユーザは、自己の視線を動かすことで選択オブジェクトを選択しているような感覚を得ることができる。
【００１６】
（６）さらに他の構成例として、上記表示制御プログラムは、コンピュータをカーソル表示手段として更に機能させてもよい。表示手段は、オブジェクト画像が表示される表示領域の所定位置にカーソル画像を表示する。これによって、カーソル画像の表示位置によって仮想カメラの視線及び視線に平行な直線の向きをユーザに知得させることが可能になり、ユーザが選択オブジェクトの選択を容易に行うことが可能になる。
【００１７】
（７）さらに他の構成例として、上記表示制御プログラムは、コンピュータを選択手段及び処理手段として更に機能させてもよい。そして、選択手段は、表示制御装置本体及び撮像装置のうち何れかの特定の動きに応じて、選択オブジェクトを選択する。また、処理手段は、表示制御装置本体及び撮像装置のうち何れかの特定の動きに応じて、起動手段によって起動された所定の処理（メニュー実行処理）を進行させる。この構成によれば、選択オブジェクトの選択のための操作と、メニュー実行処理におけるユーザの操作とが同じ操作であるため、選択オブジェクトの選択のための操作によって、ユーザにメニュー実行処理における操作を練習させるためのチュートリアルとしてメニュー画像を表示することが可能になる。
【００１８】
（８）さらに他の構成例として、上記表示制御プログラムは、コンピュータを、選択手段、判断手段、及び警告表示手段として更に機能させてもよい。ここで、選択手段は、表示制御装置本体及び撮像装置のうち何れかの傾きに応じて、選択オブジェクトを選択する。判断手段は、特定対象物及び撮像装置の間の距離が所定の距離内にあるかを判断する。そして、警告表示手段は、特定対象物及び撮像装置の間の距離が所定の距離内にあると判断されたときに、警告を表示装置に表示させる。また、所定の距離は、表示制御装置本体及び撮像装置のうち何れかを選択オブジェクトを選択可能な程度に傾けることによって特定対象物が撮像画像に含まれなくなるような距離に設定されている。
【００１９】
上記構成によって、選択オブジェクトを選択するための操作をすれば選択オブジェクトが非表示になることをユーザに予告的に警告することが可能になる。これによって、特定対象物が撮像画像に含まれなくなり、特定対象物を撮像装置の撮像範囲に位置するように調整する手間をユーザに与えることを事前に防止することが可能になる。
【００２０】
（９）本発明の表示制御装置は、撮像装置と画面上において現実空間を視認可能とする表示装置に接続された装置であって、撮像画像取得手段、検出手段、算出手段、仮想カメラ設定手段、オブジェクト配置手段、オブジェクト画像生成手段、及び表示制御手段を有する。ここで、撮像画像取得手段は、撮像装置により撮像して得られた撮像画像を取得する。検出手段は、撮像画像から特定対象物を検出する。算出手段は、検出手段による特定対象物の検出結果に基づいて、撮像装置と特定対象物との相対的位置を算出する。仮想カメラ設定手段は、算出手段による算出結果に基づいて、仮想空間内に仮想カメラを設定する。オブジェクト配置手段は、特定対象物の位置を基準とした仮想空間における所定の位置に、ユーザが選択可能なメニュー項目に対応付けられ、かつユーザに選択されるための選択オブジェクトを配置する。オブジェクト画像生成手段は、仮想空間を仮想カメラで撮像して、選択オブジェクトのオブジェクト画像を生成する。表示制御手段は、画面上の現実空間に重ね合わせてユーザに視認されるようにオブジェクト画像を表示装置に表示させる。
【００２１】
（１０）本発明の表示制御システムは、撮像装置と画面上において現実空間を視認可能とする表示装置に接続されたシステムであって、撮像画像取得手段、検出手段、算出手段、仮想カメラ設定手段、オブジェクト配置手段、オブジェクト画像生成手段、及び表示制御手段を有する。ここで、撮像画像取得手段は、撮像装置により撮像して得られた撮像画像を取得する。検出手段は、撮像画像から特定対象物を検出する。算出手段は、検出手段による特定対象物の検出結果に基づいて、撮像装置と特定対象物との相対的位置を算出する。仮想カメラ設定手段は、算出手段による算出結果に基づいて、仮想空間内に仮想カメラを設定する。オブジェクト配置手段は、特定対象物の位置を基準とした仮想空間における所定の位置に、ユーザが選択可能なメニュー項目に対応付けられ、かつユーザに選択されるための選択オブジェクトを仮想的なオブジェクトとして配置する。オブジェクト画像生成手段は、仮想空間を仮想カメラで撮像して、選択オブジェクトのオブジェクト画像を生成する。表示制御手段は、画面上の現実空間に重ね合わせてユーザに視認されるようにオブジェクト画像を表示装置に表示させる。
【００２２】
（１１）本発明の表示制御方法は、撮像装置を用いて実世界を撮像するとともに、画面上において現実空間を視認可能とする表示装置を用いて仮想空間内の仮想的なオブジェクトの画像を表示する表示制御方法であって、撮像画像取得ステップ、検出ステップ、算出ステップ、仮想カメラ設定ステップ、オブジェクト配置ステップ、オブジェクト画像生成ステップ、及び表示制御ステップ、を含む。
【００２３】
ここで、撮像画像取得ステップでは、撮像装置により撮像して得られた撮像画像を取得する。検出ステップでは、撮像画像から特定対象物を検出する。算出ステップでは、検出ステップにおける特定対象物の検出結果に基づいて、撮像装置と特定対象物との相対的位置を算出する。仮想カメラ設定ステップでは、算出ステップにおける算出結果に基づいて、仮想空間内に仮想カメラを設定する。オブジェクト配置ステップでは、特定対象物の位置を基準とした仮想空間における所定の位置に、ユーザが選択可能なメニュー項目に対応付けられ、かつユーザに選択されるための選択オブジェクトを仮想的なオブジェクトとして配置する。オブジェクト画像生成ステップでは、仮想空間を仮想カメラで撮像して、選択オブジェクトのオブジェクト画像を生成する。表示制御ステップでは、画面上の現実空間に重ね合わせてユーザに視認されるようにオブジェクト画像を表示装置に表示させる。
【００２４】
上記（９）〜（１１）の表示制御装置、システム及び表示制御方法は、上記（１）の表示制御プログラムと同様の作用効果を奏する。
【発明の効果】
【００２５】
本発明によれば、ユーザが選択可能なメニュー項目を示しかつユーザに選択されるための選択オブジェクトを拡張現実画像として表示することができる。
【００２６】
上記の様に、メニュー画像が拡張現実画像である。このため、メニュー画像においてメニュー項目がユーザから選択され、この選択されたメニュー実行処理が実行されるときに、このメニュー実行処理が拡張現実画像を表示するための処理（すなわち、検出手段による特定対象物の検出結果に基づく処理）を含むとしても、メニュー画像の表示から、この後に続く拡張現実画像の表示への切り替わりをユーザに強く感じさせることはない。
【００２７】
また、仮想的なオブジェクトである選択オブジェクトが表示されることで、ユーザの選択可能なメニュー項目が表示される。この様に仮想的なオブジェクトによって選択可能なメニュー項目を示すため、ユーザは、選択オブジェクトが実世界にあるような感覚を得ることができ、拡張現実の世界への没入感を損なわずメニュー項目を表示することができる。
【図面の簡単な説明】
【００２８】
【図１】開状態におけるゲーム装置１０の正面図
【図２】開状態におけるゲーム装置１０の側面図
【図３】閉状態におけるゲーム装置１０の左側面図、正面図、右側面図および背面図
【図４】図１に示す上側ハウジング２１のＡ−Ａ’線断面図
【図５Ａ】３Ｄ調整スイッチ２５のスライダ２５ａが最下点（第３の位置）に存在する様子を示す図
【図５Ｂ】３Ｄ調整スイッチ２５のスライダ２５ａが最下点よりも上方位置（第１の位置）に存在する様子を示す図
【図５Ｃ】３Ｄ調整スイッチ２５のスライダ２５ａが最上点（第２の位置）に存在する様子を示す図
【図６】ゲーム装置１０の内部構成を示すブロック図
【図７】上側ＬＣＤ２２に表示される立体画像の一例を示す図
【図８】実世界画像のマーカー６０の位置及び姿勢に基づいて生成された仮想空間の一例を模式的に示す図
【図９】図８で示す直線Ｌ３の位置及び傾きが変更された状態の仮想空間を示す模式図
【図１０】図９で示す仮想空間に基づいて生成された拡張現実画像の一例を示す図
【図１１】メモリ３２に記憶されるプログラム及びデータの一例を示すメモリマップ
【図１２】本実施形態の画像表示処理の一例を示すフローチャート（その１）
【図１３】本実施形態の画像表示処理の一例を示すフローチャート（その２）
【図１４】本画像表示処理におけるステップＳ２４の選択メニュー実行処理の一例を示すフローチャート
【発明を実施するための形態】
【００２９】
（ゲーム装置の構成）
以下、本発明の一実施形態に係るゲーム装置について説明する。図１〜図３は、ゲーム装置１０の外観を示す平面図である。ゲーム装置１０は携帯型のゲーム装置であり、図１〜図３に示すように折り畳み可能に構成されている。図１および図２は、開いた状態（開状態）におけるゲーム装置１０を示し、図３は、閉じた状態（閉状態）におけるゲーム装置１０を示している。図１は、開状態におけるゲーム装置１０の正面図であり、図２は、開状態におけるゲーム装置１０の右側面図である。ゲーム装置１０は、撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置１０は、交換可能なメモリカード内に記憶され、または、サーバーや他のゲーム装置から受信したゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラで撮像した画像などのコンピュータグラフィックス処理により生成された画像を画面に表示したりすることができる。
【００３０】
まず、図１〜図３を参照して、ゲーム装置１０の外観構成について説明する。図１〜図３に示されるように、ゲーム装置１０は、下側ハウジング１１および上側ハウジング２１を有する。下側ハウジング１１と上側ハウジング２１とは、開閉可能（折り畳み可能）に接続されている。本実施形態では、各ハウジング１１および２１はともに横長の長方形の板状形状であり、互いの長辺部分で回転可能に接続されている。
【００３１】
図１および図２に示されるように、下側ハウジング１１の上側長辺部分には、下側ハウジング１１の内側面（主面）１１Ｂに対して垂直な方向に突起する突起部１１Ａが設けられる。また、上側ハウジング２１の下側長辺部分には、上側ハウジング２１の下側面から当該下側面に垂直な方向に突起する突起部２１Ａが設けられる。下側ハウジング１１の突起部１１Ａと上側ハウジング２１の突起部２１Ａとが連結されることにより、下側ハウジング１１と上側ハウジング２１とが、折り畳み可能に接続される。
【００３２】
（下側ハウジングの説明）
まず、下側ハウジング１１の構成について説明する。図１〜図３に示すように、下側ハウジング１１には、下側ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）１２、タッチパネル１３、各操作ボタン１４Ａ〜１４Ｌ（図１、図３）、アナログスティック１５、ＬＥＤ１６Ａ〜１６Ｂ、挿入口１７、および、マイクロフォン用孔１８が設けられる。以下、これらの詳細について説明する。
【００３３】
図１に示すように、下側ＬＣＤ１２は下側ハウジング１１に収納される。下側ＬＣＤ１２は横長形状であり、長辺方向が下側ハウジング１１の長辺方向に一致するように配置される。下側ＬＣＤ１２は下側ハウジング１１の中央に配置される。下側ＬＣＤ１２は、下側ハウジング１１の内側面（主面）に設けられ、下側ハウジング１１に設けられた開口部から当該下側ＬＣＤ１２の画面が露出される。ゲーム装置１０を使用しない場合には閉状態としておくことによって、下側ＬＣＤ１２の画面が汚れたり傷ついたりすることを防止することができる。下側ＬＣＤ１２の画素数は、例えば、２５６ｄｏｔ×１９２ｄｏｔ（横×縦）であってもよい。下側ＬＣＤ１２は、後述する上側ＬＣＤ２２とは異なり、画像を（立体視可能ではなく）平面的に表示する表示装置である。なお、本実施形態では表示装置としてＬＣＤを用いているが、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側ＬＣＤ１２として、任意の解像度の表示装置を利用することができる。
【００３４】
図１に示されるように、ゲーム装置１０は、入力装置として、タッチパネル１３を備えている。タッチパネル１３は、下側ＬＣＤ１２の画面上に装着されている。なお、本実施形態では、タッチパネル１３は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。本実施形態では、タッチパネル１３として、下側ＬＣＤ１２の解像度と同解像度（検出精度）のものを利用する。ただし、必ずしもタッチパネル１３の解像度と下側ＬＣＤ１２の解像度が一致している必要はない。また、下側ハウジング１１の上側面には挿入口１７（図１および図３（ｄ）に示す点線）が設けられている。挿入口１７は、タッチパネル１３に対する操作を行うために用いられるタッチペン２８を収納することができる。なお、タッチパネル１３に対する入力は通常タッチペン２８を用いて行われるが、タッチペン２８に限らずユーザの指でタッチパネル１３に対する入力をすることも可能である。
【００３５】
各操作ボタン１４Ａ〜１４Ｌは、所定の入力を行うための入力装置である。図１に示されるように、下側ハウジング１１の内側面（主面）には、各操作ボタン１４Ａ〜１４Ｌのうち、十字ボタン１４Ａ（方向入力ボタン１４Ａ）、ボタン１４Ｂ、ボタン１４Ｃ、ボタン１４Ｄ、ボタン１４Ｅ、電源ボタン１４Ｆ、セレクトボタン１４Ｊ、ＨＯＭＥボタン１４Ｋ、およびスタートボタン１４Ｌが、設けられる。十字ボタン１４Ａは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン１４Ｂ、ボタン１４Ｃ、ボタン１４Ｄ、ボタン１４Ｅは、十字状に配置される。ボタン１４Ａ〜１４Ｅ、セレクトボタン１４Ｊ、ＨＯＭＥボタン１４Ｋ、およびスタートボタン１４Ｌには、ゲーム装置１０が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン１４Ａは選択操作等に用いられ、各操作ボタン１４Ｂ〜１４Ｅは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン１４Ｆは、ゲーム装置１０の電源をオン／オフするために用いられる。
【００３６】
アナログスティック１５は、方向を指示するデバイスであり、下側ハウジング１１の内側面の下側ＬＣＤ１２より左側領域の上部領域に設けられる。図１に示すように、十字ボタン１４Ａは下側ＬＣＤ１２より左側領域の下部領域に設けられるので、アナログスティック１５は、十字ボタン１４Ａの上方に設けられる。また、アナログスティック１５、および、十字ボタン１４Ａは、下側ハウジングを把持した左手の親指で操作可能な位置に設計される。また、アナログスティック１５を上部領域に設けたことにより、下側ハウジング１１を把持する左手の親指が自然と位置するところにアナログスティック１５が配され、十字ボタン１４Ａは、左手の親指を少し下にずらした位置に配される。アナログスティック１５は、そのキートップが、下側ハウジング１１の内側面に平行にスライドするように構成されている。アナログスティック１５は、ゲーム装置１０が実行するプログラムに応じて機能する。例えば、３次元仮想空間に所定のオブジェクトが登場するゲームがゲーム装置１０によって実行される場合、アナログスティック１５は、当該所定のオブジェクトを３次元仮想空間内で移動させるための入力装置として機能する。この場合において、所定のオブジェクトはアナログスティック１５のキートップがスライドした方向に移動される。なお、アナログスティック１５として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いても良い。
【００３７】
十字状に配置される、ボタン１４Ｂ、ボタン１４Ｃ、ボタン１４Ｄ、ボタン１４Ｅの４つのボタンは、下側ハウジング１１を把持する右手の親指が自然と位置するところに配置される。また、これらの４つのボタンと、アナログスティック１５とは、下側ＬＣＤ１２を挟んで、左右対称に配置される。これにより、ゲームプログラムによっては、例えば、左利きの人が、これらの４つのボタンを使用して方向指示入力をすることも可能である。
【００３８】
また、下側ハウジング１１の内側面には、マイクロフォン用孔１８が設けられる。マイクロフォン用孔１８の下部には後述する音声入力装置としてのマイク（図６参照）が設けられ、当該マイクがゲーム装置１０の外部の音を検出する。
【００３９】
図３（ａ）は閉状態におけるゲーム装置１０の左側面図であり、図３（ｂ）は閉状態におけるゲーム装置１０の正面図であり、図３（ｃ）は閉状態におけるゲーム装置１０の右側面図であり、図３（ｄ）は閉状態におけるゲーム装置１０の背面図である。図３（ｂ）および（ｄ）に示されるように、下側ハウジング１１の上側面には、Ｌボタン１４ＧおよびＲボタン１４Ｈが設けられている。Ｌボタン１４Ｇは、下側ハウジング１１の上面の左端部に設けられ、Ｒボタン１４Ｈは、下側ハウジング１１の上面の右端部に設けられる。Ｌボタン１４ＧおよびＲボタン１４Ｈは、例えば、撮像部のシャッターボタン（撮影指示ボタン）として機能することができる。また、図３（ａ）に示されるように、下側ハウジング１１の左側面には、音量ボタン１４Ｉが設けられる。音量ボタン１４Ｉは、ゲーム装置１０が備えるスピーカの音量を調整するために用いられる。
【００４０】
図３（ａ）に示されるように、下側ハウジング１１の左側面には開閉可能なカバー部１１Ｃが設けられる。このカバー部１１Ｃの内側には、ゲーム装置１０とデータ保存用外部メモリ４５とを電気的に接続するためのコネクタ（図示せず）が設けられる。データ保存用外部メモリ４５は、コネクタに着脱自在に装着される。データ保存用外部メモリ４５は、例えば、ゲーム装置１０によって撮像された画像のデータを記憶（保存）するために用いられる。なお、上記コネクタおよびそのカバー部１１Ｃは、下側ハウジング１１の右側面に設けられてもよい。
【００４１】
また、図３（ｄ）に示されるように、下側ハウジング１１の上側面には、ゲーム装置１０とゲームプログラムを記録した外部メモリ４４を挿入するための挿入口１１Ｄが設けられ、その挿入口１１Ｄの内部には、外部メモリ４４と電気的に着脱自在に接続するためのコネクタ（図示せず）が設けられる。当該外部メモリ４４がゲーム装置１０に接続されることにより、所定のゲームプログラムが実行される。なお、上記コネクタおよびその挿入口１１Ｄは、下側ハウジング１１の他の側面（例えば、右側面等）に設けられてもよい。
【００４２】
また、図１および図３（ｃ）に示されるように、下側ハウジング１１の下側面にはゲーム装置１０の電源のＯＮ／ＯＦＦ状況をユーザに通知する第１ＬＥＤ１６Ａ、下側ハウジング１１の右側面にはゲーム装置１０の無線通信の確立状況をユーザに通知する第２ＬＥＤ１６Ｂが設けられる。ゲーム装置１０は他の機器との間で無線通信を行うことが可能であり、第１ＬＥＤ１６Ｂは、無線通信が確立している場合に点灯する。ゲーム装置１０は、例えば、ＩＥＥＥ８０２．１１．ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。下側ハウジング１１の右側面には、この無線通信の機能を有効／無効にする無線スイッチ１９が設けられる（図３（ｃ）参照）。
【００４３】
なお、図示は省略するが、下側ハウジング１１には、ゲーム装置１０の電源となる充電式電池が収納され、下側ハウジング１１の側面（例えば、上側面）に設けられた端子を介して当該電池を充電することができる。
【００４４】
（上側ハウジングの説明）
次に、上側ハウジング２１の構成について説明する。図１〜図３に示すように、上側ハウジング２１には、上側ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）２２、外側撮像部２３（外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂ）、内側撮像部２４、３Ｄ調整スイッチ２５、および、３Ｄインジケータ２６が設けられる。以下、これらの詳細について説明する。
【００４５】
図１に示すように、上側ＬＣＤ２２は上側ハウジング２１に収納される。上側ＬＣＤ２２は、横長形状であり、長辺方向が上側ハウジング２１の長辺方向に一致するように配置される。上側ＬＣＤ２２は上側ハウジング２１の中央に配置される。上側ＬＣＤ２２の画面の面積は、下側ＬＣＤ１２の画面の面積よりも大きく設定される。また、上側ＬＣＤ２２の画面は、下側ＬＣＤ１２の画面よりも横長に設定される。すなわち、上側ＬＣＤ２２の画面のアスペクト比における横幅の割合は、下側ＬＣＤ１２の画面のアスペクト比における横幅の割合よりも大きく設定される。
【００４６】
上側ＬＣＤ２２の画面は、上側ハウジング２１の内側面（主面）２１Ｂに設けられ、上側ハウジング２１に設けられた開口部から当該上側ＬＣＤ２２の画面が露出される。また、図２に示すように、上側ハウジング２１の内側面は、透明なスクリーンカバー２７によって覆われている。当該スクリーンカバー２７は、上側ＬＣＤ２２の画面を保護するとともに、上側ＬＣＤ２２と上側ハウジング２１の内側面と一体的にさせ、これにより統一感を持たせている。上側ＬＣＤ２２の画素数は、例えば、６４０ｄｏｔ×２００ｄｏｔ（横×縦）であってもよい。なお、本実施形態では上側ＬＣＤ２２は液晶表示装置であるとしたが、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置などが利用されてもよい。また、上側ＬＣＤ２２として、任意の解像度の表示装置を利用することができる。
【００４７】
上側ＬＣＤ２２は、立体視可能な画像を表示することが可能な表示装置である。また、本実施例では、実質的に同一の表示領域を用いて左目用画像と右目用画像が表示される。具体的には、左目用画像と右目用画像が所定単位で（例えば、１列ずつ）横方向に交互に表示される方式の表示装置である。または、左目用画像と右目用画像とが時分割で交互に表示される方式の表示装置であってもよい。また、本実施例では、裸眼立体視可能な表示装置である。そして、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式（視差バリア方式）のものが用いられる。本実施形態では、上側ＬＣＤ２２はパララックスバリア方式のものとする。上側ＬＣＤ２２は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像（立体画像）を表示する。すなわち、上側ＬＣＤ２２は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像を視認させることにより、ユーザにとって立体感のある立体画像（立体視可能な画像）を表示することができる。また、上側ＬＣＤ２２は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる（上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである）。このように、上側ＬＣＤ２２は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する（平面視画像を表示する）平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する３Ｄ調整スイッチ２５によって行われる。
【００４８】
外側撮像部２３は、上側ハウジング２１の外側面（上側ＬＣＤ２２が設けられた主面と反対側の背面）２１Ｄに設けられた２つの撮像部（２３ａおよび２３ｂ）の総称である。外側撮像部（左）２３ａと外側撮像部（右）２３ｂの撮像方向は、いずれも当該外側面２１Ｄの外向きの法線方向である。また、これらの撮像部はいずれも、上側ＬＣＤ２２の表示面（内側面）の法線方向と１８０度反対の方向に設計される。すなわち、外側撮像部（左）２３ａの撮像方向および外側撮像部（右）２３ｂの撮像方向は、平行である。外側撮像部（左）２３ａと外側撮像部（右）２３ｂとは、ゲーム装置１０が実行するプログラムによって、ステレオカメラとして使用することが可能である。また、プログラムによっては、２つの外側撮像部（２３ａおよび２３ｂ）のいずれか一方を単独で用いて、外側撮像部２３を非ステレオカメラとして使用することも可能である。また、プログラムによっては、２つの外側撮像部（２３ａおよび２３ｂ）で撮像した画像を合成してまたは補完的に使用することにより撮像範囲を広げた撮像をおこなうことも可能である。本実施形態では、外側撮像部２３は、外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂの２つの撮像部で構成される。外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂは、それぞれ所定の共通の解像度を有する撮像素子（例えば、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等）と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【００４９】
図１の破線および図３（ｂ）の実線で示されるように、外側撮像部２３を構成する外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂは、上側ＬＣＤ２２の画面の横方向と平行に並べられて配置される。すなわち、２つの撮像部を結んだ直線が上側ＬＣＤ２２の画面の横方向と平行になるように、外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂが配置される。図１の破線で示す２３ａおよび２３ｂは、上側ハウジング２１の内側面とは反対側の外側面に存在する外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂをそれぞれ表している。図１に示すように、ユーザが上側ＬＣＤ２２の画面を正面から視認した場合に、外側撮像部（左）２３ａは左側に外側撮像部（右）２３ｂは右側にそれぞれ位置している。外側撮像部２３をステレオカメラとして機能させるプログラムが実行されている場合、外側撮像部（左）２３ａは、ユーザの左目で視認される左目用画像を撮像し、外側撮像部（右）２３ｂは、ユーザの右目で視認される右目用画像を撮像する。外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂの間隔は、人間の両目の間隔程度に設定され、例えば、３０ｍｍ〜７０ｍｍの範囲で設定されてもよい。なお、外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂの間隔は、この範囲に限らない。
【００５０】
なお、本実施例においては、外側撮像部（左）２３ａおよび外側撮像部（右）２３はハウジングに固定されており、撮像方向を変更することはできない。
【００５１】
また、外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂは、上側ＬＣＤ２２（上側ハウジング２１）の左右方向に関して中央から対称となる位置にそれぞれ配置される。すなわち、外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂは、上側ＬＣＤ２２を左右に２等分する線に対して対称の位置にそれぞれ配置される。また、外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂは、上側ハウジング２１を開いた状態において、上側ハウジング２１の上部であって、上側ＬＣＤ２２の画面の上端よりも上方の位置の裏側に配置される。すなわち、外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂは、上側ハウジング２１の外側面であって、上側ＬＣＤ２２を外側面に投影した場合、投影した上側ＬＣＤ２２の画面の上端よりも上方に配置される。
【００５２】
このように、外側撮像部２３の２つの撮像部（２３ａおよび２３ｂ）が、上側ＬＣＤ２２の左右方向に関して中央から対称の位置に配置されることにより、ユーザが上側ＬＣＤ２２を正視した場合に、外側撮像部２３の撮像方向をユーザの視線方向と一致させることができる。また、外側撮像部２３は、上側ＬＣＤ２２の画面の上端より上方の裏側の位置に配置されるため、外側撮像部２３と上側ＬＣＤ２２とが上側ハウジング２１の内部で干渉することがない。従って、外側撮像部２３を上側ＬＣＤ２２の画面の裏側に配置する場合と比べて、上側ハウジング２１を薄く構成することが可能となる。
【００５３】
内側撮像部２４は、上側ハウジング２１の内側面（主面）２１Ｂに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部２４は、所定の解像度を有する撮像素子（例えば、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等）と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【００５４】
図１に示すように、内側撮像部２４は、上側ハウジング２１を開いた状態において、上側ハウジング２１の上部であって、上側ＬＣＤ２２の画面の上端よりも上方に配置され、上側ハウジング２１の左右方向に関して中央の位置（上側ハウジング２１（上側ＬＣＤ２２の画面）を左右に２等分する線の線上）に配置される。具体的には、図１および図３（ｂ）に示されるように、内側撮像部２４は、上側ハウジング２１の内側面であって、外側撮像部２３の左右の撮像部（外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂ）の中間の裏側の位置に配置される。すなわち、上側ハウジング２１の外側面に設けられた外側撮像部２３の左右の撮像部を上側ハウジング２１の内側面に投影した場合、当該投影した左右の撮像部の中間に、内側撮像部２４が設けられる。図３（ｂ）で示される破線２４は、上側ハウジング２１の内側面に存在する内側撮像部２４を表している。
【００５５】
このように、内側撮像部２４は、外側撮像部２３とは反対方向を撮像する。内側撮像部２４は、上側ハウジング２１の内側面であって、外側撮像部２３の左右の撮像部の中間位置の裏側に設けられる。これにより、ユーザが上側ＬＣＤ２２を正視した際、内側撮像部２４でユーザの顔を正面から撮像することができる。また、外側撮像部２３の左右の撮像部と内側撮像部２４とが上側ハウジング２１の内部で干渉することがないため、上側ハウジング２１を薄く構成することが可能となる。
【００５６】
３Ｄ調整スイッチ２５は、スライドスイッチであり、上述のように上側ＬＣＤ２２の表示モードを切り替えるために用いられるスイッチである。また、３Ｄ調整スイッチ２５は、上側ＬＣＤ２２に表示された立体視可能な画像（立体画像）の立体感を調整するために用いられる。図１〜図３に示されるように、３Ｄ調整スイッチ２５は、上側ハウジング２１の内側面および右側面の端部に設けられ、ユーザが上側ＬＣＤ２２を正視した場合に、当該３Ｄ調整スイッチ２５を視認できる位置に設けられる。また、３Ｄ調整スイッチ２５の操作部は、内側面および右側面の両方に突出しており、どちらからも視認および操作することができる。なお、３Ｄ調整スイッチ２５以外のスイッチは全て下側ハウジング１１に設けられる。
【００５７】
図４は、図１に示す上側ハウジング２１のＡ−Ａ’線断面図である。図４に示すように、上側ハウジング２１の内側面の右端部には、凹部２１Ｃが形成され、当該凹部２１Ｃに３Ｄ調整スイッチ２５が設けられる。３Ｄ調整スイッチ２５は、図１および図２に示されるように、上側ハウジング２１の正面および右側面から視認可能に配置される。３Ｄ調整スイッチ２５のスライダ２５ａは、所定方向（上下方向）の任意の位置にスライド可能であり、当該スライダ２５ａの位置に応じて上側ＬＣＤ２２の表示モードが設定される。
【００５８】
図５Ａから図５Ｃは、３Ｄ調整スイッチ２５のスライダ２５ａがスライドする様子を示す図である。図５Ａは、３Ｄ調整スイッチ２５のスライダ２５ａが最下点（第３の位置）に存在する様子を示す図である。図５Ｂは、３Ｄ調整スイッチ２５のスライダ２５ａが最下点よりも上方位置（第１の位置）に存在する様子を示す図である。図５Ｃは、３Ｄ調整スイッチ２５のスライダ２５ａが最上点（第２の位置）に存在する様子を示す図である。
【００５９】
図５Ａに示すように、３Ｄ調整スイッチ２５のスライダ２５ａが最下点位置（第３の位置）に存在する場合、上側ＬＣＤ２２は平面表示モードに設定され、上側ＬＣＤ２２の画面には平面画像が表示される（なお、上側ＬＣＤ２２を立体表示モードのままとして、左目用画像と右目用画像を同一の画像とすることにより平面表示してもよい）。一方、図５Ｂに示す位置（最下点より上側の位置（第１の位置））から図５Ｃに示す位置（最上点の位置（第２の位置））までの間にスライダ２５ａが存在する場合、上側ＬＣＤ２２は立体表示モードに設定される。この場合、上側ＬＣＤ２２の画面には立体視可能な画像が表示される。スライダ２５ａが第１の位置から第２の位置の間に存在する場合、スライダ２５ａの位置に応じて、立体画像の見え方が調整される。具体的には、スライダ２５ａの位置に応じて、右目用画像および左目用画像の横方向の位置のずれ量が調整される。３Ｄ調整スイッチ２５のスライダ２５ａは、第３の位置で固定されるように構成されており、第１の位置と第２の位置との間では上下方向に任意の位置にスライド可能に構成されている。例えば、スライダ２５ａは、第３の位置において、３Ｄ調整スイッチ２５を形成する側面から図５Ａに示す横方向に突出した凸部（図示せず）によって固定されて、所定以上の力が上方に加わらないと第３の位置よりも上方にスライドしないように構成されている。第３の位置から第１の位置にスライダ２５ａが存在する場合、立体画像の見え方は調整されないが、これはいわゆるあそびである。他の例においては、あそびをなくして、第３の位置と第１の位置とを同じ位置としてもよい。また、第３の位置を第１の位置と第２の位置の間としてもよい。その場合、スライダを第３の位置から第１の位置の方向に動かした場合と、第２の方向に動かした場合とで、右目用画像および左目用画像の横方向の位置のずれ量の調整する方向が逆になる。
【００６０】
３Ｄインジケータ２６は、上側ＬＣＤ２２が立体表示モードか否かを示す。３Ｄインジケータ２６は、ＬＥＤであり、上側ＬＣＤ２２の立体表示モードが有効の場合に点灯する。なお、３Ｄインジケータ２６は、上側ＬＣＤ２２が立体表示モードになっており、かつ、立体視画像を表示するプログラム処理が実行されているとき（すなわち、３Ｄ調整スイッチが上記第１の位置から上記第２の位置にあるときに、左目用画像と右目用画像が異なるような画像処理が実行されているとき）に限り、点灯するようにしてもよい。図１に示されるように、３Ｄインジケータ２６は、上側ハウジング２１の内側面に設けられ、上側ＬＣＤ２２の画面近傍に設けられる。このため、ユーザが上側ＬＣＤ２２の画面を正視した場合、ユーザは３Ｄインジケータ２６を視認しやすい。従って、ユーザは上側ＬＣＤ２２の画面を視認している状態でも、上側ＬＣＤ２２の表示モードを容易に認識することができる。
【００６１】
また、上側ハウジング２１の内側面には、スピーカ孔２１Ｅが設けられる。後述するスピーカ４３からの音声がこのスピーカ孔２１Ｅから出力される。
【００６２】
（ゲーム装置１０の内部構成）
次に、図６を参照して、ゲーム装置１０の内部の電気的構成について説明する。図６は、ゲーム装置１０の内部構成を示すブロック図である。図６に示すように、ゲーム装置１０は、上述した各部に加えて、情報処理部３１、メインメモリ３２、外部メモリインターフェイス（外部メモリＩ／Ｆ）３３、データ保存用外部メモリＩ／Ｆ３４、データ保存用内部メモリ３５、無線通信モジュール３６、ローカル通信モジュール３７、リアルタイムクロック（ＲＴＣ）３８、加速度センサ３９、電源回路４０、およびインターフェイス回路（Ｉ／Ｆ回路）４１等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング１１（または上側ハウジング２１でもよい）内に収納される。
【００６３】
情報処理部３１は、所定のプログラムを実行するためのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１１、画像処理を行うＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１２等を含む情報処理手段である。情報処理部３１のＣＰＵ３１１は、ゲーム装置１０内のメモリ（例えば外部メモリＩ／Ｆ３３に接続された外部メモリ４４やデータ保存用内部メモリ３５）に記憶されているプログラムを実行することによって、当該プログラムに応じた処理（例えば、撮影処理や、後述する画像表示処理）を実行する。なお、情報処理部３１のＣＰＵ３１１によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部３１は、ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）３１３を含む。情報処理部３１のＧＰＵ３１２は、情報処理部３１のＣＰＵ３１１からの命令に応じて画像を生成し、ＶＲＡＭ３１３に描画する。そして、情報処理部３１のＧＰＵ３１２は、ＶＲＡＭ３１３に描画された画像を上側ＬＣＤ２２及び／又は下側ＬＣＤ１２に出力し、上側ＬＣＤ２２及び／又は下側ＬＣＤ１２に当該画像が表示される。
【００６４】
情報処理部３１には、メインメモリ３２、外部メモリＩ／Ｆ３３、データ保存用外部メモリＩ／Ｆ３４、および、データ保存用内部メモリ３５が接続される。外部メモリＩ／Ｆ３３は、外部メモリ４４を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリＩ／Ｆ３４は、データ保存用外部メモリ４５を着脱自在に接続するためのインターフェイスである。
【００６５】
メインメモリ３２は、情報処理部３１（のＣＰＵ３１１）のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ３２は、上記プログラムに基づく処理に用いられる各種データを一時的に記憶したり、外部（外部メモリ４４や他の機器等）から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ３２として例えばＰＳＲＡＭ（Ｐｓｅｕｄｏ−ＳＲＡＭ）を用いる。
【００６６】
外部メモリ４４は、情報処理部３１によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ４４は、例えば読み取り専用の半導体メモリで構成される。外部メモリ４４が外部メモリＩ／Ｆ３３に接続されると、情報処理部３１は外部メモリ４４に記憶されたプログラムを読み込むことができる。情報処理部３１が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ４５は、不揮発性の読み書き可能なメモリ（例えばＮＡＮＤ型フラッシュメモリ）で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ４５には、外側撮像部２３で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ４５がデータ保存用外部メモリＩ／Ｆ３４に接続されると、情報処理部３１はデータ保存用外部メモリ４５に記憶された画像を読み込み、上側ＬＣＤ２２及び／又は下側ＬＣＤ１２に当該画像を表示することができる。
【００６７】
データ保存用内部メモリ３５は、読み書き可能な不揮発性メモリ（例えばＮＡＮＤ型フラッシュメモリ）で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ３５には、無線通信モジュール３６を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【００６８】
無線通信モジュール３６は、例えばＩＥＥＥ８０２．１１．ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。また、ローカル通信モジュール３７は、所定の通信方式（例えば赤外線通信）により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール３６およびローカル通信モジュール３７は情報処理部３１に接続される。情報処理部３１は、無線通信モジュール３６を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール３７を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【００６９】
また、情報処理部３１には、加速度センサ３９が接続される。加速度センサ３９は、３軸（ｘｙｚ軸）方向に沿った直線方向の加速度（直線加速度）の大きさを検出する。加速度センサ３９は、下側ハウジング１１の内部に設けられる。加速度センサ３９は、図１に示すように、下側ハウジング１１の長辺方向をｘ軸、下側ハウジング１１の短辺方向をｙ軸、下側ハウジング１１の内側面（主面）に対して垂直な方向をｚ軸として、各軸の直線加速度の大きさを検出する。なお、加速度センサ３９は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ３９は１軸又は２軸方向を検出する加速度センサであってもよい。情報処理部３１は、加速度センサ３９が検出した加速度を示すデータ（加速度データ）を受信して、ゲーム装置１０の姿勢や動きを検出することができる。
【００７０】
また、情報処理部３１には、ＲＴＣ３８および電源回路４０が接続される。ＲＴＣ３８は、時間をカウントして情報処理部３１に出力する。情報処理部３１は、ＲＴＣ３８によって計時された時間に基づき現在時刻（日付）を計算する。電源回路４０は、ゲーム装置１０が有する電源（下側ハウジング１１に収納される上記充電式電池）からの電力を制御し、ゲーム装置１０の各部品に電力を供給する。
【００７１】
また、情報処理部３１には、Ｉ／Ｆ回路４１が接続される。Ｉ／Ｆ回路４１には、マイク４２およびスピーカ４３が接続される。具体的には、Ｉ／Ｆ回路４１には、図示しないアンプを介してスピーカ４３が接続される。マイク４２は、ユーザの音声を検知して音声信号をＩ／Ｆ回路４１に出力する。アンプは、Ｉ／Ｆ回路４１からの音声信号を増幅し、音声をスピーカ４３から出力させる。また、タッチパネル１３はＩ／Ｆ回路４１に接続される。Ｉ／Ｆ回路４１は、マイク４２およびスピーカ４３（アンプ）の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するＡ／Ｄ変換およびＤ／Ａ変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル１３からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部３１に出力する。タッチ位置データは、タッチパネル１３の入力面において入力が行われた位置の座標を示す。なお、タッチパネル制御回路は、タッチパネル１３からの信号の読み込み、および、タッチ位置データの生成を所定時間に１回の割合で行う。情報処理部３１は、タッチ位置データを取得することにより、タッチパネル１３に対して入力が行われた位置を知ることができる。
【００７２】
操作ボタン１４は、上記各操作ボタン１４Ａ〜１４Ｌからなり、情報処理部３１に接続される。操作ボタン１４から情報処理部３１へは、各操作ボタン１４Ａ〜１４Ｉに対する入力状況（押下されたか否か）を示す操作データが出力される。情報処理部３１は、操作ボタン１４から操作データを取得することによって、操作ボタン１４に対する入力に従った処理を実行する。
【００７３】
下側ＬＣＤ１２および上側ＬＣＤ２２は情報処理部３１に接続される。下側ＬＣＤ１２および上側ＬＣＤ２２は、情報処理部３１（のＧＰＵ３１２）の指示に従って画像を表示する。本実施形態では、情報処理部３１は、上側ＬＣＤ２２に立体画像（立体視可能な画像）を表示させる。
【００７４】
具体的には、情報処理部３１は、上側ＬＣＤ２２のＬＣＤコントローラ（図示せず）と接続され、当該ＬＣＤコントローラに対して視差バリアのＯＮ／ＯＦＦを制御する。上側ＬＣＤ２２の視差バリアがＯＮになっている場合、情報処理部３１のＶＲＡＭ３１３に格納された右目用画像と左目用画像とが、上側ＬＣＤ２２に出力される。より具体的には、ＬＣＤコントローラは、右目用画像について縦方向に１ライン分の画素データを読み出す処理と、左目用画像について縦方向に１ライン分の画素データを読み出す処理とを交互に繰り返すことによって、ＶＲＡＭ３１３から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に１ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側ＬＣＤ２２の画面に表示される。そして、上側ＬＣＤ２２の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側ＬＣＤ２２の画面には立体視可能な画像が表示される。
【００７５】
外側撮像部２３および内側撮像部２４は、情報処理部３１に接続される。外側撮像部２３および内側撮像部２４は、情報処理部３１の指示に従って画像を撮像し、撮像した画像データを情報処理部３１に出力する。
【００７６】
３Ｄ調整スイッチ２５は、情報処理部３１に接続される。３Ｄ調整スイッチ２５は、スライダ２５ａの位置に応じた電気信号を情報処理部３１に送信する。
【００７７】
また、３Ｄインジケータ２６は、情報処理部３１に接続される。情報処理部３１は、３Ｄインジケータ２６の点灯を制御する。例えば、情報処理部３１は、上側ＬＣＤ２２が立体表示モードである場合、３Ｄインジケータ２６を点灯させる。以上がゲーム装置１０の内部構成の説明である。
【００７８】
（本実施形態の特徴の概要）
以下に、図７〜図１０を用いて、本実施形態の特徴となる画像表示処理の概要について説明する。画像表示処理は、画像表示プログラムに基づいてゲーム装置１０によって実行される。この画像表示処理では、ゲーム装置１０が、外側撮像部２３（２３ａ,２３ｂ）によって現在撮像されている実世界画像に、三次元の仮想空間に存在する仮想的なオブジェクトの画像を重畳（合成）した拡張現実画像を上側ＬＣＤ２２に立体視可能に表示する。この様な画像表示処理において、ゲーム装置１０はユーザの所望のメニュー項目の処理（メニュー実行処理）を実行するが、ゲーム装置１０がこのメニュー実行処理の前に所望のメニュー項目をユーザに選択させるためのメニュー画像を拡張現実画像として表示することが本実施形態の特徴である。具体的には、ゲーム装置１０が、選択可能なメニュー項目に対応する選択オブジェクトの画像を上記仮想的なオブジェクトの画像として実世界画像に合成した拡張現実画像を生成し、この拡張現実画像をメニュー画像として表示することが本実施形態の特徴である。
【００７９】
ここで、ゲーム装置１０は、上述したようなメニュー画像を常に表示するのではなく、実世界に配置されたマーカー（本発明の特定対象物の一例）を外側撮像部２３によって撮像することで、上記メニュー画像を表示する。すなわち、外側撮像部（左）２３ａで撮像された左実世界画像と、外側撮像部（右）２３ｂで撮像された右実世界画像の双方にマーカーが含まれていなければ、拡張現実画像が表示されない。なお、以下より、左実世界画像と右実世界画像を区別しないときには、「実世界画像」と単に記載し、区別するときには「左実世界画像」「右実世界画像」と記載する。以下に、図７を用いて、マーカーを用いての選択オブジェクトの表示方法について説明する。
【００８０】
図７は、上側ＬＣＤ２２に表示される立体画像の一例を示す図である。本例では、マーカー６０が撮像されてマーカー６０の全体が左実世界画像及び右実世界画像に含まれている。そして、上側ＬＣＤ２２には、４つの選択オブジェクトＯ１（Ｏ１ａ〜Ｏ１ｂ）と、これらの４つの選択オブジェクトＯ１の何れかを選択するためのカーソルオブジェクトＯ２が表示される。
【００８１】
選択オブジェクトＯ１は、例えば所定の厚みを有する四角形状のオブジェクトであり、上述したようにユーザに選択可能なメニュー項目（例えば、アプリケーションプログラム）に対応付けられている。なお、本来は、対応づけられたメニュー項目を示すアイコン（例えば、選択オブジェクトＯ１に対応付けられているアプリケーションプログラムを表すアイコン）が選択オブジェクトＯ１上に表示されるが、図７では図示を省略する。なお、ゲーム装置１０は、他の方法を用いて、選択オブジェクトＯ１に対応づけられたメニュー項目をユーザに示してもよい。そして、ユーザが選択オブジェクトＯ１を選択する操作を行ったときに、ゲーム装置１０は選択オブジェクトＯ１に対応付けられているメニュー項目のメニュー実行処理を実行する。このメニュー実行処理は、例えば、拡張現実画像を表示するための処理（例えば所定のゲーム処理等）を含む。この様に、選択オブジェクトＯ１が表示されることで、ユーザに選択可能なメニュー項目が表示され、選択オブジェクトＯ１の選択によってこの選択オブジェクトＯ１に対応するメニュー項目のメニュー実行処理が実行される。
【００８２】
選択オブジェクトＯ１はマーカー６０と予め定められた所定の位置関係になるように表示される。また、カーソルオブジェクトＯ２は、例えば十字形状で板状のポリゴン等から成り、立体視における拡張現実画像の中心に位置するように表示される。なお、本実施形態では、カーソルを表示するためにカーソルオブジェクトＯ２を仮想空間に配置しているが、この構成に代えて、立体視における拡張現実画像の中心に表示されるようにカーソルの二次元画像を拡張現実画像に合成する構成であってもよい。
【００８３】
以下に、ゲーム装置１０がマーカー６０と予め定められた所定の位置関係になるように選択オブジェクトＯ１を表示するための方法を説明する。まず、ゲーム装置１０は、左実世界画像及び右実世界画像におけるマーカー６０の位置及び姿勢を公知のパターンマッチング等の画像処理を行うことで取得し、これらのマーカー６０の位置及び姿勢に基づいて、各外側撮像部２３とマーカー６０との実世界での相対的位置を算出する。そして、ゲーム装置１０が、算出した外側撮像部（左）２３ａとマーカー６０の相対的位置に基づいて、マーカー６０に対応する仮想空間内の所定点を基準として、仮想空間内の左仮想カメラとの位置および向きを設定する。同様に、ゲーム装置１０は、算出した外側撮像部（右）２３ｂとマーカー６０の相対的位置に基づいて、仮想空間内の右仮想カメラの位置および向きを設定する。そして、ゲーム装置１０は当該所定点を基準として予め定められた位置に４つの選択オブジェクトＯ１を設定するのである。
【００８４】
図８を用いて、上述した、マーカー６０と予め定められた所定の位置関係になるように選択オブジェクトＯ１を表示するための方法をより具体的に説明する。図８は、実世界画像のマーカー６０の位置及び姿勢に基づいて生成された仮想空間の一例を模式的に示す図である。ゲーム装置１０は、マーカー座標系（仮想空間におけるマーカー６０の位置に対応する所定点を基準とした座標系）での選択オブジェクトＯ１の位置を予め記憶しており、これによって、仮想空間におけるマーカー６０の位置に対応する所定点と選択オブジェクトＯ１の相対的位置は予め設定されている。本実施形態では、４つの選択オブジェクトＯ１のそれぞれの位置（例えば、それぞれの代表点の位置）が、マーカー座標系の所定点（本実施形態では原点Ｐ）からそれぞれ異なった方向に等間隔だけ離れるように（所定点の周囲にそれぞれ配置されるように）設定されている。最も、選択オブジェクトＯ１の配置位置は、この様な位置に限定されることはなく、如何なる配置位置にアレンジされてもよい。なお、同図で示すＸ，Ｙ及びＺ方向はマーカー座標系の３つの座標軸の方向を示す。
【００８５】
そして、ゲーム装置１０は、実世界画像におけるマーカー６０の位置及び姿勢に基づいて、仮想カメラのマーカー座標系における位置及び向きを決定する。なお、外側撮像部（右）２３ｂ及び外側撮像部（左）２３ａの視差によって、外側撮像部（右）２３ｂ及び外側撮像部（左）２３ａで撮像される２つの実世界画像では、マーカー６０の位置及び姿勢が異なっている。このため、ゲーム装置１０は、外側撮像部（右）２３ｂに対応する右仮想カメラと、外側撮像部（左）２３ａに対応する左仮想カメラの２つの仮想カメラを仮想空間に設定し、それぞれの仮想カメラは位置が異なることになる。
【００８６】
また、上述したように、ゲーム装置１０は、仮想空間に十字形状で板状のポリゴンから成るカーソルオブジェクトＯ２を配置するが、このカーソルオブジェクトＯ２の配置位置を次のように決定する。すなわち、ゲーム装置１０は、左仮想カメラの位置Ｐ１、右仮想カメラの位置Ｐ２の中間点Ｐ３を通る直線であって、右仮想カメラの視線Ｌ１と左仮想カメラの視線Ｌ２に平行な直線Ｌ３上に、カーソルオブジェクトＯ２の位置を決定する。なお、カーソルオブジェクトＯ２は、中間点Ｐ３から所定の距離になる位置に決定され、かつ直線Ｌ３と直交するように配置される。
【００８７】
上述のようにして生成された仮想空間を仮想カメラで撮像して、選択オブジェクトＯ１の画像及びカーソルオブジェクトＯ２の画像が生成され、これらの画像が実世界画像に合成されてメニュー画像として表示されるのである。なお、右仮想カメラで撮像されたオブジェクトＯ１，Ｏ２の画像は右実世界画像に合成されて右目用画像として表示され、左仮想カメラで撮像されたオブジェクトＯ１，Ｏ２の画像は左実世界画像に合成されて左目用画像として表示される。
【００８８】
次に、図８〜図１０を用いて、画像表示処理において、ゲーム装置１０がユーザの操作に基づいて、選択オブジェクトＯ１を選択する動作を説明する。図９は、図８で示す直線Ｌ３の位置及び傾きが変更された状態の仮想空間を示す模式図である。図１０は、図９で示す仮想空間に基づいて生成された拡張現実画像の一例を示す図である。図８を参照して、ゲーム装置１０は、それぞれの選択オブジェクトＯ１の周囲に、選択オブジェクトＯ１を囲むように（選択オブジェクトＯ１の底面を除く５つの側面を囲むように）コリジョン領域Ｃ（Ｃ１〜Ｃ４）を設定する。
【００８９】
図９で示すように、ゲーム装置１０の本体をユーザが傾ける等して、外側撮像部２３の撮像方向や位置が変更されたときに、この変更に応じて、ゲーム装置１０は右仮想カメラと左仮想カメラの撮像方向や位置（視線Ｌ１、Ｌ２の位置や傾き）も変更し、その結果、視線Ｌ１、Ｌ２に平行な直線Ｌ３の位置や傾きも変更する。そして、ゲーム装置１０は、直線Ｌ３がいずれかのコリジョン領域Ｃと交差したとき（衝突したとき）に、そのコリジョン領域Ｃに対応する選択オブジェクトＯ１が選択されたと決定する。図９では中間点Ｐ３が矢印の方向に変更され、直線Ｌ３の位置及び傾きが変化している。これによって、直線Ｌ３がコリジョン領域Ｃ１と衝突するようになり、この結果、選択オブジェクトＯ１ａが選択される（選択状態にされる）。
【００９０】
そして、選択オブジェクトＯ１が選択状態になると、ゲーム装置１０は、選択オブジェクトＯ１の表示態様（例えば、形状、サイズ、姿勢、色及び模様等）を変更する処理（以下、「オブジェクト態様変更処理」と記載する）を行う。本実施形態では、ゲーム装置１０は、選択オブジェクトＯ１の高さを僅かに（所定値だけ）高く変更し、かつ板状のポリゴンから成る影オブジェクトＯ３を選択オブジェクトＯ１の下側に配置する処理を行う。この様に、選択状態の選択オブジェクトＯ１の表示態様を変更することで、ユーザに選択状態の選択オブジェクトＯ１を報知している。なお、本実施形態では、影オブジェクトＯ３は選択状態になった選択オブジェクトＯ１に対してのみ配置されているが、選択状態であるか否かに係わらず、全ての選択オブジェクトＯ１に対して初期状態から影オブジェクトＯ３を配置する構成であってもよい。この様な構成では、影オブジェクトＯ３は、選択オブジェクトＯ１が選択状態ではなければ選択オブジェクトＯ１に隠れて表示されず、選択オブジェクトＯ１が選択状態になって浮かせて配置されたときに表示されることになる。
【００９１】
なお、表示態様が変更された選択オブジェクトＯ１は仮想空間の下面から浮きあがって配置されることになるが、このときのコリジョン領域Ｃは下面に接地するように下面に向かって伸長して設定される。図９では、コリジョン領域Ｃ１がこの様に伸長して設定されている。この様に設定されなければ、選択オブジェクトＯ１が選択状態になって選択オブジェクトＯ１が浮き上がったときに、直線Ｌ３がコリジョン領域Ｃと衝突しなくなって、ユーザの意図に反して選択状態が解除されてしまうことが起こり得るからである。このオブジェクト態様変更処理の結果、図１０で示すような拡張現実画像が表示される。
【００９２】
（メモリマップ）
以下に、図１１を用いて、上記画像表示処理の実行時にメモリ３２に記憶されるプログラム及び主なデータを説明する。図１１は、メモリ３２に記憶されるプログラム及びデータの一例を示すメモリマップである。メモリ３２には、画像表示プログラム７０、左実世界画像７１Ｌ、右実世界画像７１Ｒ、左ビュー行列７２Ｌ、右ビュー行列７２Ｒ、選択オブジェクト情報７３、カーソルオブジェクト情報７４、選択情報７５、コリジョン情報７６、メニュー項目情報７７及び影オブジェクト情報７８等が記憶されている。
【００９３】
画像表示プログラム７０は、ゲーム装置１０に画像表示処理を実行させるプログラムである。また、左実世界画像７１Ｌは、外側撮像部（左）２３ａによって撮像された実世界画像である。右実世界画像７１Ｒは、外側撮像部（右）２３ｂによって撮像された実世界画像である。左ビュー行列７２Ｌは、左仮想カメラから見たオブジェクト（選択オブジェクトＯ１、カーソルオブジェクトＯ２等）を描画する際に用いられる行列であり、マーカー座標系で表された座標を左仮想カメラ座標系で表された座標へと変換するための座標変換行列である。また、右ビュー行列７２Ｒは、右仮想カメラから見たオブジェクト（選択オブジェクトＯ１、カーソルオブジェクトＯ２等）を描画する際に用いられる行列であり、マーカー座標系で表された座標を右仮想カメラ座標系で表された座標へと変換するための座標変換行列である。
【００９４】
選択オブジェクト情報７３は、選択オブジェクトＯ１に関連する情報であって、選択オブジェクトＯ１の形状や模様を表すモデル情報、及びマーカー座標系での位置等を示す。なお、選択オブジェクト情報７３は、各選択オブジェクトＯ１の個数分（Ｏ１ａ、Ｏ１ｂ、・・・、Ｏ１ｎ）記憶される。カーソルオブジェクト情報７４は、カーソルオブジェクトＯ２に関連する情報であって、カーソルオブジェクトＯ２の形状や色彩を表すモデル情報、現在位置及び中間点Ｐ３からの距離等を示す。選択情報７５は、４つの選択オブジェクトＯ１のうち選択状態にある選択オブジェクトＯ１を特定するための情報である。コリジョン情報７６は、コリジョン領域Ｃに関連する情報であり、選択オブジェクトＯ１の位置（例えば代表点の位置）を基準としたコリジョン領域Ｃの設定領域を示す。なお、コリジョン情報７６は、コリジョン領域Ｃ１〜Ｃ４を生成するために使用される。また、メニュー項目情報７７は、各選択オブジェクトＯ１に対応するメニュー項目をそれぞれ示す情報である。影オブジェクト情報７８は、影オブジェクトＯ３に関連する情報であって、影オブジェクトＯ３の形状や色彩を表すモデル情報、選択オブジェクトＯ１の位置（例えば代表点の位置）を基準とした位置を示す。
【００９５】
なお、上記左実世界画像７１Ｌ、右実世界画像７１Ｒ、左ビュー行列７２Ｌ、右ビュー行列７２Ｒ及び選択情報７５は、上記画像表示プログラムの実行によって生成され、一時的にメモリ３２に記憶されるデータである。また、選択オブジェクト情報７３、カーソルオブジェクト情報７４、コリジョン情報７６、メニュー項目情報７７、及び影オブジェクト情報７８は、予めデータ保存用内部メモリ３５、外部メモリ４４、データ保存用外部メモリ４５等に記憶され、画像処理プログラムの実行によって読み出されてメモリ３２に記憶されるデータである。また、メニュー実行処理において使用される仮想的なオブジェクトの情報、選択情報及びコリジョン情報については、図示を省略しているが、選択オブジェクト情報７３、選択情報７５及びコリジョン情報７６と同様のフォーマットの情報として記憶される。そして、これらの情報も、予めデータ保存用内部メモリ３５、外部メモリ４４、データ保存用外部メモリ４５等に記憶され、画像処理プログラムの実行によって読み出されてメモリ３２に記憶される。
【００９６】
（画像表示処理）
以下に、図１２〜図１４を用いて、ＣＰＵ３１１が実行する上記画像表示処理を詳細に説明する。図１２及び図１３は、本実施形態の画像表示処理の一例を示すフローチャートである。図１４は画像表示処理におけるステップＳ２４のメニュー実行処理の一例を示すフローチャートである。なお、図１２〜図１４のフローチャートは単なる一例に過ぎない。従って、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。
【００９７】
まず、ＣＰＵ３１１は、左実世界画像７１Ｌと右実世界画像７１Ｒをメモリ３２から取得する（Ｓ１０）。そして、ＣＰＵ３１１は取得した左実世界画像７１Ｌと右実世界画像７１Ｒに基づいてマーカー認識処理を行う（Ｓ１１）。
【００９８】
前述のように、上側ハウジング２１において、外側撮像部（左）２３ａと外側撮像部（
右）２３ｂは一定の間隔（例えば３．５ｃｍ）だけ離れている。したがって、外側撮像部
（左）２３ａと外側撮像部（右）２３ｂによって同時にマーカー６０を撮像した場合、外側撮像部（左）２３ａによって撮像された左実世界画像におけるマーカー６０の位置及び姿勢と、外側撮像部（右）２３ｂによって撮像された右実世界画像におけるマーカー６０の位置及び姿勢との間には、視差によるズレが生じる。本実施形態では、ＣＰＵ３１１は、左実世界画像および右実世界画像の両方に対してマーカー認識処理を行っている。
【００９９】
例えば、左実世界画像に対してマーカー認識処理を行う場合には、ＣＰＵ３１１は、パターンマッチング手法等によって左実世界画像にマーカー６０が含まれているか否かを判断し、左実世界画像にマーカー６０が含まれている場合には、左実世界画像におけるマーカー６０の位置および姿勢に基づいて、左ビュー行列７２Ｌを算出する。なお、左ビュー行列７２Ｌは、左実世界画像におけるマーカー６０の位置および姿勢に基づいて計算される左仮想カメラの位置および姿勢を反映した行列である。より正確には、図８で示したような仮想空間におけるマーカー座標系（実世界におけるマーカー６０の位置に対応する仮想空間内の所定点を原点とした座標系）で表された座標を、左実世界画像におけるマーカー６０の位置および姿勢に基づいて計算された左仮想カメラ（実世界の外側撮像部（左）２３ａに対応する仮想空間内の仮想カメラ）の位置および姿勢を基準とした左仮想カメラ座標系で表される座標へと変換するための座標変換行列である。
【０１００】
また例えば、右実世界画像に対してマーカー認識処理を行う場合には、ＣＰＵ３１１は、パターンマッチング手法等によって右実世界画像にマーカー６０が含まれているか否かを判断し、右実世界画像にマーカー６０が含まれている場合には、右実世界画像におけるマーカー６０の位置および姿勢に基づいて、右ビュー行列７２Ｒを算出する。なお、右ビュー行列７２Ｒは、右実世界画像におけるマーカー６０の位置および姿勢に基づいて計算される右仮想カメラの位置および姿勢を反映した行列である。より正確には、図８で示したような仮想空間におけるマーカー座標系（実世界におけるマーカー６０の位置に対応する仮想空間内の所定点を原点とした座標系）で表された座標を、右実世界画像におけるマーカー６０の位置および姿勢に基づいて計算された右仮想カメラ（実世界の外側撮像部（右）２３ｂに対応する仮想空間内の仮想カメラ）の位置および姿勢を基準とした右仮想カメラ座標系で表される座標へと変換するための座標変換行列である。
【０１０１】
なお、このビュー行列７２Ｌ，７２Ｒの算出において、ゲーム装置１０は、マーカー６０と各外側撮像部２３との相対的位置を算出している。そして、ゲーム装置１０は、図８を用いて上述したように、上記相対的位置に基づいて、左仮想カメラ及び右仮想カメラのマーカー座標系における位置及び向きを算出し、この算出した位置及び向きで各仮想カメラを仮想空間に設定している。そして、ゲーム装置１０は、このように設定した左仮想カメラの位置及び向きを基準として左ビュー行列７２Ｌを算出し、右仮想カメラの位置及び向きを基準として右ビュー行列７２Ｒを算出する。
【０１０２】
次に、ＣＰＵ３１１は、カーソルオブジェクトＯ２の位置を算出し仮想空間に配置する処理を行う（Ｓ１２）。具体的には、ＣＰＵ３１１は、まず図８で示すような直線Ｌ３を、上記右仮想カメラの位置及び向きと左仮想カメラの位置及び向きに基づいて算出する。そして、ＣＰＵ３１１は、直線Ｌ３上であり、かつ図８で示す中間点Ｐ３からカーソルオブジェクト情報７４の示す所定の距離（カーソルオブジェクト情報７４で示す距離）に位置するようにこのカーソルオブジェクトＯ２の位置を算出する。なお、この位置はマーカー座標系で表される。そして、ＣＰＵ３１１は、算出した位置をカーソルオブジェクトＯ２の現在位置として示すようにカーソルオブジェクト情報７４を更新する。なお、本実施形態では、仮想空間にカーソルオブジェクトＯ２を配置する構成であるが、上述したように、カーソルオブジェクトＯ２を仮想空間に配置せずにカーソルの二次元画像を重畳画像（拡張現実画像）に合成してもよい。この場合には、ＣＰＵ３１１は、ステップＳ１２を実行せず、かつ後述のステップＳ１７において生成された左目用の重畳画像と右目用の拡張現実画像のそれぞれにカーソルの二次元画像を合成する。また、各カーソルの二次元画像（左目用画像及び右目用画像）は、ユーザがカーソルを立体視可能なように、各重畳画像に対して所定の視差分だけ異なった位置に合成される。
【０１０３】
そして、ＣＰＵ３１１は、コリジョン判定処理を行う（Ｓ１３）。具体的には、このコリジョン判定処理では、ＣＰＵ３１１は、メモリ３２からコリジョン情報７６を読み出し、コリジョン情報７６の示すコリジョン領域に基づいて各選択オブジェクトＯ１の各コリジョン領域Ｃを算出する。なお、このコリジョン領域Ｃもマーカー座標系で表される。ここで、コリジョン領域Ｃは、前回のフレームの処理で設定された選択オブジェクトＯ１の位置を基準として算出され、図８を用いて上述したように、選択オブジェクトＯ１の底面を除く５つの側面を囲むように設定される。そして、図９で示すように、選択オブジェクトＯ１が選択状態にあるときには（具体的には、メモリ３２に選択情報７５が記憶されているときには）、上述したように、この選択オブジェクトＯ１に設定されているコリジョン領域Ｃが仮想空間の下方向に伸長される。そして、ＣＰＵ３１１は、この様に設定したコリジョン領域ＣとステップＳ１２で算出した直線Ｌ３とが仮想空間において交差しているか（衝突しているか）を判断する。
【０１０４】
続いて、ＣＰＵ３１１は、選択状態にする選択オブジェクトＯ１を決定する（Ｓ１４）。具体的には、何れかのコリジョン領域ＣとステップＳ１２で算出した直線Ｌ３とが衝突していると判断したときには、ＣＰＵ３１１は、衝突しているコリジョン領域Ｃに対応する選択オブジェクトＯ１を、選択状態にする選択オブジェクトＯ１として決定する。すなわち、衝突している選択オブジェクトＯ１を示す選択情報７５をメモリ３２に記憶させる。なお、既に選択情報７５が記憶されているときには、ＣＰＵ３１１はこの選択情報７５を更新する。一方、コリジョン領域ＣとステップＳ１２で算出した直線Ｌ３とが衝突していないと判断したときには、ＣＰＵ３１１は、どの選択オブジェクトＯ１も選択されていない状態にするため、メモリ３２に記憶されている選択情報７５を削除（またはヌル値を格納）する。
【０１０５】
続いて、ＣＰＵ３１１は、上述したオブジェクト態様変更処理を実行する（Ｓ１５）。具体的には、ＣＰＵ３１１は、選択状態の選択オブジェクトＯ１（すなわち、選択情報７５の示す選択オブジェクトＯ１）については、初期位置よりも所定の高さだけ高くなるように、当該選択オブジェクトＯ１の位置を変更する（選択オブジェクト情報７４の位置を更新する）。加えて、ＣＰＵ３１１は、影オブジェクト情報７８に基づいて、選択状態の選択オブジェクトＯ１の位置を基準とした位置（選択オブジェクトＯ１の位置の下方）に影オブジェクトＯ３を配置する。
【０１０６】
なお、ＣＰＵ３１１は、選択状態ではない選択オブジェクトＯ１については、初期位置に設定し、影オブジェクトＯ１の配置も行わない。
【０１０７】
ここで、本実施形態では、ＣＰＵ３１１は、選択オブジェクトＯ１の高さを変更することで選択オブジェクトＯ１の表示態様を変更しているが、選択オブジェクトＯ１の姿勢を変える（例えば、起き上がらせるアニメーションを表示する）、振動させる等で選択オブジェクトＯ１の表示態様を変更してもよい。この様に、選択オブジェクトＯ１の表示態様の変更を、実世界の実オブジェクトの表示態様の変更に似た自然な内容にすることで、ユーザの拡張現実の世界への没入感をより高めることができる。
【０１０８】
次に、ＣＰＵ３１１は、ＧＰＵ３１２を用いて、左実世界画像７１Ｌと右実世界画像７１ＲをそれぞれＶＲＡＭ３１３の対応する領域に描画する（Ｓ１６）。続いて、ＣＰＵ３１１は、ＧＰＵ３１２を用いて、選択オブジェクトＯ１及びカーソルオブジェクトＯ２をＶＲＡＭ３１３の実世界画像７１Ｌ，７１Ｒ上に重畳して描画する（Ｓ１７）。具体的には、ＣＰＵ３１１は、ステップＳ１１で算出した左ビュー行列７２Ｌを用いて、マーカー座標系の選択オブジェクトＯ１及びカーソルオブジェクトＯ２の座標を左仮想カメラ座標系にビューイング変換する。そして、ＣＰＵ３１１は、変換された座標に基づいて所定の描画処理を行って、ＧＰＵ３１２を用いて、選択オブジェクトＯ１及びカーソルオブジェクトＯ２を左実世界画像７１Ｌ上に描画して重畳画像（左目用画像）を生成する。同様にして、ＣＰＵ３１１は、右ビュー行列７２Ｒを用いて各オブジェクトＯ１，Ｏ２の座標のビューイング変換を行う。そして、ＣＰＵ３１１は、変換された座標に基づいて所定の描画処理を行って、ＧＰＵ３１２を用いて選択オブジェクトＯ１及びカーソルオブジェクトＯ２を右実世界画像７１Ｒ上に描画して重畳画像（右目用画像）を生成する。これによって、例えば、図７や図１０で示すような画像が上側ＬＣＤ２２に表示される。
【０１０９】
次に、ＣＰＵ３１１は、外側撮像部２３（より具体的には、外側撮像部（左）２３ａと外側撮像部（右）２３ｂを結ぶ線の中心点）からマーカー６０までの距離を算出する（Ｓ１８）。この距離は、左実世界画像７１Ｌに含まれるマーカー６０の位置及び向きと、右実世界画像７１Ｒに含まれるマーカー６０の位置及び向きとに基づいて計算することができる。なお、この距離の算出は、左実世界画像７１Ｌ及び／又は右実世界画像７１Ｒにおけるマーカー６０の大きさに基づいてなされてもよい。さらには、実世界における外側撮像部２３とマーカー６０との間の距離の代わりに、仮想空間における仮想カメラとマーカー座標系の原点との間の距離を計算してもよい。
【０１１０】
そして、ＣＰＵ３１１は、ステップＳ１８で算出した距離が所定値以内かを判断する（Ｓ１９）。ところで、外側撮像部２３とマーカー６０との間の距離が小さくなるほど、上側ＬＣＤ２２に表示されるマーカー６０および選択オブジェクトＯ１が大きくなる。そして、外側撮像部２３とマーカー６０との間の距離が或る値以下になると、ユーザが所望の選択オブジェクトＯ１を選択しようとしてゲーム装置１０の本体（外側撮像部２３）を傾けたときに、当該選択オブジェクトＯ１が選択状態になるよりも先にマーカー６０の一部が外側撮像部２３の撮像範囲から外れてしまい、拡張現実画像が生成できなくなってしまう。そこで、当該ステップＳ１９では、外側撮像部２３とマーカー６０との間の距離が小さすぎないかどうかを判断している。なお、上記のような問題が生じ得る外側撮像部２３とマーカー６０との間の距離は、仮想空間に配置する選択オブジェクトＯ１の数や、大きさ、及び位置に依存する。よって、選択オブジェクトＯ１の数や、大きさ、及び位置が可変であるときには、それらに応じて、ステップＳ１９で用いる所定値が可変になるように設定されてもよい。この様にすることで、選択オブジェクトＯ１の数や、大きさ、及び位置に対応して、必要なときだけ、後述のステップＳ２０の警告の表示を行うことができる。
【０１１１】
そして、ステップＳ１８で算出した距離が所定値以内であると判断したときには（Ｓ１９でＹＥＳ）、ＣＰＵ３１１は、警告メッセージをＶＲＡＭ３１３の各重畳画像（左目用画像および右目用画像）上に描画するようＧＰＵ３１２に指示する（Ｓ２０）。この警告メッセージは、例えば、マーカー６０からもっと離れるようにユーザに促すものである。この後、ＣＰＵ３１１は、処理をステップＳ２２に進める。
【０１１２】
一方、ステップＳ１８で算出した距離が所定値以内でないと判断したときには（Ｓ１９でＮＯ）、ＣＰＵ３１１は選択オブジェクトＯ１の選択方法を示したメッセージ（例えば、「所望の選択オブジェクトにカーソルを合わせた状態で所定のボタンを押して下さい」というメッセージ）をＶＲＡＭ３１３の各重畳画像（左目用画像および右目用画像）における端部分に描画するようＧＰＵ３１２に指示する（Ｓ２１）。この後、ＣＰＵ３１１は、本処理をステップＳ２２に進める。
【０１１３】
次に、ＣＰＵ３１１は、選択状態の選択オブジェクトＯ１があるかを判断する（Ｓ２２）。この判断は、選択情報７５を参照してなされる。選択状態の選択オブジェクトＯ１がないと判断したときには（Ｓ２２でＮＯ）、ＣＰＵ３１１は本処理をステップＳ１０に戻す。一方、選択状態の選択オブジェクトＯ１があると判断したときには（Ｓ２２でＹＥＳ）、ＣＰＵ３１１は、メニュー選択確定指示をユーザから受け付けたかを判断する（Ｓ２３）。このメニュー選択確定指示は例えば操作ボタン１４の何れかが操作されることで入力される。そして、メニュー選択確定指示を受け付けていないと判断したときには（Ｓ２３でＮＯ）、ＣＰＵ３１１は、本処理をステップＳ１０に戻す。なお、上記ステップＳ１０〜Ｓ２２、そしてステップＳ２２でＹＥＳと判断されたときのステップＳ２３、及びステップＳ２３でＮＯと判断されたときの処理は、所定の描画周期毎に（例えば、１／６０ｓｅｃ毎に）繰り返し実行される。また、上記ステップＳ１０〜Ｓ２２、そしてステップＳ２２でＮＯと判断されたときの処理は、所定の描画周期毎に（例えば、１／６０ｓｅｃ毎に）繰り返し実行される。
【０１１４】
一方、メニュー選択確定指示を受け付けたと判断したときには（Ｓ２３でＹＥＳ）、ＣＰＵ３１１は、選択オブジェクトＯ１の選択が確定したと判断し、メニュー項目情報７７に基づいてこの選択オブジェクトＯ１に対応するメニュー実行処理を実行（例えば、選択オブジェクトＯ１に応じたアプリケーションプログラムを実行）する（Ｓ２４）。このメニュー実行処理は、所定の描画周期毎に（例えば、１／６０ｓｅｃ毎に）繰り返し実行される。
【０１１５】
以下に図１４を参照してメニュー実行処理を説明する。本メニュー実行処理では、まず、ＣＰＵ３１１が所定のゲーム処理を実行する（Ｓ２４１）。この所定のゲーム処理は、上述したように、拡張現実画像を表示するための処理、すなわち左実世界画像７１Ｌ及び右実世界画像７１Ｒにおけるマーカー６０の位置及び姿勢を利用しての処理を含む。更に、本実施形態では、所定のゲーム処理は、ゲーム装置１０の本体の動き（外側撮像部２３の動き）に応じて、拡張現実画像における仮想的なオブジェクトを選択する処理を含む。
【０１１６】
なお、所定のゲーム処理において、仮想的なオブジェクトを左実世界画像７１Ｌ、右実世界画像７１Ｒに重畳した拡張現実画像を表示するための処理、及び仮想的なオブジェクトを選択する処理は、上記ステップＳ１０〜Ｓ１７と同様の処理が実行されてもよい。例えば、所定のゲーム処理は次のようなシューティングゲームの処理である。具体的には、シューティングゲームの処理では、仮想的なオブジェクトとしての敵オブジェクトが、仮想空間のマーカー６０を基準とした位置に配置される。そして、ユーザがゲーム装置１０を傾けることで、複数表示された敵オブジェクトのコリジョン領域Ｃと直線Ｌ３が仮想空間で衝突すると、ゲーム装置１０はこの衝突した敵オブジェクトをシューティング対象となる敵オブジェクトとして選択する。この様なゲーム処理をＣＰＵ３１１が行うときには、このゲーム処理の前に、選択オブジェクトＯ１を表示しかつユーザに選択オブジェクトＯ１を選択させることによって、所定のゲーム処理での仮想的なオブジェクトの選択操作をユーザに練習させることができる。すなわち、メニュー画像をチュートリアル画像とすることができる。
【０１１７】
なお、本実施形態では、ステップＳ２４１でゲーム処理を実行するが、拡張現実画像を表示する処理であればゲーム処理以外の如何なる処理がステップＳ２４１で実行されてもよい。
【０１１８】
次に、ＣＰＵ３１１は、ゲームクリアとなったかを判断し（Ｓ２４２）、ゲームクリアと判断したときには（Ｓ２４２でＹＥＳ）、メニュー実行処理を終了させて図１２のステップＳ１０に処理を戻す。一方、ゲームクリアと判断しなかったときには（Ｓ２４２でＮＯ）、ＣＰＵ３１１は選択オブジェクトＯ１の再表示指示を受け付けたかを判断する（Ｓ２４３）。この再表示指示は、例えば各操作ボタン１４のうちの所定のボタンが操作されることで入力される。ここで、再表示指示が入力されていないと判断したときには（Ｓ２４３でＮＯ）、ＣＰＵ３１１は処理をステップＳ２４１に戻す。また、再表示指示が入力されたと判断したときには（Ｓ２４３でＹＥＳ）、ＣＰＵ３１１は本メニュー実行処理を終了させて図１２のステップＳ１０に処理を戻す。これによって、拡張現実画像として表示されたメニュー画像からメニュー実行処理における拡張現実画像の表示への切り替えがこの切り替え感を強くユーザに与えることなく行うことができるのと同様に、メニュー実行処理における拡張現実画像の表示からメニュー画像の表示への切り替えも切り替え感を強くユーザに与えることなく行うことができる。
【０１１９】
なお、上述したのは、立体表示モードが選択されているときの画像表示処理であるが、本実施形態では、平面表示モードにおいても選択オブジェクトＯ１を表示することができる。具体的には、平面表示モードでは、例えば外側撮像部（左）２３ａ及び外側撮像部（右）２３ｂのうち何れか１つのみが有効になる。どちらの外側撮像部２３が有効になってもよいが、本実施形態では、外側撮像部（左）２３ａのみが有効になる。平面表示モードでの画像表示処理は、左ビュー行列７２Ｌのみが算出され（右ビュー行列７２Ｒが算出されず）、この左ビュー行列７２Ｌを用いてマーカー座標系での選択オブジェクトＯ１の位置が仮想カメラ座標系の位置に変換される。そして、カーソルオブジェクトＯ２の位置は左仮想カメラの視線上に設定される。そして、直線Ｌ３に代えて左仮想カメラの視線とコリジョン領域Ｃ１とでコリジョン判定が行われる。その他の点については、平面表示モードでの画像表示処理は立体表示モードの画像表示処理とほぼ同じであるため、説明を省略する。
【０１２０】
上述したように、本実施形態では、ゲーム装置１０は、選択オブジェクトＯ１の拡張現実画像を表示することで、ユーザに選択可能なメニュー項目を示すメニュー画像を表示することができる。このため、メニュー項目の選択によって拡張現実画像を表示してのメニュー実行処理が実行されるときでも、メニュー画像からメニュー実行処理の拡張現実画像への切り替えのときに、ユーザに切り替え感を強く感じさせることなく切り替えを行うことが可能になる。
【０１２１】
更に、ゲーム装置１０の本体（外側撮像部２３）を動かすだけの簡易な操作でユーザが選択オブジェクトＯ１を選択することができ、選択オブジェクトＯ１を表示してのメニュー画面においても、操作性良く興趣性高くメニュー項目の選択を行うことができる。
【０１２２】
以下に本実施形態の変形例を説明する。
【０１２３】
（１）上記実施形態では、左実世界画像のマーカー認識結果から計算される左仮想カメラ６４Ｌの位置及び姿勢に基づいて、右仮想カメラ６４Ｒの位置及び姿勢を決定しているが、他の実施形態では、左実世界画像のマーカー認識結果から計算される左仮想カメラ６４Ｌの位置及び姿勢と、右実世界画像のマーカー認識結果から計算される右仮想カメラ６４Ｒの位置及び姿勢の一方または両方を考慮して、左仮想カメラ６４Ｌの位置及び姿勢と、右仮想カメラ６４Ｒの位置及び姿勢を決定するようにしてもよい。
【０１２４】
（２）また、上記実施形態では、マーカー座標系の原点の周囲に選択オブジェクトＯ１を配置しているが、他の実施形態では、マーカー座標系の原点の周囲の位置に選択オブジェクトＯ１を配置しなくてもよい。もっとも、マーカー座標系の原点の周囲の位置に選択オブジェクトＯ１を配置する方が、選択オブジェクトＯ１を選択状態にするためにゲーム装置１０の本体を傾けてもマーカー６０が外側撮像部２３の撮像領域から外れ難くなるため好ましい。
【０１２５】
（３）また、上記実施形態では、仮想空間に複数の選択オブジェクトＯ１を配置しているが、他の実施形態では、仮想空間に選択オブジェクトＯ１を１つだけ配置してもよい。勿論選択オブジェクトＯ１の形状も四角形に限定されない。なお、コリジョン領域Ｃ及びカーソルオブジェクトＯ２の形状等も本実施形態の形状に限定されない。
【０１２６】
（４）本実施形態では、実世界画像７１Ｌ、７１Ｒにおけるマーカー６０の位置及び姿勢に基づいて、仮想空間における仮想カメラと操作オブジェクトＯ１の相対的な位置を決定しているが、マーカー６０以外の他の特定対象物の位置及び姿勢に基づいて決定してもよい。この他の特定対象物としては、例えば、人の顔、手や紙幣等があり、パターンマッチング等で識別可能なものであれば如何なるものであってもよい。
【０１２７】
（５）本実施形態では、マーカー６０等の特定対象物を用いて、外側撮像部２３の向きや位置の変化に応じて、仮想カメラの選択オブジェクトＯ１に対する相対的な位置及び向きを変更しているが、他の方法で変更してもよい。例えば、特願２０１０−１２７０９２に開示されているような次のような方法を採用してもよい。すなわち、画像表示処理の開始時には、仮想カメラの位置と選択オブジェクトＯ１の仮想空間における位置、及び仮想カメラの撮像方向を予め設定されたデフォルトで設定する。そして、１フレーム前の実世界画像と現在のフレームの実世界画像との差分を１フレーム毎に算出ていくことで、画像表示処理の開始時からの外側撮像部２３の移動量（向きの変化量）を算出し、この移動量に応じて仮想カメラの撮像方向をデフォルトの向きから変更する。これによって、マーカー６０を使用せずに、外側撮像部２３の向きの変化に応じて仮想カメラの向きを変更し、これに応じて上記直線Ｌ３の向きも変更して、直線Ｌ３と選択オブジェクトＯ１と衝突させることが可能になる。
【０１２８】
（６）また、本実施形態では、直線Ｌ３が所望の選択オブジェクトＯ１と交差するようにゲーム装置１０の本体（すなわち外側撮像部２３）を動かすことによって、ユーザが所望の選択オブジェクトＯ１を選択するが、これ以外の方法で選択オブジェクトＯ１を選択するようにしてもよい。例えば、加速度センサや角速度センサ等を用いてゲーム装置１０の本体の動きを検出し、当該動きに応じて所望の選択オブジェクトＯ１を選択するようにしてもよい。また例えば、タッチパネルなどのポインティングデバイスを用いて所望の選択オブジェクトＯ１を選択するようにしてもよい。
【０１２９】
（７）本実施形態では、外側撮像部２３がゲーム装置１０に予め搭載されているが、他の実施形態では、ゲーム装置１０に着脱可能な外付け型のカメラを利用してもよい。
【０１３０】
（８）また、上記実施形態では、上側ＬＣＤ２２がゲーム装置１０に予め搭載されているが、他の実施形態では、ゲーム装置１０に着脱可能な外付け型の立体視ディスプレイを利用してもよい。
【０１３１】
（９）また、上記実施形態では、上側ＬＣＤ２２がパララックスバリア方式の立体表示装置であるが、他の実施形態では、上側ＬＣＤ２２がレンチキュラー方式等の他の任意の方式の立体表示装置であってもよい。例えば、レンチキュラー方式の立体表示装置を利用する場合には、左目用画像と右目用画像をＣＰＵ３１１または他のプロセッサで合成してから、当該合成画像をレンチキュラー方式の立体表示装置に供給するようにしてもよい。
【０１３２】
（１０）なお、本実施形態では、立体表示モードと平面表示モードとで切り替え可能な構成であるが、何れか１のモードでのみ表示を行う構成であってもよい。
【０１３３】
（１１）また、上記実施形態では、ゲーム装置１０を用いて実世界画像に仮想オブジェクトを合成表示しているが、他の実施形態では、任意の情報処理装置または情報処理システム（例えば、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、携帯電話、パーソナルコンピュータ、カメラ等）を用いて実世界画像に仮想オブジェクトを合成表示してもよい。
【０１３４】
（１２）また、上記実施形態では、一台の情報処理装置（ゲーム装置１０）のみによって画像表示処理を実行しているが、他の実施形態では、互いに通信可能な複数の情報処理装置を有する画像表示システムにおいて、当該複数の情報処理装置が画像表示処理を分担して実行するようにしてもよい。
【０１３５】
（１３）また、本実施形態においては、外側撮像部２３により撮像したカメラ画像と仮想オブジェクト（選択オブジェクトＯ１等）の画像とを重ね合わせて上側ＬＣＤ２２に表示させるビデオシースルー方式を説明したが、本発明はこれに限定されない。例えば、光学シースルー方式を実現する構成であってもよい。この場合には、少なくともカメラを備えたヘッドマウンドディスプレイで構成され、ユーザはメガネのレンズ部分に相当するディスプレイ部を通して現実空間を視認できるようになっている。このディプレイ部は、現実空間を透過してユーザの目に直接導くことが可能な素材によって構成されている。さらに、このディスプレイ部は液晶表示装置等を備え、この液晶表示装置等にコンピュータにより生成した仮想オブジェクトの画像を表示させ、この液晶表示装置からの光をハーフミラー等で反射させてユーザの網膜に導くことができるようになっている。これにより、ユーザは、現実空間と仮想オブジェクトの画像とが重ね合わせられた像を視認することができる。なお、ヘッドマウンドディスプレイに備えられたカメラは現実空間に配置されたマーカーを検出するために用いられ、この検出結果に基づいて仮想オブジェクトの画像が生成される。また、他の光学シースルー方式として、ハーフミラーを使用せずにディスプレイ部に重ね合わせて透過型液晶表示装置を備える方式があるが、本発明はこの方式を採用してもよい。この場合には、透過型液晶表示装置に仮想オブジェクトの画像を表示することで、ディスプレイ部に透過された現実空間と透過型液晶表示装置に表示された仮想オブジェクトの画像とが重ね合わされてユーザに視認される。
【符号の説明】
【０１３６】
１０  ゲーム装置
１１  下側ハウジング
１２  下側ＬＣＤ
１３  タッチパネル
１４  操作ボタン
１５  アナログスティック
１６  ＬＥＤ
２１  上側ハウジング
２２  上側ＬＣＤ
２３  外側撮像部
２３ａ  外側撮像部（左）
２３ｂ  外側撮像部（右）
２４  内側撮像部
２５  ３Ｄ調整スイッチ
２６  ３Ｄインジケータ
２８  タッチペン
３１  情報処理部
３１１  ＣＰＵ
３１２  ＧＰＵ
３２  メインメモリ
６０  マーカー
Ｏ１  選択オブジェクト
６４Ｌ  左仮想カメラ
６４Ｒ  右仮想カメラ
【図１】
0005814532.tif 000002
【図２】
0005814532.tif 000003
【図３】
0005814532.tif 000004
【図４】
0005814532.tif 000005
【図５Ａ】
0005814532.tif 000006
【図５Ｂ】
0005814532.tif 000007
【図５Ｃ】
0005814532.tif 000008
【図６】
0005814532.tif 000009
【図７】
0005814532.tif 000010
【図８】
0005814532.tif 000011
【図９】
0005814532.tif 000012
【図１０】
0005814532.tif 000013
【図１１】
0005814532.tif 000014
【図１２】
0005814532.tif 000015
【図１３】
0005814532.tif 000016
【図１４】
0005814532.tif 000017