(57)【特許請求の範囲】
【請求項１】
立体視可能な画像を出力する表示制御装置のコンピュータを、
仮想世界内の奥行方向へ第１の奥行距離となる位置に第１オブジェクトを配置するオブジェクト配置手段と、
前記オブジェクト配置手段によって配置された仮想世界のオブジェクトを立体視画像として出力する立体視画像出力制御手段として機能させ、
前記オブジェクト配置手段は、前記仮想世界内の奥行方向へ前記第１の奥行距離と異なる位置で、かつ、前記立体視画像として表示装置に表示される場合に当該表示装置の端となる表示領域の少なくとも一部に表示されるように第２オブジェクトを少なくとも１つ配置し、
前記立体視画像出力制御手段は、前記オブジェクト配置手段が配置したオブジェクトを、奥行距離に応じてそれぞれ異なるスクロール量で前記奥行方向に垂直な所定の方向へスクロール移動させて前記立体視画像を出力する、表示制御プログラム。
【請求項２】
前記オブジェクト配置手段は、仮想世界内の前記奥行方向へ前記第１の奥行距離とは異なる第２の奥行距離となる位置に第３オブジェクトをさらに配置し、
前記オブジェクト配置手段は、前記仮想世界内の奥行方向へ前記第１の奥行距離と前記第２の奥行距離との間となる位置に前記第２オブジェクトを配置する、請求項１に記載の表示制御プログラム。
【請求項３】
前記オブジェクト配置手段は、前記表示装置の端となる表示領域の一部のみに表示されるように前記第２オブジェクトを配置する、請求項２に記載の表示制御プログラム。
【請求項４】
前記第２の奥行距離は、前記第１の奥行距離より長い距離であり、
前記オブジェクト配置手段は、前記立体視画像として前記表示装置に表示される場合に、前記第２オブジェクトと重ならないように前記第３オブジェクトを配置する、請求項２または３に記載の表示制御プログラム。
【請求項５】
前記オブジェクト配置手段は、前記第１の奥行距離と前記第２の奥行距離との間となる位置で、かつ、前記表示装置の端となる表示領域の少なくとも一部に常に表示されるように、前記第２オブジェクトを複数配置する、請求項２乃至４の何れか１つに記載の表示制御プログラム。
【請求項６】
前記オブジェクト配置手段は、前記複数の第２オブジェクトを、前記第１の奥行距離と前記第２の奥行距離との間となる異なる奥行距離にそれぞれ配置し、前記立体視画像として前記表示装置に表示される場合に少なくとも一部が互いに重なって表示されるようにそれぞれ配置する、請求項５に記載の表示制御プログラム。
【請求項７】
前記オブジェクト配置手段は、前記第１オブジェクトを仮想世界内における前記第１の奥行距離に設定された平面上に配置し、前記第３オブジェクトを仮想世界内における前記第２の奥行距離に設定された平面上に配置し、前記第２オブジェクトを仮想世界内における前記第１の奥行距離と前記第２の奥行距離との間となる奥行距離に設定された少なくとも１つの平面上に配置する、請求項２乃至６の何れか１つに記載の表示制御プログラム。
【請求項８】
入力装置への操作に応じた操作信号を取得する操作信号取得手段と、
前記操作信号取得手段が取得した操作信号に応じて、前記第１オブジェクトを動作させる第１オブジェクト動作制御手段として、さらに前記コンピュータを機能させ、
前記第２オブジェクトは、前記第１オブジェクトが仮想世界内で得る得点および／または仮想世界内で存在する時間に影響を与え得る仮想オブジェクトであり、
前記第３オブジェクトは、前記第１オブジェクトが仮想世界内で得る得点および仮想世界内で存在する時間の何れにも影響を与えない仮想オブジェクトである、請求項２乃至７の何れか１つに記載の表示制御プログラム。
【請求項９】
前記立体視画像出力制御手段は、前記オブジェクト配置手段が配置したオブジェクトを、それぞれ前記奥行方向に垂直な所定の方向へスクロール移動させて前記立体視画像を出力し、
前記オブジェクト配置手段は、前記立体視画像として前記表示装置に表示される場合に前記所定の方向を挟んで相対する前記表示装置の両端となる表示領域の少なくとも一部に常に表示されるように前記第２オブジェクトを配置する、請求項２乃至８の何れか１つに記載の表示制御プログラム。
【請求項１０】
前記立体視画像出力制御手段は、前記第２オブジェクトのスクロール量を、前記第１オブジェクトのスクロール量より小さく、かつ、前記第３オブジェクトのスクロール量より大きくなるように設定する、請求項２乃至９の何れか１つに記載の表示制御プログラム。
【請求項１１】
前記オブジェクト配置手段は、前記第１の奥行距離と前記第２の奥行距離との間となる位置で、かつ、異なる奥行距離に前記第２オブジェクトをそれぞれ複数配置し、
前記立体視画像出力制御手段は、前記複数の第２オブジェクトを、それぞれ前記奥行距離に応じて異なるスクロール量で所定の方向へスクロール移動させて前記立体視画像を出力する、請求項２乃至１０の何れか１つに記載の表示制御プログラム。
【請求項１２】
前記立体視画像出力制御手段は、前記オブジェクト配置手段が配置したオブジェクトを、それぞれ前記奥行距離が長いほど前記スクロール量を少なくスクロール移動させて前記立体視画像を出力する、請求項１乃至１１の何れか１つに記載の表示制御プログラム。
【請求項１３】
入力装置への操作に応じた操作信号を取得する操作信号取得手段と、
前記操作信号取得手段が取得した操作信号に応じて、前記第１オブジェクトを動作させる第１オブジェクト動作制御手段として、さらに前記コンピュータを機能させ、
前記第２の奥行距離は、前記第１の奥行距離より長い距離である、請求項２乃至９の何れか１つに記載の表示制御プログラム。
【請求項１４】
前記オブジェクト配置手段は、前記仮想世界内の奥行方向へ前記第１の奥行距離より短い位置に前記第２オブジェクトを配置する、請求項１に記載の表示制御プログラム。
【請求項１５】
立体視可能な画像を出力する表示制御装置であって、
仮想世界内の奥行方向へ第１の奥行距離となる位置に第１オブジェクトを配置するオブジェクト配置手段と、
前記オブジェクト配置手段によって配置された仮想世界のオブジェクトを立体視画像として出力する立体視画像出力制御手段とを備え、
前記オブジェクト配置手段は、前記仮想世界内の奥行方向へ前記第１の奥行距離と異なる位置で、かつ、前記立体視画像として表示装置に表示される場合に当該表示装置の端となる表示領域の少なくとも一部に表示されるように第２オブジェクトを少なくとも１つ配置し、
前記立体視画像出力制御手段は、前記オブジェクト配置手段が配置したオブジェクトを、奥行距離に応じてそれぞれ異なるスクロール量で前記奥行方向に垂直な所定の方向へスクロール移動させて前記立体視画像を出力する、表示制御装置。
【請求項１６】
複数の装置が通信可能に構成され、立体視可能な画像を出力する表示制御システムであって、
仮想世界内の奥行方向へ第１の奥行距離となる位置に第１オブジェクトを配置するオブジェクト配置手段と、
前記オブジェクト配置手段によって配置された仮想世界のオブジェクトを立体視画像として出力する立体視画像出力制御手段とを備え、
前記オブジェクト配置手段は、前記仮想世界内の奥行方向へ前記第１の奥行距離と異なる位置で、かつ、前記立体視画像として表示装置に表示される場合に当該表示装置の端となる表示領域の少なくとも一部に表示されるように第２オブジェクトを少なくとも１つ配置し、
前記立体視画像出力制御手段は、前記オブジェクト配置手段が配置したオブジェクトを、奥行距離に応じてそれぞれ異なるスクロール量で前記奥行方向に垂直な所定の方向へスクロール移動させて前記立体視画像を出力する、表示制御システム。
【請求項１７】
立体視可能な画像を出力する表示制御が可能な少なくとも１つの情報処理装置により構成される表示制御システムに含まれる１つのプロセッサまたは複数のプロセッサ間の協働により実行される表示制御方法であって、
仮想世界内の奥行方向へ第１の奥行距離となる位置に第１オブジェクトを配置するオブジェクト配置ステップと、
前記オブジェクト配置ステップにおいて配置された仮想世界のオブジェクトを立体視画像として出力する立体視画像出力制御ステップとを含み、
前記オブジェクト配置ステップでは、前記仮想世界内の奥行方向へ前記第１の奥行距離と異なる位置で、かつ、前記立体視画像として表示装置に表示される場合に当該表示装置の端となる表示領域の少なくとも一部に表示されるように第２オブジェクトが少なくとも１つ配置され、
前記立体視画像出力制御ステップでは、前記オブジェクト配置ステップにおいて配置されたオブジェクトを、奥行距離に応じてそれぞれ異なるスクロール量で前記奥行方向に垂直な所定の方向へスクロール移動させて前記立体視画像が出力される、表示制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法に関し、より特定的には、立体視可能な画像を出力する表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法に関する。
【背景技術】
【０００２】
従来、所定の視差を有する画像を用いて、立体視可能な画像表示を行う方法が知られている（例えば、特許文献１参照）。上記特許文献１で開示されたコンテンツ作成方法は、ｘｙ平面に描かれた各図形にｚ軸方向の奥行きをそれぞれ設定し、設定された奥行きに基づいて立体表示させる。例えば、上記特許文献１で開示された方法では、奥行きに基づいて各ｘｙ平面に存在する図形における左目用画像と右目用画像との画像のずらし量を算出する。そして、上記方法は、算出されたずらし量に基づいて、左目用画像と右目用画像とを生成して表示装置に表示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−１４５８３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１に記載された方法は、図形の奥行き感が大きく感じられるような立体表示を行うことは難しかった。
【０００５】
それ故に、本発明の主たる目的は、立体視可能な画像を出力する場合に奥行き感を強調することのできる、表示制御プログラム、表示制御装置、表示制御方法および表示制御システムを提供することである。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。なお、特許請求の範囲の記載を解釈する際に、特許請求の範囲の記載によってのみその範囲が解釈されるべきであることが理解され、特許請求の範囲の記載と本欄の記載とが矛盾する場合には、特許請求の範囲の記載が優先する。
【０００７】
本発明の表示制御プログラムの一構成例は、立体視可能な画像を出力する表示制御装置のコンピュータを、オブジェクト配置手段および立体視画像出力制御手段として機能させる。オブジェクト配置手段は、仮想世界内の奥行方向へ第１の奥行距離となる位置に第１オブジェクトを配置する。立体視画像出力制御手段は、オブジェクト配置手段によって配置された仮想世界のオブジェクトを立体視画像として出力する。オブジェクト配置手段は、仮想世界内の奥行方向へ第１の奥行距離と異なる位置で、かつ、立体視画像として表示装置に表示される場合に当該表示装置の端となる表示領域の少なくとも一部に表示されるように第２オブジェクトを少なくとも１つ配置する。
【０００８】
上記によれば、第１オブジェクトを立体視画像として出力する際、表示装置に表示される仮想世界の奥行方向において異なる奥行距離に配置された第２オブジェクトが当該表示装置の表示画面の端の一部を少なくとも含む位置に表示される。したがって、ユーザが表示装置に表示された第１オブジェクトの奥行方向への位置を視認する際に、第２オブジェクトが奥行方向への比較対象物となって表示されるため、立体視画像として第１オブジェクトを表示装置に表示する場合に奥行き感を強調することができる。
【０００９】
また、上記オブジェクト配置手段は、仮想世界内の奥行方向へ第１の奥行距離とは異なる第２の奥行距離となる位置に第３オブジェクトをさらに配置してもよい。この場合、上記オブジェクト配置手段は、仮想世界内の奥行方向へ第１の奥行距離と第２の奥行距離との間となる位置に第２オブジェクトを配置する。
【００１０】
上記によれば、奥行距離が異なる第１オブジェクトおよび第３オブジェクトを立体視画像として表示装置に表示する際、当該表示装置に表示される仮想世界の奥行方向において第１オブジェクトの奥行距離と第３オブジェクトの奥行距離との間となる位置に第２オブジェクトが表示される。したがって、ユーザが表示装置に表示された第１オブジェクトおよび第３オブジェクトの奥行方向への位置を視認する際に、それらの間に第２オブジェクトが奥行方向への比較対象物となって表示されるため、立体視画像として第１オブジェクトおよび第３オブジェクトを表示装置に表示する場合に奥行き感を強調することができる。
【００１１】
また、上記オブジェクト配置手段は、表示装置の端となる表示領域の一部のみに表示されるように第２オブジェクトを配置してもよい。
【００１２】
上記によれば、第２オブジェクトが表示領域の端にのみ表示されるため、表示装置に表示された第１オブジェクトおよび／または第３オブジェクトへの視界が第２オブジェクトによって遮られることが少なくなり、第１オブジェクトおよび／または第３オブジェクトへの視認性が向上する。
【００１３】
また、上記第２の奥行距離は、第１の奥行距離より長い距離であってもよい。この場合、上記オブジェクト配置手段は、立体視画像として表示装置に表示される場合に、第２オブジェクトと重ならないように第３オブジェクトを配置してもよい。
【００１４】
上記によれば、奥行方向に対して第２オブジェクトより遠い位置に表示される第３オブジェクトへの視界が第２オブジェクトによって遮られることがないため、第３オブジェクトへの視界を確保することができる。
【００１５】
また、上記オブジェクト配置手段は、第１の奥行距離と第２の奥行距離との間となる位置で、かつ、表示装置の端となる表示領域の少なくとも一部に常に表示されるように、第２オブジェクトを複数配置してもよい。
【００１６】
上記によれば、奥行方向への比較対象物となる第２オブジェクトを複数表示することによって、立体視画像として第１オブジェクトを表示装置に表示する場合の奥行き感がより強調される。
【００１７】
また、上記オブジェクト配置手段は、複数の第２オブジェクトを、第１の奥行距離と第２の奥行距離との間となる異なる奥行距離にそれぞれ配置し、立体視画像として表示装置に表示される場合に少なくとも一部が互いに重なって表示されるようにそれぞれ配置してもよい。
【００１８】
上記によれば、比較対象物となる複数の第２オブジェクトを奥行方向への奥行距離が異なる複数の階層にそれぞれ重なるように表示することによって、立体視画像として第１オブジェクトを表示装置に表示する場合の奥行き感がより強調される。
【００１９】
また、上記オブジェクト配置手段は、第１オブジェクトを仮想世界内における第１の奥行距離に設定された平面上に配置し、第３オブジェクトを仮想世界内における第２の奥行距離に設定された平面上に配置し、第２オブジェクトを仮想世界内における第１の奥行距離と第２の奥行距離との間となる奥行距離に設定された少なくとも１つの平面上に配置してもよい。
【００２０】
上記によれば、仮想世界内において奥行距離が異なる平面に仮想オブジェクトをそれぞれ配置することによって、複数の仮想オブジェクトがそれぞれ異なる平面上を移動するような仮想世界を容易に立体視画像として表示することができる。
【００２１】
また、上記表示制御プログラムは、操作信号取得手段および第１オブジェクト動作制御手段として、さらにコンピュータを機能させてもよい。操作信号取得手段は、入力装置への操作に応じた操作信号を取得する。第１オブジェクト動作制御手段は、操作信号取得手段が取得した操作信号に応じて、第１オブジェクトを動作させる。この場合、上記第２オブジェクトは、第１オブジェクトが仮想世界内で得る得点および／または仮想世界内で存在する時間に影響を与え得る仮想オブジェクトであってもよい。上記第３オブジェクトは、第１オブジェクトが仮想世界内で得る得点および仮想世界内で存在する時間の何れにも影響を与えない仮想オブジェクトであってもよい。
【００２２】
上記によれば、ゲームのプレイや進行に影響を与える仮想オブジェクトを２つの奥行領域に配置したゲーム（例えば、２次元画像を表示するゲーム）を、立体視表示も可能なゲームとして構築する場合に好適なものとなる。例えば、ゲームのプレイや進行に影響を与える２つの仮想オブジェクトの間に、ゲームのプレイや進行に影響を与えない仮想オブジェクトを配置することによって、当該ゲームのプレイや進行に影響を与える２つの仮想オブジェクトの間の奥行き感を強調した立体視表示が可能となる。
【００２３】
また、上記立体視画像出力制御手段は、オブジェクト配置手段が配置したオブジェクトを、それぞれ奥行方向に垂直な所定の方向へスクロール移動させて立体視画像を出力してもよい。上記オブジェクト配置手段は、立体視画像として表示装置に表示される場合に所定の方向を挟んで相対する表示装置の両端となる表示領域の少なくとも一部に常に表示されるように第２オブジェクトを配置してもよい。
【００２４】
上記によれば、仮想オブジェクトを表示装置にスクロール表示する際も、当該表示装置の表示画面の端の一部を少なくとも含むように第２オブジェクトを常に表示することができる。
【００２５】
また、上記立体視画像出力制御手段は、オブジェクト配置手段が配置したオブジェクトを、奥行距離に応じてそれぞれ異なるスクロール量で奥行方向に垂直な所定の方向へスクロール移動させて立体視画像を出力してもよい。
【００２６】
上記によれば、奥行距離が異なる仮想オブジェクトを、異なるスクロール速度でスクロール表示することによって、立体視表示された仮想オブジェクトの奥行き感をさらに強調することができる。
【００２７】
また、上記立体視画像出力制御手段は、第２オブジェクトのスクロール量を、第１オブジェクトのスクロール量より小さく、かつ、第３オブジェクトのスクロール量より大きくなるように設定してもよい。
【００２８】
上記によれば、第１オブジェクトと第３オブジェクトとの間の階層に配置されている第２オブジェクトのスクロール速度を、第１オブジェクトのスクロール速度より遅く第３オブジェクトのスクロール速度より速く設定することによって、立体視表示された第１〜第３オブジェクトの奥行き感をさらに強調することができる。
【００２９】
また、上記オブジェクト配置手段は、第１の奥行距離と第２の奥行距離との間となる位置で、かつ、異なる奥行距離に第２オブジェクトをそれぞれ複数配置してもよい。上記立体視画像出力制御手段は、複数の第２オブジェクトを、それぞれ奥行距離に応じて異なるスクロール量で所定の方向へスクロール移動させて立体視画像を出力してもよい。
【００３０】
上記によれば、第１オブジェクトと第３オブジェクトとの間の複数の階層にそれぞれ配置されている複数の第２オブジェクトのスクロール速度を、それぞれ異なるスクロール速度に設定することによって、立体視表示された第１〜第３オブジェクトの奥行き感をさらに強調することができる。
【００３１】
また、上記立体視画像出力制御手段は、オブジェクト配置手段が配置したオブジェクトを、それぞれ奥行距離が長いほどスクロール量を少なくスクロール移動させて立体視画像を出力してもよい。
【００３２】
上記によれば、奥行距離が長いほどスクロール速度が遅くなるため、立体視表示された仮想オブジェクトの奥行き感をさらに強調することができる。
【００３３】
また、上記表示制御プログラムは、操作信号取得手段および第１オブジェクト動作制御手段として、さらにコンピュータを機能させてもよい。操作信号取得手段は、入力装置への操作に応じた操作信号を取得する。第１オブジェクト動作制御手段は、操作信号取得手段が取得した操作信号に応じて、第１オブジェクトを動作させる。この場合、第２の奥行距離は、第１の奥行距離より長い距離であってもよい。
【００３４】
上記によれば、ユーザが操作可能な第１オブジェクトが奥行方向において最も手前に表示され、当該第１オブジェクトと第３オブジェクトとの間の奥行き感が強調された仮想世界を表示装置に表示することができる。
【００３５】
また、上記オブジェクト配置手段は、仮想世界内の奥行方向へ第１の奥行距離より短い位置に第２オブジェクトを配置してもよい。
【００３６】
上記によれば、奥行方向において第１オブジェクトの手前で、かつ表示装置の表示画面の端の一部を少なくとも含む位置に第２オブジェクトが表示されるため、第１オブジェクトへの視界を妨げることなく立体視画像として表示された第１オブジェクトの奥行き感を強調することができる。
【００３７】
また、本発明は、上記各手段を備える表示制御装置および表示制御システムや上記各手段で行われる動作を含む表示制御方法の形態で実施されてもよい。
【発明の効果】
【００３８】
本発明によれば、表示装置に第１オブジェクトを立体視画像で表示する際、第２オブジェクトが奥行方向への比較対象物となって表示されるため、表示装置に表示された第１オブジェクトの奥行き感を強調することができる。
【図面の簡単な説明】
【００３９】
【図１】開いた状態におけるゲーム装置１０の一例を示す正面図
【図２】開いた状態におけるゲーム装置１０の一例を示す側面図
【図３Ａ】閉じた状態におけるゲーム装置１０の一例を示す左側面図
【図３Ｂ】閉じた状態におけるゲーム装置１０の一例を示す正面図
【図３Ｃ】閉じた状態におけるゲーム装置１０の一例を示す右側面図
【図３Ｄ】閉じた状態におけるゲーム装置１０の一例を示す背面図
【図４】ゲーム装置１０の内部構成の一例を示すブロック図
【図５】ユーザがゲーム装置１０を両手で把持する様子の一例を示す図
【図６】上側ＬＣＤ２２に表示される表示形態例を示す図
【図７】上側ＬＣＤ２２に表示される立体視画像の様子の一例を示す概念図
【図８】立体視画像を生成する第１の立体視画像生成方法を説明するための図
【図９】第１の立体視画像生成方法で用いられる仮想カメラの視体積を説明するための図
【図１０】立体視画像を生成する第２の立体視画像生成方法を説明するための図
【図１１】表示制御プログラムを実行することに応じて、メインメモリ３２に記憶される各種データの一例を示す図
【図１２】図１１のオブジェクトデータＤｂの一例を示す図
【図１３】表示制御プログラムを実行することによってゲーム装置１０が表示制御処理する動作の一例を示すフローチャート
【図１４】図１３のステップ５１で行われるオブジェクト初期配置処理の詳細な動作の一例を示すサブルーチン
【図１５】図１３のステップ５２で行われる立体視画像描画処理の詳細な動作の一例を示すサブルーチン
【図１６】図１３のステップ５３で行われるスクロール処理の詳細な動作の一例を示すサブルーチン
【発明を実施するための形態】
【００４０】
図面を参照して、本発明の一実施形態に係る表示制御プログラムを実行する表示制御装置について説明する。本発明の表示制御プログラムは、任意のコンピュータシステムで実行されることによって適用することができるが、表示制御装置の一例として携帯型のゲーム装置１０を用い、ゲーム装置１０で実行される表示制御プログラムを用いて説明する。なお、図１〜図３Ｄは、ゲーム装置１０の外観の一例を示す平面図である。ゲーム装置１０は、一例として携帯型のゲーム装置であり、図１〜図３Ｄに示すように折り畳み可能に構成されている。図１は、開いた状態（開状態）におけるゲーム装置１０の一例を示す正面図である。図２は、開状態におけるゲーム装置１０の一例を示す右側面図である。図３Ａは、閉じた状態（閉状態）におけるゲーム装置１０の一例を示す左側面図である。図３Ｂは、閉状態におけるゲーム装置１０の一例を示す正面図である。図３Ｃは、閉状態におけるゲーム装置１０の一例を示す右側面図である。図３Ｄは、閉状態におけるゲーム装置１０の一例を示す背面図である。ゲーム装置１０は、撮像部を内蔵しており、当該撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置１０は、交換可能なメモリカード内に記憶され、または、サーバや他のゲーム装置から受信したゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラから見た仮想空間画像等のコンピュータグラフィックス処理により生成された画像を画面に表示することもできる。
【００４１】
図１〜図３Ｄにおいて、ゲーム装置１０は、下側ハウジング１１および上側ハウジング２１を有する。下側ハウジング１１と上側ハウジング２１とは、開閉可能（折り畳み可能）に連結されている。通常、ユーザは、開状態でゲーム装置１０を使用し、ゲーム装置１０を使用しない場合には閉状態としてゲーム装置１０を保管することができる。
【００４２】
図１および図２に示されるように、下側ハウジング１１には、下側ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）１２、タッチパネル１３、各操作ボタン１４Ａ〜１４Ｌ（図１、図３Ａ〜図３Ｄ）、アナログスティック１５、ＬＥＤ１６Ａ〜１６Ｂ、挿入口１７、および、マイクロフォン用孔１８が設けられる。以下、これらの詳細について説明する。
【００４３】
図１に示すように、下側ＬＣＤ１２は下側ハウジング１１に収納される。下側ＬＣＤ１２の画素数は、一例として、３２０ｄｏｔ×２４０ｄｏｔ（横×縦）である。下側ＬＣＤ１２は、後述する上側ＬＣＤ２２とは異なり、画像を（立体視可能ではなく）平面的に表示する表示装置である。なお、本実施形態では表示装置としてＬＣＤを用いているが、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側ＬＣＤ１２として、任意の解像度の表示装置を利用することができる。
【００４４】
図１に示されるように、ゲーム装置１０は、入力装置として、タッチパネル１３を備えている。タッチパネル１３は、下側ＬＣＤ１２の画面上を覆うように装着されている。なお、本実施形態では、タッチパネル１３は、例えば抵抗膜方式のタッチパネルが用いられる。ただし、タッチパネル１３は、抵抗膜方式に限らず、例えば静電容量方式等、任意の押圧式のタッチパネルを用いることができる。本実施形態では、タッチパネル１３として、下側ＬＣＤ１２の解像度と同解像度（検出精度）のものを利用する。ただし、必ずしもタッチパネル１３の解像度と下側ＬＣＤ１２の解像度とが一致している必要はない。また、下側ハウジング１１の上側面には挿入口１７（図１および図３Ｄに示す点線）が設けられている。挿入口１７は、タッチパネル１３に対する操作を行うために用いられるタッチペン２８を収納することができる。なお、タッチパネル１３に対する入力は通常タッチペン２８を用いて行われるが、タッチペン２８に限らずユーザの指でタッチパネル１３に対する入力をすることも可能である。
【００４５】
各操作ボタン１４Ａ〜１４Ｌは、所定の入力を行うための入力装置である。図１に示されるように、下側ハウジング１１の内側面（主面）には、各操作ボタン１４Ａ〜１４Ｌのうち、十字ボタン１４Ａ（方向入力ボタン１４Ａ）、ボタン１４Ｂ、ボタン１４Ｃ、ボタン１４Ｄ、ボタン１４Ｅ、電源ボタン１４Ｆ、セレクトボタン１４Ｊ、ＨＯＭＥボタン１４Ｋ、およびスタートボタン１４Ｌが設けられる。十字ボタン１４Ａは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン１４Ａ〜１４Ｅ、セレクトボタン１４Ｊ、ＨＯＭＥボタン１４Ｋ、およびスタートボタン１４Ｌには、ゲーム装置１０が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン１４Ａは選択操作等に用いられ、各操作ボタン１４Ｂ〜１４Ｅは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン１４Ｆは、ゲーム装置１０の電源をオン／オフするために用いられる。
【００４６】
アナログスティック１５は、方向を指示するデバイスである。アナログスティック１５は、そのキートップが、下側ハウジング１１の内側面に平行にスライドするように構成されている。アナログスティック１５は、ゲーム装置１０が実行するプログラムに応じて機能する。例えば、３次元仮想空間に所定のオブジェクトが登場するゲームがゲーム装置１０によって実行される場合、アナログスティック１５は、当該所定のオブジェクトを３次元仮想空間内で移動させるための入力装置として機能する。この場合において、所定のオブジェクトは、アナログスティック１５のキートップがスライドした方向に移動される。なお、アナログスティック１５として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いてもよい。
【００４７】
また、下側ハウジング１１の内側面には、マイクロフォン用孔１８が設けられる。マイクロフォン用孔１８の下部には後述する音声入力装置としてのマイク４３（図４参照）が設けられ、当該マイク４３がゲーム装置１０の外部の音を検出する。
【００４８】
図３Ｂおよび図３Ｄに示されるように、下側ハウジング１１の上側面には、Ｌボタン１４ＧおよびＲボタン１４Ｈが設けられている。例えば、Ｌボタン１４ＧおよびＲボタン１４Ｈは、撮像部のシャッターボタン（撮影指示ボタン）として機能する。また、図３Ａに示されるように、下側ハウジング１１の左側面には、音量ボタン１４Ｉが設けられる。音量ボタン１４Ｉは、ゲーム装置１０が備えるスピーカの音量を調整するために用いられる。
【００４９】
図３Ａに示されるように、下側ハウジング１１の左側面には開閉可能なカバー部１１Ｃが設けられる。このカバー部１１Ｃの内側には、ゲーム装置１０とデータ保存用外部メモリ４６とを電気的に接続するためのコネクタ（図示せず）が設けられる。データ保存用外部メモリ４６は、上記コネクタに着脱自在に装着される。データ保存用外部メモリ４６は、例えば、ゲーム装置１０によって撮像された画像のデータを記憶（保存）するために用いられる。
【００５０】
図３Ｄに示されるように、下側ハウジング１１の上側面にはゲーム装置１０とゲームプログラムを記録した外部メモリ４５を挿入するための挿入口１１Ｄが設けられ、その挿入口１１Ｄの内部には、外部メモリ４５と電気的に着脱自在に接続するためのコネクタ（図示せず）が設けられる。外部メモリ４５がゲーム装置１０に接続されることにより、所定のゲームプログラムが実行される。
【００５１】
図１に示されるように、下側ハウジング１１の下側面には、ゲーム装置１０の電源のＯＮ／ＯＦＦ状況をユーザに通知する第１ＬＥＤ１６Ａが設けられる。また、図３Ｃに示されるように、下側ハウジング１１の右側面には、ゲーム装置１０の無線通信の確立状況をユーザに通知する第２ＬＥＤ１６Ｂが設けられる。ゲーム装置１０は、他の機器との間で無線通信を行うことが可能であり、第２ＬＥＤ１６Ｂは、他の機器との無線通信が確立している場合に点灯する。ゲーム装置１０は、例えば、ＩＥＥＥ８０２．１１．ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。下側ハウジング１１の右側面には、この無線通信の機能を有効／無効にする無線スイッチ１９が設けられる（図３Ｃ参照）。
【００５２】
なお、図示は省略するが、下側ハウジング１１には、ゲーム装置１０の電源となる充電式電池が収納され、下側ハウジング１１の側面（例えば、上側面）に設けられた端子を介して当該電池を充電することができる。
【００５３】
上側ハウジング２１には、上側ＬＣＤ２２、２つの外側撮像部２３（外側左撮像部２３ａおよび外側右撮像部２３ｂ）、内側撮像部２４、３Ｄ調整スイッチ２５、および３Ｄインジケータ２６が設けられる。以下、これらの詳細について説明する。
【００５４】
図１に示すように、上側ＬＣＤ２２は、上側ハウジング２１に収納される。上側ＬＣＤ２２の画素数は、一例として８００ｄｏｔ×２４０ｄｏｔ（横×縦）である。なお、本実施形態では、上側ＬＣＤ２２が液晶表示装置であるとしたが、例えばＥＬを利用した表示装置などが利用されてもよい。また、上側ＬＣＤ２２として、任意の解像度の表示装置を利用することができる。
【００５５】
上側ＬＣＤ２２は、立体視可能な画像を表示することが可能な表示装置である。上側ＬＣＤ２２は、実質的に同一の表示領域を用いて左目用画像と右目用画像とを表示することが可能である。具体的には、上側ＬＣＤ２２は、左目用画像と右目用画像とが所定単位で（例えば、１列ずつ）横方向に交互に表示される方式の表示装置である。一例として、上側ＬＣＤ２２の画素数が８００ｄｏｔ×２４０ｄｏｔで構成される場合、横の８００ピクセルを左目用画像と右目用画像とに交互にそれぞれ４００ピクセル割り当てることによって立体視が可能となる。なお、上側ＬＣＤ２２は、左目用画像と右目用画像とが交互に表示される方式の表示装置であってもよい。また、上側ＬＣＤ２２は、裸眼立体視可能な表示装置である。この場合、上側ＬＣＤ２２は、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式（視差バリア方式）のものが用いられる。本実施形態では、上側ＬＣＤ２２は、パララックスバリア方式のものとする。上側ＬＣＤ２２は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像（立体画像）を表示する。すなわち、上側ＬＣＤ２２は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像をそれぞれ視認させることにより、ユーザにとって立体感のある立体画像（立体視可能な画像）を表示することができる。また、上側ＬＣＤ２２は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる（上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである。）。このように、上側ＬＣＤ２２は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する（平面視画像を表示する）平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する３Ｄ調整スイッチ２５によって行われる。
【００５６】
外側撮像部２３は、上側ハウジング２１の外側面（上側ＬＣＤ２２が設けられた主面と反対側の背面）２１Ｄに設けられた２つの撮像部（外側左撮像部２３ａおよび外側右撮像部２３ｂ）の総称である。外側左撮像部２３ａおよび外側右撮像部２３ｂの撮像方向は、いずれも外側面２１Ｄの外向きの法線方向である。外側左撮像部２３ａと外側右撮像部２３ｂとは、ゲーム装置１０が実行するプログラムによって、ステレオカメラとして使用することが可能である。外側左撮像部２３ａおよび外側右撮像部２３ｂは、それぞれ所定の共通の解像度を有する撮像素子（例えば、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等）と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【００５７】
内側撮像部２４は、上側ハウジング２１の内側面（主面）２１Ｂに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部２４は、所定の解像度を有する撮像素子（例えば、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等）と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【００５８】
３Ｄ調整スイッチ２５は、スライドスイッチであり、上述のように上側ＬＣＤ２２の表示モードを切り替えるために用いられるスイッチである。また、３Ｄ調整スイッチ２５は、上側ＬＣＤ２２に表示された立体視可能な画像（立体画像）の立体感を調整するために用いられる。３Ｄ調整スイッチ２５は、所定方向（例えば、上下方向）の任意の位置にスライド可能なスライダを有しており、当該スライダの位置に応じて上側ＬＣＤ２２の表示モードが設定される。また、スライダの位置に応じて、立体画像の見え方が調整される。具体的には、スライダの位置に応じて、右目用画像および左目用画像における横方向の位置のずれ量が調整される。
【００５９】
３Ｄインジケータ２６は、上側ＬＣＤ２２が立体表示モードか否かを示す。例えば、３Ｄインジケータ２６は、ＬＥＤであり、上側ＬＣＤ２２の立体表示モードが有効の場合に点灯する。なお、３Ｄインジケータ２６は、上側ＬＣＤ２２が立体表示モードになっており、かつ、立体視画像を表示するプログラム処理が実行されているときに限り、点灯するようにしてもよい。
【００６０】
また、上側ハウジング２１の内側面には、スピーカ孔２１Ｅが設けられる。後述するスピーカ４４からの音声がこのスピーカ孔２１Ｅを介して出力される。
【００６１】
次に、図４を参照して、ゲーム装置１０の内部構成を説明する。なお、図４は、ゲーム装置１０の内部構成の一例を示すブロック図である。
【００６２】
図４において、ゲーム装置１０は、上述した各構成部に加えて、情報処理部３１、メインメモリ３２、外部メモリインターフェイス（外部メモリＩ／Ｆ）３３、データ保存用外部メモリＩ／Ｆ３４、データ保存用内部メモリ３５、無線通信モジュール３６、ローカル通信モジュール３７、リアルタイムクロック（ＲＴＣ）３８、加速度センサ３９、角速度センサ４０、電源回路４１、およびインターフェイス回路（Ｉ／Ｆ回路）４２等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング１１（または上側ハウジング２１でもよい）内に収納される。
【００６３】
情報処理部３１は、所定のプログラムを実行するためのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１１、画像処理を行うＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１２等を含む情報処理手段である。本実施形態では、所定のプログラムがゲーム装置１０内のメモリ（例えば外部メモリＩ／Ｆ３３に接続された外部メモリ４５やデータ保存用内部メモリ３５）に記憶されている。情報処理部３１のＣＰＵ３１１は、当該所定のプログラムを実行することによって、後述する画像処理やゲーム処理を実行する。なお、情報処理部３１のＣＰＵ３１１によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部３１は、ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）３１３を含む。情報処理部３１のＧＰＵ３１２は、情報処理部３１のＣＰＵ３１１からの命令に応じて画像を生成し、ＶＲＡＭ３１３に描画する。そして、情報処理部３１のＧＰＵ３１２は、ＶＲＡＭ３１３に描画された画像を上側ＬＣＤ２２および／または下側ＬＣＤ１２に出力し、上側ＬＣＤ２２および／または下側ＬＣＤ１２に当該画像が表示される。
【００６４】
情報処理部３１には、メインメモリ３２、外部メモリＩ／Ｆ３３、データ保存用外部メモリＩ／Ｆ３４、およびデータ保存用内部メモリ３５が接続される。外部メモリＩ／Ｆ３３は、外部メモリ４５を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリＩ／Ｆ３４は、データ保存用外部メモリ４６を着脱自在に接続するためのインターフェイスである。
【００６５】
メインメモリ３２は、情報処理部３１（ＣＰＵ３１１）のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ３２は、画像処理やゲーム処理で用いられる各種データを一時的に記憶したり、外部（外部メモリ４５や他の機器等）から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ３２として例えばＰＳＲＡＭ（Ｐｓｅｕｄｏ−ＳＲＡＭ）を用いる。
【００６６】
外部メモリ４５は、情報処理部３１によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ４５は、例えば読み取り専用の半導体メモリで構成される。外部メモリ４５が外部メモリＩ／Ｆ３３に接続されると、情報処理部３１は外部メモリ４５に記憶されたプログラムを読み込むことができる。情報処理部３１が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ４６は、不揮発性の読み書き可能なメモリ（例えばＮＡＮＤ型フラッシュメモリ）で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ４６には、外側撮像部２３で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ４６がデータ保存用外部メモリＩ／Ｆ３４に接続されると、情報処理部３１はデータ保存用外部メモリ４６に記憶された画像を読み込み、上側ＬＣＤ２２および／または下側ＬＣＤ１２に当該画像を表示することができる。
【００６７】
データ保存用内部メモリ３５は、読み書き可能な不揮発性メモリ（例えばＮＡＮＤ型フラッシュメモリ）で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ３５には、無線通信モジュール３６を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【００６８】
無線通信モジュール３６は、例えばＩＥＥＥ８０２．１１．ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。また、ローカル通信モジュール３７は、所定の通信方式（例えば赤外線通信）により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール３６およびローカル通信モジュール３７は、情報処理部３１に接続される。情報処理部３１は、無線通信モジュール３６を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール３７を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【００６９】
情報処理部３１には、加速度センサ３９が接続される。加速度センサ３９は、３軸（本実施形態では、ｘｙｚ軸）方向に沿った直線方向の加速度（直線加速度）の大きさを検出する。加速度センサ３９は、例えば下側ハウジング１１の内部に設けられる。加速度センサ３９は、図１に示すように、下側ハウジング１１の長辺方向をｘ軸、下側ハウジング１１の短辺方向をｙ軸、下側ハウジング１１の内側面（主面）に対して垂直な方向をｚ軸として、ゲーム装置１０の各軸方向へ生じる直線加速度の大きさをそれぞれ検出する。なお、加速度センサ３９は、例えば静電容量式の加速度センサとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ３９は、１軸または２軸方向を検出する加速度センサであってもよい。情報処理部３１は、加速度センサ３９が検出した加速度を示すデータ（加速度データ）を受け取って、ゲーム装置１０の姿勢や動きを算出する。
【００７０】
情報処理部３１には、角速度センサ４０が接続される。角速度センサ４０は、ゲーム装置１０の３軸（本実施形態では、ｘｙｚ軸）周りに生じる角速度をそれぞれ検出し、検出した角速度を示すデータ（角速度データ）を情報処理部３１へ出力する。角速度センサ４０は、例えば下側ハウジング１１の内部に設けられる。情報処理部３１は、角速度センサ４０から出力された角速度データを受け取って、ゲーム装置１０の姿勢や動きを算出する。
【００７１】
情報処理部３１には、ＲＴＣ３８および電源回路４１が接続される。ＲＴＣ３８は、時間をカウントして情報処理部３１に出力する。情報処理部３１は、ＲＴＣ３８によって計時された時間に基づき現在時刻（日付）を計算する。電源回路４１は、ゲーム装置１０が有する電源（下側ハウジング１１に収納される上記充電式電池）からの電力を制御し、ゲーム装置１０の各部品に電力を供給する。
【００７２】
情報処理部３１には、Ｉ／Ｆ回路４２が接続される。Ｉ／Ｆ回路４２には、マイク４３、スピーカ４４、およびタッチパネル１３が接続される。具体的には、Ｉ／Ｆ回路４２には、図示しないアンプを介してスピーカ４４が接続される。マイク４３は、ユーザの音声を検知して音声信号をＩ／Ｆ回路４２に出力する。アンプは、Ｉ／Ｆ回路４２からの音声信号を増幅し、音声をスピーカ４４から出力させる。Ｉ／Ｆ回路４２は、マイク４３およびスピーカ４４（アンプ）の制御を行う音声制御回路と、タッチパネル１３の制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するＡ／Ｄ変換およびＤ／Ａ変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル１３からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部３１に出力する。タッチ位置データは、タッチパネル１３の入力面において入力が行われた位置（タッチ位置）の座標を示す。なお、タッチパネル制御回路は、タッチパネル１３からの信号の読み込み、およびタッチ位置データの生成を所定時間に１回の割合で行う。情報処理部３１は、タッチ位置データを取得することにより、タッチパネル１３に対して入力が行われたタッチ位置を知ることができる。
【００７３】
操作ボタン１４は、上記各操作ボタン１４Ａ〜１４Ｌからなり、情報処理部３１に接続される。操作ボタン１４から情報処理部３１へは、各操作ボタン１４Ａ〜１４Ｉに対する入力状況（押下されたか否か）を示す操作データが出力される。情報処理部３１は、操作ボタン１４から操作データを取得することによって、操作ボタン１４に対する入力に応じた処理を実行する。
【００７４】
下側ＬＣＤ１２および上側ＬＣＤ２２は、情報処理部３１に接続される。下側ＬＣＤ１２および上側ＬＣＤ２２は、情報処理部３１（ＧＰＵ３１２）の指示にしたがって画像を表示する。本実施形態では、情報処理部３１は、例えば入力操作用の画像を下側ＬＣＤ１２に表示させ、外側撮像部２３および内側撮像部２４のいずれかから取得した画像を上側ＬＣＤ２２に表示させる。すなわち、情報処理部３１は、上側ＬＣＤ２２に外側撮像部２３で撮像した右目用画像と左目用画像とを用いた立体画像（立体視可能な画像）を表示させたり、内側撮像部２４で撮像した平面画像を上側ＬＣＤ２２に表示させたり、上側ＬＣＤ２２に外側撮像部２３で撮像した右目用画像および左目用画像の一方を用いた平面画像を表示させたりする。
【００７５】
具体的には、情報処理部３１は、上側ＬＣＤ２２のＬＣＤコントローラ（図示せず）と接続され、当該ＬＣＤコントローラに対して視差バリアのＯＮ／ＯＦＦを制御する。上側ＬＣＤ２２の視差バリアがＯＮになっている場合、情報処理部３１のＶＲＡＭ３１３に格納された（外側撮像部２３で撮像された）右目用画像と左目用画像とが、上側ＬＣＤ２２に出力される。より具体的には、ＬＣＤコントローラは、右目用画像について縦方向に１ライン分の画素データを読み出す処理と、左目用画像について縦方向に１ライン分の画素データを読み出す処理とを交互に繰り返すことによって、ＶＲＡＭ３１３から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に１ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側ＬＣＤ２２の画面に表示される。そして、上側ＬＣＤ２２の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側ＬＣＤ２２の画面には立体視可能な画像が表示される。
【００７６】
外側撮像部２３および内側撮像部２４は、情報処理部３１に接続される。外側撮像部２３および内側撮像部２４は、情報処理部３１の指示にしたがって画像を撮像し、撮像した画像データを情報処理部３１に出力する。本実施形態では、情報処理部３１は、外側撮像部２３および内側撮像部２４のいずれか一方に対して撮像指示を行い、撮像指示を受けた撮像部が画像を撮像して画像データを情報処理部３１に送る。具体的には、ユーザによるタッチパネル１３や操作ボタン１４を用いた操作によって使用する撮像部が選択される。そして、撮像部が選択されたことを情報処理部３１（ＣＰＵ３１１）が検知し、情報処理部３１が外側撮像部２３または内側撮像部２４に対して撮像指示を行う。
【００７７】
３Ｄ調整スイッチ２５は、情報処理部３１に接続される。３Ｄ調整スイッチ２５は、スライダの位置に応じた電気信号を情報処理部３１に送信する。
【００７８】
３Ｄインジケータ２６は、情報処理部３１に接続される。情報処理部３１は、３Ｄインジケータ２６の点灯を制御する。例えば、情報処理部３１は、上側ＬＣＤ２２が立体表示モードである場合、３Ｄインジケータ２６を点灯させる。
【００７９】
次に、図５〜図１０を参照して、ゲーム装置１０の使用状態および表示内容の一例を示す。なお、図５は、ユーザがゲーム装置１０を把持して操作する様子の一例を示す図である。図６は、上側ＬＣＤ２２に表示される表示形態例を示す図である。図７は、上側ＬＣＤ２２に表示される立体視画像の様子の一例を示す概念図である。図８は、立体視画像を生成する一例である第１の立体視画像生成方法を説明するための図である。図９は、第１の立体視画像生成方法で用いられる仮想カメラの視体積を説明するための図である。図１０は、立体視画像を生成する他の例である第２の立体視画像生成方法を説明するための図である。
【００８０】
図５に示されるように、ユーザは、下側ＬＣＤ１２および上側ＬＣＤ２２がユーザの方向を向く状態で、両手の掌と中指、薬指および小指とで下側ハウジング１１の側面および外側面（内側面の反対側の面）を把持する。このように把持することで、ユーザは、下側ハウジング１１を把持したまま、各操作ボタン１４Ａ〜１４Ｅおよびアナログスティック１５に対する操作を親指で行い、Ｌボタン１４ＧおよびＲボタン１４Ｈに対する操作を人差し指で行うことができる。そして、ユーザは、操作ボタン１４Ａ〜１４Ｅやアナログスティック１５を操作することによって、仮想世界内に登場するプレイヤオブジェクトを移動させたり、プレイヤオブジェクトに所定の動作（例えば、攻撃動作）を行わせたりすることができる。
【００８１】
例えば、図６に示すように、プレイヤオブジェクトＰＯを含む仮想世界を鳥瞰した仮想世界画像が、上側ＬＣＤ２２に立体視表示される。プレイヤオブジェクトＰＯは、ユーザの操作に応じて仮想世界内の空中を飛行する飛行体（例えば、戦闘機等の飛行機）であり、上側ＬＣＤ２２の上方向にプレイヤオブジェクトＰＯの前面を向けてその上面が上側ＬＣＤ２２に表示されている。そして、プレイヤオブジェクトＰＯは、ユーザ操作に応じて、上側ＬＣＤ２２に表示されている表示範囲内で移動可能であるが、プレイヤオブジェクトＰＯが飛行する仮想世界が一定方向（例えば、上側ＬＣＤ２２の上から下への方向）にスクロール表示されるため、結果的にプレイヤオブジェクトＰＯも仮想世界を当該方向へ飛行してゲームが進行することになる。
【００８２】
また、仮想世界に設定されている地上には、複数の地上オブジェクトＧＯが配置されている。ここで、地上オブジェクトＧＯは、仮想世界の地上に固定して配置されるオブジェクトでもいいし、当該地上を移動するオブジェクトでもいいし、所定のアルゴリズムに基づいて空中のプレイヤオブジェクトＰＯを攻撃するオブジェクトでもかまわない。上側ＬＣＤ２２にはプレイヤオブジェクトＰＯが地上オブジェクトＧＯを攻撃するための照準Ａが表示されている。そして、所定の攻撃操作（例えば、操作ボタン（Ａボタン）１４Ｂを押下する操作）に応じて、照準Ａが示す地上位置に向けてプレイヤオブジェクトＰＯから対地攻撃弾が発射される。したがって、ユーザは、所定の攻撃操作を行うことによって、照準Ａと重なる地上オブジェクトＧＯを攻撃することができる。なお、照準Ａは、プレイヤオブジェクトＰＯとの間の位置関係が固定された状態で、プレイヤオブジェクトＰＯの移動に応じて仮想世界の地上に沿って移動する。
【００８３】
また、仮想世界の空中には、敵オブジェクトＥＯが出現することがある。敵オブジェクトＥＯは、プレイヤオブジェクトＰＯの飛行を妨害するために仮想世界の空中に登場し、所定のアルゴリズムに基づいてプレイヤオブジェクトＰＯを攻撃する。一方、プレイヤオブジェクトＰＯも所定の攻撃操作（例えば、操作ボタン（Ｂボタン）１４Ｃを押下する操作）に応じて、プレイヤオブジェクトＰＯの前面からプレイヤオブジェクトが向く方向（すなわち、上側ＬＣＤ２２の上方向）へ対空攻撃弾が発射される。したがって、ユーザは、所定の攻撃操作を行うことによって、プレイヤオブジェクトＰＯの前方を飛行している敵オブジェクトＥＯを攻撃することができる。
【００８４】
さらに、仮想世界の空中には、複数の雲オブジェクトＣＯが配置される。複数の雲オブジェクトＣＯは、上側ＬＣＤ２２において、何れも仮想世界のスクロール方向を挟んで相対する両側端部（上下方向がスクロール方向である場合、上側ＬＣＤ２２の左右端部）に表示される。そして、複数の雲オブジェクトＣＯを、仮想世界において上記両側端部に対応する位置で、かつ、上記スクロール方向に沿ってそれぞれ延設して配置することによって、上記スクロール方向へスクロール表示された場合に複数の雲オブジェクトＣＯが当該両側端部に常に（あるいは、常時、いつも、継続的に、連続的に、絶えず等）表示されることになる。また、複数の雲オブジェクトＣＯは、当該両側端部のみに表示されることになる。なお、図６に示した一例では、仮想世界の空中に配置される高度が異なる３つの雲オブジェクトＣＯ１〜ＣＯ３が重なって、上側ＬＣＤ２２の左右端部にそれぞれ表示されている。
【００８５】
なお、仮想世界の地上に配置される地上オブジェクトＧＯは、仮想世界のスクロール方向を挟んで相対する上記両側端部を除いた位置に配置される。このように、上記両側端部を除いた位置に地上オブジェクトＧＯを配置することによって、上空に配置される雲オブジェクトＣＯによって地上オブジェクトＧＯへの視界が妨げられないようにすることができる。
【００８６】
次に、仮想オブジェクトがそれぞれ仮想世界に配置される高度（奥行方向への距離）について説明する。図７において、上側ＬＣＤ２２に上記仮想世界の立体視画像が表示される場合、当該立体視画像の奥行方向に対して異なる位置（仮想世界における異なる高度）に仮想オブジェクトがそれぞれ配置される。例えば、プレイヤオブジェクトＰＯおよび敵オブジェクトＥＯは、仮想世界において最も高度が高い位置（ユーザの視点に対して最も近い位置であり、奥行距離が最も短い位置；以下、この奥行きを示す奥行距離をＺ１とする。）に配置され、当該高度を保って常に仮想世界内を飛行する。また、地上オブジェクトＧＯは、仮想世界において最も高度が低い地上（ユーザの視点に対して最も遠い位置であり、奥行距離が最も長い位置；以下、この奥行きを示す奥行距離をＺ５とする。）に配置され、地上を移動するオブジェクトであっても当該地上高度を保って仮想世界内を移動する。
【００８７】
雲オブジェクトＣＯ１〜ＣＯ３は、何れもプレイヤオブジェクトＰＯが配置される位置と地上オブジェクトＧＯが配置される位置との間の高度となる位置に配置される。つまり、雲オブジェクトＣＯ１〜ＣＯ３は、ユーザの視点に対してプレイヤオブジェクトＰＯより遠く地上オブジェクトＧＯより近い位置に配置される。具体的には、雲オブジェクトＣＯ１が奥行距離Ｚ２となる位置に配置され、雲オブジェクトＣＯ２が奥行距離Ｚ２より長い奥行距離Ｚ３となる位置に配置され、雲オブジェクトＣＯ３が奥行距離Ｚ３より長い奥行距離Ｚ４となる位置に配置される。この場合、奥行距離Ｚ１＜奥行距離Ｚ２＜奥行距離Ｚ３＜奥行距離Ｚ４＜奥行距離Ｚ５となる。
【００８８】
このように、立体視表示された仮想世界内の奥行方向に対してプレイヤオブジェクトＰＯと地上オブジェクトＧＯとの間となる位置に雲オブジェクトＣＯ１〜ＣＯ３を配置することによって、プレイヤオブジェクトＰＯと地上オブジェクトＧＯとの間の奥行き感が強調される。また、雲オブジェクトＣＯ１〜ＣＯ３がそれぞれスクロール方向の軸に対して上側ＬＣＤ２２の両側端部に常に表示されるため、プレイヤオブジェクトＰＯや地上オブジェクトＧＯを覆い隠すことがなく、常にプレイヤオブジェクトＰＯや地上オブジェクトＧＯへの視界も確保される。
【００８９】
ここで、プレイヤオブジェクトＰＯと地上オブジェクトＧＯとは、ゲームに必要不可欠なオブジェクト（ゲームのプレイや進行に影響を与えるオブジェクト）であるのに対し、雲オブジェクトＣＯ１〜ＣＯ３は必ずしもゲームに必要なオブジェクトではなく、プレイヤオブジェクトＰＯと地上オブジェクトＧＯとの間の奥行き感を強調するためだけに用いられるものである。例えば、プレイヤオブジェクトＰＯと地上オブジェクトＧＯとは、互いに攻撃しあうので、当たり判定を有しており、ゲームのプレイや進行によって得点が加算されたり、ゲームオーバになったりといった影響があるが、雲オブジェクトＣＯ１〜ＣＯ３は、当たり判定を有しておらず、ゲームのプレイや進行に何ら影響を与えない。言い換えれば、仮想世界を２次元の画像として表示するのであれば、プレイヤオブジェクトＰＯと地上オブジェクトＧＯとがあればよく、雲オブジェクトＣＯ１〜ＣＯ３はなくてもかまわない。
【００９０】
つまり、本発明は、２つの奥行領域にある２つのオブジェクトを２次元画像として表示していた従来のゲームを、立体視表示も可能なゲームとして構築する場合に好適なものであり、その際に２つのオブジェクトの間の奥行き感を強調した立体視表示が可能になるものである。
【００９１】
次に、上述した仮想世界を示す立体視画像を生成する一例として、第１の立体視画像生成方法について説明する。図８に示すように、所定の座標系（例えば、ワールド座標系）で定義される仮想空間に各仮想オブジェクトが配置される。なお、図８に示した一例では、説明を具体的にするために、仮想空間に２つの仮想カメラ（左仮想カメラおよび右仮想カメラ）が配置され、当該仮想カメラの視線方向をＺ軸正方向とし、Ｚ軸正方向に仮想カメラを向けたときの仮想カメラの右方向をＸ軸正方向、仮想カメラの上方向をＹ軸正方向としたカメラ座標系が示されている。そして、左仮想カメラおよび右仮想カメラは、３Ｄ調整スイッチ２５のスライダ位置に応じて算出されたカメラ間距離だけ離間され、それぞれ上述したカメラ座標系に応じた方向となるように仮想空間に配置されている。なお、仮想空間には一般的にワールド座標系が定義されるが、仮想空間に配置される仮想オブジェクトと仮想カメラとの関係を説明するために、カメラ座標系を用いて仮想空間内の位置を説明する。
【００９２】
上記仮想空間において、地上オブジェクトＧＯは、左仮想カメラおよび右仮想カメラからそれぞれ奥行距離Ｚ５となるＸＹ平面に設定された地形オブジェクト上にそれぞれ配置される。また、プレイヤオブジェクトＰＯおよび敵オブジェクトＥＯは、上記仮想空間における地形オブジェクトの上空となり、左仮想カメラおよび右仮想カメラからそれぞれ奥行距離Ｚ１となる高度にそれぞれ配置される。そして、プレイヤオブジェクトＰＯは、左仮想カメラおよび右仮想カメラの視体積内を移動範囲とし、ユーザ操作によって算出される移動速度および移動方向（移動ベクトルＶｐ）に応じて、プレイヤオブジェクトＰＯの前方（飛行方向）をＹ軸正方向に向けた状態で上記仮想空間内を移動する。また、敵オブジェクトＥＯは、所定のアルゴリズムに基づいて、上記仮想空間内に出現して移動ベクトルＶｅがそれぞれ設定され、当該移動ベクトルＶｅに応じて、上記仮想空間内を移動する。
【００９３】
なお、上述では、各オブジェクトはそれぞれに設定された平面上を移動すると説明したが、奥行き方向に所定の距離を有する空間を設定し、当該空間内を移動するようにしてもよい。その場合、他のオブジェクトに設定される奥行き空間と重ならないように各オブジェクトの奥行き空間を設定すればよい。
【００９４】
なお、上述した左仮想カメラおよび右仮想カメラの視体積は、上側ＬＣＤ２２に表示される表示範囲によって定まるものとする。例えば、図９に示すように、２つの仮想カメラ（左仮想カメラおよび右仮想カメラ）を用いて仮想空間の立体視画像を生成する場合、それぞれの仮想カメラから得られる仮想空間の画像から上側ＬＣＤ２２に表示する範囲をそれぞれ調整する必要がある。具体的には、上側ＬＣＤ２２に立体視画像を表示する場合に奥行距離が表示画面（すなわち、上側ＬＣＤ２２の表面）の位置と一致する基準奥行距離において、左仮想カメラから得られる仮想空間の画像に対する表示範囲と右仮想カメラから得られる仮想空間の画像に対する表示範囲とが仮想空間において一致するように調整される。本明細書における説明では、上述したように調整された表示範囲と一致するように左仮想カメラの視体積および右仮想カメラの視体積が設定されるものとする。つまり、本明細書の説明では、左仮想カメラの視体積内に含まれる仮想オブジェクトおよび右仮想カメラの視体積内に含まれる仮想オブジェクトが全て上側ＬＣＤ２２に表示されることになる。
【００９５】
上記仮想空間において、雲オブジェクトＣＯ１は、上記仮想空間における地形オブジェクトの上空で、かつ、プレイヤオブジェクトＰＯの下方となり、左仮想カメラおよび右仮想カメラからそれぞれ奥行距離Ｚ２となる高度に配置される。そして、雲オブジェクトＣＯ１は、仮想空間をスクロール表示する方向であるＹ軸方向に沿って、左仮想カメラおよび右仮想カメラの視体積内において左右の端部となる位置にそれぞれ配置される。また、上記仮想空間において、雲オブジェクトＣＯ２は、上記仮想空間における地形オブジェクトの上空で、かつ、プレイヤオブジェクトＰＯおよび雲オブジェクトＣＯ１の下方となり、左仮想カメラおよび右仮想カメラからそれぞれ奥行距離Ｚ３となる高度に配置される。そして、雲オブジェクトＣＯ２も、仮想空間をスクロール表示する方向であるＹ軸方向に沿って、左仮想カメラおよび右仮想カメラの視体積内において左右の端部となる位置にそれぞれ配置される。また、上記仮想空間において、雲オブジェクトＣＯ３は、上記仮想空間における地形オブジェクトの上空で、かつ、プレイヤオブジェクトＰＯ、雲オブジェクトＣＯ１、および雲オブジェクトＣＯ２の下方となり、左仮想カメラおよび右仮想カメラからそれぞれ奥行距離Ｚ４となる高度に配置される。そして、雲オブジェクトＣＯ３も、仮想空間をスクロール表示する方向であるＹ軸方向に沿って、左仮想カメラおよび右仮想カメラの視体積内において左右の端部となる位置にそれぞれ配置される。
【００９６】
このように設定された仮想空間を用いて、左仮想カメラから見た当該仮想空間を左目用の仮想世界画像（左仮想世界画像）として生成し、右仮想カメラから見た当該仮想空間を右目用の仮想世界画像（右仮想世界画像）として生成する。そして、生成された左仮想世界画像および右仮想世界画像を上側ＬＣＤ２２に表示することによって、図５〜図７を用いて説明したような仮想世界の立体視画像が上側ＬＣＤ２２に表示される。そして、２つの仮想カメラおよび／または仮想空間の仮想オブジェクトを、周期的にＹ軸方向へスクロール移動させることによって、仮想世界が上側ＬＣＤ２２の下方向へ順次スクロールするように表示される。なお、後述により明らかとなるが、Ｙ軸方向へスクロール移動させる量（スクロール量）は、仮想オブジェクトが配置されている奥行距離Ｚに応じて異なる値に設定される。つまり、仮想オブジェクトの配置位置に応じてスクロール量が異なるため、仮想空間の仮想オブジェクトを、周期的にＹ軸負方向へそれぞれ設定されたスクロール量に応じてスクロール移動させることによって、上記スクロール表示を実現することが好ましい。
【００９７】
次に、上述した仮想世界を示す立体視画像を生成する他の例として、第２の立体視画像生成方法について説明する。図１０に示すように、仮想オブジェクトは、それぞれＺ軸方向の段階的な奥行距離ごとのＸＹ平面で設定された各レイヤに描画される。例えば、図１０に示す各レイヤは、奥行距離の昇順に奥行距離Ｚ１に対応する第１レイヤ、奥行距離Ｚ２に対応する第２レイヤ、奥行距離Ｚ３に対応する第３レイヤ、奥行距離Ｚ４に対応する第４レイヤ、および奥行距離Ｚ５に対応する第５レイヤを含んでいる。
【００９８】
仮想世界に描画される仮想オブジェクトには、それぞれ上記仮想空間における奥行方向への配置位置を示す奥行情報が設定されており、当該奥行情報に応じたレイヤに描画される。例えば、プレイヤオブジェクトＰＯおよび敵オブジェクトＥＯは、奥行距離Ｚ１が奥行情報として設定されており、第１レイヤに２次元画像で描画される。そして、プレイヤオブジェクトＰＯは、ユーザ操作によって算出された移動ベクトルＶｐに応じて第１レイヤ上を移動し、プレイヤオブジェクトＰＯの前方（飛行方向）がＹ軸正方向に向けた上面視の２次元画像が第１レイヤに描画される。また、敵オブジェクトＥＯは、所定のアルゴリズムに基づいて設定された移動ベクトルＶｅに応じて第１レイヤ上を移動し、移動中の敵オブジェクトＥＯを上方から見た２次元画像が第１レイヤに描画される。
【００９９】
例えば、地上オブジェクトＧＯは、奥行距離Ｚ５が奥行情報として設定されており、第５レイヤに２次元画像で描画される。具体的には、第５レイヤには地形オブジェクトが描画されており、地上オブジェクトＧＯを上方から見た２次元画像が当該地形オブジェクト上に描画される。また、地上を移動する地上オブジェクトＧＯについては、所定のアルゴリズムに基づいて設定された移動ベクトルに応じて第１レイヤ上を移動し、移動中の地上オブジェクトＧＯを上方から見た２次元画像が第１レイヤに描画される。
【０１００】
例えば、雲オブジェクトＣＯ１は、奥行距離Ｚ２が奥行情報として設定されており、第２レイヤにおける左右両端領域（Ｘ軸負方向への値が所定の値以下となる左端領域、およびＸ軸正方向への値が所定の値以上となる右端領域）内に、２次元画像で描画される。また、雲オブジェクトＣＯ２は、奥行距離Ｚ３が奥行情報として設定されており、第３レイヤにおける左右両端領域内に、２次元画像で描画される。そして、雲オブジェクトＣＯ３は、奥行距離Ｚ３が奥行情報として設定されており、第３レイヤにおける左右両端領域内に、２次元画像で描画される。
【０１０１】
そして、上記第１レイヤ〜第５レイヤに描画された仮想オブジェクトを表示する際、各レイヤの奥行情報に基づいて左目用の仮想世界画像（左仮想世界画像）および右目用の仮想世界画像（右仮想世界画像）を生成する。例えば、３Ｄ調整スイッチ２５のスライダ位置に応じて算出されたカメラ間距離、奥行距離が表示画面の位置と一致する基準奥行距離、および奥行情報に基づいて、各レイヤのずらし量を算出する。
【０１０２】
一例として、基準奥行距離におけるずらし量を０として、レイヤの奥行距離と基準奥行距離との距離差と所定の関係となる（例えば、正比例する）ように各レイヤのずらし量を設定し、上記カメラ間距離に基づいた係数を各ずらし量に乗算することによって、各レイヤのずらし量を決定する。そして、決定されたずらし量だけずらして各レイヤを合成して左仮想世界画像および右仮想世界画像をそれぞれ生成する。例えば、左仮想世界画像を生成する場合、基準奥行距離より奥行距離が長いレイヤについては設定されているずらし量だけ左（Ｘ軸負方向）にずらし、基準奥行距離より奥行距離が短いレイヤについては設定されているずらし量だけ右（Ｘ軸正方向）にずらす。そして、奥行距離が短いレイヤの画像を優先して各レイヤを重ねあわせて合成することによって、左仮想世界画像を生成する。また、右仮想世界画像を生成する場合、基準奥行距離より奥行距離が長いレイヤについては設定されているずらし量だけ右（Ｘ軸正方向）にずらし、基準奥行距離より奥行距離が短いレイヤについては設定されているずらし量だけ左（Ｘ軸負方向）にずらす。そして、奥行距離が短いレイヤの画像を優先して各レイヤを重ねあわせて合成することによって、右仮想世界画像を生成する。
【０１０３】
このように設定された各レイヤを合成して生成された左仮想世界画像および右仮想世界画像を上側ＬＣＤ２２に表示することによって、図５〜図７を用いて説明したような仮想世界の立体視画像が上側ＬＣＤ２２に表示される。そして、各レイヤを、周期的にＹ軸負方向へスクロール移動させることによって、仮想世界が上側ＬＣＤ２２の下方向へ順次スクロールするように表示される。なお、後述により明らかとなるが、Ｙ軸負方向へスクロール移動させる量（スクロール量）は、仮想オブジェクトが配置されている奥行距離Ｚに応じて異なる値に設定される。例えば、奥行距離Ｚが短いほどスクロール量が大きく設定される。具体的には、第１〜第５レイヤがそれぞれスクロール量Ｓ１〜Ｓ５でＹ軸負方向へスクロールし、Ｓ１＞Ｓ２＞Ｓ３＞Ｓ４＞Ｓ５に設定される。
【０１０４】
次に、図１１〜図１６を参照して、ゲーム装置１０で実行される表示制御プログラムによる具体的な処理動作について説明する。なお、図１１は、表示制御プログラムを実行することに応じて、メインメモリ３２に記憶される各種データの一例を示す図である。図１２は、図１１のオブジェクトデータＤｂの一例を示す図である。図１３は、当該表示制御プログラムを実行することによってゲーム装置１０が表示制御処理する動作の一例を示すフローチャートである。図１４は、図１３のステップ５１で行われるオブジェクト初期配置処理の詳細な動作の一例を示すサブルーチンである。図１５は、図１３のステップ５２で行われる立体視画像描画処理の詳細な動作の一例を示すサブルーチンである。図１６は、図１３のステップ５３で行われるスクロール処理の詳細な動作の一例を示すサブルーチンである。なお、これらの処理を実行するためのプログラムは、ゲーム装置１０に内蔵されるメモリ（例えば、データ保存用内部メモリ３５）や外部メモリ４５またはデータ保存用外部メモリ４６に含まれており、ゲーム装置１０の電源がオンになったときに、内蔵メモリから、または外部メモリＩ／Ｆ３３やデータ保存用外部メモリＩ／Ｆ３４を介して外部メモリ４５またはデータ保存用外部メモリ４６からメインメモリ３２に読み出されて、ＣＰＵ３１１によって実行される。また、後述する表示制御処理においては、上記第１の立体視画像生成方法を用いて立体視画像を生成する場合について説明する。
【０１０５】
図１１において、メインメモリ３２には、内蔵メモリ、外部メモリ４５、またはデータ保存用外部メモリ４６から読み出されたプログラムや表示制御処理において生成される一時的なデータが記憶される。図１１において、メインメモリ３２のデータ記憶領域には、操作データＤａ、オブジェクトデータＤｂ、カメラ間距離データＤｃ、仮想カメラデータＤｄ、左仮想世界画像データＤｅ、右仮想世界画像データＤｆ、および画像データＤｇ等が格納される。また、メインメモリ３２のプログラム記憶領域には、表示制御プログラムを構成する各種プログラム群Ｐａが記憶される。
【０１０６】
操作データＤａは、ユーザがゲーム装置１０を操作した操作情報を示すデータである。例えば、操作データＤａは、ユーザがゲーム装置１０のタッチパネル１３、操作ボタン１４、およびアナログスティック１５等の入力装置を操作したことを示すデータを含んでいる。タッチパネル１３、操作ボタン１４、およびアナログスティック１５それぞれからの操作データは、ゲーム装置１０が処理する時間単位（例えば、１／６０秒）毎に取得され、当該取得に応じて操作データＤａに格納されて更新される。なお、後述する処理フローでは、操作データＤａが処理周期である１フレーム毎に更新される例を用いて説明するが、他の処理周期で更新されてもかまわない。例えば、上記入力装置をユーザが操作したことを検出する別の周期毎に操作データＤａを更新し、当該更新された操作データＤａを処理周期毎に利用する態様でもかまわない。この場合、操作データＤａを更新する周期と、処理周期とが異なることになる。
【０１０７】
オブジェクトデータＤｂは、仮想世界に登場する各仮想オブジェクトに関するデータである。図１２に示すように、オブジェクトデータＤｂは、仮想オブジェクトごとのオブジェクト種類、配置位置、移動ベクトル、およびスクロール量等を示すデータである。例えば、図１２に示すオブジェクトデータＤｂでは、番号１の仮想オブジェクトがプレイヤオブジェクトＰＯであり、奥行距離Ｚ１でＸＹ位置が（Ｘ１，Ｙ１）となる位置に配置されて移動ベクトルＶｐで仮想空間内を移動し、スクロール量がＳ１に設定されていることが示されている。また、番号４の仮想オブジェクトが雲オブジェクトＣＯ１であり、奥行距離Ｚ２でＸＹ位置が（Ｘ４，Ｙ４）となる位置に仮想空間内で固定されて配置され、スクロール量がＳ２に設定されていることが示されている。
【０１０８】
カメラ間距離データＤｃは、３Ｄ調整スイッチ２５のスライダ位置によって設定されるカメラ間距離を示すデータである。例えば、３Ｄ調整スイッチ２５が所定の周期毎にスライダ位置を示すデータを出力しており、当該データに基づいてカメラ間距離が当該周期毎に算出されている。そして、カメラ間距離データＤｃには、算出されているカメラ間距離を示すデータが、ゲーム装置１０の処理時間単位毎に格納されて更新される。なお、後述する処理フローでは、カメラ間距離データＤｃが処理周期である１フレーム毎に更新される例を用いて説明するが、他の周期で更新されてもかまわない。例えば、上記カメラ間距離が算出される算出周期毎にカメラ間距離データＤｃを更新し、当該更新されたカメラ間距離データＤｃをゲーム装置１０の処理周期毎に利用する態様でもかまわない。この場合、カメラ間距離データＤｃを更新する周期と、処理周期とが異なることになる。
【０１０９】
仮想カメラデータＤｄは、カメラ間距離に基づいて設定され、左仮想カメラおよび右仮想カメラの仮想空間における位置、姿勢、および投影法や表示範囲（視体積；図９参照）を示すデータである。一例として、仮想カメラデータＤｄは、左仮想カメラおよび右仮想カメラそれぞれのカメラ行列を示すデータである。例えば、上記行列は、仮想オブジェクトが配置される座標系（ワールド座標系）で表された座標を、左仮想カメラおよび右仮想カメラの位置および姿勢を基準として表された座標系（カメラ座標系）に、設定された投影法や表示範囲に基づいてそれぞれ変換する座標変換行列である。
【０１１０】
左仮想世界画像データＤｅは、仮想オブジェクトが配置された仮想空間を、左仮想カメラから見た画像（左仮想世界画像）を示すデータである。例えば、左仮想世界画像データＤｅは、左仮想カメラから見た仮想オブジェクトが配置された仮想空間を透視投影や平行投影することによって得られる左仮想世界画像を示すデータである。
【０１１１】
右仮想世界画像データＤｆは、仮想オブジェクトが配置された仮想空間を、右仮想カメラから見た画像（右仮想世界画像）を示すデータである。例えば、右仮想世界画像データＤｆは、右仮想カメラから見た仮想オブジェクトが配置された仮想空間を透視投影や平行投影することによって得られる右仮想世界画像を示すデータである。
【０１１２】
画像データＤｇは、前述の仮想オブジェクト（地形オブジェクトを含む）を表示するための情報であって、仮想オブジェクトの形状を表す３Ｄモデルデータ（ポリゴンデータ）や、仮想オブジェクトの模様を表すテクスチャデータ等を含む。
【０１１３】
次に、図１３を参照して、情報処理部３１の動作について説明する。まず、ゲーム装置１０の電源（電源ボタン１４Ｆ）がＯＮされると、ＣＰＵ３１１によってブートプログラム（図示せず）が実行され、これにより内蔵メモリまたは外部メモリ４５やデータ保存用外部メモリ４６に格納されているプログラムがメインメモリ３２にロードされる。そして、当該ロードされたプログラムが情報処理部３１（ＣＰＵ３１１）で実行されることによって、図１３に示すステップ（図１３〜図１６では「Ｓ」と略称する）が実行される。なお、図１３〜図１６においては、本発明に直接関連しない処理についての記載を省略する。また、本実施形態では、図１３〜図１６のフローチャートの全てのステップの処理をＣＰＵ３１１が実行するものとして説明するが、図１３〜図１６のフローチャートの一部のステップの処理を、ＣＰＵ３１１以外のプロセッサや専用回路が実行するようにしてもよい。
【０１１４】
図１３において、ＣＰＵ３１１は、オブジェクト初期配置処理を行い（ステップ５１）、次のステップに処理を進める。以下、図１４を参照して、上記ステップ５１で行うオブジェクト初期配置処理について説明する。
【０１１５】
図１４において、ＣＰＵ３１１は、左仮想カメラおよび右仮想カメラが配置された仮想空間を設定し（ステップ６０）、次のステップに処理を進める。例えば、ＣＰＵ３１１は、左仮想カメラおよび右仮想カメラが所定の距離だけ離間（たとえば、距離０）し、それぞれの視線方向および上下左右方向が一致するように配置された仮想空間を設定する。そして、ＣＰＵ３１１は、これらの仮想カメラの視線方向をＺ軸正方向とし、Ｚ軸正方向に仮想カメラを向けたときの仮想カメラの右方向をＸ軸正方向、仮想カメラの上方向をＹ軸正方向としたカメラ座標系を定義する。また、ＣＰＵ３１１は、左仮想カメラおよび右仮想カメラの仮想空間における位置、表示画面の位置と一致する基準奥行距離、仮想カメラから描画する投影法、および仮想カメラの画角等に基づいて、左仮想カメラおよび右仮想カメラの視体積をそれぞれ設定する。そして、ＣＰＵ３１１は、設定された左仮想カメラおよび右仮想カメラに関するデータを用いて、仮想カメラデータＤｄを更新する。
【０１１６】
次に、ＣＰＵ３１１は、仮想空間における仮想カメラからの奥行距離が最も近い階層にプレイヤオブジェクトＰＯを配置し（ステップ６１）、次のステップに処理を進める。例えば、図８に示したように、ＣＰＵ３１１は、プレイヤオブジェクトＰＯを左仮想カメラおよび右仮想カメラから何れも奥行距離Ｚ１となる位置（階層）にプレイヤオブジェクトＰＯを配置する。その際、ＣＰＵ３１１は、プレイヤオブジェクトＰＯの上面が仮想カメラ側となって前方がカメラ座標系におけるＹ軸正方向を向くようにプレイヤオブジェクトＰＯの姿勢を設定する。また、ＣＰＵ３１１は、ゲーム開始時に設定されている初期配置位置にプレイヤオブジェクトＰＯを配置し、プレイヤオブジェクトＰＯの移動ベクトルＶｐを初期設定値に設定する。そして、ＣＰＵ３１１は、設定されたプレイヤオブジェクトＰＯに関するデータを用いて、オブジェクトデータＤｂを更新する。
【０１１７】
次に、ＣＰＵ３１１は、仮想空間における仮想カメラからの奥行距離が最も遠い階層に地上オブジェクトＧＯを配置し（ステップ６２）、次のステップに処理を進める。例えば、図８に示したように、ＣＰＵ３１１は、地形オブジェクトを左仮想カメラおよび右仮想カメラから何れも奥行距離Ｚ５となる位置（階層）に配置し、当該地形オブジェクト上に地上オブジェクトＧＯをそれぞれ配置する。そして、ＣＰＵ３１１は、設定された地上オブジェクトＧＯに関するデータを用いて、オブジェクトデータＤｂを更新する。なお、ＣＰＵ３１１は、仮想空間のスクロール方向を挟んで相対する表示領域の両側端部に対応する領域を除いた地形オブジェクト上に、地上オブジェクトＧＯを配置する。このように、上記両側端部に対応する領域を除いた位置に地上オブジェクトＧＯを配置することによって、ユーザから地上オブジェクトＧＯへの視界が上空に配置される雲オブジェクトＣＯによって妨げられないようにすることができる。
【０１１８】
次に、ＣＰＵ３１１は、仮想空間における仮想カメラからの奥行距離が中間距離となる階層に雲オブジェクトＣＯを配置し（ステップ６３）、当該サブルーチンによる処理を終了する。例えば、図８に示したように、ＣＰＵ３１１は、雲オブジェクトＣＯ１を左仮想カメラおよび右仮想カメラから何れも奥行距離Ｚ２となる位置（階層）に配置する。その際、ＣＰＵ３１１は、左仮想カメラおよび右仮想カメラの視体積内の両端（仮想空間のスクロール方向を挟んで相対する表示領域の両側端部であり、仮想空間をスクロールする方向が上側ＬＣＤ２２の上下方向である場合、左仮想カメラおよび右仮想カメラの視体積内において左右端部となる位置）に、当該スクロール方向へ伸びるように雲オブジェクトＣＯ１を配置する。また、ＣＰＵ３１１は、雲オブジェクトＣＯ２を左仮想カメラおよび右仮想カメラから何れも奥行距離Ｚ３となる位置（階層）に配置する。その際、ＣＰＵ３１１は、左仮想カメラおよび右仮想カメラの視体積内の両端に、当該スクロール方向へ伸びるように雲オブジェクトＣＯ２を配置する。さらに、ＣＰＵ３１１は、雲オブジェクトＣＯ３を左仮想カメラおよび右仮想カメラから何れも奥行距離Ｚ４となる位置（階層）に配置する。その際、ＣＰＵ３１１は、左仮想カメラおよび右仮想カメラの視体積内の両端に、当該スクロール方向へ伸びるように雲オブジェクトＣＯ３を配置する。そして、ＣＰＵ３１１は、設定された雲オブジェクトＣＯ１〜ＣＯ３に関するデータを用いて、オブジェクトデータＤｂを更新する。
【０１１９】
図１３に戻り、上記ステップ５１のオブジェクト初期配置処理の後、ＣＰＵ３１１は、立体視画像描画処理を行い（ステップ５２）、次のステップに処理を進める。以下、図１５を参照して、上記ステップ５２で行う立体視画像描画処理について説明する。
【０１２０】
図１５において、ＣＰＵ３１１は、カメラ間距離を取得して（ステップ７１）、次のステップに処理を進める。例えば、ＣＰＵ３１１は、３Ｄ調整スイッチ２５のスライダ位置に基づいて算出されたカメラ間距離を示すデータを取得し、取得したカメラ間距離を用いてカメラ間距離データＤｃを更新する。
【０１２１】
次に、ＣＰＵ３１１は、上記ステップ７１で取得したカメラ間距離に基づいて、仮想空間において左仮想カメラおよび右仮想カメラを設定し（ステップ７２）、次のステップに処理を進める。例えば、ＣＰＵ３１１は、上記ステップ７１で取得したカメラ間距離だけ離間するように仮想カメラの位置を設定してそれぞれの視体積を設定し、設定された左仮想カメラおよび右仮想カメラの位置や視体積に基づいて、仮想カメラデータＤｄを更新する。
【０１２２】
次に、ＣＰＵ３１１は、左仮想カメラから見た仮想空間を左仮想世界画像として生成して（ステップ７３）、次のステップに処理を進める。例えば、ＣＰＵ３１１は、仮想カメラデータＤｄに基づいて左仮想カメラのビュー行列を設定し、当該左仮想カメラの視体積内に存在する仮想オブジェクトを描画して左仮想世界画像を生成して、左仮想世界画像データＤｅを更新する。
【０１２３】
次に、ＣＰＵ３１１は、右仮想カメラから見た仮想空間を右仮想世界画像として生成して（ステップ７４）、次のステップに処理を進める。例えば、ＣＰＵ３１１は、仮想カメラデータＤｄに基づいて右仮想カメラのビュー行列を設定し、当該左仮想カメラの視体積内に存在する仮想オブジェクトを描画して右仮想世界画像を生成して、右仮想世界画像データＤｆを更新する。
【０１２４】
次に、ＣＰＵ３１１は、左仮想世界画像を左目用画像、右仮想世界画像を右目用画像としてそれぞれ上側ＬＣＤ２２に立体視画像を表示し（ステップ７５）、当該サブルーチンによる処理を終了する。
【０１２５】
図１３に戻り、上記ステップ５２の立体視画像描画処理の後、ＣＰＵ３１１は、スクロール処理を行い（ステップ５３）、次のステップに処理を進める。以下、図１６を参照して、上記ステップ５３で行うスクロール処理について説明する。
【０１２６】
図１６において、ＣＰＵ３１１は、仮想空間に配置されている仮想オブジェクトの１つを選択し（ステップ８１）、次のステップに処理を進める。
【０１２７】
次に、ＣＰＵ３１１は、上記ステップ８１で選択された仮想オブジェクトの奥行距離に基づいてスクロール量を設定し（ステップ８２）、次のステップに処理を進める。例えば、ＣＰＵ３１１は、オブジェクトデータＤｂを参照して上記ステップ８１で選択された仮想オブジェクトが配置されている奥行距離Ｚを抽出する。そして、ＣＰＵ３１１は、奥行距離Ｚが短いほどスクロール量が大きくなるように、抽出された奥行距離Ｚに対応するスクロール量を設定し、設定されたスクロール量を用いてオブジェクトデータＤｂを更新する。
【０１２８】
なお、上記ステップ８１で奥行距離Ｚが一定となった仮想オブジェクトが選択され、既に当該仮想オブジェクトに対するスクロール量が設定済である場合、上記ステップ８２の処理において当該仮想オブジェクトに対するスクロール量を再設定しなくてもかまわない。
【０１２９】
また、上記ステップ８１で奥行距離Ｚが変化する仮想オブジェクトが選択されている場合であっても、当該仮想オブジェクトに対するスクロール量を最初に設定された値に固定して、上記ステップ８２の処理において当該仮想オブジェクトに対するスクロール量を再設定しなくてもかまわない。一例として、プレイヤオブジェクトＰＯが地上オブジェクトＧＯを攻撃するために対地攻撃弾を発射した場合、奥行距離Ｚが漸増的に長くなるように当該対地攻撃弾に対応する仮想オブジェクトが仮想空間を移動する。このような対地攻撃弾に対応する仮想オブジェクトの移動に対して、奥行距離Ｚが変化した場合であってもスクロール量を発射地点のスクロール量に固定することによって、仮想空間における対地攻撃弾の移動速度が一定であれば上側ＬＣＤ２２に表示される対地攻撃弾の移動速度も等速となる。したがって、プレイヤオブジェクトＰＯを操作するユーザは、地上オブジェクトＧＯを対地攻撃弾で攻撃することが容易となる。
【０１３０】
他の例として、地上オブジェクトＧＯがプレイヤオブジェクトＰＯを攻撃するために対空攻撃弾を発射した場合、奥行距離Ｚが漸減的に短くなるように当該対空攻撃弾に対応する仮想オブジェクトが仮想空間を移動する。このような対空攻撃弾に対応する仮想オブジェクトの移動に対して、奥行距離Ｚが変化した場合であってもスクロール量を発射地点のスクロール量に固定することによって、仮想空間における対空攻撃弾の移動速度が一定であれば上側ＬＣＤ２２に表示される対空攻撃弾の移動速度も等速となる。したがって、プレイヤオブジェクトＰＯを操作するユーザは、地上オブジェクトＧＯから発射された対空攻撃弾の軌道を把握しやすくなる。
【０１３１】
これに対して、上記ステップ８１で奥行距離Ｚが変化する仮想オブジェクトが選択されている場合、上記ステップ８２の処理において当該仮想オブジェクトに対するスクロール量を変化する奥行距離Ｚに応じてスクロール量を逐次変化させて、当該仮想オブジェクトに対するスクロール量を再設定してもよい。この場合、前者の例では、プレイヤオブジェクトＰＯが前方へ対地攻撃弾を発射した場合、仮想空間における当該対地攻撃弾の移動速度が一定であっても、上側ＬＣＤ２２では移動速度が徐々に減速されるように対地攻撃弾が表示される。また、後者の例では、プレイヤオブジェクトＰＯの前方から地上オブジェクトＧＯが対空攻撃弾を発射した場合、仮想空間における当該対空攻撃弾の移動速度が一定であっても、上側ＬＣＤ２２では移動速度が徐々に加速されるように対空攻撃弾が表示される。
【０１３２】
次に、ＣＰＵ３１１は、上記ステップ８１およびステップ８２の処理が行われていない仮想オブジェクトがあるか否かを判断する。そして、ＣＰＵ３１１は、未処理の仮想オブジェクトがある場合、上記ステップ８１に戻って処理を繰り返す。一方、ＣＰＵ３１１は、全ての仮想オブジェクトに対する処理が終了した場合、次のステップ８４に処理を進める。
【０１３３】
ステップ８４において、ＣＰＵ３１１は、設定されたスクロール量に基づいて、各仮想オブジェクトを所定のスクロール方向へスクロール移動させ、当該サブルーチンによる処理を終了する。例えば、ＣＰＵ３１１は、オブジェクトデータＤｂを参照して、各仮想オブジェクトを設定されたスクロール量だけＹ軸負方向へそれぞれ移動させ、仮想空間における移動後の配置位置を用いて各仮想オブジェクトのＸＹ位置を更新する。
【０１３４】
図１３に戻り、上記ステップ５３のスクロール処理の後、ＣＰＵ３１１は、操作データを取得して（ステップ５４）、次のステップに処理を進める。例えば、ＣＰＵ３１１は、タッチパネル１３、操作ボタン１４、およびアナログスティック１５を操作したことを示すデータを取得して、操作データＤａを更新する。
【０１３５】
次に、ＣＰＵ３１１は、オブジェクト移動処理を行って（ステップ５５）、次のステップに処理を進める。例えば、ＣＰＵ３１１は、上記ステップ５５において、仮想オブジェクトに設定されている移動ベクトルを更新する処理、更新された移動ベクトルに基づいて仮想空間内で仮想オブジェクトを移動させる処理、他の仮想オブジェクトと衝突した仮想オブジェクトを仮想空間から消滅させる処理、新たな仮想オブジェクトを仮想空間に登場させる処理等を行う。
【０１３６】
仮想オブジェクトに設定されている移動ベクトルを更新する処理では、ＣＰＵ３１１は、オブジェクトデータＤｂに設定されているプレイヤオブジェクトＰＯの移動ベクトルＶｐおよび操作データＤａが示す操作情報に基づいて、移動ベクトルＶｐを変化させてオブジェクトデータＤｂを更新する。例えば、ＣＰＵ３１１は、操作ボタン１４Ａが押下されていることを上記操作情報が示す場合、上側ＬＣＤ２２の表示範囲内で当該押下された指示方向へ移動してプレイヤオブジェクトＰＯが上側ＬＣＤ２２に表示されるように、プレイヤオブジェクトＰＯの移動ベクトルＶｐを変化させる。また、ＣＰＵ３１１は、オブジェクトデータＤｂに設定されている敵オブジェクトＥＯの移動ベクトルＶｅや地上オブジェクトＧＯに設定されている移動ベクトルＶｇを、所定のアルゴリズムに基づいて変化させて移動ベクトルＶｅや移動ベクトルＶｇを変化させてオブジェクトデータＤｂを更新する。
【０１３７】
更新された移動ベクトルに基づいて仮想空間内で仮想オブジェクトを移動させる処理では、ＣＰＵ３１１は、オブジェクトデータＤｂに設定されている移動ベクトルに基づいて、各仮想オブジェクトを仮想空間内で移動させる。そして、ＣＰＵ３１１は、移動後の配置位置を用いて、オブジェクトデータＤｂにおける各仮想オブジェクトの配置位置データを更新する。また、ＣＰＵ３１１は、移動後のプレイヤオブジェクトＰＯの配置位置に基づいて、照準Ａの配置位置を設定し、当該配置位置に照準Ａを配置する。例えば、照準Ａは、プレイヤオブジェクトＰＯに対して所定距離だけ前方であり、かつ、地形オブジェクト上となる位置に配置される。
【０１３８】
他の仮想オブジェクトと衝突した仮想オブジェクトを仮想空間から消滅させる処理では、ＣＰＵ３１１は、オブジェクトデータＤｂに設定されている各仮想オブジェクトの配意位置データ（奥行距離、ＸＹ位置）に基づいて、仮想空間内で衝突している仮想オブジェクトを抽出する。そして、ＣＰＵ３１１は、他の仮想オブジェクトと衝突した場合に消滅する仮想オブジェクト（例えば、プレイヤオブジェクトＰＯ、敵オブジェクトＥＯ、地上オブジェクトＧＯ、対空攻撃弾および対地攻撃弾に対応するオブジェクト等）を、仮想世界から消滅させるためにオブジェクトデータＤｂから消去する。
【０１３９】
新たな仮想オブジェクトを仮想空間に登場させる処理では、ＣＰＵ３１１は、ユーザの操作や所定のアルゴリズムに基づいて、仮想空間に敵オブジェクトＥＯ、地上オブジェクトＧＯ、対空攻撃弾および対地攻撃弾に対応するオブジェクト等を新たに出現させる。例えば、ユーザが対空攻撃弾または対地攻撃弾を発射する攻撃操作を行った場合、ＣＰＵ３１１は、当該攻撃操作に応じた仮想オブジェクトを仮想空間に出現させる。また、所定のアルゴリズムに基づいて、敵オブジェクトＥＯや地上オブジェクトＧＯがプレイヤオブジェクトＰＯを攻撃する動作を行う場合、ＣＰＵ３１１は、当該攻撃動作に応じた仮想オブジェクトを仮想空間に出現させる。具体的には、ＣＰＵ３１１は、攻撃操作や攻撃動作に応じた仮想オブジェクトを仮想空間に出現させる場合、攻撃動作を行うプレイヤオブジェクトＰＯ、敵オブジェクトＥＯ、および地上オブジェクトＧＯの配置位置を出現位置として設定し、プレイヤオブジェクトＰＯの前方方向、照準Ａが配置されている位置への方向、プレイヤオブジェクトＰＯが配置されている方向等を移動方向とする所定の移動速度を移動ベクトルとして設定して、新たに出現させる仮想オブジェクトに対応するデータをオブジェクトデータＤｂに追加する。また、所定のアルゴリズムに基づいて、敵オブジェクトＥＯや地上オブジェクトＧＯを仮想空間に出現させる場合、ＣＰＵ３１１は、当該アルゴリズムによって指示される出現位置および移動ベクトルに応じた仮想オブジェクトを仮想空間に出現させる。具体的には、ＣＰＵ３１１は、敵オブジェクトＥＯや地上オブジェクトＧＯを仮想空間に出現させる場合、上記アルゴリズムによって指示される出現位置および移動ベクトルを新たに出現させる仮想オブジェクトの配置位置および移動ベクトルとして設定して、新たに出現させる仮想オブジェクトに対応するデータをオブジェクトデータＤｂに追加する。なお、ＣＰＵ３１１は、地上オブジェクトＧＯを新たに出現させる際、仮想空間のスクロール方向を挟んで相対する表示領域の両側端部に対応する領域を除いた地形オブジェクト上に地上オブジェクトＧＯを出現させる。
【０１４０】
次に、ＣＰＵ３１１は、ゲームを終了するか否かを判断する（ステップ５６）。ゲームを終了する条件としては、例えば、ゲームがゲームオーバとなる条件が満たされたことや、ゲームがクリアされる条件が満たされたことや、ユーザがゲームを終了する操作を行ったこと等がある。ＣＰＵ３１１は、ゲームを終了しない場合、上記ステップ５２に戻って処理を繰り返す。一方、ＣＰＵ３１１は、ゲームを終了する場合、当該フローチャートによる処理を終了する。
【０１４１】
このように、上述した実施形態に係る表示制御処理では、立体視表示された仮想世界内の奥行方向に対してプレイヤオブジェクトＰＯと地上オブジェクトＧＯとの間となる位置に雲オブジェクトＣＯ１〜ＣＯ３が配置される。これによって、プレイヤオブジェクトＰＯと地上オブジェクトＧＯとの間に別の仮想オブジェクトが介在することによって、奥行位置を比較するための比較対象物となるため、プレイヤオブジェクトＰＯと地上オブジェクトＧＯとの間の奥行き感を強調することができる。また、仮想世界が表示される場合、雲オブジェクトＣＯ１〜ＣＯ３が常に表示画面の端部に表示されるため、プレイヤオブジェクトＰＯや地上オブジェクトＧＯを覆い隠すことがなく、プレイに支障をきたすことも無く、常にプレイヤオブジェクトＰＯや地上オブジェクトＧＯへの視界も確保される。さらに、仮想世界が表示装置に立体視表示される際、仮想世界内の奥行方向の距離が短いほどスクロール量が大きくなるようにスクロール表示されるため、立体視表示される仮想世界にさらに立体感を加えることができる。
【０１４２】
なお、上述した実施形態では、立体視表示された仮想世界内の奥行方向に対してプレイヤオブジェクトＰＯと地上オブジェクトＧＯとの間となる位置に、３層の雲オブジェクトＣＯ１〜ＣＯ３が重なるように配置した。しかしながら、プレイヤオブジェクトＰＯと地上オブジェクトＧＯとの間となる位置に、１層または２層の雲オブジェクトＣＯを配置してもいいし、４層以上の雲オブジェクトＣＯを配置してもよい。
【０１４３】
また、上述した実施形態では、雲オブジェクトＣＯ１〜ＣＯ３が常に表示画面の端部に表示されるように雲オブジェクトＣＯ１〜ＣＯ３を配置した。しかしながら、雲オブジェクトＣＯ１〜ＣＯ３は、少なくとも表示画面の端部の少なくとも一部に常に表示されていればよく、さらに表示画面の当該端部以外の位置に表示されてもかまわない。例えば、雲オブジェクトＣＯは、表示画面に対してスクロール表示されるため、地上オブジェクトＧＯへの視界を妨げない程度の大きさの雲オブジェクトＣＯであれば、表示画面の中央部等を通るようにスクロール表示されてもよい。また、雲オブジェクトＣＯ１〜ＣＯ３は、表示画面の端部に表示されている一部が切れた状態で表示されてもかまわない。例えば、表示画面の左右両端部に雲オブジェクトＣＯ１〜ＣＯ３が表示される場合、当該左右両端部全てに渡って雲オブジェクトＣＯ１〜ＣＯ３が常に表示される必要はない。すなわち、雲オブジェクトＣＯ１〜ＣＯ３の少なくとも１つの一部が、上記左右両端部への表示において配置されずに表示されない状態（例えば、雲が切れた状態）で上側ＬＣＤ２２に表示されてもかまわない。
【０１４４】
また、本発明は、立体視表示された仮想世界内において奥行き感を強調したい場合に、その強調したい空間に別の仮想オブジェクトを介在させ、当該仮想オブジェクトを当該空間における奥行位置を比較するための比較対象物とすることによって、奥行き感を強調している。したがって、比較対象物として介在させる仮想オブジェクトは、様々な態様が考えられる。例えば、上述した実施形態では、仮想世界が表示画面の上下方向にスクロール表示される場合に、雲オブジェクトＣＯ１〜ＣＯ３が表示画面の左右両端部に常に表示される例を用いた。しかしながら、本発明は、仮想世界が表示画面の上下方向にスクロール表示される場合に、雲オブジェクトＣＯ１〜ＣＯ３が表示画面の左右端部の一方に常に表示されてもかまわない。
【０１４５】
また、プレイヤオブジェクトＰＯと地上オブジェクトＧＯとの間となる位置に比較対象物となる雲オブジェクトＣＯを配置することによって、プレイヤオブジェクトＰＯと地上オブジェクトＧＯとの奥行き感を強調しているが、比較対象物となる雲オブジェクトＣＯは、２つの仮想オブジェクトの間となる階層に配置しなくてもかまわない。一例として、地形オブジェクト上にプレイヤオブジェクトＰＯおよび地上オブジェクトＧＯを配置し、当該地形オブジェクトの上空に雲オブジェクトＣＯを配置する。この場合、雲オブジェクトＣＯのさらに上空には他の仮想オブジェクトが存在せず、当該雲オブジェクトＣＯが配置されている階層が２つの仮想オブジェクトの間とはならない。しかしながら、プレイヤオブジェクトＰＯおよび地上オブジェクトＧＯの上空に雲オブジェクトＣＯを配置することによって、当該雲オブジェクトＣＯが奥行方向に対する比較対象物となるため、立体視表示された仮想世界内におけるプレイヤオブジェクトＰＯ、地上オブジェクトＧＯ、および地形オブジェクトに対する奥行き感を強調することができる。他の例として、最も奥行距離短い階層（例えば、奥行距離Ｚ１の階層）にプレイヤオブジェクトＰＯや敵オブジェクトＥＯを配置し、当該プレイヤオブジェクトＰＯや敵オブジェクトＥＯの下層（奥行方向へ奥行距離が相対的に長い階層）に雲オブジェクトＣＯを配置する。この場合、雲オブジェクトＣＯのさらに下層には他の仮想オブジェクトが存在せず、当該雲オブジェクトＣＯが配置されている階層が２つの仮想オブジェクトの間とはならない。しかしながら、プレイヤオブジェクトＰＯおよび／または敵オブジェクトＥＯの奥（下層）に雲オブジェクトＣＯを配置することによって、当該雲オブジェクトＣＯが奥行方向に対する比較対象物となるため、立体視表示された仮想世界内におけるプレイヤオブジェクトＰＯおよび／または敵オブジェクトＥＯに対する奥行き感を強調することができる。
【０１４６】
また、本発明は、他のスクロール方向へ仮想世界がスクロール表示される場合や、仮想世界がスクロールされない場合であっても適用することができる。例えば、仮想世界が表示画面の左右方向にスクロール表示される場合、雲オブジェクトＣＯ１〜ＣＯ３を表示画面の上下端部の少なくとも一方に常に表示することによって、同様の効果を得ることができる。また、仮想世界が表示画面に固定して表示される場合、雲オブジェクトＣＯ１〜ＣＯ３を常に表示画面の上下左右何れか１つの端部に表示することによって、同様の効果を得ることができる。例えば、奥行距離が異なる地形オブジェクトの上空にプレイヤオブジェクトが配置されて立体視表示され、地形オブジェクトが表示画面に対して固定的に表示される場合、表示画面の端部に表示されている地形オブジェクトの奥行距離に応じて、当該端部に雲オブジェクトＣＯ等の別の仮想オブジェクトを表示してもよい。一例として、表示画面に傾斜した地形オブジェクトが表示されており、表示画面の上端部に表示されている位置の地形オブジェクトの奥行距離が他の位置よりも長い場合、当該上端部にのみ地形オブジェクトとプレイヤオブジェクトが配置されている階層との間に別の仮想オブジェクト（例えば、雲オブジェクト）を配置する。このように、立体視表示された仮想世界内の奥行方向に対して地形オブジェクトの上方となる位置に別の仮想オブジェクトが介在することによって、奥行位置を比較するための比較対象物となるため、地形オブジェクトの奥行き感を強調することができる。
【０１４７】
また、上述した実施形態では、最も奥行距離が短い階層にプレイヤオブジェクトＰＯおよび敵オブジェクトＥＯを配置し、最も奥行距離が長い階層に地上オブジェクトＧＯを配置し、その中間となる階層に雲オブジェクトＣＯを配置した。しかしながら、さらに別の階層に仮想オブジェクトを登場させてもかまわない。例えば、雲オブジェクトＣＯが配置される階層と地上オブジェクトＧＯが配置される階層との間に別の階層を設定し、当該階層に別の敵オブジェクトが出現するように構成してもかまわない。
【０１４８】
また、上記実施形態では、左仮想カメラおよび右仮想カメラの視体積を、上側ＬＣＤ２２に表示される表示範囲によって設定する（すなわち、視体積内の仮想空間が全て上側ＬＣＤ２２に表示される）例を示したが、他の方式で視体積を設定してもかまわない。例えば、左仮想カメラおよび右仮想カメラの視体積を、上側ＬＣＤ２２に表示される表示範囲とは無関係に設定してもよい。この場合、上記ステップ７５において、左仮想カメラの視体積内の仮想空間を示す左仮想世界画像から一部の領域を切り取って左目用画像として生成し、右仮想カメラの視体積内の仮想空間を示す右仮想世界画像から一部の領域を切り取って右目用画像として生成する。具体的には、表示画面に立体視画像を表示する場合に奥行距離が当該表示画面の位置と一致する基準奥行距離における仮想空間の表示範囲が、上記左目用画像と右目用画像とにおいて一致するように、上記一部の領域が左仮想世界画像および右仮想世界画像から切り取られる。このように、左仮想カメラおよび右仮想カメラの視体積を、実際に表示画面に表示する表示領域より大きく設定して、表示画面に表示する際に立体視表示に適切な一部の範囲を当該視体積内の画像から切り取ってもかまわない。この場合、表示画面の端部に表示する雲オブジェクトＣＯ１〜ＣＯ３は、以降の処理で切り取られる範囲を想定して表示範囲の端部となるように仮想空間内に配置すればよい。
【０１４９】
また、上記実施形態では、上側ＬＣＤ２２がパララックスバリア方式の液晶表示装置であるとして、視差バリアのＯＮ／ＯＦＦを制御することにより、立体表示と平面表示とを切り替えることができる。他の実施形態では、例えば、上側ＬＣＤ２２としてレンチキュラー方式の液晶表示装置を用いて、立体画像および平面画像を表示可能としてもよい。レンチキュラー方式の場合でも、外側撮像部２３で撮像した２つの画像を縦方向に短冊状に分割して交互に配置することで画像が立体表示される。また、レンチキュラー方式の場合でも、内側撮像部２４で撮像した１つの画像をユーザの左右の目に視認させることによって、当該画像を平面表示させることができる。すなわち、レンチキュラー方式の液晶表示装置であっても、同じ画像を縦方向に短冊状に分割し、これら分割した画像を交互に配置することにより、ユーザの左右の目に同じ画像を視認させることができる。これにより、内側撮像部２４で撮像された画像を平面画像として表示することが可能である。
【０１５０】
また、上述した説明では、上側ＬＣＤ２２を裸眼立体視可能な表示装置として説明したが、上側ＬＣＤ２２が他の方式で立体視可能に構成されてもかまわない。例えば、偏光フィルタ方式、時分割方式、アナグリフ方式等の方式で、上側ＬＣＤ２２を立体視可能に構成してもかまわない。
【０１５１】
また、上述した実施形態では、２画面分の液晶表示部の一例として、物理的に分離された下側ＬＣＤ１２および上側ＬＣＤ２２を互いに上下に配置した場合（上下２画面の場合）を説明した。しかしながら、本発明は、単一の表示画面（例えば、上側ＬＣＤ２２のみ）を有する装置または単一の表示装置に表示する画像を画像処理する装置でも実現することができる。また、２画面分の表示画面の構成は、他の構成でもかまわない。例えば、下側ハウジング１１の一方主面に下側ＬＣＤ１２および上側ＬＣＤ２２を左右に配置してもかまわない。また、下側ＬＣＤ１２と横幅が同じで縦の長さが２倍のサイズからなる縦長サイズのＬＣＤ（すなわち、物理的には１つで、表示サイズが縦に２画面分あるＬＣＤ）を下側ハウジング１１の一方主面に配設して、２つの画像（例えば、撮像画像と操作説明画面を示す画像等）を上下に表示（すなわち上下の境界部分無しに隣接して表示）するように構成してもよい。また、下側ＬＣＤ１２と縦幅が同じで横の長さが２倍のサイズからなる横長サイズのＬＣＤを下側ハウジング１１の一方主面に配設して、横方向に２つの画像を左右に表示（すなわち左右の境界部分無しに隣接して表示）するように構成してもよい。すなわち、物理的に１つの画面を２つに分割して使用することにより２つの画像を表示してもかまわない。また、物理的に１つの画面を２つに分割して使用することにより上記２つの画像を表示する場合、当該画面全面にタッチパネル１３を配設してもかまわない。
【０１５２】
また、上述した実施例では、ゲーム装置１０にタッチパネル１３が一体的に設けられているが、ゲーム装置とタッチパネルとを別体にして構成しても、本発明を実現できることは言うまでもない。また、上側ＬＣＤ２２の上面にタッチパネル１３を設けて上側ＬＣＤ２２に下側ＬＣＤ１２に表示していた表示画像を表示し、下側ＬＣＤ１２に上側ＬＣＤ２２に表示していた表示画像を表示してもよい。また、本発明を実現する場合に、タッチパネル１３が設けられていなくもかまわない。
【０１５３】
また、上記実施例では、携帯型のゲーム装置１０を用いて説明したが、据置型のゲーム装置や一般的なパーソナルコンピュータ等の情報処理装置で本発明の表示制御プログラムを実行して、本発明を実現してもかまわない。また、他の実施形態では、ゲーム装置に限らず任意の携帯型電子機器、例えば、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）や携帯電話、パーソナルコンピュータ、カメラ等であってもよい。
【０１５４】
また、上述した説明では表示制御処理をゲーム装置１０で行う例を用いたが、上記表示制御処理における処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、ゲーム装置１０が他の装置（例えば、サーバや他のゲーム装置）と通信可能に構成されている場合、上記表示制御処理における処理ステップは、ゲーム装置１０および当該他の装置が協働することによって実行してもよい。一例として、ゲーム装置１０から他の装置へ操作データを送信し、他の装置において生成された左仮想世界画像および右仮想世界画像をゲーム装置１０が受信して、受信した画像を上側ＬＣＤ２２に立体視表示する処理をゲーム装置１０で行うことが考えられる。このように、上記処理ステップの少なくとも一部を他の装置で行うことによって、上述した表示制御処理と同様の処理が可能となる。上述した表示制御処理は、少なくとも１つの情報処理装置により構成される情報処理システムに含まれる１つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施形態においては、ゲーム装置１０の情報処理部３１が所定のプログラムを実行することによって、上述したフローチャートによる処理が行われたが、ゲーム装置１０が備える専用回路によって上記処理の一部または全部が行われてもよい。
【０１５５】
また、上述したゲーム装置１０の形状や、それに設けられている各種操作ボタン１４、アナログスティック１５、タッチパネル１３の形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、上述した表示制御処理で用いられる処理順序、設定値、判定に用いられる値等は、単なる一例に過ぎず他の順序や値であっても、本発明を実現できることは言うまでもない。
【０１５６】
また、上記表示制御プログラム（ゲームプログラム）は、外部メモリ４５やデータ保存用外部メモリ４６等の外部記憶媒体を通じてゲーム装置１０に供給されるだけでなく、有線または無線の通信回線を通じてゲーム装置１０に供給されてもよい。また、上記プログラムは、ゲーム装置１０内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、ＣＤ−ＲＯＭ、ＤＶＤ、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープなどでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを記憶する揮発性メモリでもよい。
【０１５７】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書（定義を含めて）が優先する。
【産業上の利用可能性】
【０１５８】
本発明に係る表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法は、立体視可能な画像を表示する場合に奥行き感を強調することのでき、各種立体視画像を表示装置に表示する処理等を行う表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法等として有用である。
【符号の説明】
【０１５９】
１０…ゲーム装置
１１…下側ハウジング
１２…下側ＬＣＤ
１３…タッチパネル
１４…操作ボタン
１５…アナログスティック
１６…ＬＥＤ
１７…挿入口
１８…マイクロフォン用孔
１９…無線スイッチ
２１…上側ハウジング
２２…上側ＬＣＤ
２３…外側撮像部
２３ａ…外側左撮像部
２３ｂ…外側右撮像部
２４…内側撮像部
２５…３Ｄ調整スイッチ
２６…３Ｄインジケータ
２８…タッチペン
３１…情報処理部
３１１…ＣＰＵ
３１２…ＧＰＵ
３１３…ＶＲＡＭ
３２…メインメモリ
３３…外部メモリＩ／Ｆ
３４…データ保存用外部メモリＩ／Ｆ
３５…データ保存用内部メモリ
３６…無線通信モジュール
３７…ローカル通信モジュール
３８…ＲＴＣ
３９…加速度センサ
４０…角速度センサ
４１…電源回路
４２…Ｉ／Ｆ回路
４３…マイク
４４…スピーカ
４５…外部メモリ
４６…データ保存用外部メモリ
【図１】
0005698529.tif 000002
【図２】
0005698529.tif 000003
【図３Ａ】
0005698529.tif 000004
【図３Ｂ】
0005698529.tif 000005
【図３Ｃ】
0005698529.tif 000006
【図３Ｄ】
0005698529.tif 000007
【図４】
0005698529.tif 000008
【図５】
0005698529.tif 000009
【図６】
0005698529.tif 000010
【図７】
0005698529.tif 000011
【図８】
0005698529.tif 000012
【図９】
0005698529.tif 000013
【図１０】
0005698529.tif 000014
【図１１】
0005698529.tif 000015
【図１２】
0005698529.tif 000016
【図１３】
0005698529.tif 000017
【図１４】
0005698529.tif 000018
【図１５】
0005698529.tif 000019
【図１６】
0005698529.tif 000020