(57)【特許請求の範囲】
【請求項１】
立体視表示可能な表示装置に、仮想ステレオカメラで撮像した仮想３次元空間の立体視画像を表示する情報処理装置のコンピュータで実行される情報処理プログラムであって、
前記コンピュータを、
前記仮想３次元空間内において、前記仮想ステレオカメラの撮像範囲内に優先表示オブジェクトを配置する優先表示オブジェクト配置手段と、
前記仮想ステレオカメラで前記仮想３次元空間を撮像して立体視画像を描画する立体視画像描画手段と、
前記立体視画像描画手段によって描画された立体視画像を前記表示装置に表示させる表示制御手段として機能させ、
前記立体視画像描画手段は、前記優先表示オブジェクトを、前記優先表示オブジェクトよりも手前側に位置する所定のオブジェクトよりも優先させて描画すると共に、当該所定のオブジェクトに重なる部分が半透明となるよう描画する、情報処理プログラム。
【請求項２】
前記立体視画像描画手段は、前記所定のオブジェクトが優先される優先順位で前記優先表示オブジェクトを描画し、さらに前記優先表示オブジェクトが優先される優先順位で、かつ半透明で前記優先表示オブジェクトを描画することによって、前記重なる部分が半透明となるような描画を行う、請求項１に記載の情報処理プログラム。
【請求項３】
前記優先表示オブジェクトは、第１のオブジェクトと、半透明な第２のオブジェクトからなり、
前記立体視画像描画手段は、前記所定のオブジェクトが優先される優先順位で前記第１のオブジェクトを描画し、さらに前記優先表示オブジェクトが優先される優先順位で、前記第２のオブジェクトを描画する、請求項２に記載の情報処理プログラム。
【請求項４】
前記コンピュータを、ユーザからの入力を受け付ける入力受付手段として更に機能させ、
前記優先表示オブジェクト配置手段は、更に、前記入力受付手段によって受け付けた入力に基づいて、前記仮想３次元空間に配置した前記優先表示オブジェクトを移動させる、請求項１ないし３のいずれかに記載の情報処理プログラム。
【請求項５】
前記コンピュータをさらに、ユーザオブジェクトを移動させるユーザオブジェクト配置手段として機能させる、請求項１ないし４のいずれかに記載の情報処理プログラム。
【請求項６】
前記優先表示オブジェクトは、前記仮想３次元空間内の位置を指示するための指示オブジェクトである、請求項１ないし５のいずれかに記載の情報処理プログラム。
【請求項７】
立体視表示可能な表示装置に、仮想ステレオカメラで撮像した仮想３次元空間の立体視画像を表示する情報処理装置であって、
前記仮想３次元空間内において、前記仮想ステレオカメラの撮像範囲内に優先表示オブジェクトを配置する優先表示オブジェクト配置手段と、
前記仮想ステレオカメラで前記仮想３次元空間を撮像して立体視画像を描画する立体視画像描画手段と、
前記立体視画像描画手段によって描画された立体視画像を前記表示装置に表示させる表示制御手段とを備え、
前記立体視画像描画手段は、前記優先表示オブジェクトを、前記優先表示オブジェクトよりも手前側に位置する所定のオブジェクトよりも優先させて描画すると共に、当該所定のオブジェクトに重なる部分が半透明となるよう描画する、情報処理装置。
【請求項８】
立体視表示可能な表示装置に、仮想ステレオカメラで撮像した仮想３次元空間の立体視画像を表示する情報処理システムであって、
前記仮想３次元空間内において、前記仮想ステレオカメラの撮像範囲内に優先表示オブジェクトを配置する優先表示オブジェクト配置手段と、
前記仮想ステレオカメラで前記仮想３次元空間を撮像して立体視画像を描画する立体視画像描画手段と、
前記立体視画像描画手段によって描画された立体視画像を前記表示装置に表示させる表示制御手段とを備え、
前記立体視画像描画手段は、前記優先表示オブジェクトを、前記優先表示オブジェクトよりも手前側に位置する所定のオブジェクトよりも優先させて描画すると共に、当該所定のオブジェクトに重なる部分が半透明となるよう描画する、情報処理システム。
【請求項９】
立体視表示可能な表示装置に、仮想ステレオカメラで撮像した仮想３次元空間の立体視画像を表示する情報処理方法であって、
前記仮想３次元空間内において、前記仮想ステレオカメラの撮像範囲内に優先表示オブジェクトを配置する優先表示オブジェクト配置ステップと、
前記仮想ステレオカメラで前記仮想３次元空間を撮像して立体視画像を描画する立体視画像描画ステップと、
前記立体視画像描画ステップによって描画された立体視画像を前記表示装置に表示させる表示制御ステップとを備え、
前記立体視画像描画ステップでは、前記優先表示オブジェクトを、前記優先表示オブジェクトよりも手前側に位置する所定のオブジェクトよりも優先させて描画すると共に、当該所定のオブジェクトに重なる部分が半透明となるよう描画する、情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理プログラム、情報処理装置、情報処理方法及び情報処理システムに関し、より特定的には、立体視表示を実現する情報処理プログラム、情報処理装置、情報処理方法及び情報処理システムに関する。
【背景技術】
【０００２】
従来、仮想３次元空間内で進行されるシューティングゲームにおいて、敵機を攻撃（射撃）するための指標となる照準が表示画面に表示されるものがある（例えば特許文献１参照）。この照準は、仮想３次元空間が描画された２次元平面上に描画され、表示画面上に常に表示されつつユーザからの入力に応じて上下左右に移動していた。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−２９５９３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記した従来の技術を用いて立体視表示を行った場合、仮想３次元空間が描画された２次元平面上に照準オブジェクトが描画されることになる。このことから、照準オブジェクトが他の全てのオブジェクトよりも手前に在るようにユーザに視認されてしまい、非常に不自然な立体視表示となってしまう。
【０００５】
これを回避するために、照準オブジェクトを、他のオブジェクトと同様に仮想３次元空間に配置して当該仮想３次元空間を描画（撮像）した場合、照準オブジェクトが前方（奥行き方向）に在るように視認され、自然な立体視表示となる。しかし、このようにした場合、照準オブジェクトよりも手前に他のオブジェクトが存在する場合には、この照準オブジェクトが隠れて描画されないこととなり、照準としての機能を損なってしまうこととなる。
【０００６】
それ故に、本発明の主たる目的は、仮想３次元空間を立体視表示するに際して、仮想３次元空間内を指示する指示オブジェクト（典型的には照準オブジェクト）を、この指示する機能を損なうことなく、又、奥行き感を持たせて自然に立体視表示することができる情報処理プログラム等を提供することである。
【課題を解決するための手段】
【０００７】
本発明は、上述の課題を解決するために、以下の構成を採用した。
【０００８】
立体視表示可能な表示装置に、仮想ステレオカメラで撮像した仮想３次元空間の立体視画像を表示する情報処理装置のコンピュータで実行される情報処理プログラムであって、コンピュータを、優先表示オブジェクト配置手段と、立体視画像描画手段と、表示制御手段として機能させる。優先表示オブジェクト配置手段は、仮想３次元空間内において、仮想ステレオカメラの撮像範囲内に優先表示オブジェクトを配置する。立体視画像描画手段は、仮想ステレオカメラで仮想３次元空間を撮像して立体視画像を描画する。表示制御手段は、立体視画像生描画手段によって生成された立体視画像を表示装置に表示させる。そして、立体視画像描画手段は、優先表示オブジェクトを手前側のオブジェクトよりも優先させて描画すると共に、手前側のオブジェクトに重なる部分が半透明となるよう描画する。
【０００９】
この構成によれば、優先表示オブジェクトを、手前側のオブジェクトよりも優先させて描画すると共に、手前側のオブジェクトに重なる部分が半透明となるよう描画することで、優先表示オブジェクトを視差によって奥側に見せることと、常に表示されるようにすることの両方が可能となり、かつ自然な見え方で両立させることができる。
【００１０】
また、立体視画像描画手段は、手前側のオブジェクトが優先される優先順位で優先表示オブジェクトを描画し、さらに前記優先表示オブジェクトが優先される優先順位で、かつ半透明で前記優先表示オブジェクトを描画することによって、前記重なる部分が半透明となるような描画を行うようにしてもよい。特に、優先表示オブジェクトを第１のオブジェクトと、第１のオブジェクトと同一で半透明な第２のオブジェクトから構成し、手前定のオブジェクトが優先される優先順位で第１のオブジェクトを描画し、さらに優先表示オブジェクトが優先される優先順位で、前記第２のオブジェクトを描画するようにしてもよい。優先順位は、たとえばＺバッファを用いた手法で設定することができ、通常どおりのＺテストによって描画を行った後、Ｚテストの結果が反対になるような設定において、再度半透明な優先表示オブジェクトを描画するようにすればよい。
【００１１】
この構成によれば、優先表示オブジェクトが手前のオブジェクトと重なるか否か判定しなくとも、Ｚバッファ法を用いた描画処理によって、重なる部分を半透明にして表示させることができる。
【００１２】
また、情報処理プログラムは、コンピュータを、ユーザからの入力を受け付ける入力受付手段として更に機能させ、優先表示オブジェクト配置手段は、更に、入力受付手段によって受け付けた入力に基づいて、仮想３次元空間に配置した優先表示オブジェクトを移動させてもよい。
【００１３】
この構成によれば、ユーザは、優先表示オブジェクトを操作して移動させることができる。
【００１４】
また、ユーザオブジェクト配置手段は、更に、入力受付手段によって受け付けた入力に基づいて、ユーザオブジェクトを移動させてもよい。
【００１５】
この構成によれば、ユーザは、ユーザオブジェクトを操作して移動させることができる。
【００１６】
また、優先表示オブジェクトは、仮想３次元空間内の位置を指示するための指示オブジェクトであってもよい。
【００１７】
この構成によれば、ユーザは、指示オブジェクトによって指示される、仮想３次元空間内の奥行き位置も含めた位置（指示位置）を認識することができる。
【００１８】
以上では、情報処理プログラムとして本発明を構成する場合について記載した。しかし、本発明は、情報処理装置、情報処理方法、又は情報処理システムとして構成されてもよい。
【発明の効果】
【００１９】
本発明によれば、仮想３次元空間を立体視表示するに際して、仮想３次元空間内を指示する指示オブジェクト（典型的には照準オブジェクト）を、この指示する機能を損なうことなく、又、奥行き感を持たせて自然に立体視表示することができる情報処理プログラム等を提供することができる。
【図面の簡単な説明】
【００２０】
【図１】開状態におけるゲーム装置１０の正面図
【図２】閉状態におけるゲーム装置１０の左側面図、正面図、右側面図および背面図
【図３】ゲーム装置１０の内部構成を示すブロック図
【図４】仮想３次元空間の一例および当該仮想３次元空間が仮想ステレオカメラで撮像された画像（ユーザが視認する立体視画像）を示す図
【図５】仮想３次元空間の一例および当該仮想３次元空間が仮想ステレオカメラで撮像された画像（ユーザが視認する立体視画像）を示す図
【図６】仮想３次元空間の一例および当該仮想３次元空間が仮想ステレオカメラで撮像された画像（ユーザが視認する立体視画像）を示す図
【図７】ゲーム装置１０のメインメモリ３２のメモリマップを示す図
【図８】ゲーム装置１０によって実行されるゲーム処理の一例を示すフローチャート
【図９】図８のステップＳ２の描画処理の一例を示すフローチャート
【図１０】仮想３次元空間の一例を示す図
【図１１】仮想３次元空間の一例および当該仮想３次元空間が仮想ステレオカメラで撮像された画像（ユーザが視認する立体視画像）を示す図
【発明を実施するための形態】
【００２１】
（一実施形態）
以下、本発明の一実施形態に係る情報処理装置であるゲーム装置について説明する。なお、本発明は、このような装置に限定されるものではなく、このような装置において実行される情報処理プログラムであってもよく、このような装置の機能を実現する情報処理システムであってもよい。更には、本発明は、このような装置における情報処理方法であってもよい。
【００２２】
（ゲーム装置の外観構成）
以下、本発明の一実施形態に係るゲーム装置について説明する。図１および図２は、ゲーム装置１０の外観を示す平面図である。ゲーム装置１０は携帯型のゲーム装置であり、図１および図２に示すように折り畳み可能に構成されている。図１は、開いた状態（開状態）におけるゲーム装置１０を示し、図２は、閉じた状態（閉状態）におけるゲーム装置１０を示している。図１は、開状態におけるゲーム装置１０の正面図である。ゲーム装置１０は、撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置１０は、交換可能なメモリカード内に記憶され、または、サーバや他のゲーム装置から受信したゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラで撮像した画像などのコンピュータグラフィックス処理により生成された画像を画面に表示したりすることができる。
【００２３】
まず、図１および図２を参照して、ゲーム装置１０の外観構成について説明する。図１および図２に示されるように、ゲーム装置１０は、下側ハウジング１１および上側ハウジング２１を有する。下側ハウジング１１と上側ハウジング２１とは、開閉可能（折り畳み可能）に接続されている。
【００２４】
（下側ハウジングの説明）
まず、下側ハウジング１１の構成について説明する。図１および図２に示すように、下側ハウジング１１には、下側ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）１２、タッチパネル１３、各操作ボタン１４Ａ〜１４Ｌ、アナログスティック１５、ＬＥＤ１６Ａ〜１６Ｂ、挿入口１７、および、マイクロフォン用孔１８が設けられる。以下、これらの詳細について説明する。
【００２５】
図１に示すように、下側ＬＣＤ１２は下側ハウジング１１に収納される。下側ＬＣＤ１２の画素数は、例えば、３２０ｄｏｔ×２４０ｄｏｔ（横×縦）であってもよい。下側ＬＣＤ１２は、後述する上側ＬＣＤ２２とは異なり、画像を（立体視可能ではなく）平面的に表示する表示装置である。なお、本実施形態では表示装置としてＬＣＤを用いているが、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側ＬＣＤ１２として、任意の解像度の表示装置を利用することができる。
【００２６】
図１に示されるように、ゲーム装置１０は、入力装置として、タッチパネル１３を備えている。タッチパネル１３は、下側ＬＣＤ１２の画面上に装着されている。なお、本実施形態では、タッチパネル１３は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。本実施形態では、タッチパネル１３として、下側ＬＣＤ１２の解像度と同解像度（検出精度）のものを利用する。ただし、必ずしもタッチパネル１３の解像度と下側ＬＣＤ１２の解像度が一致している必要はない。また、下側ハウジング１１の上側面には挿入口１７（図１および図２（ｄ）に示す点線）が設けられている。挿入口１７は、タッチパネル１３に対する操作を行うために用いられるタッチペン２８を収納することができる。なお、タッチパネル１３に対する入力は通常タッチペン２８を用いて行われるが、タッチペン２８に限らずユーザの指でタッチパネル１３に対する入力をすることも可能である。
【００２７】
各操作ボタン１４Ａ〜１４Ｌは、所定の入力を行うための入力装置である。図１に示されるように、下側ハウジング１１の内側面（主面）には、各操作ボタン１４Ａ〜１４Ｌのうち、十字ボタン１４Ａ（方向入力ボタン１４Ａ）、ボタン１４Ｂ、ボタン１４Ｃ、ボタン１４Ｄ、ボタン１４Ｅ、電源ボタン１４Ｆ、セレクトボタン１４Ｊ、ＨＯＭＥボタン１４Ｋ、およびスタートボタン１４Ｌが、設けられる。十字ボタン１４Ａは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン１４Ａ〜１４Ｅ、セレクトボタン１４Ｊ、ＨＯＭＥボタン１４Ｋ、およびスタートボタン１４Ｌには、ゲーム装置１０が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン１４Ａは選択操作等に用いられ、各操作ボタン１４Ｂ〜１４Ｅは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン１４Ｆは、ゲーム装置１０の電源をオン／オフするために用いられる。
【００２８】
アナログスティック１５は、方向を指示するデバイスである。アナログスティック１５は、そのキートップが、下側ハウジング１１の内側面に平行にスライドするように構成されている。アナログスティック１５は、ゲーム装置１０が実行するプログラムに応じて機能する。例えば、仮想３次元空間に所定のオブジェクトが登場するゲームがゲーム装置１０によって実行される場合、アナログスティック１５は、当該所定のオブジェクトを仮想３次元空間内で移動させるための入力装置として機能する。この場合において、所定のオブジェクトはアナログスティック１５のキートップがスライドした方向に移動される。なお、アナログスティック１５として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いても良い。
【００２９】
また、下側ハウジング１１の内側面には、マイクロフォン用孔１８が設けられる。マイクロフォン用孔１８の下部には後述する音声入力装置としてのマイク４２（図３参照）が設けられ、当該マイク４２がゲーム装置１０の外部の音を検出する。
【００３０】
図２（ａ）は閉状態におけるゲーム装置１０の左側面図であり、図２（ｂ）は閉状態におけるゲーム装置１０の正面図であり、図２（ｃ）は閉状態におけるゲーム装置１０の右側面図であり、図２（ｄ）は閉状態におけるゲーム装置１０の背面図である。図２（ｂ）および（ｄ）に示されるように、下側ハウジング１１の上側面には、Ｌボタン１４ＧおよびＲボタン１４Ｈが設けられている。Ｌボタン１４ＧおよびＲボタン１４Ｈは、例えば、撮像部のシャッターボタン（撮影指示ボタン）として機能することができる。また、図２（ａ）に示されるように、下側ハウジング１１の左側面には、音量ボタン１４Ｉが設けられる。音量ボタン１４Ｉは、ゲーム装置１０が備えるスピーカの音量を調整するために用いられる。
【００３１】
図２（ａ）に示されるように、下側ハウジング１１の左側面には開閉可能なカバー部１１Ｃが設けられる。このカバー部１１Ｃの内側には、ゲーム装置１０とデータ保存用外部メモリ４５とを電気的に接続するためのコネクタ（図示せず）が設けられる。データ保存用外部メモリ４５は、コネクタに着脱自在に装着される。データ保存用外部メモリ４５は、例えば、ゲーム装置１０によって撮像された画像のデータを記憶（保存）するために用いられる。
【００３２】
また、図２（ｄ）に示されるように、下側ハウジング１１の上側面には、ゲーム装置１０とゲームプログラムを記録した外部メモリ４４を挿入するための挿入口１１Ｄが設けられ、その挿入口１１Ｄの内部には、外部メモリ４４と電気的に着脱自在に接続するためのコネクタ（図示せず）が設けられる。当該外部メモリ４４がゲーム装置１０に接続されることにより、所定のゲームプログラムが実行される。
【００３３】
また、図１および図２（ｃ）に示されるように、下側ハウジング１１の下側面にはゲーム装置１０の電源のＯＮ／ＯＦＦ状況をユーザに通知する第１ＬＥＤ１６Ａ、下側ハウジング１１の右側面にはゲーム装置１０の無線通信の確立状況をユーザに通知する第２ＬＥＤ１６Ｂが設けられる。ゲーム装置１０は他の機器との間で無線通信を行うことが可能であり、第２ＬＥＤ１６Ｂは、無線通信が確立している場合に点灯する。ゲーム装置１０は、例えば、ＩＥＥＥ８０２．１１ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。下側ハウジング１１の右側面には、この無線通信の機能を有効／無効にする無線スイッチ１９が設けられる（図２（ｃ）参照）。
【００３４】
なお、図示は省略するが、下側ハウジング１１には、ゲーム装置１０の電源となる充電式電池が収納され、下側ハウジング１１の側面（例えば、上側面）に設けられた端子を介して当該電池を充電することができる。
【００３５】
（上側ハウジングの説明）
次に、上側ハウジング２１の構成について説明する。図１および図２に示すように、上側ハウジング２１には、上側ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）２２、外側撮像部２３（外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂ）、内側撮像部２４、３Ｄ調整スイッチ２５、および、３Ｄインジケータ２６が設けられる。以下、これらの詳細について説明する。
【００３６】
図１に示すように、上側ＬＣＤ２２は上側ハウジング２１に収納される。上側ＬＣＤ２２の画素数は、例えば、８００ｄｏｔ×２４０ｄｏｔ（横×縦）であってもよい。なお、本実施形態では上側ＬＣＤ２２は液晶表示装置であるとしたが、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置などが利用されてもよい。また、上側ＬＣＤ２２として、任意の解像度の表示装置を利用することができる。
【００３７】
上側ＬＣＤ２２は、立体視可能な画像（立体視画像）を表示することが可能な表示装置である。また、本実施例では、実質的に同一の表示領域を用いて左目用画像と右目用画像が表示される。具体的には、左目用画像と右目用画像が所定単位で（例えば、１列ずつ）横方向に交互に表示される方式の表示装置である。または、左目用画像と右目用画像とが交互に表示される方式の表示装置であってもよい。また、本実施例では、裸眼立体視可能な表示装置である。そして、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式（視差バリア方式）のものが用いられる。本実施形態では、上側ＬＣＤ２２はパララックスバリア方式のものとする。上側ＬＣＤ２２は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像（立体画像）を表示する。すなわち、上側ＬＣＤ２２は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像を視認させることにより、ユーザにとって立体感のある立体画像（立体視可能な画像）を表示することができる。また、上側ＬＣＤ２２は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる（上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである）。このように、上側ＬＣＤ２２は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する（平面視画像を表示する）平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する３Ｄ調整スイッチ２５によって行われる。
【００３８】
外側撮像部２３は、上側ハウジング２１の外側面（上側ＬＣＤ２２が設けられた主面と反対側の背面）２１Ｄに設けられた２つの撮像部（２３ａおよび２３ｂ）の総称である。外側撮像部（左）２３ａと外側撮像部（右）２３ｂの撮像方向は、いずれも当該外側面２１Ｄの外向きの法線方向である。外側撮像部（左）２３ａと外側撮像部（右）２３ｂとは、ゲーム装置１０が実行するプログラムによって、ステレオカメラとして使用することが可能である。外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂは、それぞれ所定の共通の解像度を有する撮像素子（例えば、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等）と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【００３９】
内側撮像部２４は、上側ハウジング２１の内側面（主面）２１Ｂに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部２４は、所定の解像度を有する撮像素子（例えば、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等）と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【００４０】
３Ｄ調整スイッチ２５は、スライドスイッチであり、上述のように上側ＬＣＤ２２の表示モードを切り替えるために用いられるスイッチである。また、３Ｄ調整スイッチ２５は、上側ＬＣＤ２２に表示された立体視可能な画像（立体画像）の立体感を調整するために用いられる。３Ｄ調整スイッチ２５のスライダ２５ａは、所定方向（上下方向）の任意の位置にスライド可能であり、当該スライダ２５ａの位置に応じて上側ＬＣＤ２２の表示モードが設定される。また、スライダ２５ａの位置に応じて、立体画像の見え方が調整される。具体的には、スライダ２５ａの位置に応じて、右目用画像および左目用画像の横方向の位置のずれ量が調整される。
【００４１】
３Ｄインジケータ２６は、上側ＬＣＤ２２が立体表示モードか否かを示す。３Ｄインジケータ２６は、ＬＥＤであり、上側ＬＣＤ２２の立体表示モードが有効の場合に点灯する。なお、３Ｄインジケータ２６は、上側ＬＣＤ２２が立体表示モードになっており、かつ、立体視画像を表示するプログラム処理が実行されているときに限り、点灯するようにしてもよい。
【００４２】
また、上側ハウジング２１の内側面には、スピーカ孔２１Ｅが設けられる。後述するスピーカ４３からの音声がこのスピーカ孔２１Ｅから出力される。
【００４３】
（ゲーム装置１０の内部構成）
次に、図３を参照して、ゲーム装置１０の内部の電気的構成について説明する。図３は、ゲーム装置１０の内部構成を示すブロック図である。図３に示すように、ゲーム装置１０は、上述した各部に加えて、情報処理部３１、メインメモリ３２、外部メモリインターフェイス（外部メモリＩ／Ｆ）３３、データ保存用外部メモリＩ／Ｆ３４、データ保存用内部メモリ３５、無線通信モジュール３６、ローカル通信モジュール３７、リアルタイムクロック（ＲＴＣ）３８、加速度センサ３９、電源回路４０、およびインターフェイス回路（Ｉ／Ｆ回路）４１等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング１１（または上側ハウジング２１でもよい）内に収納される。
【００４４】
情報処理部３１は、所定のプログラムを実行するためのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１１、画像処理を行うＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１２等を含む情報処理手段である。情報処理部３１のＣＰＵ３１１は、ゲーム装置１０内のメモリ（例えば外部メモリＩ／Ｆ３３に接続された外部メモリ４４やデータ保存用内部メモリ３５）に記憶されているプログラムを実行することによって、当該プログラムに応じた処理を実行する。なお、情報処理部３１のＣＰＵ３１１によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部３１は、ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）３１３を含む。情報処理部３１のＧＰＵ３１２は、情報処理部３１のＣＰＵ３１１からの命令に応じて画像を生成し、ＶＲＡＭ３１３に描画する。そして、情報処理部３１のＧＰＵ３１２は、ＶＲＡＭ３１３に描画された画像を上側ＬＣＤ２２及び／又は下側ＬＣＤ１２に出力し、上側ＬＣＤ２２及び／又は下側ＬＣＤ１２に当該画像が表示される。
【００４５】
情報処理部３１には、メインメモリ３２、外部メモリＩ／Ｆ３３、データ保存用外部メモリＩ／Ｆ３４、および、データ保存用内部メモリ３５が接続される。外部メモリＩ／Ｆ３３は、外部メモリ４４を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリＩ／Ｆ３４は、データ保存用外部メモリ４５を着脱自在に接続するためのインターフェイスである。
【００４６】
メインメモリ３２は、情報処理部３１（のＣＰＵ３１１）のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ３２は、上記プログラムに基づく処理に用いられる各種データを一時的に記憶したり、外部（外部メモリ４４や他の機器等）から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ３２として例えばＰＳＲＡＭ（Ｐｓｅｕｄｏ−ＳＲＡＭ）を用いる。
【００４７】
外部メモリ４４は、情報処理部３１によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ４４は、例えば読み取り専用の半導体メモリで構成される。外部メモリ４４が外部メモリＩ／Ｆ３３に接続されると、情報処理部３１は外部メモリ４４に記憶されたプログラムを読み込むことができる。情報処理部３１が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ４５は、不揮発性の読み書き可能なメモリ（例えばＮＡＮＤ型フラッシュメモリ）で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ４５には、外側撮像部２３で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ４５がデータ保存用外部メモリＩ／Ｆ３４に接続されると、情報処理部３１はデータ保存用外部メモリ４５に記憶された画像を読み込み、上側ＬＣＤ２２及び／又は下側ＬＣＤ１２に当該画像を表示することができる。
【００４８】
データ保存用内部メモリ３５は、読み書き可能な不揮発性メモリ（例えばＮＡＮＤ型フラッシュメモリ）で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ３５には、無線通信モジュール３６を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【００４９】
無線通信モジュール３６は、例えばＩＥＥＥ８０２．１１ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。また、ローカル通信モジュール３７は、所定の通信方式（例えば独自プロトコルによる通信や、赤外線通信）により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール３６およびローカル通信モジュール３７は情報処理部３１に接続される。情報処理部３１は、無線通信モジュール３６を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール３７を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【００５０】
また、情報処理部３１には、加速度センサ３９が接続される。加速度センサ３９は、３軸（ｘｙｚ軸）方向に沿った直線方向の加速度（直線加速度）の大きさを検出する。加速度センサ３９は、下側ハウジング１１の内部に設けられる。加速度センサ３９は、図１に示すように、下側ハウジング１１の長辺方向をｘ軸、下側ハウジング１１の短辺方向をｙ軸、下側ハウジング１１の内側面（主面）に対して垂直な方向をｚ軸として、各軸の直線加速度の大きさを検出する。なお、加速度センサ３９は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ３９は１軸又は２軸方向を検出する加速度センサであってもよい。情報処理部３１は、加速度センサ３９が検出した加速度を示すデータ（加速度データ）を受信して、ゲーム装置１０の姿勢や動きを検出することができる。なお、情報処理部３１には、上記した加速度センサ３９に加えて（又はその代わりに）角度センサや角速度センサ等の他のセンサが接続され、このセンサによってゲーム装置１０の姿勢や動きを検出してもよい。
【００５１】
また、情報処理部３１には、ＲＴＣ３８および電源回路４０が接続される。ＲＴＣ３８は、時間をカウントして情報処理部３１に出力する。情報処理部３１は、ＲＴＣ３８によって計時された時間に基づき現在時刻（日付）を計算する。電源回路４０は、ゲーム装置１０が有する電源（下側ハウジング１１に収納される上記充電式電池）からの電力を制御し、ゲーム装置１０の各部品に電力を供給する。
【００５２】
また、情報処理部３１には、ＬＥＤ１６（１６Ａ、１６Ｂ）が接続される。情報処理部３１は、ＬＥＤ１６を用いて、ゲーム装置１０の電源のＯＮ／ＯＦＦ状況をユーザに通知し、又、ゲーム装置１０の無線通信の確立状況をユーザに通知する。
【００５３】
また、情報処理部３１には、Ｉ／Ｆ回路４１が接続される。Ｉ／Ｆ回路４１には、マイク４２およびスピーカ４３が接続される。具体的には、Ｉ／Ｆ回路４１には、図示しないアンプを介してスピーカ４３が接続される。マイク４２は、ユーザの音声を検知して音声信号をＩ／Ｆ回路４１に出力する。アンプは、Ｉ／Ｆ回路４１からの音声信号を増幅し、音声をスピーカ４３から出力させる。また、タッチパネル１３はＩ／Ｆ回路４１に接続される。Ｉ／Ｆ回路４１は、マイク４２およびスピーカ４３（アンプ）の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するＡ／Ｄ変換およびＤ／Ａ変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル１３からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部３１に出力する。タッチ位置データは、タッチパネル１３の入力面において入力が行われた位置の座標を示す。なお、タッチパネル制御回路は、タッチパネル１３からの信号の読み込み、および、タッチ位置データの生成を所定時間に１回の割合で行う。情報処理部３１は、タッチ位置データを取得することにより、タッチパネル１３に対して入力が行われた位置を知ることができる。
【００５４】
操作ボタン１４は、上記各操作ボタン１４Ａ〜１４Ｌからなり、情報処理部３１に接続される。操作ボタン１４から情報処理部３１へは、各操作ボタン１４Ａ〜１４Ｉに対する入力状況（押下されたか否か）を示す操作データが出力される。情報処理部３１は、操作ボタン１４から操作データを取得することによって、操作ボタン１４に対する入力に従った処理を実行する。
【００５５】
アナログスティック１５は情報処理部３１に接続される。アナログスティック１５から情報処理部３１へは、アナログスティック１５に対するアナログ入力（操作方向及び操作量）を示す操作データが出力される。情報処理部３１は、アナログスティック１５から操作データを取得することによって、アナログスティック１５に対する入力に従った処理を実行する。
【００５６】
下側ＬＣＤ１２および上側ＬＣＤ２２は情報処理部３１に接続される。下側ＬＣＤ１２および上側ＬＣＤ２２は、情報処理部３１（のＧＰＵ３１２）の指示に従って画像を表示する。本実施形態では、情報処理部３１は、上側ＬＣＤ２２に立体視画像（立体視可能な画像）を表示させる。
【００５７】
具体的には、情報処理部３１は、上側ＬＣＤ２２のＬＣＤコントローラ（図示せず）と接続され、当該ＬＣＤコントローラに対して視差バリアのＯＮ／ＯＦＦを制御する。上側ＬＣＤ２２の視差バリアがＯＮになっている場合、情報処理部３１のＶＲＡＭ３１３に格納された右目用画像と左目用画像とが、上側ＬＣＤ２２に出力される。より具体的には、ＬＣＤコントローラは、右目用画像について縦方向に１ライン分の画素データを読み出す処理と、左目用画像について縦方向に１ライン分の画素データを読み出す処理とを交互に繰り返すことによって、ＶＲＡＭ３１３から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に１ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側ＬＣＤ２２の画面に表示される。そして、上側ＬＣＤ２２の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側ＬＣＤ２２の画面には立体視可能な画像が表示される。
【００５８】
外側撮像部２３および内側撮像部２４は、情報処理部３１に接続される。外側撮像部２３および内側撮像部２４は、情報処理部３１の指示に従って画像を撮像し、撮像した画像データを情報処理部３１に出力する。
【００５９】
３Ｄ調整スイッチ２５は、情報処理部３１に接続される。３Ｄ調整スイッチ２５は、スライダ２５ａの位置に応じた電気信号を情報処理部３１に送信する。
【００６０】
また、３Ｄインジケータ２６は、情報処理部３１に接続される。情報処理部３１は、３Ｄインジケータ２６の点灯を制御する。例えば、情報処理部３１は、上側ＬＣＤ２２が立体表示モードである場合、３Ｄインジケータ２６を点灯させる。以上がゲーム装置１０の内部構成の説明である。
【００６１】
（本実施形態における特徴的動作の概要）
次に、図４〜図６を参照して、本実施形態における特徴的動作の概要について説明する。図４〜図６は、それぞれ、仮想３次元空間の一例および当該仮想３次元空間が後述する仮想ステレオカメラ１０６で撮像された画像（ユーザが視認する立体視画像）を示す図である。なお、図４〜図６及び図１１において、（２）に示す図は、それぞれ、実際は、両画像間に視差が設定された左目用画像及び右目用画像から成る立体視画像であってユーザの両目によって立体視される画像であるが、図面表現の都合で平面的な画像として記載している。
【００６２】
本実施形態では、一例として、いわゆる３人称視点で進行されるシューティングゲームを想定しており、図４（１）に示すように、ユーザは、仮想３次元空間において自機オブジェクト１０１（ユーザオブジェクトと呼んでもよい）を操作して敵機オブジェクト１０３ａ等を射撃する。そして、本実施形態では、仮想３次元空間において自機オブジェクト１０１の後方に配置された仮想ステレオカメラ１０６（以下、単に、仮想カメラ１０６という）によって仮想３次元空間を撮像して左目用画像及び右目用画像を生成し、これらの画像を上側ＬＣＤ２２に立体視画像として表示させる。以下、具体的に説明する。
【００６３】
図４（１）に示すように、仮想３次元空間には、ユーザによって操作される自機オブジェクト１０１と、地面等の地形オブジェクト１０２と、射撃対象である敵機オブジェクト１０３ａ等と、ビル等の建造物オブジェクト１０４と、自機オブジェクト１０１による射撃の方向を示す照準オブジェクト１０５と、自機オブジェクト１０１の後方から当該自機オブジェクト１０１が位置する方向を撮像する仮想カメラ１０６とが配置される。
【００６４】
そして、本実施形態では、仮想カメラ１０６によって仮想３次元空間を撮像して立体視画像を生成（描画）するに際して、以下に説明するＺバッファ法を用いる。なお、Ｚバッファ法は、一般的なものであるため、その詳細な説明は省略する。Ｚバッファ法では、表示画像が描画される表示画面を構成する各画素に、色情報の他に、奥行きに関する情報（Ｚ値）を持たせる。Ｚ値は、仮想カメラからの深度（奥行き）を示す値であって、仮想カメラの位置に対応する値が「０．０」であり、仮想カメラから離れるに従って除除に「１．０」に近づく値である。そして、表示画面に表示画像を描画する際に、表示画面の画素毎に、既に設定されているＺ値と、描画しようとするオブジェクトの部分のＺ値とを比較（Ｚテスト）する。後者のＺ値の方が小さい場合には、この画素に、描画しようとするオブジェクトの部分の色を書き込み、後者のＺ値で前者のＺ値を上書きする（更新する）。以上の処理を行うことによって、手前（仮想カメラ側）に在るオブジェクトによって隠されるべき他のオブジェクト（又は他のオブジェクトの部分）を描画しないようにできる。
【００６５】
図４（１）に示すように、照準オブジェクト１０５は、仮想カメラ１０６の撮像方向であって、仮想カメラ１０６から所定距離離れた位置に配置される。また、自機オブジェクト１０１は、仮想カメラ１０６の撮像範囲内であって、仮想カメラ１０６と照準オブジェクト１０５との間であって仮想カメラ１０６より少し前方に配置される。そして、仮想カメラ１０６によって撮像された仮想３次元空間をＺバッファ法を用いて描画する際には、照準オブジェクト１０５のＺ値を、当該照準オブジェクト１０５が仮想カメラ１０６に近づく方向に、所定量だけオフセットする（ずらす）。例えば、描画処理の際に、照準オブジェクト１０５の或る部分のＺ値が「０．７」と算出された場合、この部分のＺ値を、所定量（例えば「０．４」）オフセットして「０．３」にする。ここで、図４（１）に示すように、自機オブジェクト１０１は、仮想カメラ１０６と、上記オフセット後のＺ値に対応する位置（図４（１）の位置Ａ）との間であって、位置Ａから所定距離の位置に配置される。
【００６６】
図４（２）は、図４（１）に示す状態の仮想３次元空間を、Ｚバッファ法を用いて、上記したようにＺ値をオフセットして描画した表示画像（立体視画像）を示している。図４（２）に示すように、照準オブジェクト１０５は、その一部が仮想３次元空間において敵機オブジェクト１０３ａ及び建造物オブジェクト１０４に遮られているにも関わらず（図４（１）参照）、描画されている。これは、図４（１）を用いて説明したように、描画処理の際に算出される照準オブジェクト１０５の各部分のＺ値が、位置Ａに対応する値までオフセットされているからである。
【００６７】
以上のように、本実施形態では、Ｚバッファ法を用いた描画処理において、照準オブジェクト１０５の各部分のＺ値をオフセットして立体視画像を描画する。このことによって、図４（２）に示す立体視画像において、照準オブジェクト１０５を仮想３次元空間内で配置された位置に応じた奥行き感（視差）で描画し、かつ、仮想カメラ１０６と照準オブジェクト１０５との間（但し、位置Ａよりも奥）に位置して照準オブジェクト１０５を遮るオブジェクト（１０３ａ及び１０４）が存在した場合であっても、このオブジェクトに隠されることなく照準オブジェクト１０５を優先して描画することができる。この結果として、照準オブジェクト１０５を、照準機能を失うことなく、又、奥行き感を持たせて自然に立体視表示することができる。
【００６８】
図５（１）は、図４（１）に示した状態から所定時間経過した時点の仮想３次元空間を示す図である。図５（１）に示すように、仮想カメラ１０６、照準オブジェクト１０５、及び自機オブジェクト１０１は、仮想３次元空間において、上記した位置関係を維持して、図４（１）の状態から前方（ｚ軸正方向）に移動している。このことによって、建造物オブジェクト１０４は、仮想カメラ１０６と自機オブジェクト１０１との間に位置することとなっている。なお、敵機オブジェクト１０３ａは、仮想カメラ１０６と位置Ａとの間に位置している。
【００６９】
図５（２）は、図５（１）に示す状態の仮想３次元空間を、Ｚバッファ法を用いて、図４（１）を用いて説明したようにＺ値をオフセットして描画した表示画像（立体視画像）を示している。図５（２）に示すように、照準オブジェクト１０５は、位置Ａよりも奥（ｚ軸正方向）に位置する敵機オブジェクト１０３ｃ（図５（１）参照）には隠されることなく描画され、一方で、位置Ａよりも手前（ｚ軸負方向）に位置する敵機オブジェクト１０３ａ及び建造物オブジェクト１０４（図５（１）参照）には隠されている（遮られている）。
【００７０】
この様に、図５（２）に示す立体視画像において、仮想３次元空間内で配置された位置に応じた奥行き感（視差）で照準オブジェクト１０５を描画し、かつ、仮想カメラ１０６と照準オブジェクト１０５との間（但し、Ａよりも奥）に位置して照準オブジェクト１０５を隠すオブジェクト（１０３ｃ）が存在する場合であっても、このオブジェクトに遮られることなく照準オブジェクト１０５を優先して描画することができる。
【００７１】
一方、照準オブジェクト１０５は、自機オブジェクト１０１と位置Ａとの間に位置して照準オブジェクト１０５を隠すオブジェクト（１０３ａ）には隠されて（遮られて）描画されない。ここで、本実施形態のシューティングゲームでは、自機オブジェクト１０１が、所定距離よりも近くに位置する敵機オブジェクトを射撃して破壊（爆破）した場合には、当該破壊の影響を受けてダメージを受ける設定としている。そして、本実施形態では、図５（１）に示すように自機オブジェクト１０１と位置Ａとの間に間隔を設けることによって、射撃して破壊した場合に自機オブジェクト１０１がダメージを受ける程に近い敵機オブジェクト等に対しては、自機オブジェクト１０１を優先表示（優先描画）しないこととしている。
【００７２】
図６（１）は、図５（１）に示した状態から所定時間経過した時点の仮想３次元空間を示す図である。図６（１）に示すように、仮想カメラ１０６、照準オブジェクト１０５、及び自機オブジェクト１０１は、仮想３次元空間において、図５（１）の状態から前方（ｚ軸正方向）に移動している。このことによって、建造物オブジェクト１０４は仮想カメラ１０６の撮像範囲の外に移動し、地形オブジェクト１０２の山の部分が自機オブジェクト１０１の前方に迫っている。
【００７３】
図６（２）は、図６（１）に示す状態の仮想３次元空間を、Ｚバッファ法を用いて、図４（１）を用いて説明したようにＺ値をオフセットして描画した表示画像（立体視画像）を示している。ここで、本実施形態では、Ｚバッファ法を用いて描画処理を行う際に、照準オブジェクト１０５が地形オブジェクト１０２に隠れる（遮られる）場合であっても、照準オブジェクト１０５を常に描画する。つまり、照準オブジェクト１０５は、地形オブジェクト１０２に対しては常に優先して描画される。具体的には、図６（１）に示す位置Ａの状況（照準オブジェクト１０５の下部が地形オブジェクト１０２に隠れる状況）においても、図６（２）に示すように、照準オブジェクト１０５は、地形オブジェクト１０２に隠れることなく、その全体が描画される。この様にするために、本実施形態では、Ｚバッファ法によって照準オブジェクト１０５のＺ値と地形オブジェクト１０２のＺ値とを描画対象の画素毎に比較（Ｚテスト）して描画処理する際に、前者のＺ値の方が後者のＺ値よりも大きい場合（つまり、照準オブジェクト１０５の方が仮想カメラ１０６から遠い場合）、前者のＺ値の方が後者のＺ値よりも小さい（つまり、照準オブジェクト１０５の方が仮想カメラ１０６から近い）ものとして描画処理を行う。この描画処理の詳細は、図９を用いて後に説明する。
【００７４】
この様に、本実施形態において、照準オブジェクト１０５は、地形オブジェクト１０２に対しては常に優先して描画される。このことによって、例えば図６（１）に示すような自機オブジェクト１０１の前方に山が迫った場合においても、照準オブジェクト１０５は山に隠れることなく奥行き感を持って表示され続けるので、ユーザは、照準オブジェクト１０５を見失うことがない。
【００７５】
以上に説明したように、本実形態によれば、仮想３次元空間を立体視表示するに際して、仮想３次元空間内を指示する指示オブジェクト（照準オブジェクト１０５）を、その機能を損なうことなく、又、奥行き感を持たせて自然に立体視表示することができる。
【００７６】
（ゲーム処理の詳細）
次に、ゲーム装置１０によって実行されるゲーム処理の詳細を説明する。まず、ゲーム処理の際にメインメモリ３２に記憶されるデータについて説明する。図７は、ゲーム装置１０のメインメモリ３２のメモリマップを示す図である。図７に示すように、メインメモリ３２は、プログラム記憶領域４００およびデータ記憶領域５００を含む。プログラム記憶領域４００およびデータ記憶領域５００のデータの一部は、例えば外部メモリ４４に記憶されており、ゲーム処理の実行時にはメインメモリ３２に読み込まれて記憶される。
【００７７】
プログラム記憶領域４００には、後述する図８に示すフローチャートの処理を実行するゲーム処理プログラム４０１や、後述する図９に示すフローチャートの処理を実行する描画処理プログラム４０２等のプログラムが記憶される。
【００７８】
データ記憶領域５００には、操作データ５０１、仮想カメラデータ５０２、照準オブジェクトデータ５０３、Ｚ値オフセットデータ５０４、自機オブジェクトデータ５０５、Ａグループオブジェクトデータ５０６、及びＢグループオブジェクトデータ５０９等が記憶される。
【００７９】
操作データ５０１は、各操作ボタン１４Ａ〜Ｅ、Ｇ〜Ｈ、及び、アナログスティック１５に対して行われたユーザの操作を示すデータである。この操作データ５０１は、例えば、ユーザが自機オブジェクト１０１を上下左右に旋回させる操作を示すデータであったり、ユーザが自機オブジェクト１０１に射撃を行わせる操作を示すデータである。
【００８０】
仮想カメラデータ５０２は、仮想３次元空間における仮想カメラ１０６（図４等参照）の位置、撮像方向、及び撮像画角を示すデータである。
【００８１】
照準オブジェクトデータ５０３は、仮想３次元空間における照準オブジェクト１０５の位置、向き、形状（ポリゴン形状）、及び色彩（テクスチャ）等を示すデータである。
【００８２】
Ｚ値オフセットデータ５０４は、仮想３次元空間をＺバッファ法を用いて描画する際に、照準オブジェクト１０５の仮想カメラ１０６からの深度（奥行き）を示すＺ値（Ｚ＝０．０〜１．０）を、所定量オフセット（ずらす）ために用いられる所定値である。本実施形態では、Ｚ値オフセットデータ５０４は、一例として「０．４」とする。
【００８３】
自機オブジェクトデータ５０５は、仮想３次元空間における自機オブジェクト１０１（図４等参照）の位置、向き、形状（ポリゴン形状）、及び色彩（テクスチャ）等を示すデータである。
【００８４】
Ａグループオブジェクトデータ５０６は、地形オブジェクトデータ５０７及び雲オブジェクトデータ５０８等のグループＡに属するオブジェクトのデータを含むデータである。なお、後述する図９を用いた説明で明らかとなるが、グループＡに属するオブジェクトよりも照準オブジェクト１０５の方が常に優先して描画される。
【００８５】
地形オブジェクトデータ５０７は、地形オブジェクト１０２（図４等参照）の位置、向き、形状（ポリゴン形状）、及び色彩（テクスチャ）等を示すデータである。
【００８６】
雲オブジェクトデータ５０８は、背景を示すオブジェクトの１つである雲オブジェクト（図示せず）の位置、向き、形状（ポリゴン形状）、及び色彩（テクスチャ）等を示すデータである。
【００８７】
Ｂグループオブジェクトデータ５０９は、敵機オブジェクトデータ５１０、建造物オブジェクトデータ５１１、及び弾丸オブジェクトデータ５１２等のグループＢに属するオブジェクトのデータを含むデータである。なお、後述する図９を用いた説明で明らかとなるが、グループＢに属するオブジェクトの位置（深度）によっては、グループＢに属するオブジェクトよりも照準オブジェクト１０５の方が優先して描画される。
【００８８】
敵機オブジェクトデータ５１０は、敵機オブジェクト１０３ａ〜１０３ｃ（図４等参照）の位置、向き、形状（ポリゴン形状）、及び色彩（テクスチャ）等を示すデータである。
【００８９】
建造物オブジェクトデータ５１１は、建造物オブジェクト１０４（図４等参照）の位置、向き、形状（ポリゴン形状）、及び色彩（テクスチャ）等を示すデータである。
【００９０】
弾丸オブジェクトデータ５１２は、自機オブジェクト１０１又は敵機オブジェクト１０３ａ等から発射される弾丸オブジェクト（図示せず）の位置、向き、形状（ポリゴン形状）、及び色彩（テクスチャ）等を示すデータである。
【００９１】
次に、図８を参照して、ゲーム装置１０によって実行されるゲーム処理のフローについて説明する。ゲーム装置１０の電源が投入されると、ゲーム装置１０のＣＰＵ３１１は、データ保存用内部メモリ３５等に記憶されている起動プログラムを実行し、これによってメインメモリ３２等の各ユニットが初期化される。そして、外部メモリ４４に記憶されたゲーム処理プログラム４０１等がメインメモリ３２に読み込まれ、ＣＰＵ３１１によってゲーム処理プログラム４０１が実行される。
【００９２】
図８は、ＣＰＵ３１１によって実行されるゲーム処理のフローチャートの一例である。図８のフローチャートで示す処理は、１フレーム（例えば１／６０秒）毎に繰り返し実行される。なお、以下では、本発明とは直接関連しない処理についての説明は省略する。
【００９３】
まず、ステップＳ１において、ＣＰＵ３１１は、ゲーム処理を実行する。具体的には、ＣＰＵ３１１は、仮想カメラデータ５０２、照準オブジェクトデータ５０３、自機オブジェクトデータ５０５、Ａグループオブジェクトデータ５０６、及びＢグループオブジェクトデータ５０９に基づいて、仮想カメラ１０６、照準オブジェクト１０５、自機オブジェクト１０１、敵機オブジェクト１０３ａ〜１０３ｃ、建造物オブジェクト１０４、及び地形オブジェクト１０２等を、仮想３次元空間に配置する。ここで、図４〜図６を用いて説明したように、照準オブジェクト１０５は、仮想カメラ１０６の撮像方向に、仮想カメラ１０６から所定距離離れた位置に配置される。また、自機オブジェクト１０１は、仮想カメラ１０６と位置Ａとの間であって位置Ａから所定距離離れた位置に、仮想カメラ１０６の撮像方向にその前方を向けて配置される。そして、ＣＰＵ３１１は、仮想３次元空間において、仮想カメラ１０６、照準オブジェクト１０５及び自機オブジェクト１０１を、前方（図４（１）等のｚ軸正方向）に所定の速さで自動的（強制的に）に前進させる。
【００９４】
そして、ＣＰＵ３１１は、操作データ５０１に基づいて、ユーザによって行われた操作をゲームの進行に反映させる。例えばユーザが自機オブジェクト１０１の進行方向を変更する（つまり旋回する）操作を行った場合、ＣＰＵ３１１は、自機オブジェクト１０１を当該操作に応じて旋回させる。その際、ＣＰＵ３１１は、これらのオブジェクトの上記した位置関係（図４（１）等参照）を維持する。このことによって、自機オブジェクト１０１が進行方向を変更すると、それに連動して照準オブジェクト１０５の位置も移動することになる。例えばユーザが自機オブジェクト１０１に射撃を行わせる操作を行った場合、ＣＰＵ３１１は、自機オブジェクト１０１に弾丸オブジェクトを発射させ、発射された弾丸オブジェクトを照準オブジェクト１０５に向かって移動させる。そして、弾丸オブジェクトが敵機オブジェクト（１０３ａ等）に命中した場合、この敵機オブジェクトを破壊する。なお、敵機オブジェクトが位置Ａよりも自機オブジェクト１０１に近い位置で破壊された場合（爆発した場合）、ＣＰＵ３１１は、自機オブジェクト１０１にこの爆発によるダメージを与える。また、敵機オブジェクトから発射された弾丸オブジェクトが自機オブジェクト１０１に命中した場合、ＣＰＵ３１１は、自機オブジェクト１０１にダメージを与える。また、自機オブジェクト１０１が、敵機オブジェクト（１０３ａ等）、建造物オブジェクト１０４、又は地形オブジェクト１０２に衝突した場合、ＣＰＵ３１１は、自機オブジェクト１０１にダメージを与える。以上のステップＳ１の後に、処理はステップＳ２に移る。
【００９５】
ステップＳ２において、ＧＰＵ３１２は、ステップＳ１によってゲームが進行している仮想３次元空間の描画処理を行う。その後、処理はステップＳ３に移る。ステップＳ２の描画処理については、図９を用いて後述する。
【００９６】
ステップＳ３において、ＣＰＵ３１１は、ゲームが終了したか否かを判定する。具体的には、ＣＰＵ３１１は、仮想３次元空間で進行しているゲームが所定の終了状態になったか否か、及び操作データ５０１に基づいてユーザがゲームを終了させる操作を行ったか否かを判定し、所定の終了状態になった場合又はゲームを終了させる操作が行われた場合（ステップＳ３でＹＥＳ）には、ゲームを終了させる。一方、ステップＳ３でＮＯと判定した場合、ＣＰＵ３１１は、処理をＳ１に戻す。
【００９７】
図９は、図８のステップＳ２の描画処理を示すフローチャートの一例である。なお、以下では、ＧＰＵ３１２が図９の描画処理の全てを実行するものとして説明するが、この処理の一部がＣＰＵ３１１によって実行されてもよい。また、以下に説明するＺバッファ法を用いた描画処理によって各オブジェクトがＶＲＡＭ３１３に描画される際には、画素毎に深度比較（Ｚテスト）が行われて画素毎に描画が行われる。また、仮想カメラ１０６はステレオカメラであるので、以下の描画処理において、実際には左目用画像及び右目用画像がそれぞれＶＲＡＭ３１３に描画されるが、以下では、説明の簡単のため、両画像の描画を一体的に説明する。
【００９８】
まず、ステップＳ２１において、ＧＰＵ３１２は、照準オブジェクト１０５の各部分のＺ値（深度）を算出し、算出したＺ値を所定量オフセットする（ずらす）。具体的には、ＧＰＵ３１２は、Ｚ値オフセットデータ５０４を参照して、照準オブジェクト１０５の各部分のＺ値を、当該照準オブジェクト１０５が仮想カメラ１０６に近づく方向に「０．４」オフセットする（図４（１）等の位置Ａ参照）。その後、処理はステップＳ２２に移る。ステップＳ２１におけるオフセット処理は、Ｂグループオブジェクト等との前後関係を調整するためのものであり、必要がない場合はオフセットを行わない、またはオフセットを０にするようにしてもよい。
【００９９】
ステップＳ２２において、ＧＰＵ３１２は、Ａグループオブジェクト（地形オブジェクト１０２等）をＶＲＡＭ３１３に描画する。その後、処理はステップＳ２３に移る。
【０１００】
ステップＳ２３において、ＧＰＵ３１２は、ステップＳ２１でオフセットしたＺ値（以下、「オフセット後Ｚ値」という）を用いてＺテストして照準オブジェクト１０５を描画した場合に、照準オブジェクト１０５において、Ａグループオブジェクトに隠れる部分があるか否かを判定する。より具体的には、ＧＰＵ３１２は、Ｚバッファの各画素において、ステップＳ２２で描画されたＡグループオブジェクトのＺ値と照準オブジェクト１０５のオフセット後Ｚ値とを比較し、後者のＺ値が前者のＺ値よりも大きい画素がある場合には、Ａグループオブジェクトに隠れる部分があると判定する。ステップＳ２３での判定がＹＥＳの場合には処理はステップＳ２４に移り、この判定がＮＯの場合には処理はステップＳ２５に移る。
【０１０１】
ステップＳ２４において、ＧＰＵ３１２は、ステップＳ２３でＡグループオブジェクトに隠れると判定された照準オブジェクト１０５の部分を、オフセット後Ｚ値を用いたＺテストにおいてＺ値の大小関係を反転させてＺテストを行って、ＶＲＡＭ３１３に描画する。例えば、Ａグループオブジェクトが描画された表示画面（スクリーン）の或る画素に対応するＺバッファの画素にＺ値として「０．２８」が設定されており、Ｚバッファのこの画素に対応するオフセット後Ｚ値が「０．３０」である場合、Ｚテストにおいて後者のＺ値（つまり「０．３０」）の方が小さいと判定する（Ｚ値の大小関係を反転して判定する）。そして、表示画面（スクリーン）のこの画素に対応する照準オブジェクト１０５の部分の色彩を当該画素に描画し、上記のオフセット後Ｚ値「０．３０」でＺバッファのこの画素のＺ値を更新する。なお、ＧＰＵ３１２は、ステップＳ２４において照準オブジェクト１０５の部分を描画する際には、左目用画像及び右目用画像の間の視差を、ステップＳ２１でオフセットする前のＺ値（以下、「オフセット前Ｚ値」という）に基づいて設定する。その後、処理はステップＳ２５に移る。なお、大小関係を反転させるのではなく、Ｚ値がＺバッファ内の値より小さい場合に画素を描画するという設定にしても同じ結果が得られるので、そのようにしてもよい。
【０１０２】
ステップＳ２５において、ＧＰＵ３１２は、ステップＳ２３でＡグループオブジェクトに隠れると判定されていない照準オブジェクト１０５の部分（つまり隠れない部分）を、オフセット後Ｚ値を用いたＺテストにおいて通常のＺテスト（Ｚ値の大小関係を反転させないＺテスト）を行って、ＶＲＡＭ３１３に描画する。なお、ＧＰＵ３１２は、ステップＳ２５において照準オブジェクト１０５の部分を描画する際にも、ステップＳ２４と同様に、左目用画像及び右目用画像の間の視差を、オフセット前Ｚ値に基づいて設定する。その後、処理はステップＳ２６に移る。
【０１０３】
ステップＳ２３〜ステップＳ２５までの処理は、照準オブジェクト１０５を隠れる部分と隠れない部分に分けて、それぞれ処理を行なうものであるが、別の実施形態においては、照準オブジェクト１０５の全ての部分に対して、通常のＺテストによる描画処理と、大小関係の反転したＺテストによる描画処理との両方を行なうようにすれば、通常のＺテストで照準オブジェクト１０５が描画されなかった部分には反転したＺテストによって描画が行われるので、隠れるか否かの判定を行わなくともよくなる。この場合、２回処理することに替えて、同じ位置に同じ形状の照準オブジェクト１０５を２つ用意し、一方を通常のＺテスト、もう一方を反転したＺテストで描画するように設定してもよい。その場合さらに、反転したＺテストが適用される照準オブジェクト１０５を半透明にすることで、他のモデルに対してさらに奥側にある照準が重畳されることによる違和感を軽減することができる。すなわち、手前側のオブジェクトよりも優先させて描画すると共に、手前側のオブジェクトに重なる部分が半透明となるよう描画することで、照準オブジェクト１０５を視差によって奥側に見せることと常に表示されるようにすることを自然に両立させることができる。半透明にする場合は、描画処理は後に行なう方がよく、照準オブジェクト１０５を常に表示させたい場合等は、Ｂグループオブジェクトや自機オブジェクト１０１よりもさらに後に描画処理するのがよい。また、隠れる部分の有無の判定を行う場合に、隠れる部分があると判定された場合に照準オブジェクト１０５全体を半透明で描画するようにしてもよい。また、自然に見せるために半透明にする以外にも、色を薄くする、テクスチャを変更する、等の方法で自然に見せるようにしてもよい。
【０１０４】
ステップＳ２６において、ＧＰＵ３１２は、Ｂグループオブジェクト（敵機オブジェクト（１０３ａ等）や建造物オブジェクト１０４等）を、通常のＺテスト（Ｚ値の大小関係を反転させないＺテスト）をしてＶＲＡＭ３１３に描画する。その後、処理はステップＳ２７に移る。
【０１０５】
ステップＳ２７において、ＧＰＵ３１２は、自機オブジェクト１０１を、通常のＺテスト（Ｚ値の大小関係を反転させないＺテスト）をしてＶＲＡＭ３１３に描画する。その後、処理はステップＳ２８に移る。
【０１０６】
ステップＳ２８において、ＧＰＵ３１２は、以上のステップＳ２１〜Ｓ２７の処理によってＶＲＡＭ３１３に描画された画像（左目用画像及び右目用画像から成る立体視画像）を、上側ＬＣＤ２２に出力する。この結果として、上側ＬＣＤ２２に、仮想カメラ１０６によって撮像された仮想３次元空間の立体視画像が表示されることとなる。その後、処理は図８のステップＳ３の処理に移る。
【０１０７】
以上のように、本実施形態では、Ｚバッファ法を用いた描画処理において、照準オブジェクト１０５のＺ値をオフセットして、オフセット後のＺ値に基づいたオブジェクト描画の優先順位に従って立体視画像を描画する。また、この描画処理において、照準オブジェクト１０５を描画する際には、左目用画像及び右目用画像の間の視差を、オフセット前のＺ値に基づいて設定する。このことによって、立体視画像において（図４（２）等参照）、照準オブジェクト１０５を仮想３次元空間内で配置された位置に応じた奥行き感（視差）で描画しつつ、仮想カメラ１０６と照準オブジェクト１０５との間（但し、位置Ａよりも奥）に位置して照準オブジェクト１０５を遮るＡグループオブジェクトが存在した場合であっても、このオブジェクトに隠されることなく照準オブジェクト１０５を描画することができる。
【０１０８】
また、本実施形態では、照準オブジェクト１０５は、自機オブジェクト１０１と位置Ａとの間に位置して照準オブジェクト１０５を遮るＡグループオブジェクトには隠されて描画されない（図５参照）。このことから、ユーザは、射撃して爆破した場合に自機オブジェクト１０１がダメージを受ける敵機オブジェクトを識別できることとなる。
【０１０９】
また、本実施形態では、照準オブジェクト１０５は、地形オブジェクト１０２に対しては常に優先して描画される。このことによって、例えば図６（１）に示すように自機オブジェクト１０１の前方に山が迫った場合においても、照準オブジェクト１０５は山に隠れることなく奥行き感を持って表示され続ける。この結果として、ユーザは、例えば山々の間を縫うように自機オブジェクト１０１を飛行させるような場合であっても、照準オブジェクト１０５を見失うことがなくなる。
【０１１０】
以上に説明したように、本実施形態によれば、仮想３次元空間を立体視表示するに際して、仮想３次元空間内を指示する指示オブジェクト（照準オブジェクト１０５）を、その機能を損なうことなく、又、奥行き感を持たせて自然に立体視表示することができる。
【０１１１】
また、以上に説明した本実施形態では、描画処理の際に、照準オブジェクト１０５のＺ値をオフセットしたうえで照準オブジェクト１０５がＡグループオブジェクトに隠れるか否かを判定して、隠れる部分についてはＺ値の大小関係を反転させてＺテストして描画していた（図９のステップＳ２１、Ｓ２３〜Ｓ２５参照）。しかし、図１１（１）に示すように描画処理の際に照準オブジェクト１０５のＺ値をオフセットせず、照準オブジェクト１０５が他のオブジェクトに隠れるか否かを判定して、隠れる部分についてはＺ値の大小関係を反転させてＺテストして描画してもよい。この様にした場合、図１１（２）に示すように、照準オブジェクト１０５を、奥行き感を持たせつつ常に優先して表示（描画）することができる。また、隠れるか否かの判定を行わずに、同じ位置に同じ形状の照準オブジェクト１０５を２つ用意し、一方を通常のＺテスト、もう一方を反転したＺテストで描画するように設定してもよい。その場合さらに、反転したＺテストが適用される照準オブジェクト１０５を半透明にすることで、図１１（２）に示すように、立体視によって奥側に見えるものが手前に描画されている部分が半透明になり、周囲となじむことによって違和感を軽減することができる。すなわち、手前側のオブジェクトよりも優先させて描画すると共に、手前側のオブジェクトに重なる部分が半透明となるよう描画することで、照準オブジェクト１０５を視差によって奥側に見せることと常に表示されるようにすることを自然に両立させることができる。半透明にする場合は、描画処理は後に行なう方がよい。また、半透明以外にも、色を薄くする、テクスチャを変更する、等でもよい。
【０１１２】
また、以上に説明した本実施形態及び変形例では、Ｚバッファ法を用いた描画処理において、Ｚ値をオフセット等するオブジェクトの一例として、照準オブジェクト１０５を挙げて説明した。しかし、Ｚバッファ法を用いた描画処理においてＺ値をオフセット等するオブジェクトは、仮想３次元空間内の位置を指示するためのオブジェクト（指示オブジェクト）であってもよい。更には、Ｚバッファ法を用いた描画処理においてＺ値をオフセット等するオブジェクトは、仮想３次元空間内において他のオブジェクトよりも優先して表示（描画）されるべきオブジェクト（優先表示オブジェクト）であればよく、例えば、所定のキャラクタを示すオブジェクトであってもよい。
【０１１３】
また、本実施形態は、本発明をゲーム装置１０に適用したものであるが、本発明はゲーム装置１０に限定されない。例えば、携帯電話機、簡易型携帯電話機（ＰＨＳ）、ＰＤＡ等の携帯情報端末にも本発明の適用は可能である。また、据え置き型ゲーム機やパーソナルコンピュータ等にも本発明の適用は可能である。
【０１１４】
また、本実施形態では、１つのゲーム装置１０で上述した処理を実行しているが、有線又は無線で通信可能な複数の装置で上記処理を分担してもよい。
【０１１５】
また、本実施形態において、ゲーム装置１の形状や、それに設けられている各種操作ボタン１４等、タッチパネル１３の形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、上述した情報処理で用いられる処理順序、設定値、判定に用いられる値等は、単なる一例に過ぎず、本発明の範囲を逸脱しなければ他の順序や値であっても、本発明を実現できることは言うまでもない。
【０１１６】
また、本実施形態のゲーム装置１０において実行される各種情報処理プログラムは、外部メモリ４４等の記憶媒体を通じてゲーム装置１０に供給されるだけでなく、有線又は無線の通信回線を通じてゲーム装置１０に供給されてもよい。また、上記プログラムは、ゲーム装置１０内部の不揮発性記憶装置（データ保存用内部メモリ３５等）に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、ＣＤ−ＲＯＭ、ＤＶＤ、或いはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ等であってもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを一時的に記憶する揮発性メモリでもよい。
【０１１７】
以上、本発明を詳細に説明してきたが、上述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。
【符号の説明】
【０１１８】
１０  ゲーム装置
１１  下側ハウジング
１２  下側ＬＣＤ
１３  タッチパネル
１４  操作ボタン
１５  アナログスティック
１６  ＬＥＤ
２１  上側ハウジング
２２  上側ＬＣＤ
２３  外側撮像部
２３ａ  外側撮像部（左）
２３ｂ  外側撮像部（右）
２４  内側撮像部
２５  ３Ｄ調整スイッチ
２６  ３Ｄインジケータ
２８  タッチペン
３１  情報処理部
３２  メインメモリ
１０１  自機オブジェクト
１０２  地形オブジェクト
１０３ａ〜１０３ｃ  敵機オブジェクト
１０４  建造物オブジェクト
１０５  照準オブジェクト
１０６  仮想カメラ（仮想ステレオカメラ）
３１１  ＣＰＵ
３１２  ＧＰＵ
３１３  ＶＲＡＭ
【図１】
0005714393.tif 000002
【図２】
0005714393.tif 000003
【図３】
0005714393.tif 000004
【図４】
0005714393.tif 000005
【図５】
0005714393.tif 000006
【図６】
0005714393.tif 000007
【図７】
0005714393.tif 000008
【図８】
0005714393.tif 000009
【図９】
0005714393.tif 000010
【図１０】
0005714393.tif 000011
【図１１】
0005714393.tif 000012