説明

情報処理プログラム、情報処理装置、情報処理方法及び情報処理システム

【課題】仮想3次元空間を立体視表示する際に、当該空間内を指示する指示オブジェクトを、この指示機能を損なうことなく、又、奥行き感を持たせて自然に立体視表示できる情報処理プログラム等を提供する。
【解決手段】仮想3次元空間内において、仮想ステレオカメラの撮像範囲内に優先表示オブジェクトを配置する優先表示オブジェクト配置手段と、仮想ステレオカメラで仮想3次元空間を撮像して立体視画像を描画する立体視画像描画手段と、立体視画像描画手段によって描画された立体視画像を表示装置に表示させる表示制御手段とを備え、立体視画像描画手段は、優先表示オブジェクトを、手前側のオブジェクトよりも優先させて描画すると共に、手前側のオブジェクトに重なる部分が半透明となるよう描画する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理プログラム、情報処理装置、情報処理方法及び情報処理システムに関し、より特定的には、立体視表示を実現する情報処理プログラム、情報処理装置、情報処理方法及び情報処理システムに関する。
【背景技術】
【0002】
従来、仮想3次元空間内で進行されるシューティングゲームにおいて、敵機を攻撃(射撃)するための指標となる照準が表示画面に表示されるものがある(例えば特許文献1参照)。この照準は、仮想3次元空間が描画された2次元平面上に描画され、表示画面上に常に表示されつつユーザからの入力に応じて上下左右に移動していた。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平10−295935号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記した従来の技術を用いて立体視表示を行った場合、仮想3次元空間が描画された2次元平面上に照準オブジェクトが描画されることになる。このことから、照準オブジェクトが他の全てのオブジェクトよりも手前に在るようにユーザに視認されてしまい、非常に不自然な立体視表示となってしまう。
【0005】
これを回避するために、照準オブジェクトを、他のオブジェクトと同様に仮想3次元空間に配置して当該仮想3次元空間を描画(撮像)した場合、照準オブジェクトが前方(奥行き方向)に在るように視認され、自然な立体視表示となる。しかし、このようにした場合、照準オブジェクトよりも手前に他のオブジェクトが存在する場合には、この照準オブジェクトが隠れて描画されないこととなり、照準としての機能を損なってしまうこととなる。
【0006】
それ故に、本発明の主たる目的は、仮想3次元空間を立体視表示するに際して、仮想3次元空間内を指示する指示オブジェクト(典型的には照準オブジェクト)を、この指示する機能を損なうことなく、又、奥行き感を持たせて自然に立体視表示することができる情報処理プログラム等を提供することである。
【課題を解決するための手段】
【0007】
本発明は、上述の課題を解決するために、以下の構成を採用した。
【0008】
立体視表示可能な表示装置に、仮想ステレオカメラで撮像した仮想3次元空間の立体視画像を表示する情報処理装置のコンピュータで実行される情報処理プログラムであって、コンピュータを、優先表示オブジェクト配置手段と、立体視画像描画手段と、表示制御手段として機能させる。優先表示オブジェクト配置手段は、仮想3次元空間内において、仮想ステレオカメラの撮像範囲内に優先表示オブジェクトを配置する。立体視画像描画手段は、仮想ステレオカメラで仮想3次元空間を撮像して立体視画像を描画する。表示制御手段は、立体視画像生描画手段によって生成された立体視画像を表示装置に表示させる。そして、立体視画像描画手段は、優先表示オブジェクトを手前側のオブジェクトよりも優先させて描画すると共に、手前側のオブジェクトに重なる部分が半透明となるよう描画する。
【0009】
この構成によれば、優先表示オブジェクトを、手前側のオブジェクトよりも優先させて描画すると共に、手前側のオブジェクトに重なる部分が半透明となるよう描画することで、優先表示オブジェクトを視差によって奥側に見せることと、常に表示されるようにすることの両方が可能となり、かつ自然な見え方で両立させることができる。
【0010】
また、立体視画像描画手段は、手前側のオブジェクトが優先される優先順位で優先表示オブジェクトを描画し、さらに前記優先表示オブジェクトが優先される優先順位で、かつ半透明で前記優先表示オブジェクトを描画することによって、前記重なる部分が半透明となるような描画を行うようにしてもよい。特に、優先表示オブジェクトを第1のオブジェクトと、第1のオブジェクトと同一で半透明な第2のオブジェクトから構成し、手前定のオブジェクトが優先される優先順位で第1のオブジェクトを描画し、さらに優先表示オブジェクトが優先される優先順位で、前記第2のオブジェクトを描画するようにしてもよい。優先順位は、たとえばZバッファを用いた手法で設定することができ、通常どおりのZテストによって描画を行った後、Zテストの結果が反対になるような設定において、再度半透明な優先表示オブジェクトを描画するようにすればよい。
【0011】
この構成によれば、優先表示オブジェクトが手前のオブジェクトと重なるか否か判定しなくとも、Zバッファ法を用いた描画処理によって、重なる部分を半透明にして表示させることができる。
【0012】
また、情報処理プログラムは、コンピュータを、ユーザからの入力を受け付ける入力受付手段として更に機能させ、優先表示オブジェクト配置手段は、更に、入力受付手段によって受け付けた入力に基づいて、仮想3次元空間に配置した優先表示オブジェクトを移動させてもよい。
【0013】
この構成によれば、ユーザは、優先表示オブジェクトを操作して移動させることができる。
【0014】
また、ユーザオブジェクト配置手段は、更に、入力受付手段によって受け付けた入力に基づいて、ユーザオブジェクトを移動させてもよい。
【0015】
この構成によれば、ユーザは、ユーザオブジェクトを操作して移動させることができる。
【0016】
また、優先表示オブジェクトは、仮想3次元空間内の位置を指示するための指示オブジェクトであってもよい。
【0017】
この構成によれば、ユーザは、指示オブジェクトによって指示される、仮想3次元空間内の奥行き位置も含めた位置(指示位置)を認識することができる。
【0018】
以上では、情報処理プログラムとして本発明を構成する場合について記載した。しかし、本発明は、情報処理装置、情報処理方法、又は情報処理システムとして構成されてもよい。
【発明の効果】
【0019】
本発明によれば、仮想3次元空間を立体視表示するに際して、仮想3次元空間内を指示する指示オブジェクト(典型的には照準オブジェクト)を、この指示する機能を損なうことなく、又、奥行き感を持たせて自然に立体視表示することができる情報処理プログラム等を提供することができる。
【図面の簡単な説明】
【0020】
【図1】開状態におけるゲーム装置10の正面図
【図2】閉状態におけるゲーム装置10の左側面図、正面図、右側面図および背面図
【図3】ゲーム装置10の内部構成を示すブロック図
【図4】仮想3次元空間の一例および当該仮想3次元空間が仮想ステレオカメラで撮像された画像(ユーザが視認する立体視画像)を示す図
【図5】仮想3次元空間の一例および当該仮想3次元空間が仮想ステレオカメラで撮像された画像(ユーザが視認する立体視画像)を示す図
【図6】仮想3次元空間の一例および当該仮想3次元空間が仮想ステレオカメラで撮像された画像(ユーザが視認する立体視画像)を示す図
【図7】ゲーム装置10のメインメモリ32のメモリマップを示す図
【図8】ゲーム装置10によって実行されるゲーム処理の一例を示すフローチャート
【図9】図8のステップS2の描画処理の一例を示すフローチャート
【図10】仮想3次元空間の一例を示す図
【図11】仮想3次元空間の一例および当該仮想3次元空間が仮想ステレオカメラで撮像された画像(ユーザが視認する立体視画像)を示す図
【発明を実施するための形態】
【0021】
(一実施形態)
以下、本発明の一実施形態に係る情報処理装置であるゲーム装置について説明する。なお、本発明は、このような装置に限定されるものではなく、このような装置において実行される情報処理プログラムであってもよく、このような装置の機能を実現する情報処理システムであってもよい。更には、本発明は、このような装置における情報処理方法であってもよい。
【0022】
(ゲーム装置の外観構成)
以下、本発明の一実施形態に係るゲーム装置について説明する。図1および図2は、ゲーム装置10の外観を示す平面図である。ゲーム装置10は携帯型のゲーム装置であり、図1および図2に示すように折り畳み可能に構成されている。図1は、開いた状態(開状態)におけるゲーム装置10を示し、図2は、閉じた状態(閉状態)におけるゲーム装置10を示している。図1は、開状態におけるゲーム装置10の正面図である。ゲーム装置10は、撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置10は、交換可能なメモリカード内に記憶され、または、サーバや他のゲーム装置から受信したゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラで撮像した画像などのコンピュータグラフィックス処理により生成された画像を画面に表示したりすることができる。
【0023】
まず、図1および図2を参照して、ゲーム装置10の外観構成について説明する。図1および図2に示されるように、ゲーム装置10は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に接続されている。
【0024】
(下側ハウジングの説明)
まず、下側ハウジング11の構成について説明する。図1および図2に示すように、下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12、タッチパネル13、各操作ボタン14A〜14L、アナログスティック15、LED16A〜16B、挿入口17、および、マイクロフォン用孔18が設けられる。以下、これらの詳細について説明する。
【0025】
図1に示すように、下側LCD12は下側ハウジング11に収納される。下側LCD12の画素数は、例えば、320dot×240dot(横×縦)であってもよい。下側LCD12は、後述する上側LCD22とは異なり、画像を(立体視可能ではなく)平面的に表示する表示装置である。なお、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側LCD12として、任意の解像度の表示装置を利用することができる。
【0026】
図1に示されるように、ゲーム装置10は、入力装置として、タッチパネル13を備えている。タッチパネル13は、下側LCD12の画面上に装着されている。なお、本実施形態では、タッチパネル13は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。本実施形態では、タッチパネル13として、下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度が一致している必要はない。また、下側ハウジング11の上側面には挿入口17(図1および図2(d)に示す点線)が設けられている。挿入口17は、タッチパネル13に対する操作を行うために用いられるタッチペン28を収納することができる。なお、タッチパネル13に対する入力は通常タッチペン28を用いて行われるが、タッチペン28に限らずユーザの指でタッチパネル13に対する入力をすることも可能である。
【0027】
各操作ボタン14A〜14Lは、所定の入力を行うための入力装置である。図1に示されるように、下側ハウジング11の内側面(主面)には、各操作ボタン14A〜14Lのうち、十字ボタン14A(方向入力ボタン14A)、ボタン14B、ボタン14C、ボタン14D、ボタン14E、電源ボタン14F、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lが、設けられる。十字ボタン14Aは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン14A〜14E、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lには、ゲーム装置10が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン14Aは選択操作等に用いられ、各操作ボタン14B〜14Eは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン14Fは、ゲーム装置10の電源をオン/オフするために用いられる。
【0028】
アナログスティック15は、方向を指示するデバイスである。アナログスティック15は、そのキートップが、下側ハウジング11の内側面に平行にスライドするように構成されている。アナログスティック15は、ゲーム装置10が実行するプログラムに応じて機能する。例えば、仮想3次元空間に所定のオブジェクトが登場するゲームがゲーム装置10によって実行される場合、アナログスティック15は、当該所定のオブジェクトを仮想3次元空間内で移動させるための入力装置として機能する。この場合において、所定のオブジェクトはアナログスティック15のキートップがスライドした方向に移動される。なお、アナログスティック15として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いても良い。
【0029】
また、下側ハウジング11の内側面には、マイクロフォン用孔18が設けられる。マイクロフォン用孔18の下部には後述する音声入力装置としてのマイク42(図3参照)が設けられ、当該マイク42がゲーム装置10の外部の音を検出する。
【0030】
図2(a)は閉状態におけるゲーム装置10の左側面図であり、図2(b)は閉状態におけるゲーム装置10の正面図であり、図2(c)は閉状態におけるゲーム装置10の右側面図であり、図2(d)は閉状態におけるゲーム装置10の背面図である。図2(b)および(d)に示されるように、下側ハウジング11の上側面には、Lボタン14GおよびRボタン14Hが設けられている。Lボタン14GおよびRボタン14Hは、例えば、撮像部のシャッターボタン(撮影指示ボタン)として機能することができる。また、図2(a)に示されるように、下側ハウジング11の左側面には、音量ボタン14Iが設けられる。音量ボタン14Iは、ゲーム装置10が備えるスピーカの音量を調整するために用いられる。
【0031】
図2(a)に示されるように、下側ハウジング11の左側面には開閉可能なカバー部11Cが設けられる。このカバー部11Cの内側には、ゲーム装置10とデータ保存用外部メモリ45とを電気的に接続するためのコネクタ(図示せず)が設けられる。データ保存用外部メモリ45は、コネクタに着脱自在に装着される。データ保存用外部メモリ45は、例えば、ゲーム装置10によって撮像された画像のデータを記憶(保存)するために用いられる。
【0032】
また、図2(d)に示されるように、下側ハウジング11の上側面には、ゲーム装置10とゲームプログラムを記録した外部メモリ44を挿入するための挿入口11Dが設けられ、その挿入口11Dの内部には、外部メモリ44と電気的に着脱自在に接続するためのコネクタ(図示せず)が設けられる。当該外部メモリ44がゲーム装置10に接続されることにより、所定のゲームプログラムが実行される。
【0033】
また、図1および図2(c)に示されるように、下側ハウジング11の下側面にはゲーム装置10の電源のON/OFF状況をユーザに通知する第1LED16A、下側ハウジング11の右側面にはゲーム装置10の無線通信の確立状況をユーザに通知する第2LED16Bが設けられる。ゲーム装置10は他の機器との間で無線通信を行うことが可能であり、第2LED16Bは、無線通信が確立している場合に点灯する。ゲーム装置10は、例えば、IEEE802.11b/gの規格に準拠した方式により、無線LANに接続する機能を有する。下側ハウジング11の右側面には、この無線通信の機能を有効/無効にする無線スイッチ19が設けられる(図2(c)参照)。
【0034】
なお、図示は省略するが、下側ハウジング11には、ゲーム装置10の電源となる充電式電池が収納され、下側ハウジング11の側面(例えば、上側面)に設けられた端子を介して当該電池を充電することができる。
【0035】
(上側ハウジングの説明)
次に、上側ハウジング21の構成について説明する。図1および図2に示すように、上側ハウジング21には、上側LCD(Liquid Crystal Display:液晶表示装置)22、外側撮像部23(外側撮像部(左)23aおよび外側撮像部(右)23b)、内側撮像部24、3D調整スイッチ25、および、3Dインジケータ26が設けられる。以下、これらの詳細について説明する。
【0036】
図1に示すように、上側LCD22は上側ハウジング21に収納される。上側LCD22の画素数は、例えば、800dot×240dot(横×縦)であってもよい。なお、本実施形態では上側LCD22は液晶表示装置であるとしたが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置などが利用されてもよい。また、上側LCD22として、任意の解像度の表示装置を利用することができる。
【0037】
上側LCD22は、立体視可能な画像(立体視画像)を表示することが可能な表示装置である。また、本実施例では、実質的に同一の表示領域を用いて左目用画像と右目用画像が表示される。具体的には、左目用画像と右目用画像が所定単位で(例えば、1列ずつ)横方向に交互に表示される方式の表示装置である。または、左目用画像と右目用画像とが交互に表示される方式の表示装置であってもよい。また、本実施例では、裸眼立体視可能な表示装置である。そして、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式(視差バリア方式)のものが用いられる。本実施形態では、上側LCD22はパララックスバリア方式のものとする。上側LCD22は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像(立体画像)を表示する。すなわち、上側LCD22は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像を視認させることにより、ユーザにとって立体感のある立体画像(立体視可能な画像)を表示することができる。また、上側LCD22は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる(上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである)。このように、上側LCD22は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する(平面視画像を表示する)平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する3D調整スイッチ25によって行われる。
【0038】
外側撮像部23は、上側ハウジング21の外側面(上側LCD22が設けられた主面と反対側の背面)21Dに設けられた2つの撮像部(23aおよび23b)の総称である。外側撮像部(左)23aと外側撮像部(右)23bの撮像方向は、いずれも当該外側面21Dの外向きの法線方向である。外側撮像部(左)23aと外側撮像部(右)23bとは、ゲーム装置10が実行するプログラムによって、ステレオカメラとして使用することが可能である。外側撮像部(左)23aおよび外側撮像部(右)23bは、それぞれ所定の共通の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0039】
内側撮像部24は、上側ハウジング21の内側面(主面)21Bに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部24は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0040】
3D調整スイッチ25は、スライドスイッチであり、上述のように上側LCD22の表示モードを切り替えるために用いられるスイッチである。また、3D調整スイッチ25は、上側LCD22に表示された立体視可能な画像(立体画像)の立体感を調整するために用いられる。3D調整スイッチ25のスライダ25aは、所定方向(上下方向)の任意の位置にスライド可能であり、当該スライダ25aの位置に応じて上側LCD22の表示モードが設定される。また、スライダ25aの位置に応じて、立体画像の見え方が調整される。具体的には、スライダ25aの位置に応じて、右目用画像および左目用画像の横方向の位置のずれ量が調整される。
【0041】
3Dインジケータ26は、上側LCD22が立体表示モードか否かを示す。3Dインジケータ26は、LEDであり、上側LCD22の立体表示モードが有効の場合に点灯する。なお、3Dインジケータ26は、上側LCD22が立体表示モードになっており、かつ、立体視画像を表示するプログラム処理が実行されているときに限り、点灯するようにしてもよい。
【0042】
また、上側ハウジング21の内側面には、スピーカ孔21Eが設けられる。後述するスピーカ43からの音声がこのスピーカ孔21Eから出力される。
【0043】
(ゲーム装置10の内部構成)
次に、図3を参照して、ゲーム装置10の内部の電気的構成について説明する。図3は、ゲーム装置10の内部構成を示すブロック図である。図3に示すように、ゲーム装置10は、上述した各部に加えて、情報処理部31、メインメモリ32、外部メモリインターフェイス(外部メモリI/F)33、データ保存用外部メモリI/F34、データ保存用内部メモリ35、無線通信モジュール36、ローカル通信モジュール37、リアルタイムクロック(RTC)38、加速度センサ39、電源回路40、およびインターフェイス回路(I/F回路)41等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング11(または上側ハウジング21でもよい)内に収納される。
【0044】
情報処理部31は、所定のプログラムを実行するためのCPU(Central Processing Unit)311、画像処理を行うGPU(Graphics Processing Unit)312等を含む情報処理手段である。情報処理部31のCPU311は、ゲーム装置10内のメモリ(例えば外部メモリI/F33に接続された外部メモリ44やデータ保存用内部メモリ35)に記憶されているプログラムを実行することによって、当該プログラムに応じた処理を実行する。なお、情報処理部31のCPU311によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部31は、VRAM(Video RAM)313を含む。情報処理部31のGPU312は、情報処理部31のCPU311からの命令に応じて画像を生成し、VRAM313に描画する。そして、情報処理部31のGPU312は、VRAM313に描画された画像を上側LCD22及び/又は下側LCD12に出力し、上側LCD22及び/又は下側LCD12に当該画像が表示される。
【0045】
情報処理部31には、メインメモリ32、外部メモリI/F33、データ保存用外部メモリI/F34、および、データ保存用内部メモリ35が接続される。外部メモリI/F33は、外部メモリ44を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリI/F34は、データ保存用外部メモリ45を着脱自在に接続するためのインターフェイスである。
【0046】
メインメモリ32は、情報処理部31(のCPU311)のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ32は、上記プログラムに基づく処理に用いられる各種データを一時的に記憶したり、外部(外部メモリ44や他の機器等)から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ32として例えばPSRAM(Pseudo−SRAM)を用いる。
【0047】
外部メモリ44は、情報処理部31によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ44は、例えば読み取り専用の半導体メモリで構成される。外部メモリ44が外部メモリI/F33に接続されると、情報処理部31は外部メモリ44に記憶されたプログラムを読み込むことができる。情報処理部31が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ45は、不揮発性の読み書き可能なメモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ45には、外側撮像部23で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ45がデータ保存用外部メモリI/F34に接続されると、情報処理部31はデータ保存用外部メモリ45に記憶された画像を読み込み、上側LCD22及び/又は下側LCD12に当該画像を表示することができる。
【0048】
データ保存用内部メモリ35は、読み書き可能な不揮発性メモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ35には、無線通信モジュール36を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【0049】
無線通信モジュール36は、例えばIEEE802.11b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール37は、所定の通信方式(例えば独自プロトコルによる通信や、赤外線通信)により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール36およびローカル通信モジュール37は情報処理部31に接続される。情報処理部31は、無線通信モジュール36を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール37を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0050】
また、情報処理部31には、加速度センサ39が接続される。加速度センサ39は、3軸(xyz軸)方向に沿った直線方向の加速度(直線加速度)の大きさを検出する。加速度センサ39は、下側ハウジング11の内部に設けられる。加速度センサ39は、図1に示すように、下側ハウジング11の長辺方向をx軸、下側ハウジング11の短辺方向をy軸、下側ハウジング11の内側面(主面)に対して垂直な方向をz軸として、各軸の直線加速度の大きさを検出する。なお、加速度センサ39は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ39は1軸又は2軸方向を検出する加速度センサであってもよい。情報処理部31は、加速度センサ39が検出した加速度を示すデータ(加速度データ)を受信して、ゲーム装置10の姿勢や動きを検出することができる。なお、情報処理部31には、上記した加速度センサ39に加えて(又はその代わりに)角度センサや角速度センサ等の他のセンサが接続され、このセンサによってゲーム装置10の姿勢や動きを検出してもよい。
【0051】
また、情報処理部31には、RTC38および電源回路40が接続される。RTC38は、時間をカウントして情報処理部31に出力する。情報処理部31は、RTC38によって計時された時間に基づき現在時刻(日付)を計算する。電源回路40は、ゲーム装置10が有する電源(下側ハウジング11に収納される上記充電式電池)からの電力を制御し、ゲーム装置10の各部品に電力を供給する。
【0052】
また、情報処理部31には、LED16(16A、16B)が接続される。情報処理部31は、LED16を用いて、ゲーム装置10の電源のON/OFF状況をユーザに通知し、又、ゲーム装置10の無線通信の確立状況をユーザに通知する。
【0053】
また、情報処理部31には、I/F回路41が接続される。I/F回路41には、マイク42およびスピーカ43が接続される。具体的には、I/F回路41には、図示しないアンプを介してスピーカ43が接続される。マイク42は、ユーザの音声を検知して音声信号をI/F回路41に出力する。アンプは、I/F回路41からの音声信号を増幅し、音声をスピーカ43から出力させる。また、タッチパネル13はI/F回路41に接続される。I/F回路41は、マイク42およびスピーカ43(アンプ)の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部31に出力する。タッチ位置データは、タッチパネル13の入力面において入力が行われた位置の座標を示す。なお、タッチパネル制御回路は、タッチパネル13からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。情報処理部31は、タッチ位置データを取得することにより、タッチパネル13に対して入力が行われた位置を知ることができる。
【0054】
操作ボタン14は、上記各操作ボタン14A〜14Lからなり、情報処理部31に接続される。操作ボタン14から情報処理部31へは、各操作ボタン14A〜14Iに対する入力状況(押下されたか否か)を示す操作データが出力される。情報処理部31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に従った処理を実行する。
【0055】
アナログスティック15は情報処理部31に接続される。アナログスティック15から情報処理部31へは、アナログスティック15に対するアナログ入力(操作方向及び操作量)を示す操作データが出力される。情報処理部31は、アナログスティック15から操作データを取得することによって、アナログスティック15に対する入力に従った処理を実行する。
【0056】
下側LCD12および上側LCD22は情報処理部31に接続される。下側LCD12および上側LCD22は、情報処理部31(のGPU312)の指示に従って画像を表示する。本実施形態では、情報処理部31は、上側LCD22に立体視画像(立体視可能な画像)を表示させる。
【0057】
具体的には、情報処理部31は、上側LCD22のLCDコントローラ(図示せず)と接続され、当該LCDコントローラに対して視差バリアのON/OFFを制御する。上側LCD22の視差バリアがONになっている場合、情報処理部31のVRAM313に格納された右目用画像と左目用画像とが、上側LCD22に出力される。より具体的には、LCDコントローラは、右目用画像について縦方向に1ライン分の画素データを読み出す処理と、左目用画像について縦方向に1ライン分の画素データを読み出す処理とを交互に繰り返すことによって、VRAM313から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に1ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側LCD22の画面に表示される。そして、上側LCD22の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側LCD22の画面には立体視可能な画像が表示される。
【0058】
外側撮像部23および内側撮像部24は、情報処理部31に接続される。外側撮像部23および内側撮像部24は、情報処理部31の指示に従って画像を撮像し、撮像した画像データを情報処理部31に出力する。
【0059】
3D調整スイッチ25は、情報処理部31に接続される。3D調整スイッチ25は、スライダ25aの位置に応じた電気信号を情報処理部31に送信する。
【0060】
また、3Dインジケータ26は、情報処理部31に接続される。情報処理部31は、3Dインジケータ26の点灯を制御する。例えば、情報処理部31は、上側LCD22が立体表示モードである場合、3Dインジケータ26を点灯させる。以上がゲーム装置10の内部構成の説明である。
【0061】
(本実施形態における特徴的動作の概要)
次に、図4〜図6を参照して、本実施形態における特徴的動作の概要について説明する。図4〜図6は、それぞれ、仮想3次元空間の一例および当該仮想3次元空間が後述する仮想ステレオカメラ106で撮像された画像(ユーザが視認する立体視画像)を示す図である。なお、図4〜図6及び図11において、(2)に示す図は、それぞれ、実際は、両画像間に視差が設定された左目用画像及び右目用画像から成る立体視画像であってユーザの両目によって立体視される画像であるが、図面表現の都合で平面的な画像として記載している。
【0062】
本実施形態では、一例として、いわゆる3人称視点で進行されるシューティングゲームを想定しており、図4(1)に示すように、ユーザは、仮想3次元空間において自機オブジェクト101(ユーザオブジェクトと呼んでもよい)を操作して敵機オブジェクト103a等を射撃する。そして、本実施形態では、仮想3次元空間において自機オブジェクト101の後方に配置された仮想ステレオカメラ106(以下、単に、仮想カメラ106という)によって仮想3次元空間を撮像して左目用画像及び右目用画像を生成し、これらの画像を上側LCD22に立体視画像として表示させる。以下、具体的に説明する。
【0063】
図4(1)に示すように、仮想3次元空間には、ユーザによって操作される自機オブジェクト101と、地面等の地形オブジェクト102と、射撃対象である敵機オブジェクト103a等と、ビル等の建造物オブジェクト104と、自機オブジェクト101による射撃の方向を示す照準オブジェクト105と、自機オブジェクト101の後方から当該自機オブジェクト101が位置する方向を撮像する仮想カメラ106とが配置される。
【0064】
そして、本実施形態では、仮想カメラ106によって仮想3次元空間を撮像して立体視画像を生成(描画)するに際して、以下に説明するZバッファ法を用いる。なお、Zバッファ法は、一般的なものであるため、その詳細な説明は省略する。Zバッファ法では、表示画像が描画される表示画面を構成する各画素に、色情報の他に、奥行きに関する情報(Z値)を持たせる。Z値は、仮想カメラからの深度(奥行き)を示す値であって、仮想カメラの位置に対応する値が「0.0」であり、仮想カメラから離れるに従って除除に「1.0」に近づく値である。そして、表示画面に表示画像を描画する際に、表示画面の画素毎に、既に設定されているZ値と、描画しようとするオブジェクトの部分のZ値とを比較(Zテスト)する。後者のZ値の方が小さい場合には、この画素に、描画しようとするオブジェクトの部分の色を書き込み、後者のZ値で前者のZ値を上書きする(更新する)。以上の処理を行うことによって、手前(仮想カメラ側)に在るオブジェクトによって隠されるべき他のオブジェクト(又は他のオブジェクトの部分)を描画しないようにできる。
【0065】
図4(1)に示すように、照準オブジェクト105は、仮想カメラ106の撮像方向であって、仮想カメラ106から所定距離離れた位置に配置される。また、自機オブジェクト101は、仮想カメラ106の撮像範囲内であって、仮想カメラ106と照準オブジェクト105との間であって仮想カメラ106より少し前方に配置される。そして、仮想カメラ106によって撮像された仮想3次元空間をZバッファ法を用いて描画する際には、照準オブジェクト105のZ値を、当該照準オブジェクト105が仮想カメラ106に近づく方向に、所定量だけオフセットする(ずらす)。例えば、描画処理の際に、照準オブジェクト105の或る部分のZ値が「0.7」と算出された場合、この部分のZ値を、所定量(例えば「0.4」)オフセットして「0.3」にする。ここで、図4(1)に示すように、自機オブジェクト101は、仮想カメラ106と、上記オフセット後のZ値に対応する位置(図4(1)の位置A)との間であって、位置Aから所定距離の位置に配置される。
【0066】
図4(2)は、図4(1)に示す状態の仮想3次元空間を、Zバッファ法を用いて、上記したようにZ値をオフセットして描画した表示画像(立体視画像)を示している。図4(2)に示すように、照準オブジェクト105は、その一部が仮想3次元空間において敵機オブジェクト103a及び建造物オブジェクト104に遮られているにも関わらず(図4(1)参照)、描画されている。これは、図4(1)を用いて説明したように、描画処理の際に算出される照準オブジェクト105の各部分のZ値が、位置Aに対応する値までオフセットされているからである。
【0067】
以上のように、本実施形態では、Zバッファ法を用いた描画処理において、照準オブジェクト105の各部分のZ値をオフセットして立体視画像を描画する。このことによって、図4(2)に示す立体視画像において、照準オブジェクト105を仮想3次元空間内で配置された位置に応じた奥行き感(視差)で描画し、かつ、仮想カメラ106と照準オブジェクト105との間(但し、位置Aよりも奥)に位置して照準オブジェクト105を遮るオブジェクト(103a及び104)が存在した場合であっても、このオブジェクトに隠されることなく照準オブジェクト105を優先して描画することができる。この結果として、照準オブジェクト105を、照準機能を失うことなく、又、奥行き感を持たせて自然に立体視表示することができる。
【0068】
図5(1)は、図4(1)に示した状態から所定時間経過した時点の仮想3次元空間を示す図である。図5(1)に示すように、仮想カメラ106、照準オブジェクト105、及び自機オブジェクト101は、仮想3次元空間において、上記した位置関係を維持して、図4(1)の状態から前方(z軸正方向)に移動している。このことによって、建造物オブジェクト104は、仮想カメラ106と自機オブジェクト101との間に位置することとなっている。なお、敵機オブジェクト103aは、仮想カメラ106と位置Aとの間に位置している。
【0069】
図5(2)は、図5(1)に示す状態の仮想3次元空間を、Zバッファ法を用いて、図4(1)を用いて説明したようにZ値をオフセットして描画した表示画像(立体視画像)を示している。図5(2)に示すように、照準オブジェクト105は、位置Aよりも奥(z軸正方向)に位置する敵機オブジェクト103c(図5(1)参照)には隠されることなく描画され、一方で、位置Aよりも手前(z軸負方向)に位置する敵機オブジェクト103a及び建造物オブジェクト104(図5(1)参照)には隠されている(遮られている)。
【0070】
この様に、図5(2)に示す立体視画像において、仮想3次元空間内で配置された位置に応じた奥行き感(視差)で照準オブジェクト105を描画し、かつ、仮想カメラ106と照準オブジェクト105との間(但し、Aよりも奥)に位置して照準オブジェクト105を隠すオブジェクト(103c)が存在する場合であっても、このオブジェクトに遮られることなく照準オブジェクト105を優先して描画することができる。
【0071】
一方、照準オブジェクト105は、自機オブジェクト101と位置Aとの間に位置して照準オブジェクト105を隠すオブジェクト(103a)には隠されて(遮られて)描画されない。ここで、本実施形態のシューティングゲームでは、自機オブジェクト101が、所定距離よりも近くに位置する敵機オブジェクトを射撃して破壊(爆破)した場合には、当該破壊の影響を受けてダメージを受ける設定としている。そして、本実施形態では、図5(1)に示すように自機オブジェクト101と位置Aとの間に間隔を設けることによって、射撃して破壊した場合に自機オブジェクト101がダメージを受ける程に近い敵機オブジェクト等に対しては、自機オブジェクト101を優先表示(優先描画)しないこととしている。
【0072】
図6(1)は、図5(1)に示した状態から所定時間経過した時点の仮想3次元空間を示す図である。図6(1)に示すように、仮想カメラ106、照準オブジェクト105、及び自機オブジェクト101は、仮想3次元空間において、図5(1)の状態から前方(z軸正方向)に移動している。このことによって、建造物オブジェクト104は仮想カメラ106の撮像範囲の外に移動し、地形オブジェクト102の山の部分が自機オブジェクト101の前方に迫っている。
【0073】
図6(2)は、図6(1)に示す状態の仮想3次元空間を、Zバッファ法を用いて、図4(1)を用いて説明したようにZ値をオフセットして描画した表示画像(立体視画像)を示している。ここで、本実施形態では、Zバッファ法を用いて描画処理を行う際に、照準オブジェクト105が地形オブジェクト102に隠れる(遮られる)場合であっても、照準オブジェクト105を常に描画する。つまり、照準オブジェクト105は、地形オブジェクト102に対しては常に優先して描画される。具体的には、図6(1)に示す位置Aの状況(照準オブジェクト105の下部が地形オブジェクト102に隠れる状況)においても、図6(2)に示すように、照準オブジェクト105は、地形オブジェクト102に隠れることなく、その全体が描画される。この様にするために、本実施形態では、Zバッファ法によって照準オブジェクト105のZ値と地形オブジェクト102のZ値とを描画対象の画素毎に比較(Zテスト)して描画処理する際に、前者のZ値の方が後者のZ値よりも大きい場合(つまり、照準オブジェクト105の方が仮想カメラ106から遠い場合)、前者のZ値の方が後者のZ値よりも小さい(つまり、照準オブジェクト105の方が仮想カメラ106から近い)ものとして描画処理を行う。この描画処理の詳細は、図9を用いて後に説明する。
【0074】
この様に、本実施形態において、照準オブジェクト105は、地形オブジェクト102に対しては常に優先して描画される。このことによって、例えば図6(1)に示すような自機オブジェクト101の前方に山が迫った場合においても、照準オブジェクト105は山に隠れることなく奥行き感を持って表示され続けるので、ユーザは、照準オブジェクト105を見失うことがない。
【0075】
以上に説明したように、本実形態によれば、仮想3次元空間を立体視表示するに際して、仮想3次元空間内を指示する指示オブジェクト(照準オブジェクト105)を、その機能を損なうことなく、又、奥行き感を持たせて自然に立体視表示することができる。
【0076】
(ゲーム処理の詳細)
次に、ゲーム装置10によって実行されるゲーム処理の詳細を説明する。まず、ゲーム処理の際にメインメモリ32に記憶されるデータについて説明する。図7は、ゲーム装置10のメインメモリ32のメモリマップを示す図である。図7に示すように、メインメモリ32は、プログラム記憶領域400およびデータ記憶領域500を含む。プログラム記憶領域400およびデータ記憶領域500のデータの一部は、例えば外部メモリ44に記憶されており、ゲーム処理の実行時にはメインメモリ32に読み込まれて記憶される。
【0077】
プログラム記憶領域400には、後述する図8に示すフローチャートの処理を実行するゲーム処理プログラム401や、後述する図9に示すフローチャートの処理を実行する描画処理プログラム402等のプログラムが記憶される。
【0078】
データ記憶領域500には、操作データ501、仮想カメラデータ502、照準オブジェクトデータ503、Z値オフセットデータ504、自機オブジェクトデータ505、Aグループオブジェクトデータ506、及びBグループオブジェクトデータ509等が記憶される。
【0079】
操作データ501は、各操作ボタン14A〜E、G〜H、及び、アナログスティック15に対して行われたユーザの操作を示すデータである。この操作データ501は、例えば、ユーザが自機オブジェクト101を上下左右に旋回させる操作を示すデータであったり、ユーザが自機オブジェクト101に射撃を行わせる操作を示すデータである。
【0080】
仮想カメラデータ502は、仮想3次元空間における仮想カメラ106(図4等参照)の位置、撮像方向、及び撮像画角を示すデータである。
【0081】
照準オブジェクトデータ503は、仮想3次元空間における照準オブジェクト105の位置、向き、形状(ポリゴン形状)、及び色彩(テクスチャ)等を示すデータである。
【0082】
Z値オフセットデータ504は、仮想3次元空間をZバッファ法を用いて描画する際に、照準オブジェクト105の仮想カメラ106からの深度(奥行き)を示すZ値(Z=0.0〜1.0)を、所定量オフセット(ずらす)ために用いられる所定値である。本実施形態では、Z値オフセットデータ504は、一例として「0.4」とする。
【0083】
自機オブジェクトデータ505は、仮想3次元空間における自機オブジェクト101(図4等参照)の位置、向き、形状(ポリゴン形状)、及び色彩(テクスチャ)等を示すデータである。
【0084】
Aグループオブジェクトデータ506は、地形オブジェクトデータ507及び雲オブジェクトデータ508等のグループAに属するオブジェクトのデータを含むデータである。なお、後述する図9を用いた説明で明らかとなるが、グループAに属するオブジェクトよりも照準オブジェクト105の方が常に優先して描画される。
【0085】
地形オブジェクトデータ507は、地形オブジェクト102(図4等参照)の位置、向き、形状(ポリゴン形状)、及び色彩(テクスチャ)等を示すデータである。
【0086】
雲オブジェクトデータ508は、背景を示すオブジェクトの1つである雲オブジェクト(図示せず)の位置、向き、形状(ポリゴン形状)、及び色彩(テクスチャ)等を示すデータである。
【0087】
Bグループオブジェクトデータ509は、敵機オブジェクトデータ510、建造物オブジェクトデータ511、及び弾丸オブジェクトデータ512等のグループBに属するオブジェクトのデータを含むデータである。なお、後述する図9を用いた説明で明らかとなるが、グループBに属するオブジェクトの位置(深度)によっては、グループBに属するオブジェクトよりも照準オブジェクト105の方が優先して描画される。
【0088】
敵機オブジェクトデータ510は、敵機オブジェクト103a〜103c(図4等参照)の位置、向き、形状(ポリゴン形状)、及び色彩(テクスチャ)等を示すデータである。
【0089】
建造物オブジェクトデータ511は、建造物オブジェクト104(図4等参照)の位置、向き、形状(ポリゴン形状)、及び色彩(テクスチャ)等を示すデータである。
【0090】
弾丸オブジェクトデータ512は、自機オブジェクト101又は敵機オブジェクト103a等から発射される弾丸オブジェクト(図示せず)の位置、向き、形状(ポリゴン形状)、及び色彩(テクスチャ)等を示すデータである。
【0091】
次に、図8を参照して、ゲーム装置10によって実行されるゲーム処理のフローについて説明する。ゲーム装置10の電源が投入されると、ゲーム装置10のCPU311は、データ保存用内部メモリ35等に記憶されている起動プログラムを実行し、これによってメインメモリ32等の各ユニットが初期化される。そして、外部メモリ44に記憶されたゲーム処理プログラム401等がメインメモリ32に読み込まれ、CPU311によってゲーム処理プログラム401が実行される。
【0092】
図8は、CPU311によって実行されるゲーム処理のフローチャートの一例である。図8のフローチャートで示す処理は、1フレーム(例えば1/60秒)毎に繰り返し実行される。なお、以下では、本発明とは直接関連しない処理についての説明は省略する。
【0093】
まず、ステップS1において、CPU311は、ゲーム処理を実行する。具体的には、CPU311は、仮想カメラデータ502、照準オブジェクトデータ503、自機オブジェクトデータ505、Aグループオブジェクトデータ506、及びBグループオブジェクトデータ509に基づいて、仮想カメラ106、照準オブジェクト105、自機オブジェクト101、敵機オブジェクト103a〜103c、建造物オブジェクト104、及び地形オブジェクト102等を、仮想3次元空間に配置する。ここで、図4〜図6を用いて説明したように、照準オブジェクト105は、仮想カメラ106の撮像方向に、仮想カメラ106から所定距離離れた位置に配置される。また、自機オブジェクト101は、仮想カメラ106と位置Aとの間であって位置Aから所定距離離れた位置に、仮想カメラ106の撮像方向にその前方を向けて配置される。そして、CPU311は、仮想3次元空間において、仮想カメラ106、照準オブジェクト105及び自機オブジェクト101を、前方(図4(1)等のz軸正方向)に所定の速さで自動的(強制的に)に前進させる。
【0094】
そして、CPU311は、操作データ501に基づいて、ユーザによって行われた操作をゲームの進行に反映させる。例えばユーザが自機オブジェクト101の進行方向を変更する(つまり旋回する)操作を行った場合、CPU311は、自機オブジェクト101を当該操作に応じて旋回させる。その際、CPU311は、これらのオブジェクトの上記した位置関係(図4(1)等参照)を維持する。このことによって、自機オブジェクト101が進行方向を変更すると、それに連動して照準オブジェクト105の位置も移動することになる。例えばユーザが自機オブジェクト101に射撃を行わせる操作を行った場合、CPU311は、自機オブジェクト101に弾丸オブジェクトを発射させ、発射された弾丸オブジェクトを照準オブジェクト105に向かって移動させる。そして、弾丸オブジェクトが敵機オブジェクト(103a等)に命中した場合、この敵機オブジェクトを破壊する。なお、敵機オブジェクトが位置Aよりも自機オブジェクト101に近い位置で破壊された場合(爆発した場合)、CPU311は、自機オブジェクト101にこの爆発によるダメージを与える。また、敵機オブジェクトから発射された弾丸オブジェクトが自機オブジェクト101に命中した場合、CPU311は、自機オブジェクト101にダメージを与える。また、自機オブジェクト101が、敵機オブジェクト(103a等)、建造物オブジェクト104、又は地形オブジェクト102に衝突した場合、CPU311は、自機オブジェクト101にダメージを与える。以上のステップS1の後に、処理はステップS2に移る。
【0095】
ステップS2において、GPU312は、ステップS1によってゲームが進行している仮想3次元空間の描画処理を行う。その後、処理はステップS3に移る。ステップS2の描画処理については、図9を用いて後述する。
【0096】
ステップS3において、CPU311は、ゲームが終了したか否かを判定する。具体的には、CPU311は、仮想3次元空間で進行しているゲームが所定の終了状態になったか否か、及び操作データ501に基づいてユーザがゲームを終了させる操作を行ったか否かを判定し、所定の終了状態になった場合又はゲームを終了させる操作が行われた場合(ステップS3でYES)には、ゲームを終了させる。一方、ステップS3でNOと判定した場合、CPU311は、処理をS1に戻す。
【0097】
図9は、図8のステップS2の描画処理を示すフローチャートの一例である。なお、以下では、GPU312が図9の描画処理の全てを実行するものとして説明するが、この処理の一部がCPU311によって実行されてもよい。また、以下に説明するZバッファ法を用いた描画処理によって各オブジェクトがVRAM313に描画される際には、画素毎に深度比較(Zテスト)が行われて画素毎に描画が行われる。また、仮想カメラ106はステレオカメラであるので、以下の描画処理において、実際には左目用画像及び右目用画像がそれぞれVRAM313に描画されるが、以下では、説明の簡単のため、両画像の描画を一体的に説明する。
【0098】
まず、ステップS21において、GPU312は、照準オブジェクト105の各部分のZ値(深度)を算出し、算出したZ値を所定量オフセットする(ずらす)。具体的には、GPU312は、Z値オフセットデータ504を参照して、照準オブジェクト105の各部分のZ値を、当該照準オブジェクト105が仮想カメラ106に近づく方向に「0.4」オフセットする(図4(1)等の位置A参照)。その後、処理はステップS22に移る。ステップS21におけるオフセット処理は、Bグループオブジェクト等との前後関係を調整するためのものであり、必要がない場合はオフセットを行わない、またはオフセットを0にするようにしてもよい。
【0099】
ステップS22において、GPU312は、Aグループオブジェクト(地形オブジェクト102等)をVRAM313に描画する。その後、処理はステップS23に移る。
【0100】
ステップS23において、GPU312は、ステップS21でオフセットしたZ値(以下、「オフセット後Z値」という)を用いてZテストして照準オブジェクト105を描画した場合に、照準オブジェクト105において、Aグループオブジェクトに隠れる部分があるか否かを判定する。より具体的には、GPU312は、Zバッファの各画素において、ステップS22で描画されたAグループオブジェクトのZ値と照準オブジェクト105のオフセット後Z値とを比較し、後者のZ値が前者のZ値よりも大きい画素がある場合には、Aグループオブジェクトに隠れる部分があると判定する。ステップS23での判定がYESの場合には処理はステップS24に移り、この判定がNOの場合には処理はステップS25に移る。
【0101】
ステップS24において、GPU312は、ステップS23でAグループオブジェクトに隠れると判定された照準オブジェクト105の部分を、オフセット後Z値を用いたZテストにおいてZ値の大小関係を反転させてZテストを行って、VRAM313に描画する。例えば、Aグループオブジェクトが描画された表示画面(スクリーン)の或る画素に対応するZバッファの画素にZ値として「0.28」が設定されており、Zバッファのこの画素に対応するオフセット後Z値が「0.30」である場合、Zテストにおいて後者のZ値(つまり「0.30」)の方が小さいと判定する(Z値の大小関係を反転して判定する)。そして、表示画面(スクリーン)のこの画素に対応する照準オブジェクト105の部分の色彩を当該画素に描画し、上記のオフセット後Z値「0.30」でZバッファのこの画素のZ値を更新する。なお、GPU312は、ステップS24において照準オブジェクト105の部分を描画する際には、左目用画像及び右目用画像の間の視差を、ステップS21でオフセットする前のZ値(以下、「オフセット前Z値」という)に基づいて設定する。その後、処理はステップS25に移る。なお、大小関係を反転させるのではなく、Z値がZバッファ内の値より小さい場合に画素を描画するという設定にしても同じ結果が得られるので、そのようにしてもよい。
【0102】
ステップS25において、GPU312は、ステップS23でAグループオブジェクトに隠れると判定されていない照準オブジェクト105の部分(つまり隠れない部分)を、オフセット後Z値を用いたZテストにおいて通常のZテスト(Z値の大小関係を反転させないZテスト)を行って、VRAM313に描画する。なお、GPU312は、ステップS25において照準オブジェクト105の部分を描画する際にも、ステップS24と同様に、左目用画像及び右目用画像の間の視差を、オフセット前Z値に基づいて設定する。その後、処理はステップS26に移る。
【0103】
ステップS23〜ステップS25までの処理は、照準オブジェクト105を隠れる部分と隠れない部分に分けて、それぞれ処理を行なうものであるが、別の実施形態においては、照準オブジェクト105の全ての部分に対して、通常のZテストによる描画処理と、大小関係の反転したZテストによる描画処理との両方を行なうようにすれば、通常のZテストで照準オブジェクト105が描画されなかった部分には反転したZテストによって描画が行われるので、隠れるか否かの判定を行わなくともよくなる。この場合、2回処理することに替えて、同じ位置に同じ形状の照準オブジェクト105を2つ用意し、一方を通常のZテスト、もう一方を反転したZテストで描画するように設定してもよい。その場合さらに、反転したZテストが適用される照準オブジェクト105を半透明にすることで、他のモデルに対してさらに奥側にある照準が重畳されることによる違和感を軽減することができる。すなわち、手前側のオブジェクトよりも優先させて描画すると共に、手前側のオブジェクトに重なる部分が半透明となるよう描画することで、照準オブジェクト105を視差によって奥側に見せることと常に表示されるようにすることを自然に両立させることができる。半透明にする場合は、描画処理は後に行なう方がよく、照準オブジェクト105を常に表示させたい場合等は、Bグループオブジェクトや自機オブジェクト101よりもさらに後に描画処理するのがよい。また、隠れる部分の有無の判定を行う場合に、隠れる部分があると判定された場合に照準オブジェクト105全体を半透明で描画するようにしてもよい。また、自然に見せるために半透明にする以外にも、色を薄くする、テクスチャを変更する、等の方法で自然に見せるようにしてもよい。
【0104】
ステップS26において、GPU312は、Bグループオブジェクト(敵機オブジェクト(103a等)や建造物オブジェクト104等)を、通常のZテスト(Z値の大小関係を反転させないZテスト)をしてVRAM313に描画する。その後、処理はステップS27に移る。
【0105】
ステップS27において、GPU312は、自機オブジェクト101を、通常のZテスト(Z値の大小関係を反転させないZテスト)をしてVRAM313に描画する。その後、処理はステップS28に移る。
【0106】
ステップS28において、GPU312は、以上のステップS21〜S27の処理によってVRAM313に描画された画像(左目用画像及び右目用画像から成る立体視画像)を、上側LCD22に出力する。この結果として、上側LCD22に、仮想カメラ106によって撮像された仮想3次元空間の立体視画像が表示されることとなる。その後、処理は図8のステップS3の処理に移る。
【0107】
以上のように、本実施形態では、Zバッファ法を用いた描画処理において、照準オブジェクト105のZ値をオフセットして、オフセット後のZ値に基づいたオブジェクト描画の優先順位に従って立体視画像を描画する。また、この描画処理において、照準オブジェクト105を描画する際には、左目用画像及び右目用画像の間の視差を、オフセット前のZ値に基づいて設定する。このことによって、立体視画像において(図4(2)等参照)、照準オブジェクト105を仮想3次元空間内で配置された位置に応じた奥行き感(視差)で描画しつつ、仮想カメラ106と照準オブジェクト105との間(但し、位置Aよりも奥)に位置して照準オブジェクト105を遮るAグループオブジェクトが存在した場合であっても、このオブジェクトに隠されることなく照準オブジェクト105を描画することができる。
【0108】
また、本実施形態では、照準オブジェクト105は、自機オブジェクト101と位置Aとの間に位置して照準オブジェクト105を遮るAグループオブジェクトには隠されて描画されない(図5参照)。このことから、ユーザは、射撃して爆破した場合に自機オブジェクト101がダメージを受ける敵機オブジェクトを識別できることとなる。
【0109】
また、本実施形態では、照準オブジェクト105は、地形オブジェクト102に対しては常に優先して描画される。このことによって、例えば図6(1)に示すように自機オブジェクト101の前方に山が迫った場合においても、照準オブジェクト105は山に隠れることなく奥行き感を持って表示され続ける。この結果として、ユーザは、例えば山々の間を縫うように自機オブジェクト101を飛行させるような場合であっても、照準オブジェクト105を見失うことがなくなる。
【0110】
以上に説明したように、本実施形態によれば、仮想3次元空間を立体視表示するに際して、仮想3次元空間内を指示する指示オブジェクト(照準オブジェクト105)を、その機能を損なうことなく、又、奥行き感を持たせて自然に立体視表示することができる。
【0111】
また、以上に説明した本実施形態では、描画処理の際に、照準オブジェクト105のZ値をオフセットしたうえで照準オブジェクト105がAグループオブジェクトに隠れるか否かを判定して、隠れる部分についてはZ値の大小関係を反転させてZテストして描画していた(図9のステップS21、S23〜S25参照)。しかし、図11(1)に示すように描画処理の際に照準オブジェクト105のZ値をオフセットせず、照準オブジェクト105が他のオブジェクトに隠れるか否かを判定して、隠れる部分についてはZ値の大小関係を反転させてZテストして描画してもよい。この様にした場合、図11(2)に示すように、照準オブジェクト105を、奥行き感を持たせつつ常に優先して表示(描画)することができる。また、隠れるか否かの判定を行わずに、同じ位置に同じ形状の照準オブジェクト105を2つ用意し、一方を通常のZテスト、もう一方を反転したZテストで描画するように設定してもよい。その場合さらに、反転したZテストが適用される照準オブジェクト105を半透明にすることで、図11(2)に示すように、立体視によって奥側に見えるものが手前に描画されている部分が半透明になり、周囲となじむことによって違和感を軽減することができる。すなわち、手前側のオブジェクトよりも優先させて描画すると共に、手前側のオブジェクトに重なる部分が半透明となるよう描画することで、照準オブジェクト105を視差によって奥側に見せることと常に表示されるようにすることを自然に両立させることができる。半透明にする場合は、描画処理は後に行なう方がよい。また、半透明以外にも、色を薄くする、テクスチャを変更する、等でもよい。
【0112】
また、以上に説明した本実施形態及び変形例では、Zバッファ法を用いた描画処理において、Z値をオフセット等するオブジェクトの一例として、照準オブジェクト105を挙げて説明した。しかし、Zバッファ法を用いた描画処理においてZ値をオフセット等するオブジェクトは、仮想3次元空間内の位置を指示するためのオブジェクト(指示オブジェクト)であってもよい。更には、Zバッファ法を用いた描画処理においてZ値をオフセット等するオブジェクトは、仮想3次元空間内において他のオブジェクトよりも優先して表示(描画)されるべきオブジェクト(優先表示オブジェクト)であればよく、例えば、所定のキャラクタを示すオブジェクトであってもよい。
【0113】
また、本実施形態は、本発明をゲーム装置10に適用したものであるが、本発明はゲーム装置10に限定されない。例えば、携帯電話機、簡易型携帯電話機(PHS)、PDA等の携帯情報端末にも本発明の適用は可能である。また、据え置き型ゲーム機やパーソナルコンピュータ等にも本発明の適用は可能である。
【0114】
また、本実施形態では、1つのゲーム装置10で上述した処理を実行しているが、有線又は無線で通信可能な複数の装置で上記処理を分担してもよい。
【0115】
また、本実施形態において、ゲーム装置1の形状や、それに設けられている各種操作ボタン14等、タッチパネル13の形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、上述した情報処理で用いられる処理順序、設定値、判定に用いられる値等は、単なる一例に過ぎず、本発明の範囲を逸脱しなければ他の順序や値であっても、本発明を実現できることは言うまでもない。
【0116】
また、本実施形態のゲーム装置10において実行される各種情報処理プログラムは、外部メモリ44等の記憶媒体を通じてゲーム装置10に供給されるだけでなく、有線又は無線の通信回線を通じてゲーム装置10に供給されてもよい。また、上記プログラムは、ゲーム装置10内部の不揮発性記憶装置(データ保存用内部メモリ35等)に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、CD−ROM、DVD、或いはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ等であってもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを一時的に記憶する揮発性メモリでもよい。
【0117】
以上、本発明を詳細に説明してきたが、上述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。
【符号の説明】
【0118】
10 ゲーム装置
11 下側ハウジング
12 下側LCD
13 タッチパネル
14 操作ボタン
15 アナログスティック
16 LED
21 上側ハウジング
22 上側LCD
23 外側撮像部
23a 外側撮像部(左)
23b 外側撮像部(右)
24 内側撮像部
25 3D調整スイッチ
26 3Dインジケータ
28 タッチペン
31 情報処理部
32 メインメモリ
101 自機オブジェクト
102 地形オブジェクト
103a〜103c 敵機オブジェクト
104 建造物オブジェクト
105 照準オブジェクト
106 仮想カメラ(仮想ステレオカメラ)
311 CPU
312 GPU
313 VRAM

【特許請求の範囲】
【請求項1】
立体視表示可能な表示装置に、仮想ステレオカメラで撮像した仮想3次元空間の立体視画像を表示する情報処理装置のコンピュータで実行される情報処理プログラムであって、
前記コンピュータを、
前記仮想3次元空間内において、前記仮想ステレオカメラの撮像範囲内に優先表示オブジェクトを配置する優先表示オブジェクト配置手段と、
前記仮想ステレオカメラで前記仮想3次元空間を撮像して立体視画像を描画する立体視画像描画手段と、
前記立体視画像描画手段によって描画された立体視画像を前記表示装置に表示させる表示制御手段として機能させ、
前記立体視画像描画手段は、前記優先表示オブジェクトを、前記優先表示オブジェクトよりも手前側に位置する所定のオブジェクトよりも優先させて描画すると共に、当該所定のオブジェクトに重なる部分が半透明となるよう描画する、情報処理プログラム。
【請求項2】
前記立体視画像描画手段は、前記所定のオブジェクトが優先される優先順位で前記優先表示オブジェクトを描画し、さらに前記優先表示オブジェクトが優先される優先順位で、かつ半透明で前記優先表示オブジェクトを描画することによって、前記重なる部分が半透明となるような描画を行う、請求項1に記載の情報処理プログラム。
【請求項3】
前記優先表示オブジェクトは、第1のオブジェクトと、半透明な第2のオブジェクトからなり、
前記立体視画像描画手段は、前記所定のオブジェクトが優先される優先順位で前記第1のオブジェクトを描画し、さらに前記優先表示オブジェクトが優先される優先順位で、前記第2のオブジェクトを描画する、請求項2に記載の情報処理プログラム。
【請求項4】
前記コンピュータを、ユーザからの入力を受け付ける入力受付手段として更に機能させ、
前記優先表示オブジェクト配置手段は、更に、前記入力受付手段によって受け付けた入力に基づいて、前記仮想3次元空間に配置した前記優先表示オブジェクトを移動させる、請求項1ないし3のいずれかに記載の情報処理プログラム。
【請求項5】
前記コンピュータをさらに、ユーザオブジェクトを移動させるユーザオブジェクト配置手段として機能させる、請求項8に記載の情報処理プログラム。
【請求項6】
前記優先表示オブジェクトは、前記仮想3次元空間内の位置を指示するための指示オブジェクトである、請求項1ないし5のいずれかに記載の情報処理プログラム。
【請求項7】
立体視表示可能な表示装置に、仮想ステレオカメラで撮像した仮想3次元空間の立体視画像を表示する情報処理装置であって、
前記仮想3次元空間内において、前記仮想ステレオカメラの撮像範囲内に優先表示オブジェクトを配置する優先表示オブジェクト配置手段と、
前記仮想ステレオカメラで前記仮想3次元空間を撮像して立体視画像を描画する立体視画像描画手段と、
前記立体視画像描画手段によって描画された立体視画像を前記表示装置に表示させる表示制御手段とを備え、
前記立体視画像描画手段は、前記優先表示オブジェクトを、前記優先表示オブジェクトよりも手前側に位置する所定のオブジェクトよりも優先させて描画すると共に、当該所定のオブジェクトに重なる部分が半透明となるよう描画する、情報処理装置。
【請求項8】
立体視表示可能な表示装置に、仮想ステレオカメラで撮像した仮想3次元空間の立体視画像を表示する情報処理システムであって、
前記仮想3次元空間内において、前記仮想ステレオカメラの撮像範囲内に優先表示オブジェクトを配置する優先表示オブジェクト配置手段と、
前記仮想ステレオカメラで前記仮想3次元空間を撮像して立体視画像を描画する立体視画像描画手段と、
前記立体視画像描画手段によって描画された立体視画像を前記表示装置に表示させる表示制御手段とを備え、
前記立体視画像描画手段は、前記優先表示オブジェクトを、前記優先表示オブジェクトよりも手前側に位置する所定のオブジェクトよりも優先させて描画すると共に、当該所定のオブジェクトに重なる部分が半透明となるよう描画する、情報処理システム。
【請求項9】
立体視表示可能な表示装置に、仮想ステレオカメラで撮像した仮想3次元空間の立体視画像を表示する情報処理方法であって、
前記仮想3次元空間内において、前記仮想ステレオカメラの撮像範囲内に優先表示オブジェクトを配置する優先表示オブジェクト配置ステップと、
前記仮想ステレオカメラで前記仮想3次元空間を撮像して立体視画像を描画する立体視画像描画ステップと、
前記立体視画像描画ステップによって描画された立体視画像を前記表示装置に表示させる表示制御ステップとを備え、
前記立体視画像描画ステップでは、前記優先表示オブジェクトを、前記優先表示オブジェクトよりも手前側に位置する所定のオブジェクトよりも優先させて描画すると共に、当該所定のオブジェクトに重なる部分が半透明となるよう描画する、情報処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2012−221409(P2012−221409A)
【公開日】平成24年11月12日(2012.11.12)
【国際特許分類】
【出願番号】特願2011−89233(P2011−89233)
【出願日】平成23年4月13日(2011.4.13)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】