(57)【特許請求の範囲】
【請求項１】
表示装置に実世界画像と仮想画像との合成画像を表示するコンピュータで実行される画像処理プログラムであって、
前記コンピュータに、
実カメラによって撮影された実世界画像を取得する実世界画像取得ステップと、
仮想空間を第１領域と前記第１領域よりも仮想カメラに近い第２領域とに区分し、一様の奥行値を有し、前記実世界画像が前記第２領域の背景として配置される境界面と、仮想オブジェクトと、の前記仮想カメラを基準とする奥行判定をおこない、前記奥行判定に基づいて、前記境界面及び前記実世界画像よりも前記仮想オブジェクトを優先的に、又は、前記仮想オブジェクトよりも前記境界面及び前記実世界画像を優先的に合成して前記合成画像を生成し、前記仮想オブジェクトの前記境界面に対する前記奥行判定が無効に設定されている場合に、前記仮想オブジェクトと前記境界面とに設定される、前記奥行判定に用いられる奥行値とは異なる優先度情報に基づいて、前記実世界画像より前記仮想オブジェクトの表示を優先して合成することで、前記背景としての前記実世界画像の背後の前記第１領域に存在する仮想オブジェクトを認識可能に前記合成画像を生成し、前記仮想オブジェクトの前記境界面に対する前記奥行判定が有効であり前記仮想オブジェクトの位置が前記境界面の所定の位置に対応している場合に、前記優先度情報に基づいて、前記境界面の前記所定の位置に対応する前記実世界画像の一部より前記仮想オブジェクトの表示を優先することで、前記背景としての前記実世界画像の背後の前記第１領域に存在する前記仮想オブジェクトを視認可能に前記合成画像を生成する画像生成ステップと、
前記合成画像を前記表示装置に表示する表示ステップと、
を実行させる画像処理プログラム。
【請求項２】
前記画像生成ステップは、隣接した領域を前記第１領域と前記第２領域に設定する、
請求項１に記載の画像処理プログラム。
【請求項３】
前記コンピュータに、さらに、所定の検知手段を用いて実カメラの少なくとも撮影方向
を繰り返し取得する撮影方向取得ステップを実行させ、
前記実世界画像取得ステップは前記実カメラによる実世界画像の取得を繰り返し、
前記画像生成ステップは、前記撮影方向取得ステップにおいて取得された現在の前記実カメラの撮影方向に応じて現在の仮想カメラの撮影方向を設定して前記仮想画像を生成し、かつ、前記実世界画像取得ステップにより繰り返し取得される現在の前記実世界画像を用いて、前記合成画像を生成する、
請求項１又は２に記載の画像処理プログラム。
【請求項４】
前記画像生成ステップは、さらに、前記境界面について前記所定の位置を判定可能な判定データに基づいて、現在の仮想カメラの撮影方向に対応する前記境界面に前記所定の位置が含まれることを判定する、
請求項１又は２に記載の画像処理プログラム。
【請求項５】
前記画像生成ステップは、さらに、前記境界面に所定の判定用マップを配置して、当該判定用マップを前記仮想カメラで撮影することにより、当該判定用マップのうち現在の仮想カメラの撮影方向に対応する部分を切り出し、当該切り出した判定用マップを用いて、前記実世界画像取得ステップにより取得される現在の前記実世界画像のうちの前記境界面の前記所定の位置に対応する前記一部を判定する、
請求項４に記載の画像処理プログラム。
【請求項６】
前記画像生成ステップは、前記仮想カメラの視野範囲を包含し、前記第１領域と前記第２領域との境界位置に配置されるスクリーンオブジェクトを前記境界面として、前記スクリーンオブジェクトに前記実世界画像を適用し、前記仮想オブジェクトと前記スクリーンオブジェクトとを前記仮想カメラで撮影することにより前記合成画像を生成する、
請求項１に記載の画像処理プログラム。
【請求項７】
前記画像生成ステップは、前記仮想オブジェクトの前記境界面に対する前記奥行判定が有効であり前記仮想オブジェクトの位置が前記境界面の前記所定の位置に対応している場合に、前記優先度情報に基づいて前記一部に開口が形成された前記実世界画像を用いることにより、当該開口を通して前記第１領域に存在する前記仮想オブジェクトが見える合成画像を生成する
請求項１に記載の画像処理プログラム。
【請求項８】
前記境界面の前記所定の位置は前記実世界画像の開口が形成される位置を示し、前記開口が前記表示装置に表示されるか否かに拘わらず、前記所定の位置は、前記仮想空間に固定配置される
請求項７に記載の画像処理プログラム。
【請求項９】
前記画像生成ステップは、前記優先度情報として不透明度を用いて、前記所定の位置に対応する前記実世界画像の前記一部を透明に設定して前記実世界画像に前記開口を形成し、前記開口から見える前記第１領域に存在する前記仮想オブジェクトの画像を含む前記表示画像を生成する
請求項７又は８に記載の画像処理プログラム。
【請求項１０】
前記コンピュータに、イベント発生条件が満たされることを条件に、前記実世界画像に前記開口を形成させる、前記境界面における前記所定の位置を新たに設定するステップをさらに実行させる
請求項７から９のいずれか１項に記載の画像処理プログラム。
【請求項１１】
前記コンピュータに、さらに、前記仮想オブジェクトを、前記境界面のうちの仮想カメ
ラの視野領域を通って、前記第１領域から前記第２領域に移動させる仮想オブジェクト移動制御ステップを実行させる、
請求項７から１０のいずれか１項に記載の画像処理プログラム。
【請求項１２】
前記仮想オブジェクト移動制御ステップによる前記移動があったときに、前記境界面のうちの仮想カメラの視野領域に、前記所定の位置を新たに設定するステップを
さらに含む
請求項１１に記載の画像処理プログラム。
【請求項１３】
所定の修復条件が満たされることを条件に、前記開口のサイズを小さくする
請求項７から１２のいずれか１項に記載の画像処理プログラム。
【請求項１４】
前記画像生成ステップにおいて、前記仮想オブジェクトの前記境界面に対する前記奥行判定が無効に設定されている場合に、前記仮想オブジェクトとして所定のオブジェクトのシルエットを表す仮想オブジェクトの表示が、前記実世界画像より優先して合成された合成画像を生成する
請求項１から１３のいずれか１項に記載の画像処理プログラム。
【請求項１５】
前記シルエットは、前記シルエットに対応する前記第１の領域に存在している仮想オブジェクトの向きに応じた輪郭を有する
請求項１４に記載の画像処理プログラム。
【請求項１６】
前記実世界画像は、単眼カメラまたは複眼カメラで撮像された画像であることを特徴とする
請求項１から１５のいずれか１項に記載の画像処理プログラム。
【請求項１７】
表示装置に画像を表示する画像処理装置であって、
実カメラによって撮影された実世界画像を取得する実世界画像取得手段と、
仮想空間を第１領域と前記第１領域よりも仮想カメラに近い第２領域とに区分し、一様の奥行値を有し、前記実世界画像が前記第２領域の背景として配置される境界面と、仮想オブジェクトと、の前記仮想カメラを基準とする奥行判定をおこない、前記奥行判定に基づいて、前記境界面及び前記実世界画像よりも前記仮想オブジェクトを優先的に、又は、前記仮想オブジェクトよりも前記境界面及び前記実世界画像を優先的に合成して前記合成画像を生成し、前記仮想オブジェクトの前記境界面に対する前記奥行判定が無効に設定されている場合に、前記仮想オブジェクトと前記境界面とに設定される、前記奥行判定に用いられる奥行値とは異なる優先度情報に基づいて、前記実世界画像より前記仮想オブジェクトの表示を優先して合成することで、前記背景としての前記実世界画像の背後の前記第１領域に存在する仮想オブジェクトを認識可能に前記合成画像を生成し、前記仮想オブジェクトの前記境界面に対する前記奥行判定が有効であり前記仮想オブジェクトの位置が前記境界面の所定の位置に対応している場合に、前記優先度情報に基づいて、前記境界面の前記所定の位置に対応する前記実世界画像の一部より前記仮想オブジェクトの表示を優先することで、前記背景としての前記実世界画像の背後の前記第１領域に存在する前記仮想オブジェクトを視認可能に前記合成画像を生成する画像生成手段と、
前記合成画像を前記表示装置に表示する表示制御手段と、
を備える画像処理装置。
【請求項１８】
複数の装置が通信可能に構成され、表示装置に画像を表示する画像処理システムであって、
実カメラによって撮影された実世界画像を取得する実世界画像取得手段と、
仮想空間を第１領域と前記第１領域よりも仮想カメラに近い第２領域とに区分し、一様
の奥行値を有し、前記実世界画像が前記第２領域の背景として配置される境界面と、仮想オブジェクトと、の前記仮想カメラを基準とする奥行判定をおこない、前記奥行判定に基づいて、前記境界面及び前記実世界画像よりも前記仮想オブジェクトを優先的に、又は、前記仮想オブジェクトよりも前記境界面及び前記実世界画像を優先的に合成して前記合成画像を生成し、前記仮想オブジェクトの前記境界面に対する前記奥行判定が無効に設定されている場合に、前記仮想オブジェクトと前記境界面とに設定される、前記奥行判定に用いられる奥行値とは異なる優先度情報に基づいて、前記実世界画像より前記仮想オブジェクトの表示を優先して合成することで、前記背景としての前記実世界画像の背後の前記第１領域に存在する仮想オブジェクトを認識可能に前記合成画像を生成し、前記仮想オブジェクトの前記境界面に対する前記奥行判定が有効であり前記仮想オブジェクトの位置が前記境界面の所定の位置に対応している場合に、前記優先度情報に基づいて、前記境界面の前記所定の位置に対応する前記実世界画像の一部より前記仮想オブジェクトの表示を優先することで、前記背景としての前記実世界画像の背後の前記第１領域に存在する前記仮想オブジェクトを視認可能に前記合成画像を生成する画像生成手段と、
前記合成画像を前記表示装置に表示する表示制御手段と、
を備える画像処理システム。
【請求項１９】
表示装置に画像を表示するための画像処理が可能な少なくとも１つの情報処理装置により構成される画像処理システムに含まれる１つのプロセッサまたは複数のプロセッサ間の協働により実行される画像処理方法であって、
実カメラによって撮影された実世界画像を取得するステップと、
仮想空間を第１領域と前記第１領域よりも仮想カメラに近い第２領域とに区分し、一様の奥行値を有し、前記実世界画像が前記第２領域の背景として配置される境界面と、仮想オブジェクトと、の前記仮想カメラを基準とする奥行判定をおこない、前記奥行判定に基づいて、前記境界面及び前記実世界画像よりも前記仮想オブジェクトを優先的に、又は、前記仮想オブジェクトよりも前記境界面及び前記実世界画像を優先的に合成して前記合成画像を生成し、前記仮想オブジェクトの前記境界面に対する前記奥行判定が無効に設定されている場合に、前記仮想オブジェクトと前記境界面とに設定される、前記奥行判定に用いられる奥行値とは異なる優先度情報に基づいて、前記実世界画像より前記仮想オブジェクトの表示を優先して合成することで、前記背景としての前記実世界画像の背後の前記第１領域に存在する仮想オブジェクトを認識可能に前記合成画像を生成し、前記仮想オブジェクトの前記境界面に対する前記奥行判定が有効であり前記仮想オブジェクトの位置が前記境界面の所定の位置に対応している場合に、前記優先度情報に基づいて、前記境界面の前記所定の位置に対応する前記実世界画像の一部より前記仮想オブジェクトの表示を優先することで、前記背景としての前記実世界画像の背後の前記第１領域に存在する前記仮想オブジェクトを視認可能に前記合成画像を生成するステップと、
前記合成画像を前記表示装置に表示するステップと、
を含む画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、実世界の画像を用いた画像処理を行う画像処理プログラム、画像処理装置、画像処理システム、及び、画像処理方法に関する。
【背景技術】
【０００２】
従来、コンピュータグラフィックス等による仮想物体を、実世界の画像を背景とした空間に表示することで、ユーザに仮想現実の世界を体験させる技術がある。
【０００３】
例えば、特許文献１には、実世界と仮想世界を違和感なく融合させるために、実世界の陰影と仮想世界の陰影とを違和感なく融合させる技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−０３３５３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１において開示される技術では、単に、実世界の画像が背景として用いられているに過ぎず、ユーザの興味を引くものではなかった。
【０００６】
そこで、本発明の目的は、ユーザの興味を引くことができる画像処理プログラム、画像処理装置、画像処理システム、及び、画像処理方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明は、上述した目的を達成するために、以下の構成を採用する。
【０００８】
本発明の画像処理プログラムは、表示装置に実世界画像と仮想画像との合成画像を表示するコンピュータで実行される。そして、本発明の画像処理プログラムは、当該コンピュータに、実カメラによって撮影された実世界画像を取得する実世界画像取得ステップと、実世界画像と第１仮想オブジェクトを表した仮想画像とを、第１仮想オブジェクトが実世界画像の背後に存在して見えるように合成して、合成画像を生成する画像生成ステップと、合成画像を表示装置に表示する表示ステップと、を含むステップを実行させる。
【０００９】
上記によれば、第１仮想オブジェクトが実世界画像の背後に存在して見えるように実世界画像と仮想画像とが合成されて表示されるため、合成画像の奥行感が向上する。これにより、上記によれば、ユーザの興味を引くことができる合成画像を生成することができる。
【００１０】
また、上記画像生成ステップは、所定の第１仮想領域に存在する第１仮想オブジェクトが実世界画像の背後に存在して見えるように合成画像を生成してもよい。
【００１１】
上記によれば、所定の仮想領域に存在する第１仮想オブジェクトが実世界画像の背後に存在して見えるように実世界画像と仮想画像とが合成されて表示されるため、ユーザの興味を引くことができる合成画像を生成することができる。
【００１２】
また、上記画像生成ステップは、第１仮想オブジェクトを表した仮想画像よりも実世界
画像が優先的に表示されるように合成して合成画像を生成してもよい。
【００１３】
上記によれば、実世界画像が第１仮想オブジェクトの画像よりも優先的に表示されるように合成された合成画像が生成されるため、実世界画像の現実感を壊さず、実世界画像を用いた背景に非現実を表す描画が行われる。これにより、上記によれば、ユーザの興味を引くことができる合成画像を生成することができる。
【００１４】
また、上記画像生成ステップは、さらに、所定の第２仮想領域に存在する第２仮想オブジェクトが実世界画像の前方に存在して見えるように合成画像を生成してもよい。
【００１５】
上記によれば、第１仮想オブジェクトが実世界画像の背後に存在して見えるとともに、第２仮想オブジェクトが実世界画像の前方に存在して見えるように合成された合成画像が生成されるため、ユーザの興味を引くことができる合成画像を生成することができる。
【００１６】
また、上記画像生成ステップは、第２仮想オブジェクトを表した仮想画像が実世界画像よりも優先的に表示されるように合成して合成画像を生成してもよい。
【００１７】
上記によれば、第２仮想オブジェクトの画像が実世界画像よりも優先的に表示されるように合成された合成画像が生成されるため、第２仮想オブジェクトの画像による非現実感を増すことになる。これにより、上記によれば、ユーザの興味を引くことができる表示画像を生成することができる。
【００１８】
また、上記画像生成ステップは、実世界画像を背景として第２仮想オブジェクトを合成し、かつ、第１仮想オブジェクトが背景の背後に存在して見えるように合成画像を生成してもよい。
【００１９】
上記によれば、第２仮想オブジェクトの背景として実世界画像が表示されるにもかかわらず、第１仮想オブジェクトが背景としての実世界画像の背後に存在して見えるため、ユーザの興味を引くことができる表示画像を生成することができる。
【００２０】
また、上記画像生成ステップは、所定の仮想空間のうちの第１領域を第１仮想領域とし、所定の仮想空間のうちの第２領域を第２仮想領域として設定してもよい。
【００２１】
上記によれば、所定の仮想空間を、実世界画像の背後に存在して見えるように合成される第１仮想オブジェクトが存在する領域と、実世界画像の前方に存在して見えるように合成される第２仮想オブジェクトが存在する領域とに分けることができる。
【００２２】
また、上記画像生成ステップは、隣接した領域を第１領域と第２領域に設定してもよい。
【００２３】
上記によれば、所定の仮想空間の隣接した領域を、実世界画像の背後に存在して見えるように合成される第１仮想オブジェクトが存在する領域と、実世界画像の前方に存在して見えるように合成される第２仮想オブジェクトが存在する領域とに分けることができる。
【００２４】
また、上記第２領域は、仮想カメラの位置を含んでもよい。そして、上記第１領域は、仮想カメラの位置からみて第２領域よりも離れた領域であってもよい。
【００２５】
上記によれば、仮想カメラの位置を基準として、所定の仮想空間を、実世界画像の背後に存在して見えるように合成される第１仮想オブジェクトが存在する領域と、実世界画像の前方に存在して見えるように合成される第２仮想オブジェクトが存在する領域とに分け
ることができる。
【００２６】
また、上記画像生成ステップは、合成画像において実世界画像が全域となるように合成画像を生成してもよい。
【００２７】
上記によれば、実世界画像による合成画像の現実感を維持することができる。
【００２８】
また、上記画像処理プログラムは、上記コンピュータに、さらに、所定の検知手段を用いて実カメラの少なくとも撮影方向を繰り返し取得する撮影方向取得ステップを実行させてもよい。そして、上記実世界画像取得ステップは、実カメラによる実世界画像の取得を繰り返してもよい。また、上記画像生成ステップは、撮影方向取得ステップにおいて取得された現在の実カメラの撮影方向に応じて現在の仮想カメラの撮影方向を設定して仮想画像を生成し、かつ、実世界画像取得ステップにより繰り返し取得される現在の実世界画像を用いて、合成画像を生成してもよい。
【００２９】
上記によれば、現在の実カメラ方向の向きに応じて仮想カメラの撮影方向が設定され、かつ、実カメラにより現在の実世界画像が取得される。そして、実カメラの現在の状態に応じて取得される実世界画像を用いた背景に、実カメラの現在の撮影方向に応じた非現実を表す描画が行われる。これにより、上記によれば、ユーザの興味を引くことができる表示画像を生成することができる。
【００３０】
また、上記画像処理プログラムは、上記コンピュータに、さらに、所定の検知手段を用いて実カメラの少なくとも撮影方向を繰り返し取得する撮影方向取得ステップを実行させてもよい。そして、上記実世界画像取得ステップは、実カメラによる実世界画像の取得を繰り返してもよい。また、上記画像生成ステップは、撮影方向取得ステップにおいて取得された現在の実カメラの撮影方向に応じて現在の仮想カメラの撮影方向を設定して仮想画像を生成し、かつ、実世界画像取得ステップにより繰り返し取得される現在の実世界画像を用いて、合成画像を生成してもよい。さらに、上記画像生成ステップは、第１領域と第２領域との境界面について所定の画像処理を付与すべき位置を判定可能な判定データに基づいて、現在の仮想カメラの撮影方向に対応する境界面に画像処理を付与すべきことが判定されたときに、実世界画像取得ステップにより取得される現在の実世界画像に画像処理を付与してもよい。
【００３１】
なお、ここで、所定の画像処理は、例えば、透明処理、半透明処理、所定の画像の合成処理（例えば、キャラクタ画像や汚れ画像の付着など）等を指す。
【００３２】
上記によれば、現在の実カメラ方向の向きに応じて仮想カメラの撮影方向が設定され、かつ、実カメラにより現在の実世界画像が取得される。そして、実カメラの現在の状態に応じて取得される実世界画像を用いた背景に、実カメラの現在の撮影方向に応じた非現実を表す描画が行われる。これにより、上記によれば、ユーザの興味を引くことができる表示画像を生成することができる。
【００３３】
また、上記によれば、第１領域と第２領域との境界面について所定の画像処理を付与すべき位置を判定可能な判定データに基づいて、現在の仮想カメラの撮影方向に対応する境界面に画像処理を付与すべきことが判定されたときに、実世界画像取得ステップにより取得される現在の実世界画像に画像処理を付与される。ここで、現在の仮想カメラの撮影方向は、現在の実カメラの撮影方向に対応しているため、画像処理を付与すべき位置は実カメラの撮影方向に対応する。したがって、上記によれば、実カメラの撮影方向に対応した実世界画像の位置に所定の画像処理を付与することができるため、実世界画像上の同じ位置、すなわち、現実世界の同じ位置に同じ所定の画像処理が付与される。これにより、上
記によれば、実世界画像が単なる背景ではなく、実世界が仮想世界と関係しているかのような感覚をユーザに与えることができる。
【００３４】
また、上記画像生成ステップは、さらに、判定データに基づいて、現在の仮想カメラの撮影方向に対応する境界面のうち画像処理を付与すべき位置を判定して、実世界画像取得ステップにおり取得される現在の実世界画像のうち対応位置に画像処理を付与してもよい。
【００３５】
上記によれば、所定の画像処理が、現在の実世界画像のうち対応位置に付与される。これにより、上記によれば、実世界画像が単なる背景ではなく、実世界が仮想世界と関係しているかのような感覚をユーザに与えることができる。
【００３６】
また、上記画像生成ステップは、さらに、第１領域と第２領域との境界面に所定の判定用マップを配置して、判定用マップを仮想カメラで撮影することにより、判定用マップのうち現在の仮想カメラの撮影方向に対応する部分を切り出し、切り出した判定用マップを用いて、実世界画像取得ステップにより取得される現在の実世界画像のうちの対応位置に画像処理を付与してもよい。
【００３７】
上記によれば、第１領域と第２領域との境界面に所定の判定用マップを用意することにより、現在の実世界画像のうち対応位置に所定の画像処理を付与することができる。これにより、上記によれば、所定の判定用マップを用意することで、実世界画像が単なる背景ではなく、実世界が仮想世界と関係しているかのような感覚をユーザに与えることができる。
【００３８】
また、上記画像生成ステップは、仮想空間の前記第１領域と第２領域との境界面と、第１仮想オブジェクトおよび第２仮想オブジェクトとの、仮想カメラを基準とする奥行判定を行い、奥行判定に基づいて、境界面よりも仮想カメラに近いと判定された仮想オブジェクトを実世界画像に優先的に、かつ、境界面よりも仮想カメラに遠いと判定された仮想オブジェクトよりも実世界画像を優先的に合成してもよい。
【００３９】
上記によれば、仮想オブジェクトを実世界画像よりも優先的に合成するか否かを、当該仮想オブジェクトの仮想カメラからの距離により判定することができる。
【００４０】
また、上記画像生成ステップは、仮想カメラの視野範囲を包含し、第１領域と第２領域との境界位置に配置されるスクリーンオブジェクトに実世界画像を適用し、第１仮想オブジェクトと第２仮想オブジェクトとスクリーンオブジェクトを仮想カメラで撮影することにより合成画像を生成してもよい。
【００４１】
上記によれば、実世界画像を適用したスクリーンオブジェクト、第１仮想オブジェクトおよび第２仮想オブジェクトを１つの仮想カメラで撮影することにより合成画像を生成することができる。これにより、上記によれば、簡易的にユーザの興味を引くことができる合成画像を生成することができる。
【００４２】
また、上記画像生成ステップにおいて、一部に開口が形成された実世界画像を用いることにより、この開口を通して第１仮想オブジェクトが見える合成画像を生成してもよい。
【００４３】
上記によれば、実世界画像に開口が表示され、当該開口を通じて実世界画像の背後に配置されたオブジェクト（第１仮想オブジェクト）が表示される。したがって、上記によれば、実世界画像の一部が実世界画像の背後に存在する非現実空間と合成された描画が行われ、ユーザの興味を引くことができる合成画像を生成することができる。
【００４４】
また、上記開口は、表示装置に表示されるか否かに拘わらず、仮想空間に固定配置されてもよい。
【００４５】
上記によれば、一旦、開口が形成された実世界画像が実カメラの撮影範囲から外れて、その後に戻ってきた場合であっても、開口が仮想空間の同じ位置に存在し続けるため、開口が実世界画像の元の位置に形成されていることをユーザに視認させることができる。これにより、上記によれば、一旦形成した非現実感を維持することができる。
【００４６】
また、上記画像生成ステップにおいて、仮想空間に設定された開口位置と、合成画像に含まれる実世界画像の仮想空間における位置との対応付けを行い、開口位置に対応する実世界画像の位置に、第１仮想オブジェクトを表す画像が表示された合成画像を生成してもよい。
【００４７】
上記によれば、実世界画像と開口位置とが仮想空間上で対応づけられ、実カメラの向きに応じた位置に開口が設けられるため、実カメラの向きを変えても実世界画像の同じ位置に開口が設けられた画像が生成される。したがって、上記によれば、ユーザに、実世界画像の世界と実世界画像の背後の世界とが繋がった世界観を体験させることができる表示画像を生成することができる。
【００４８】
また、上記画像生成ステップにおいて、開口位置に対応する実世界画像の位置を透明に設定し、この透明に設定された位置から見える第１仮想オブジェクトの画像を含む表示画像を生成してもよい。
【００４９】
上記によれば、実世界画像に対して透明を設定することのみで、簡易的に開口が設けられた表示画像を生成することができる。
【００５０】
また、上記画像処理プログラムは、コンピュータに、イベント発生条件が満たされることを条件に、仮想空間における開口の位置を新たに設定するステップを更に実行させてもよい。
【００５１】
上記によれば、イベント発生条件を設定することにより、開口を新たに設けることができるため、現実世界（実世界画像）が次々と非現実世界（実世界画像の背後）に浸食される描画を行うことでユーザの興味を引くことができる表示画像を生成することができる。
【００５２】
また、上記画像処理プログラムは、コンピュータに、さらに、第１仮想オブジェクトを、仮想オブジェクトよりも実世界画像が優先的に合成される第１領域と、実世界画像が仮想オブジェクトよりも優先的に合成される第２領域との境界面のうち仮想カメラの視野領域を通って、第１領域から第２領域に移動させる仮想オブジェクト移動制御ステップを実行させてもよい。
【００５３】
上記によれば、仮想オブジェクトよりも実世界画像が優先的に合成される第１領域と、実世界画像が仮想オブジェクトよりも優先的に合成される第２領域との境界面を移動する仮想オブジェクトの画像を含む合成画像が生成されるため、当該仮想オブジェクトによって強調された実世界画像の手前と背後の世界をユーザに認識させる表示画像を生成することができる。
【００５４】
また、上記画像処理プログラムは、上記仮想オブジェクト移動制御ステップによる移動があったときに、第１領域と第２領域の境界面のうちの仮想カメラの視野領域に開口を形成するステップをさらに含んでもよい。
【００５５】
上記によれば、第１領域と第２領域とを往来する仮想オブジェクトが実世界画像上に開口を生成する表示画像が生成されるため、当該仮想オブジェクト及び生成される開口を通じて、実世界画像の手前と背後の世界をユーザに意識させる表示画像を生成することができる。
【００５６】
また、所定の修復条件が満たされることを条件に、上記開口のサイズを小さくしてもよい。
【００５７】
上記によれば、実世界画像を表示する領域を操作することができるため、現実世界（実世界画像）と非現実世界とが繋がった世界観をユーザに体験させる表示画像を生成することができる。
【００５８】
また、上記画像生成ステップにおいて、実世界画像に第１仮想オブジェクトのシルエットの画像が合成された合成画像を生成してもよい。
【００５９】
上記によれば、実世界画像の背後に存在する第１仮想オブジェクトの動向をユーザに認識させることができる表示画像を生成することができる。
【００６０】
また、上記シルエットは、オブジェクトの向きに応じた輪郭を有してもよい。
【００６１】
上記によれば、実世界画像の背後に存在する第１仮想オブジェクトの向きをユーザに認識させることができる表示画像を生成することができる。
【００６２】
また、仮想カメラから見て実世界画像の前方と背後との境となる境界面における開口の位置と、開口以外の位置とのそれぞれに関して、実世界画像の背後に存在するオブジェクトの画像と、オブジェクトのシルエットの画像とのいずれを表示するかを決定するための値が予め設定されており、上記画像生成ステップにおいて、当該値に基づき、開口の位置においてはオブジェクトの画像が表示され、開口以外の位置においては撮影画像上にオブジェクトのシルエットの画像が重ねて表示された合成画像を生成してもよい。
【００６３】
上記によれば、予め設定された値の比較によりオブジェクトの画像とオブジェクトのシルエットの画像の描画の切り替えを実現することができるため、当該処理をＧＰＵの処理に任せることができる。
【００６４】
また、上記実世界画像は、単眼カメラまたは複眼カメラで撮像された画像であってもよい。
【００６５】
上記によれば、平面画像や立体視可能な画像が実世界画像として設定することができる。
【００６６】
なお、本発明の別態様としては、以上の何れかの構成を実現する画像処理装置であってもよい。また、本発明の別態様として、以上の何れかの構成を実現する、複数の装置が通信可能に構成された画像処理システムであってもよい。また、本発明の別態様として、以上の何れかの構成を実現する、表示装置に画像を表示する画像処理が可能な少なくとも１つの情報処理装置により構成される画像処理システムに含まれる１つのプロセッサまたは複数のプロセッサ間で協働により実行される画像処理方法であってもよいし、このような画像処理プログラムを記録したコンピュータが読み取り可能な記憶媒体であってもよい。
【発明の効果】
【００６７】
本発明によれば、ユーザの興味を引くことができる画像処理プログラム、画像処理システム、画像処理方法、及び、画像処理装置を提供することができる。
【図面の簡単な説明】
【００６８】
【図１】本実施形態における画像処理プログラムを実行する装置の一例であるゲーム装置の開いた状態を示す正面図
【図２】本実施形態における画像処理プログラムを実行する装置の一例であるゲーム装置の開いた状態を示す側面図
【図３Ａ】本実施形態における画像処理プログラムを実行する装置の一例であるゲーム装置の閉じた状態を示す左側面図
【図３Ｂ】本実施形態における画像処理プログラムを実行する装置の一例であるゲーム装置の閉じた状態を示す正面図
【図３Ｃ】本実施形態における画像処理プログラムを実行する装置の一例であるゲーム装置の閉じた状態を示す右側面図
【図３Ｄ】本実施形態における画像処理プログラムを実行する装置の一例であるゲーム装置の閉じた状態を示す背面図
【図４】本実施形態における画像処理プログラムを実行する装置の一例であるゲーム装置をユーザが両手で把持する様子の例を示す図
【図５】本実施形態における画像処理プログラムを実行する装置の一例であるゲーム装置をユーザが片手で把持する様子の例を示す図
【図６】本実施形態における画像処理プログラムを実行する装置の一例であるゲーム装置の内部構成の例を示すブロック図
【図７Ａ】実施形態における画像処理プログラムの一例である仮想空間の概要を示す図
【図７Ｂ】実施形態におけるスクリーンモデルとαテクスチャの関係を示す図
【図８】実施形態における画像処理プログラムの一例である仮想空間の概要を示す図
【図９】実施形態における画像処理プログラムの一例であるゲームプログラムにおいて定義される仮想の３次元空間（ゲーム世界）を示す図
【図１０】本実施形態における画像処理プログラムを実行する装置の一例であるゲーム装置の上側ＬＣＤに表示される表示形態例の各処理段階の一例を示す図
【図１１】本実施形態における画像処理プログラムを実行する装置の一例であるゲーム装置の上側ＬＣＤに表示される表示形態例の各処理段階の一例を示す図
【図１２】本実施形態における画像処理プログラムを実行する装置の一例であるゲーム装置の上側ＬＣＤに表示される表示形態例の各処理段階の一例を示す図
【図１３】本実施形態における画像処理プログラムを実行する装置の一例であるゲーム装置の上側ＬＣＤに表示される表示形態例の各処理段階の一例を示す図
【図１４Ａ】影オブジェクトのシルエットモデルを上から見た一例を示す図
【図１４Ｂ】影オブジェクトのシルエットモデルの一例を示す図
【図１５】各オブジェクトの不透明度の一例を示す図
【図１６】図１のゲーム装置で本実施形態における画像処理プログラムを実行することに応じて、メインメモリに記憶される各種データの一例を示す図
【図１７】図１のゲーム装置で本実施形態における画像処理プログラムを実行することによってゲーム装置が画像処理する動作の一例を示すフローチャート
【図１８】本実施形態における画像処理プログラムの敵オブジェクト関連処理の詳細な動作の一例を示すサブルーチンのフローチャート
【図１９】本実施形態における画像処理プログラムの弾オブジェクト関連処理の詳細な動作の一例を示すサブルーチンのフローチャート
【図２０Ａ】本実施形態における画像処理プログラムの表示画像の更新処理（第１の描画方法）の詳細な動作の一例を示すサブルーチンのフローチャート
【図２０Ｂ】本実施形態における画像処理プログラムの表示画像の更新処理（第２の描画方法）の詳細な動作の一例を示すサブルーチンのフローチャート
【図２１】第１の描画方法におけるレンダリング処理の一例を説明するための説明図
【図２２】図２１の各オブジェクトの位置関係を説明するための説明図
【図２３】実カメラ画像をレンダリングする処理の一例を説明するための説明図
【図２４】実カメラ画像をレンダリングする際の座標の一例を説明するための説明図
【図２５】仮想空間をレンダリングする処理の一例を説明するための説明図
【図２６】図２５の各オブジェクトの位置関係説明するための説明図
【図２７】仮想空間をレンダリングする際の境界面の座標の一例を説明するための説明図
【図２８】本実施形態における画像処理プログラムにより生成される表示画像の一例を示す図
【図２９】本実施形態における画像処理プログラムにおける敵オブジェクトの出現演出の一例を示す図
【発明を実施するための形態】
【００６９】
以下、本発明に係る一実施形態としての画像処理プログラムを実行する画像処理装置について具体例を挙げて説明する。ただし、以下に挙げる実施形態は例示であり、本発明は以下の実施形態の構成に限定されない。
【００７０】
なお、以下に挙げる実施形態において、コンピュータが処理するデータをグラフや自然言語を用いて例示しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメタ、マシン語、配列等で指定される。本発明は、データの表現方法を限定するものではない。
【００７１】
§１  ハードウェア構成
まず、図面を参照して、本実施形態に係る画像処理プログラムを実行する画像処理装置の一例として携帯型のゲーム装置１０について説明する。ただし、本発明に係る画像処理装置はゲーム装置に限定されるものではない。本発明に係る画像処理装置は、例えば、汎用コンピュータ等、任意のコンピュータシステムであればよい。また、携帯型でなくてもよい。
【００７２】
なお、以下に示される本実施形態に係る画像処理プログラムはゲームプログラムであるが、本発明に係る画像処理プログラムはゲームプログラムに限定されるものではない。本発明の画像処理プログラムは、任意のコンピュータシステムで実行されることによって適用することができる。また、本実施形態の各処理をネットワーク化された複数の装置で分散処理してもよいし、サーバで主要な処理を行った後、端末に処理結果を配信するネットワークシステムや、いわゆるクラウドネットワークで実施してもよい。
【００７３】
図１、図２、図３Ａ、図３Ｂ、図３Ｃ、及び図３Ｄは、ゲーム装置の外観の一例を示す平面図である。
【００７４】
図１−図３Ｄに示されるゲーム装置１０は、撮像部（カメラ）を内蔵しており、当該撮像部によって画像を撮像（以下、「撮影」とも記載する）し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置１０は、交換可能なメモリカード内に記憶されたゲームプログラム、又は、サーバや他のゲーム装置からネットワークを介して受信したゲームプログラムを実行可能である。また、ゲーム装置１０は、仮想空間に設定された仮想カメラで撮像したときの画像を、コンピュータグラフィックス処理により生成して画面に表示することもできる。
【００７５】
図１−図３Ｄに示されるゲーム装置１０は、下側ハウジング１１および上側ハウジング
２１を有する。下側ハウジング１１と上側ハウジング２１とは、ヒンジ構造により開閉可能（折り畳み可能）に連結されている。すなわち、上側ハウジング２１は、下側ハウジング１１に対して回動（揺動）自在に取り付けられている。これにより、ゲーム装置１０は、上側ハウジング２１が下側ハウジング１１に対して密着した状態となる閉状態（図３Ａ，図３Ｃ）と、上側ハウジング２１が下側ハウジング１１に対して回動し、密着場外が解除された状態（開状態）との二つの形態を有する。上側ハウジング２１の回動は、図２に示すように、開状態において、上側ハウジング２１と下側ハウジング１１とが略平行となる位置まで許容される（図２参照）。
【００７６】
図１は、開いた状態（開状態）におけるゲーム装置１０の一例を示す正面図である。ゲーム装置１０の下側ハウジング１１及び上側ハウジング２１のそれぞれは、平面形状が長手方向（横方向（左右方向）：図中ｘ方向）と短手方向（（上下方向）：図中ｙ方向）とを有する横長の長方形である板状に形成されている。上側ハウジング２１の長手方向の下側の外縁部と、下側ハウジング１１の長手方向の上側の外縁部とがヒンジ構造により回動可能に連結されている。ユーザがゲーム装置１０を使用する際には、通常、ゲーム装置１０は開状態にされる。そして、ユーザがゲーム装置１０を保管する際には、ゲーム装置１０は閉状態にされる。また、上側ハウジング２１は、下側ハウジング１１との連結部分に生じる摩擦力により、下側ハウジング１１との間でユーザが所望する角度をなして停止した状態を維持することができる。つまり、ゲーム装置１０は、上側ハウジング２１を下側ハウジング１１に対して所望角度で静止させることができる。一般に、上側ハウジング２１に設けられた画面の視認性の観点から、上側ハウジング２１は、下側ハウジング１１との間で、直角又は鈍角をなす位置まで開いた状態とされる。以降、ゲーム装置１０の閉状態において、上側ハウジング２１と下側ハウジング１１とのそれぞれの対向面を内側面、又は、主面と称する。また、上側ハウジング２１と下側ハウジング１１とのそれぞれの内側面（主面）とは反対側の面を、外側面と称する。
【００７７】
ゲーム装置１０の下側ハウジング１１の上側長辺部分には、下側ハウジング１１の内側面（主面）１１Ｂに対して垂直な方向（図中ｚ方向）に突出した突起部（軸受け部）１１Ａが設けられる。また、上側ハウジング２１の下側長辺部分には、上側ハウジング２１の下側面から当該下側面に垂直な方向に突起する突起部（軸受け部）２１Ａが設けられる。突起部１１Ａ，２１Ａ，１１Ａ内には、例えば、一方の突起部１１Ａから突起部２１Ａを貫通し他方の突起部１１Ａまでｘ方向に延びる回動軸（図示せず）が収容されており、この回動軸を中心に、上側ハウジング２１が下側ハウジング１１に対して相対的に回動自在となっている。このようにして、下側ハウジング１１と上側ハウジング２１とが、折り畳み可能に接続される。
【００７８】
図１に示される下側ハウジング１１の内側面１１Ｂには、下側ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）１２、タッチパネル１３、各操作ボタン１４Ａ〜１４Ｌ、アナログスティック１５、第１ＬＥＤ１６Ａ、および、マイクロフォン用孔１８が設けられる。
【００７９】
下側ＬＣＤ１２は下側ハウジング１１に収納される。下側ＬＣＤ１２の平面形状は横長の長方形であり、その長辺方向が下側ハウジング１１の長手方向（図１中ｘ方向）に一致するように配置される。下側ＬＣＤ１２は、下側ハウジング１１の内側面（主面）中央に設けられる。下側ハウジング１１の内側面に設けられた開口部から下側ＬＣＤ１２の画面が露出する。ゲーム装置１０を使用しない場合には上記閉状態としておくことによって、下側ＬＣＤ１２の画面が汚れたり傷ついたりすることを防止することができる。下側ＬＣＤ１２の画素数は、一例として、３２０ｄｏｔ×２４０ｄｏｔ（横×縦）である。下側ＬＣＤ１２は、後述する上側ＬＣＤ２２とは異なり、画像を（立体視可能ではなく）平面的に表示する表示装置である。なお、第１実施形態では表示装置としてＬＣＤを用いている
が、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置など、他の表示装置を利用してもよい。また、下側ＬＣＤ１２として、所望の解像度を有する表示装置を利用することができる。
【００８０】
タッチパネル１３はゲーム装置１０の入力装置の一つである。タッチパネル１３は、下側ＬＣＤ１２の画面上を覆うように装着されている。第１実施形態では、タッチパネル１３は、抵抗膜方式のタッチパネルが用いられる。ただし、タッチパネル１３は、抵抗膜方式に限らず、例えば、静電容量方式等、任意の押圧式のタッチパネルを用いることができる。また、第１実施形態では、タッチパネル１３は、下側ＬＣＤ１２の解像度と同解像度（検出精度）のものが利用される。ただし、必ずしもタッチパネル１３の解像度と下側ＬＣＤ１２の解像度とが一致している必要はない。
【００８１】
各操作ボタン１４Ａ〜１４Ｌは、所定の入力を行うための入力装置である。下側ハウジング１１の内側面（主面）には、各操作ボタン１４Ａ〜１４Ｌのうち、十字ボタン１４Ａ（方向入力ボタン１４Ａ）、ボタン１４Ｂ、ボタン１４Ｃ、ボタン１４Ｄ、ボタン１４Ｅ、電源ボタン１４Ｆ、セレクトボタン１４Ｊ、ＨＯＭＥボタン１４Ｋ、およびスタートボタン１４Ｌが設けられる。
【００８２】
十字ボタン１４Ａは、十字の形状を有しており、少なくとも上下左右の方向を指示するボタンを有している。十字ボタン１４Ａは、下側ＬＣＤ１２より左側の領域中の下部領域に設けられる。十字ボタン１４Ａは、下側ハウジング１１を把持した左手の親指で操作可能な位置に設計される。
【００８３】
ボタン１４Ｂ、ボタン１４Ｃ、ボタン１４Ｄ、及びボタン１４Ｅの４つのボタンは、下側ＬＣＤ１２より右側の領域中の上部に、十字状に配置されて設けられる。ボタン１４Ｂ、ボタン１４Ｃ、ボタン１４Ｄ、及びボタン１４Ｅは、下側ハウジング１１を把持するユーザの右手の親指が自然と位置するところに設置される。電源ボタン１４Ｆは、下側ＬＣＤ１２の右側の領域中の下部に配置される。
【００８４】
セレクトボタン１４Ｊ、ＨＯＭＥボタン１４Ｋ、及びスタートボタン１４Ｌは、それぞれ、下側ＬＣＤ１２の下側領域に設置される。
【００８５】
ボタン１４Ａ〜１４Ｅ、セレクトボタン１４Ｊ、ＨＯＭＥボタン１４Ｋ、およびスタートボタン１４Ｌには、ゲーム装置１０によって実行されるプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン１４Ａは、選択操作やゲーム中のキャラクタの移動操作等に用いられる。例えば、各操作ボタン１４Ｂ〜１４Ｅは、決定操作やキャンセル操作等に用いられる。また、電源ボタン１４Ｆは、ゲーム装置１０の電源をオン／オフするために用いられる。
【００８６】
アナログスティック１５は、方向を指示するデバイスである。アナログスティック１５は、下側ハウジング１１の内側面（主面）の下側ＬＣＤ１２より左側の領域中の上部に設けられる。すなわち、アナログスティック１５は十字ボタン１４Ａの上方に設けられる。また、アナログスティック１５は、下側ハウジング１１を把持した左手の親指で操作可能な位置に設計される。アナログスティック１５が上部領域に設けられたことにより、下側ハウジング１１を把持するユーザの左手の親指が自然と位置するところにアナログスティック１５が配置される。そして、十字ボタン１４Ａは、下側ハウジング１１を把持するユーザの左手の親指を少し下にずらした位置に配置される。それゆえ、ユーザは、下側ハウジング１１を把持する左手の親指を上下に動かすだけで、アナログスティック１５と十字ボタン１４Ａを操作することができる。アナログスティック１５は、そのキートップが、下側ハウジング１１の内側面に平行にスライドするように構成されている。アナログステ
ィック１５は、ゲーム装置１０が実行するプログラムに応じて機能する。例えば、３次元仮想空間に所定のオブジェクトが登場するゲームがゲーム装置１０によって実行される場合、アナログスティック１５は、当該所定のオブジェクトを３次元仮想空間内で移動させるための入力装置として機能する。この場合において、所定のオブジェクトは、アナログスティック１５のキートップがスライドした方向に移動される。なお、アナログスティック１５として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いてもよい。
【００８７】
なお、ボタン１４Ｂ、ボタン１４Ｃ，ボタン１４Ｄ、及びボタン１４Ｅの４つのボタンとアナログスティック１５とは、下側ＬＣＤ１２を挟んで、左右対称な位置に配置される。これにより、ゲームプログラムによっては、例えば、左利きの人が、ボタン１４Ｂ、ボタン１４Ｃ，ボタン１４Ｄ、及びボタン１４Ｅの４つのボタンを使用して方向指示入力をすることも可能である。
【００８８】
第１ＬＥＤ１６Ａ（図１）は、ゲーム装置１０の電源のＯＮ／ＯＦＦ状態をユーザに通知する。第１ＬＥＤ１６Ａは、下側ハウジング１１の内側面（主面）と下側ハウジング１１の下側面とが共有する端部の右側に設けられる。これによって、ユーザは、ゲーム装置１０の開閉状態にかかわらず、第１ＬＥＤ１６Ａの点灯の有無を視認することができる。
【００８９】
マイクロフォン用孔１８は、音声入力装置としてのゲーム装置１０に内蔵されるマイクロフォン用の孔である。内蔵されたマイクロフォンは、マイクロフォン用孔１８から外部の音を検出する。マイクロフォン及びマイクロフォン用孔１８は、下側ハウジング１１の内側面（主面）の電源ボタン１４Ｆの下方に設けられる。
【００９０】
下側ハウジング１１の上側面には、タッチペン２８の挿入口１７（図１、図３Ｄにおいて点線で示される）が設けられている。挿入口１７から、タッチパネル１３に対する操作を行うために用いられるタッチペン２８を収納することができる。なお、タッチパネル１３を用いた入力は、通常タッチペン２８を用いて行われる。但し、タッチペン２８の代わりにユーザの指を用いることもできる。
【００９１】
下側ハウジング１１の上側面にはゲーム装置１０とゲームプログラムを記録した外部メモリ４５を挿入するための挿入口１１Ｄ（図１、図３Ｄにおいて点線で示される）が設けられる。挿入口１１Ｄの内部には、外部メモリ４５と内部回路とを電気的に着脱自在に接続するためのコネクタ（図示せず）が設けられる。外部メモリ４５がゲーム装置１０に接続されることにより、内部回路に含まれるプロセッサによって所定のゲームプログラムが実行される。なお、上記コネクタおよび挿入口１１Ｄは、下側ハウジング１１の他の側面（例えば、右側面等）に設けられてもよい。
【００９２】
図１に示される上側ハウジング２１の内側面２１Ｂには、スピーカ孔２１Ｅ、上側ＬＣＤ２２、内側撮像部２４、３Ｄ調整スイッチ２５、および３Ｄインジケータ２６が設けられる。
【００９３】
上側ＬＣＤ２２は、立体視可能な画像を表示することが可能な表示装置である。上側ＬＣＤ２２は、実質的に同一の表示領域を用いて左目用画像と右目用画像とを表示することが可能である。具体的には、上側ＬＣＤ２２は、左目用画像と右目用画像とが所定単位で（例えば、１列ずつ）横方向に交互に表示される方式の表示装置である。なお、上側ＬＣＤ２２は、左目用画像と右目用画像とが交互に表示される方式の表示装置であってもよい。また、上側ＬＣＤ２２は、裸眼立体視可能な表示装置である。この場合、上側ＬＣＤ２２は、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式（視差バリア方式
）のものが用いられる。第１実施形態では、上側ＬＣＤ２２は、パララックスバリア方式の表示装置とする。上側ＬＣＤ２２は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像（立体画像）を表示する。すなわち、上側ＬＣＤ２２は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像をそれぞれ視認させることにより、ユーザにとって立体感のある立体画像（立体視可能な画像）を表示することができる。また、上側ＬＣＤ２２は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる（上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである。）。このように、上側ＬＣＤ２２は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する（平面視画像を表示する）平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する３Ｄ調整スイッチ２５によって行われる。
【００９４】
上側ＬＣＤ２２は、上側ハウジング２１に収納される。上側ＬＣＤ２２は、横長の長方形であり、長辺方向が上側ハウジング２１の長辺方向に一致する状態で、上側ハウジング２１の中央に配置される。上側ＬＣＤ２２の画面の面積は、一例として下側ＬＣＤ１２の画面の面積よりも大きく設定される。具体的には、上側ＬＣＤ２２の画面は、下側ＬＣＤ１２の画面よりも横長に設定される。すなわち、上側ＬＣＤ２２の画面のアスペクト比における横幅の割合は、下側ＬＣＤ１２の画面のアスペクト比における横幅の割合よりも大きく設定される。
【００９５】
上側ＬＣＤ２２の画面は、上側ハウジング２１の内側面（主面）２１Ｂに設けられ、上側ハウジング２１の内側面２１Ｂに設けられた開口部から上側ＬＣＤ２２の画面が露出する。また、上側ハウジング２１の内側面は、透明なスクリーンカバー２７によって覆われている。スクリーンカバー２７は、上側ＬＣＤ２２の画面を保護するとともに、上側ＬＣＤ２２と上側ハウジング２１の内側面と一体的にさせ、これにより統一感を持たせている。上側ＬＣＤ２２の画素数は、一例として８００ｄｏｔ×２４０ｄｏｔ（横×縦）である。第１実施形態では、上側ＬＣＤ２２は液晶表示装置であるとして説明される。ただし、これに限らず、例えば、ＥＬを利用した表示装置などが利用されてもよい。また、上側ＬＣＤ２２として、任意の解像度の表示装置を利用することができる。
【００９６】
スピーカ孔２１Ｅは、ゲーム装置１０の音声出力装置としてのスピーカ４４からの音声を出力するための孔である。スピーカ２１Ｅは、上側ＬＣＤを挟んで左右対称に設置される。後述するスピーカ４４からの音声がこのスピーカ孔２１Ｅから出力される。
【００９７】
内側撮像部２４は、上側ハウジング２１の内側面２１Ｂの内向きの法線方向を撮像方向とする撮像部である。内側撮像部２４は、所定の解像度を有する撮像素子と、レンズとを含む。撮像素子は、例えば、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等である。レンズは、ズーム機構を有するものでもよい。
【００９８】
内側撮像部２４は、上側ハウジング２１の内側面２１Ｂの、上側ＬＣＤ２２の画面の上端よりも上方に配置され、上側ハウジング２１の左右方向に関して中央の位置（上側ハウジング２１（上側ＬＣＤ２２の画面）を左右に２等分する線の線上）に配置される。このように内側撮像部２４が配置されることによって、ユーザが上側ＬＣＤ２２を正視した際、内側撮像部２４によってユーザの顔を正面から撮像することができる。外側左撮像部２３ａおよび外側右撮像部２３ｂについては、後述される。
【００９９】
３Ｄ調整スイッチ２５は、スライドスイッチであり、上述のように上側ＬＣＤ２２の表示モードを切り替えるために用いられるスイッチである。また、３Ｄ調整スイッチ２５は、上側ＬＣＤ２２に表示された立体視可能な画像（立体画像）の立体感を調整するために
用いられる。３Ｄ調整スイッチ２５は、ゲーム装置１０の開閉状態に関わらずユーザが視認できるように、上側ハウジング２１の内側面２１Ｂと右側面とが共有する端部に設けられる。３Ｄ調整スイッチ２５は、所定方向（例えば、上下方向）の任意の位置にスライド可能なスライダを有しており、当該スライダの位置に応じて上側ＬＣＤ２２の表示モードが設定される。
【０１００】
例えば、３Ｄ調整スイッチ２５のスライダが最下点位置に配置されている場合、上側ＬＣＤ２２が平面表示モードに設定され、上側ＬＣＤ２２の画面には平面画像が表示される。なお、上側ＬＣＤ２２を立体表示モードのままとして、左目用画像と右目用画像とを同一の画像とすることにより平面表示してもよい。一方、上記最下点位置より上側にスライダが配置されている場合、上側ＬＣＤ２２は立体表示モードに設定される。この場合、上側ＬＣＤ２２の画面には立体視可能な画像が表示される。ここで、スライダが上記最下点位置より上側に配置されている場合、スライダの位置に応じて、立体画像の見え方が調整される。具体的には、スライダの位置に応じて、右目用画像および左目用画像における横方向の位置のずれ量が調整される。
【０１０１】
３Ｄインジケータ２６は、上側ＬＣＤ２２が立体表示モードか否かを示す。例えば、３Ｄインジケータ２６は、ＬＥＤであり、上側ＬＣＤ２２の立体表示モードが有効の場合に点灯する。３Ｄインジケータ２６は、上側ハウジング２１の内側面２１Ｂに設けられ、上側ＬＣＤ２２の画面近傍に設けられる。このため、ユーザが上側ＬＣＤ２２の画面を正視した場合、ユーザは３Ｄインジケータ２６を視認しやすい。したがって、ユーザは、上側ＬＣＤ２２の画面を視認している状態でも、上側ＬＣＤ２２の表示モードを容易に認識することができる。
【０１０２】
図２は、開状態におけるゲーム装置１０の一例を示す右側面図である。下側ハウジング１１の右側面には、第２ＬＥＤ１６Ｂと、無線スイッチ１９と、Ｒボタン１４Ｈとが設けられている。第２ＬＥＤ１６Ｂは、点灯により、ゲーム装置１０の無線通信の確立状況をユーザに通知する。ゲーム装置１０は、他の機器との間で無線通信を行うことが可能であり、第２ＬＥＤ１６Ｂは、他の機器との無線通信が確立している場合に点灯する。ゲーム装置１０は、例えば、ＩＥＥＥ８０２．１１．ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。無線スイッチ１９は、この無線通信の機能を有効／無効にする。Ｒボタン１４Ｈについては、後述される。
【０１０３】
図３Ａは、閉じた状態（閉状態）におけるゲーム装置１０の一例を示す左側面図である。図３Ａに示される下側ハウジング１１の左側面には、開閉可能なカバー部１１Ｃと、Ｌボタン１４Ｈと、音量ボタン１４Ｉとが設けられる。音量ボタン１４Ｉは、ゲーム装置１０が備えるスピーカ４４の音量を調整するためのボタンである。
【０１０４】
カバー部１１Ｃの内側には、ゲーム装置１０とデータ保存用外部メモリ４６（図１参照）とを電気的に接続するためのコネクタ（図示せず）が設けられる。データ保存用外部メモリ４６は、上記コネクタに着脱自在に装着される。データ保存用外部メモリ４６は、例えば、ゲーム装置１０によって撮像された画像のデータを記憶（保存）するために用いられる。なお、上記コネクタおよびカバー部１１Ｃは、下側ハウジング１１の右側面に設けられてもよい。Ｌボタン１４Ｈについては後述される。
【０１０５】
図３Ｂは、閉状態におけるゲーム装置１０の一例を示す正面図である。図３Ｂに示される上側ハウジング２１の外側面には、外側左撮像部２３ａ、外側右撮像部２３ｂ、及び第３ＬＥＤ２９が設けられる。
【０１０６】
外側左撮像部２３ａ及び外側右撮像部２３ｂは、それぞれ所定の共通の解像度を有する
撮像素子（例えば、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等）と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。外側左撮像部２３ａ及び外側右撮像部２３ｂの撮像方向は、いずれも外側面２１Ｄの外向きの法線方向である。すなわち、外側左撮像部２３ａの撮像方向および外側右撮像部２３ｂの撮像方向（カメラの視軸）は、平行である。以降、外側左撮像部２３ａ及び外側右撮像部２３ｂをまとめて、外側撮像部２３と称する。
【０１０７】
外側撮像部２３を構成する外側左撮像部２３ａおよび外側右撮像部２３ｂは、上側ＬＣＤ２２の画面の横方向に並べて配置される。すなわち、２つの外側左撮像部２３ａおよび外側右撮像部２３ｂを結んだ直線が上側ＬＣＤ２２の画面の横方向に配置されるように、外側左撮像部２３ａおよび外側右撮像部２３ｂが配置される。また、ユーザが上側ハウジング２１を下側ハウジング１１に対して所定角度（例えば９０°）揺動させ、上側ＬＣＤ２２の画面を正面から視認した場合に、外側左撮像部２３ａは画面を視認するユーザの左側に位置し、外側右撮像部２３ｂはユーザの右側に位置する（図１参照）。外側左撮像部２３ａおよび外側右撮像部２３ｂの間隔は、人間の両目の間隔程度に設定され、例えば、３０ｍｍ〜７０ｍｍの範囲で設定されてもよい。なお、外側左撮像部２３ａおよび外側右撮像部２３ｂの間隔は、この範囲に限らない。なお、第１実施形態においては、外側左撮像部２３ａおよび外側右撮像部２３ｂは、上側ハウジング２１に固定されており、撮像方向を変更することはできない。
【０１０８】
外側左撮像部２３ａおよび外側右撮像部２３ｂは、上側ＬＣＤ２２（上側ハウジング２１）の上側ＬＣＤ２２を左右に２等分する線に対して対称の位置にそれぞれ配置される。また、外側左撮像部２３ａおよび外側右撮像部２３ｂは、上側ハウジング２１を開いた状態において、上側ハウジング２１の上部であって、上側ＬＣＤ２２の画面の上端よりも上方の位置の裏側に配置される（図１参照）。すなわち、外側左撮像部２３ａおよび外側右撮像部２３ｂは、上側ハウジング２１の外側面であって、上側ＬＣＤ２２を外側面に投影した場合、投影した上側ＬＣＤ２２の画面の上端よりも上方に配置される。
【０１０９】
このように、外側左撮像部２３ａ及び外側右撮像部２３ｂが上側ＬＣＤ２２の短手方向中央線に対して線対称に配置されることにより、ユーザが上側ＬＣＤ２２を正視した場合に、外側撮像部２３それぞれの撮像方向をユーザの左右の目それぞれの視線方向と一致させることができる。また、外側撮像部２３は、上側ＬＣＤ２２の画面の上端より上方の裏側の位置に配置されるため、外側撮像部２３と上側ＬＣＤ２２とが上側ハウジング２１の内部で干渉することがない。さらに、外側左撮像部２３ａおよび外側右撮像部２３ｂは、図３Ｂにおいて点線で示される上側ハウジング２１の内側面に設けられた内側撮像部２４を上側ハウジング２１の外側面に投影した場合、当該投影された内側撮像部２４を挟んで左右対称に設けられる。したがって、外側撮像部２３を上側ＬＣＤ２２の画面の裏側に配置する場合や、内側撮像部２４の裏側に外側撮像部２３を配置する場合に比べて、上側ハウジング２１を薄く構成することが可能となる。
【０１１０】
外側左撮像部２３ａと外側右撮像部２３ｂとは、ゲーム装置１０が実行するプログラムによって、ステレオカメラとして使用することが可能である。また、プログラムによっては、２つの外側撮像部（外側左撮像部２３ａおよび外側右撮像部２３ｂ）のいずれか一方を単独で用いて、外側撮像部２３を非ステレオカメラとして使用可能である。外側撮像部２３ａ及び２３ｂをステレオカメラとして機能させるプログラムが実行されている場合、外側左撮像部２３ａは、ユーザの左目で視認される左目用画像を撮像し、外側右撮像部２３ｂは、ユーザの右目で視認される右目用画像を撮像する。また、プログラムによっては、２つの外側撮像部（外側左撮像部２３ａおよび外側右撮像部２３ｂ）で撮像した画像を合成してまたは補完的に使用することにより撮像範囲を広げた撮像をおこなうことも可能である。また、外側撮像部２３ａと２３ｂとの一方を用いて撮像された単一の画像から、
視差を有する左目用画像及び右目用画像を生成して、あたかも二つのカメラで撮影されたかのような疑似ステレオ画像を生成することもできる。この疑似ステレオ画像の生成において、仮想カメラ間の距離は、適宜設定可能とされる。
【０１１１】
第３ＬＥＤ２９は、外側撮像部２３が作動している場合に点灯し、外側撮像部２３が作動していることを報知する。第３ＬＥＤ２９は、上側ハウジング２１の外側面の外側撮像部２３の近傍に設けられる。
【０１１２】
図３Ｃは、閉状態におけるゲーム装置１０の一例を示す右側面図である。図３Ｄは、閉状態におけるゲーム装置１０の一例を示す背面図である。
【０１１３】
図３Ｄに示される下側ハウジング１１の上側面には、Ｌボタン１４ＧおよびＲボタン１４Ｈが設けられている。Ｌボタン１４Ｇは、下側ハウジング１１の上面の左端部に設けられ、Ｒボタン１４Ｈは、下側ハウジング１１の上面の右端部に設けられる。Ｌボタン１４ＧおよびＲボタン１４Ｈは、ゲーム装置１０が実行するプログラムに応じた機能が適宜割り当てられる。例えば、Ｌボタン１４ＧおよびＲボタン１４Ｈは、上述の各撮像部のシャッターボタン（撮影指示ボタン）として機能する。
【０１１４】
なお、図示は省略するが、下側ハウジング１１には、ゲーム装置１０の電源となる充電式電池が収納され、下側ハウジング１１の側面（例えば、上側面）に設けられた端子を介して当該電池を充電することができる。
【０１１５】
図４および図５は、それぞれ、ゲーム装置１０の使用状態の一例を示す。図４は、ユーザがゲーム装置１０を両手で把持する様子の一例を示す図である。
【０１１６】
図４に示される例において、ユーザは、下側ＬＣＤ１２および上側ＬＣＤ２２がユーザの方向を向く状態で、両手の掌と中指、薬指および小指とで下側ハウジング１１の側面および外側面（内側面の反対側の面）を把持する。このように把持することで、ユーザは、下側ハウジング１１を把持したまま、各操作ボタン１４Ａ〜１４Ｅおよびアナログスティック１５に対する操作を左右の親指で行い、Ｌボタン１４ＧおよびＲ１４Ｈに対する操作を左右の人差し指で行うことができる。
【０１１７】
図５は、ユーザがゲーム装置１０を片手で把持する様子の一例を示す図である。図５に示される例において、タッチパネル１３に対して入力を行う場合には、ユーザは下側ハウジング１１を把持していた一方の手を離して他方の手のみで下側ハウジング１１を把持する。これによって、当該一方の手でタッチパネル１３に対する入力を行うことができる。
【０１１８】
図６は、ゲーム装置１０の内部構成の一例を示すブロック図である。ゲーム装置１０は、上述した各構成部に加えて、情報処理部３１、メインメモリ３２、外部メモリインターフェイス（外部メモリＩ／Ｆ）３３、データ保存用外部メモリＩ／Ｆ３４、データ保存用内部メモリ３５、無線通信モジュール３６、ローカル通信モジュール３７、リアルタイムクロック（ＲＴＣ）３８、加速度センサ３９、角速度センサ４０、電源回路４１、およびインターフェイス回路（Ｉ／Ｆ回路）４２等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング１１（または上側ハウジング２１でもよい）内に収納される。
【０１１９】
情報処理部３１は、所定のプログラムを実行するためのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１１、画像処理を行うＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１２等を含む情報処理手段である。第１実施形態では、所定のプログラムがゲーム装置１０内のメモリ（例えば外部メモリＩ／Ｆ３３に接続され
た外部メモリ４５やデータ保存用内部メモリ３５）に記憶されている。情報処理部３１のＣＰＵ３１１は、当該所定のプログラムを実行することによって、後述する画像処理やゲーム処理を実行する。なお、情報処理部３１のＣＰＵ３１１によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部３１は、ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）３１３を含む。情報処理部３１のＧＰＵ３１２は、情報処理部３１のＣＰＵ３１１からの命令に応じて画像を生成し、ＶＲＡＭ３１３に描画する。そして、情報処理部３１のＧＰＵ３１２は、ＶＲＡＭ３１３に描画された画像を上側ＬＣＤ２２および／または下側ＬＣＤ１２に出力し、当該画像は上側ＬＣＤ２２および／または下側ＬＣＤ１２に表示される。
【０１２０】
情報処理部３１には、メインメモリ３２、外部メモリＩ／Ｆ３３、データ保存用外部メモリＩ／Ｆ３４、およびデータ保存用内部メモリ３５が接続される。外部メモリＩ／Ｆ３３は、外部メモリ４５を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリＩ／Ｆ３４は、データ保存用外部メモリ４６を着脱自在に接続するためのインターフェイスである。
【０１２１】
メインメモリ３２は、情報処理部３１（ＣＰＵ３１１）のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ３２は、画像処理やゲーム処理で用いられる各種データを一時的に記憶したり、外部（外部メモリ４５や他の機器等）から取得されるプログラムを一時的に記憶したりする。第１実施形態では、メインメモリ３２として例えばＰＳＲＡＭ（Ｐｓｅｕｄｏ−ＳＲＡＭ）を用いる。
【０１２２】
外部メモリ４５は、情報処理部３１によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ４５は、例えば読み取り専用の半導体メモリで構成される。外部メモリ４５が外部メモリＩ／Ｆ３３に接続されると、情報処理部３１は外部メモリ４５に記憶されたプログラムを読み込むことができる。情報処理部３１が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ４６は、不揮発性の読み書き可能なメモリ（例えばＮＡＮＤ型フラッシュメモリ）で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ４６には、外側撮像部２３で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ４６がデータ保存用外部メモリＩ／Ｆ３４に接続されると、情報処理部３１はデータ保存用外部メモリ４６に記憶された画像を読み込み、上側ＬＣＤ２２および／または下側ＬＣＤ１２に当該画像を表示することができる。
【０１２３】
データ保存用内部メモリ３５は、読み書き可能な不揮発性メモリ（例えばＮＡＮＤ型フラッシュメモリ）で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ３５には、無線通信モジュール３６を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【０１２４】
無線通信モジュール３６は、例えばＩＥＥＥ８０２．１１．ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。また、ローカル通信モジュール３７は、所定の通信方式（例えば赤外線通信）により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール３６およびローカル通信モジュール３７は、情報処理部３１に接続される。情報処理部３１は、無線通信モジュール３６を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール３７を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【０１２５】
情報処理部３１には、加速度センサ３９が接続される。加速度センサ３９は、３軸（本実施形態では、ｘｙｚ軸）方向に沿った直線方向の加速度（直線加速度）の大きさを検出する。加速度センサ３９は、例えば下側ハウジング１１の内部に設けられる。加速度セン
サ３９は、図１に示されるように、下側ハウジング１１の長辺方向をｘ軸、下側ハウジング１１の短辺方向をｙ軸、下側ハウジング１１の内側面（主面）に対して垂直な方向をｚ軸として、ゲーム装置１０の各軸方向へ生じる直線加速度の大きさをそれぞれ検出する。なお、加速度センサ３９は、例えば静電容量式の加速度センサとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ３９は１軸または２軸方向を検出する加速度センサであってもよい。情報処理部３１は、加速度センサ３９が検出した加速度を示すデータ（加速度データ）を受信して、ゲーム装置１０の姿勢や動きを算出する。
【０１２６】
情報処理部３１には、角速度センサ４０が接続される。角速度センサ４０は、ゲーム装置１０の３軸（本実施形態では、ｘｙｚ軸）周りに生じる角速度をそれぞれ検出し、検出した角速度を示すデータ（角速度データ）を情報処理部３１へ出力する。角速度センサ４０は、例えば下側ハウジング１１の内部に設けられる。情報処理部３１は、角速度センサ４０から出力された角速度データを受信して、ゲーム装置１０の姿勢や動きを算出する。
【０１２７】
情報処理部３１には、ＲＴＣ３８および電源回路４１が接続される。ＲＴＣ３８は、時間をカウントして情報処理部３１に出力する。情報処理部３１は、ＲＴＣ３８によって計時された時間に基づき現在時刻（日付）を計算する。電源回路４１は、ゲーム装置１０が有する電源（下側ハウジング１１に収納される上記充電式電池）からの電力を制御し、ゲーム装置１０の各部品に電力を供給する。
【０１２８】
情報処理部３１には、Ｉ／Ｆ回路４２が接続される。Ｉ／Ｆ回路４２には、マイク４３、スピーカ４４、およびタッチパネル１３が接続される。具体的には、Ｉ／Ｆ回路４２には、図示しないアンプを介してスピーカ４４が接続される。マイク４３は、ユーザの音声を検知して音声信号をＩ／Ｆ回路４２に出力する。アンプは、Ｉ／Ｆ回路４２からの音声信号を増幅し、音声をスピーカ４４から出力させる。Ｉ／Ｆ回路４２は、マイク４３およびスピーカ４４（アンプ）の制御を行う音声制御回路と、タッチパネル１３の制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するＡ／Ｄ変換およびＤ／Ａ変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル１３からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部３１に出力する。タッチ位置データは、タッチパネル１３の入力面において入力が行われた位置（タッチ位置）の座標を示す。なお、タッチパネル制御回路は、タッチパネル１３からの信号の読み込み、およびタッチ位置データの生成を所定時間に１回の割合で行う。情報処理部３１は、タッチ位置データを取得することにより、タッチパネル１３に対して入力が行われたタッチ位置を知ることができる。
【０１２９】
操作ボタン１４は、上記各操作ボタン１４Ａ〜１４Ｌからなり、情報処理部３１に接続される。操作ボタン１４から情報処理部３１へは、各操作ボタン１４Ａ〜１４Ｉに対する入力状況（押下されたか否か）を示す操作データが出力される。情報処理部３１は、操作ボタン１４から操作データを取得することによって、操作ボタン１４に対する入力に応じた処理を実行する。
【０１３０】
下側ＬＣＤ１２および上側ＬＣＤ２２は、情報処理部３１に接続される。下側ＬＣＤ１２および上側ＬＣＤ２２は、情報処理部３１（ＧＰＵ３１２）の指示にしたがって画像を表示する。第１実施形態では、情報処理部３１は、手書き画像入力操作用の画像を下側ＬＣＤ１２に表示させ、外側撮像部２３および内側撮像部２４のいずれかから取得した画像を上側ＬＣＤ２２に表示させる。すなわち、情報処理部３１は、上側ＬＣＤ２２に外側撮像部２３で撮像した右目用画像と左目用画像とを用いた立体画像（立体視可能な画像）を表示させたり、内側撮像部２４で撮像した平面画像を上側ＬＣＤ２２に表示させたり、上側ＬＣＤ２２に外側撮像部２３で撮像した右目用画像および左目用画像の一方を用いた平
面画像を表示させたりする。
【０１３１】
具体的には、情報処理部３１は、上側ＬＣＤ２２のＬＣＤコントローラ（図示せず）と接続され、当該ＬＣＤコントローラに対して視差バリアのＯＮ／ＯＦＦを制御する。上側ＬＣＤ２２の視差バリアがＯＮになっている場合、情報処理部３１のＶＲＡＭ３１３に格納された（外側撮像部２３で撮像された）右目用画像と左目用画像とが、上側ＬＣＤ２２に出力される。より具体的には、ＬＣＤコントローラは、右目用画像について縦方向に１ライン分の画素データを読み出す処理と、左目用画像について縦方向に１ライン分の画素データを読み出す処理とを交互に繰り返すことによって、ＶＲＡＭ３１３から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に１ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側ＬＣＤ２２の画面に表示される。そして、上側ＬＣＤ２２の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側ＬＣＤ２２の画面には立体視可能な画像が表示される。
【０１３２】
外側撮像部２３および内側撮像部２４は、情報処理部３１に接続される。外側撮像部２３および内側撮像部２４は、情報処理部３１の指示にしたがって画像を撮像し、撮像した画像データを情報処理部３１に出力する。第１実施形態では、情報処理部３１は、外側撮像部２３および内側撮像部２４のいずれか一方に対して撮像指示を行い、撮像指示を受けた撮像部が画像を撮像して画像データを情報処理部３１に送る。具体的には、ユーザによるタッチパネル１３や操作ボタン１４を用いた操作によって使用する撮像部が選択される。そして、撮像部が選択されたことを情報処理部３１（ＣＰＵ３１１）が検知し、情報処理部３１が外側撮像部２３または内側撮像部２４に対して撮像指示を行う。
【０１３３】
外側撮像部２３及び内側撮像部２４は、情報処理部３１（ＣＰＵ３１１）からの指示によって起動されると、例えば、１秒間に６０枚の速度で撮像する。外側撮像部２３又は内側撮像部２４によって撮像された撮像画像は、順次、情報処理部３１に送られ、情報処理部３１（ＧＰＵ３１２）によって上側ＬＣＤ２２又は下側ＬＣＤ１２に表示される。撮像画像は、情報処理部３１に出力されると、ＶＲＡＭ３１３に格納され、上側ＬＣＤ２２又は下側ＬＣＤ１２に出力された後、所定のタイミングで削除される。このように、例えば、１秒間に６０枚の速度で、撮像し、撮像した画像を表示することによって、ゲーム装置１０は、外側撮像部２３及び内側撮像部２４の撮影範囲内の景色をリアルタイムに上側ＬＣＤ２２又は下側ＬＣＤ１２に表示することができる。
【０１３４】
３Ｄ調整スイッチ２５は、情報処理部３１に接続される。３Ｄ調整スイッチ２５は、スライダの位置に応じた電気信号を情報処理部３１に送信する。
【０１３５】
３Ｄインジケータ２６は、情報処理部３１に接続される。情報処理部３１は、３Ｄインジケータ２６の点灯を制御する。例えば、情報処理部３１は、上側ＬＣＤ２２が立体表示モードである場合、３Ｄインジケータ２６を点灯させる。
【０１３６】
§２  実施形態に係る表示形態例
次に、ゲーム装置１０で実行される画像処理プログラムによる具体的な画像処理動作を説明する前に、図７Ａ、７Ｂ、８〜１３、１４Ａ、１４Ｂ、１５を参照して当該画像処理動作によって上側ＬＣＤ２２に表示される表示形態例について説明する。なお、当該表示形態例の説明を簡単にするために、ゲーム装置１０で実行される本実施形態に係る画像処理プログラムの一例はゲームプログラムであるとする。そして、ゲーム上の処理として、本実施形態に係る画像処理プログラムの画像処理操作及び表示形態例を説明する。ただし、上述のとおり、本発明の画像処理プログラムはゲームプログラムに限定される訳ではな
い。
【０１３７】
＜ゲームの概要＞
まず、本実施形態において、ゲーム装置１０によるゲームプログラムの実行によってプレーヤが遊技可能なゲームの概要について説明する。本実施形態におけるゲームは、プレーヤが、ゲーム内の主人公として、ゲーム世界として用意された仮想の３次元空間に出現する敵キャラクタを撃ち落とす、いわゆるシューティングゲームである。ゲーム世界をなす仮想の３次元空間（仮想空間（ゲーム空間とも呼ばれる））は、ゲーム装置１０の表示画面（例えば、上側ＬＣＤ２２）において、プレーヤの視点（いわゆる主観視点で）で表示される。もちろん、客観視点としてもよい。プレーヤが敵キャラクタを撃ち落とすことで、得点が加算される。これに対し、敵キャラクタとプレーヤとが衝突すると（具体的には、敵キャラクタが仮想カメラの位置から一定距離以内に到達すると）、得点が減点される。
【０１３８】
また、本実施形態のゲームは、ゲーム装置１０が備える撮像部により取得される現実世界の画像（以下、「実世界画像」と呼ぶ）と、仮想空間を表現した仮想世界画像（本発明に係る「仮想画像」に相当）とを合成して表示する。具体的には、仮想空間を、仮想カメラに近い領域（以下、「手前側領域」と呼ぶ）と、仮想カメラから遠い領域（以下、「奥側領域」と呼ぶ）に区分して、手前側領域に存在する仮想オブジェクトを表す画像を実世界画像の手前に表示し、奥側領域に存在する仮想オブジェクトを実世界画像の背後に表示する。より具体的には、後述するように、手前側領域に存在する仮想オブジェクトを実世界画像よりも優先し、かつ、実世界画像を奥側領域に存在する仮想オブジェクトよりも優先して合成する。
【０１３９】
実世界画像と仮想世界画像の合成の手法は問わない。例えば、仮想オブジェクトと同じ仮想空間に、実世界画像をオブジェクトとして存在させて（より具体的には、例えば、仮想オブジェクトのテクスチャとして貼り付けて）、実世界画像を仮想オブジェクトとともに共通の仮想カメラでレンダリングしてもよい。
【０１４０】
また、別の例では、実世界画像を第１の仮想カメラ（以下、実世界描画用カメラと呼ぶ）で撮影してレンダリングして第１のレンダリング画像とし、仮想オブジェクトを第２の仮想カメラ（以下、仮想世界描画用カメラと呼ぶ）で撮影してレンダリングして第２のレンダリング画像とし、第１のレンダリング画像と第２のレンダリング画像とを、手前側領域に存在する仮想オブジェクトを実世界画像よりも優先し、かつ、実世界画像を奥側領域に存在する仮想オブジェクトよりも優先するように、合成してもよい。
【０１４１】
前者の方法では、典型的には、実世界画像をテクスチャとして適用したオブジェクト（以下、このオブジェクトをスクリーンオブジェクトと呼ぶ）を手前側領域と奥側領域の境界となる位置に配置し、敵オブジェクトなどの仮想オブジェクトとともに共通の仮想カメラで撮影してもよい。この場合、典型的には、実世界画像が貼り付けられるオブジェクトは、仮想カメラから一定距離で、かつ、法線が仮想カメラの撮影方向と一致するような面を有するオブジェクトであり、この面（以下、境界面と呼ぶ）に実世界画像をテクスチャとして貼り付けてもよい。
【０１４２】
また、後者の方法では、仮想オブジェクトを手前側領域と奥側領域の境界面（以下、単に境界面と呼ぶ）に対して奥行判定（Ｚバッファによる判定）をおこないつつレンダリングして上記第２のレンダリング画像とし、仮想カメラから一定距離でかつ法線が仮想カメラの撮影方向と一致するような面に実世界画像をテクスチャとして貼り付けて撮影した上記第１のレンダリング画像とする。そして、第２のレンダリング画像を第１のレンダリング画像に優先して合成するようにすれば、実世界画像が境界面に存在しているように見え
る画像が合成される。
【０１４３】
いずれの方法においても、実世界画像は仮想カメラの視野範囲を包含するように、仮想カメラからの距離および視野角と実世界画像オブジェクトの大きさ（撮影方向についての大きさ）との関係が設定される。
【０１４４】
なお、以下では、前者の方法を第１の描画方法と呼び、後者の方法を第２の描画方法と呼ぶ。
【０１４５】
また、ゲーム上における所定のイベント発生条件が満たされると、実世界画像の一部が開口され、奥側領域の仮想空間がその開口を通じて見えるように表示される。また、手前側領域には敵キャラクタオブジェクトが存在し、さらに、奥側領域には、所定の条件を満たすと特別な敵キャラクタ（いわゆる「ボスキャラ」）が出現する。ボスキャラクタを撃ち落とすことで、ステージクリアとなる。ステージは幾つか用意されており、全てのステージをクリアすることでゲームクリアとなる。これに対し、所定のゲームオーバー条件が満たされると、ゲームオーバーとなる。
【０１４６】
実世界画像に対する開口は、上述の第１の描画方法の典型例では、スクリーンオブジェクトの境界面に対して開口の位置を示すデータを設定してもよい。より具体的には、境界面に適用されるテクスチャ（いわゆるαテクスチャ）の不透明度で開口または非開口を示すようにしてもよい。また、第２の描画方法では、境界面に対して開口の位置を示すデータを設定してもよい。
【０１４７】
また、本実施形態では、実世界画像に対して開口／非開口を設定したが、実世界画像に対して他の画像処理をおこなうようにしてもよい。例えば、実世界画像に汚れを付けたりぼかし処理をしたりするなど当業者の技術常識による任意の画像処理をおこなうことができる。これらの例でも、境界面や境界面に対して、画像処理をおこなう位置を示すデータが設定されるようにしてもよい。
【０１４８】
＜ゲーム世界＞
このように本実施形態に係るゲームでは、実画像の背後にも仮想空間（奥側領域）が存在することが感じられ、奥行き感が向上した仮想空間を表すゲーム画面が表示される。なお、実世界画像は、単眼カメラで撮影された状態の通常画像であってもよく、複眼カメラで撮影された状態のステレオ画像であってもよい。
【０１４９】
本実施形態に係るゲームでは、実世界画像として、外側撮像部２３で撮像された画像を用いる。すなわち、ゲームのプレイ中に外側撮像部２３で撮像されたプレーヤの周囲の実世界画像（リアルタイムに取得される実世界の動画）が用いられる。従って、ゲーム装置１０を保持したユーザ（ゲームのプレーヤ）が、ゲームのプレイ中にゲーム装置１０を左右方向、或いは上下方向に向きを変えて外側撮像部２３の撮像範囲を変更すると、上側ＬＣＤ２２に表示される実世界画像も、撮像範囲の変更に追従して変更される。
【０１５０】
ここで、ゲームプレイ中におけるゲーム装置１０の向きの変更は、大略して、（１）プレーヤの意図、又は（２）ゲーム上の意図（シナリオ）に従って行われる。プレーヤがプレイ中にゲーム装置１０の向きを意図的に変えることで、外側撮像部２３で撮影される実世界画像が変化し、これにより、上側ＬＣＤ２２に表示される実世界画像を意図的に変更することができる。
【０１５１】
また、ゲーム装置１０が備える角速度センサ４０によりゲーム装置１０の向きの変化が検出され、それに応じて仮想カメラの向きを変更する。より具体的には、外側撮像部２３
の向きの変化方向に仮想カメラを現在の向きから変化させる。さらには、外側撮像部２３の向きの変化量（角度）だけ、仮想カメラを現在の向きから変化させる。すなわち、ゲーム装置１０の向きを変えると、実世界画像が変化するとともに、仮想空間のうちの表示される範囲が変化する。すなわち、ゲーム装置１０の向きを変更することにより、実世界画像と仮想世界画像が連動して変化し、これにより、現実世界と仮想世界とが関連付いているかのような合成画像を表示することができる。なお、本実施形態においては、仮想カメラの位置は変更しないが、ゲーム装置１０の移動を検出して仮想カメラの位置を変更してもよい。
【０１５２】
なお、第２の描画方法においては、このような仮想カメラの向き変更処理は、仮想世界描画用カメラに適用され、実世界描画用カメラについては適用されない。
【０１５３】
また、ゲームプレイ中に、画面の端（例えば、右端、左端）のような局所にオブジェクトが表示されると、プレーヤに対し、オブジェクトを画面の中心に捉えようとする心理が自然に働き、プレーヤはゲーム装置１０（外側撮像部２３）を動かす。この結果、画面に表示される実世界画像が変わる。このようなゲーム装置１０の向きの変更（実世界画像変更）は、ゲームのシナリオに従って表示されるオブジェクトが意図的に画面の端に表示されるようにプログラミングすることによって、プレーヤが自然に行うようにすることができる。
【０１５４】
＜仮想空間の詳細＞
（実世界画像の描画）
外側撮像部２３で撮像された実世界画像は、仮想空間の手前側領域と奥側領域の境界位置に存在して見えるように合成される。図７Ａは、本実施形態における仮想空間の一例を示す。また、図７Ｂは、本実施形態におけるスクリーンモデルとαテクスチャの関係を示す。第１の描画方法では、実世界画像の表示のため、図７Ａに示すように、仮想空間内に仮想カメラの位置を中心とする球体モデル（上述のスクリーンモデル）を設定し、この球体の内面に実世界画像を貼り付け、スクリーンオブジェクトを形成してもよい。より具体的には、スクリーンモデルのうち仮想カメラで撮影される部分の全体にテクスチャとして貼り付けられる。スクリーンモデルのうちこの部分以外については、透明に設定されため画面上で視認されない。この例では、境界面は球体面であり、すなわち、図７Ａで示すように、球体の表面により仮想カメラ側が手前側領域（本発明の「第２領域」に相当）であり、球体の表面より仮想カメラからみて遠い側が奥側領域（本発明の「第１領域」に相当）である。
【０１５５】
第２の描画方法では、実世界画像の表示のため、仮想空間内には、実世界画像のテクスチャを貼り付けるための平面ポリゴンが配置される。仮想空間において、平面ポリゴンの実世界描画用カメラに対する相対位置は、常に固定される。すなわち、平面ポリゴンは、実世界描画用カメラから一定の距離を空けて配置され、その法線方向が実世界描画用カメラの視点（視軸）に一致するように配置される。
【０１５６】
また、この平面ポリゴンは、実世界描画用カメラの視野範囲を包含するように設定される。具体的には、平面ポリゴンの大きさとその仮想カメラからの距離は、平面ポリゴンが仮想カメラの視野範囲を包含可能となるように設定される。この平面ポリゴンの仮想カメラ側の面全体に実世界画像を貼り付けるようにしたので、仮想カメラで、この実世界画像が貼り付けられた平面ポリゴンを撮影すると、仮想カメラにより生成される画像において、実世界画像がその全域に対応するように表示される。
【０１５７】
なお、図８に示すように、境界面を円筒状にしてもよい。図８は、本実施形態における仮想空間の別の例を示す。この場合、仮想空間には、仮想カメラの位置に立てられた鉛直
軸（本実施形態においては、仮想空間のＹ軸が鉛直方向に対応し、Ｘ軸およびＺ軸が水平方向に対応するとする）を中心軸とする仮想の円筒周面（境界面）が配置される。ただし、前述の通り、この円筒周面は視認されるオブジェクトではなく、開口処理において用いられるオブジェクトである。この円筒の外周面は、仮想空間を、仮想カメラが位置する第１空間（本発明の「第２領域」に相当）と、この第１空間の周りに存在する第２空間（本発明の「第１領域」に相当）とに区分する。
【０１５８】
（実世界画像を開口させるための処理）
さらに、本実施形態に係るゲームでは、実世界画像に開口を設け、実世界画像の背後の奥側領域の存在をプレーヤに認識させる。より明確に言うと、実世界画像のうちこの開口の部分は、透明または半透明で表示され、その背後にある世界がこの部分に合成される。このため、ゲーム内で、所定のイベントの発生を契機に、実世界画像の一部が開口して（消去されて）、その開口を通して実世界画像の背後に存在する他の仮想空間（奥側領域）を示す画像が表示される。また、実世界画像の背後の奥側領域には仮想オブジェクトが存在しており、仮想オブジェクトの位置や開口の位置によっては、仮想オブジェクトが実世界画像に隠れたり、開口を通して仮想オブジェクトの画像が表示されたりする。これにより、仮想オブジェクトが実世界画像の背後に存在しているかのような画像をユーザに提供することができることになる。
【０１５９】
このような、実世界画像に開口を設けて奥側領域を表示する処理は、本実施形態において、境界面は球体面であり、第１の描画方法では、図７Ａ及び図７Ｂに示すように、上述の球体のスクリーンオブジェクトの内面に貼り付けられるテクスチャにより実現される。以下、このテクスチャのことをスクリーン用αテクスチャ（後述する、開口判定用データ）と呼ぶ。本実施形態では、スクリーン用αテクスチャは仮想カメラを中心として少なくとも或る方向に３６０度周回する部分に貼り付けられる。より具体的には、図７Ｂで示すように、スクリーン用αテクスチャは、球体のうち中央部分、言い換えると、仮想カメラの位置を中心として、ＸＹ平面に平行な方向に３６０度周回させた、Ｙ方向に所定の幅を有する部分（以下、αテクスチャ適用部と呼ぶ）に貼り付けられる。このようにすることにより、スクリーン用αテクスチャのデータの持ち方を簡単にすることができる。具体的には、本実施形態では、スクリーン用αテクスチャは矩形形状である。このαテクスチャが図７Ａで示す部分に貼り付けられることにより、スクリーン用αテクスチャの各ドットの情報は、スクリーンオブジェクトのうちαテクスチャ適用部の各座標に対応する。
【０１６０】
上述のように実世界画像が貼り付けられ、αテクスチャが設定されたスクリーンオブジェクトを仮想カメラで撮影することにより、開口部を有する実世界画像が境界面（球体内面）に存在するように描画されることになる。αテクスチャのうち実世界画像に対応する部分は、仮想カメラによる撮影により計算される。
【０１６１】
第２の描画方法においても、仮想空間の境界面（ここでは球体内面）に対して、開口の位置を示すデータが設定される。典型的には、境界面の各点について開口の有無を示すデータが設定される。より具体的には、上述と同様の球体オブジェクトが仮想オブジェクトの存在する仮想世界に配置され、この球体オブジェクトに対して同様のαテクスチャが設定される。そして、実世界画像のレンダリング時に、αテクスチャが設定された球体オブジェクトのうち仮想世界描画用カメラで撮影される部分に対応する部分のαテクスチャを、上述の平面ポリゴンに適用してレンダリングする。または、この部分のαテクスチャを用いて、実世界画像に対して開口部を透明化する処理を行った後、この処理後の実世界画像を前述の平面ポリゴンに貼り付けて実世界描画用カメラでレンダリングする。なお、この球体オブジェクトは、開口の計算にのみ使用されるオブジェクトであり、仮想世界の描画時に描画されないオブジェクトである。
【０１６２】
なお、本実施形態では、開口部を示すデータは境界面の各点ごとに情報を有するようなデータであるが、境界面において開口を有する位置を計算式で定義するような情報でもよい。
【０１６３】
第２空間には、開口を通じて仮想カメラの視野に収まる第２空間の背景画像（テクスチャ）を貼り付けるためのポリゴン（オブジェクト）が配置される。第２空間の背景は、「奥壁」と呼ぶこともある。
【０１６４】
第１空間には、敵キャラクタや、敵キャラクタを撃ち落とすための弾を表す各種のキャラクタを示すオブジェクトが配置される。第２空間にも所定のオブジェクト（例えば、敵キャラクタのうちの一部）が配置される。仮想空間上に配置された各オブジェクトは、予めプログラミングされたロジック（アルゴリズム）に従って仮想空間内を移動する。
【０１６５】
さらに、敵キャラクタのうちの一部は、境界面に形成された開口を通じて第１空間と第２空間との間を行き来することもできる。または、自ら境界面に開口を形成して第１空間と第２空間との間を行き来することができる。開口を形成するゲーム上の所定イベントは、例えば、敵キャラクタが境界面に衝突するようなイベント（衝突イベント）である。或いは、ゲームシナリオの進行上、所定のタイミングで境界面が破壊され、第２空間にいた敵キャラクタが第１空間に進入して来るイベント（敵キャラクタ出現イベント）である。或いは、時間経過に応じて自動的に開口が形成されるようにしてもよい。また、プレーヤの所定のゲーム操作に応じて、開口を修復することができる。例えば、プレーヤは、形成された開口に対して弾を当てることで、開口を小さくする（修復する）こともできる。
【０１６６】
図９は、実施形態における画像処理プログラムの一例であるゲームプログラムにおいて定義される仮想の３次元空間（ゲーム世界）を示す。なお、上述したように、本実施形態では、境界面は球体であるが、図９では簡便のため、境界面を円筒状に示す。上述したように、本実施形態に係るゲームでは、ゲーム装置１０の上側ＬＣＤ２２には、仮想の３次元空間を表現した仮想世界画像と実世界画像が合成されて表示される。
【０１６７】
また、図９において示されるとおり、本実施形態におけるゲーム上の仮想空間は、仮想カメラの位置を中心軸とする球体面で形成された境界面３によって第１空間１と第２空間２に分けられている。
【０１６８】
境界面３には、ゲーム装置１０に内蔵する実カメラによって撮像された実世界画像であるカメラ画像ＣＩ（図１０）は、第１の描画方法においては後述するステップ８１及び８２、また、第２の描画方法においては後述するステップ８３からステップ８５の処理により、境界面３の位置に存在しているかのように、仮想世界画像と合成される。
【０１６９】
本実施形態における実世界画像は平面視の画像である。また仮想世界画像も平面視の画像である。すなわち、ＬＣＤ２２には平面視の画像が表示される。ただし、実世界画像は、立体視可能な画像であってもよい。立体視本発明は、実世界画像の種類によって限定されない。なお、本実施形態におけるカメラ画像ＣＩは、静止画であっても、リアルタイムの実世界画像（動画像）であってもよい。本実施形態におけるゲームプログラムでは、カメラ画像ＣＩは、リアルタイムの実世界画像であるとする。また、実世界画像であるカメラ画像ＣＩは、カメラの種類によって限定されない。例えば、カメラ画像ＣＩは、ゲーム装置１０に外部接続可能なカメラによって得られた画像であってもよい。更に、本実施形態では、カメラ画像ＣＩは、外側撮像部２３（複眼カメラ）及び内側撮像部２４（単眼カメラ）のいずれかから取得した画像であればよい。本実施形態におけるゲームプログラムでは、カメラ画像ＣＩは、外側撮像部２３の外側左撮像部２３ａ及び外側右撮像部２３ｂの一方を単眼カメラとして用いることにより取得される画像であるとする。
【０１７０】
上記したように第１空間１は、仮想カメラから見て境界面３より手前の空間であり、境界面３によって囲まれた空間である。また、第２空間２は、仮想カメラから見て境界面３の背後の空間である。図７Ａ及び８において図示はされていないが、境界面３を囲む奥壁ＢＷが存在する。つまり、第２空間２は、境界面３と奥壁ＢＷの間に存在する空間である。当該奥壁ＢＷは、任意の画像が貼り付けられる。例えば、奥壁ＢＷには、予め用意された宇宙空間を表す画像が貼り付けられ、第１空間の背後には宇宙空間である第２空間の存在が表示される。すなわち、仮想カメラから見て、手前から順に、第１空間、境界面３、第２空間、奥壁が配置される。
【０１７１】
ただし、上述のとおり、本発明の画像処理プログラムはゲームプログラムに限定される訳ではなく、これらの設定及びルールは、本発明の画像処理プログラムを限定するものではない。なお、敵オブジェクトＥＯは、図９に示されるとおり、仮想の３次元空間内を移動し、上述の境界面３を通って、第１空間１と第２空間２とを往来することができる。境界面３のうち、仮想カメラによって撮像される領域を通って、敵オブジェクトＥＯが第１空間１と第２空間２との間を移動した場合には、ＬＣＤ２２に表示される画像においては、敵オブジェクトＥＯが実世界画像を通り抜けて奥側から手前側に、または、手前側から奥側に移動するように表現される。
【０１７２】
画面には、ゲームのシナリオやイベントにより実世界画像に生じた開口（穴）を使って第１空間１と第２空間２とを往来する敵オブジェクトＥＯの様子が表示される。図９及び図１１には、敵オブジェクトＥＯが境界面３に開口を作って、または、境界面３上に既に存在する開口を通って、第１空間１と第２空間２を行き来する様子が図示されている。
【０１７３】
なお、本実施形態における画像処理プログラムでは、第１空間１または第２空間２に存在するオブジェクトは、敵オブジェクトＥＯ、弾オブジェクトＢＯおよび奥壁ＢＷの３つであるが、本発明の画像処理プログラムは、オブジェクトの種類に限定されない。本実施形態における画像処理プログラムにおいて、オブジェクトは、仮想空間（第１空間１及び第２空間２）に存在する仮想物体である。例えば、本実施形態にかかる画像処理プログラムにおいて、障害物のオブジェクト等の任意のオブジェクトが存在してもよい。
【０１７４】
＜表示形態例＞
図１０〜図１３は、上側ＬＣＤ２２に表示されるゲーム画面の一例を示す。以下、各図の表示形態例について説明する。
【０１７５】
まず、図１０〜図１３において共通に表示される照準カーソルＡＬについて説明する。図１０〜図１３において、上側ＬＣＤ２２には、共通して、ゲーム装置１０を用いた攻撃操作（例えば、ボタン１４Ｂ（Ａボタン）の押下）に応じて発射される弾オブジェクトＢＯの照準カーソルＡＬが表示されている。本実施形態のゲームプログラムでは、照準カーソルＡＬは、ゲーム装置１０が実行するプログラムに応じて所定の方向を向くように設定されている。
【０１７６】
例えば、照準カーソルＡＬは、仮想カメラの視線方向、つまり、上側ＬＣＤ２２の画面中央に固定されているように設定される。この場合、上述のとおり、本実施形態において、外側撮像部２３の撮影方向の変化に応じて、仮想カメラ（第１の描画方法における仮想カメラまたは第２の描画方法における仮想世界描画用カメラ）の撮影方向を変更するので、プレーヤは、ゲーム装置１０の向きを変えることで、照準カーソルＡＬの仮想空間内における向きを変更する。そして、プレーヤは、例えば、ゲーム装置１０が備えるボタン１４Ｂ（Ａボタン）を、下側ハウジング１１を把持した右手の親指で押下することにより攻撃操作を行う。これにより、プレーヤは、攻撃操作による弾オブジェクトＢＯの発射を行
い、本実施形態のゲーム上における敵オブジェクトＥＯの退治や、境界面３に存在する開口の修復をする。
【０１７７】
次に、図１０〜図１３について各図個別に説明する。
【０１７８】
図１０において、上側ＬＣＤ２２には、第１空間１に存在する敵オブジェクトＥＯと、ゲーム装置１０に内蔵する実カメラによって撮像されたカメラ画像ＣＩと、が表示されている。敵オブジェクトＥＯは、任意に設定される。
【０１７９】
敵オブジェクトＥＯは、例えば、ゲーム装置１０のデータ保存用外部メモリ４６等に記憶された画像（例えば、人の顔写真）をテクスチャとして用い、所定形状の３次元ポリゴンモデル（人の頭部の３次元形状を表すポリゴンモデル）に、所定の方法で貼り付けたオブジェクトである。
【０１８０】
また、本実施形態において、上側ＬＣＤ２２に表示されるカメラ画像ＣＩは、上述のとおり、ゲーム装置１０に内蔵する実カメラで撮像されたリアルタイムの実世界画像である。その他、例えば、カメラ画像ＣＩは、ゲーム装置１０のデータ保存用外部メモリ４６等に記憶された画像（例えば、風景写真）であってもよい。
【０１８１】
カメラ画像ＣＩが上側ＬＣＤ２２に表示された状態において、敵オブジェクトＥＯは任意に移動することができる。例えば、第１空間１に存在する敵オブジェクトＥＯは、第２空間２に移動することができる。図１１は、第１空間１に存在する敵オブジェクトＥＯが、第１空間１から第２空間２へ移動する様子の一例を示す。図１１に示した一例では、第１空間１に存在する敵オブジェクトＥＯは、境界面３上に開口を作って、第２空間２へ移動する。第２空間２に移動した敵オブジェクトＥＯは、境界面３上の非開口領域において仮想カメラから見た位置において影（シルエットモデル）ＥＳとして表示される。また、第２空間２は、境界面３上の開口を通して視認される。つまり、仮想カメラの視野内の境界面３上に開口が存在する場合、上側ＬＣＤ２２には、当該開口を通して第２空間２の画像の一部が表示される。第２空間２の画像は、具体的には、第２空間２に存在するオブジェクト、例えば、第２空間２に存在する敵オブジェクトＥＯや、奥壁ＢＷである。影ＥＳは、敵オブジェクトＥＯの影を示す表示である。図１４Ａは、敵オブジェクトＥＯの影のシルエットモデルを上から見た図を示す。また、図１４Ｂは、敵オブジェクトＥＯの影のシルエットモデル例を示す。図１４Ａ及び図１４Ｂに示すように、本実施形態においては、敵オブジェクトＥＯについて、複数の向きごとにシルエットモデルが設定されている。具体的には、シルエットモデルは、例えば、図１４Ａに示す８枚の平面ポリゴンである。このシルエットモデル（８枚の平面ポリゴン）は、実体モデルである敵オブジェクトＥＯと同じ位置に配置される。シルエットモデルは、仮想空間において敵オブジェクトＥＯと一体的に配置されるため、例えば、敵オブジェクトＥＯが仮想空間内を移動した場合に、その敵オブジェクトＥＯに追従するように移動する。また、各平面ポリゴンは実体モデルに内包される大きさである（実体モデルからはみ出ない）。また、各平面ポリゴンにはその面の法線方向から見た敵オブジェクトＥＯの影画像が描いたテクスチャが貼り付けられる。敵オブジェクトＥＯが境界面３の非開口領域の背後に存在する場合には、このシルエットモデルが描画されることにより影ＥＳが表示される。
【０１８２】
なお、８枚の平面ポリゴンのすべてがレンダリングされる。敵オブジェクトＥＯが境界面の非開口領域の背後に存在する場合、奥行判定（デプス判定）により、敵オブジェクトＥＯの実体モデルはこの境界面（スクリーンオブジェクト）に隠されるため描画されない。しかしながら、シルエットモデルは、境界面（スクリーンオブジェクト）に対してデプス判定をしないように設定されているため、敵オブジェクトＥＯ（およびそのシルエットモデル）が境界面の非開口領域の背後に存在する場合であっても、シルエットモデルは描
画されて、図１１や図１２に示すように影が表示される。しかしながら、敵オブジェクトＥＯが境界面の前方に存在する場合や、境界面の開口領域の背後に存在する場合は、シルエットモデルは実体モデルより奥に存在し、敵オブジェクトＥＯの実体モデルが描画され、それによりシルエットモデルは描画されないため、影は表示されない。これは、シルエットモデルが敵オブジェクトＥＯの実体モデルに内包されるように設定されているからである。
【０１８３】
上側ＬＣＤ２２には、以下の優先順位で画像が合成されて表示される。
【０１８４】
（１）第１空間１に存在するオブジェクトの画像
（２）実世界画像のうち非開口領域については、第２空間２に存在するオブジェクトの影画像と実世界画像の合成画像（例えば影画像が半透明で実世界画像に合成される）
（３）実世界画像のうち開口部領域については第２空間２に存在するオブジェクトの画像（実体画像）が優先的に合成され、さらにその奥に奥壁画像が合成される。
【０１８５】
ただし、仮想カメラの撮影方向と第２空間２に存在する敵オブジェクトＥＯの仮想空間内の位置によっては、敵オブジェクトＥＯが開口領域と非開口領域の両方にまたがって存在する場面がある。つまり、仮想カメラから見た位置において、敵オブジェクトＥＯが開口のふちに存在する場面がある。図１２は、このような、第２空間２に存在する敵オブジェクトＥＯが、境界面３上に設定された開口のふちに移動した状態を示す。図１２において示されるとおり、第２空間２に存在する敵オブジェクトＥＯについて、仮想カメラから見て、開口を通して第２空間２が視認できる範囲についてはそのままの画像が、開口を通して第２空間２が視認できない範囲については影ＥＳが、上側ＬＣＤ２２に表示される。
【０１８６】
より具体的には、図１５に示すように、各オブジェクトには不透明度（アルファ値）のデータが設定される。図１５は、本実施形態において各オブジェクトに設定される不透明度（アルファ値）の例を示す。敵オブジェクトの実体モデルには、そのテクスチャにモデル全体について不透明度が１である設定がされる。また、敵オブジェクトのシルエットモデル（平面ポリゴン）には、そのテクスチャに影画像の全体について不透明度が１である設定がされる。弾のモデルについても同様である。敵オブジェクトのうち半透明のオブジェクトのモデルやエフェクト用のモデルについては、そのテクスチャに、例えば、そのモデル全体について不透明度０．６が設定される。スクリーンオブジェクト（図７Ａに示される球体のスクリーンモデル）には、マテリアルとして不透明度０．２が設定され、そのテクスチャであるαテクスチャに、各点ごとに１または０が設定される。１が非開口部を示し、０が開口部を示す。すなわち、スクリーンオブジェクトには、不透明度値として、マテリアルの設定とテクスチャの設定の２つが施される。
【０１８７】
また、敵オブジェクト、弾オブジェクト、半透明の敵オブジェクト、エフェクトオブジェクト、スクリーンオブジェクトの間は、互いにデプス判定有効である。「影用の平面ポリゴンと敵オブジェクトの間」「影用の平面ポリゴンと弾オブジェクトの間」「影用の平面ポリゴンと半透明の敵オブジェクトの間」「影用の平面ポリゴンとエフェクトオブジェクトの間」は、互いにデプス判定有効である。影用の平面ポリゴンとスクリーンオブジェクトとの間は、デプス判定無効である。
【０１８８】
デプス判定が有効な場合には、通常の透視投影に従い、レンダリングされる。仮想カメラの視野方向における奥行に応じて陰面消去される。デプス判定が無効の場合には、対象オブジェクトが自身のオブジェクトより仮想カメラに近い側にその他のオブジェクトが存在していてもレンダリングされうる。
【０１８９】
そして、本実施形態においては、レンダリング時に、オブジェクトごとにレンダリング
の式を設定することができる。具体的には以下のように設定される。
【０１９０】
敵オブジェクトの実体、弾オブジェクト、半透明の敵オブジェクト、エフェクトオブジェクトは、以下の式で描画される。
【０１９１】
「自身の色  ×  自身の不透明度  ＋  背景の色  ×  （１ − 自身の不透明度）」
スクリーンオブジェクトは、以下の式で描画される。
【０１９２】
「自身の色（実世界画像の色）  ×  自身のテクスチャの不透明度  ＋  背景の色  ×
（１− 自身のテクスチャの不透明度）」
敵オブジェクトのシルエットモデルは、以下の式で描画される。
【０１９３】
「自身の色×（１− 背景のマテリアルの不透明度）＋背景の色×背景のマテリアルの
不透明度）」
なお、敵オブジェクトが描画される場合、その背景はスクリーンオブジェクト（境界面３）であるから、上式において、「背景のマテリアルの不透明度」は「スクリーンオブジェクト（境界面３）のマテリアルの不透明度」である。
【０１９４】
上述のような様々な設定により、敵オブジェクトが境界面の非開口部の背後に存在するときには、実体は表示されずに影が表示され、敵オブジェクトが境界面の前方に存在するときおよび敵オブジェクトが境界面の開口部に存在するときには、影は表示されずに実体が表示される。
【０１９５】
また、本実施形態におけるゲームでは、境界面３上に存在する開口は、弾オブジェクトＢＯを当てることにより修復されうる。図１３は、境界面３に存在する開口に弾オブジェクトＢＯを当てることにより、当該開口を塞ぐ様子を示す。図１３に示されるとおり、例えば弾オブジェクトＢＯが当該境界面３上に存在する非開口領域に衝突した時に、衝突点から一定範囲の境界面について非開口のデータ設定がされる。これにより、衝突点から一定範囲に開口があったときに当該開口は塞がれる。なお、本実施形態では、開口にあたった弾オブジェクトＢＯは消滅する（したがって、図１３において弾オブジェクトＢＯは消滅している）。また、弾オブジェクトＢＯは境界面３上の開口に当たったときには、当該開口を通り抜けて第２空間に移動する。
【０１９６】
なお、上述したように、上側ＬＣＤ２２には、ゲーム装置１０に内蔵する実カメラによって撮像されたリアルタイムの実世界画像が境界面３上にあるかのように見える画像として表示されている。実空間内においてゲーム装置１０の方向を変えることによって、ゲーム装置１０で撮像される撮像範囲が変わるため、上側ＬＣＤ２２に表示されるカメラ画像ＣＩも変化する。この場合、ゲーム装置１０は、実空間内におけるゲーム装置１０の動きに応じて、上記仮想空間内における上記仮想カメラ（第２の描画方法については、仮想世界描画用カメラ）の方向を変化させる。これによって、実空間内に配置されているように表示されている敵オブジェクトＥＯや境界面３上に存在する開口は、実空間内におけるゲーム装置１０の方向が変わっても実空間内における同じ位置に配置されているように表示される。例えば、ゲーム装置１０の実カメラによる撮像方向を左へ変えるとする。この場合、上側ＬＣＤ２２に表示されている敵オブジェクトＥＯや境界面３上に存在する開口の表示位置が、実カメラの撮像方向を変えた方向の逆方向（右方向）に移動、すなわち敵オブジェクトＥＯおよび境界面３上に存在する開口が配置されている仮想空間の仮想カメラ（第２の描画方法については仮想世界描画用カメラ）の方向が実カメラと同じ左方向に移動する。したがって、敵オブジェクトＥＯや境界面３上に存在する開口は、ゲーム装置１０の方向が変化して実カメラの撮像範囲が変わったとしても、あたかもカメラ画像ＣＩで表現された実空間内に配置されているように上側ＬＣＤ２２に表示される。
【０１９７】
§３  画像処理の動作例
次に、図１６〜図１９、図２０Ａ及び図２０Ｂを参照して、ゲーム装置１０で実行される本実施形態における画像処理プログラムによる具体的な画像処理の動作例について説明する。図１６は、画像処理プログラムを実行することに応じて、メインメモリ３２に記憶される各種データの一例を示す。図１７は、当該画像処理プログラムを実行することによってゲーム装置１０が画像処理する動作例の一例を示すフローチャートである。図１８は、図１７のステップ５３で行われる敵オブジェクト関連処理の詳細な動作の一例を示すサブルーチンのフローチャートである。図１９は、図１７のステップ５４で行われる弾オブジェクト関連処理の詳細な動作の一例を示すサブルーチンのフローチャートである。図２０Ａ及び図２０Ｂは、図１７のステップ５７で行われる表示画像の更新処理（第１の描画方法及び第２の描画方法）の詳細な動作の一例を示すサブルーチンのフローチャートである。
【０１９８】
なお、これらの処理を実行するためのプログラムは、ゲーム装置１０に内蔵されるメモリ（例えば、データ保存用内部メモリ３５）、外部メモリ４５、または、データ保存用外部メモリ４６に含まれており、ゲーム装置１０の電源がオンになったときに、内蔵メモリから、または外部メモリＩ／Ｆ３３やデータ保存用外部メモリＩ／Ｆ３４を介して外部メモリ４５またはデータ保存用外部メモリ４６からメインメモリ３２に読み出されて、ＣＰＵ３１１によって実行される。
【０１９９】
§３−１  各種データの一例
図１６において、メインメモリ３２には、内蔵メモリ、外部メモリ４５、またはデータ保存用外部メモリ４６から読み出されたプログラムや画像処理において生成される一時的なデータが記憶される。図１６において、メインメモリ３２のデータ記憶領域には、操作データＤａ、実カメラ画像データＤｂ、実世界画像データＤｃ、境界面データＤｄ、奥壁画像データＤｅ、敵オブジェクトデータＤｆ、弾オブジェクトデータＤｇ、得点データＤｈ、動きデータＤｉ、仮想カメラデータＤｊ、レンダリング画像データＤｋ、および表示画像データＤｌ等が格納される。また、メインメモリ３２のプログラム記憶領域には、画像処理プログラムを構成する各種プログラム群Ｐａが記憶される。
【０２００】
＜操作データＤａ＞
操作データＤａは、ユーザがゲーム装置１０を操作した操作情報を示すデータである。操作データＤａは、操作子データＤａ１および角速度データＤａ２を含んでいる。操作子データＤａ１は、ユーザがゲーム装置１０の操作ボタン１４やアナログスティック１５等の操作子を操作したことを示すデータである。角速度データＤａ２は、角速度センサ４０によって検出された角速度を示すデータである。例えば、角速度データＤａ２には、角速度センサ４０が検出したｘ軸周りの角速度を示すｘ軸周り角速度データ、ｙ軸周りの角速度を示すｙ軸周り角速度データ、およびｚ軸周りの角速度を示すｚ軸周り角速度データが含まれる。例えば、操作ボタン１４やアナログスティック１５からの操作データや角速度センサ４０からの角速度データは、ゲーム装置１０が処理する時間単位（例えば、１／６０秒）毎に取得され、当該取得に応じて操作子データＤａ１および角速度データＤａ２に格納されて更新される。
【０２０１】
なお、後述する処理フローでは、操作子データＤａ１および角速度データＤａ２が処理周期である１フレーム毎にそれぞれ更新される例を用いて説明するが、他の処理周期で更新されてもかまわない。例えば、操作ボタン１４やアナログスティック１５等の操作子をユーザが操作したことを検出する周期毎に操作子データＤａ１を更新し、当該更新された操作子データＤａ１を処理周期毎に利用する態様でもかまわない。また、角速度センサ４０の角速度検出周期毎に角速度データＤａ２を更新し、当該更新された角速度データＤａ
２を処理周期毎に利用する態様でもかまわない。この場合、操作子データＤａ１や角速度データＤａ２を更新するそれぞれの周期と、処理周期とが異なることになる。
【０２０２】
＜実カメラ画像データＤｂ＞
実カメラ画像データＤｂは、外側撮像部２３および内側撮像部２４のいずれかが撮像した実カメラ画像を示すデータである。後述する処理の説明においては、実カメラ画像を取得するステップにおいて外側撮像部２３および内側撮像部２４のいずれかが撮像した実カメラ画像を用いて、実カメラ画像データＤｂを更新する態様を用いる。なお、外側撮像部２３または内側撮像部２４が撮像し、撮像された実カメラ画像を用いて実カメラ画像データＤｂを更新する周期は、ゲーム装置１０における処理の単位時間（例えば、１／６０秒）と同じでもいいし、当該単位時間より短い時間でもかまわない。ゲーム装置１０における処理の周期より実カメラ画像データＤｂを更新する周期が短い場合、後述する処理とは独立して適宜実カメラ画像データＤｂを更新してもかまわない。この場合、後述する実カメラ画像を取得するステップにおいて、実カメラ画像データＤｂが示す最新の実カメラ画像を常に用いて処理すればよい。以下、本実施形態では、実カメラ画像データＤｂは、外側撮像部２３（例えば、外側左撮像部２３ａ）により撮像した実カメラ画像を示すデータであるとする。
【０２０３】
＜実世界画像データＤｃ＞
実世界画像データＤｃは、ゲーム装置１０の実カメラ（外側撮像部２３または内側撮像部２４）が撮像した実カメラ画像を用いて、境界面３上に存在しているように見える実世界画像を生成するためのデータである。第１の描画方法では、例えば、実世界画像データＤｃは、実世界画像を境界面（仮想カメラの表示範囲のスクリーンオブジェクト）に貼り付けるための実カメラ画像のテクスチャデータを含んでいる。また、第２の描画方法では、例えば、実世界画像データＤｃは、実世界画像を生成するための平面ポリゴンのデータ、当該平面ポリゴンにマッピングするための実カメラ画像のテクスチャデータ、および当該平面ポリゴンの仮想空間上の位置（上述した実世界描画用カメラからの位置）を示すデータ等を含んでいる。
【０２０４】
＜境界面データＤｄ＞
境界面データＤｄは、上記実世界画像データＤｃと合わせて、境界面３上に存在しているように見える実世界画像を生成するためのデータである。第１の描画方法では、例えば、境界面データＤｄは、スクリーンオブジェクトに関するデータであり、境界面３を構成する各点の状態（例えば、開口の有無）を示す開口判定用データ（前述のαテクスチャのデータに相当する）、境界面３の仮想空間上の配置位置（境界面３の仮想空間上の座標）を示すデータ等を含んでいる。また、第２の描画方法では、例えば、境界面データＤｄは、上記実世界画像の平面ポリゴンに開口を表現するためのデータであり、境界面３を構成する各点の状態（例えば、開口の有無）を示す開口判定用データ（前述のαテクスチャのデータに相当する）、境界面３の仮想空間上の配置位置（境界面３の仮想空間上の座標）を示すデータ等を含んでいる。境界面３の仮想空間上の配置位置を示すデータは、例えば、上記球体表面の条件式（仮想空間上における球体表面を定義する関係式）であり、境界面３の仮想空間上の存在範囲を示す。
【０２０５】
開口状態を示す開口判定用データは、例えば、各点のアルファ値（不透明度）を設定可能な２次元（例えば、２０４８ピクセル×３８４ピクセル等の矩形形状）のテクスチャデータである。アルファ値は、“０”が最小で“１”が最大の、“０”から“１”までの値である。アルファ値は、“０”で透明を示し、“１”で不透明を示す。開口判定用データは、開口判定用データに「０」が格納されている位置は開口状態であり、「１」が格納されている位置は開口ではない状態であることを示すことができる。アルファ値は、例えば、ゲーム装置１０内部で生成されるゲーム世界の画像、或いは上側ＬＣＤ２２における画
素又は複数の画素からなる画素ブロック単位に設定することができる。本実施形態では、非開口領域には、「０を超える１未満の所定値（本実施形態においては０．２が設定される）」が格納される。このデータは、実世界画像に適用する時には使用されない。実世界画像に適用する場合、開口判定用データに格納されたアルファ値「０．２」は「１」として取り扱われる。なお、当該アルファ値「０．２」は、前述の敵オブジェクトＥＯの影ＥＳの描画時に使用される。ただし、当該アルファ値の設定、及びアルファ値の取り得る値の範囲は、本発明の画像処理プログラムを限定するものではない。
【０２０６】
本実施形態における画像処理プログラムは、第１の描画方法では、この開口判定用データのうち仮想カメラの撮影範囲に対応する領域のアルファ値と、境界面３に貼り付けられる実世界画像のテクスチャの色情報（画素値）とを掛け算することによって、開口を有する実世界画像を生成することができる。また、第２の描画方法では、この開口判定用データのうち仮想世界描画用カメラの撮影範囲に対応する領域のアルファ値と、実世界画像（具体的には、上記実世界画像データＤｃを用いて後述する平行投影によりレンダリングされた実カメラ画像のレンダリング画像データ）の色情報（画素値）とを掛け算することによって、開口を有する実世界画像を生成することができる。なぜなら、開口位置に格納されたアルファ値「０」と当該位置における実世界画像の色情報とが掛け算されることによって、実世界画像の色情報の値が「０」（完全に透明な状態）となるからである。
【０２０７】
なお、第１の描画方法では、後述するとおり、当該開口判定用データが適用された実世界画像のオブジェクトを含んだ各仮想オブジェクトの仮想空間画像がレンダリングされることにより上側ＬＣＤ２２に表示される画像が生成される。
【０２０８】
また、第２の描画方法では、具体的には、後述するとおり、当該開口判定用データを考慮して仮想空間画像がレンダリングされる。すなわち、開口判定用データに基づいて、各仮想オブジェクトの境界面に対する優先度（実世界画像に対する優先度）が判定され、各仮想オブジェクトがレンダリングされることにより仮想空間画像として生成される。そして、このようにして生成された実世界画像と仮想空間画像とを合成することで、上側ＬＣＤ２２に表示される画像が生成される。
【０２０９】
また、本実施形態における画像処理プログラムでは、境界面３の形状は球体表面である（図７Ａ及び図７Ｂ参照）。そして、本実施形態における開口判定用データの形状は、矩形形状としてよい。この矩形形状の開口判定用データを、図７Ａ及び図７Ｂで図示したような球体表面の中央部にマッピングすることにより、開口判定用データの各点と境界面の各点とを対応させることができる。
【０２１０】
なお、本実施形態において開口判定用データは図７Ａで示す球体表面の中央部に対応するデータのみであるため、仮想カメラ（第２の描画方法では、仮想世界描画用カメラ）の向きによっては、開口判定用データが存在しない場合がある。このように開口判定用データが存在しない場合は、実世界画像はそのまま描画される。すなわち、α値としては「１」が設定されているとして描画される。
【０２１１】
境界面３上に作成される開口の画像処理については後述する。
【０２１２】
＜奥壁画像データＤｅ＞
奥壁画像データＤｅは、第２空間２に存在する奥壁ＢＷに関するデータである。例えば、奥壁画像データＤｅは、奥壁ＢＷの画像を生成するための画像データ、および当該奥壁ＢＷを定義するポリゴンモデルの仮想空間上の位置を示すデータ等を含んでいる。
【０２１３】
奥壁ＢＷを定義するポリゴンモデルは、典型的には、仮想カメラ（第２の描画方法では
、仮想世界描画用カメラ）の位置から伸びる鉛直軸を中心として、図７Ａで示す球体の半径より大きな半径を有し、図７Ａで示す球体の中央部と同じ形状のモデルである。すなわち、奥壁ＢＷを定義するモデルは、境界面３を内含する。また、境界面３に形成される開口予定位置の背後に配置される平面ポリゴンであっても良い。また、境界面３に開口が形成される毎に、第２空間２においてその開口の投影面を定義する平面ポリゴンが配置されるようにしても良い。
【０２１４】
奥壁ＢＷのポリゴンモデルに貼り付けられる画像データ（テクスチャ）は、任意でよい。もっとも、この画像データは、実世界画像の背後に存在する別の空間（第２空間２）を表現するため、宇宙空間，空，水中を示す画像のような非現実を表現する画像であると、プレーヤに対して、現実空間の向こうに非現実な空間があるかのような不思議な感覚を喚起できることで好ましい。例えば、本実施形態のゲームを部屋の中でプレイしているときには、部屋の向こうに非現実な空間があるかのような感覚を与えることができる。また、奥壁のテクスチャは、砂漠、荒野のような普段目にすることのない風景を表現するものであってもよい。このように、奥壁ＢＷのテクスチャの選択によって、ゲーム世界の背景として表現された現実画像の背後に潜む別世界に対する所望のイメージをプレーヤに知らしめることができる。
【０２１５】
また、例えば、当該画像データが、宇宙の画像等の繰り返し表現を用いることができる画像であれば、画像データ（テクスチャ）のデータサイズを小さくすることができる。また、当該画像データが、このような画像であれば、仮想空間上の奥壁ＢＷの描画されるべき位置を特定しなくても、奥壁ＢＷの画像を描画することができる。なぜなら、繰り返し表現を用いることができる画像であれば、描画される画像は位置に依らない（ポリゴンモデル全体に繰り返しパターンを表現できる）からである。
【０２１６】
なお、本実施形態において、後述する描画の優先度はアルファ値によって定められるため、当該画像データにはアルファ値が定められているものとする。本実施形態では、当該画像データに定められているアルファ値は「１」であるとする。
【０２１７】
＜敵オブジェクトデータＤｆ＞
敵オブジェクトデータＤｆは、敵オブジェクトＥＯに関するデータであり、実体データＤｆ１、シルエットデータＤｆ２、および開口形状データＤｆ３を含んでいる。
【０２１８】
実体データＤｆ１は、敵オブジェクトＥＯの実体を描画するためのデータであり、例えば、敵オブジェクトＥＯの実体の３次元形状を定義したポリゴンモデルと、当該ポリゴンモデルにマッピングするためのテクスチャデータである。当該テクスチャデータは、例えば、ゲーム装置１０の各撮像部で撮像したユーザ等の顔写真等であってもよい。なお、本実施形態において、後述する描画の優先度はアルファ値によって定められるため、当該テクスチャデータにはアルファ値が定められているものとする。本実施形態では、当該テクスチャデータに定められているアルファ値は「１」であるとする。
【０２１９】
シルエットデータＤｆ２は、第２空間２に存在する敵オブジェクトＥＯの影を実世界画像上に半透明で描画するためのデータであり、ポリゴンモデルとそのポリゴンモデルに貼り付けられるテクスチャデータとを含む。例えば、このシルエットモデルは、前述したように、８枚の平面ポリゴンを含み、第２空間２に存在する敵オブジェクトＥＯの位置と同じ位置に配置される。このテクスチャが貼り付けられたシルエットモデルを仮想世界描画用カメラで撮影して実世界画像上に半透明などで描画することにより、第２空間２に存在する敵オブジェクトＥＯの影を表現できる。また、シルエットデータＤｆ２のテクスチャデータは、例えば、図１４Ａ及び図１４Ｂに示すように、敵オブジェクトＥＯを各方向からみた画像であってもよい（例えば、８枚の平面ポリゴン）。更に、当該画像は、敵オブ
ジェクトＥＯのシルエットモデルを簡素化した画像であってもよい。なお、本実施形態において、後述する描画の優先度はアルファ値によって定められるため、シルエットモデルに張り付けられるテクスチャデータにはアルファ値が定められているものとする。本実施形態では、当該テクスチャデータに定められているアルファ値は、影画像部分について「１」であり、影画像がない部分（周囲の部分）について「０」であるとする。
【０２２０】
開口形状データＤｆ３は、敵オブジェクトＥＯが第１空間１と第２空間２を往来する際に境界面３上に生成する開口の形状に関するデータである。本実施形態では、開口形状データＤｆ３は、開口を生成する境界面３上の位置に対応する開口判定用データの位置におけるアルファ値を「０」にするためのデータである。例えば、開口形状データＤｆ３は、生成する開口の形状に合わせた、アルファ値「０」のテクスチャデータである。なお、本実施形態では、開口判定用データに対して、上記敵オブジェクトＥＯが境界面３を通った位置に対応する箇所を中心として、当該開口形状データＤｆ３の形状分だけアルファ値「０」に設定する。敵オブジェクトＥＯが境界面３上に開口を生成する際の画像処理については後述する。
【０２２１】
＜弾オブジェクトデータＤｇ＞
弾オブジェクトデータＤｇは、プレーヤの攻撃操作に応じて発射される弾オブジェクトＢＯに関するデータである。例えば、弾オブジェクトデータＤｇは、弾オブジェクトＢＯを描画するためのポリゴンモデル及び弾画像（テクスチャ）データ、弾オブジェクトＢＯの配置方向や配置位置を示すデータ、および弾オブジェクトＢＯの移動速度や移動方向（例えば、移動速度ベクトル）を示すデータ等を含んでいる。なお、本実施形態において、後述する描画の優先度はアルファ値によって定められるため、弾画像データにはアルファ値が定められているものとする。本実施形態では、弾画像データに定められているアルファ値は「１」であるとする。
【０２２２】
＜得点データＤｈ＞
得点データＤｈは、敵オブジェクトＥＯが登場するゲームの得点を示すデータである。例えば、上述のとおり、ゲームの得点は、攻撃操作によって敵オブジェクトＥＯを退治することによって加点され、敵オブジェクトＥＯがユーザの位置（つまり、仮想空間上における仮想カメラの配置位置）に到達することによって減点される。
【０２２３】
＜動きデータＤｉ＞
動きデータＤｉは、実空間におけるゲーム装置１０の動きを示すデータである。一例として、ゲーム装置１０の動きは、角速度センサ４０によって検出された角速度によって算出される。
【０２２４】
＜仮想カメラデータＤｊ＞
仮想カメラデータＤｊは、仮想空間に設置される仮想カメラに関するデータである。第１の描画方法では、例えば、仮想カメラデータＤｊは、仮想カメラの仮想空間上の配置方向や配置位置を示すデータを含んでいる。また、第２の描画方法では、例えば、仮想カメラデータＤｊは、実世界描画用カメラの仮想空間上の配置方向や配置位置を示すデータと、仮想世界描画用カメラの仮想空間上の配置方向や配置位置を示すデータのそれぞれを含む。そして、例えば、第１の描画方法における仮想カメラ及び第２の描画方法における仮想世界描画用カメラの仮想空間上の配置方向や配置位置を示すデータは、動きデータＤｉが示すゲーム装置１０の動き（角速度）に応じて変化する。さらに、仮想カメラデータＤｊは、仮想カメラの画角（撮像範囲）データを含んでいる。これによって、第１の描画方法における仮想カメラ及び第２の描画方法における仮想世界描画用カメラの位置及び向きの変化に応じて、境界面３上の撮像範囲（撮像位置）が変化する。
【０２２５】
＜レンダリング画像データＤｋ＞
レンダリング画像データＤｋは、後述する処理によりレンダリングされた画像に関するデータである。
【０２２６】
第１の描画方法では、実世界画像を仮想空間上のオブジェクトとしてレンダリングするため、レンダリング画像データＤｋは、仮想空間のレンダリング画像データを含む。仮想空間のレンダリング画像データは、敵オブジェクトＥＯ、弾オブジェクトＢＯ、実世界画像がテクスチャとして貼られた境界面３（スクリーンオブジェクト）、奥壁ＢＷが配置された仮想空間を仮想カメラにより透視投影でレンダリングすることによって得られる仮想世界画像を示すデータである。
【０２２７】
他方、第２の描画方法では、実世界画像と仮想世界画像を別々の仮想カメラでレンダリングするため、レンダリング画像データＤｋは、実カメラ画像のレンダリング画像データおよび仮想空間のレンダリング画像データを含んでいる。実カメラ画像のレンダリング画像データは、実カメラ画像のテクスチャがマッピングされた平面ポリゴンを、実世界画像描画用カメラにより平行投影でレンダリングすることによって得られる実世界画像を示すデータである。仮想空間のレンダリング画像データは、敵オブジェクトＥＯ、弾オブジェクトＢＯ、境界面３、奥壁ＢＷが配置された仮想空間を仮想世界描画用カメラにより透視投影でレンダリングすることによって得られる仮想世界画像を示すデータである。
【０２２８】
＜表示画像データＤｌ＞
表示画像データＤｌは、上側ＬＣＤ２２に表示される表示画像を示すデータである。第１の描画方法では、例えば、上側ＬＣＤ２２に表示される表示画像は、仮想空間のレンダリング処理により生成される。また、第２の描画方法では、例えば、上側ＬＣＤ２２に表示される表示画像は、上記カメラ画像のレンダリング画像データと仮想空間のレンダリング画像データとを後述する方法で合成することによって生成される。
【０２２９】
＜照準カーソル画像データＤｍ＞
照準カーソル画像データＤｍは、上側ＬＣＤ２２に表示される照準カーソルＡＬの画像データである。当該画像データは、任意のデータでよい。
【０２３０】
なお、本実施形態では、描画に用いられる各オブジェクトに関するデータ（境界面データＤｄ、奥壁画像データＤｅ、実体データＤｆ１、シルエットデータＤｆ２、弾画像データ）は、描画の優先度を定める優先度情報を含んでいる。本実施形態では、当該優先度情報は、アルファ値が用いられているとする。当該アルファ値と画像処理の関係については後述する。
【０２３１】
また、本実施形態では、描画に用いる各オブジェクトに関するデータは、各オブジェクト間でデプス判定を行うか否かを示すデータが含まれている。当該データは、上述のとおり、敵オブジェクトＥＯ、弾オブジェクトＢＯ、半透明の敵オブジェクト、エフェクトオブジェクト、スクリーンオブジェクト（境界面３）との間は、互いにデプス判定が有効となるように設定されている。また、当該データは、「影用の平面ポリゴン（シルエットデータＤｆ２）と敵オブジェクトＥＯ（実体データＤｆ１）の間」「影用の平面ポリゴン（シルエットデータＤｆ２）と弾オブジェクトＢＯの間」「影用の平面ポリゴン（シルエットデータＤｆ２）と半透明の敵オブジェクトの間」「影用の平面ポリゴン（シルエットデータＤｆ２）とエフェクトオブジェクトの間」は、互いにデプス判定が有効となるように設定されている。さらに、当該データは、影用の平面ポリゴン（シルエットデータＤｆ２）とスクリーンオブジェクト（境界面データＤｄ）との間は、デプス判定が無効となるように設定されている。
【０２３２】
§３−２  画像処理例
次に、図１７を参照して、情報処理部３１の動作について説明する。まず、ゲーム装置１０の電源（電源ボタン１４Ｆ）がＯＮされると、ＣＰＵ３１１によってブートプログラム（図示せず）が実行され、これにより内蔵メモリまたは外部メモリ４５やデータ保存用外部メモリ４６に格納されているプログラムがメインメモリ３２にロードされる。そして、当該ロードされたプログラムが情報処理部３１（ＣＰＵ３１１）で実行されることによって、図１７に示すステップ（図１７〜図１９、図２０Ａ及び図２０Ｂでは「Ｓ」と略称する）が実行される。なお、図１７〜図１９、図２０Ａ及び図２０Ｂにおいては、本発明の画像処理に直接関連しない画像処理及びその他周辺の処理についての記載を省略する。
【０２３３】
図１７において、情報処理部３１は、画像処理における初期設定を行い（ステップ５１）、次のステップ５２に処理を進める。例えば、情報処理部３１は、仮想世界画像（仮想空間の画像）を生成するための仮想カメラの初期位置や初期方向を仮想カメラデータＤｊに設定し、当該仮想カメラが配置される仮想空間の座標軸（例えば、ＸＹＺ軸）を設定する。
【０２３４】
次に、情報処理部３１は、ゲーム装置１０の各構成部より各種データを取得し（ステップ５２）、次のステップ５３に処理を進める。例えば、情報処理部３１は、現在選択されている撮像部（本実施形態では外側撮像部２３）によって撮像されたカメラ画像を用いて、実カメラ画像データＤｂを更新する。また、情報処理部３１は、操作ボタン１４やアナログスティック１５を操作したことを示すデータを取得して、操作子データＤａ１を更新する。更に、情報処理部３１は、角速度センサ４０によって検出された角速度を示す角速度データを取得して、角速度データＤａ２を更新する。
【０２３５】
次に、情報処理部３１は、敵オブジェクト関連処理を実行し（ステップ５３）、次のステップ５４に処理を進める。以下、図１８を参照して、敵オブジェクト関連処理について説明する。
【０２３６】
図１８において、情報処理部３１は、敵オブジェクトＥＯが出現する条件を満たしているか否かを判断する（ステップ６１）。例えば、敵オブジェクトＥＯが出現する条件として、所定時間毎に敵オブジェクトＥＯが出現してもいいし、敵オブジェクトＥＯが仮想世界から消滅したことに応じて新たな敵オブジェクトＥＯが出現してもいいし、ランダムのタイミングで敵オブジェクトＥＯを出現させてもよい。なお、敵オブジェクトＥＯが出現する条件は、例えば、メインメモリ３２に保持されている各種プログラム群Ｐａにより設定される。
【０２３７】
そして、情報処理部３１は、敵オブジェクトＥＯが出現する条件を満たしている場合、次のステップ６２に処理を進める。一方、情報処理部３１は、敵オブジェクトＥＯが出現する条件を満たしていない場合、次のステップ６３に処理を進める。
【０２３８】
ステップ６２において、情報処理部３１は、出現条件を満たした敵オブジェクトＥＯに対応する敵オブジェクトデータＤｆを生成、および初期設定を行って、次のステップ６３に処理を進める。例えば、情報処理部３１は、メインメモリ３２に保持されている各種プログラム群Ｐａを用いて、実体データＤｆ１、シルエットデータＤｆ２、開口形状データＤｆ３、および敵オブジェクトＥＯに対応するポリゴンのデータを取得する。そして、情報処理部３１は、当該各データを含んだ敵オブジェクトデータＤｆを生成する。また、例えば、情報処理部３１は、生成した敵オブジェクトデータＤｆに含まれる、敵オブジェクトＥＯに対応するポリゴンの仮想空間上における配置方向や配置位置を示すデータ、および敵オブジェクトＥＯの仮想空間上における移動速度や移動方向を示すデータの初期設定を行う。当該初期設定は周知の方法で行われる。
【０２３９】
次に、情報処理部３１は、仮想空間に配置されている敵オブジェクトＥＯを移動させ（ステップ６３）、次のステップ６４に処理を進める。一例として、情報処理部３１は、敵オブジェクトデータＤｅに含まれる敵オブジェクトＥＯの配置位置を示すデータを、当該敵オブジェクトデータＤｅに含まれる敵オブジェクトＥＯの仮想空間上における移動速度や移動方向を示すデータに基づいて更新する。この際、情報処理部３１は、敵オブジェクトデータＤｅに含まれる敵オブジェクトＥＯの配置方向を示すデータを、上記移動方向を示すデータに基づいて更新する。更新後、敵オブジェクトデータＤｅに含まれる敵オブジェクトＥＯの仮想空間上における移動速度や移動方向を示すデータを任意に更新してもよい。移動速度や移動方向を示すデータを更新することで、敵オブジェクトＥＯは、仮想空間上を、任意の速度、任意の方向に移動することができる。なお、移動速度や移動方向を示すデータは、例えば、所定のアルゴリズムにしたがって更新される。
【０２４０】
次に、情報処理部３１は、敵オブジェクトＥＯが仮想カメラ（第１の描画方法における仮想カメラまたは第２の描画方法における仮想世界描画用カメラ。）の位置から一定距離まで到達したか否かを判定する（ステップ６４）。例えば、情報処理部３１は、敵オブジェクトデータＤｅに含まれる敵オブジェクトＥＯの配置位置を示すデータと、仮想カメラデータＤｊに含まれる仮想カメラ（第１の描画方法における仮想カメラまたは第２の描画方法における仮想世界描画用カメラ）の配置位置を示すデータとを比較する。そして、情報処理部３１は、二つのデータが所定の条件（例えば、敵オブジェクトＥＯの配置位置と仮想カメラの配置位置との間の距離が所定の値よりも小さくなる）を満たした場合、敵オブジェクトＥＯが仮想カメラの位置から一定距離まで到達したと判定し、二つのデータが所定の条件を満たさない場合、敵オブジェクトＥＯは仮想カメラの位置まで到達していないと判定する。なお、以下、第１の描画方法及び第２の描画方法を区別せず、単に「仮想カメラ」と表記した場合、第１の描画方法における仮想カメラまたは第２の描画方法における仮想世界描画用カメラを指す。
【０２４１】
情報処理部３１は、敵オブジェクトＥＯが仮想カメラの位置から一定距離まで到達したと判定した場合、次のステップ６５に処理を進める。一方、情報処理部３１は、敵オブジェクトＥＯが仮想カメラの位置まで到達していないと判定した場合、ステップ６６に処理を進める。
【０２４２】
ステップ６５において、情報処理部３１は、減点処理を行って、次のステップ６６に処理を進める。例えば、情報処理部３１は、得点データＤｈが示すゲームの得点を所定値だけ減点し、減点後の得点を用いて得点データＤｈを更新する。なお、上記減点処理においては、情報処理部３１は、上記仮想カメラの位置から一定距離まで到達した敵オブジェクトＥＯを仮想空間から消滅させる処理（例えば、仮想カメラの位置まで到達した敵オブジェクトＥＯに関する敵オブジェクトデータＤｅを初期化し、当該敵オブジェクトＥＯが仮想空間に存在しない状態にする）を行ってもよい。また、当該減点処理における所定値は、任意の値でよく、例えば、メインメモリ３２に保持されている各種プログラム群Ｐａによって設定されてもよい。
【０２４３】
ステップ６６において、情報処理部３１は、敵オブジェクトＥＯが境界面３を通過する（敵オブジェクトＥＯが第１空間１と第２空間２との間を移動する）か否かを判定する。例えば、情報処理部３１は、敵オブジェクトデータＤｆに含まれる敵オブジェクトＥＯの配置位置を示すデータと、境界面データＤｄに含まれる境界面３の配置位置を示すデータとを比較する。そして、情報処理部３１は、二つのデータが所定の条件を満たした場合、敵オブジェクトＥＯが境界面３を通過すると判定し、二つのデータが所定の条件を満たさない場合、敵オブジェクトＥＯが境界面３を通過しないと判定する。なお、所定の条件とは、例えば、敵オブジェクトＥＯの仮想空間上の座標（配置位置）が、境界面３の球体表
面の条件式を満たすことである。上述のとおり、境界面３の仮想空間上の配置位置を示すデータは、境界面３の仮想空間上の存在範囲を示し、例えば、球体表面（本実施形態における境界面３の形状）の条件式である。敵オブジェクトＥＯの配置位置が当該条件式を満たす場合、敵オブジェクトＥＯは、仮想空間において境界面３上に存在することになる。本実施形態では、例えばこのような場合に、敵オブジェクトＥＯが境界面３を通過すると判定する。
【０２４４】
情報処理部３１は、敵オブジェクトＥＯが境界面３を通過すると判定した場合、次のステップ６７に処理を進める。一方、情報処理部３１は、敵オブジェクトＥＯが境界面３を通過しないと判定した場合、当該サブルーチンによる処理を終了する。
【０２４５】
ステップ６７において、情報処理部３１は、境界面データＤｄに含まれる開口判定用データの更新処理を行って、当該サブルーチンによる処理を終了する。本処理は、敵オブジェクトＥＯが境界面３を通過することによりできる境界面３上の開口情報を境界面データＤｄに登録するための処理である。例えば、第１の描画方法及び第２の描画方法において、情報処理部３１は、境界面データＤｄに含まれる開口判定用データの、敵オブジェクトＥＯが境界面３を通過する仮想空間上の位置に対応する位置を中心とした領域のアルファ値と開口形状データＤｆ３のアルファ値とを乗算する。開口形状データＤｆ３は、敵オブジェクトＥＯの配置位置を中心とした、アルファ値「０」が格納されたテクスチャデータである。そのため、当該乗算によって、敵オブジェクトＥＯの配置位置（敵オブジェクトＥＯが通過する境界面３上の座標）を中心として開口が生成される領域の開口判定用データのアルファ値は「０」となる。つまり、情報処理部３１は、境界面３上に既に開口が存在するか否かを判定することなく、境界面の状態（具体的には開口判定用データ）を更新することができる。なお、敵オブジェクトと境界面の衝突位置に既に開口が存在するか否かを判定するようにしてもよい。そして、開口が存在しない場合には、当該衝突位置に対応する実世界画像が破片となって飛び散るエフェクトを表示してもよい。
【０２４６】
また、上記開口判定用データの更新処理においては、情報処理部３１は、開口が生成されたことの演出処理（例えば、開口が生成された位置において壁が崩れる演出を行う）を行ってもよい。この場合、情報処理部３１は、敵オブジェクトＥＯが境界面３を通過する位置（開口を生成する範囲）が既に開口状態であったか否かの判定をする必要がある。情報処理部３１は、例えば、開口形状データＤｆ３のアルファ値を「０」から「１」に反転させたデータと上記乗算した開口判定用データのアルファ値とを乗算することにより、開口を生成する範囲が既に開口状態であったかどうかの判定をすることができる。すなわち、開口を生成する範囲全てが既に開口状態であった場合、開口判定用データのアルファ値は「０」であるから、当該乗算結果は「０」である。他方、開口を生成する範囲の一部でも開口状態ではない場合、開口判定用データのアルファ値は「０」でない部分が存在するため、当該乗算結果は「０」以外となる。
【０２４７】
なお、敵オブジェクトＥＯの開口形状データＤｆ３は、敵オブジェクトＥＯの形状に対応したアルファ値「０」を格納したテクスチャデータであるが、情報処理部３１は、所定のイベントにより当該テクスチャデータのアルファ値を「１」に変換してもよい。当該変更後上記処理が行われた場合、開口形状データＤｆ３のアルファ値が「１」であるため、開口判定用データのアルファ値は変更されない。この場合、敵オブジェクトＥＯは、開口を作らず、境界面３を通過する。すなわち、これによって、敵オブジェクトＥＯが、境界面３をすり抜けるかのような演出を行うことができる（図９参照）。なお、所定のイベントとは、例えば、乱数や所定の間隔で定められた時間間隔であってもよいし、ゲーム上の所定条件が満たされたことであってもよい。そして、これらは、例えば、メインメモリ３２に保持されている各種プログラム群Ｐａによって設定されてもよい。
【０２４８】
図１７に戻り、上記ステップ５３における敵オブジェクト関連処理の後、情報処理部３１は、弾オブジェクト関連処理を行い（ステップ５４）、次のステップ５５に処理を進める。以下、図１９を参照して、弾オブジェクト関連処理について説明する。
【０２４９】
図１９において、情報処理部３１は、設定されている移動速度ベクトルに応じて、仮想空間内で弾オブジェクトＢＯを移動させ（ステップ７１）、次のステップ７２に処理を進める。例えば、情報処理部３１は、弾オブジェクトデータＤｇに含まれる移動速度ベクトルを示すデータに基づいて、弾オブジェクトＢＯの配置方向や配置位置を示すデータを更新する。この際、情報処理部３１は、周知の方法で、当該移動速度ベクトルを示すデータを更新してもよい。また、例えば、情報処理部３１は、弾オブジェクトＢＯの種類に応じて、当該移動速度ベクトルを示すデータの更新方法を変えてもよい。例えば、弾オブジェクトＢＯがボールである場合、情報処理部３１は、仮想空間上鉛直方向における重力の影響を考慮して、当該移動速度ベクトルを示すデータを更新してもよい。
【０２５０】
次に、情報処理部３１は、ゲーム装置１０のユーザによって発射操作が行われたか否かを判断する（ステップ７２）。例えば、情報処理部３１は、操作子データＤａ１を参照して、ユーザが所定の発射操作（例えば、ボタン１４Ｂ（Ａボタン）の押下）を行ったか否かを判断する。そして、情報処理部３１は、発射操作が行われた場合、次のステップ７３に処理を進める。一方、情報処理部３１は、発射操作が行われていない場合、次のステップ７４に処理を進める。
【０２５１】
ステップ７３において、情報処理部３１は、発射操作に応じて、仮想空間における仮想カメラの位置に弾オブジェクトＢＯを配置し、当該弾オブジェクトＢＯに対する移動速度ベクトルを設定して、次のステップ７４に処理を進める。例えば、情報処理部３１は、当該発射操作に対応する弾オブジェクトデータＤｇを生成する。そして、例えば、情報処理部３１は、仮想カメラデータＤｊに含まれる仮想カメラの配置位置や配置方向を示すデータを、生成した弾オブジェクトデータＤｇに含まれる弾オブジェクトＢＯの配置位置や配置方向を示すデータに格納する。また、例えば、情報処理部３１は、生成した弾オブジェクトデータＤｇに含まれる移動速度ベクトルを示すデータに任意の値を格納する。当該移動速度ベクトルを示すデータに格納する値は、メインメモリ３２に保持されている各種プログラム群Ｐａによって設定されてもよい。
【０２５２】
ステップ７４において、情報処理部３１は、敵オブジェクトＥＯと弾オブジェクトＢＯとが仮想空間内で接触したか否かを判断する。例えば、情報処理部３１は、敵オブジェクトデータＤｆに含まれる敵オブジェクトＥＯの配置位置を示すデータと、弾オブジェクトデータＤｇに含まれる弾オブジェクトＢＯの配置位置を示すデータとを比較して、敵オブジェクトＥＯと弾オブジェクトＢＯとが仮想空間内で接触したか否かを判断する。例えば、情報処理部３１は、敵オブジェクトＥＯの配置位置を示すデータと弾オブジェクトＢＯの配置位置を示すデータとが所定の条件を満たした場合、敵オブジェクトＥＯと弾オブジェクトＢＯとが接触したと判定する。また、そうではない場合、情報処理部３１は、敵オブジェクトＥＯと弾オブジェクトＢＯとが接触していないと判定する。なお、所定の条件とは、例えば、敵オブジェクトＥＯの配置位置と弾オブジェクトＢＯの配置位置との間の距離が所定の値よりも小さくなることである。当該所定の値は、例えば、敵オブジェクトＥＯの大きさに基づいた値であってもよい。
【０２５３】
そして、情報処理部３１は、敵オブジェクトＥＯと弾オブジェクトＢＯとが接触したと判定した場合、次のステップ７５に処理を進める。一方、情報処理部３１は、敵オブジェクトＥＯと弾オブジェクトＢＯとが接触していないと判定した場合、次のステップ７６に処理を進める。
【０２５４】
ステップ７５において、情報処理部３１は、加点処理を行って、次のステップ７６に処理を進める。例えば、上記加点処理においては、情報処理部３１は、得点データＤｈが示すゲームの得点を所定数だけ加点し、加点後の得点を用いて得点データＤｈを更新する。また、上記加点処理においては、情報処理部３１は、上記ステップ８４で接触したと判定された両者（すなわち、敵オブジェクトＥＯと弾オブジェクトＢＯ）を仮想空間から消滅させる処理（例えば、弾オブジェクトＢＯと接触した敵オブジェクトＥＯおよび敵オブジェクトＥＯに接触した弾オブジェクトＢＯに関するそれぞれの敵オブジェクトデータＤｅおよび弾オブジェクトデータＤｇを初期化し、当該敵オブジェクトＥＯおよび弾オブジェクトＢＯが仮想空間に存在しない状態にする）を行う。なお、当該加点処理における所定値は、任意の値でよく、例えば、メインメモリ３２に保持されている各種プログラム群Ｐａによって設定されてもよい。
【０２５５】
ステップ７６において、情報処理部３１は、弾オブジェクトＢＯが境界面３上の非開口領域に接触したか否かを判断する。例えば、情報処理部３１は、弾オブジェクトデータＤｇに含まれる弾オブジェクトＢＯの配置位置を示すデータと、開口判定用データとを用いて、弾オブジェクトＢＯが境界面３上の非開口領域に接触したか否かを判定する。
【０２５６】
例えば、情報処理部３１は、弾オブジェクトデータＤｇに含まれる弾オブジェクトＢＯの配置位置を示すデータが、上記敵オブジェクトＢＯの処理と同様に、境界面３の球体表面の条件式を満たすか否かを判定する。そして、情報処理部３１は、弾オブジェクトＢＯの配置位置を示すデータが、当該球体表面の条件式を満たさない場合、弾オブジェクトＢＯが境界面３上に接触していないと判定する。他方、弾オブジェクトＢＯの配置位置を示すデータが、境界面３の球体表面の条件式を満たす場合、弾オブジェクトＢＯは、仮想空間上、境界面３上に存在することになる。この時、情報処理部３１は、例えば、当該弾オブジェクトＢＯが存在する境界面３上の位置に対応する位置を中心とした所定の領域について、開口判定用データのアルファ値を取得する。この所定の領域は、弾オブジェクトＢＯと境界面３との接触点を中心とした所定領域である。そして、当該所定領域に対応する開口判定用データのアルファ値が非開口領域に対応するアルファ値「１」である場合、弾オブジェクトＢＯが境界面３上の非開口領域に接触したと判定する。
【０２５７】
そして、情報処理部３１は、弾オブジェクトＢＯが境界面３上の非開口領域に接触したと判定した場合、次のステップ７７に処理を進める。一方、情報処理部３１は、弾オブジェクトＢＯが境界面３上の非開口領域に接触していないと判定した場合、次のステップ７８に処理を進める。
【０２５８】
ステップ７７において、情報処理部３１は、開口判定用データの更新処理を行って、次のステップ７８に処理を進める。例えば、上記更新処理においては、情報処理部３１は、境界面３の非開口領域と接触したと判定した弾オブジェクトＢＯの配置位置に対応する境界面３上の位置を中心とした所定領域の開口判定用データのアルファ値を非開口領域に対応するアルファ値「１」に更新する。また、上記更新処理においては、情報処理部３１は、上記ステップ７６で接触したと判定された弾オブジェクトＢＯを仮想空間から消滅させる処理（例えば、境界面３上の非開口領域と接触した弾オブジェクトＢＯに関する弾オブジェクトデータＤｇを初期化し、当該弾オブジェクトＢＯが仮想空間に存在しない状態にする）を行う。なお、当該更新処理における所定領域は、任意の領域でよく、例えば、メインメモリ３２に保持されている各種プログラム群Ｐａによって設定されてもよい。
【０２５９】
ステップ７８において、情報処理部３１は、弾オブジェクトＢＯが仮想空間における所定の位置まで到達したか否かを判断する。所定の位置は、例えば、仮想空間上における奥壁が存在する位置であってもよい。この場合、例えば、情報処理部３１は、弾オブジェクトデータＤｇに含まれる弾オブジェクトＢＯの配置位置を示すデータがる奥壁に衝突した
か否かを判定する。
【０２６０】
そして、情報処理部３１は、弾オブジェクトＢＯが所定の位置まで到達した場合、次のステップ７７に処理を進める。一方、情報処理部３１は、弾オブジェクトＢＯが所定の位置まで到達していない場合、当該サブルーチンによる処理を終了する。
【０２６１】
ステップ７７において、情報処理部３１は、上記ステップ７６で所定の位置に到達したと判定された弾オブジェクトＢＯを仮想空間から消滅させる処理を行い、当該サブルーチンによる処理を終了する。例えば、情報処理部３１は、上記ステップ７６で所定の位置に到達したと判定された弾オブジェクトＢＯを仮想空間から消滅させる処理（例えば、当該弾オブジェクトＢＯに関する弾オブジェクトデータＤｇを初期化し、当該弾オブジェクトＢＯが仮想空間に存在しない状態にする）を行う。
【０２６２】
図１７に戻り、上記ステップ５４における弾オブジェクト関連処理の後、情報処理部３１は、ゲーム装置１０の動きを算出して（ステップ５５）、次のステップ５６に処理を進める。一例として、情報処理部３１は、角速度データＤａ２が示す角速度を用いて、ゲーム装置１０の動き（例えば、ゲーム装置１０に設けられた実カメラにおける撮像方向の変化）を算出し、当該動きを用いて動きデータＤｉを更新する。具体的には、ユーザが実空間においてゲーム装置１０に設けられた実カメラの撮像方向を変化させた場合、ゲーム装置１０全体の向きも変化するため、ゲーム装置１０に当該変化に応じた角速度が生じる。そして、ゲーム装置１０に生じた角速度を角速度センサ４０が検出することによって、当該角速度を示すデータが角速度データＤａ２に格納される。したがって、情報処理部３１は、角速度データＤａ２が示す角速度を用いることによって、ゲーム装置１０に設けられた実カメラの撮像方向が変化した方向や変化した量（角度）をゲーム装置１０の動きとして算出することが可能となる。
【０２６３】
次に、情報処理部３１は、ゲーム装置１０の動きに応じて仮想空間における仮想カメラの方向を変更し（ステップ５６）、次のステップ５７に処理を進める。例えば、情報処理部３１は、動きデータＤｉを用いて、実空間におけるゲーム装置１０の実カメラの撮像方向変化と同じ変化を、仮想空間における仮想カメラに与え、変化後の仮想カメラの位置や方向を用いて仮想カメラデータＤｊを更新する。一例として、実空間におけるゲーム装置１０の実カメラの撮像方向が左へＡ°変化した場合、仮想空間における仮想カメラの方向も左へＡ°変化させる。これによって、実空間内に配置されているように表示されている敵オブジェクトＥＯや弾オブジェクトＢＯは、実空間内におけるゲーム装置１０の方向や位置が変わっても実空間内における同じ位置に配置されているように表示される。
【０２６４】
次に、情報処理部３１は、表示画面の更新処理を行い（ステップ５７）、次のステップ５８に処理を進める。以下、図２０Ａ及び図２０Ｂを参照して、表示画面の更新処理について説明する。図２０Ａは、第１の描画方法における表示画面の更新処理である。また、図２０Ｂは、第２の描画方法における表示画面の更新処理である。
【０２６５】
まず、第１の描画方法における表示画面の更新処理について説明する。
【０２６６】
図２０Ａにおいて、情報処理部３１は、上記ステップ５２で取得した実カメラ画像を仮想カメラの撮影範囲におけるスクリーンオブジェクト（境界面３）に貼りつける処理を行い（ステップ８１）、次のステップ８２に処理を進める。例えば、情報処理部３１は、上記ステップ５２で更新した実カメラ画像データＤｂを用いて、実世界画像データＤｃに含まれる実カメラ画像のテクスチャデータを更新する。そして、情報処理部３１は、仮想カメラデータＤｊに含まれる仮想カメラの仮想空間上の配置方向及び配置位置を示すデータを用いて、仮想カメラの視野方向と境界面３の重なる点を求める。情報処理部３１は、求
めた点を中心として実世界画像データＤｃに含まれる上記実カメラ画像のテクスチャデータを貼り付け、境界面データＤｄを更新する。この時、情報処理部３１は、テクスチャデータを貼りつける領域に設定されている開口判定用データを、テクスチャデータの各画素に対応する領域分取得する。そして、情報処理部３１は、取得した開口判定用データに設定されているアルファ値（「０」または「０．２」）を上記テクスチャデータに適用する。具体的には、情報処理部３１は、貼り付ける実カメラ画像のテクスチャデータの各画素の色情報と、開口判定用データの対応する位置におけるアルファ値とを掛け算する。この処理により、上述のとおり、実世界画像に開口が表現される。なお、開口判定用データに格納されるアルファ値「０．２」（非開口領域）は、上記掛け算の際は、上述のマテリアルとしてのアルファ値「１」として取り扱われる。また、本実施形態では、境界面３に貼り付けられる実カメラ画像のテクスチャデータは、仮想カメラの視野範囲よりも領域の広い画像データである。
【０２６７】
次に、情報処理部３１は、仮想空間をレンダリングする処理により表示画像を生成し（ステップ８２）、当該サブルーチンによる処理を終了する。例えば、情報処理部３１は、境界面３（スクリーンオブジェクト）、敵オブジェクトＥＯ、弾オブジェクトＥＯ、及び奥壁ＢＷが配置されている仮想空間をレンダリングした画像を生成し、当該画像を用いてレンダリング画像データＤｋに含まれる仮想空間のレンダリング画像データを更新する。また、情報処理部３１は、仮想空間のレンダリング画像データを用いて表示画像データＤｌを更新する。以下、図２１及び図２２を用いて、当該レンダリング処理の一例について説明する。
【０２６８】
図２１は、仮想空間上における、敵オブジェクトＥＯ、弾オブジェクトＢＯ、境界面３（開口判定用データが設定されたスクリーンオブジェクト）及び奥壁ＢＷの配置例を示す。また、図２２は、図２１における仮想カメラＣ０が原点から（Ｘ，Ｙ，Ｚ）＝（０，０，１）方向に向いているとした場合における各オブジェクトの位置関係を示す。このように、敵オブジェクトＥＯ、弾オブジェクトＢＯ、境界面３及び奥壁ＢＷが、それぞれ敵オブジェクトデータＤｆ、弾オブジェクトデータＤｇ、境界面データＤｄ及び奥壁画像データＤｅに含まれる配置位置を示すデータに応じて配置されている。また、仮想空間には、仮想空間をレンダリングするための仮想カメラＣ０が、仮想カメラデータＤｊに含まれる配置方向及び配置位置を示すデータに応じて配置されている。
【０２６９】
情報処理部３１は、図２１（または図２２）に示されるとおり境界面３を含み、仮想空間に配置された敵オブジェクトＥＯ、弾オブジェクトＢＯ、奥壁ＢＷを仮想カメラＣ０により透視投影でレンダリングする。このとき、情報処理部３１は、描画の優先度情報を考慮する。通常の透視投影では、境界面３により、第２空間２に存在するオブジェクトは描画されない。本実施形態のゲームでは、境界面３（実世界画像）に開口部を設けて、その開口部から第２空間２の一部が見えるようにした。また、第２空間２にあるオブジェクトの影を実世界画像に合成して描画するようにした。こうすることによって、実世界画像の向こうにさらに仮想世界が存在しているかのような感覚をユーザに与えることができる。具体的には、情報処理部３１は、描画の優先度情報を用いて、当該レンダリング処理を行う。なお、本実施形態における画像処理プログラムは、当該描画の優先度の一例として、アルファ値を用いる。
【０２７０】
上記透視投影において、第２空間２に存在するオブジェクト（本実施形態では敵オブジェクトＥＯ又は奥壁ＢＷ）は、境界面３の背後に存在する。ここで、境界面３は、上述のステップ８１により実カメラ画像のテクスチャデータが仮想カメラＣ０の視野方向（視野範囲）に貼られたスクリーンオブジェクトである。また、上記のとおり、実カメラ画像のテクスチャデータには、各位置に対応する開口判定用データが適用されている。したがって、仮想カメラＣ０の視野範囲には、開口判定用データが適用された実世界画像が存在す
る。
【０２７１】
なお、本実施形態では、例えば、情報処理部３１は、開口判定用データにアルファ値「０」が格納された領域（開口領域）については、第２空間２のうち開口領域から見える領域に存在する仮想オブジェクトや奥壁の画像を描画（レンダリング）する。また、情報処理部３１は、開口判定用データに非開口領域に対応するアルファ値「０．２」が格納された領域（非開口領域としてアルファ値「１」が格納された領域として取り扱われる領域）については、第２空間２に存在する仮想オブジェクトや奥壁は描画されない。すなわち、表示される画像において当該領域に対応する部分には、上述のステップ８１により貼り付けられた実世界画像が描画されることになる。
【０２７２】
したがって、仮想カメラＣ０から見て開口判定用データに「０」が格納された領域については、実体データＤｆ１、または、奥壁画像データＤｅに含まれる画像データが描画されるようレンダリングされる。そして、上側ＬＣＤ２２上において当該領域に対応する部分には、仮想オブジェクト・奥壁の画像が表示されることになる。
【０２７３】
また、仮想カメラＣ０から見て開口判定用データに非開口領域を示すアルファ値「０．２」が格納された領域（非開口領域としてアルファ値「１」が格納された領域として取り扱われる領域）については、第２空間２に存在する仮想オブジェクトや奥壁は描画されない。すなわち、上側ＬＣＤ２２に表示される画像において当該領域に対応する部分には、実世界画像が描画されることになる。ただし、前述の第２空間２に存在する敵オブジェクトＥＯの影ＥＳ（シルエットモデル）については、境界面３との間のデプス判定を無効に設定されており、境界面３のアルファ値「０．２」よりもシルエットモデルのアルファ値「１」の方が大きいため、非開口領域を示すアルファ値「１」が格納されている領域（開口判定用データにアルファ値「０．２」が格納された領域）において描画される。これにより、実世界画像上に影ＥＳの画像が描画される。
【０２７４】
また、敵オブジェクトＥＯの影ＥＳ（シルエットモデル）は実体モデルに内包されるようなサイズ及び位置で配置され、かつ、敵オブジェクトＥＯの実体モデルと影ＥＳのシルエットモデルはデプス判定有効に設定される。敵オブジェクトＥＯが第１空間１に存在する場合、シルエットモデルは実体モデルに隠されるため描画されない。
【０２７５】
なお、本実施形態における境界面３の形状は図７Ａに示すように球体表面の中央部であるため、仮想カメラＣ０の視野方向によっては、開口判定用データが存在しない。この場合、疑似的にアルファ値を「０．２」を格納した開口判定用データが存在するものとして、上記処理を行う。つまり、開口判定用データが存在しない領域は、非開口領域を示すアルファ値「１」が格納されている領域として取り扱われる。
【０２７６】
また、本実施形態における敵オブジェクトＥＯに対応する敵オブジェクトデータＤｆに含まれるシルエットデータＤｆ２は、複数の平面ポリゴンがその法線方向を敵オブジェクトから見て各放射方向となるように設定されており、各平面ポリゴンには、敵オブジェクトをその方向から見たシルエット画像のテクスチャが適用される。したがって、本実施形態における画像処理プログラムでは、仮想空間画像における敵オブジェクトＥＯの影は、第２空間２における敵オブジェクトの向きが反映された画像として表現される。
【０２７７】
また、情報処理部３１は、照準カーソル画像データＤｍに含まれる画像データを仮想カメラＣ０の視野の中心（レンダリングする画像の中心）に優先して描画されるように上記レンダリング処理を行う。
【０２７８】
以上の処理によって、情報処理部３１は、仮想空間に配置された敵オブジェクトＥＯ、
弾オブジェクトＢＯ、及び奥壁ＢＷを透視投影でレンダリングし、仮想カメラＣ０から見た仮想世界画像（照準カーソルＡＬを含んだ画像）を生成し、仮想空間のレンダリング画像データを更新する（ステップ８２）。そして、更新した仮想空間のレンダリング画像データを用いて、表示画像データＤｌを更新する。
【０２７９】
次に、第２の描画方法における表示画面の更新処理について説明する。
【０２８０】
図２０Ｂにおいて、情報処理部３１は、上記ステップ５２で取得した実カメラ画像をレンダリングする処理を行い（ステップ８３）、次のステップ８４に処理を進める。例えば、情報処理部３１は、上記ステップ５２で更新した実カメラ画像データＤｂを用いて、実世界画像データＤｃに含まれる実カメラ画像のテクスチャデータを更新する。そして、情報処理部３１は、更新した実世界画像データＤｃを用いて、実カメラ画像をレンダリングした画像を生成し、生成した画像を用いて、レンダリング画像データＤｋに含まれる実カメラ画像のレンダリング画像データを更新する。以下、図２３及び図２４を用いて実カメラ画像をレンダリングする処理例について説明する。
【０２８１】
本実施形態において情報処理部３１は、図２３に示すように、ゲーム装置１０の実カメラから得られた実カメラ画像をテクスチャに設定し、当該テクスチャがマッピングされた平面ポリゴンを生成する。そして、情報処理部３１は、実世界画像描画用カメラＣ１から、平行投影で上記平面ポリゴンをレンダリングした画像を実世界画像として生成する。ここで、上側ＬＣＤ２２の表示画面全面に、ゲーム装置１０の実カメラから得られた実カメラ画像全面が表示される場合の実世界画像生成方法の一例について説明する。なお、本実施形態では上側ＬＣＤ２２の表示画面全体に本実施形態の合成画像（実世界画像と仮想世界画像との合成画像）が表示されるようにしたが、上側ＬＣＤ２２の表示画面の一部領域に合成画像が表示されるようにしてもよい。この場合には、この合成画像全体に実カメラ画像全体が表示されるようにする。
【０２８２】
まず、上記平面ポリゴンを配置する仮想空間の座標の１単位に対して、ｉピクセルのテクスチャをマッピングする平面ポリゴンを考える。この場合、上記座標の１単位×１単位の領域に対して、ｉピクセル×ｉピクセルのテクスチャがマッピングされることになる。ここで、上側ＬＣＤ２２の表示画面が横Ｗｄｏｔ×縦Ｈｄｏｔであって、Ｗｄｏｔ×Ｈｄｏｔの表示画面全面と上記実カメラ画像のテクスチャ全面とが対応しているとする。つまり、カメラ画像のテクスチャデータのサイズが横Ｗピクセル×縦Ｈピクセルであるとする。
【０２８３】
この場合、当該表示画面の１ｄｏｔ×１ｄｏｔと上記実カメラ画像のテクスチャ１ピクセル×１ピクセルとが対応するように平面ポリゴンを配置することを考えればよく、図２４に示すように上記座標を定めればよい。すなわち、上記カメラ画像のテクスチャが主面全面にマッピングされた平面ポリゴンの幅がＷ／ｉ座標分となり、平面ポリゴンの縦がＨ／ｉ座標分となるように、当該平面ポリゴンを配置する仮想空間のＸＹ座標を設定する。そして、上記テクスチャがマッピングされた平面ポリゴンの主面中心を仮想空間のＸＹ座標の原点に一致させ、当該平面ポリゴンの横方向がＸ軸方向（右方向がＸ軸正方向）となり、当該平面ポリゴンの縦方向がＹ軸方向（上方向がＹ軸正方向）となるように当該平面ポリゴンを配置する。この場合、上記テクスチャがマッピングされた平面ポリゴンの主面における右上角位置が（Ｘ，Ｙ）＝（Ｗ／２ｉ，Ｈ／２ｉ）に配置され、右下角位置が（Ｘ，Ｙ）＝（Ｗ／２ｉ，−Ｈ／２ｉ）に配置され、左上角位置が（Ｘ，Ｙ）＝（−Ｗ／２ｉ，Ｈ／２ｉ）に配置され、左下角位置が（Ｘ，Ｙ）＝（−Ｗ／２ｉ，−Ｈ／２ｉ）に配置されることになる。
【０２８４】
このように配置すれば、上記座標の１単位×１単位の領域が、テクスチャのｉピクセル
×ｉピクセルの領域に対応するため、平面ポリゴンの横（Ｗ／ｉ）×縦（Ｈ／ｉ）の領域は、テクスチャのＷピクセル×Ｈピクセルのサイズに対応する。
【０２８５】
以上のとおり、表示画面上の１ｄｏｔと実カメラ画像（テクスチャ）の１ピクセルとが対応するように、仮想空間の座標に配置された平面ポリゴンを平行投影でレンダリングすることによって、ゲーム装置１０の実カメラから得られた実カメラ画像に対応する実世界画像が生成される。
【０２８６】
なお、上述のとおり、実世界画像データＤｃに含まれる実カメラ画像のテクスチャデータは、実カメラ画像データＤｂによって更新されるが、実カメラ画像データＤｂの画像の横Ａ×縦Ｂのサイズと当該テクスチャデータの横Ｗ×縦Ｈのサイズが一致しない場合が存在する。この場合、情報処理部３１は、任意の方法で、当該テクスチャデータの更新を行う。例えば、情報処理部３１は、Ｗ×Ｈサイズの画像（テクスチャデータの画像）に合うように、実カメラ画像データＤｂの画像の横Ａ及び縦Ｂのサイズを拡大及び縮小した画像を用いて、テクスチャデータを更新してもよい。また、例えば、実カメラ画像データＤｂの画像の横Ａ及び縦Ｂのサイズが、テクスチャデータの横Ｗ及び縦Ｈのサイズよりも大きいとする。この場合、例えば、情報処理部３１は、実カメラ画像データＤｂの画像の所定位置より、Ｗ×Ｈサイズの画像（テクスチャデータの画像）を切り出し、当該テクスチャデータを更新してもよい。また、例えば、実カメラ画像データＤｂの画像の横Ａ及び縦Ｂのサイズの少なくともどちらか一方が、テクスチャデータの横Ｗ及び縦Ｈのサイズよりも小さいとする。この場合、例えば、情報処理部３１は、実カメラ画像データＤｂの画像をテクスチャデータのサイズよりも大きくなるように拡大した後、拡大後の画像の所定の位置より、Ｗ×Ｈサイズの画像（テクスチャデータの画像）を切り出し、当該テクスチャデータを更新してもよい。
【０２８７】
また、本実施形態において、上側ＬＣＤ２２の表示画面の横×縦のサイズと、実カメラ画像のテクスチャデータの横×縦のサイズとが一致しているが、これらは一致していなくともよい。この場合、上側ＬＣＤ２２の表示画面と実世界画像のサイズが一致しないことになるが、情報処理部３１は、上側ＬＣＤ２２の表示画面に実世界画像を表示する際、周知の方法で、実世界画像のサイズを変更すればよい。
【０２８８】
次に、情報処理部３１は、図２０Ｂに示されるとおり、仮想空間をレンダリングする処理を行い（ステップ８４）、次のステップ８５に処理を進める。例えば、情報処理部３１は、開口判定用データを考慮して、敵オブジェクトＥＯ、弾オブジェクトＢＯ、及び奥壁ＢＷが配置されている仮想空間をレンダリングした画像を生成し、当該画像を用いて、レンダリング画像データＤｋに含まれる仮想空間のレンダリング画像データを更新する。以下、図２５〜図２７を用いて、当該レンダリング処理の一例について説明する。
【０２８９】
図２５は、仮想空間上における、敵オブジェクトＥＯ、弾オブジェクトＢＯ、境界面３（開口判定用データ）及び奥壁ＢＷの配置例を示す。また、図２６は、図２５における仮想カメラ（仮想世界描画用カメラ）が原点から（Ｘ，Ｙ，Ｚ）＝（０，０，−１）方向に向いているとした場合における各オブジェクトの位置関係を示す。このように、敵オブジェクトＥＯ、弾オブジェクトＢＯ、境界面３及び奥壁ＢＷが、それぞれ敵オブジェクトデータＤｆ、弾オブジェクトデータＤｇ、境界面データＤｄ及び奥壁画像データＤｅに含まれる配置位置を示すデータに応じて配置されているとする。また、仮想空間には、仮想空間をレンダリングするための仮想世界描画用カメラＣ２が、仮想カメラデータＤｊに含まれる配置方向及び配置位置を示すデータに応じて配置されている。
【０２９０】
ここでまず、境界面３（開口判定用データ）の位置について説明する。上述したとおり、本実施形態における画像処理プログラムでは、開口判定用データと実世界画像（実カメ
ラ画像のレンダリング画像データ）の色情報とが掛け算されることで、開口が付与された実画像が生成される。したがって、例えば、実カメラ画像のレンダリング画像データ（図２３及び図２４の平面ポリゴンの位置関係を参照）の横１座標×縦１座標と、仮想空間における境界面３（具体的には、開口判定用データ）の横１座標×縦１座標とが対応しているとする。つまり、図２５または図２６に示す仮想世界描画用カメラＣ２から境界面３を透視投影により見たときに、仮想世界描画用カメラＣ２による境界面３の視野範囲が実カメラ画像のレンダリング画像データの横×縦のサイズに対応しているものとする。
【０２９１】
図２７は、仮想世界描画用カメラＣ２を境界面３との位置関係の例を示す。原点から（Ｘ，Ｙ，Ｚ）＝（０，０，−１）方向に向いた仮想世界描画用カメラＣ２により境界面３を透視投影することを考える。この場合、図２７に示すＺ＝Ｚ０の位置に境界面３が配置されているとすれば、開口判定用データの横１座標×縦１座標と実カメラ画像のレンダリング画像データの横１座標×縦１座標とが対応することになる。ここで、Ｚ＝Ｚ０の位置は、境界面３を透視投影する仮想世界描画用カメラＣ２のＹ軸方向の画角をθとした場合に、仮想世界描画用カメラＣ２の注視点からＹ軸正方向への表示範囲の長さＨ／２ｉとなる位置である。なお、上述したように、Ｈは上側ＬＣＤ２２の表示画面における縦のドット数であり、ｉは仮想空間の座標の１単位に対してマッピングするテクスチャのピクセル数である。そして、仮想世界描画用カメラＣ２の中心からＺ＝Ｚ０の位置までの距離をＤ（Ｄ＞０）とすると、以下の数１が成立する。
【０２９２】
［数１］
ｔａｎθ＝（Ｈ／２ｉ）／Ｄ＝Ｈ／２Ｄｉ
したがって、境界面３を考慮して、後述する敵オブジェクトＥＯ等を透視投影して仮想世界画像を生成する場合、当該仮想世界画像を生成する仮想世界描画用カメラＣ２は「Ｙ軸方向の画角θ＝ｔａｎ−１（Ｈ／２Ｄｉ）、アスペクト比＝Ｗ：Ｈ」と設定される。そして、境界面３（具体的には境界面３の状態を示す開口判定用データ）は、仮想世界描画用カメラＣ２からのビュー座標Ｚ＝Ｚ０に配置される。これにより、仮想世界描画用カメラＣ２による境界面３の視野範囲が大きさＷ×Ｈとなる。
【０２９３】
次に、仮想空間のレンダリング処理について説明する。以上の位置に境界面３が存在するものとして、情報処理部３１は、仮想空間をレンダリングした画像を生成する。情報処理部３１は、後に実世界画像を合成することを考慮して、当該レンダリング処理を行う。以下、当該レンダリング処理の一例を具体的に説明する。
【０２９４】
情報処理部３１は、図２５（又は図２６）に示されるとおり境界面３が存在しているものとして、仮想空間に配置された敵オブジェクトＥＯ、弾オブジェクトＢＯ、奥壁ＢＷを仮想世界描画用カメラＣ２により透視投影でレンダリングする。このとき、情報処理部３１は、描画の優先度情報を考慮する。通常の透視投影では、仮想空間上において仮想カメラから見て手前にあるオブジェクトが優先的に描画されるようにレンダリングされる。したがって、通常の透視投影では、境界面３が存在するため、第２空間２にあるオブジェクトは描画されないことになる。本実施形態のゲームでは、境界面３（実世界画像）に開口部を設けて、その開口部から第２空間２の一部が見えるようにした。また、第２空間２にあるオブジェクトの影を実世界画像に合成して描画するようにした。こうすることによって、実世界画像の向こうにさらに仮想世界が存在しているかのような感覚をユーザに与えることができる。具体的には、情報処理部３１は、描画の優先度情報を用いて、当該レンダリング処理を行う。なお、本実施形態における画像処理プログラムは、当該描画の優先度情報の一例として、アルファ値を用いる。
【０２９５】
上記透視投影において、第２空間２に存在するオブジェクト（本実施形態では敵オブジェクトＥＯ又は奥壁ＢＷ）は、境界面３の背後に存在する。ここで、境界面３には、開口
判定用データが設定されている。開口判定用データは、上述のとおり、アルファ値を格納した矩形のテクスチャデータであり、テクスチャデータ上の各座標は、仮想空間の境界面の各位置に対応する。したがって、情報処理部３１は、仮想世界描画用カメラＣ２による第２空間２に存在するオブジェクトの視野範囲に対応する開口判定用データの領域を特定することができる。
【０２９６】
なお、本実施形態では、例えば、情報処理部３１は、開口判定用データにアルファ値「０」が格納された領域（開口領域）については、第２空間２のうち開口領域から見える領域に存在する仮想オブジェクトや奥壁の画像を描画（レンダリング）する。また、情報処理部３１は、開口判定用データに非開口領域に対応するアルファ値「０．２」が格納された領域（非開口領域としてアルファ値「１」が格納された領域として取り扱われる領域）については、第２空間２に存在する仮想オブジェクトや奥壁は描画されない。すなわち、表示される画像において当該領域に対応する部分には、後述のステップ８５の合成処理により、実世界画像が描画されることになる。
【０２９７】
したがって、仮想世界描画用カメラＣ２から見て開口判定用データに「０」が格納された領域については、実体データＤｆ１、または、奥壁画像データＤｅに含まれる画像データが描画されるようレンダリングされる。そして、後述のステップ８５の合成処理により、上側ＬＣＤ２２上において当該領域に対応する部分には、仮想オブジェクト・奥壁の画像が表示されることになる。
【０２９８】
また、仮想世界描画用カメラＣ２から見て開口判定用データに非開口領域を示すアルファ値「０．２」が格納された領域（非開口領域としてアルファ値「１」が格納された領域として取り扱われる領域）については、第２空間２に存在する仮想オブジェクトや奥壁は描画されない。すなわち、上側ＬＣＤ２２に表示される画像において当該領域に対応する部分には、後述のステップ８５の合成処理により、実世界画像が描画されることになる。ただし、前述の敵オブジェクトＥＯの影ＥＳ（シルエットモデル）については、境界面３との間のデプス判定を無効に設定されており、境界面３のアルファ値「０．２」よりもシルエットモデルのアルファ値「１」の方が大きいため、非開口領域を示すアルファ値「１」が格納されている領域において描画される。これにより、実世界画像上に敵オブジェクトＥＯの影ＥＳが描画される。また、敵オブジェクトＥＯのシルエットモデルは実体モデルに内包されるようなサイズでかつそのように配置され、かつ、敵オブジェクトＥＯの実体モデルとシルエットモデルはデプス判定有効に設定される、敵オブジェクトＥＯが第１空間１に存在する場合、シルエットモデルは実体モデルに隠されるため描画されない。
【０２９９】
なお、本実施形態における境界面３の形状は図７Ａに示すように球体表面の中央部であるため、仮想世界描画用カメラＣ２の視野方向によっては、開口判定用データが存在しない。この場合、疑似的にアルファ値を「０．２」を格納した開口判定用データが存在するものとして、上記処理を行う。つまり、開口判定用データが存在しない領域は、非開口領域を示すアルファ値「１」が格納されている領域として取り扱われる。
【０３００】
なお、本実施形態における敵オブジェクトＥＯに対応する敵オブジェクトデータＤｆに含まれるシルエットデータＤｆ２は、複数の平面ポリゴンがその法線方向を敵オブジェクトから見て各放射方向となるように設定されており、各平面ポリゴンには、敵オブジェクトをその方向から見たシルエット画像のテクスチャが適用される。したがって、本実施形態における画像処理プログラムでは、仮想空間画像における敵オブジェクトＥＯの影ＥＳは、第２空間２における敵オブジェクトの向きが反映された画像として表現される。
【０３０１】
以上の処理によって、情報処理部３１は、仮想空間に配置された敵オブジェクトＥＯ、弾オブジェクトＢＯ、及び奥壁ＢＷを透視投影でレンダリングし、仮想世界描画用カメラ
Ｃ２から見た仮想世界画像を生成し、仮想空間のレンダリング画像データを更新する（ステップ８４）。なお、当該処理によって生成される画像は、図２８に示される表示画像から実世界画像を除いた画像である。
【０３０２】
図２０Ｂに戻り、次に、情報処理部３１は、実世界画像と仮想空間画像とを合成した表示画像を生成し（ステップ８５）、当該サブルーチンによる処理を終了する。
【０３０３】
例えば、情報処理部３１は、実カメラ画像のレンダリング画像データと仮想空間のレンダリング画像とを、仮想空間のレンダリング画像を優先して、合成することによって、実世界画像と仮想空間画像とが合成された画像を生成する。そして、情報処理部３１は、当該合成画像の中心（仮想世界描画用カメラＣ２の視野の中心）に、照準カーソル画像データに含まれる画像データを優先して合成することによって表示画像（図２８）を生成する。図２８は、第１の描画方法または第２の描画方法により生成される表示画像の一例を示す。なお、情報処理部３１は、仮想空間のレンダリング画像データに仮想空間画像が格納されていない場合、カメラ画像のレンダリング画像データに格納される実世界画像をそのまま表示画像データＤｌに格納すればよい。
【０３０４】
以上により、第１の描画方法または第２の描画方法により表示画像の更新に関する処理（サブルーチン）が完了する。
【０３０５】
図１７に戻り、上記ステップ５７における表示画像の更新に関する処理の後、情報処理部３１は、更新した表示画像を上側ＬＣＤ２２に表示して（ステップ５８）、次のステップ５９に処理を進める。例えば、情報処理部３１のＣＰＵ３１１は、上記ステップ５７により更新された表示画像データＤｌ（表示画像）をＶＲＡＭ３１３に格納する。そして、情報処理部３１のＧＰＵ３１２が、ＶＲＡＭ３１３に描画された表示画像を上側ＬＣＤ２２に出力することによって、上側ＬＣＤ２２に当該表示画像が表示される。
【０３０６】
次に、情報処理部３１は、ゲームを終了するか否かを判断する（ステップ５９）。ゲームを終了する条件としては、例えば、上記の所定の条件（ゲームクリアまたはゲームオーバー）が満たされたことや、ユーザがゲームを終了する操作を行ったこと等がある。情報処理部３１は、ゲームを終了しない場合、上記ステップ５２に戻って処理を繰り返す。一方、情報処理部３１は、ゲームを終了する場合、当該フローチャートによる処理を終了する。
【０３０７】
§３−３  実施形態に係る画像処理の作用及び効果
このように、本実施形態に係る画像処理プログラムでは、実カメラから得られた実世界画像と、当該実世界画像の背後に存在するオブジェクトを含む仮想空間画像とが合成されて表示される。
【０３０８】
したがって、本実施形態に係る画像処理プログラムは、実世界の画像を用いた背景に非現実を表す描画を行うことでユーザの興味を引くことができる画像を生成することができる。また、実世界の向こう側にさらに仮想世界が存在するように感じさせることができる。これは、ゲーム世界の奥行感の向上にもつながる。
【０３０９】
また、本実施形態では、実世界画像に開口が生じて、その開口を通って仮想オブジェクトが出現したり、仮想オブジェクトの影が実世界画像に表示されたりするなど、仮想オブジェクトが実世界画像に対して影響を与えるので、実世界画像が単なる背景ではなく、実世界が仮想世界と関係しているかのような感覚を与えることができる。
【０３１０】
また、当該合成されて表示される画像における当該実世界画像の背後に存在するオブジ
ェクト（例えば、第２空間２に存在する敵オブジェクトＥＯ）は、実世界画像（境界面３）に開口が存在する領域においては、実像が表示される。また、当該オブジェクトは、実世界画像に開口が存在しない領域においては、影画像が表示される（図１１参照）。更に、当該実像及び影画像は、当該オブジェクトの仮想空間上における配置方向または、移動方向に応じた向きに対応する画像である。
【０３１１】
したがって、本実施形態に係る画像処理プログラムは、実世界画像の更に背後に存在するオブジェクトの数や移動方向等の動向をユーザが認識することができる画像を生成することができる。
【０３１２】
また、本実施形態に係る画像処理プログラムでは、奥壁ＢＷの画像データとして、宇宙の画像等の非現実空間の画像が用いられ得る。当該非現実空間の画像は、実世界画像の開口を通して視認されうる。当該開口は、仮想空間上の位置が特定される。そして、実カメラの向きと仮想カメラの向きは対応づけられている。
【０３１３】
したがって、本実施形態に係る画像処理プログラムは、実カメラの向きに応じた位置に開口を設けることができ、実世界画像の同じ位置に開口を表現することができる。すなわち、本実施形態に係る画像処理プログラムは、実カメラの向きを変えても現実空間の同じ位置に開口が表現されるため、現実空間と非現実空間とが繋がったかのごとくユーザに認識させる画像を生成することができる。
【０３１４】
また、開口が表現された実世界画像は、実カメラから得られる実世界画像とアルファ値との掛け算によって生成される。
【０３１５】
したがって、本実施形態に係る画像処理プログラムは、簡便な方法で開口を表現及び生成することができる。
【０３１６】
また、敵オブジェクトＥＯが境界面３を通過することにより生成する実世界画像の開口は、敵オブジェクトデータＤｆに含まれる開口形状データＤｆ３を開口判定用データの所定の位置に掛け算することで生成される。
【０３１７】
したがって、本実施形態に係る画像処理プログラムは、簡便な方法で衝突したキャラクタの形状に対応した開口を設定することができる。
【０３１８】
また、本実施形態に係る画像処理プログラムでは、アルファ値の比較によって、影画像の描画を実現することができる。また、シルエットデータＤｆ２に設定されたアルファ値の変更によって、影画像の描画のオンまたはオフを切り替えることができる。
【０３１９】
したがって、本実施形態に係る画像処理プログラムは、影画像の描画をＧＰＵに任せることができ、また、影の表示または非表示を単純な操作で切り替えることができる。
【０３２０】
§４  変形例
上述した実施例では、情報処理部３１は、敵オブジェクトＥＯを出現させる場合、特に当該敵オブジェクトＥＯの出現演出処理を実行しないが、当該敵オブジェクトＥＯの出現演出処理を実行してもよい。図２９は、当該出現演出処理の実行例を示す。図２９に示されるとおり、当該出現演出処理では、実世界画像の所定範囲が開口として矩形に切り取られ、当該矩形が第２空間２に倒れこみ、生成された開口から敵オブジェクトＥＯが出現する。情報処理部３１は、図１８のステップ６２における敵オブジェクトデータＤｆの生成に際して、図２９に示されるような敵オブジェクトＥＯの出現演出処理を行ってもよい。図２９における第２空間２に倒れた矩形部分は、実世界画像の所定範囲を切り取ったテク
スチャを、当該所定範囲の大きさに対応した平面ポリゴンに貼り付け、当該平面ポリゴンに所定の動作をさせることで実現される。また、図２９における開口部分は、上述のとおり、開口判定用データの所定の位置のアルファ値を「０」にすることで実現される。
【０３２１】
上述した実施例では、敵オブジェクトＥＯが境界面３を通過した結果として開口が生成されるが、当該開口は、任意に設定されてよい。本実施形態では、情報処理部３１は、開口判定用データの任意の領域にアルファ値「０」を設定することで、当該開口を任意に設定することができる。
【０３２２】
上述した実施例では、情報処理部３１は、弾オブジェクトＢＯが境界面３に設定された開口のふちに衝突した結果として、当該開口の修復処理を行う。すなわち、情報処理部３１は、当該開口に対応する位置における開口判定用データのアルファ値の更新を行う。しかし、当該修復処理は、上述した実施例に限定されない。例えば、照準カーソルＡＬを当該開口のふちに合わせた時に、ゲーム装置１０の所定の操作ボタン１４が押下される結果として、当該修復処理が行われてよい。この場合、情報処理部３１は、例えば、照準カーソルＡＬの位置として、仮想カメラデータＤｊに含まれる仮想カメラの配置方向を示すデータを用いる。そして、情報処理部３１は、当該仮想カメラの配置方向に対応する境界面３の位置における開口判定用データのアルファ値を非開口領域に対応するアルファ値「１」とする。これにより、アルファ値が「０」の領域は非開口領域に対応するアルファ値「１」となり、当該開口は修復される。
【０３２３】
上述した実施例では、情報処理部３１は、ゲーム装置１０に生じる角速度を角速度センサ４０により検出し、当該角速度を用いて実空間におけるゲーム装置１０の動きを算出するが、他の方式を用いてゲーム装置１０の動きを算出してもかまわない。
【０３２４】
第１の例として、情報処理部３１は、ゲーム装置１０に内蔵されている加速度センサ３９が検出した加速度を用いて、ゲーム装置１０の動きを算出してもかまわない。一例として、加速度センサ３９を搭載するゲーム装置１０が静的な状態であることを前提としてコンピュータ側で処理する場合（すなわち、加速度センサ３９によって検出される加速度が重力加速度のみであるとして処理する場合）が想定される。このようにゲーム装置１０が現実に静的な状態であれば、情報処理部３１は、検出された加速度に基づいてゲーム装置１０の姿勢が重力方向に対して傾いているか否か、またはどの程度傾いているかを知ることができる。他の例として、加速度センサ３９を搭載するゲーム装置１０が動的な状態であることを前提とする場合が想定される。このような場合には、加速度センサ３９が重力加速度成分に加えて加速度センサ３９の動きに応じた加速度を検出するので、重力加速度成分を所定の処理により除去すれば、情報処理部３１は、ゲーム装置１０の動き方向等を知ることができる。具体的には、加速度センサ３９を備えるゲーム装置１０がユーザの手で動的に加速されて動かされる場合に、情報処理部３１は、加速度センサ３９によって生成される加速度信号を処理することによって、ゲーム装置１０の様々な動きおよび／または位置を算出することができる。また、加速度センサ３９が動的な状態であることを前提とする場合であっても、加速度センサ３９の動きに応じた加速度を所定の処理により除去すれば、情報処理部３１は、重力方向に対するゲーム装置１０の傾きを知ることが可能である。
【０３２５】
第２の例として、ゲーム装置１０に内蔵されている実カメラ（外側撮像部２３または内側撮像部２４）によってリアルタイムで撮像されたカメラ画像の移動量を用いて、情報処理部３１は、ゲーム装置１０の動きを算出してもかまわない。例えば、ゲーム装置１０が動くことによって、上記実カメラの撮像方向や撮像位置が変わった場合、当該実カメラで撮像されるカメラ画像も変化する。したがって、ゲーム装置１０に内蔵されている実カメラで撮像されるカメラ画像の変化を用いれば、情報処理部３１は、当該実カメラの撮像方
向が変化した角度や撮像位置の移動量等を算出することができる。一例として、情報処理部３１は、ゲーム装置１０に内蔵されている実カメラで撮像されるカメラ画像から所定の物体を識別する。そして、情報処理部３１は、当該物体が撮像されている角度や撮像されている位置を時系列的に比較することによって、これらの変化量から当該実カメラの撮像方向が変化した角度や撮像位置の移動量等を算出することができる。他の例として、情報処理部３１は、ゲーム装置１０に内蔵されている実カメラで撮像されるカメラ画像全体に対して時系列的に比較する。この当該画像全体の撮像方向や撮像範囲の変化量から、情報処理部３１は、当該実カメラの撮像方向が変化した角度や撮像位置の移動量等を算出することができる。
【０３２６】
第３の例として、情報処理部３１は、上述したゲーム装置１０に生じる角速度、ゲーム装置１０に生じる加速度、およびゲーム装置１０によって撮像されたカメラ画像の少なくとも２つを組み合わせて、ゲーム装置１０の動きを算出してもかまわない。これによって、１つのパラメタからゲーム装置１０の動きを算出する場合に当該動きの推定が難しい状況において、他のパラメタを組み合わせてゲーム装置１０の動きを算出することによって、当該状況を補ったゲーム装置１０の動きの算出が可能となる。一例として、上記第２の例によるゲーム装置１０の動きを算出では、撮像されたカメラ画像が時系列的に水平方向へ動いた場合、ゲーム装置１０の撮影角度が鉛直方向を中心として回転したのか、ゲーム装置１０が水平移動したのか、正確な判定が難しいことがある。この場合、情報処理部３１は、ゲーム装置１０に生じる角速度を用いれば、ゲーム装置１０が回転移動したのか水平移動したのかを容易に判定することが可能となる。
【０３２７】
第４の例として、情報処理部３１は、ゲーム装置１０の動きを、いわゆるＡＲ（拡張現実）の技術により算出してもよい。
【０３２８】
また、磁気センサを用いて、ゲーム装置１０の向きを検知してもよい。  また、上述した実施例では、上側ＬＣＤ２２には、外側撮像部２３または内側撮像部２４により取得したカメラ画像ＣＩに基づいた実世界の平面画像（上述した立体視可能な画像とは反対の意味での平面視の画像）が表示されるが、裸眼で立体視可能な画像（立体画像）が表示してもよい。例えば、上述したように、ゲーム装置１０は、外側左撮像部２３ａおよび外側右撮像部２３ｂから取得したカメラ画像を用いた立体視可能な画像（立体画像）を上側ＬＣＤ２２に表示することが可能である。このとき、上側ＬＣＤ２２には、立体画像（実世界画像）の更に背後に存在する世界観をユーザに体験させる画像が表示される。
【０３２９】
この場合、情報処理部３１は、カメラ画像ＣＩとして外側左撮像部２３ａから得られた左目用画像および外側右撮像部２３ｂから得られた右目用画像を用いて、上述した画像処理を行う。
【０３３０】
具体的に、第１の描画方法では、図２０Ａに示したステップ８１の画像処理において、情報処理部３１は、外側左撮像部２３ａから得られた左目用画像（テクスチャデータ）および外側右撮像部２３ｂから得られた右目用画像（テクスチャデータ）をそれぞれ所定の距離ずらして境界面３に貼りつける。そして、図２０Ａに示したステップ８２の画像処理において、情報処理部３１は、仮想空間に配置された各オブジェクトを、２つの仮想カメラ（ステレオカメラ）から透視投影することによって、それぞれ左目用仮想世界画像と右目用仮想世界画像とを得る。これら左目用仮想世界画像と右目用仮想世界画像とが左目用表示画像および当該右目用表示画像となる。そして、情報処理部３１のＧＰＵ３１２が、当該左目用表示画像および当該右目用表示画像を上側ＬＣＤ２２に出力することで、上側ＬＣＤ２２には、立体画像が表示される。
【０３３１】
また、具体的に、第２の描画方法では、図２０Ｂに示したステップ８３の画像処理にお
いて、情報処理部３１は、外側左撮像部２３ａから得られた左目用画像および外側右撮像部２３ｂから得られた右目用画像を用いて、それぞれの実カメラ画像のレンダリングした画像（左目用の実世界画像と右目用の実世界画像）を生成する。また、図２０Ｂに示したステップ８４の画像処理において、情報処理部３１は、仮想空間に配置された各オブジェクトを、２つの仮想世界描画用カメラ（ステレオカメラ）から透視投影することによって、それぞれ左目用仮想世界画像と右目用仮想世界画像とを得る。そして、図２０Ｂに示したステップ８５の画像処理において、情報処理部３１は、左目用の実世界画像と左目用仮想世界画像とを合成して左目用表示画像を生成する。同様に、情報処理部３１は、右目用の実世界画像と右目用仮想世界画像とを合成して右目用表示画像を生成する。そして、情報処理部３１のＧＰＵ３１２が、当該左目用表示画像および当該右目用表示画像を上側ＬＣＤ２２に出力することで、上側ＬＣＤ２２には、立体画像が表示される。
【０３３２】
また、上述した実施例では、ゲーム装置１０に内蔵する実カメラで撮像されたリアルタイムの動画像が上側ＬＣＤ２２に表示されるが、上側ＬＣＤ２２に表示する画像は、様々なバリエーションが考えられる。第１の例として、予め録画された動画像およびテレビジョン放送や他の装置から得られる動画像等が上側ＬＣＤ２２に表示されてもよい。この場合、上記動画像は、境界面３上にマッピングされることで仮想空間における位置が特定される。第２の例として、ゲーム装置１０に内蔵する実カメラや他の実カメラから得られた静止画像が上側ＬＣＤ２２に表示されてもよい。この場合も、上記例と同様に、当該静止画像は、境界面３上にマッピングされることで仮想空間における位置が特定される。ここで、実カメラから得られる静止画像は、ゲーム装置１０に内蔵する実カメラでリアルタイムに撮像された実世界の静止画像でもよく、当該実カメラや他の実カメラで予め撮影された実世界の静止画像でもよい。また、実カメラから得られる静止画像は、テレビジョン放送や他の装置から得られる静止画像でもよい。
【０３３３】
また、上記実施例では、上側ＬＣＤ２２は、パララックスバリア方式の液晶表示装置であり、視差バリアのＯＮ／ＯＦＦが制御されることにより立体表示と平面表示とを切り替えることができる。他の実施形態では、例えば、上側ＬＣＤ２２は、立体画像および平面画像を表示可能であるレンチキュラー方式の液晶表示装置であってもよい。上側ＬＣＤ２２がレンチキュラー方式の液晶表示装置である場合でも、上記実施形態と同様に、外側撮像部２３で撮像した２つの画像を縦方向に短冊状に分割して交互に配置することで画像が立体表示される。また、上側ＬＣＤ２２がレンチキュラー方式の液晶表示装置である場合でも、上記実施形態と同様に、内側撮像部２４で撮像した１つの画像をユーザの左右の目に視認させることによって、当該画像を平面表示させることができる。すなわち、レンチキュラー方式の液晶表示装置であっても、同じ画像を縦方向に短冊状に分割し、これら分割した画像を交互に配置することにより、ユーザの左右の目に同じ画像を視認させることができる。これにより、内側撮像部２４で撮像された画像を平面画像として表示することが可能である。
【０３３４】
また、上述した実施例では、２画面分の液晶表示部の一例として、物理的に分離された下側ＬＣＤ１２および上側ＬＣＤ２２を互いに上下に配置した場合（上下２画面の場合）を説明した。しかしながら、２画面分の表示画面の構成は、他の構成でもかまわない。例えば、下側ハウジング１１の一方主面に、下側ＬＣＤ１２および上側ＬＣＤ２２が左右に配置されてもかまわない。また、下側ＬＣＤ１２と横幅が同じで縦の長さが２倍のサイズからなる縦長サイズのＬＣＤ（すなわち、物理的には１つで、表示サイズが縦に２画面分あるＬＣＤ）を下側ハウジング１１の一方主面に配設して、２つの画像（例えば、撮像画像と操作説明画面を示す画像等）を上下に表示（すなわち上下の境界部分無しに隣接して表示）するように構成してもよい。また、下側ＬＣＤ１２と縦幅が同じで横の長さが２倍のサイズからなる横長サイズのＬＣＤを下側ハウジング１１の一方主面に配設して、横方向に２つの画像を左右に表示（すなわち左右の境界部分無しに隣接して表示）するように
構成してもよい。すなわち、物理的に１つの画面を２つに分割して使用することにより２つの画像を表示してもかまわない。また、物理的に１つの画面を２つに分割して使用することにより上記２つの画像を表示する場合、当該画面全面にタッチパネル１３を配設してもかまわない。
【０３３５】
また、上述した実施例では、ゲーム装置１０にタッチパネル１３が一体的に設けられているが、ゲーム装置とタッチパネルとを別体にして構成しても、本発明を実現できることは言うまでもない。また、上側ＬＣＤ２２の上面にタッチパネル１３を設けて上側ＬＣＤ２２に上述した下側ＬＣＤ１２に表示していた表示画像を表示してもよい。
【０３３６】
また、上述した実施例では、携帯型のゲーム装置１０や据置型のゲーム装置を用いて説明したが、一般的なパーソナルコンピュータ等の情報処理装置で本発明の画像処理プログラムを実行して、本発明を実現してもかまわない。また、他の実施形態では、ゲーム装置に限らず任意の携帯型電子機器、例えば、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）や携帯電話、パーソナルコンピュータ、カメラ等であってもよい。例えば、携帯電話が、１つのハウジングの主面に２つの表示部と、実カメラとを備えてもよい。
【０３３７】
また、上述した実施例では、画像処理プログラムを１つのゲーム装置１０で実行する例を用いたが、上記画像処理プログラムにおける処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、ゲーム装置１０が他の装置（例えば、サーバや他のゲーム装置）と通信可能に構成されている場合、上記画像処理における処理ステップは、ゲーム装置１０および当該他の装置が協働することによって実行されてもよい。一例として、他の装置が図１７におけるステップ５２〜ステップ５７までの処理を実行し、ゲーム装置１０が図１７におけるステップ５８及びステップ５９の処理を実行するように協働してもよい。このように、上記画像における処理ステップの少なくとも一部を他の装置で行うことによって、上述した画像処理と同様の処理が可能となる。このように、上述した画像処理は、少なくとも１つの情報処理装置により構成される情報処理システムに含まれる１つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。
【０３３８】
また、上述した実施例では、ゲーム装置１０の情報処理部３１が所定のプログラムを実行することによって、上述したフローチャートによる処理が行われたが、ゲーム装置１０が備える専用回路によって上記処理の一部または全部が行われてもよい。
【０３３９】
また、上述したゲーム装置１０の形状や、それに設けられている各種操作ボタン１４、アナログスティック１５、タッチパネル１３の形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、上述した画像処理で用いられる処理順序、設定値、判定に用いられる値等は、単なる一例に過ぎず他の順序や値であっても、本発明を実現できることは言うまでもない。
【０３４０】
また、上記画像処理プログラム（ゲームプログラム）は、外部メモリ４５やデータ保存用外部メモリ４６等の外部記憶媒体を通じてゲーム装置１０に供給されるだけでなく、有線または無線の通信回線を通じてゲーム装置１０に供給されてもよい。また、上記プログラムは、ゲーム装置１０内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、ＣＤ−ＲＯＭ、ＤＶＤ、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを一時的に記憶する揮発性メモリでもよい。
【０３４１】
また、表示デバイスはヘッドマウントディスプレイであってもよい。
【０３４２】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書（定義を含めて）が優先する。
【０３４３】
§５  補足
なお、以上までの説明において、本発明に係る画像処理プログラム及び当該画像処理プログラムを実行する画像処理装置の一実施形態について説明したが、本発明に係る画像処理システム及び画像処理方法の一実施形態についても同様に説明することができる。つまり、上記画像処理プログラムの各処理を実行するシステムが本発明に係る画像処理システムの一実施形態である。また、上記画像処理プログラムの各処理を各ステップとする手順が本発明に係る画像処理方法の一実施形態である。
【産業上の利用可能性】
【０３４４】
本発明に係る画像処理プログラム、画像処理装置、画像処理システム、および画像処理方法は、実世界画像と仮想世界画像とを合成して、現実世界の更に背後に潜む世界観をユーザに体験させる画像を生成することが可能である。したがって、本発明に係る画像処理プログラム、画像処理装置、画像処理システム、および画像処理方法は、各種画像を表示装置に表示する処理を行う画像処理プログラム、画像処理装置、画像処理システム、および画像処理方法等として有用である。
【符号の説明】
【０３４５】
１…第１空間
２…第２空間
３…境界面
１０…ゲーム装置
１１…下側ハウジング
１２…下側ＬＣＤ
１３…タッチパネル
１４…操作ボタン
１５…アナログスティック
１６…ＬＥＤ
１７…挿入口
１８…マイクロフォン用孔
１９…無線スイッチ
２１…上側ハウジング
２２…上側ＬＣＤ
２３…外側撮像部
２３ａ…外側左撮像部
２３ｂ…外側右撮像部
２４…内側撮像部
２５…３Ｄ調整スイッチ
２６…３Ｄインジケータ
２７…境界面カバー
２８…タッチペン
３１…情報処理部
３１１…ＣＰＵ
３１２…ＧＰＵ
３１３…ＶＲＡＭ
３２…メインメモリ
３３…外部メモリＩ／Ｆ
３４…データ保存用外部メモリＩ／Ｆ
３５…データ保存用内部メモリ
３６…無線通信モジュール
３７…ローカル通信モジュール
３８…ＲＴＣ
３９…加速度センサ
４０…角速度センサ
４１…電源回路
４２…Ｉ／Ｆ回路
４３…マイク
４４…スピーカ
４５…外部メモリ
４６…データ保存用外部メモリ
ＡＬ…照準カーソル
ＢＯ…弾オブジェクト
ＣＩ…カメラ画像
Ｃ０…仮想カメラ
Ｃ１…実世界描画用カメラ
Ｃ２…仮想世界描画用カメラ
ＥＯ…敵オブジェクト
ＥＳ…影
【図１】
0005939733.tif 000002
【図２】
0005939733.tif 000003
【図３Ａ】
0005939733.tif 000004
【図３Ｂ】
0005939733.tif 000005
【図３Ｃ】
0005939733.tif 000006
【図３Ｄ】
0005939733.tif 000007
【図４】
0005939733.tif 000008
【図５】
0005939733.tif 000009
【図６】
0005939733.tif 000010
【図７Ａ】
0005939733.tif 000011
【図７Ｂ】
0005939733.tif 000012
【図８】
0005939733.tif 000013
【図９】
0005939733.tif 000014
【図１０】
0005939733.tif 000015
【図１１】
0005939733.tif 000016
【図１２】
0005939733.tif 000017
【図１３】
0005939733.tif 000018
【図１４Ａ】
0005939733.tif 000019
【図１４Ｂ】
0005939733.tif 000020
【図１５】
0005939733.tif 000021
【図１６】
0005939733.tif 000022
【図１７】
0005939733.tif 000023
【図１８】
0005939733.tif 000024
【図１９】
0005939733.tif 000025
【図２０Ａ】
0005939733.tif 000026
【図２０Ｂ】
0005939733.tif 000027
【図２１】
0005939733.tif 000028
【図２２】
0005939733.tif 000029
【図２３】
0005939733.tif 000030
【図２４】
0005939733.tif 000031
【図２５】
0005939733.tif 000032
【図２６】
0005939733.tif 000033
【図２７】
0005939733.tif 000034
【図２８】
0005939733.tif 000035
【図２９】
0005939733.tif 000036