(57)【特許請求の範囲】
【請求項１】
携帯型の情報処理装置のコンピュータによって実行される情報処理プログラムであって、
前記コンピュータを、
平面視表示及び立体視表示のいずれか一方で表示画像を表示装置に表示させる表示制御手段と、
前記情報処理装置の動きを示す動きデータを取得する動き取得手段と、
仮想空間に配置された仮想カメラの位置及び撮像方向の少なくともいずれかを前記動きデータにより示される前記情報処理装置の動きに連動するように設定する仮想カメラ設定手段と、
前記動きデータに基づいて、前記仮想カメラによって撮像された仮想空間の表示画像の前記表示制御手段による表示を、前記平面視表示と前記立体視表示との間で切り替える切替手段と、
前記動きデータの値が所定値未満であるか否かを判定する判定手段として機能させ、
前記切替手段は、
前記判定手段による判定結果が否定である場合、前記表示制御手段による前記表示画像の表示を、前記立体視表示から前記平面視表示に瞬時に切り替え、
前記判定手段による判定結果が肯定である場合、前記表示制御手段による前記表示画像の表示を、前記平面視表示から前記立体視表示へ徐々に変化させることにより切り替える、情報処理プログラム。
【請求項２】
前記表示制御手段は、前記立体視表示をする場合、前記仮想空間に配置された所定の間隔を有する２つの前記仮想カメラを用いてそれぞれ生成された左目用画像と右目用画像とを前記表示画像として表示させ、
前記切替手段は、前記表示制御手段による前記表示画像の表示を前記平面視表示から前記立体視表示へ徐々に変化することにより切り替える場合、２つの前記仮想カメラの間隔を漸増させながらそれぞれ生成した前記左目用画像と前記右目用画像とからなる前記立体視画像を前記表示画像として前記表示装置に表示させる、請求項１に記載の情報処理プログラム。
【請求項３】
前記情報処理装置の存在する空間における所定の基準方向を基準とする所定の方向軸周りの回転角度を、前記動き取得手段によって取得された前記動きデータに基づいて算出する算出手段として前記コンピュータをさらに機能させ、
前記切替手段は、前記回転角度に基づいて、前記表示制御手段による前記表示画像の表示を、前記平面視表示と前記立体視表示との間で切り替える、請求項１に記載の情報処理プログラム。
【請求項４】
前記切替手段は、前記回転角度が大きくなるのに従って、前記表示制御手段による前記表示画像の表示を、前記立体視表示から前記平面視表示へ徐々に変化させることにより切り替える、請求項３に記載の情報処理プログラム。
【請求項５】
前記動きデータの値が所定値未満であるか否かを判定する判定手段として前記コンピュータをさらに機能させ、
前記切替手段は、前記判定手段による判定結果が否定となった場合、前記表示制御手段による前記表示画像の前記回転角度に基づいた表示の切り替えを中断して前記平面視表示で当該表示画像を当該表示制御手段により表示させ、前記判定手段による判定結果が肯定に戻った場合、前記回転角度に基づいた表示の切り替えを再開する、請求項４に記載の情報処理プログラム。
【請求項６】
前記算出手段は、前記表示制御手段による前記表示画像の前記回転角度に基づいた表示の切り替えが再開されるとき、前記基準方向に対応する前記回転角度から算出を再開する、請求項５に記載の情報処理プログラム。
【請求項７】
前記切替手段は、前記回転角度が所定の角度以上となったとき、前記平面視表示となるように前記表示制御手段による前記表示画像の表示を切り替える、請求項３に記載の情報処理プログラム。
【請求項８】
前記仮想空間を移動可能な仮想オブジェクトを配置するオブジェクト配置手段として前記コンピュータをさらに機能させ、
前記表示制御手段は、前記仮想カメラを用いて生成した前記仮想オブジェクトの表示画像を前記表示装置に表示させる、請求項１〜７のいずれか１項に記載の情報処理プログラム。
【請求項９】
前記立体視表示と前記平面視表示との切り替えをユーザから受け付ける受け付け手段として前記コンピュータをさらに機能させ、
前記切替手段は、前記受け付け手段によって前記平面視表示への切り替えが受け付けられたとき、前記平面視表示となるように前記表示制御手段による前記表示画像の表示を切り替える、請求項３〜８のいずれか１項に記載の情報処理プログラム。
【請求項１０】
前記算出手段は、前記情報処理装置の存在する空間における重力方向軸周りの前記回転角度として算出する、請求項３〜９のいずれか１項に記載の情報処理プログラム。
【請求項１１】
前記算出手段は、前記情報処理装置の存在する空間における重力方向軸と水平方向軸とからなる平面の垂線方向軸周りの前記回転角度を算出する、請求項３〜９のいずれか１項に記載の情報処理プログラム。
【請求項１２】
携帯型の情報処理装置であって、
平面視表示及び立体視表示のいずれか一方で表示画像を表示装置に表示させる表示制御手段と、
前記情報処理装置の動きを示す動きデータを取得する動き取得手段と、
仮想空間に配置された仮想カメラの位置及び撮像方向の少なくともいずれかを前記動きデータにより示される前記情報処理装置の動きに連動するように設定する仮想カメラ設定手段と、
前記動きデータに基づいて、前記仮想カメラによって撮像された仮想空間の表示画像の前記表示制御手段による表示を、前記平面視表示と前記立体視表示との間で切り替える切替手段と、
前記動きデータの値が所定値未満であるか否かを判定する判定手段とを備え、
前記切替手段は、
前記判定手段による判定結果が否定である場合、前記表示制御手段による前記表示画像の表示を、前記立体視表示から前記平面視表示に瞬時に切り替え、
前記判定手段による判定結果が肯定である場合、前記表示制御手段による前記表示画像の表示を、前記平面視表示から前記立体視表示へ徐々に変化させることにより切り替える、情報処理装置。
【請求項１３】
携帯型の情報処理装置で用いられる情報処理方法であって、
前記情報処理装置の動きを示す動きデータを取得する動き取得ステップと、
仮想空間に配置された仮想カメラの位置及び撮像方向の少なくともいずれかを前記動きデータにより示される前記情報処理装置の動きに連動するように設定する仮想カメラ設定ステップと、
前記動きデータに基づいて、前記仮想カメラによって撮像された仮想空間の表示画像を平面視表示及び立体視表示のいずれか一方で表示装置に表示させる表示制御手段による表示を、当該平面視表示と当該立体視表示との間で切り替える切替ステップと、
前記動きデータの値が所定値未満であるか否かを判定する判定ステップとを備え、
前記切替ステップでは、
前記判定ステップでの判定結果が否定である場合、前記表示制御手段による前記表示画像の表示を、前記立体視表示から前記平面視表示に瞬時に切り替え、
前記判定手段による判定結果が肯定である場合、前記表示制御手段による前記表示画像の表示を、前記平面視表示から前記立体視表示へ徐々に変化させることにより切り替える、情報処理方法。
【請求項１４】
携帯型の情報処理システムであって、
平面視表示及び立体視表示のいずれか一方で表示画像を表示装置に表示させる表示制御手段と、
前記情報処理装置の動きを示す動きデータを取得する動き取得手段と、
仮想空間に配置された仮想カメラの位置及び撮像方向の少なくともいずれかを前記動きデータにより示される前記情報処理装置の動きに連動するように設定する仮想カメラ設定手段と、
前記動きデータに基づいて、前記仮想カメラによって撮像された仮想空間の表示画像の前記表示制御手段による表示を、前記平面視表示と前記立体視表示との間で切り替える切替手段と、
前記動きデータの値が所定値未満であるか否かを判定する判定手段とを備え、
前記切替手段は、
前記判定手段による判定結果が否定である場合、前記表示制御手段による前記表示画像の表示を、前記立体視表示から前記平面視表示に瞬時に切り替え、
前記判定手段による判定結果が肯定である場合、前記表示制御手段による前記表示画像の表示を、前記平面視表示から前記立体視表示へ徐々に変化させることにより切り替える、情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理プログラム、情報処理方法、情報処理装置、及び情報処理システムに関し、より特定的には、ユーザに与える不快感を低減できる情報処理プログラム、情報処理方法、情報処理装置、及び情報処理システムに関する。
【背景技術】
【０００２】
従来の携帯型のゲーム装置の中には、ジャイロセンサが設けられているものがある（例えば、特許文献１参照）。上記特許文献１に記載された携帯型のゲーム装置では、当該ゲーム装置をユーザが動かしたときの回転角度を、ジャイロセンサを用いて検知する。そして、検知した回転角度に応じて移動させた仮想空間内の仮想カメラを用いて、仮想空間内の仮想オブジェクトなどを撮像した画像を生成する。これにより、上記特許文献１では、携帯型のゲーム装置を動かすことによって仮想カメラの位置を動かして、異なる視点から見た仮想オブジェクトを表示できる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−２９８１６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１に記載されている携帯型のゲーム装置に立体視可能な画像を表示する表示装置を設けた場合には、ユーザに不快感を与えてしまう場合がある。具体的には、立体視可能な画像をユーザが立体視するためには、当該画像を撮像した位置に対応する最適な視点から表示装置の表示面を見なければならない。しかし、上記特許文献１に記載されている携帯型のゲーム機では、異なる視点から見た仮想オブジェクトを表示するために、当該携帯型のゲーム機を動かす必要がある。そして、携帯型のゲーム機を動かすことにより、ユーザの視点と上記最適な視点との間にずれが生じてしまう場合がある。立体視可能な画像は、一般的には、上記最適な視点とは異なる視点から見たときにぶれて見える。つまり、上記特許文献１に記載されている携帯型のゲーム装置で立体視可能な画像を表示すると、表示画像がぶれて見えてしまい、ユーザに不快感を与えてしまう場合がある。
【０００５】
それ故に、本発明は、ユーザに与える不快感を低減できる情報処理プログラム、情報処理方法、情報処理装置及び情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上記の課題を解決するために、以下の構成を採用した。
【０００７】
本発明の情報処理プログラムは、携帯型の情報処理装置のコンピュータによって実行される情報処理プログラムである。上記情報処理プログラムは、上記コンピュータを、表示制御手段と、動き取得手段と、仮想カメラ設定手段と、切替手段として機能させる。上記表示制御手段は、平面視表示及び立体視表示のいずれか一方で表示画像を表示装置に表示させる。上記動き取得手段は、上記情報処理装置の動きを示す動きデータを取得する。上記仮想カメラ設定手段は、仮想空間に配置された仮想カメラの位置及び撮像方向の少なくともいずれかを前記動きデータにより示される上記情報処理装置の動きに連動するように設定する。上記切替手段は、上記動きデータに基づいて、上記仮想カメラによって撮像された仮想空間の表示画像の上記表示制御手段による表示を、上記平面視表示と上記立体視表示との間で切り替える。
【０００８】
上記構成例によれば、立体視表示における最適な視点とユーザの視点とが、情報処理装置が動かされることによって一致しなくなり、ユーザにとって良好な立体視表示ができなくなることによって、ユーザに与えてしまう不快感を低減できる。
【０００９】
他の構成例として、上記情報処理プログラムは、上記コンピュータを判定手段としてさらに機能させてもよい。ここで、上記判定手段は、上記情報処理装置の動きデータの値が所定値未満であるか否かを判定する。この場合、上記切替手段は、上記判定手段による判定結果が否定である場合、上記表示制御手段による上記表示画像の表示を上記平面視表示に切り替えさせ、上記判定手段による判定結果が肯定である場合、上記表示制御手段による上記表示画像の表示を上記立体視表示に切り替える。
【００１０】
上記構成例によれば、立体視表示における最適な視点とユーザの視点とが情報処理装置を激しく動かしてずれてしまったときにユーザに与える不快感を低減できる。
【００１１】
他の構成例として、上記切替手段は、上記表示制御手段による上記表示画像の表示を、上記平面視表示から上記立体視表示へ徐々に変化させることにより切り替えさせてもよい。
【００１２】
上記構成例によれば、平面視表示から立体視表示に瞬時に切り替わり、ユーザによる目の焦点の調節が追いつかなくなることによって生じるユーザの不快感を低減できる。
【００１３】
他の構成例として、上記表示制御手段は、上記立体視表示をするとき、上記仮想空間に配置された所定の間隔を有する２つの上記仮想カメラを用いてそれぞれ生成された左目用画像と右目用画像とを上記表示画像として表示させてもよい。この場合、上記切替手段は、上記表示制御手段による上記表示画像の表示を上記平面視表示から上記立体視表示へ徐々に変化することにより切り替える場合、２つの上記仮想カメラの間隔を漸増させながらそれぞれ生成した上記左目用画像と上記右目用画像とからなる上記立体視画像を上記表示画像として上記表示装置に表示させてもよい。
【００１４】
上記構成例によれば、視差を有する２つの画像を表示することによって立体視表示する表示装置を備える情報処理装置を使用するユーザに与える不快感を低減できる。
【００１５】
他の構成例として、上記情報処理プログラムは、上記コンピュータを算出手段としてさらに機能させてもよい。ここで、上記算出手段は、上記情報処理装置の存在する空間における所定の基準方向を基準とする所定の方向軸周りの回転角度を、上記動き取得手段によって取得された上記動きデータに基づいて算出する。この場合、上記切替手段は、上記回転角度に基づいて、上記表示制御手段による上記表示画像の表示を、上記平面視表示と上記立体視表示との間で切り替えてもよい。
【００１６】
上記構成例によれば、情報処理装置がユーザによって所定の方向軸周りに回転させられることによって、立体視表示における最適な視点とユーザの視点とがずれてしまったときに、ユーザに与える不快感を低減できる。
【００１７】
他の構成例として、上記切替手段は、上記回転角度が大きくなるのに従って、上記表示制御手段による上記表示画像の表示を、上記立体視表示から上記平面視表示へ徐々に変化させることにより切り替えてもよい。
【００１８】
上記構成例によれば、立体視表示における最適な視点とユーザの視点とのずれが大きくなるのに従って平面視表示に近づけて、ユーザに与える不快感を低減できる。
【００１９】
他の構成例として、上記情報処理プログラムは、上記コンピュータを判定手段としてさらに機能させてもよい。ここで、上記判定手段は、上記動きデータの値が所定値未満であるか否かを判定する。この場合、上記切替手段は、上記判定手段による判定結果が否定となった場合、上記表示制御手段による上記表示画像の上記回転角度に基づいた表示の切り替えを中断して上記平面視表示で当該表示画像を当該表示制御手段に表示させ、上記判定手段による判定結果が肯定に戻った場合、上記回転角度に基づいた表示の切り替えを再開してもよい。
【００２０】
上記構成例によれば、立体視表示から平面視表示に徐々に切り替える表示の切り替えと、情報処理装置の動きに応じた表示の切り替えとを両立して、ユーザに与える不快感を低減できる。
【００２１】
他の構成例として、上記算出手段は、上記表示制御手段による上記表示画像の上記回転角度に基づいた上記表示の切り替えが再開されるとき、上記基準方向に対応する上記回転角度から算出を再開してもよい。
【００２２】
上記構成例によれば、情報処理装置を把持する姿勢をユーザが変化させるのに伴って回転角度が変化することによって、誤って平面視表示されるのを防げる。
【００２３】
他の構成例として、上記切替手段は、上記回転角度が所定の角度以上となったとき、上記平面視表示となるように上記表示制御手段による上記表示画像の表示を切り替えてもよい。
【００２４】
上記構成例によれば、情報処理装置がユーザによって所定の方向軸周りに大きく回転させられて、立体視表示における最適な視点とユーザの視点とがずれてしまったときに、ユーザに与える不快感を確実になくせる。
【００２５】
他の構成例として、上記情報処理プログラムは、上記コンピュータをオブジェクト配置手段としてさらに機能させてもよい。ここで、上記オブジェクト配置手段は、上記仮想空間を移動可能な仮想オブジェクトを配置する。この場合、上記表示制御手段は、上記仮想カメラを用いて生成した上記仮想オブジェクトの上記表示画像を上記表示装置に表示させてもよい。
【００２６】
上記構成例によれば、移動する仮想オブジェクトを追うために情報処理装置をユーザが動かすことによって、立体視表示における最適な視点とユーザの視点との間にずれが生じたときも、ユーザに与える不快感を低減できる。
【００２７】
他の構成例として、上記情報処理プログラムは、上記コンピュータを受け付け手段としてさらに機能させてもよい。ここで、上記受け付け手段は、上記立体視表示と上記平面視表示との切り替えをユーザから受け付ける。この場合、上記切替手段は、上記受け付け手段によって上記平面視表示への切り替えが受け付けられたとき、上記平面視表示となるように上記表示制御手段による上記表示画像の表示を切り替えてもよい。
【００２８】
上記構成例によれば、ユーザによる状況判断で平面視表示に切り替えて、ユーザ自身がゲーム装置から与えられる不快感をなくすことができる。
【００２９】
他の構成例として、上記算出手段は、上記情報処理装置の存在する空間における重力方向軸周りの上記回転角度として算出してもよい。  
【００３０】
上記構成例によれば、重力方向軸周りに情報処理装置を動かすことにより、立体視表示における最適な視点とユーザの視点とにずれが生じたときに、ユーザに与える不快感を低減できる。
【００３１】
他の構成例として、上記算出手段は、上記情報処理装置の存在する空間における重力方向軸と水平方向軸とからなる平面の垂線方向軸周りの上記回転角度を算出してもよい。
【００３２】
上記構成例によれば、表示面を見ているユーザのほぼ視線方向の軸周りに情報処理装置を動かすことによって、立体視表示における最適な視点とユーザの視点との間にねじれが生じることによって与えてしまうユーザの不快感を低減できる。
【００３３】
また、本発明は、上記各手段を備える情報処理装置や情報処理システム、上記各手段で行われる動作を含む情報処理方法の形態で実施されてもよい。
【発明の効果】
【００３４】
本発明によれば、ユーザに与える不快感を低減できる情報処理プログラム、情報処理方法、情報処理装置及び情報処理システムを提供できる。
【図面の簡単な説明】
【００３５】
【図１】本発明の実施形態に係るゲーム装置の外部構成の一例を示す図
【図２】本発明の実施形態に係るゲーム装置の内部構成の一例を示す図
【図３】図１に示すゲーム装置の使用例を示す図
【図４】本発明の実施形態における仮想空間の一例を示す図
【図５】本発明の実施形態における仮想カメラの配置を示す図
【図６】本発明の実施形態におけるゲーム装置の表示画面の一例を示す図
【図７】本発明の実施形態におけるゲーム装置の表示画面の一例を示す図
【図８】本発明の第１の実施形態におけるメモリマップの一例を示す図
【図９】本発明の第１の実施形態におけるメモリマップの一例を示す図
【図１０】本発明の第１の実施形態におけるゲーム装置のＣＰＵが情報処理プログラムを実行することによって行われる表示制御処理のフローチャートの一例を示す図
【図１１】本発明の第１の実施形態に係るゲーム装置のＣＰＵが情報処理プログラムを実行することによって行われる表示制御処理のフローチャートの一例を示す図
【図１２】第２の実施形態における仮想カメラ間隔と水平回転角度との関係例を示す図
【図１３】本発明の実施形態におけるゲーム装置の使用例を示す図
【図１４】本発明の実施形態におけるゲーム装置の使用例を示す図
【図１５】本発明の第２の実施形態における水平回転角度と仮想カメラ間隔の関係例を示す図
【図１６】本発明の第２の実施形態におけるメモリマップの一例を示す図
【図１７】本発明の第２の実施形態に係るゲーム装置のＣＰＵが情報処理プログラムを実行することによって行われる表示制御処理のフローチャートの一例を示す図
【図１８】本発明の実施形態におけるゲーム装置の使用例を示す図
【発明を実施するための形態】
【００３６】
（第１の実施形態）
［ゲーム装置の外観構成］
以下、本発明の実施形態の一例（第１の実施形態）に係るゲーム装置について説明する。図１は、ゲーム装置１０の外観を示す平面図である。ゲーム装置１０は携帯型のゲーム装置であり、折り畳み可能に構成されている。図１は、開いた状態（開状態）におけるゲーム装置１０の正面図を示している。ゲーム装置１０は、撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置１０は、交換可能なメモリカード内に記憶され、または、サーバや他のゲーム装置から受信したゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラで撮像した画像などのコンピュータグラフィックス処理により生成された画像を画面に表示したりすることができる。
【００３７】
まず、図１を参照して、ゲーム装置１０の外観構成について説明する。図１に示されるように、ゲーム装置１０は、下側ハウジング１１及び上側ハウジング２１を有する。下側ハウジング１１と上側ハウジング２１とは、開閉可能（折り畳み可能）に接続されている。
【００３８】
（下側ハウジングの説明）
まず、下側ハウジング１１の構成について説明する。図１に示すように、下側ハウジング１１には、下側ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）１２、タッチパネル１３、各操作ボタン１４Ａ〜１４Ｉ、アナログスティック１５、ＬＥＤ１６Ａ〜１６Ｂ、挿入口１７、及び、マイクロフォン用孔１８が設けられる。以下、これらの詳細について説明する。
【００３９】
図１に示すように、下側ＬＣＤ１２は下側ハウジング１１に収納される。下側ＬＣＤ１２の画素数は、例えば、３２０ｄｏｔ×２４０ｄｏｔ（横×縦）であってもよい。下側ＬＣＤ１２は、後述する上側ＬＣＤ２２とは異なり、画像を（立体視可能ではなく）平面的に表示する表示装置である。なお、本実施形態では表示装置としてＬＣＤを用いているが、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側ＬＣＤ１２として、任意の解像度の表示装置を利用することができる。
【００４０】
図１に示されるように、ゲーム装置１０は、入力装置として、タッチパネル１３を備えている。タッチパネル１３は、下側ＬＣＤ１２の画面上に装着されている。なお、本実施形態では、タッチパネル１３は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。本実施形態では、タッチパネル１３として、下側ＬＣＤ１２の解像度と同解像度（検出精度）のものを利用する。ただし、必ずしもタッチパネル１３の解像度と下側ＬＣＤ１２の解像度が一致している必要はない。また、下側ハウジング１１の上側面には挿入口１７（図１に示す点線）が設けられている。挿入口１７は、タッチパネル１３に対する操作を行うために用いられるタッチペン２８を収納することができる。なお、タッチパネル１３に対する入力は通常タッチペン２８を用いて行われるが、タッチペン２８に限らずユーザの指でタッチパネル１３に対する入力をすることも可能である。
【００４１】
各操作ボタン１４Ａ〜１４Ｉは、所定の入力を行うための入力装置である。図１に示されるように、下側ハウジング１１の内側面（主面）には、十字ボタン１４Ａ（方向入力ボタン１４Ａ）、ボタン１４Ｂ、ボタン１４Ｃ、ボタン１４Ｄ、ボタン１４Ｅ、電源ボタン１４Ｆ、セレクトボタン１４Ｇ、ＨＯＭＥボタン１４Ｈ、及びスタートボタン１４Ｉが、設けられる。十字ボタン１４Ａは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン１４Ａ〜１４Ｅ、セレクトボタン１４Ｊ、ＨＯＭＥボタン１４Ｋ、及びスタートボタン１４Ｌには、ゲーム装置１０が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン１４Ａは選択操作等に用いられ、各操作ボタン１４Ｂ〜１４Ｅは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン１４Ｆは、ゲーム装置１０の電源をオン／オフするために用いられる。
【００４２】
アナログスティック１５は、方向を指示するデバイスである。アナログスティック１５は、そのキートップが、下側ハウジング１１の内側面に平行にスライドするように構成されている。アナログスティック１５は、ゲーム装置１０が実行するプログラムに応じて機能する。例えば、３次元仮想空間に所定のオブジェクトが登場するゲームがゲーム装置１０によって実行される場合、アナログスティック１５は、当該所定のオブジェクトを３次元仮想空間内で移動させるための入力装置として機能する。この場合において、所定のオブジェクトはアナログスティック１５のキートップがスライドした方向に移動される。なお、アナログスティック１５として、上下左右及び斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いてもよい。
【００４３】
また、下側ハウジング１１の内側面には、マイクロフォン用孔１８が設けられる。マイクロフォン用孔１８の下部には後述する音声入力装置としてのマイク（図２参照）が設けられ、当該マイクがゲーム装置１０の外部の音を検知する。
【００４４】
また、図示はしていないが、下側ハウジング１１の上側面には、Ｌボタン１４Ｊ及びＲボタン１４Ｋが設けられている。Ｌボタン１４Ｊ及びＲボタン１４Ｋは、例えば、撮像部のシャッターボタン（撮影指示ボタン）として機能することができる。また、図示はしていないが、下側ハウジング１１の左側面には、音量ボタン１４Ｌが設けられる。音量ボタン１４Ｌは、ゲーム装置１０が備えるスピーカの音量を調整するために用いられる。
【００４５】
また、図１に示されるように、下側ハウジング１１の左側面には開閉可能なカバー部１１Ｂが設けられる。このカバー部１１Ｂの内側には、ゲーム装置１０とデータ保存用外部メモリ４５とを電気的に接続するためのコネクタ（図示せず）が設けられる。データ保存用外部メモリ４５は、コネクタに着脱自在に装着される。データ保存用外部メモリ４５は、例えば、ゲーム装置１０によって撮像された画像のデータを記憶（保存）するために用いられる。
【００４６】
また、図１に示されるように、下側ハウジング１１の上側面には、ゲーム装置１０とゲームプログラムを記録した外部メモリ４４を挿入するための挿入口１１Ｃが設けられ、その挿入口１１Ｃの内部には、外部メモリ４４と電気的に着脱自在に接続するためのコネクタ（図示せず）が設けられる。当該外部メモリ４４がゲーム装置１０に接続されることにより、所定のゲームプログラムが実行される。
【００４７】
また、図１に示されるように、下側ハウジング１１の下側面にはゲーム装置１０の電源のＯＮ／ＯＦＦ状況をユーザに通知する第１ＬＥＤ１６Ａが設けられる。さらに、図示はしていないが、下側ハウジング１１の右側面にはゲーム装置１０の無線通信の確立状況をユーザに通知する第２ＬＥＤ１６Ｂが設けられる。ゲーム装置１０は他の機器との間で無線通信を行うことが可能であり、第２ＬＥＤ１６Ｂは、無線通信が確立している場合に点灯する。ゲーム装置１０は、例えば、ＩＥＥＥ８０２．１１ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。下側ハウジング１１の右側面には、この無線通信の機能を有効／無効にする無線スイッチ１９が設けられる（図示せず）。
【００４８】
なお、図示は省略するが、下側ハウジング１１には、ゲーム装置１０の電源となる充電式電池が収納され、下側ハウジング１１の側面（例えば、上側面）に設けられた端子を介して当該電池を充電することができる。
【００４９】
（上側ハウジングの説明）
次に、上側ハウジング２１の構成について説明する。図１に示すように、上側ハウジング２１には、上側ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）２２、外側撮像部２３（外側撮像部（左）２３ａ及び外側撮像部（右）２３ｂ）、内側撮像部２４、３Ｄ調整スイッチ２５、及び、３Ｄインジケータ２６が設けられる。以下、これらの詳細について説明する。
【００５０】
図１に示すように、上側ＬＣＤ２２は上側ハウジング２１に収納される。上側ＬＣＤ２２の画素数は、例えば、８００ｄｏｔ×２４０ｄｏｔ（横×縦）であってもよい。なお、本実施形態では上側ＬＣＤ２２は液晶表示装置であるとしたが、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置などが利用されてもよい。また、上側ＬＣＤ２２として、任意の解像度の表示装置を利用することができる。
【００５１】
上側ＬＣＤ２２は、立体視可能な画像を表示することが可能な表示装置である。また、本実施形態では、実質的に同一の表示領域を用いて左目用画像と右目用画像が表示される。具体的には、左目用画像と右目用画像が所定単位で（例えば、１列ずつ）横方向に交互に表示される方式の表示装置である。または、左目用画像と右目用画像とが時分割で交互に表示される方式の表示装置であってもよい。また、本実施形態では、裸眼立体視可能な表示装置である。そして、横方向に交互に表示される左目用画像と右目用画像とを左目及び右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式（視差バリア方式）のものが用いられる。本実施形態では、上側ＬＣＤ２２はパララックスバリア方式のものとする。上側ＬＣＤ２２は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像（以下、立体視画像と称する）を表示する。すなわち、上側ＬＣＤ２２は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像を視認させることにより、ユーザにとって立体感のある立体視画像を表示することができる。また、上側ＬＣＤ２２は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる（上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである）。このように、上側ＬＣＤ２２は、立体視可能な立体視画像を表示する立体視表示（立体表示モード）と、画像を平面的に表示する（平面視画像を表示する）平面視表示（平面表示モード）とを切り替えることが可能な表示装置である。この表示の切り替えは、ＣＰＵ３１１の処理、又は後述する３Ｄ調整スイッチ２５によって行われる。
【００５２】
外側撮像部２３は、上側ハウジング２１の外側面（上側ＬＣＤ２２が設けられた主面と反対側の背面）２１Ｄに設けられた２つの撮像部（２３ａ及び２３ｂ）の総称である。外側撮像部（左）２３ａと外側撮像部（右）２３ｂの撮像方向は、いずれも当該外側面２１Ｄの外向きの法線方向である。外側撮像部（左）２３ａと外側撮像部（右）２３ｂとは、ゲーム装置１０が実行するプログラムによって、ステレオカメラとして使用することが可能である。外側撮像部（左）２３ａ及び外側撮像部（右）２３ｂは、それぞれ所定の共通の解像度を有する撮像素子（例えば、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等）と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【００５３】
内側撮像部２４は、上側ハウジング２１の内側面（主面）２１Ｂに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部２４は、所定の解像度を有する撮像素子（例えば、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等）と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【００５４】
３Ｄ調整スイッチ２５は、スライドスイッチであり、上述のように上側ＬＣＤ２２の表示モードを切り替えるために用いられるスイッチである。３Ｄ調整スイッチ２５は、上側ＬＣＤ２２に表示された立体視画像の立体感を調整するために用いられる。ただし、後述で明らかとなるように、本実施形態では一例として、３Ｄ調整スイッチ２５に関わらずに、上側ＬＣＤ２２に表示される画像を立体視画像と平面視画像との間で切り替える。
【００５５】
３Ｄインジケータ２６は、上側ＬＣＤ２２が立体表示モードか否かを示す。３Ｄインジケータ２６は、ＬＥＤであり、上側ＬＣＤ２２の立体表示モードが有効の場合に点灯する。なお、３Ｄインジケータ２６は、上側ＬＣＤ２２が立体表示モードになっており、かつ、立体視画像を表示するプログラム処理が実行されているときに限り、点灯するようにしてもよい。図１に示されるように、３Ｄインジケータ２６は、上側ハウジング２１の内側面に設けられ、上側ＬＣＤ２２の画面近傍に設けられる。このため、ユーザが上側ＬＣＤ２２の画面を正視した場合、ユーザは３Ｄインジケータ２６を視認しやすい。従って、ユーザは上側ＬＣＤ２２の画面を視認している状態でも、上側ＬＣＤ２２の表示モードを容易に認識することができる。
【００５６】
また、上側ハウジング２１の内側面には、スピーカ孔２１Ｅが設けられる。後述するスピーカ４３からの音声がこのスピーカ孔２１Ｅから出力される。
【００５７】
［ゲーム装置１０の内部構成］
次に、図２を参照して、ゲーム装置１０の内部の電気的構成について説明する。図２は、ゲーム装置１０の内部構成を示すブロック図である。図２に示すように、ゲーム装置１０は、上述した各部に加えて、情報処理部３１、メインメモリ３２、外部メモリインターフェイス（外部メモリＩ／Ｆ）３３、データ保存用外部メモリＩ／Ｆ３４、データ保存用内部メモリ３５、無線通信モジュール３６、ローカル通信モジュール３７、リアルタイムクロック（ＲＴＣ）３８、加速度センサ３９、電源回路４０、及びインターフェイス回路（Ｉ／Ｆ回路）４１等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング１１（または上側ハウジング２１でもよい）内に収納される。
【００５８】
情報処理部３１は、所定のプログラムを実行するためのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１１、画像処理を行うＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１２等を含む情報処理手段である。情報処理部３１のＣＰＵ３１１は、ゲーム装置１０内のメモリ（例えば外部メモリＩ／Ｆ３３に接続された外部メモリ４４やデータ保存用内部メモリ３５）に記憶されているプログラムを実行することによって、当該プログラムに応じた処理を実行する。なお、情報処理部３１のＣＰＵ３１１によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部３１は、ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）３１３を含む。情報処理部３１のＧＰＵ３１２は、情報処理部３１のＣＰＵ３１１からの命令に応じて画像を生成し、ＶＲＡＭ３１３に描画する。そして、情報処理部３１のＧＰＵ３１２は、ＶＲＡＭ３１３に描画された画像を上側ＬＣＤ２２及び／又は下側ＬＣＤ１２に出力し、上側ＬＣＤ２２及び／又は下側ＬＣＤ１２に当該画像が表示される。
【００５９】
情報処理部３１には、メインメモリ３２、外部メモリＩ／Ｆ３３、データ保存用外部メモリＩ／Ｆ３４、及びデータ保存用内部メモリ３５が接続される。外部メモリＩ／Ｆ３３は、外部メモリ４４を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリＩ／Ｆ３４は、データ保存用外部メモリ４５を着脱自在に接続するためのインターフェイスである。
【００６０】
メインメモリ３２は、情報処理部３１（のＣＰＵ３１１）のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ３２は、上記プログラムに基づく処理に用いられる各種データを一時的に記憶したり、外部（外部メモリ４４や他の機器等）から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ３２として例えばＰＳＲＡＭ（Ｐｓｅｕｄｏ−ＳＲＡＭ）を用いる。
【００６１】
外部メモリ４４は、情報処理部３１によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ４４は、例えば読み取り専用の半導体メモリで構成される。外部メモリ４４が外部メモリＩ／Ｆ３３に接続されると、情報処理部３１は外部メモリ４４に記憶されたプログラムを読み込むことができる。情報処理部３１が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ４５は、不揮発性の読み書き可能なメモリ（例えばＮＡＮＤ型フラッシュメモリ）で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ４５には、外側撮像部２３で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ４５がデータ保存用外部メモリＩ／Ｆ３４に接続されると、情報処理部３１はデータ保存用外部メモリ４５に記憶された画像を読み込み、上側ＬＣＤ２２及び／又は下側ＬＣＤ１２に当該画像を表示することができる。
【００６２】
データ保存用内部メモリ３５は、読み書き可能な不揮発性メモリ（例えばＮＡＮＤ型フラッシュメモリ）で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ３５には、無線通信モジュール３６を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【００６３】
無線通信モジュール３６は、例えばＩＥＥＥ８０２．１１ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。また、ローカル通信モジュール３７は、所定の通信方式（例えば独自プロトコルによる通信や、赤外線通信）により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール３６及びローカル通信モジュール３７は情報処理部３１に接続される。情報処理部３１は、無線通信モジュール３６を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール３７を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【００６４】
また、情報処理部３１には、ＲＴＣ３８及び電源回路４０が接続される。ＲＴＣ３８は、時間をカウントして情報処理部３１に出力する。情報処理部３１は、ＲＴＣ３８によって計時された時間に基づき現在時刻（日付）を計算する。
【００６５】
また、情報処理部３１には、加速度センサ３９が接続される。加速度センサ３９は、３軸（ｘｙｚ軸）方向に沿った直線方向の加速度（直線加速度）の大きさを検知する。加速度センサ３９は、下側ハウジング１１の内部に設けられる。加速度センサ３９は、図１に示すように、下側ハウジング１１の長辺方向をｘ軸、下側ハウジング１１の短辺方向をｙ軸、下側ハウジング１１の内側面（主面）に対して垂直な方向をｚ軸として、各軸の直線加速度の大きさを検知する。なお、加速度センサ３９は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ３９は１軸又は２軸方向を検知する加速度センサであってもよい。情報処理部３１は、加速度センサ３９が検知した加速度を示すデータ（加速度データ）を受信して、ゲーム装置１０の姿勢や動きを検知することができる。
【００６６】
情報処理部３１には、角速度センサ４０が接続される。角速度センサ４０は、ゲーム装置１０の３軸（本実施形態では、ｘｙｚ軸）周りに生じる角速度をそれぞれ検知し、検知した角速度を示すデータ（角速度データ）を情報処理部３１へ出力する。角速度センサ４０は、例えば下側ハウジング１１の内部に設けられる。情報処理部３１は、角速度センサ４０から出力された角速度データを受信して、ゲーム装置１０の姿勢や動きを算出する。
【００６７】
電源回路４１は、ゲーム装置１０が有する電源（下側ハウジング１１に収納される上記充電式電池）からの電力を制御し、ゲーム装置１０の各部品に電力を供給する。
【００６８】
また、情報処理部３１には、Ｉ／Ｆ回路４２が接続される。Ｉ／Ｆ回路４２には、マイク４３、及びスピーカ４４が接続される。具体的には、Ｉ／Ｆ回路４２には、図示しないアンプを介してスピーカ４４が接続される。マイク４３は、ユーザの音声を検知して音声信号をＩ／Ｆ回路４２に出力する。アンプは、Ｉ／Ｆ回路４２からの音声信号を増幅し、音声をスピーカ４４から出力させる。また、Ｉ／Ｆ回路４２には上述したタッチパネル１３も接続される。Ｉ／Ｆ回路４２は、マイク４３及びスピーカ４４（アンプ）の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するＡ／Ｄ変換及びＤ／Ａ変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル１３からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部３１に出力する。タッチ位置データは、タッチパネル１３の入力面において入力が行われた位置の座標を示す。
【００６９】
操作ボタン１４は、上記各操作ボタン１４Ａ〜１４Ｌからなり、情報処理部３１に接続される。操作ボタン１４から情報処理部３１へは、各操作ボタン１４Ａ〜１４Ｉに対する入力状況（押下されたか否か）を示す操作データが出力される。情報処理部３１は、操作ボタン１４から操作データを取得することによって、上記各操作ボタン１４Ａ〜１４Ｌに対する入力に従った処理を実行する。なお、ＣＰＵ３１１は、操作ボタン１４からの操作データの取得を所定時間に１回の割合で行う。
【００７０】
下側ＬＣＤ１２及び上側ＬＣＤ２２は情報処理部３１に接続される。下側ＬＣＤ１２及び上側ＬＣＤ２２は、情報処理部３１（のＧＰＵ３１２）の指示に従って画像を表示する。本実施形態では、情報処理部３１は、上側ＬＣＤ２２に立体視画像（立体視可能な画像）を表示させる。
【００７１】
具体的には、情報処理部３１は、上側ＬＣＤ２２のＬＣＤコントローラ（図示せず）と接続され、当該ＬＣＤコントローラに対して視差バリアのＯＮ／ＯＦＦを制御する。上側ＬＣＤ２２の視差バリアがＯＮになっている場合、情報処理部３１のＶＲＡＭ３１３に記憶された右目用画像と左目用画像とが、上側ＬＣＤ２２に出力される。より具体的には、ＬＣＤコントローラは、右目用画像について縦方向に１ライン分の画素データを読み出す処理と、左目用画像について縦方向に１ライン分の画素データを読み出す処理とを交互に繰り返すことによって、ＶＲＡＭ３１３から右目用画像と左目用画像とを読み出す。これにより、右目用画像及び左目用画像が、画素を縦に１ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側ＬＣＤ２２の画面に表示される。そして、上側ＬＣＤ２２の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。本実施形態では、視差バリアは常にＯＮになっているものとする。以上により、上側ＬＣＤ２２の画面には立体視可能な画像が表示される。
【００７２】
外側撮像部２３及び内側撮像部２４は、情報処理部３１に接続される。外側撮像部２３及び内側撮像部２４は、情報処理部３１の指示に従って画像を撮像し、撮像した画像データを情報処理部３１に出力する。
【００７３】
３Ｄ調整スイッチ２５は、情報処理部３１に接続される。３Ｄ調整スイッチ２５は、スライダ２５ａの位置に応じた電気信号を情報処理部３１に送信する。
【００７４】
また、３Ｄインジケータ２６は、情報処理部３１に接続される。情報処理部３１は、３Ｄインジケータ２６の点灯を制御する。例えば、情報処理部３１は、上側ＬＣＤ２２が立体表示モードである場合、３Ｄインジケータ２６を点灯させる。以上がゲーム装置１０の内部構成の説明である。
【００７５】
［情報処理の概要］
次に、第１の実施形態における情報処理の概要について、図３〜図７を参照しながら説明する。第１の実施形態では、情報処理の一例としてゲーム処理がゲーム装置１０によって行われるものとする。図３は、図１に示すゲーム装置１０の使用例を示す図である。図３には、外側撮像部２３で撮像した現実空間の画像と仮想空間の画像との合成画像が上側ＬＣＤ２２に表示されている。
【００７６】
本実施形態では、仮想空間に出現し、移動する敵オブジェクトＥｏを破壊するゲーム処理をゲーム装置１０に行わせる。本実施形態のゲーム処理では、移動する敵オブジェクトＥｏを照準で狙って弾オブジェクトを打ち当てることにより、当該敵オブジェクトＥｏを破壊することができる。本実施形態のゲーム処理は、ゲーム装置１０において所定のゲームプログラムが実行されることによって行われる。
【００７７】
まず、ゲーム装置１０においてゲーム処理が行われる際には、仮想空間内に仮想カメラを配置する処理が行われる。より詳細には、上側ＬＣＤ２２に表示される画像は、図４に一例として示すように、仮想空間内に配置された仮想カメラを用いて撮像された画像として表示される。仮想カメラは、仮想空間における原点Ｏを中心として、ゲーム装置１０の現実空間における動きに連動するように位置、及び撮像方向が設定され、配置される。なお、仮想カメラは、ゲーム装置１０の現実空間における動き方によっては、その位置のみが変化する場合や撮像方向のみが変化する場合もある。本実施形態では、ゲーム装置１０の現実空間における動きを、角速度センサ４０を用いて検知する。従って、本実施形態におけるゲーム装置１０の動きは、図１に示すゲーム装置１０のｘｙｚ軸のそれぞれの軸周りの角速度として検知される。そして、仮想カメラの撮像方向が設定されるときには、角速度センサ４０を用いて検知されたそれぞれの軸周りの角速度に基づいてそれぞれ算出された角度に対応するように、仮想カメラの仮想空間におけるｘｙｚ軸周りの回転角度がそれぞれ設定される。
【００７８】
なお、本実施形態では、角速度センサ４０によって検知された各軸周りの角速度に基づいて算出される各軸周りの角度の単位と、仮想空間における各軸周りの角度の単位とが一致するように予め定められているものとする。従って、本実施形態では、角速度センサ４０によって検知された各軸周りの角速度に基づいて算出される各軸周りの回転角度を、仮想カメラの撮像方向を設定するときの回転角度としてそのまま用いることができる。また、後述で明らかとなるが、本実施形態では、ゲーム装置１０の電源が投入され、初期設定処理が行われたときに、仮想カメラの撮像方向が所定の初期方向を向くように設定される。仮想カメラの撮像方向が初期方向を向くように設定する場合には、仮想空間における仮想カメラのｘｙｚ軸の各軸周りの回転角度がそれぞれゼロに初期化される。本実施形態では、仮想カメラの初期方向が、図５に一例として示すように、ｚ軸の正方向であるものとする。
【００７９】
また、上記ゲーム処理が行われる際には、敵オブジェクトＥｏを出現させたり、移動させたりする処理も敵オブジェクト処理として行われる。ここで、本実施形態の敵オブジェクトＥｏについて説明する。本実施形態では、図３に一例として示すように、人の顔を示す画像が敵オブジェクトＥｏに用いられる。敵オブジェクトＥｏに用いる人の顔の画像としては、外側撮像部２３を用いて撮像し、収集した人の顔の画像を用いることができる。顔の画像の収集は、例えば、撮像した顔の画像を用いたゲームを実行し、実行したゲームの結果が成功である場合に、データ保存用内部メモリ３３などの不揮発性メモリに記憶して収集するようにしてもよい。また、顔の画像は、無線通信モジュール３６又はローカル通信モジュール３７を介してダウンロードするなど、任意の手法で取得及び収集した顔の画像を用いてもよい。
【００８０】
本実施形態における敵オブジェクトＥｏは、ユーザによって決定される。敵オブジェクトＥｏが決定されるときには、まず、上述したように収集した顔の画像の中から、ユーザによって任意の画像が選択される。ユーザによって選択された顔の画像は、所定のオブジェクトにテクスチャマッピングするための画像として用いられる。また、顔の画像がテクスチャマッピングされたオブジェクトには、所定の形状を有する被り物オブジェクトが被せられる。被り物オブジェクトは、例えば、ボスキャラクタや通常キャラクタなどの格付けに応じて予め定められた形状のオブジェクトの中から、ユーザによって選択される。このようにユーザによって選択された顔の画像をテクスチャマッピングしたオブジェクトに、被り物オブジェクトを被せることによって、敵オブジェクトＥｏが決定される。敵オブジェクトＥｏは、１種類以上が決定されるものとする。なお、本実施形態では、上述したように顔の画像を収集するための処理や敵オブジェクトＥｏを決定するための処理は、上記ゲーム処理とは別に行われるものとし、詳細な説明は省略する。
【００８１】
上記敵オブジェクト処理は、このように決定された１種類以上の敵オブジェクトＥｏを、所定のアルゴリズム（以下、敵制御アルゴリズムと称する）に従って仮想空間内に出現させたり、当該仮想空間を移動させたりする処理として行われる。より詳細には、本実施形態では、図４に一例として示すように、仮想空間の原点Ｏを中心とする球体のスクリーンオブジェクトが当該仮想空間に配置される。敵オブジェクト処理では、スクリーンオブジェクト内及びスクリーンオブジェクト外やこれらの境界上に、敵制御アルゴリズムに従って敵オブジェクトＥｏを出現させる処理が行われる。さらに、敵オブジェクト処理では、スクリーンオブジェクト内及びスクリーンオブジェクト外やこれらの境界上を移動するように敵オブジェクトＥｏの位置、及び姿勢を敵制御アルゴリズムに従って設定する処理が行われる。
【００８２】
また、上記ゲーム処理が行われる際には、敵オブジェクトＥｏを破壊するための弾を示す弾オブジェクトを所定のアルゴリズム（以下、弾制御アルゴリズムと称する）に従って発射させたり移動させたりするための処理も弾オブジェクト処理として行われる。弾オブジェクト処理では、操作ボタン１４から出力される操作データに基づいて弾を発射する操作が行われたと判断したときに弾オブジェクトを仮想空間内の所定の出現位置に出現させる処理が行われる。また、弾オブジェクト処理では、既に発射された弾オブジェクトを所定の速度で所定の方向に移動させたりする処理も行われる。また、弾オブジェクト処理では、弾オブジェクトがいずれかの敵オブジェクトＥｏに命中したと判断したときに、当該敵オブジェクトＥｏが破壊され、消滅するように表示する処理なども行われる。
【００８３】
また、上記ゲーム処理が行われる際には、上記スクリーンオブジェクトに外側撮像画像Ｏｇをテクスチャマッピングするための処理も行われる。本実施形態では、外側左撮像部２３ａによって撮像された画像を外側撮像画像Ｏｇとして用いるものとする。外側左撮像部２３ａによって外側撮像画像Ｏｇが撮像されると、上述したように設定された仮想カメラの撮像方向に基づいて、撮像範囲に含まれるスクリーンオブジェクトの内面の領域Ｎｒ（図４参照）が判断される。撮像範囲に含まれるスクリーンオブジェクトの領域Ｎｒが判断されると、当該領域Ｎｒに外側撮像画像Ｏｇがテクスチャマッピングされる。
【００８４】
本実施形態では、仮想カメラを配置する処理、及び撮像範囲内のスクリーンオブジェクトに外側撮像画像Ｏｇをテクスチャマッピングする処理が所定の処理単位時間毎にリアルタイムに繰り返される。また、外側撮像画像Ｏｇがテクスチャマッピングされたスクリーンオブジェクトを含む仮想空間に敵オブジェクトＥｏ、及び弾オブジェクトを必要に応じて上述したようにそれぞれ出現、及び移動させる処理も上記処理単位時間毎にリアルタイムに繰り返される。従って、上側ＬＣＤ２２には、まるで、外側撮像画像Ｏｇによって示される現実空間に敵オブジェクトＥｏが出現し、移動しているように見える仮想空間が表示される。
【００８５】
また、仮想カメラの配置は、上述したようにゲーム装置１０の現実空間における動きに連動するように上記処理単位毎にリアルタイムに設定される。そして、上側ＬＣＤ２２の中央には、図３に一例として示すように、照準画像Ｓｇが重畳して表示される。従って、上記ゲーム処理によれば、現実空間に存在しているように表示されている敵オブジェクトＥｏに照準を合わせるようにゲーム装置１０を動かして、所定の操作ボタンを押下して弾を発射し、破壊するゲームをユーザに提供できる。
【００８６】
次に、上側ＬＣＤ２２に表示される画像についてより詳細に説明する。本実施形態では、後述するようにゲーム装置１０を大きく動かさない限り、上側ＬＣＤ２２には上述した立体視画像が表示される。本実施形態における立体視画像は、上述したように仮想空間内に配置され、撮像方向が設定される仮想カメラを２つ用いて生成されるものとする。仮想空間内に配置される２つの仮想カメラは、それぞれ上述した左目用画像、及び右目用画像を生成するために用いられる。仮想空間内に配置される２つの仮想カメラの一方が左目用画像を生成するための左仮想カメラとして配置され、他方が右目用画像を生成するための右仮想カメラとして配置される。
【００８７】
図５は、本実施形態において仮想空間内に配置される仮想カメラの一例を示す図である。本実施形態では、図５に一例として示すように、左仮想カメラＨｋ、及び右仮想カメラＭｋのそれぞれが、仮想空間の原点Ｏからｘ軸の正方向及び負方向に向かって間隔Ｋｋ（以下、仮想カメラ間隔Ｋｋと称する）の位置に移動させられ、配置される。従って、左仮想カメラＨｋ、及び右仮想カメラＭｋの間隔は、仮想カメラ間隔Ｋｋの２倍の間隔となる。また、左仮想カメラＨｋ、及び右仮想カメラＭｋの撮像方向は互いに平行である。このように、互いの間隔が２Ｋｋで撮像方向が互いに平行な位置関係の左仮想カメラＨｋ、及び右仮想カメラＭｋが、上述したようにゲーム装置１０の動きと連動するように、仮想空間の原点Ｏを中心として回転させられて配置される。そして、左仮想カメラＨｋで仮想空間を撮像した画像として左目用画像が生成され、右仮想カメラＭｋで仮想空間を撮像した画像として右目用画像が生成される。左仮想カメラＨｋ、及び右仮想カメラＭｋの間隔は２Ｋｋであるので、左目用画像、及び右目用画像は、当該間隔に対応する視差を有する画像として生成される。従って、左目用画像、及び右目用画像は互いに視差を有する立体視画像として、上側ＬＣＤ２２に表示される。
【００８８】
図６は、仮想空間を示す立体視画像を表示している上側ＬＣＤ２２の一例を示している。立体視画像は、仮想空間における仮想カメラの視点に対応する現実空間における最適な視点から見たときに、立体感があり、ぼやけることのない画像としてユーザに視認される。具体的には、仮想空間における右仮想カメラＭｋの視点に対する現実空間におけるユーザの右目の視点と、仮想空間における左仮想カメラＭｋの視点に対する現実空間におけるユーザの左目の視点とがそれぞれ対応するように、両目の視点に対してゲーム装置１０をユーザが位置させたときに、立体感があり、ぼやけることのない画像として立体視画像が視認される。図６は、最適な視点から見たときの上側ＬＣＤ２２の一例を示す図である。
【００８９】
これに対して、立体視画像を表示している上側ＬＣＤ２２を前述の最適な視点以外の視点から見ると、左目用画像と右目用画像とが視差を有する異なる画像であるため、図７に一例として示すように、二重のぼやけた画像としてユーザに視認される。図７は、ユーザの視点が最適な視点となるように位置させたゲーム装置１０を、図１に示すｙ軸を中心として反時計回りに所定量だけ回転させたときの上側ＬＣＤ２２を示している。図７に一例として示すように、ユーザの視点が最適な視点からずれると、立体感がなく平面的でぼやけた画像として立体視画像がユーザに視認され、ユーザに不快感を与えてしまう。特に、上記ゲーム処理では、現実空間内を移動するように表示される敵オブジェクトＥｏに照準画像Ｓｇを一致させるようにゲーム装置１０をユーザが反射的に大きく動かす場合が多い。従って、このようなゲーム処理をゲーム装置１０で行う場合には、前述の最適な視点とユーザの視点との間にずれが生じやすく、ユーザに不快感を与える可能性が相対的に高くなる。
【００９０】
そこで、本実施形態では、ゲーム装置１０が大きく動かされたときには、ユーザの視点が前述の最適な視点からずれたと判断し、上側ＬＣＤ２２に表示される画像を立体視画像から、上述した平面視画像へと切り替える。より詳細には、ゲーム装置１０が大きく動かされたときには、動きの大きさに応じた仮想カメラ間隔Ｋｋを算出して設定する。本実施形態において、ゲーム装置１０の動きの大きさに応じて仮想カメラ間隔Ｋｋが算出されるときに、この仮想カメラ間隔Ｋｋは、後述する上限値Ｊｔより小さくなるように算出される。仮想カメラ間隔Ｋｋが上限値Ｊｔより小さくなるように算出され、設定されると、左目用画像と右目用画像との視差が小さくなる。従って、左目用画像と右目用画像との差が小さくなり、前述の最適な視点とユーザの視点との間にずれが生じているときのユーザに与える不快感が低減される。特に、ゲーム装置１０の動きの大きさに応じて算出された仮想カメラ間隔Ｋｋがゼロである場合には、左目用画像と右目用画像とが同一の画像となり、上述したようにユーザに与える不快感がなくなる。
【００９１】
具体的には、上記ゲーム処理を行う際に、角速度センサ４０によって検知されるｘｙｚ軸（図１参照）周りのそれぞれの角速度のうちいずれかの角速度が所定の角速度しきい値以上であるか否かを判断する。そして、ｘｙｚ軸周りの角速度のうちいずれかの角速度が角速度しきい値以上となった場合に、ゲーム装置１０が大きく動かされたと判断して、当該角速度しきい値以上となった角速度に応じた仮想カメラ間隔Ｋｋが算出される。本実施形態では、立体視画像から平面視画像に切り替えるときの角速度と仮想カメラ間隔Ｋｋとの関係を予め定めておくものとする。また、立体視画像から平面視画像に切り替えるときの角速度と仮想カメラ間隔Ｋｋとの本実施形態における関係は、角速度の大きさに応じた狭さで仮想カメラ間隔Ｋｋが算出されるのであればどのような関係を用いてもよい。角速度と仮想カメラ間隔Ｋｋとの関係の一例としては、角速度しきい値と等しい角速度で上限値Ｊｔの仮想カメラ間隔Ｋｋが算出され、当該角速度よりも所定量だけ大きい角速度でゼロの仮想カメラ間隔Ｋｋが算出されるように、角速度と仮想カメラ間隔Ｋｋとを正比例させる関係を用いてもよい。
【００９２】
図５から明らかなように、より狭い仮想カメラ間隔Ｋｋが算出されると、左仮想カメラＨｋ、及び右仮想カメラＭｋの視点が近くなる。このため、左目用画像と右目用画像とは互いの視差がより小さい画像として生成され、互いの画像の差がより小さくなり、立体視画像ではない平面視画像として上側ＬＣＤ２２に表示される。
【００９３】
また、本実施形態では、上側ＬＣＤ２２に表示される画像を立体視画像から平面視画像に切り替えた後、ユーザの視点が前述の最適な視点に戻ったと判断したときに、平面視画像を立体視画像に再び切り替える。これにより、ユーザの視点が最適な視点に戻ったときには、立体感のある立体視画像をユーザに再び表示できる。
【００９４】
具体的には、上記ゲーム処理を行う際に、角速度センサ４０によって検知されるそれぞれの角速度が全て前述の角速度しきい値未満となったときに、ユーザの視点が前述の最適な視点に戻ったと判断する。角速度センサ４０によって検知されるそれぞれの角速度が全て角速度しきい値未満となったときには、ユーザの視点が最適な視点で固定され、ゲーム装置１０をユーザ自身に対して静止させていると考えられるからである。
【００９５】
本実施形態では、平面視画像から立体視画像に切り替えるときには、瞬時に切り替えることなく、緩やかに切り替える。具体的には、ユーザの視点が最適な視点に戻ったと判断したときを開始タイミングとして、以下の数式に従って、左仮想カメラＨｋ、及び右仮想カメラＭｋのそれぞれの仮想カメラ間隔Ｋｋを変化させる。
【００９６】
Ｋｋ＝（−０．５×ｔ3）＋（１．５×ｔ）×Ｊｔ …（１）
【００９７】
ここで、上記数式（１）におけるｔは、上記開始タイミングからの経過時間（以下、切り替え時間ｔと称する）である。また、上記数式（１）におけるＪｔは、仮想カメラ間隔Ｋｋの所定の上限値である。上記数式（１）から明らかなように、本実施形態では、切り替え時間ｔが所定の上限時間となったときに、上限値Ｊｔの仮想カメラ間隔Ｋｋが算出される。仮想カメラ間隔Ｋｋの上限値Ｊｔは、ユーザの視点が最適な視点に位置しているときに最も高い立体感で立体視画像を視認できる間隔となるように予め定められているものとする。また、本実施形態では、切り替え時間ｔの上限時間を１秒として予め定めておくものとする。
【００９８】
ここで、本実施形態では、立体視画像から平面視画像に切り替えるときに、上述したように角速度に応じた仮想カメラ間隔Ｋｋが算出され、設定される。そして、本実施形態では、角速度に応じて算出された仮想カメラ間隔Ｋｋがどのような値であったとしても、切り替え時間ｔが上限時間となったときには、仮想カメラ間隔Ｋｋが上限値Ｊｔとなるように、当該切り替え時間ｔの初期値が切り替え開始時間Ｓｔとして設定される。具体的には、上記数式（１）に代入したときに、立体視画像から平面視画像に切り替えるときに算出された仮想カメラ間隔Ｋｋが算出されるような切り替え時間ｔが、切り替え開始時間Ｓｔとして決定され、設定される。
【００９９】
平面視画像から立体視画像への切り替えを開始するときには、切り替え開始時間Ｓｔが決定し、当該切り替え開始時間Ｓｔから上限時間まで切り替え時間ｔの計時を開始する。切り替え時間ｔが上限時間になるまでに、上記数式（１）に従って、仮想カメラ間隔Ｋｋを上限値Ｊｔまで逐次算出して設定すれば、平面視画像から立体視画像へ緩やかに切り替えることができる。そして、平面視画像から立体視画像へ瞬時に切り替えることによって、ユーザの目の焦点の調節が遅れることに起因して、立体視画像をぼやけることのない立体感のある画像として視認できなくなることを防げる。上記ゲーム処理のように、敵オブジェクトＥｏが現実空間を移動しているかのように上側ＬＣＤ２２に表示される場合には、移動しているオブジェクトを視認できなくなることを防げる。
【０１００】
［メインメモリに記憶されるデータ］
次に、ゲーム装置１０のＣＰＵ３１１の具体的な動作について説明する前に、当該ＣＰＵ３１１がゲームプログラムを実行することに応じて、メインメモリ３２及びＶＲＡＭ３１３に記憶されるデータについて図８、及び図９を参照しながら説明する。
【０１０１】
図８に一例として示すように、メインメモリ３２には、操作データ５０１、外側撮像画像データ５０２、角速度データ５０３、撮像方向データ５０４、仮想カメラ間隔データ５０５、停止フラグデータ５０６、オブジェクトデータ５０７、計時フラグデータ５０８、切り替え時間データ５０９、間隔曲線データ５１０、切り替え開始時間データ５１１、仮想カメラ間隔決定データ５１２、及び各種プログラム６０１が記憶される。
【０１０２】
操作データ５０１は、上述したように、所定時間に１回の割合（例えば、上記処理単位時間毎に１回）でＣＰＵ３１１が操作ボタン１４から取得して記憶されるデータである。
【０１０３】
外側撮像画像データ５０２は、上記処理単位時間毎に外側撮像部２３ａによって撮像された外側撮像画像Ｏｇを示すデータである。
【０１０４】
角速度データ５０３は、上記処理単位時間毎に角速度センサ４０から取得されるｘｙｚ軸のそれぞれの軸周りの回転角速度を示すデータである。角速度データ５０３は、上記処理単位時間毎に角速度センサ４０から取得され、メインメモリ３２に記憶される。なお、本実施形態に係る角速度センサ４０は、ｘｙｚ軸の各軸を中心として、時計回りを正とし、反時計回りを負としてそれぞれの角速度を検知するものとする。従って、角速度データ５０３によって示される各軸周りの角速度の回転方向は、それぞれ正負の符号で示されることとなる。
【０１０５】
撮像方向データ５０４は、角速度データ５０３によって示されるそれぞれの角速度に基づいてＣＰＵ３１１が算出した仮想カメラの撮像方向をそれぞれ示すデータである。具体的には、撮像方向データ５０４によって示されるのは、左仮想カメラＨｋ、及び右仮想カメラＭｋのそれぞれの仮想空間における原点Ｏを中心とする仮想空間のｘｙｚ軸の各軸周りの回転角度である。撮像方向データ５０４によって示されるそれぞれの回転角度は、後述する初期設定処理でそれぞれゼロに設定され、左仮想カメラＨｋ、及び右仮想カメラＭｋが上述した初期方向を向くように設定される。そして、撮像方向データ５０４によって示されるそれぞれの回転角度には、角速度データ５０３によって示される各軸周りの角速度が、ゲーム装置１０に電源が投入されてから、上記処理単位時間毎にＣＰＵ３１１によって加算される。角速度センサ４０によって検知されるそれぞれの角速度は、上述の説明から明らかなように、時計方向周りの角速度に正の符号が付され、反時計方向周りの角速度に負の符号が付される。従って、撮像方向データ５０４によって示されるそれぞれの回転角度は、ゲーム装置１０に電源を投入したときをゼロとし、それぞれリアルタイムに算出される当該ゲーム装置１０の各軸周りの回転角度となる。そして、左仮想カメラＨｋ、及び右仮想カメラＭｋが、撮像方向データ５０４に基づいて配置されるときには、それぞれ仮想空間の原点Ｏを中心として、当該撮像方向データ５０４によって示されるそれぞれの回転角度だけ、当該仮想空間のｘｙｚ軸の各軸周りに回転させられる。これにより、上述したゲーム装置１０の動きに連動するように左仮想カメラＨｋ、及び右仮想カメラＭｋの撮像方向を算出して設定できる。
【０１０６】
仮想カメラ間隔データ５０５は、左仮想カメラＨｋ、及び右仮想カメラＭｋのそれぞれの仮想カメラ間隔Ｋｋを示すデータである。
【０１０７】
停止フラグデータ５０６は、ユーザの視点が前述の最適な視点であるか否かをＣＰＵ３１１が判断した結果を示すデータである。停止フラグデータ５０６は、ユーザの視点が前述の最適な視点であることをオンで示し、ユーザの視点が当該最適な視点でないことをオフで示すフラグのデータである。
【０１０８】
オブジェクトデータ５０７は、上述した敵オブジェクトＥｏ、及び弾オブジェクトに関するデータである。より詳細には、オブジェクトデータ５０７は、上述したようにユーザによって決定された１種類以上の敵オブジェクトＥｏの形状、位置、及び姿勢をそれぞれ対応付けて示すデータである。また、オブジェクトデータ５０７は、上述した弾オブジェクトの形状、位置、及び姿勢もそれぞれ対応付けて示す。
【０１０９】
なお、オブジェクトデータ５０７によって示される敵オブジェクトＥｏの形状、位置、及び姿勢を対応させて示すデータは、上述したようにゲーム処理とは別に行われる敵オブジェクトＥｏを決定するための処理をＣＰＵ３１１に行わせるためのプログラムが実行されたことに応じて、当該ゲーム処理が行われる前にメインメモリ３２に記憶されるものとする。このとき、敵オブジェクトＥｏの位置、及び姿勢は、ゼロに初期化されるものとする。オブジェクトデータ５０７によって示される敵オブジェクトＥｏの姿勢は、仮想空間におけるｘｙｚ軸のそれぞれの軸周りの回転角度で示されるものとする。また、オブジェクトデータ５０７によって示される弾オブジェクトの形状は、所定の形状である。そして、オブジェクトデータ５０７によって示される弾オブジェクトの形状は、後述するようにゲームプログラムが読み出されるときに、共に読み出されてメインメモリ３２に記憶される。このとき、弾オブジェクトの位置、及び姿勢はゼロに初期化され、読み出された形状に対応させられるものとする。オブジェクトデータ５０７によって示される弾オブジェクトの姿勢は、仮想空間におけるｘｙｚ軸のそれぞれの軸周りの回転角度で示されるものとする。また、弾オブジェクトは、ユーザの発射操作に応じて、同一の形状の弾オブジェクトが、仮想空間内に複数存在する場合がある。この場合、仮想空間内に存在する数だけ、弾オブジェクトの所定の形状が複製され、複製されたそれぞれの形状に、位置、及び姿勢をそれぞれ対応させるデータとして、オブジェクトデータ５０７が更新される。
【０１１０】
計時フラグデータ５０８は、上述した切り替え時間ｔを計時しているか否かを示すデータである。計時フラグデータ５０８は、切り替え時間ｔを計時していることをオンで示し、切り替え時間ｔを計時していないことをオフで示すフラグのデータである。
【０１１１】
切り替え時間データ５０９は、上記切り替え時間ｔを示すデータである。
【０１１２】
間隔曲線データ５１０は、上述したように平面視画像から立体視画像に切り替えるときに、左仮想カメラＨｋ、及び右仮想カメラＭｋのそれぞれの仮想カメラ間隔Ｋｋを切り替え時間ｔと対応付けて示すデータである。具体的には、本実施形態では、上記数式（１）を示すデータが、間隔曲線データ５１０となる。間隔曲線データ５１０は、後述するようにゲームプログラムがデータ保存用内部メモリ３５から読み出されるときに、共に読み出されるデータである。
【０１１３】
切り替え開始時間データ５１１は、上述したように決定された切り替え開始時間Ｓｔを示すデータである。
【０１１４】
仮想カメラ間隔決定データ５１２は、立体視画像から平面視画像に切り替えるときの角速度と仮想カメラ間隔Ｋｋとの上述した関係を示すデータである。仮想カメラ間隔決定データ５１２は、後述するようにゲームプログラムがデータ保存用内部メモリ３５から読み出されるときに、共に読み出されるデータである。
【０１１５】
各種プログラム６０１は、ＣＰＵ３１１によって実行される種々のプログラムである。例えば、上述で説明したゲームプログラム等が各種プログラム６０１としてメインメモリ３２に記憶される。また、上述した敵制御アルゴリズムや弾制御アルゴリズムなどもメインメモリ３２に記憶されるゲームプログラムに含まれる。
【０１１６】
［ＶＲＡＭに記憶されるデータ］
次に、ＶＲＡＭ３１３に記憶されるデータについて説明する。図９は、ＶＲＡＭ３１３に記憶されるデータの一例を示す図である。ＶＲＡＭ３１３には、左目用画像データ７０１、及び右目用画像データ７０２が記憶される。左目用画像データ７０１、及び右目用画像データ７０２は、ＣＰＵ３１１がＧＰＵ３１２に指示を与えることによって生成された画像を示し、ＶＲＡＭ３１３に描画されることによって記憶されるデータである。具体的には、左目用画像データ７０１は、上述した左目用画像を示すデータであり、右目用画像データ７０２は、上述した右目用画像を示すデータである。
【０１１７】
［ゲーム処理］
次に、本実施形態のゲーム装置１０のＣＰＵ３１１の具体的な動作について説明する。まず、ゲーム装置１０に電源が投入されると、ＣＰＵ３１１によってブートプログラム（図示せず）が実行され、これによりデータ保存用内部メモリ３５に記憶されているゲームプログラムが読み込まれてメインメモリ３２に記憶される。そして、メインメモリ３２に記憶されたゲームプログラムがＣＰＵ３１１で実行されることによって、図１０、及び図１１のフローチャートに示す処理が行われる。図１０、及び図１１は、ＣＰＵ３１１がゲームプログラムを実行することによって行われる上記ゲーム処理の一例を示すフローチャートである。なお、図１０、及び図１１では、ステップを「Ｓ」と省略して記載している。
【０１１８】
ゲーム処理を開始すると、ＣＰＵ３１１は、まず始めに初期設定処理をする(ステップ１０１)。具体的には、ＣＰＵ３１１は、メインメモリ３２に記憶されている各種フラグデータをオフに設定する。また、ＣＰＵ３１１は、外側撮像画像データ５０２によって示される画像をクリアする。また、ＣＰＵ３１１は、角速度データ５０３、撮像方向データ５０４、切り替え時間データ５０９、及び切り替え開始時間データ５１１によってそれぞれ示される値をゼロに設定する。また、ＣＰＵ３１１は、仮想カメラ間隔データ５０５によって示される仮想カメラ間隔Ｋｋを、上記上限値Ｊｔに設定する。さらに、ＣＰＵ３１１は、ＶＲＡＭ３１３に記憶されている画像データを全て消去する。また、ＣＰＵ３１１は、データ保存用内部メモリ３５から間隔曲線データ５１０、及び仮想カメラ間隔決定データ５１２を読み出してメインメモリ３２に記憶させる。
【０１１９】
なお、初期設定処理において、ＣＰＵ３１１が、仮想カメラ間隔データ５０５によって示される仮想カメラ間隔Ｋｋを上限値Ｊｔに設定することにより、ゲーム処理の開始直後は、立体視画像が上側ＬＣＤに表示されることになる。また、初期設定処理において、ＣＰＵ３１１が、撮像方向データ５０４によって示される値をゼロに設定することにより、当該データによって示されるそれぞれの回転角度を、上述したように、ゲーム装置１０に電源を投入したときをゼロとして算出することができる。
【０１２０】
初期設定処理を完了すると、ＣＰＵ３１１は、上述した敵オブジェクト処理をする(ステップ１０５)。具体的には、ＣＰＵ３１１は、オブジェクトデータ５０７によって示される１種類以上の敵オブジェクトＥｏの中から仮想空間に出現させる敵オブジェクトＥｏが存在するか否かを、敵制御アルゴリズムに従って判断する。出現させる敵オブジェクトＥｏが存在する場合、ＣＰＵ３１１は、オブジェクトデータ５０７によって当該敵オブジェクトＥｏに対応させられている位置を出現位置に更新し、当該敵オブジェクトＥｏに対応させられている姿勢を所定の初期姿勢に更新する。また、ＣＰＵ３１１は、敵オブジェクト処理において、既に出現させられている敵オブジェクトＥｏを移動させるときの位置、及び姿勢を敵制御アルゴリズムに従って決定し、オブジェクトデータ５０７によって当該敵オブジェクトＥｏに対応させられている位置、及び姿勢を決定した位置に更新する。
【０１２１】
敵オブジェクト処理を完了すると、ＣＰＵ３１１は、操作データ５０１を参照し(ステップ１１０)、操作ボタン１４の入力状況を把握する。
【０１２２】
操作データ５０１を参照すると、ＣＰＵ３１１は、上述した弾オブジェクト処理をする(ステップ１１５)。具体的には、ＣＰＵ３１１は、ステップ１１０で参照した操作データ５０１に基づいて、弾を発射する操作がされたか否かを判断する。弾を発射する操作がされた場合、ＣＰＵ３１１は、オブジェクトデータ５０７によって示される弾オブジェクトの形状に対応させられている位置を所定の出現位置に更新する。また、ＣＰＵ３１１は、弾オブジェクト処理において、既に発射された弾オブジェクトがある場合、弾制御アルゴリズムに従って、当該弾オブジェクトを移動させるときの位置を決定する。ＣＰＵ３１１は、弾オブジェクトを移動させるときの位置を決定すると、オブジェクトデータ５０７によって当該弾オブジェクトの形状に対応させられている位置を、決定した位置に更新する。また、弾オブジェクトを移動させるときの位置を決定すると、決定した位置と、敵オブジェクト処理で決定したそれぞれの敵オブジェクトＥｏの位置とに基づいて、仮想空間内に存在するいずれかの敵オブジェクトＥｏに命中した弾オブジェクトがあるか否かも判断する。ＣＰＵ３１１は、弾オブジェクトが命中した敵オブジェクトＥｏがあると判断したとき、当該敵オブジェクトＥｏが破壊され、消滅させられるように表示する設定をする。
【０１２３】
弾オブジェクト処理を完了すると、ＣＰＵ３１１は、外側撮像画像Ｏｇを撮像する(ステップ１２０)。具体的には、ＣＰＵ３１１は、外側左撮像部２３ａに外側撮像画像Ｏｇを撮像する指示を与える。そして、指示に応じて外側左撮像部２３ａによって撮像された外側撮像画像Ｏｇを取得し、メインメモリ３２に記憶されている外側撮像画像データ５０２を、取得した外側撮像画像Ｏｇを示すように更新する。
【０１２４】
外側撮像画像Ｏｇを撮像すると、ＣＰＵ３１１は、メインメモリ３２に記憶されている角速度データ５０３を参照する(ステップ１２５)。
【０１２５】
角速度データ５０３を参照すると、ＣＰＵ３１１は、ゲーム装置１０が上述したように大きく動かされたか否かを判断する(ステップ１３０)。具体的には、ＣＰＵ３１１は、参照した角速度データ５０３によって示される各軸周りの角速度のうち、少なくともいずれか１つの角速度が角速度しきい値を超えているか否かを判断する。角速度データ５０３によって示されるそれぞれの角速度のうち、少なくともいずれか１つの角速度が角速度しきい値を超えている場合、ＣＰＵ３１１は、ゲーム装置１０が大きく動かされたと判断する（ステップ１３０でＹｅｓ）。一方、角速度データ５０３によって示される全ての角速度が角速度しきい値以下である場合、ＣＰＵ３１１は、ゲーム装置１０が大きく動かされていないと判断する（ステップ１３０でＮｏ）。
【０１２６】
ＣＰＵ３１１は、ゲーム装置１０が大きく動かされたと判断した場合（ステップ１３０でＹｅｓ）、停止フラグがオフであるか否かを判断する（ステップ１４５）。具体的には、ＣＰＵ３１１は、メインメモリ３２に記憶されている停止フラグデータ５０６を参照し、オフが示されているか否かを判断する。ＣＰＵ３１１は、停止フラグデータ５０６によって、オフが示されている場合、停止フラグがオフであると判断する（ステップ１４５でＹｅｓ）。一方、ＣＰＵ３１１は、停止フラグデータ５０６によって、オフが示されていない場合（オンが示されている場合）、停止フラグがオフでないと判断する（ステップ１４５でＮｏ）。
【０１２７】
ＣＰＵ３１１は、停止フラグがオフでないと判断した場合（ステップ１４５でＮｏ）、停止フラグをオフにする（ステップ１５０）。具体的には、ＣＰＵ３１１は、メインメモリ３２に記憶されている停止フラグデータ５０６を、オフを示すように更新する。これにより、ＣＰＵ３１１は、ゲーム装置１０が大きく動かされたと判断したときに、ユーザの視点が最適な視点ではないことをメインメモリ３２に記憶することになる。
【０１２８】
ＣＰＵ３１１は、停止フラグをオフにする（ステップ１５０）、又は停止フラグがオフであると判断した場合（ステップ１４５でＹｅｓ）、上述したように仮想カメラ間隔Ｋｋを設定する（ステップ１５５）。具体的には、ＣＰＵ３１１は、メインメモリ３２に記憶されている仮想カメラ間隔決定データ５１２を参照し、ステップ１２５で参照した角速度データ５０３によって示される角速度に応じた仮想カメラ間隔Ｋｋを決定する。ＣＰＵ３１１は、仮想カメラ間隔Ｋｋを決定すると、メインメモリ３２に記憶されている仮想カメラ間隔データ５０５を、決定した仮想カメラ間隔Ｋｋを示すように更新する。これにより、ＣＰＵ３１１は、左仮想カメラＨｋ及び右仮想カメラＭｋの仮想カメラ間隔Ｋｋを、ゲーム装置１０が大きく動かされたと判断した場合に瞬時に設定することができる。
【０１２９】
一方、ＣＰＵ３１１は、ゲーム装置１０が大きく動かされていないと判断した場合（ステップ１３０でＮｏ）、停止フラグがオンであるか否かを判断する（ステップ１３５）。具体的には、ＣＰＵ３１１は、メインメモリ３２に記憶されている停止フラグデータ５０６を参照し、オンが示されているか否かを判断する。ＣＰＵ３１１は、停止フラグデータ５０６によって、オンが示されている場合、停止フラグがオンであると判断する（ステップ１３５でＹｅｓ）。一方、ＣＰＵ３１１は、停止フラグデータ５０６によって、オンが示されていない場合、停止フラグがオンでない（オフである）と判断する（ステップ１３５でＮｏ）。
【０１３０】
ＣＰＵ３１１は、停止フラグがオンでないと判断したとき（ステップ１３５でＮｏ）、停止フラグをオンにする（ステップ１４０）。具体的には、ＣＰＵ３１１は、メインメモリ３２に記憶されている停止フラグデータ５０６を、オンを示すように更新する。これにより、ＣＰＵ３１１は、ゲーム装置１０が大きく動かされていないと判断したときに、ユーザの視点が最適な視点であることをメインメモリ３２に記憶することになる。
【０１３１】
ＣＰＵ３１１は、停止フラグがオンであると判断したとき（ステップ１３５でＹｅｓ）、又は停止フラグをオンにしたとき（ステップ１４０）、計時フラグがオンであるか否かを判断する（ステップ１７０）。具体的には、ＣＰＵ３１１は、メインメモリ３２に記憶されている計時フラグデータ５０８を参照し、オンが示されているか否かを判断する。ＣＰＵ３１１は、計時フラグデータ５０８によって、オンが示されている場合、計時モードフラグがオンであると判断する（ステップ１７０でＹｅｓ）。一方、ＣＰＵ３１１は、計時フラグデータ５０８によって、オフが示されている場合、計時モードフラグがオンでない（オフである）と判断する（ステップ１７０でＮｏ）。
【０１３２】
ＣＰＵ３１１は、計時モードフラグがオンでないと判断したとき（ステップ１７０でＮｏ）、切り替え開始時間Ｓｔを設定する（ステップ１７５）。具体的には、ＣＰＵ３１１は、メインメモリ３２に記憶されている仮想カメラ間隔データ５０５によって示される仮想カメラ間隔Ｋｋが、間隔曲線データ５１０によって示される上記数式（１）で算出されるような切り替え時間ｔを逆算して、切り替え開始時間Ｓｔとして決定する。ＣＰＵ３１１は、切り替え開始時間Ｓｔを決定すると、決定した切り替え開始時間Ｓｔを示すように切り替え開始時間データ５１１を更新して設定する。
【０１３３】
ＣＰＵ３１１は、切り替え開始時間Ｓｔを設定すると、切り替え時間ｔの計時を、切り替え開始時間Ｓｔから開始する（ステップ１７７）。これにより、ＣＰＵ３１１は、平面視画像から立体視画像に切り替える場合において、上述した切り替え時間ｔの計時を開始していないときに、計時を開始することができる。
【０１３４】
ＣＰＵ３１１は、切り替え時間ｔの計時を開始すると、計時フラグをオンにする（ステップ１８０）。具体的には、ＣＰＵ３１１は、メインメモリ３２に記憶されている計時フラグデータ５０８を、オンを示すように更新する。これにより、ＣＰＵ３１１は、平面視画像から立体視画像への切り替えを開始して、切り替え時間ｔを計時中であることをメインメモリ３２に記憶させることができる。
【０１３５】
ＣＰＵ３１１は、計時フラグがオンであると判断したとき（ステップ１７０でＹｅｓ）、又は計時フラグをオンにする（ステップ１８０）と、切り替え時間ｔを計時する（ステップ１８５）。具体的には、ＣＰＵ３１１は、ＲＴＣ３８によってカウントされる時間に基づいて、切り替え開始時間Ｓｔからの経過時間を示すように、切り替え時間データ５０９を更新する。
【０１３６】
ＣＰＵ３１１は、切り替え時間ｔを計時すると、切り替え時間ｔが所定の上限時間を経過したか否かを判断する（ステップ１９０）。具体的には、ＣＰＵ３１１は、メインメモリ３２に記憶されている切り替え時間データ５０９を参照し、当該切り替え時間データ５０９によって示される切り替え時間ｔが所定の上限時間を経過しているか否かを判断する。
【０１３７】
ＣＰＵ３１１は、切り替え時間ｔが所定の上限時間を経過していないと判断したとき（ステップ１９０でＮｏ）、仮想カメラ間隔Ｋｋを計算する（ステップ１９５）。具体的には、ＣＰＵ３１１は、メインメモリ３２に記憶されている間隔曲線データ５１０によって示される数式と、切り替え時間データ５０９によって示される切り替え時間ｔとを参照する。さらに、ＣＰＵ３１１は、参照した数式に、参照した切り替え時間ｔを代入して、仮想カメラ間隔Ｋｋを計算する。そして、ＣＰＵ３１１は、計算した仮想カメラ間隔Ｋｋを示すように、仮想カメラ間隔データ５９５を更新する。これにより、ＣＰＵ３１１は、切り替え時間ｔを計時中であって、平面視画像から立体視画像への切り替えの途中であるときに、仮想カメラ間隔Ｋｋを上記数式（１）に基づいて緩やかに変化するように算出できる。
【０１３８】
一方、ＣＰＵ３１１は、切り替え時間ｔが所定の時間を経過したと判断すると（ステップ１９０でＹｅｓ）、計時フラグをオフにする（ステップ２００）。具体的には、ＣＰＵ３１１は、メインメモリ３２に記憶されている計時フラグデータ５０８を、オフを示すように更新する。これにより、ＣＰＵ３１１は、平面視画像から立体視画像への切り替えを開始してから、切り替え時間ｔの計時を完了したことをメインメモリ３２に記憶させることができる。
【０１３９】
ＣＰＵ３１１は、計時フラグをオフにすると、切り替え時間ｔをゼロにリセットする（ステップ２０５）。具体的には、ＣＰＵ３１１は、メインメモリ３２に記憶されている切り替え時間データ５０９を、ゼロの切り替え時間ｔを示すように更新して初期化する。
【０１４０】
ＣＰＵ３１１は、仮想カメラ間隔Ｋｋを設定する（ステップ１５５）、仮想カメラ間隔Ｋｋを計算する（ステップ１９５）、又は切り替え時間ｔをゼロにリセットする（ステップ２０５）と、左仮想カメラＨｋを仮想空間に配置する（ステップ２１５）。具体的には、ＣＰＵ３１１は、ステップ１２５で参照した角速度データ５０３によって示される各軸周りの角速度を、撮像方向データ５０４によって示される各軸周りの回転角度にそれぞれ加算して、撮像方向データ５０４を更新する。撮像方向データ５０４を更新すると、ＣＰＵ３１１は、仮想空間の原点Ｏから仮想カメラ間隔Ｋｋだけｘ軸の負方向に左仮想カメラＨｋを移動させる。そして、ＣＰＵ３１１は、移動させた左仮想カメラＨｋを、更新後の撮像方向データ５０４によって示される各軸周りの回転角度だけ、仮想空間の原点Ｏを中心として回転させて、配置する。これにより、ＣＰＵ３１１は、上述したように左仮想カメラＨｋをゲーム装置１０の動きに連動させて配置することができる。
【０１４１】
ＣＰＵ３１１は、左仮想カメラＨｋを配置すると、右仮想カメラＭｋを配置する（ステップ２２０）。具体的には、ＣＰＵ３１１は、ステップ１２５で参照した角速度データ５０３によって示される各軸周りの角速度を、撮像方向データ５０４によって示される各軸周りの回転角度にそれぞれ加算して、撮像方向データ５０４を更新する。撮像方向データ５０４を更新すると、ＣＰＵ３１１は、仮想空間の原点Ｏから仮想カメラ間隔Ｋｋだけｘ軸の正方向に右仮想カメラＭｋを移動させる。そして、ＣＰＵ３１１は、移動させた右仮想カメラＭｋを、更新後の撮像方向データ５０４によって示される各軸周りの回転角度だけ、仮想空間の原点Ｏを中心として回転させて、配置する。これにより、ＣＰＵ３１１は、上述したように右仮想カメラＭｋをゲーム装置１０の動きに連動させて配置することができる。
【０１４２】
なお、ＣＰＵ３１１が、仮想カメラ間隔Ｋｋをゼロにリセットした後（ステップ１４５）、左仮想カメラＨｋ、及び右仮想カメラＭｋを配置した場合（ステップ２１５、ステップ２２０）、左仮想カメラＨｋ、及び右仮想カメラＭｋを上述したように同一の視点にすることができる。また、ＣＰＵ３１１が、仮想カメラ間隔Ｋｋを計算した後（ステップ１９５）、左仮想カメラＨｋ、及び右仮想カメラＭｋを配置した場合（ステップ２１５、ステップ２２０）、左仮想カメラＨｋ、及び右仮想カメラＭｋの間隔を緩やかに増加させることができる。また、ＣＰＵ３１１が、切り替え時間ｔが所定の時間を経過したと判断した後（ステップ１９０でＹｅｓ）、左仮想カメラＨｋ、及び右仮想カメラＭｋを配置した場合（ステップ２１５、ステップ２２０）、上限値Ｊｔ、すなわち、初期設定処理で設定した仮想カメラ間隔Ｋｋで再び配置することができる。
【０１４３】
ＣＰＵ３１１は、右仮想カメラＭｋを配置すると、左目用画像、及び右目用画像を生成する（ステップ２２５）。具体的には、ＣＰＵ３１１は、敵オブジェクト処理でそれぞれ設定した位置、及び姿勢で敵オブジェクトＥｏを仮想空間に配置する。また、ＣＰＵ３１１は、弾オブジェクト処理でそれぞれ設定した位置に弾オブジェクトを仮想空間内に配置する。また、ＣＰＵ３１１は、左仮想カメラＨｋの撮像方向に基づいて、上述したようにスクリーンオブジェクトの領域Ｎｒを判断し、ステップ１２０で撮像した外側撮像画像Ｏｇをテクスチャマッピングする。次に、ＣＰＵ３１１は、上述したように配置した左仮想カメラＨｋで、これらのオブジェクトが存在する仮想空間を撮像する処理をする。このとき、弾オブジェクトが命中したと判断された敵オブジェクトＥｏは、破壊され、消滅して表示されるように処理された上で撮像されるものとする。左仮想カメラＨｋで仮想空間を撮像する処理をすると、ＣＰＵ３１１は、左仮想カメラＨｋで撮像した画像を左目用画像としてＶＲＡＭ３１３に描画することによって、左目用画像データ７０１を更新する。ＣＰＵ３１１は、左目用画像データ７０１を更新すると、右仮想カメラＨｋの撮像方向に基づいて、上述したようにスクリーンオブジェクトの領域Ｎｒを判断し、ステップ１２０で撮像した外側撮像画像Ｏｇをテクスチャマッピングする。次に、ＣＰＵ３１１は、上述したように配置した右仮想カメラＭｋで、上述したように配置した敵オブジェクトＥｏ、弾オブジェクト、及びスクリーンオブジェクトが存在する仮想空間を撮像する処理をする。このとき、弾オブジェクトが命中したと判断された敵オブジェクトＥｏは、破壊され、消滅して表示されるように処理された上で撮像されるものとする。右仮想カメラＭｋで仮想空間を撮像する処理をすると、ＣＰＵ３１１は、右仮想カメラＭｋで撮像した画像を右目用画像としてＶＲＡＭ３１３に描画することによって、右目用画像データ７０２を更新する。
【０１４４】
ＣＰＵ３１１は、左目用画像、及び右目用画像を生成すると、生成したこれらの画像を上側ＬＣＤ２２に表示させる（ステップ２２７）。具体的には、ＣＰＵ３１１は、ＶＲＡＭ３１３に描画された左目用画像、及び右目用画像を出力させる。ＶＲＡＭ３１３から出力された左目用画像、及び右目用画像は、それぞれ上述したようにＬＣＤコントローラによって読み込まれ、上側ＬＣＤ２２に表示される。ＶＲＡＭ３１３に描画された左目用画像、及び右目用画像は、左仮想カメラＨｋ、及び右仮想カメラＭｋの仮想カメラ間隔Ｋｋが上限値Ｊｔでない場合には、上述したように平面視画像として上側ＬＣＤ２２に表示される。一方、ＶＲＡＭ３１３に描画された左目用画像、及び右目用画像は、左仮想カメラＨｋ、及び右仮想カメラＭｋの仮想カメラ間隔Ｋｋが上限値Ｊｔである場合には、上述したように立体視画像として上側ＬＣＤ２２に表示される。
【０１４５】
ＣＰＵ３１１は、左目用画像、及び右目用画像を上側ＬＣＤ２２に表示させると、メインメモリ３２に記憶されている操作データ５０１を参照する（ステップ２３０）。
【０１４６】
ＣＰＵ３１１は、操作データ５０１を参照すると、ユーザによってゲーム処理を終了する操作がされたか否かを判断する（ステップ２３０）。具体的には、ＣＰＵ３１１は、参照した操作データ５０１によって示される操作ボタン１４の操作状態に基づいて、ユーザによってゲーム処理を終了する操作がされたか否かを判断する。
【０１４７】
ＣＰＵ３１１は、ユーザによってゲーム処理を終了する操作がされたと判断したとき（ステップ２３５でＹｅｓ）、ゲームプログラムの実行を終了する。一方、ＣＰＵ３１１は、ユーザによってゲーム処理を終了する操作がされていないと判断したとき（ステップ２３５でＮｏ）、ステップ１０１から処理を繰り返す。
【０１４８】
以上が、本発明の第１の実施形態に係るゲーム装置１０の説明である。本実施形態に係るゲーム装置１０によれば、大きく動かされたことによって、ユーザの視点と上記最適な視点との間にずれが生じたときにユーザに与える不快感を低減できる。なお、図１１、及び図１２に示した本実施形態のゲーム処理は、上述した処理時間単位毎に繰り返されるものとする。
【０１４９】
（第２の実施形態）
次に、本発明の実施形態の他の一例（第２の実施形態）に係るゲーム装置について説明する。第１の実施形態に係るゲーム装置１０では、ｘｙｚ軸（図１参照）の各軸周りの角速度のうちいずれかの角速度が角速度しきい値以上となったときに平面視画像を表示するものとした。これに対して、第２の実施形態では、ゲーム装置１０が重力方向の軸周りに回転するときの回転角度に応じて仮想カメラ間隔Ｋｋを制御し、立体視画像と平面視画像とを切り替える。
【０１５０】
［情報処理の概要］
以下、本実施形態における情報処理の概要について図１２〜図１５を参照しながら説明する。本実施形態においても、第１の実施形態と同様に情報処理の一例としてゲーム処理がゲーム装置１０によって行われるものとする。第１の実施形態で説明したゲーム処理の際に行われる処理のうち、敵オブジェクト処理、弾オブジェクト処理、スクリーンオブジェクトに外側撮像画像Ｏｇをテクスチャマッピングする処理は、本実施形態においても同様に行われるものとする。第１の実施形態で説明したゲーム処理の際に行われる処理のうち、第１の実施形態とは異なる形態で、仮想カメラを配置する処理が、本実施形態において行われる。
【０１５１】
本実施形態では仮想カメラを配置する処理をする際に、まず、加速度センサ３９が検知した加速度に基づいて、ゲーム装置１０のｘｙｚ軸（図１参照）の重力方向に対する傾き（以下、単にゲーム装置１０の傾きと称する）を算出する処理をする。ゲーム装置１０の傾きを算出する手法としては、加速度センサ３９から出力される加速度に基づいて、各軸の加速度に対して処理を施すことによって算出する手法であれば、任意の周知の手法を用いてよい。例えば、加速度センサ３９が静的、或いは動的のいずれかを前提の状態とする場合に、加速度センサ３９の動きに応じた加速度を所定の処理により除去すれば、重力方向に対するゲーム装置１０の傾きを知ることが可能である。
【０１５２】
また、本実施形態では、第１の実施形態で説明したように角速度センサ４０によって検知されたゲーム装置１０の各軸周りの角速度に基づいて仮想カメラの撮像方向を設定する処理もする。ここで、仮想カメラの撮像方向は、第１の実施形態で説明した撮像方向データ５０４によって示される。第１の実施形態で説明したように、撮像方向データ５０４によって示されるそれぞれの回転角度は、ゲーム装置１０に電源を投入したときをゼロとし、それぞれリアルタイムに算出される当該ゲーム装置１０の各軸周りの回転角度となる。
【０１５３】
本実施形態では、上述したゲーム装置１０の傾きと、ゲーム装置１０の各軸周りの回転角度とに基づいて、ゲーム装置１０の重力方向軸周りの回転角度を水平回転角度Ｓｋとして算出する。ゲーム装置１０の傾きと、ゲーム装置１０の各軸周りの回転角度とに基づいて、水平回転角度Ｓｋを算出するための手法は、任意の周知の手法を用いてよい。例えば、ゲーム装置１０の各軸（ｘｙｚ軸）からなる座標系、及び仮想空間の各軸（ｘｙｚ軸）からなる座標系とは異なる現実空間における座標系（ｘｙｚ軸）を設定する手法を用いてもよい。現実空間における座標系の一例としては、重力方向をｚ軸とし、当該ｚ軸を垂線とする水平面をｘ−ｙ平面とする座標系が挙げられる。そして、ゲーム装置１０の傾きに基づいて、ゲーム装置１０の各軸周りの回転角度を、現実空間におけるｘｙｚ軸の各軸周りの回転角度に変換する手法を用いてもよい。この場合、現実空間における座標系として設定した座標系のｚ軸周りの回転角度が、水平回転角度Ｓｋとなる。
【０１５４】
本実施形態では、上述したように算出した水平回転角度Ｓｋに応じて、仮想カメラ間隔Ｋｋを決定する。図１２は、本実施形態における水平回転角度Ｓｋと仮想カメラ間隔Ｋｋとの関係の一例を示す図である。本実施形態では、図１２に一例として示すように、水平回転角度Ｓｋが０°±２２．５°の間で、水平回転角度Ｓｋの絶対値に比例するように、上限値Ｊｔから当該上限値Ｊｔの２０％まで仮想カメラ間隔Ｋｋを変化させるものとする。
【０１５５】
図１３、及び図１４は、鉛直方向に見下ろしたゲーム装置１０のユーザをそれぞれ模式的に示す図である。図１３、及び図１４にそれぞれ示すユーザは着座しているものとする。例えば、図１３に示す状態でゲーム装置１０にゲーム処理を開始させたユーザが、第１の実施形態で説明したように敵オブジェクトＥｏを狙うために、図１４に示すようにゲーム装置１０を把持しながら上体をひねった場合を想定する。この場合、図１４に一例として示すように、水平方向に回転させたゲーム装置１０の回転角度に完全に一致するように頭部を必ずしも向けられない場合が生じる。図１４に示す一例では、ゲーム装置１０の水平回転角度Ｓｋと頭部正面方向との間にΔθのずれが生じている。
【０１５６】
図１４に一例として示す場合には、第１の実施形態で説明したように、ユーザの視点が最適な視点からずれることとなる。従って、図７を例に挙げて説明したように、上側ＬＣＤ２２に表示されている立体視画像がぼやけてユーザに視認される。また、ゲーム装置１０が水平方向に大きく回転するほど（水平回転角度Ｓｋの絶対値が大きくなるほど）、頭部の向きとのずれが大きくなりやすい。従って、本実施形態では、図１２に一例として示すように、水平回転角度Ｓｋの絶対値に比例するように仮想カメラ間隔Ｋｋを変化させる。これにより、ユーザがゲーム装置１０を水平方向に回転させてずれが大きくなるのに応じて、立体視画像を平面視画像に緩やかに切り替えられる。そして、水平方向の回転角度の大きさに応じて、ユーザに与える不快感を低減できる。
【０１５７】
図１５は、図１２に一例として示す関係と、図１３に示す模式図とを対応させて示す図である。図１５に一例として示すように、本実施形態では、ユーザがゲーム装置１０を正面から水平回転角度Ｓｋが２２．５°となるように正方向に回転させたときに、仮想カメラ間隔Ｋｋを上限値Ｊｔから、当該上限値Ｊｔの２０％の間隔まで比例するように減少させる。また、本実施形態では、ユーザがゲーム装置１０を正面から水平回転角度Ｓｋが-２２．５°となるように負方向に回転させたときに、仮想カメラ間隔Ｋｋを上限値Ｊｔから、当該上限値Ｊｔの２０％の間隔まで比例するように減少させる。さらに、本実施形態では、水平回転角度Ｓｋが±２２．５°を超える範囲では、仮想カメラ間隔Ｋｋを上限値Ｊｔの２０％で一定にする（図１５に示す斜線部分）。すなわち、本実施形態では、仮想カメラ間隔Ｋｋの上限値Ｊｔの２０％の間隔を下限値とする。
【０１５８】
なお、立体視画像は、ゲーム装置１０における水平方向（図１のｘ軸方向）の視差を有する左目用画像、及び右目用画像を最適な視点とは異なる視点から視認することにより、ぼやけてユーザに視認される。従って、本実施形態では、垂直方向など水平方向とは異なる方向へのユーザの視点と最適な視点とのずれは考慮せずに、水平方向のずれのみを考慮し、水平回転角度Ｓｋのみに基づいて仮想カメラ間隔Ｋｋを決定するものとする。
【０１５９】
［メインメモリに記憶されるデータ］
次に、ゲーム装置１０のＣＰＵ３１１の具体的な動作について説明する前に、当該ＣＰＵ３１１が、本実施形態に係るゲームプログラムを実行することに応じて、メインメモリ３２、及びＶＲＡＭ３１３に記憶されるデータについて図１６を参照しながら説明する。
【０１６０】
図１６に一例として示すように、メインメモリ３２には、操作データ５０１、外側撮像画像データ５０２、角速度データ５０３、撮像方向データ５０４、仮想カメラ間隔データ５０５、オブジェクトデータ５０７、間隔曲線データ５１３、水平回転角度データ５１４、傾きデータ５１５、加速度データ５１６、及び各種プログラム８０１が記憶される。なお、図１６に示すデータ、及びプログラムのうち、第１の実施形態と同一のものについては、同一の参照符号を付しており、これらについては説明を省略する。
【０１６１】
間隔曲線データ５１３は、第１の実施形態と同様に、平面視画像から立体視画像に切り替えるときに、左仮想カメラＨｋ、及び右仮想カメラＭｋのそれぞれの仮想カメラ間隔Ｋｋを切り替え時間ｔと対応させて示すデータである。しかしながら、本実施形態の間隔曲線データ５１３は、第１の実施形態の間隔曲線データ５１０とは異なり、図１２に一例として示すように水平回転角度Ｓｋと仮想カメラ間隔Ｋｋとを対応させて示すデータとなる。間隔曲線データ５１３は、後述するようにゲームプログラムがデータ保存用内部メモリ３５から読み出されるときに、共に読み出されるデータである。
【０１６２】
水平回転角度データ５１４は、上述したようにゲーム装置１０の現実空間における水平方向の回転角度としてＣＰＵ３１１が算出した水平回転角度Ｓｋを示すデータである。
【０１６３】
傾きデータ５１５は、加速度センサ３９が検知した加速度に基づいて、ＣＰＵ３１１が算出したゲーム装置１０の各軸（図１参照）の重力方向に対する傾きを示すデータである。
【０１６４】
加速度データ５１６は、上記処理単位時間毎に加速度センサ３９から取得されるｘｙｚ軸のそれぞれの軸方向の加速度を示すデータである。加速度データ５１６は、上記処理単位時間毎に加速度センサ３９から取得され、メインメモリ３２に記憶される。
【０１６５】
各種プログラム８０１は、ＣＰＵ３１１によって実行される種々のプログラムである。例えば、上述で説明した本実施形態に係るゲーム処理をＣＰＵ３１１に行わせるゲームプログラム等が各種プログラム８０１としてメインメモリ３２に記憶される。また、第１の実施形態で説明した敵制御アルゴリズムや弾制御アルゴリズムなどもメインメモリ３２に記憶されるゲームプログラムに含まれる。
【０１６６】
［ＶＲＡＭに記憶されるデータ］
本実施形態においてＶＲＡＭ３１３に記憶されるデータは、第１の実施形態で説明した左目用画像データ７０１、及び右目用画像データ７０２であるので、説明を省略する。
【０１６７】
［ゲーム処理］
次に、本実施形態のゲーム装置１０のＣＰＵ３１１の具体的な動作について説明する。まず、ゲーム装置１０に電源が投入されると、ＣＰＵ３１１によってブートプログラム（図示せず）が実行され、これによりデータ保存用内部メモリ３５に記憶されているゲームプログラムが読み込まれてメインメモリ３２に記憶される。そして、メインメモリ３２に記憶されたゲームプログラムがＣＰＵ３１１で実行されることによって、図１７のフローチャートに示す処理が行われる。図１７は、ＣＰＵ３１１がゲームプログラムを実行することによって行われるゲーム処理の一例を示すフローチャートである。なお、図１７では、ステップを「Ｓ」と省略して記載している。また、図１７に示す処理のうち第１の実施形態のゲーム処理のフローチャートに示す処理と同一の処理については、同一の参照符号を付し、詳細な説明を省略するものとする。
【０１６８】
ゲーム処理を開始すると、ＣＰＵ３１１は、まず始めに初期設定処理をする(ステップ３０１)。具体的には、ＣＰＵ３１１は、外側撮像画像データ５０２によって示される画像をクリアする。また、ＣＰＵ３１１は、角速度データ５０３、撮像方向データ５０４、水平回転角度データ５１４、及び傾きデータ５１５によってそれぞれ示される値をゼロに設定する。また、ＣＰＵ３１１は、仮想カメラ間隔データ５０５によって示される仮想カメラ間隔Ｋｋを、上記上限値Ｊｔに設定する。さらに、ＣＰＵ３１１は、ＶＲＡＭ３１３に記憶されているデータを全て消去する。また、ＣＰＵ３１１は、データ保存用内部メモリ５１０から間隔曲線データ５１３を読み出してメインメモリ３２に記憶させる。
【０１６９】
なお、初期設定処理において、ＣＰＵ３１１が、仮想カメラ間隔データ５０５によって示される仮想カメラ間隔Ｋｋを上限値Ｊｔに設定することにより、ゲーム処理の開始直後は、立体視画像が上側ＬＣＤに表示されることになる。また、初期設定処理において、ＣＰＵ３１１が、撮像方向データ５０４によって示される値をゼロに設定することにより、当該データによって示されるそれぞれの回転角度を、上述したように、ゲーム装置１０に電源を投入したときをゼロとして算出することができる。また、上述した水平回転角度Ｓｋも、撮像方向データ５０４によって示されるそれぞれの回転角度を上述したように変換した角度である。従って、撮像方向データ５０４によって示される回転角度と同様に、水平回転角度Ｓｋも、電源を投入したときの基準方向をゼロとして算出される。
【０１７０】
ＣＰＵ３１１は、初期設定処理をすると、第１の実施形態と同様に、敵オブジェクト処理から外側撮像画像Ｏｇを撮像する処理までをする（ステップ１０５〜ステップ１２０）。
【０１７１】
外側撮像画像Ｏｇを撮像すると、ＣＵ３１１は、メインメモリ３２に記憶されている加速度データ５１６を参照する（ステップ３０５）。
【０１７２】
ＣＰＵ３１１は、加速度データ５１６を参照すると、ゲーム装置１０の傾きを算出する（ステップ３１０）。具体的には、ＣＰＵ３１１は、参照した加速度データ５１６によって示される各軸方向の加速度に基づいて、ゲーム装置１０の各軸（図１参照）の重力方向に対する傾きを上述で説明したように算出する。ＣＰＵ３１１は、ゲーム装置１０の傾きを算出すると、算出した傾きを示すように傾きデータ５１５を更新する。
【０１７３】
ＣＰＵ３１１は、ゲーム装置１０の傾きを算出すると、第１の実施形態と同様にメインメモリ３２に記憶されている角速度データ５０３を参照する（ステップ１２５）。
【０１７４】
ＣＰＵ３１１は、角速度データ５０３を参照すると、仮想カメラの撮像方向を算出する（ステップ３１５）。具体的には、ＣＰＵ３１１は、ステップ１２５で参照した角速度データ５０３によって示される各軸周りの角速度を、撮像方向データ５０４によって示される各軸周りの回転角度にそれぞれ加算して、撮像方向データ５０４を更新する。
【０１７５】
ＣＰＵ３１１は、仮想カメラの撮像方向を算出すると、水平回転角度Ｓｋを算出する（ステップ３２０）。具体的には、ＣＰＵ３１１は、傾きデータ５１５によって示される傾きと、撮像方向データ５０４によって示されるそれぞれの回転角度とに基づいて、上述で説明したように水平回転角度Ｓｋを算出する。ＣＰＵ３１１は、水平回転角度Ｓｋを算出すると、算出した水平回転角度Ｓｋを示すように水平回転角度データ５１４を更新する。
【０１７６】
ＣＰＵ３１１は、水平回転角度Ｓｋを算出すると、仮想カメラ間隔Ｋｋを決定する（ステップ３２５）。具体的には、ＣＰＵ３１１は、メインメモリ３２に記憶されている間隔曲線データ５１３と水平回転角度データ５１４とを参照する。ＣＰＵ３１１は、参照した間隔曲線データ５１３によって示される関係（本実施形態では図１２に示す関係）を用いて、参照した水平回転角度データ５１４によって示される水平回転角度Ｓｋに対応する仮想カメラ間隔Ｋｋを判断して決定する。ＣＰＵ３１１は、仮想カメラ間隔Ｋｋを決定すると、決定した仮想カメラ間隔Ｋｋを示すように仮想カメラ間隔データ５０５を更新する。
【０１７７】
ＣＰＵ３１１は、仮想カメラ間隔Ｋｋを決定すると、左仮想カメラＨｋを仮想空間に配置する（ステップ３３０）。具体的には、ＣＰＵ３１１は、仮想カメラ間隔データ５０５によって示される仮想カメラ間隔Ｋｋだけ仮想空間の原点Ｏからｘ軸の負方向に左仮想カメラＨｋを移動させる。そして、ＣＰＵ３１１は、移動させた左仮想カメラＨｋを、撮像方向データ５０４によって示される各軸周りの回転角度だけ、仮想空間の原点Ｏを中心として回転させて、配置する。これにより、ＣＰＵ３１１は、左仮想カメラＨｋをゲーム装置１０の動きに連動させて配置することができる。
【０１７８】
ＣＰＵ３１１は、左仮想カメラＨｋを仮想空間に配置すると、右仮想カメラＭｋを仮想空間に配置する（ステップ３３５）。具体的には、ＣＰＵ３１１は、仮想カメラ間隔データ５０５によって示される仮想カメラ間隔Ｋｋだけ仮想空間の原点Ｏからｘ軸の正方向に右仮想カメラＭｋを移動させる。そして、ＣＰＵ３１１は、移動させた右仮想カメラＭｋを、撮像方向データ５０４によって示される各軸周りの回転角度だけ、仮想空間の原点Ｏを中心として回転させて、配置する。これにより、ＣＰＵ３１１は、右仮想カメラＭｋをゲーム装置１０の動きに連動させて配置することができる。
【０１７９】
ＣＰＵ３１１は、左仮想カメラＨｋ、及び右仮想カメラＭｋを配置すると、左目用画像、及び右目用画像を第１の実施形態と同様に生成し（ステップ２２５）、同じく第１の実施形態と同様に上側ＬＣＤ２２に表示させる（ステップ２２７）。
【０１８０】
ＣＰＵ３１１は、左目用画像、及び右目用画像を上側ＬＣＤ２２に表示させると、第１の実施形態と同様に、メインメモリ３２に記憶されている操作データ５０１を参照し、ユーザによってゲーム処理を終了する操作がされたか否かを判断する（ステップ２３０〜ステップ２３５）。ＣＰＵ３１１は、第１の実施形態と同様に、ユーザによってゲーム処理を終了する操作がされたと判断したとき（ステップ２３５でＹｅｓ）、ゲームプログラムの実行を終了する。一方、ＣＰＵ３１１は、第１の実施形態と同様に、ユーザによってゲーム処理を終了する操作がされていないと判断したとき（ステップ２３５でＮｏ）、ステップ３０１から処理を繰り返す。
【０１８１】
以上が、本発明の第２の実施形態に係るゲーム装置１０の説明である。本実施形態に係るゲーム装置１０によれば、ユーザがゲーム装置１０を水平方向に回転させることによってユーザの視点と最適な視点とのずれの大きさに応じて、ユーザに与える不快感を低減できる。なお、図１７に示した本実施形態のゲーム処理は、上述した処理時間単位毎に繰り返されるものとする。
【０１８２】
なお、第２の実施形態では、水平回転角度Ｓｋが±２２．５°の所定値となったときに上限値Ｊｔの２０％の下限値となる場合について説明したが、当該所定値は任意の角度であってよい。また、当該下限値は、上限値Ｊｔの２０％の値に限らず、他の任意の値であってもよい。
【０１８３】
また、第２の実施形態では、重力方向軸周りにゲーム装置１０を回転させたときの水平回転角度Ｓｋに応じて、仮想カメラ間隔Ｋｋを緩やかに切り替えるものとした。しかしながら、他の一実施形態では、図１８に一例として示すように、現実空間における重力方向軸、及び水平方向軸とからなる平面の垂線方向軸Ｇｏ周りにゲーム装置１０を回転させたときの回転角度θに応じて、仮想カメラ間隔Ｋｋを緩やかに切り替えてもよい。この場合、例えば、図１２に一例として示す関係における水平回転角度Ｓｋと仮想カメラ間隔Ｋｋと同じ関係や、他の任意の関係を予め定めて用い、回転角度θに対応する仮想カメラ間隔Ｋｋを設定するようにしてもよい。他の任意の関係の一例としては、例えば、垂線方向軸Ｇｏ周りの回転角度θがゼロから９０°回転させたとき（すなわち、ゲーム装置１０を図１のｚ軸周りに９０°回転させて縦持ちしたとき）に、仮想カメラ間隔Ｋｋが上限値Ｊｔから当該上限値の０％（すなわち、仮想カメラ間隔Ｋｋがゼロ）まで、比例するように減少させる関係を用いてもよい。
【０１８４】
立体視画像は、第２の実施形態で説明したように、ゲーム装置１０における水平方向（図１のｘ軸方向）の視差を有する左目用画像、及び右目用画像を最適な視点から視認することにより、立体画像として視認される。従って、図１８に一例として示すように、垂線方向軸Ｇｏ周りにゲーム装置１０を回転させたときには、立体視画像の視差の方向と、ユーザの両目の視差の方向との間にずれが生じ、立体視画像はぼやけてユーザに視認されることとなる。そこで、上述したように、垂線方向軸Ｇｏ周りにゲーム装置１０を回転させたときの回転角度θに応じて、仮想カメラ間隔Ｋｋを変化させることにより、最適な視点とユーザの視点とにねじれが生じるときにも、第２の実施形態と同様に、ユーザに与える不快感を低減できる。
【０１８５】
また、ユーザに与える不快感を低減できるのであれば、重力方向軸周り、又は前述の垂線方向軸Ｇｏ周りに限らず、任意の所定の方向軸周りの回転角度を従来周知の手法で算出し、算出した回転角度に応じて、仮想カメラ間隔Ｋｋを変化させてもよい。
【０１８６】
また、例えば、第２の実施形態で説明したように水平回転角度Ｓｋに応じて仮想カメラ間隔Ｋｋを徐々に変化させる処理をしている場合において、第１の実施形態で説明したようにゲーム装置１０が大きく動かされた場合には、仮想カメラ間隔Ｋｋを徐々に変化させる処理を中止して、平面視表示に瞬時に切り替えてもよい。これにより、第２の実施形態においても、第１の実施形態と同様にユーザに与える不快感を低減できる。また、このように第１の実施形態と第２の実施形態とを組み合わせるだけでなく、上述した垂線方向軸Ｇｏ周りの回転角度θに応じて仮想カメラ間隔Ｋｋを変化させる処理をさらに組み合わせてもよい。
【０１８７】
また、例えば、第２の実施形態で説明したように水平回転角度Ｓｋに応じて仮想カメラ間隔Ｋｋを徐々に変化させる処理をしている場合において、第１の実施形態で説明したようにゲーム装置１０が大きく動かされた場合には、仮想カメラ間隔Ｋｋを徐々に変化させる処理を中止して、平面視表示に瞬時に切り替えた後、当該処理を再開してもよい。より詳細には、仮想カメラ間隔Ｋｋを徐々に変化させる処理を中止した後、角速度センサ４０によって検知される各軸周りの角速度が全て角速度しきい値未満となった場合に、第２の実施形態で説明した仮想カメラ間隔Ｋｋを徐々に変化させる処理を再開してもよい。再開するときの仮想カメラ間隔Ｋｋは、中止したときの仮想カメラ間隔Ｋｋであってもよいし、上限値Ｊｔの仮想カメラ間隔Ｋｋであってもよい。上限値Ｊｔの仮想カメラ間隔Ｋｋから再開する場合には、再開するときに水平回転角度Ｓｋをゼロにリセットする必要がある。すなわち、再開するときの方向を基準方向として、当該基準方向からの回転角度を水平回転角度Ｓｋとして算出する必要がある。また、例えば、ゲーム装置１０の動きに連動する方向や位置にプレイヤキャラクタを仮想空間内で移動させるような上記ゲーム処理とは異なるゲーム処理をしているときに、このような基準方向の設定を任意のタイミングで行ってもよい。これにより、例えば、プレイヤキャラクタを正しい方向に進めているときなど、任意の状況でユーザに与える不快感を低減することができる。
【０１８８】
また、上述の説明では、平面視画像と立体視画像とを切り替えるために、仮想カメラ間隔Ｋｋを変化させるものとした。しかしながら、平面視画像と立体視画像とを切り替えられるのであれば、例えば、左目用画像、及び右目用画像を生成するためのいずれか一方の仮想カメラの視点と注視点とを結ぶ直線と、他方の仮想カメラの視点と当該注視点とを結ぶ直線とがなす角度など、立体視画像を立体視するときの視差に関係するパラメータであれば、仮想カメラ間隔Ｋｋの代わりに任意のパラメータを上述したように変化させてもよい。
【０１８９】
また、第１の実施形態では、角速度センサ４０によって検知される各軸周りの角速度の少なくともいずれか１つが角速度しきい値以上となったときに、平面視画像に切り替えるものとした。しかしながら、他の一実施形態では、少なくともいずれか２つ、又は全ての角速度が角速度しきい値以上となったときに、ゲーム装置１０が大きく動かされたと判断して、平面視画像に切り替えるようにしてもよい。
【０１９０】
また、第１の実施形態では、角速度センサ４０によって検知される各軸周りの角速度の少なくともいずれか１つが角速度しきい値以上となったときに、平面視画像に切り替えるものとした。しかしながら、他の一実施形態では、加速度センサ３９によって検知される各軸方向の加速度のうち少なくともいずれか１つ、少なくともいずれか２つ、又は全ての加速度が、所定の加速度しきい値以上となったときに、ゲーム装置１０が大きく動かされたと判断して、平面視画像に切り替えるようにしてもよい。
【０１９１】
また、第１の実施形態、及び第２の実施形態では、ゲーム装置１０の動きに応じて、左仮想カメラＨｋ、及び右仮想カメラＭｋの撮像方向のみを設定するものとした。しかしながら、他の一実施形態では、ゲーム装置１０の動きに応じて、左仮想カメラＨｋ、及び右仮想カメラＭｋの撮像方向、及び位置の少なくともいずれかを設定するようにしてもよい。左仮想カメラＨｋ、及び右仮想カメラＭｋの位置を設定する場合には、ゲーム装置１０のｘｙｚ軸（図１参照）の各軸方向への加速度を加速度センサ３９を用いてそれぞれ検知し、当該加速度に基づいてｘｙｚ軸方向への移動量を算出する。これにより、算出したゲーム装置１０の各軸方向への移動量に応じて左仮想カメラＨｋ、及び右仮想カメラＭｋの位置を設定することができる。また、この場合に、上述したように、加速度センサ３９によって検知される各軸方向の加速度のうち少なくともいずれか１つ、少なくともいずれか２つ、又は全ての加速度が、所定の加速度しきい値以上となったときに、ゲーム装置１０が大きく動かされたと判断して、平面視画像に切り替えるようにしてもよいことは言うまでもない。
【０１９２】
また、第１の実施形態では、平面視画像から立体視画像に切り替えるときに、上記数式（１）に従って、切り替えるものとした。しかしながら、他の一実施形態では、切り替え時間ｔが経過するに従って、仮想カメラ間隔Ｋｋが大きくなるのであれば、他の任意の数式、或いは関係を用いて切り替えてもよい。
【０１９３】
また、第２の実施形態では、水平回転角度Ｓｋの絶対値が大きくなるのに従って、仮想カメラ間隔Ｋｋが単純に減少するように予め定めた関係を用いるものとした。しかしながら、他の一実施形態では、水平回転角度Ｓｋの絶対値が大きくなるのに従って、仮想カメラ間隔Ｋｋが大きくなるのであれば、他の任意の関係を用いてもよい。また、第２の実施形態では、ゼロの水平回転角度Ｓｋを基準として正の領域と負の領域で対称な関係を用いるものとしたが、非対称の関係を用いてもよい。
【０１９４】
また、第２の実施形態で説明したように、水平回転角度Ｓｋに応じて平面視画像と立体視画像とを切り替える場合、漸増、又は漸減させるのではなく、水平回転角度Ｓｋの絶対値が所定のしきい値以上となったときに、瞬時に平面視画像に切り替えるようにしてもよい。
【０１９５】
また、上述の説明では、ゲーム処理の際に平面視画像と立体視画像とを切り替える場合について説明した。しかしながら、他の一実施形態では、例えば、第１の実施形態で説明した顔の画像を収集するための処理や敵オブジェクトＥｏを決定するための処理など、他の任意の処理を行っているときに切り替えてもよい。また、第１の実施形態で説明したように仮想空間内を移動するオブジェクトが存在しない場合でも、上述で説明したように平面視画像と立体視画像とを切り替えることにより、ユーザに与える不快感を低減できることは言うまでもない。
【０１９６】
また、上述の説明では、３Ｄ調整スイッチ２５に関わらずに、立体視画像と平面視画像とを切り替えるものとした。しかしながら、他の一実施形態では、第１の実施形態や第２の実施形態で説明したように、ＣＰＵ３１１が立体視画像と平面視画像とを切り替える処理をしているときにおいて、３Ｄ調整スイッチ２５を用いて平面視画像を表示する表示モードにユーザが切り替えたときには、平面視表示をするようにしてもよい。これにより、ユーザ自身の状況判断によって、ゲーム装置から与えられる不快感をなくすことができる。
【０１９７】
また、第１の実施形態では、ゲーム装置１０を大きく動かしたときに、角速度に応じた仮想カメラ間隔Ｋｋに設定するものとした。しかしながら、他の一実施形態では、ゲーム装置１０を大きく動かしたときに、仮想カメラ間隔Ｋｋを瞬時にゼロに設定するようにしてもよい。これにより、ゲーム装置１０を大きく動かしたときには、同一の左目用画像と右目用画像とが瞬時に表示されるので、ユーザに与える不快感を瞬時に確実になくせる。
【０１９８】
また、第１の実施形態では、立体視画像から平面視画像に切り替えるときに角速度に応じて算出した仮想カメラ間隔Ｋｋが、切り替え開始時間Ｓｔから上限時間が経過したときに、上限値Ｊｔとなるように変化させる場合について説明した。しかしながら、他の一実施形態では、仮想カメラ間隔Ｋｋが上限値Ｊｔになるまでの上限時間を、平面視画像から立体視画像への切り替えを開始したときの仮想カメラ間隔Ｋｋに基づいて決定してもよい。この場合の上限時間は、０〜１秒の間で決定するようにしてもよいし、他の任意の時間に決定するようにしてもよい。
【０１９９】
また、上述の説明では、処理単位時間毎に外側撮像画像Ｏｇをスクリーンオブジェクトにテクスチャマッピングする場合を一例として説明した。しかしながら、他の一実施形態では、外側撮像画像Ｏｇをそのまま上側ＬＣＤ２２の表示画面に背景として表示されるようにし、敵オブジェクトＥｏや弾オブジェクトなどの表示オブジェクトを重畳して描画するようにしてもよい。
【０２００】
また、上述した説明では、本発明を携帯型のゲーム装置１０に適用した場合について説明したが、本発明は携帯型ゲーム装置に限定されない。例えば、据置型ゲーム装置、携帯電話機、簡易型携帯電話機（ＰＨＳ）、ＰＤＡ等の携帯情報端末にも本発明の適用は可能である。また、据置型ゲーム機やパーソナルコンピュータにも本発明の適用は可能である。
【０２０１】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載及び技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。従って、他に定義されない限り、本明細書中で使用される全ての専門用語及び技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書（定義を含めて）が優先する。
【産業上の利用可能性】
【０２０２】
本発明に係る情報処理プログラム、情報処理装置、情報処理システム及び情報処理方法は、ユーザに与える不快感を低減することが可能な情報処理プログラム、情報処理装置、情報処理システム及び情報処理方法等として有用である。
【符号の説明】
【０２０３】
１０    ゲーム装置
１１    下側ハウジング
１２    下側ＬＣＤ
１３    タッチパネル
１４    操作ボタン
１５    アナログスティック
１６    ＬＥＤ
１７    挿入口
１８    マイクロフォン用孔
１９    無線スイッチ
２１    上側ハウジング
２２    上側ＬＣＤ
２３    外側撮像部
２３ａ    外側左撮像部
２３ｂ    外側右撮像部
２４    内側撮像部
２５    ３Ｄ調整スイッチ
２６    ３Ｄインジケータ
２８    タッチペン
３１    情報処理部
３１１    ＣＰＵ
３１２    ＧＰＵ
３１３    ＶＲＡＭ
３２    メインメモリ
３３    外部メモリＩ／Ｆ
３４    データ保存用外部メモリＩ／Ｆ
３５    データ保存用内部メモリ
３６    無線通信モジュール
３７    ローカル通信モジュール
３８    ＲＴＣ
３９    加速度センサ
４０    角速度センサ
４１    電源回路
４２    Ｉ／Ｆ回路
４３    マイク
４４    スピーカ
４５    外部メモリ
４６    データ保存用外部メモリ
【図１】
0005639138.tif 000002
【図２】
0005639138.tif 000003
【図３】
0005639138.tif 000004
【図４】
0005639138.tif 000005
【図５】
0005639138.tif 000006
【図６】
0005639138.tif 000007
【図７】
0005639138.tif 000008
【図８】
0005639138.tif 000009
【図９】
0005639138.tif 000010
【図１０】
0005639138.tif 000011
【図１１】
0005639138.tif 000012
【図１２】
0005639138.tif 000013
【図１３】
0005639138.tif 000014
【図１４】
0005639138.tif 000015
【図１５】
0005639138.tif 000016
【図１６】
0005639138.tif 000017
【図１７】
0005639138.tif 000018
【図１８】
0005639138.tif 000019