表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法
【課題】実世界画像を用いて新たな画像を設定して表示制御する表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法を提供する。
【解決手段】撮像画像取得手段は、実カメラによって撮像された撮像画像を取得する。色検出手段は、撮像画像取得手段によって取得された撮像画像において、RGB値、色相、彩度、および明度からなる群から選ばれた少なくとも1つを含む色情報に対して特定の範囲の色情報を有する少なくとも1つの画素を検出する。画像生成手段は、色検出手段が検出した画素が有する特定の範囲の色情報に基づいて、仮想世界に配置されるオブジェクトの画像を生成する。画像表示制御手段は、画像生成手段によって生成された画像を表示装置に表示する。
【解決手段】撮像画像取得手段は、実カメラによって撮像された撮像画像を取得する。色検出手段は、撮像画像取得手段によって取得された撮像画像において、RGB値、色相、彩度、および明度からなる群から選ばれた少なくとも1つを含む色情報に対して特定の範囲の色情報を有する少なくとも1つの画素を検出する。画像生成手段は、色検出手段が検出した画素が有する特定の範囲の色情報に基づいて、仮想世界に配置されるオブジェクトの画像を生成する。画像表示制御手段は、画像生成手段によって生成された画像を表示装置に表示する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法に関し、より具体的には、実世界画像を用いて仮想オブジェクトを設定して表示制御する表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法に関する。
【背景技術】
【0002】
従来、実世界画像と仮想世界画像とを重ね合わせた画像を表示する装置が提案されている(例えば、特許文献1参照)。上記特許文献1で開示されたゲーム装置は、外部カメラによって撮像された画像を背景画像としてゲーム画像に重ね合わせて表示している。具体的には、上記ゲーム装置は、上記背景画像が一定時間毎に更新され、最新の背景画像をゲーム画像と重ね合わせて表示している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−113746号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記特許文献1で開示されたゲーム装置は、外部カメラによって撮像された画像が単に背景画像として表示されるだけであり、重ね合わされる背景画像とゲーム画像とが何ら関連のない状態で表示される。したがって、表示される画像自体が単調であり、面白味のある画像をユーザに提示することはできない。
【0005】
それ故に、本発明の目的は、実世界画像を用いて新たな画像を設定して表示制御することができる表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法を提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。なお、特許請求の範囲の記載を解釈する際に、特許請求の範囲の記載によってのみその範囲が解釈されるべきであることが理解され、特許請求の範囲の記載と本欄の記載とが矛盾する場合には、特許請求の範囲の記載が優先する。
【0007】
本発明の表示制御プログラムの一構成例は、表示装置に画像を表示させる表示制御装置のコンピュータを、撮像画像取得手段、色検出手段、画像生成手段、および画像表示制御手段として機能させる。撮像画像取得手段は、実カメラによって撮像された撮像画像を取得する。色検出手段は、撮像画像取得手段によって取得された撮像画像において、RGB値、色相、彩度、および明度からなる群から選ばれた少なくとも1つを含む色情報に対して特定の範囲の色情報を有する少なくとも1つの画素を検出する。画像生成手段は、色検出手段が検出した画素が有する特定の範囲の色情報に基づいて、仮想世界に配置されるオブジェクトの画像を生成する。画像表示制御手段は、画像生成手段によって生成された画像を表示装置に表示する。
【0008】
上記によれば、実カメラによって撮像された撮像画像から特定の範囲の色情報を有する画素を検出し、当該色情報に応じたオブジェクトを生成して表示するため、実世界画像を用いて新たな画像を設定して表示制御することができる。
【0009】
また、上記画像生成手段は、撮像画像取得手段によって取得された撮像画像とオブジェクトを仮想世界に配置して仮想カメラから見た仮想世界画像とを合成した合成画像を生成してもよい。画像表示制御手段は、画像生成手段により生成された合成画像を表示装置に表示してもよい。
【0010】
上記によれば、撮像画像(実世界画像)とオブジェクトの画像(仮想世界画像)とが合成されて表示されるため、さらに面白味のある画像を提示することができる。
【0011】
また、上記画像生成手段は、色検出手段により検出された特定の範囲の色情報を有する画素の撮像画像における検出位置に応じて、仮想世界画像におけるオブジェクトの画像が当該検出位置に重なって撮像画像に合成されるように当該オブジェクトを仮想世界に配置し、仮想カメラからオブジェクトを見た仮想世界の画像を仮想世界画像として生成してもよい。
【0012】
上記によれば、撮像画像から検出された特定の範囲の色情報を有する画素の位置に対応する仮想空間にオブジェクトが配置されるため、あたかも撮像画像の当該画素上にオブジェクトが配置されているような表現が可能となる。
【0013】
また、上記画像生成手段は、仮想カメラ設定手段を含んでもよい。仮想カメラ設定手段は、実カメラの動きを検出する検出手段からの出力に基づいて、当該実カメラの動きを検出し、当該実カメラの動きと同じ動きを仮想カメラに与えて当該仮想カメラの位置および撮像方向を設定する。この場合、画像生成手段は、オブジェクトを仮想世界に配置した仮想世界画像を生成した後、仮想カメラ設定手段によって設定された仮想カメラからオブジェクトを見た仮想世界の画像を仮想世界画像として生成してもよい。
【0014】
上記によれば、実カメラの動きと同じ動きが仮想カメラに与えられるため、実カメラの撮像範囲が変わったとしても、撮像範囲変更後の撮像画像に対して同じ位置にオブジェクトを配置することができ、あたかも撮像画像で表現された実空間内にオブジェクトが配置されているように表示することができる。
【0015】
また、上記色検出手段は、領域検出手段および面積算出手段を含んでもよい。領域検出手段は、撮像画像取得手段により取得された撮像画像において、特定の範囲の色情報を有する画素の領域を検出する。面積算出手段は、領域検出手段により検出された領域にしたがって決められる面積を算出する。上記画像生成手段は、面積算出手段により算出された面積に応じて、オブジェクトの大きさを設定して当該オブジェクトの画像を生成してもよい。
【0016】
上記によれば、撮像画像から検出された特定の範囲の色情報を有する画素群の面積に応じてオブジェクトの大きさが決定されるため、色だけでなく面積も考慮されて配置されるオブジェクトが変化するため、さらに面白味のある画像を提示することができる。
【0017】
また、上記画像生成手段は、オブジェクト設定手段を含んでもよい。オブジェクト設定手段は、色情報の特定の範囲毎に複数のオブジェクトを予め設定する。上記画像生成手段は、複数のオブジェクトのうち、色検出手段が検出した画素が有する特定の範囲の色情報に対応するオブジェクトを仮想世界に配置して、当該オブジェクトの画像を生成してもよい。
【0018】
上記によれば、色情報の特定の範囲毎に予め複数のオブジェクトが設定され、撮像画像から検出された画素が有する特定の範囲の色情報に応じて当該複数のオブジェクトから仮想世界に配置するオブジェクトが選択されるため、色に応じた様々なオブジェクトを表示対象として設定することが可能であり、さらに面白味のある画像を提示することができる。
【0019】
また、上記表示制御プログラムは、操作入力データ取得手段、操作オブジェクト配置手段、および加点手段として、コンピュータをさらに機能させてもよい。操作入力データ取得手段は、ユーザが入力した操作入力を示すデータを取得する。操作オブジェクト配置手段は、操作入力データ取得手段が取得したデータが所定の操作入力を示す場合、仮想世界にオブジェクトとは異なる操作オブジェクトを配置する。加点手段は、仮想世界においてオブジェクトと操作オブジェクトとが所定の位置関係となった場合に、所定の点数を加点する。上記画像生成手段は、仮想世界に操作オブジェクトも配置して、オブジェクトおよび操作オブジェクトの画像を生成してもよい。
【0020】
上記によれば、ユーザの操作に応じて弾等の発射物を示す発射オブジェクト等を仮想世界に配置して、オブジェクト同士の位置関係によって所定の得点が得られるため、ユーザが飽きることを防止しながらオブジェクトの画像を表示することができる。
【0021】
また、上記表示制御プログラムは、移動オブジェクト配置手段として、コンピュータをさらに機能させてもよい。移動オブジェクト配置手段は、所定のアルゴリズムにしたがって移動する移動オブジェクトを操作オブジェクトとは別に仮想世界に配置する。この場合、上記加点手段は、移動オブジェクトと操作オブジェクトとが所定の位置関係となった場合に、所定の点数をさらに加点してもよい。上記画像生成手段は、仮想世界に移動オブジェクトも配置して、オブジェクト、操作オブジェクト、および移動オブジェクトの画像を生成してもよい。
【0022】
上記によれば、ユーザは、移動オブジェクトに対して操作オブジェクトを所定の位置関係にして得点を得ることを楽しみつつ、さらに実カメラを動かしながら移動オブジェクト以外のオブジェクトも色情報に基づいて出現させて操作オブジェクトを所定の位置関係にすることによって得点をさらに得ることを楽しむことができる。例えば、仮想世界に配置された移動オブジェクトを倒していくゲームと、特定の色を被写体として撮像してオブジェクトを同じ仮想世界に出現させて得点対象とするゲームとを同時に進行させることで、ユーザの興趣性を向上させることができる。
【0023】
また、上記画像生成手段は、色検出手段が検出した特定の範囲の色情報を有する画素が所定の領域以上検出された場合、当該特定の範囲の色情報に対応するオブジェクトを仮想世界に配置して当該オブジェクトの画像を生成してもよい。
【0024】
上記によれば、オブジェクトを表示するためには特定の範囲の色情報を有する画素が所定の領域以上検出される必要があるため、ユーザは当該オブジェクトを表示させるためにオブジェクトを表示させるための被写体を選択しながら、その撮像範囲を調整するような撮像操作が必要となり、新たな画像を表示するために新たな操作が要求されることになる。
【0025】
また、上記色検出手段は、彩度および明度を示す色情報がそれぞれ所定の閾値以上に高く、かつ、色相を示す色情報が所定の範囲内を示す少なくとも1つの画素を検出してもよい。
【0026】
上記によれば、複数の色情報を組み合わせて色検出することによって、色の誤判定を防止しながらユーザが本来区別している色認識に色検出結果を近づけることができる。
【0027】
また、上記色検出手段は、ブロック分割手段、色相算出手段、ブロック分類手段、およびブロック群選択手段を含んでもよい。ブロック分割手段は、撮像画像を複数の画素で構成されるブロックに分割する。色相算出手段は、ブロックに属する画素がそれぞれ有するRGB値に基づいて、当該ブロックに対する色相を示す値をブロック毎に算出する。ブロック分類手段は、ブロックに対する色相を示す値が含まれる所定の色相範囲に基づいて、ブロックが属する色相分類をそれぞれ設定する。ブロック群選択手段は、隣接するブロックが同じ色相分類に属するブロック群の大きさに応じて、オブジェクトの画像を生成する対象とするブロック群を選択する。上記画像生成手段は、ブロック群選択手段が選択したブロック群の色相分類に応じて、仮想世界に配置するオブジェクトを選択してもよい。
【0028】
上記によれば、ブロック毎に色相を判定することによって色検出処理が容易となり、処理負荷が軽減される。
【0029】
また、上記撮像画像取得手段は、表示制御装置が利用可能な実カメラによってリアルタイムに撮像された実世界の撮像画像を繰り返し取得してもよい。上記色検出手段は、撮像画像取得手段によって繰り返し取得された撮像画像それぞれにおいて、特定の範囲の色情報を有する画素を検出してもよい。上記画像生成手段は、撮像画像取得手段によって繰り返し取得された撮像画像それぞれと当該撮像画像から生成された仮想世界画像とを合成して繰り返し合成画像を生成してもよい。上記画像表示制御手段は、撮像画像取得手段によって繰り返し取得された撮像画像それぞれに仮想世界画像が合成画像を表示装置に繰り返し表示してもよい。
【0030】
上記によれば、リアルタイムに撮像された実世界の撮像画像から特定の範囲の色情報を有する画素を検出し、当該色情報に応じたオブジェクトを当該リアルタイムに撮像された画像に合成して表示するため、リアルタイムに得られる実世界画像を用いて新たな画像を設定して表示制御することができる。
【0031】
また、本発明は、上記各手段を備える表示制御装置および表示制御システムや上記各手段で行われる動作を含む表示制御方法の形態で実施されてもよい。
【発明の効果】
【0032】
本発明によれば、実カメラによって撮像された撮像画像から特定の範囲の色情報を有する画素を検出し、当該色情報に応じたオブジェクトを生成して表示するため、実世界画像を用いて新たな画像を設定して表示制御することができる。
【図面の簡単な説明】
【0033】
【図1】開いた状態におけるゲーム装置10の一例を示す正面図
【図2】開いた状態におけるゲーム装置10の一例を示す側面図
【図3A】閉じた状態におけるゲーム装置10の一例を示す左側面図
【図3B】閉じた状態におけるゲーム装置10の一例を示す正面図
【図3C】閉じた状態におけるゲーム装置10の一例を示す右側面図
【図3D】閉じた状態におけるゲーム装置10の一例を示す背面図
【図4】ユーザがゲーム装置10を両手で把持する様子の一例を示す図
【図5】ゲーム装置10の内部構成の一例を示すブロック図
【図6A】青色の被写体が含まれたカメラ画像CIが上側LCD22に表示された一例を示す図
【図6B】カメラ画像CIに含まれる青色の被写体から標的オブジェクトOBJ1が出現した様子が上側LCD22に表示された一例を示す図
【図7A】緑色の被写体が含まれたカメラ画像CIが上側LCD22に表示された一例を示す図
【図7B】カメラ画像CIに含まれる緑色の被写体から標的オブジェクトOBJ2が出現した様子が上側LCD22に表示された一例を示す図
【図8A】赤色の被写体が含まれたカメラ画像CIが上側LCD22に表示された一例を示す図
【図8B】カメラ画像CIに含まれる赤色の被写体から標的オブジェクトOBJ3が出現した様子が上側LCD22に表示された一例を示す図
【図9】図1のゲーム装置10で実行される表示制御プログラムを実行することに応じて、メインメモリ32に記憶される各種データの一例を示す図
【図10】図9の特定色判定結果データDdの一例を示す図
【図11】図9の標的オブジェクト設定データDe1の一例を示す図
【図12】図1のゲーム装置10で実行される表示制御プログラムを実行することによってゲーム装置10が表示制御処理する動作の一例を示すフローチャート
【図13】図12のステップ55で行われる標的オブジェクト出現処理の詳細な動作の一例を示すサブルーチン
【図14】図12のステップ56で行われる弾オブジェクト処理の詳細な動作の一例を示すサブルーチン
【図15】図13のステップ71で行われる色検出処理の詳細な動作の一例を示すサブルーチン
【図16】カメラ画像をレンダリングする処理の一例を説明するための説明図
【図17】カメラ画像をレンダリングする際の座標の一例を説明するための説明図
【図18】同じ特定色で繋がっているブロック群と矩形および標的オブジェクトの位置との関係の一例を説明するための図
【図19】標的オブジェクトOBJ1および弾オブジェクトBOをレンダリングする処理の一例を説明するための説明図
【図20】標的オブジェクトOBJおよび弾オブジェクトBOをレンダリングする際の座標の一例を説明するための説明図
【発明を実施するための形態】
【0034】
図面を参照して、本発明の一実施形態に係る表示制御プログラムを実行する表示制御装置について説明する。本発明の表示制御プログラムは、任意のコンピュータシステムで実行されることによって適用することができるが、表示制御装置の一例として携帯型のゲーム装置10を用い、ゲーム装置10で実行される表示制御プログラムを用いて説明する。なお、図1〜図3Dは、ゲーム装置10の外観の一例を示す平面図である。ゲーム装置10は、一例として携帯型のゲーム装置であり、図1〜図3Dに示すように折り畳み可能に構成されている。図1は、開いた状態(開状態)におけるゲーム装置10の一例を示す正面図である。図2は、開状態におけるゲーム装置10の一例を示す右側面図である。図3Aは、閉じた状態(閉状態)におけるゲーム装置10の一例を示す左側面図である。図3Bは、閉状態におけるゲーム装置10の一例を示す正面図である。図3Cは、閉状態におけるゲーム装置10の一例を示す右側面図である。図3Dは、閉状態におけるゲーム装置10の一例を示す背面図である。ゲーム装置10は、撮像部を内蔵しており、当該撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置10は、交換可能なメモリカード内に記憶され、または、サーバや他のゲーム装置から受信したゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラから見た仮想空間画像等のコンピュータグラフィックス処理により生成された画像を画面に表示することもできる。
【0035】
図1〜図3Dにおいて、ゲーム装置10は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に連結されている。図1の例では、下側ハウジング11および上側ハウジング21は、それぞれ横長の長方形の板状で形成され、互いの長辺部分で回動可能に連結されている。通常、ユーザは、開状態でゲーム装置10を使用する。そして、ユーザは、ゲーム装置10を使用しない場合には閉状態としてゲーム装置10を保管する。また、ゲーム装置10は、上記閉状態および開状態のみでなく、下側ハウジング11と上側ハウジング21とのなす角度が閉状態と開状態との間の任意の角度において、連結部分に発生する摩擦力などによってその開閉角度を維持することができる。つまり、上側ハウジング21を下側ハウジング11に対して任意の角度で静止させることができる。
【0036】
図1および図2に示されるように、下側ハウジング11の上側長辺部分には、下側ハウジング11の内側面(主面)11Bに対して垂直な方向に突起する突起部11Aが設けられる。また、上側ハウジング21の下側長辺部分には、上側ハウジング21の下側面から当該下側面に垂直な方向に突起する突起部21Aが設けられる。下側ハウジング11の突起部11Aと上側ハウジング21の突起部21Aとが連結されることにより、下側ハウジング11と上側ハウジング21とが、折り畳み可能に接続される。
【0037】
下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12、タッチパネル13、各操作ボタン14A〜14L(図1、図3A〜図3D)、アナログスティック15、LED16A〜16B、挿入口17、および、マイクロフォン用孔18が設けられる。以下、これらの詳細について説明する。
【0038】
図1に示すように、下側LCD12は下側ハウジング11に収納される。下側LCD12は横長形状であり、長辺方向が下側ハウジング11の長辺方向に一致するように配置される。下側LCD12は、下側ハウジング11の中央に配置される。下側LCD12は、下側ハウジング11の内側面(主面)に設けられ、下側ハウジング11の内側面に設けられた開口部から下側LCD12の画面が露出する。そして、ゲーム装置10を使用しない場合には上記閉状態としておくことによって、下側LCD12の画面が汚れたり傷ついたりすることを防止することができる。下側LCD12の画素数は、一例として、256dot×192dot(横×縦)である。下側LCD12は、後述する上側LCD22とは異なり、画像を(立体視可能ではなく)平面的に表示する表示装置である。なお、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側LCD12として、任意の解像度の表示装置を利用することができる。
【0039】
図1に示されるように、ゲーム装置10は、入力装置として、タッチパネル13を備えている。タッチパネル13は、下側LCD12の画面上を覆うように装着されている。なお、本実施形態では、タッチパネル13は、例えば抵抗膜方式のタッチパネルが用いられる。ただし、タッチパネル13は、抵抗膜方式に限らず、例えば静電容量方式等、任意の押圧式のタッチパネルを用いることができる。本実施形態では、タッチパネル13として、下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度とが一致している必要はない。また、下側ハウジング11の上側面には挿入口17(図1および図3Dに示す点線)が設けられている。挿入口17は、タッチパネル13に対する操作を行うために用いられるタッチペン28を収納することができる。なお、タッチパネル13に対する入力は通常タッチペン28を用いて行われるが、タッチペン28に限らずユーザの指でタッチパネル13に対する入力をすることも可能である。
【0040】
各操作ボタン14A〜14Lは、所定の入力を行うための入力装置である。図1に示されるように、下側ハウジング11の内側面(主面)には、各操作ボタン14A〜14Lのうち、十字ボタン14A(方向入力ボタン14A)、ボタン14B、ボタン14C、ボタン14D、ボタン14E、電源ボタン14F、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lが設けられる。十字ボタン14Aは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン14B、ボタン14C、ボタン14D、およびボタン14Eは、十字状に配置される。ボタン14A〜14E、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lには、ゲーム装置10が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン14Aは選択操作等に用いられ、各操作ボタン14B〜14Eは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン14Fは、ゲーム装置10の電源をオン/オフするために用いられる。
【0041】
アナログスティック15は、方向を指示するデバイスであり、下側ハウジング11の内側面の下側LCD12より左側領域の上部領域に設けられる。図1に示すように、十字ボタン14Aが下側LCD12より左側領域の下部領域に設けられ、アナログスティック15が十字ボタン14Aの上方に設けられる。また、アナログスティック15および十字ボタン14Aは、下側ハウジング11を把持した左手の親指で操作可能な位置に設計される。また、アナログスティック15を上部領域に設けたことにより、下側ハウジング11を把持する左手の親指が自然と位置するところにアナログスティック15が配され、十字ボタン14Aは、左手の親指を少し下にずらした位置に配される。アナログスティック15は、そのキートップが、下側ハウジング11の内側面に平行にスライドするように構成されている。アナログスティック15は、ゲーム装置10が実行するプログラムに応じて機能する。例えば、3次元仮想空間に所定のオブジェクトが登場するゲームがゲーム装置10によって実行される場合、アナログスティック15は、当該所定のオブジェクトを3次元仮想空間内で移動させるための入力装置として機能する。この場合において、所定のオブジェクトは、アナログスティック15のキートップがスライドした方向に移動される。なお、アナログスティック15として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いてもよい。
【0042】
十字状に配置される、ボタン14B、ボタン14C、ボタン14D、およびボタン14Eの4つのボタンは、下側ハウジング11を把持する右手の親指が自然と位置するところに配置される。また、これらの4つのボタンとアナログスティック15とは、下側LCD12を挟んで、左右対称に配置される。これにより、ゲームプログラムによっては、例えば、左利きの人が、これらの4つのボタンを使用して方向指示入力をすることも可能である。
【0043】
また、下側ハウジング11の内側面には、マイクロフォン用孔18が設けられる。マイクロフォン用孔18の下部には後述する音声入力装置としてのマイク(図5参照)が設けられ、当該マイクがゲーム装置10の外部の音を検出する。
【0044】
図3Bおよび図3Dに示されるように、下側ハウジング11の上側面には、Lボタン14GおよびRボタン14Hが設けられている。Lボタン14Gは、下側ハウジング11の上面の左端部に設けられ、Rボタン14Hは、下側ハウジング11の上面の右端部に設けられる。後述のように、Lボタン14GおよびRボタン14Hは、撮像部のシャッターボタン(撮影指示ボタン)として機能する。また、図3Aに示されるように、下側ハウジング11の左側面には、音量ボタン14Iが設けられる。音量ボタン14Iは、ゲーム装置10が備えるスピーカの音量を調整するために用いられる。
【0045】
図3Aに示されるように、下側ハウジング11の左側面には開閉可能なカバー部11Cが設けられる。このカバー部11Cの内側には、ゲーム装置10とデータ保存用外部メモリ46とを電気的に接続するためのコネクタ(図示せず)が設けられる。データ保存用外部メモリ46は、上記コネクタに着脱自在に装着される。データ保存用外部メモリ46は、例えば、ゲーム装置10によって撮像された画像のデータを記憶(保存)するために用いられる。なお、上記コネクタおよびそのカバー部11Cは、下側ハウジング11の右側面に設けられてもよい。
【0046】
図3Dに示されるように、下側ハウジング11の上側面にはゲーム装置10とゲームプログラムを記録した外部メモリ45を挿入するための挿入口11Dが設けられ、その挿入口11Dの内部には、外部メモリ45と電気的に着脱自在に接続するためのコネクタ(図示せず)が設けられる。外部メモリ45がゲーム装置10に接続されることにより、所定のゲームプログラムが実行される。なお、上記コネクタおよび挿入口11Dは、下側ハウジング11の他の側面(例えば、右側面等)に設けられてもよい。
【0047】
図1に示されるように、下側ハウジング11の下側面には、ゲーム装置10の電源のON/OFF状況をユーザに通知する第1LED16Aが設けられる。また、図3Cに示されるように、下側ハウジング11の右側面には、ゲーム装置10の無線通信の確立状況をユーザに通知する第2LED16Bが設けられる。ゲーム装置10は、他の機器との間で無線通信を行うことが可能であり、第2LED16Bは、他の機器との無線通信が確立している場合に点灯する。ゲーム装置10は、例えば、IEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。下側ハウジング11の右側面には、この無線通信の機能を有効/無効にする無線スイッチ19が設けられる(図3C参照)。
【0048】
なお、図示は省略するが、下側ハウジング11には、ゲーム装置10の電源となる充電式電池が収納され、下側ハウジング11の側面(例えば、上側面)に設けられた端子を介して当該電池を充電することができる。
【0049】
上側ハウジング21には、上側LCD22、2つの外側撮像部23(外側左撮像部23aおよび外側右撮像部23b)、内側撮像部24、3D調整スイッチ25、および3Dインジケータ26が設けられる。以下、これらの詳細について説明する。
【0050】
図1に示すように、上側LCD22は、上側ハウジング21に収納される。上側LCD22は、横長形状であり、長辺方向が上側ハウジング21の長辺方向に一致するように配置される。上側LCD22は、上側ハウジング21の中央に配置される。上側LCD22の画面の面積は、一例として下側LCD12の画面の面積よりも大きく設定される。具体的には、上側LCD22の画面は、下側LCD12の画面よりも横長に設定される。すなわち、上側LCD22の画面のアスペクト比における横幅の割合は、下側LCD12の画面のアスペクト比における横幅の割合よりも大きく設定される。
【0051】
上側LCD22の画面は、上側ハウジング21の内側面(主面)21Bに設けられ、上側ハウジング21の内側面に設けられた開口部から上側LCD22の画面が露出する。また、図2に示すように、上側ハウジング21の内側面は、透明なスクリーンカバー27によって覆われている。スクリーンカバー27は、上側LCD22の画面を保護するとともに、上側LCD22と上側ハウジング21の内側面と一体的にさせ、これにより統一感を持たせている。上側LCD22の画素数は、一例として640dot×200dot(横×縦)である。なお、本実施形態では、上側LCD22が液晶表示装置であるとしたが、例えばELを利用した表示装置などが利用されてもよい。また、上側LCD22として、任意の解像度の表示装置を利用することができる。
【0052】
上側LCD22は、立体視可能な画像を表示することが可能な表示装置である。上側LCD22は、実質的に同一の表示領域を用いて左目用画像と右目用画像とを表示することが可能である。具体的には、上側LCD22は、左目用画像と右目用画像とが所定単位で(例えば、1列ずつ)横方向に交互に表示される方式の表示装置である。なお、上側LCD22は、左目用画像と右目用画像とが交互に表示される方式の表示装置であってもよい。また、上側LCD22は、裸眼立体視可能な表示装置である。この場合、上側LCD22は、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式(視差バリア方式)のものが用いられる。本実施形態では、上側LCD22は、パララックスバリア方式のものとする。上側LCD22は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像(立体画像)を表示する。すなわち、上側LCD22は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像をそれぞれ視認させることにより、ユーザにとって立体感のある立体画像(立体視可能な画像)を表示することができる。また、上側LCD22は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる(上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである。)。このように、上側LCD22は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する(平面視画像を表示する)平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する3D調整スイッチ25によって行われる。
【0053】
外側撮像部23は、上側ハウジング21の外側面(上側LCD22が設けられた主面と反対側の背面)21Dに設けられた2つの撮像部(外側左撮像部23aおよび外側右撮像部23b)の総称である。外側左撮像部23aおよび外側右撮像部23bの撮像方向は、いずれも外側面21Dの外向きの法線方向である。また、外側左撮像部23aおよび外側右撮像部23bは、いずれも、上側LCD22の表示面(内側面)の法線方向と180度反対の方向に設計される。すなわち、外側左撮像部23aの撮像方向および外側右撮像部23bの撮像方向は、平行である。外側左撮像部23aと外側右撮像部23bとは、ゲーム装置10が実行するプログラムによって、ステレオカメラとして使用することが可能である。また、プログラムによっては、2つの外側撮像部(外側左撮像部23aおよび外側右撮像部23b)のいずれか一方を単独で用いて、外側撮像部23を非ステレオカメラとして使用することも可能である。また、プログラムによっては、2つの外側撮像部(外側左撮像部23aおよび外側右撮像部23b)で撮像した画像を合成してまたは補完的に使用することにより撮像範囲を広げた撮像をおこなうことも可能である。本実施形態では、外側撮像部23は、外側左撮像部23aおよび外側右撮像部23bの2つの撮像部で構成される。外側左撮像部23aおよび外側右撮像部23bは、それぞれ所定の共通の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0054】
図1の破線および図3Bの実線で示されるように、外側撮像部23を構成する外側左撮像部23aおよび外側右撮像部23bは、上側LCD22の画面の横方向と平行に並べられて配置される。すなわち、2つの外側左撮像部23aおよび外側右撮像部23bを結んだ直線が上側LCD22の画面の横方向と平行になるように、外側左撮像部23aおよび外側右撮像部23bが配置される。図1の破線23aおよび23bは、上側ハウジング21の内側面とは反対側の外側面に存在する外側左撮像部23aおよび外側右撮像部23bをそれぞれ表している。図1に示すように、ユーザが上側LCD22の画面を正面から視認した場合に、外側左撮像部23aは左側に外側右撮像部23bは右側にそれぞれ位置する。外側撮像部23をステレオカメラとして機能させるプログラムが実行されている場合、外側左撮像部23aは、ユーザの左目で視認される左目用画像を撮像し、外側右撮像部23bは、ユーザの右目で視認される右目用画像を撮像する。外側左撮像部23aおよび外側右撮像部23bの間隔は、人間の両目の間隔程度に設定され、例えば、30mm〜70mmの範囲で設定されてもよい。なお、外側左撮像部23aおよび外側右撮像部23bの間隔は、この範囲に限らない。
【0055】
なお、本実施例においては、外側左撮像部23aおよび外側右撮像部23bは、ハウジングに固定されており、撮像方向を変更することはできない。
【0056】
外側左撮像部23aおよび外側右撮像部23bは、上側LCD22(上側ハウジング21)の左右方向に関して中央から対称となる位置にそれぞれ配置される。すなわち、外側左撮像部23aおよび外側右撮像部23bは、上側LCD22を左右に2等分する線に対して対称の位置にそれぞれ配置される。また、外側左撮像部23aおよび外側右撮像部23bは、上側ハウジング21を開いた状態において、上側ハウジング21の上部であって、上側LCD22の画面の上端よりも上方の位置の裏側に配置される。すなわち、外側左撮像部23aおよび外側右撮像部23bは、上側ハウジング21の外側面であって、上側LCD22を外側面に投影した場合、投影した上側LCD22の画面の上端よりも上方に配置される。
【0057】
このように、外側撮像部23の2つの撮像部(外側左撮像部23aおよび外側右撮像部23b)が上側LCD22の左右方向に関して中央から対称の位置に配置されることにより、ユーザが上側LCD22を正視した場合に、外側撮像部23それぞれの撮像方向をユーザの左右の目それぞれの視線方向と一致させることができる。また、外側撮像部23は、上側LCD22の画面の上端より上方の裏側の位置に配置されるため、外側撮像部23と上側LCD22とが上側ハウジング21の内部で干渉することがない。したがって、外側撮像部23を上側LCD22の画面の裏側に配置する場合と比べて、上側ハウジング21を薄く構成することが可能となる。
【0058】
内側撮像部24は、上側ハウジング21の内側面(主面)21Bに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部24は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0059】
図1に示すように、内側撮像部24は、上側ハウジング21を開いた状態において、上側ハウジング21の上部であって、上側LCD22の画面の上端よりも上方に配置され、上側ハウジング21の左右方向に関して中央の位置(上側ハウジング21(上側LCD22の画面)を左右に2等分する線の線上)に配置される。具体的には、図1および図3Bに示されるように、内側撮像部24は、上側ハウジング21の内側面であって、外側左撮像部23aおよび外側右撮像部23bの中間の裏側の位置に配置される。すなわち、上側ハウジング21の外側面に設けられた外側左撮像部23aおよび外側右撮像部23bを上側ハウジング21の内側面に投影した場合、当該投影した外側左撮像部23aおよび外側右撮像部23bの中間に、内側撮像部24が設けられる。図3Bで示される破線24は、上側ハウジング21の内側面に存在する内側撮像部24を表している。
【0060】
このように、内側撮像部24は、外側撮像部23とは反対方向を撮像する。内側撮像部24は、上側ハウジング21の内側面であって、2つの外側撮像部23の中間位置となる裏側に設けられる。これにより、ユーザが上側LCD22を正視した際、内側撮像部24でユーザの顔を正面から撮像することができる。また、外側左撮像部23aおよび外側右撮像部23bと内側撮像部24とが上側ハウジング21の内部で干渉することがないため、上側ハウジング21を薄く構成することが可能となる。
【0061】
3D調整スイッチ25は、スライドスイッチであり、上述のように上側LCD22の表示モードを切り替えるために用いられるスイッチである。また、3D調整スイッチ25は、上側LCD22に表示された立体視可能な画像(立体画像)の立体感を調整するために用いられる。図1〜図3Dに示されるように、3D調整スイッチ25は、上側ハウジング21の内側面および右側面の端部に設けられ、ユーザが上側LCD22を正視した場合に、当該3D調整スイッチ25を視認できる位置に設けられる。3D調整スイッチ25は、所定方向(例えば、上下方向)の任意の位置にスライド可能なスライダを有しており、当該スライダの位置に応じて上側LCD22の表示モードが設定される。
【0062】
例えば、3D調整スイッチ25のスライダが最下点位置に配置されている場合、上側LCD22が平面表示モードに設定され、上側LCD22の画面には平面画像が表示される。なお、上側LCD22を立体表示モードのままとして、左目用画像と右目用画像とを同一の画像とすることにより平面表示してもよい。一方、上記最下点位置より上側にスライダが配置されている場合、上側LCD22は立体表示モードに設定される。この場合、上側LCD22の画面には立体視可能な画像が表示される。ここで、スライダが上記最下点位置より上側に配置されている場合、スライダの位置に応じて、立体画像の見え方が調整される。具体的には、スライダの位置に応じて、右目用画像および左目用画像における横方向の位置のずれ量が調整される。
【0063】
3Dインジケータ26は、上側LCD22が立体表示モードか否かを示す。例えば、3Dインジケータ26は、LEDであり、上側LCD22の立体表示モードが有効の場合に点灯する。図1に示されるように、3Dインジケータ26は、上側ハウジング21の内側面に設けられ、上側LCD22の画面近傍に設けられる。このため、ユーザが上側LCD22の画面を正視した場合、ユーザは3Dインジケータ26を視認しやすい。したがって、ユーザは、上側LCD22の画面を視認している状態でも、上側LCD22の表示モードを容易に認識することができる。
【0064】
また、上側ハウジング21の内側面には、スピーカ孔21Eが設けられる。後述するスピーカ44からの音声がこのスピーカ孔21Eから出力される。
【0065】
次に、図4を参照して、ゲーム装置10の使用状態の一例を示す。なお、図4は、ユーザがゲーム装置10を把持して操作する様子の一例を示す図である。
【0066】
図4に示されるように、ユーザは、下側LCD12および上側LCD22がユーザの方向を向く状態で、両手の掌と中指、薬指および小指とで下側ハウジング11の側面および外側面(内側面の反対側の面)を把持する。このように把持することで、ユーザは、下側ハウジング11を把持したまま、各操作ボタン14A〜14Eおよびアナログスティック15に対する操作を親指で行い、Lボタン14GおよびR14Hに対する操作を人差し指で行うことができる。そして、図4に示した一例では、外側左撮像部23aおよび外側右撮像部23bによってゲーム装置10の背面側の実世界を撮像した実世界画像が、上側LCD22に表示されている。また、タッチパネル13に対して入力を行う場合には、下側ハウジング11を把持していた一方の手を離して他方の手のみで下側ハウジング11を把持することによって、当該一方の手でタッチパネル13に対する入力を行うことができる。
【0067】
次に、図5を参照して、ゲーム装置10の内部構成を説明する。なお、図5は、ゲーム装置10の内部構成の一例を示すブロック図である。
【0068】
図5において、ゲーム装置10は、上述した各構成部に加えて、情報処理部31、メインメモリ32、外部メモリインターフェイス(外部メモリI/F)33、データ保存用外部メモリI/F34、データ保存用内部メモリ35、無線通信モジュール36、ローカル通信モジュール37、リアルタイムクロック(RTC)38、加速度センサ39、角速度センサ40、電源回路41、およびインターフェイス回路(I/F回路)42等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング11(または上側ハウジング21でもよい)内に収納される。
【0069】
情報処理部31は、所定のプログラムを実行するためのCPU(Central Processing Unit)311、画像処理を行うGPU(Graphics Processing Unit)312等を含む情報処理手段である。本実施形態では、所定のプログラムがゲーム装置10内のメモリ(例えば外部メモリI/F33に接続された外部メモリ45やデータ保存用内部メモリ35)に記憶されている。情報処理部31のCPU311は、当該所定のプログラムを実行することによって、後述する表示制御処理やゲーム処理を実行する。なお、情報処理部31のCPU311によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部31は、VRAM(Video RAM)313を含む。情報処理部31のGPU312は、情報処理部31のCPU311からの命令に応じて画像を生成し、VRAM313に描画する。そして、情報処理部31のGPU312は、VRAM313に描画された画像を上側LCD22および/または下側LCD12に出力し、上側LCD22および/または下側LCD12に当該画像が表示される。
【0070】
情報処理部31には、メインメモリ32、外部メモリI/F33、データ保存用外部メモリI/F34、およびデータ保存用内部メモリ35が接続される。外部メモリI/F33は、外部メモリ45を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリI/F34は、データ保存用外部メモリ46を着脱自在に接続するためのインターフェイスである。
【0071】
メインメモリ32は、情報処理部31(CPU311)のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ32は、表示制御処理やゲーム処理で用いられる各種データを一時的に記憶したり、外部(外部メモリ45や他の機器等)から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ32として例えばPSRAM(Pseudo−SRAM)を用いる。
【0072】
外部メモリ45は、情報処理部31によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ45は、例えば読み取り専用の半導体メモリで構成される。外部メモリ45が外部メモリI/F33に接続されると、情報処理部31は外部メモリ45に記憶されたプログラムを読み込むことができる。情報処理部31が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ46は、不揮発性の読み書き可能なメモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ46には、外側撮像部23で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ46がデータ保存用外部メモリI/F34に接続されると、情報処理部31はデータ保存用外部メモリ46に記憶された画像を読み込み、上側LCD22および/または下側LCD12に当該画像を表示することができる。
【0073】
データ保存用内部メモリ35は、読み書き可能な不揮発性メモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ35には、無線通信モジュール36を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【0074】
無線通信モジュール36は、例えばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール37は、所定の通信方式(例えば赤外線通信)により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール36およびローカル通信モジュール37は、情報処理部31に接続される。情報処理部31は、無線通信モジュール36を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール37を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0075】
情報処理部31には、加速度センサ39が接続される。加速度センサ39は、3軸(本実施形態では、xyz軸)方向に沿った直線方向の加速度(直線加速度)の大きさを検出する。加速度センサ39は、例えば下側ハウジング11の内部に設けられる。加速度センサ39は、図1に示すように、下側ハウジング11の長辺方向をx軸、下側ハウジング11の短辺方向をy軸、下側ハウジング11の内側面(主面)に対して垂直な方向をz軸として、ゲーム装置10の各軸方向へ生じる直線加速度の大きさをそれぞれ検出する。なお、加速度センサ39は、例えば静電容量式の加速度センサとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ39は、1軸または2軸方向を検出する加速度センサであってもよい。情報処理部31は、加速度センサ39が検出した加速度を示すデータ(加速度データ)を受け取って、ゲーム装置10の姿勢や動きを算出する。
【0076】
情報処理部31には、角速度センサ40が接続される。角速度センサ40は、ゲーム装置10の3軸(本実施形態では、xyz軸)周りに生じる角速度をそれぞれ検出し、検出した角速度を示すデータ(角速度データ)を情報処理部31へ出力する。角速度センサ40は、例えば下側ハウジング11の内部に設けられる。情報処理部31は、角速度センサ40から出力された角速度データを受け取って、ゲーム装置10の姿勢や動きを算出する。
【0077】
情報処理部31には、RTC38および電源回路41が接続される。RTC38は、時間をカウントして情報処理部31に出力する。情報処理部31は、RTC38によって計時された時間に基づき現在時刻(日付)を計算する。電源回路41は、ゲーム装置10が有する電源(下側ハウジング11に収納される上記充電式電池)からの電力を制御し、ゲーム装置10の各部品に電力を供給する。
【0078】
情報処理部31には、I/F回路42が接続される。I/F回路42には、マイク43、スピーカ44、およびタッチパネル13が接続される。具体的には、I/F回路42には、図示しないアンプを介してスピーカ44が接続される。マイク43は、ユーザの音声を検知して音声信号をI/F回路42に出力する。アンプは、I/F回路42からの音声信号を増幅し、音声をスピーカ44から出力させる。I/F回路42は、マイク43およびスピーカ44(アンプ)の制御を行う音声制御回路と、タッチパネル13の制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部31に出力する。タッチ位置データは、タッチパネル13の入力面において入力が行われた位置(タッチ位置)の座標を示す。なお、タッチパネル制御回路は、タッチパネル13からの信号の読み込み、およびタッチ位置データの生成を所定時間に1回の割合で行う。情報処理部31は、タッチ位置データを取得することにより、タッチパネル13に対して入力が行われたタッチ位置を知ることができる。
【0079】
操作ボタン14は、上記各操作ボタン14A〜14Lからなり、情報処理部31に接続される。操作ボタン14から情報処理部31へは、各操作ボタン14A〜14Iに対する入力状況(押下されたか否か)を示す操作データが出力される。情報処理部31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に応じた処理を実行する。
【0080】
下側LCD12および上側LCD22は、情報処理部31に接続される。下側LCD12および上側LCD22は、情報処理部31(GPU312)の指示にしたがって画像を表示する。本実施形態では、情報処理部31は、入力操作用の画像を下側LCD12に表示させ、外側撮像部23および内側撮像部24のいずれかから取得した画像を上側LCD22に表示させる。すなわち、情報処理部31は、上側LCD22に外側撮像部23で撮像した右目用画像と左目用画像とを用いた立体画像(立体視可能な画像)を表示させたり、内側撮像部24で撮像した平面画像を上側LCD22に表示させたり、上側LCD22に外側撮像部23で撮像した右目用画像および左目用画像の一方を用いた平面画像を表示させたりする。
【0081】
具体的には、情報処理部31は、上側LCD22のLCDコントローラ(図示せず)と接続され、当該LCDコントローラに対して視差バリアのON/OFFを制御する。上側LCD22の視差バリアがONになっている場合、情報処理部31のVRAM313に格納された(外側撮像部23で撮像された)右目用画像と左目用画像とが、上側LCD22に出力される。より具体的には、LCDコントローラは、右目用画像について縦方向に1ライン分の画素データを読み出す処理と、左目用画像について縦方向に1ライン分の画素データを読み出す処理とを交互に繰り返すことによって、VRAM313から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に1ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側LCD22の画面に表示される。そして、上側LCD22の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側LCD22の画面には立体視可能な画像が表示される。
【0082】
外側撮像部23および内側撮像部24は、情報処理部31に接続される。外側撮像部23および内側撮像部24は、情報処理部31の指示にしたがって画像を撮像し、撮像した画像データを情報処理部31に出力する。本実施形態では、情報処理部31は、外側撮像部23および内側撮像部24のいずれか一方に対して撮像指示を行い、撮像指示を受けた撮像部が画像を撮像して画像データを情報処理部31に送る。具体的には、ユーザによるタッチパネル13や操作ボタン14を用いた操作によって使用する撮像部が選択される。そして、撮像部が選択されたことを情報処理部31(CPU311)が検知し、情報処理部31が外側撮像部23または内側撮像部24に対して撮像指示を行う。
【0083】
3D調整スイッチ25は、情報処理部31に接続される。3D調整スイッチ25は、スライダの位置に応じた電気信号を情報処理部31に送信する。
【0084】
3Dインジケータ26は、情報処理部31に接続される。情報処理部31は、3Dインジケータ26の点灯を制御する。例えば、情報処理部31は、上側LCD22が立体表示モードである場合、3Dインジケータ26を点灯させる。
【0085】
次に、ゲーム装置10で実行される表示制御プログラムによる具体的な表示制御処理動作を説明する前に、図6A〜図8Bを参照して当該表示制御処理動作によって上側LCD22に表示される表示形態例について説明する。なお、図6Aは、青色の被写体が含まれたカメラ画像CIが上側LCD22に表示された一例を示す図である。図6Bは、カメラ画像CIに含まれる青色の被写体から標的オブジェクトOBJ1が出現した様子が上側LCD22に表示された一例を示す図である。図7Aは、緑色の被写体が含まれたカメラ画像CIが上側LCD22に表示された一例を示す図である。図7Bは、カメラ画像CIに含まれる緑色の被写体から標的オブジェクトOBJ2が出現した様子が上側LCD22に表示された一例を示す図である。図8Aは、赤色の被写体が含まれたカメラ画像CIが上側LCD22に表示された一例を示す図である。図8Bは、カメラ画像CIに含まれる赤色の被写体から標的オブジェクトOBJ3が出現した様子が上側LCD22に表示された一例を示す図である。なお、説明を簡単にするために、上側LCD22には、外側撮像部23および内側撮像部24のいずれかから取得したカメラ画像CIに基づいた、実世界の平面画像(上述した立体視可能な画像とは反対の意味での平面視の画像)が表示される例を用いる。
【0086】
図6Aにおいて、上側LCD22には、ゲーム装置10に内蔵する実カメラ(例えば、外側撮像部23)によって撮像された実世界画像であるカメラ画像CIが表示されている。例えば、上側LCD22には、ゲーム装置10に内蔵する実カメラで撮像されたリアルタイムの実世界画像(動画像)が表示される。
【0087】
上側LCD22に表示されたカメラ画像CIとして、青色の被写体が所定のサイズ以上で撮像されて標的オブジェクトの出現条件を満たしている場合、当該青色の被写体部分から標的オブジェクトOBJ1が出現する(図6Bの状態)。図6Bに示した一例では、カメラ画像CIに含まれている青色の被写体部分の中央付近から複数の水玉が標的オブジェクトOBJ1として出現している。
【0088】
図7Aにおいて、上側LCD22に表示されたカメラ画像CIとして、緑色の被写体が表示されている。そして、所定サイズ以上の緑色の被写体がカメラ画像CIに含まれて標的オブジェクトの出現条件を満たしている場合、当該緑色の被写体部分から標的オブジェクトOBJ2が出現する(図7Bの状態)。図7Bに示した一例では、カメラ画像CIに含まれている緑色の被写体部分の中央付近から草花が標的オブジェクトOBJ2として出現している。
【0089】
図8Aにおいて、上側LCD22に表示されたカメラ画像CIとして、赤色の被写体が表示されている。そして、所定サイズ以上の赤色の被写体がカメラ画像CIに含まれて標的オブジェクトの出現条件を満たしている場合、当該赤色の被写体部分から標的オブジェクトOBJ3が出現する(図8Bの状態)。図8Bに示した一例では、カメラ画像CIに含まれている赤色の被写体部分の中央付近から炎が標的オブジェクトOBJ3として出現している。
【0090】
このように、ユーザ自身が撮像している実世界の撮像画像に特定色(上記例では、青色、緑色、赤色)の被写体が含まれている場合、あたかも当該被写体から標的オブジェクトOBJ1〜OBJ3が生成されたように上側LCD22に表示される。例えば、標的オブジェクトOBJ1〜OBJ3を仮想空間に配置し、仮想カメラから標的オブジェクトOBJ1〜OBJ3を見た仮想空間の画像(例えば、コンピュータグラフィックス画像;以下、仮想世界画像と記載する)を、カメラ画像CIから得られる実世界画像に合成することによって、標的オブジェクトOBJ1〜OBJ3が実空間内に出現したように上側LCD22に表示される。そして、ゲーム装置10を用いた攻撃操作(例えば、ボタン14B(Aボタン)の押下)に応じて、所定の方向(例えば、カメラ画像CIを撮像している実カメラの視線方向であり、仮想カメラの視線方向)に弾オブジェクトBOが発射され、標的オブジェクトOBJ1〜OBJ3がユーザの攻撃対象となる。
【0091】
なお、弾オブジェクトBOは、ユーザが所定の操作入力を示す場合に登場し、仮想世界において標的オブジェクトOBJ1〜OBJ3との間で所定の位置関係(例えば、衝突)となった場合に、所定の点数が得られる操作オブジェクトに相当し、ユーザが標的オブジェクトOBJ1〜OBJ3に当てる発射オブジェクト(発射物)を一例として用いている。ここで、本明細書で用いている「操作オブジェクト」は、仮想ゲーム世界における銃弾、砲弾、爆弾、手榴弾、ロケット弾、ミサイル弾、ボール、矢、ビーム、レーザ光線等を含んでいる。
【0092】
ここで、上述したように、上側LCD22には、ゲーム装置10に内蔵する実カメラによって撮像されたリアルタイムの実世界画像が表示されている。したがって、実空間内においてゲーム装置10の方向や位置を変えることによって、ゲーム装置10で撮像される撮像範囲が変わるため、上側LCD22に表示されるカメラ画像CIも変化する。この場合、ゲーム装置10は、実空間内におけるゲーム装置10の動きに応じて、上記仮想空間内における上記仮想カメラの位置や方向を変化させる。これによって、実空間内に配置されているように表示されている標的オブジェクトOBJ1〜OBJ3は、実空間内におけるゲーム装置10の方向や位置が変わっても実空間内における同じ位置に配置されているように表示される。例えば、図6Bに示すようなカメラ画像CIを撮像している状態から、ゲーム装置10の実カメラによる撮像方向を左へ変えた場合、上側LCD22に表示されている標的オブジェクトOBJ1の表示位置が、実カメラの撮像方向を変えた方向の逆方向(右方向)に移動、すなわち標的オブジェクトOBJ1が配置されている仮想空間の仮想カメラの方向が実カメラと同じ左方向に移動する。したがって、標的オブジェクトOBJ1〜OBJ3は、ゲーム装置10の方向や位置が変化して実カメラの撮像範囲が変わったとしても、あたかもカメラ画像CIで表現された実空間内に配置されているように上側LCD22に表示される。
【0093】
このように、実世界画像に含まれた特定色の被写体から標的オブジェクトOBJ1〜OBJ3が出現するように上側LCD22に表示され、出現した標的オブジェクトOBJ1〜OBJ3は、実世界画像で表現された実空間内に配置されているように上側LCD22に表示される。ここで、実世界画像から特定色を検出する場合、当該実世界画像における各画素の色情報を用いることが考えられる。例えば、各画素の色情報としては、RGB値、色相を表す値、彩度を表す値、明度を表す値等が考えられるが、本実施形態においては何れの値を用いてもかまわない。
【0094】
第1の例として、上記値を組み合わせて上記特定色を検出する。具体的には、彩度を表す値および明度を表す値がそれぞれ所定の閾値以上であり、かつ、色相を表す値が特定色を示す範囲内である場合、特定色を表す画素であると判定する。このように、複数の色情報を組み合わせて特定色を判定することによって、色の誤判定を防止しながらユーザが本来区別している色認識に判定結果を近づけることができる。
【0095】
第2の例として、上記値の何れか1つを用いて上記特定色を検出する。一例として、明度を表す値のみを用いて、実世界画像から所定の閾値以上の明度を有する画素を判別することが可能となる。この場合、実世界画像における所定の閾値以上の明度を有する被写体から、標的オブジェクトOBJを出現させるような表示制御処理が可能となる。他の例として、RGB値のみ、色相を表す値のみ、または彩度を表す値のみを用いて、実世界画像から所定条件を満たす画素を、特定色を有する画素として判別してもかまわない。
【0096】
なお、特定色の被写体から出現する標的オブジェクトOBJは、実世界画像における当該被写体のサイズに応じて、出現する際の大きさが変化してもよい。また、出現する標的オブジェクトOBJは、実世界画像と合成されることなく上側LCD22に表示されてもかまわない。この場合、上側LCD22にはゲーム装置10に内蔵する実カメラによって撮像された実世界画像が表示されず、当該実カメラの撮像範囲内に所定サイズ以上の特定色の被写体が含まれる場合に、当該撮像されている特定色に応じた標的オブジェクトOBJが上側LCD22に表示される。すなわち、上側LCD22には、実カメラと同様に撮像方向を変化させる仮想カメラから見た仮想空間のみが表示されることになるが、この場合、実カメラで撮像されている実世界画像を下側LCD12に表示してもかまわない。
【0097】
なお、上述した例では、ゲーム装置10を用いた攻撃操作に応じて、所定の方向に弾オブジェクトBOが発射されて、標的オブジェクトOBJ1〜OBJ3がユーザの攻撃対象となるゲームとなるが、さらに標的オブジェクトOBJ1〜OBJ3とは別のオブジェクト(敵オブジェクト)も攻撃対象とするゲームも実現できる。上記ゲームでは、背景画像としてカメラ画像(実世界画像)が用いられ、標的オブジェクトOBJ1〜OBJ3が出現する同じ仮想空間に敵オブジェクトが配置されて当該仮想空間を所定のアルゴリズムで移動する。そして、ユーザは、仮想空間において敵オブジェクトと弾オブジェクトBOとの間で所定の位置関係(例えば、衝突)となった場合に、所定の点数が得られる。上記ゲームは、このような敵オブジェクトを攻撃対象とするゲームを前提として、実世界画像において被写体の色を検出して、そこから敵オブジェクト以外の標的オブジェクトOBJ1〜OBJ3も出現させて、標的オブジェクトOBJ1〜OBJ3と弾オブジェクトBOとの間で所定の位置関係(例えば、衝突)とすることでさらに得点が加算されるゲームとなる。したがって、ユーザは、敵オブジェクトに対して弾オブジェクトBOを所定の位置関係にして得点を得るゲームを楽しみつつ、さらに実カメラを動かしながら敵オブジェクト以外の標的オブジェクトOBJ1〜OBJ3も色情報に基づいて出現させて弾オブジェクトBOを所定の位置関係にすることによって得点をさらに得ることでさらにゲームを楽しむことができる。例えば、仮想世界に配置された敵オブジェクトを倒していくゲームと、特定の色を被写体として撮像して標的オブジェクトOBJ1〜OBJ3を同じ仮想世界に出現させて得点対象とするゲームとを同時に進行させることで、ゲームの複雑性が増し、ユーザの興趣性を向上させることができる。
【0098】
次に、図9〜図15を参照して、ゲーム装置10で実行される表示制御プログラムによる具体的な処理動作について説明する。なお、図9は、表示制御プログラムを実行することに応じて、メインメモリ32に記憶される各種データの一例を示す図である。図10は、図9の特定色判定結果データDdの一例を示す図である。図11は、図9の標的オブジェクト設定データDe1の一例を示す図である。図12は、当該表示制御プログラムを実行することによってゲーム装置10が表示制御処理する動作の一例を示すフローチャートである。図13は、図12のステップ55で行われる標的オブジェクト出現処理の詳細な動作の一例を示すサブルーチンである。図14は、図12のステップ56で行われる弾オブジェクト処理の詳細な動作の一例を示すサブルーチンである。図15は、図13のステップ71で行われる色検出処理の詳細な動作の一例を示すサブルーチンである。なお、これらの処理を実行するためのプログラムは、ゲーム装置10に内蔵されるメモリ(例えば、データ保存用内部メモリ35)や外部メモリ45またはデータ保存用外部メモリ46に含まれており、ゲーム装置10の電源がオンになったときに、内蔵メモリから、または外部メモリI/F33やデータ保存用外部メモリI/F34を介して外部メモリ45またはデータ保存用外部メモリ46からメインメモリ32に読み出されて、CPU311によって実行される。
【0099】
図9において、メインメモリ32には、内蔵メモリ、外部メモリ45、またはデータ保存用外部メモリ46から読み出されたプログラムや表示制御処理において生成される一時的なデータが記憶される。図9において、メインメモリ32のデータ記憶領域には、操作データDa、カメラ画像データDb、実世界画像データDc、特定色判定結果データDd、標的オブジェクトデータDe、弾オブジェクトデータDf、得点データDg、動きデータDh、仮想カメラデータDi、レンダリング画像データDj、および表示画像データDk等が格納される。また、メインメモリ32のプログラム記憶領域には、表示制御プログラムを構成する各種プログラム群Paが記憶される。
【0100】
操作データDaは、ユーザがゲーム装置10を操作した操作情報を示すデータである。操作データDaは、操作子データDa1および角速度データDa2を含んでいる。操作子データDa1は、ユーザがゲーム装置10の操作ボタン14やアナログスティック15等の操作子を操作したことを示すデータである。角速度データDa2は、角速度センサ40によって検出された角速度を示すデータである。例えば、角速度データDa2には、角速度センサ40が検出したx軸周りの角速度を示すx軸周り角速度データ、y軸周りの角速度を示すy軸周り角速度データ、およびz軸周りの角速度を示すz軸周り角速度データが含まれる。例えば、操作ボタン14やアナログスティック15からの操作データや角速度センサ40からの角速度データは、ゲーム装置10が処理する時間単位(例えば、1/60秒)毎に取得され、当該取得に応じて操作子データDa1および角速度データDa2に格納されて更新される。
【0101】
なお、後述する処理フローでは、操作子データDa1および角速度データDa2が処理周期である1フレーム毎にそれぞれ更新される例を用いて説明するが、他の処理周期で更新されてもかまわない。例えば、操作ボタン14やアナログスティック15等の操作子をユーザが操作したことを検出する周期毎に操作子データDa1を更新し、当該更新された操作子データDa1を処理周期毎に利用する態様でもかまわない。また、角速度センサ40の角速度検出周期毎に角速度データDa2を更新し、当該更新された角速度データDa2を処理周期毎に利用する態様でもかまわない。この場合、操作子データDa1や角速度データDa2を更新するそれぞれの周期と、処理周期とが異なることになる。
【0102】
カメラ画像データDbは、外側撮像部23および内側撮像部24のいずれかが撮像したカメラ画像を示すデータである。後述する処理の説明においては、カメラ画像を取得するステップにおいて外側撮像部23および内側撮像部24のいずれかが撮像したカメラ画像を用いて、カメラ画像データDbを更新する態様を用いる。なお、外側撮像部23または内側撮像部24が撮像し、撮像されたカメラ画像を用いてカメラ画像データDbを更新する周期は、ゲーム装置10が処理する時間単位(例えば、1/60秒)と同じでもいいし、当該時間単位より短い時間でもかまわない。ゲーム装置10が処理する周期よりカメラ画像データDbを更新する周期が短い場合、後述する処理とは独立して適宜カメラ画像データDbを更新してもかまわない。この場合、後述するカメラ画像を取得するステップにおいて、カメラ画像データDbが示す最新のカメラ画像を常に用いて処理すればよい。
【0103】
実世界画像データDcは、ゲーム装置10の実カメラ(外側撮像部23または内側撮像部24)が撮像したカメラ画像を示す実世界画像を生成するためのデータである。例えば、実世界画像データDcは、実世界画像を生成するための平面ポリゴンのデータ、当該平面ポリゴンにマッピングするためのカメラ画像のテクスチャデータ、および当該平面ポリゴンの位置を示すデータ等を含んでいる。
【0104】
特定色判定結果データDdは、実世界画像から判定された特定色を示すデータである。以下、図10を参照して、特定色判定結果データDdの一例について説明する。
【0105】
図10において、一例として、外側撮像部23および内側撮像部24のいずれかが撮像したカメラ画像(以下、単にカメラ画像と記載する)は、所定サイズのブロック(例えば、8×8ピクセルのブロック)に分割され、ブロック毎に特定色の有無が判定される。具体的には、上記カメラ画像は、Nmax個のブロックに分割され、それぞれのブロックにブロック番号1〜ブロック番号Nmaxが付与される。そして、特定色判定結果データDdは、ブロック毎に、RGB平均値、色相Hを表す値、彩度Sを表す値、明度Vを表す値、判定された特定色を示す特定色設定パラメータが記述される。例えば、ブロック番号1のブロックは、RGB平均値がR1、G1、およびB1、色相Hを表す値がH1、彩度Sを表す値がS1、明度Vを表す値がV1であり、当該ブロックが特定色であると判定されなかったことが特定色設定パラメータで示されている。また、ブロック番号2のブロックは、RGB平均値がR2、G2、およびB2、色相Hを表す値がH2、彩度Sを表す値がS2、明度Vを表す値がV2であり、当該ブロックが青色であると判定されたことが特定色設定パラメータで示されている。
【0106】
図9に戻り、標的オブジェクトデータDeは、上述した標的オブジェクトOBJ1〜OBJ3に関するデータであり、標的オブジェクト設定データDe1、標的オブジェクトサイズデータDe2、および標的オブジェクト位置データDe3を含んでいる。標的オブジェクト設定データDe1は、判定された特定色に応じて出現する標的オブジェクトを示すデータであり、予め判定可能な特定色毎に設定されている。例えば、図11に示すように、標的オブジェクト設定データDe1は、判定された特定色が「赤色」である場合に炎が標的オブジェクトとして出現することが設定されている。また、標的オブジェクト設定データDe1は、判定された特定色が「緑色」である場合に草花が標的オブジェクトとして出現することが設定されている。さらに、標的オブジェクト設定データDe1は、判定された特定色が「青色」である場合に水玉が標的オブジェクトとして出現することが設定されている。標的オブジェクトサイズデータDe2は、実世界画像と合成して出現させる際の標的オブジェクトのサイズを示すデータである。標的オブジェクト位置データDe3は、実世界画像と合成して出現させる際の標的オブジェクトの仮想空間における配置位置や配置方向等を示すデータである。
【0107】
弾オブジェクトデータDfは、攻撃操作に応じて発射される弾オブジェクトBOに関するデータである。例えば、弾オブジェクトデータDfは、弾オブジェクトBOの位置を示すデータおよび弾オブジェクトBOの移動速度や移動方向(例えば、移動速度ベクトル)を示すデータ等を含んでいる。
【0108】
得点データDgは、標的オブジェクトOBJ1〜OBJ3が登場するゲームの得点を示すデータである。例えば、ゲームの得点は、攻撃操作によって標的オブジェクトOBJ1〜OBJ3に弾オブジェクトBOが命中することによって加点される。
【0109】
動きデータDhは、実空間におけるゲーム装置10の動きを示すデータである。一例として、ゲーム装置10の動きは、角速度センサ40によって検出された角速度によって算出される。
【0110】
仮想カメラデータDiは、仮想空間に設定される仮想カメラに関するデータである。例えば、仮想空間における仮想カメラの位置や方向は、動きデータDhが示すゲーム装置10の動きに応じて変化する。
【0111】
レンダリング画像データDjは、カメラ画像のレンダリング画像データDj1および仮想空間のレンダリング画像データDj2を含んでいる。カメラ画像のレンダリング画像データDj1は、カメラ画像のテクスチャがマッピングされた平面ポリゴンを、平行投影でレンダリングすることによって得られる実世界画像を示すデータである。仮想空間のレンダリング画像データDj2は、標的オブジェクトOBJ1〜OBJ3が配置された仮想空間を透視投影でレンダリングすることによって得られる仮想世界画像を示すデータである。
【0112】
表示画像データDkは、上側LCD22に表示される表示画像を示すデータである。例えば、上側LCD22に表示される表示画像は、上記仮想世界画像を優先して上記実世界画像上に上記仮想世界画像を合成することによって生成される。
【0113】
次に、図12を参照して、情報処理部31の動作について説明する。まず、ゲーム装置10の電源(電源ボタン14F)がONされると、CPU311によってブートプログラム(図示せず)が実行され、これにより内蔵メモリまたは外部メモリ45やデータ保存用外部メモリ46に格納されているプログラムがメインメモリ32にロードされる。そして、当該ロードされたプログラムが情報処理部31(CPU311)で実行されることによって、図12に示すステップ(図12〜図15では「S」と略称する)が実行される。なお、図12〜図15においては、本発明に直接関連しない処理についての記載を省略する。
【0114】
図12において、情報処理部31は、表示制御処理における初期設定を行い(ステップ51)、次のステップに処理を進める。例えば、情報処理部31は、仮想世界画像を生成するための仮想カメラの初期位置や初期方向を設定し、当該仮想カメラが配置される仮想空間の座標軸(例えば、XYZ軸)を設定する。
【0115】
次に、情報処理部31は、ゲーム装置10の実カメラからカメラ画像を取得し(ステップ52)、次のステップに処理を進める。例えば、情報処理部31は、現在選択されている撮像部(外側撮像部23または内側撮像部24)によって撮像されたカメラ画像を用いて、カメラ画像データDbを更新する。
【0116】
次に、情報処理部31は、上記ステップ52で取得したカメラ画像をレンダリングする処理を行い(ステップ53)、次のステップに処理を進める。例えば、情報処理部31は、上記ステップ52で取得したカメラ画像を用いて実世界画像データDcを更新し、レンダリングされた画像を用いてカメラ画像のレンダリング画像データDj1を更新する。以下、図16および図17を用いてカメラ画像をレンダリングする処理例について説明する。
【0117】
本実施形態においては、図16に示すように、ゲーム装置10の実カメラから得られたカメラ画像をテクスチャに設定し、当該テクスチャがマッピングされた平面ポリゴンを生成する。そして、仮想カメラC1から、平行投影で上記平面ポリゴンをレンダリングした画像を実世界画像として設定する。ここで、上側LCD22の表示画面の中心に仮想カメラC1が配置されるとともに、上側LCD22の表示画面全面に、ゲーム装置10の実カメラから得られたカメラ画像全面を表示する場合の実世界画像生成方法の一例について説明する。
【0118】
まず、上記平面ポリゴンを配置する仮想空間の座標の1単位に対して、iピクセルのテクスチャをマッピングする平面ポリゴンを考える。この場合、上記座標の1単位×1単位の領域に対して、iピクセル×iピクセルのテクスチャがマッピングされることになる。そして、上側LCD22の表示画面が横Wdot×縦Hdotであり、Wdot×Hdotの表示画面全面に上記カメラ画像のテクスチャ全面を対応させて、当該表示画面上の1dotと当該テクスチャの1ピクセルとが対応するように平面ポリゴンを配置するためには、図17に示すように上記座標を定めればよい。すなわち、上記カメラ画像のテクスチャが主面全面にマッピングされた平面ポリゴンの幅がW/i座標分となり、平面ポリゴンの縦がH/i座標分となるように、当該平面ポリゴンを配置する仮想空間のXY座標を設定する。そして、上記テクスチャがマッピングされた平面ポリゴンの主面中心を仮想空間のXY座標の原点に一致させ、当該平面ポリゴンの横方向がX軸方向(右方向がX軸正方向)となり、当該平面ポリゴンの縦方向がY軸方向(上方向がY軸正方向)となるように当該平面ポリゴンを配置する。この場合、上記テクスチャがマッピングされた平面ポリゴンの主面における右上角位置が(X,Y)=(W/2i,H/2i)に配置され、右下角位置が(X,Y)=(W/2i,−H/2i)に配置され、左上角位置が(X,Y)=(−W/2i,H/2i)に配置され、左下角位置が(X,Y)=(−W/2i,−H/2i)に配置されることになる。このように表示画面上の1dotとカメラ画像(テクスチャ)の1ピクセルとが対応するように、仮想空間の座標に配置された平面ポリゴンを平行投影でレンダリングすることによって、ゲーム装置10の実カメラから得られたカメラ画像に対応する実世界画像が生成される。
【0119】
図12に戻り、情報処理部31は、操作データを取得し(ステップ54)、次のステップに処理を進める。例えば、情報処理部31は、操作ボタン14やアナログスティック15を操作したことを示すデータを取得して、操作子データDa1を更新する。また、情報処理部31は、角速度センサ40によって検出された角速度を示す角速度データを取得して、角速度データDa2を更新する。
【0120】
次に、情報処理部31は、標的オブジェクト出現処理を行い(ステップ55)、次のステップに処理を進める。以下、図13を参照して、標的オブジェクト出現処理の一例について説明する。
【0121】
図13において、情報処理部31は、色検出処理を行い(ステップ71)、次のステップに処理を進める。以下、図15を参照して、色検出処理の一例について説明する。
【0122】
図15において、情報処理部31は、当該サブルーチンで用いる一時変数Nを1に設定し(ステップ90)、次のステップに処理を進める。
【0123】
次に、情報処理部31は、ブロックNのRGB平均値を算出し(ステップ91)、次のステップに処理を進める。上述したように、カメラ画像は、Nmax個のブロックに分割される。例えば、情報処理部31は、カメラ画像データDbが示すカメラ画像からブロックNに相当する画素(例えば、8×8ピクセル)のRGB値を抽出し、RGB値それぞれの平均値を算出する。そして、情報処理部31は、算出されたRGB平均値を用いて、ブロックNのRGB平均値に対応する特定色判定結果データDdを更新する。
【0124】
次に、情報処理部31は、上記ステップ91で算出されたRGB平均値を、色相Hn、彩度Sn、および明度Vnに変換し(ステップ92)、次のステップに処理を進める。そして、情報処理部31は、変換された色相Hn、彩度Sn、および明度Vnの値を用いて、ブロックNの色相H、彩度S、および明度Vに対応する特定色判定結果データDdを更新する。
【0125】
ここで、RGB平均値から、色相Hn、彩度Sn、および明度Vnへの変換は、一般的に用いられている手法を用いればよい。例えば、RGB平均値の各要素(すなわち、R、G、およびBの値)が0.0〜1.0で表され、maxを各要素の最大値、minを各要素の最小値とすると、色相Hnは、以下のような数式で変換される。
各要素のうち、Rの値がmaxの場合:
Hn=60×(G−B)/(max−min)
各要素のうち、Gの値がmaxの場合:
Hn=60×(B−R)/(max−min)+120
各要素のうち、Bの値がmaxの場合:
Hn=60×(R−G)/(max−min)+240
なお、上記数式を用いた変換によってHnが負の値となった場合、さらにHnに360を加算して色相Hnとする。また、彩度Snおよび明度Vnは、以下のような数式で変換される。
Sn=(max−min)/max
V=max
上記変換式を用いて、色相Hn、彩度Sn、および明度Vnを算出した場合、色相Hnが0.0〜360.0の範囲、彩度Snが0.0〜1.0の範囲、明度Vnが0.0〜1.0の範囲で、それぞれ求められる。
【0126】
次に、情報処理部31は、上記ステップ92で算出された彩度Snが閾値Sc(例えば、Sc=0.43)以上であるか否かを判断する(ステップ93)。そして、情報処理部31は、彩度Snが閾値Sc以上である場合、次のステップ94に処理を進める。一方、情報処理部31は、彩度Snが閾値Sc未満である場合、次のステップ101に処理を進める。
【0127】
ステップ94において、情報処理部31は、上記ステップ92で算出された明度Vnが閾値Vc(例えば、Vc=0.125)以上であるか否かを判断する。そして、情報処理部31は、明度Vnが閾値Vc以上である場合、次のステップ95に処理を進める。一方、情報処理部31は、明度Vnが閾値Vc未満である場合、次のステップ101に処理を進める。
【0128】
ステップ95において、情報処理部31は、上記ステップ92で算出された色相Hnが閾値R1(例えば、R1=315.0)以上、または、閾値R2(例えば、R2=45.0)以下であるか否かを判断する。そして、上記ステップ95で肯定判定された場合、情報処理部31は、ブロックNを赤色の特定色に設定して、ブロックNの特定色設定に対応する特定色判定結果データDdを更新し(ステップ96)、次のステップ102に処理を進める。一方、上記ステップ95で否定判定された場合、情報処理部31は、次のステップ97に処理を進める。
【0129】
ステップ97において、情報処理部31は、上記ステップ92で算出された色相Hnが閾値G1(例えば、G1=75.0)以上、かつ、閾値G2(例えば、G2=165.0)以下であるか否かを判断する。そして、上記ステップ97で肯定判定された場合、情報処理部31は、ブロックNを緑色の特定色に設定して、ブロックNの特定色設定に対応する特定色判定結果データDdを更新し(ステップ98)、次のステップ102に処理を進める。一方、上記ステップ97で否定判定された場合、情報処理部31は、次のステップ99に処理を進める。
【0130】
ステップ99において、情報処理部31は、上記ステップ92で算出された色相Hnが閾値B1(例えば、B1=195.0)以上、かつ、閾値B2(例えば、B2=285.0)以下であるか否かを判断する。そして、上記ステップ99で肯定判定された場合、情報処理部31は、ブロックNを青色の特定色に設定して、ブロックNの特定色設定に対応する特定色判定結果データDdを更新し(ステップ100)、次のステップ102に処理を進める。一方、上記ステップ99で否定判定された場合、情報処理部31は、次のステップ101に処理を進める。
【0131】
一方、ステップ101において、情報処理部31は、ブロックNを特定色なしに設定して、ブロックNの特定色設定に対応する特定色判定結果データDdを更新し、次のステップ102に処理を進める。このように、ブロックNの彩度Snが閾値Sc未満である場合、ブロックNの明度Vnが閾値Vc未満である場合、またはブロックNの色相Hnがステップ95、ステップ97、およびステップ98においてそれぞれ用いられている判定範囲の何れにも属さない場合、ブロックNが特定色なしに設定される。
【0132】
ステップ102において、情報処理部31は、現在設定されている一時変数NがNmaxであるか否かを判断する。そして、情報処理部31は、一時変数NがNmaxである場合、当該サブルーチンによる処理を終了する。一方、情報処理部31は、一時変数NがNmaxに到達していない場合、現在設定されている一時変数Nに1を加算して新たな一時変数を設定して(ステップ103)、上記ステップ91に戻って処理を繰り返す。
【0133】
図13に戻り、上記ステップ71における色検出処理の後、情報処理部31は、特定色毎の面積を算出し(ステップ72)、次のステップに処理を進める。例えば、情報処理部31は、特定色判定結果データDdで設定されているブロック毎の特定色を参照して、左右または上下に隣接するブロックが同じ特定色に設定されているか否かを判定する。そして、図18に示すように、情報処理部31は、同じ特定色で繋がっているブロック群を1つの図形とし、当該図形を囲む矩形を設定して、当該矩形の面積(サイズ)をそれぞれ特定色の面積とする。
【0134】
次に、情報処理部31は、所定サイズ以上の面積を有する特定色の矩形があるか否かを判断する(ステップ73)。例えば、情報処理部31は、上記ステップ72で算出した特定色毎の矩形面積のうち、予め定められた判定基準(例えば、縦横32ピクセル以上)に到達している矩形がある場合、所定サイズ以上の面積を有する特定色の矩形があると判断する。そして、情報処理部31は、所定サイズ以上の面積の矩形を有する特定色がある場合、次のステップ74に処理を進める。一方、情報処理部31は、所定サイズ以上の面積の矩形を有する特定色がない場合、当該サブルーチンによる処理を終了する。
【0135】
ステップ74において、情報処理部31は、標的オブジェクトOBJが出現する条件を満たしているか否かを判断する。例えば、標的オブジェクトOBJが出現する条件は、特定色毎に設定された最大出現数以内(例えば、各特定色につき1つ以内)となるように標的オブジェクトOBJが出現してもいいし、所定時間毎に標的オブジェクトOBJが出現してもいいし、既に出現している標的オブジェクトOBJが仮想世界から消滅したことに応じて新たな標的オブジェクトOBJが出現してもいいし、ランダムのタイミングで標的オブジェクトOBJを出現させてもよい。また、標的オブジェクトOBJを出現させる条件として、上記ステップ73の判定において、所定サイズ以上の面積を有する特定色の矩形が、同じ特定色、かつ、実質的に同じ位置で複数回(例えば、3回)連続して検出されることを、上記条件に加えてもかまわない。そして、情報処理部31は、標的オブジェクトOBJが出現する条件を満たしている場合、次のステップ75に処理を進める。一方、情報処理部31は、標的オブジェクトOBJが出現する条件を満たしていない場合、当該サブルーチンによる処理を終了する。
【0136】
ステップ75において、情報処理部31は、上記ステップ74における出現条件を満たした特定色に応じて、出現させる標的オブジェクトを設定し、次のステップに処理を進める。例えば、情報処理部31は、標的オブジェクト設定データDe1に予め設定されている標的オブジェクトのうち、出現条件を満たした特定色に対応する標的オブジェクトを選択する。
【0137】
次に、情報処理部31は、出現条件を満たした特定色の矩形面積に応じて出現させる標的オブジェクトの大きさを設定し(ステップ76)、次のステップに処理を進める。例えば、情報処理部31は、上記ステップ74における出現条件を満たした特定色の矩形面積に応じて、出現させる標的オブジェクトの大きさを設定し、当該大きさを用いて標的オブジェクトサイズデータDe2を更新する。一例として、情報処理部31は、出現条件を満たした特定色の矩形サイズが縦横120ピクセル以上であれば出現させる標的オブジェクトの大きさを「大」に設定し、出現条件を満たした特定色の矩形サイズが縦横80ピクセル以上であれば出現させる標的オブジェクトの大きさを「中」に設定し、出現条件を満たした特定色の矩形サイズが縦横32ピクセル以上であれば出現させる標的オブジェクトの大きさを「小」に設定する。
【0138】
次に、情報処理部31は、出現条件を満たした特定色の領域に基づいて標的オブジェクトの位置に設定し(ステップ77)、次のステップに処理を進める。一例として、図18に示すように、標的オブジェクトの位置は、出現条件を満たした特定色ブロック群の実質的な中心(例えば、当該特定色の矩形中心)に設定される。具体的には、カメラ画像における上記ブロック群の左端に位置するブロックと右端に位置するブロックとの中間点となり、かつ、上記ブロック群の上端に位置するブロックと下端に位置するブロックとの中間点となる位置(Xobj,Yobj)、すなわち上記ブロック群を囲む矩形の中心を、標的オブジェクトの位置とする。そして、情報処理部31は、設定された標的オブジェクトの位置(Xobj,Yobj)を用いて、標的オブジェクト位置データDe3を更新する。
【0139】
次に、情報処理部31は、新たに標的オブジェクトを仮想空間に配置して(ステップ78)、当該サブルーチンによる処理を終了する。例えば、情報処理部31は、上記カメラ画像のテクスチャが主面全面にマッピングされた平面ポリゴン(図16および図17参照)に対して、出現条件を満たした特定色の領域に重ね合わされて透視投影される位置(Xobj,Yobj,Z0)に、標的オブジェクトサイズデータDe2が示す大きさで標的オブジェクトを配置し、当該配置位置を用いて標的オブジェクトデータDeを更新する。以下、図19および図20を用いて、標的オブジェクトOBJ1を仮想空間に配置する例について説明する。
【0140】
本実施形態においては、図19に示すように、仮想カメラC2から、透視投影で標的オブジェクトOBJ1をレンダリングした画像を仮想世界画像として生成する。ここで、標的オブジェクトOBJ1が上側LCD22に表示されたカメラ画像から出現したように表現するためには、上記カメラ画像のテクスチャが主面全面にマッピングされた平面ポリゴン(図16および図17参照)における特定色領域内の上記標的オブジェクトの位置に、標的オブジェクトOBJ1を重ね合わせて透視投影する必要がある。
【0141】
原点から(X,Y,Z)=(0,0,−1)方向に標的オブジェクトOBJ1を透視投影することを考える。この場合、図20に示すZ=Z0の位置に標的オブジェクトOBJ1を配置すれば、標的オブジェクトOBJ1におけるテクスチャ1ピクセルあたりの表示画面内の大きさが、当該表示画面の1dotに相当することになる。ここで、Z=Z0の位置は、標的オブジェクトOBJを透視投影する仮想カメラC2のY軸方向の画角をθとした場合に、仮想カメラC2の注視点からY軸正方向への表示範囲の長さがH/2iとなる位置である。なお、上述したように、Hは上側LCD22の表示画面における縦のドット数であり、iは仮想空間の座標の1単位に対してマッピングするテクスチャのピクセル数である。そして、仮想カメラC2の中心からZ=Z0の位置までの距離をD(D>0)とすると、以下の数式が成立する。
tanθ=(H/2i)/D=H/2Di
【0142】
したがって、標的オブジェクトOBJ1を透視投影して仮想世界画像を生成する場合、当該仮想世界画像を生成する仮想カメラC2の設定を
Y軸方向の画角θ=tan-1(H/2Di)
アスペクト比=W:H
とする。そして、大きさW1×H1の標的オブジェクトOBJ1を、仮想カメラC2からのビュー座標(X0,Y0,Z0)に配置すると、図17に示した座標上における位置(X0,Y0)に大きさW1×H1で配置されて表示される。したがって、上記ステップ77で設定された標的オブジェクトの位置(Xobj,Yobj)をX軸方向の座標およびY軸方向の座標としたビュー座標(Xobj,Yobj,Z0)に標的オブジェクトOBJ1を配置することによって、標的オブジェクトOBJ1が上記カメラ画像のテクスチャが主面全面にマッピングされた平面ポリゴンにおける特定色領域に重ね合わされて透視投影される。なお、上記カメラ画像のテクスチャが主面全面にマッピングされた平面ポリゴンと標的オブジェクトOBJ1〜OBJ3とを奥行方向に対して実質的に同じ位置に配置することによって、両者の表示が不安定になる場合は、標的オブジェクトOBJ1の奥行位置を少し前(仮想カメラC2側)に設定してもかまわない。
【0143】
図12に戻り、上記ステップ55における標的オブジェクト出現処理の後、情報処理部31は、弾オブジェクトに関する処理を行い(ステップ56)、次のステップに処理を進める。以下、図14を参照して、弾オブジェクト処理について説明する。
【0144】
図14において、情報処理部31は、設定されている移動速度ベクトルに応じて、仮想空間内で弾オブジェクトBOを移動させ(ステップ81)、次のステップに処理を進める。例えば、情報処理部31は、弾オブジェクトデータDfに設定されている弾オブジェクトBOの位置および移動速度ベクトルに応じて、弾オブジェクトBOの位置を移動速度ベクトルが示す方向へ移動速度ベクトルが示す速度で、仮想空間内を移動させる。そして、情報処理部31は、移動後の弾オブジェクトBOの位置を用いて、弾オブジェクトデータDfを更新する。
【0145】
次に、情報処理部31は、ゲーム装置10のユーザによって発射操作が行われたか否かを判断する(ステップ82)。例えば、情報処理部31は、操作子データDa1を参照して、ユーザが所定の発射操作(例えば、ボタン14B(Aボタン)の押下)を行ったか否かを判断する。そして、情報処理部31は、発射操作が行われた場合、次のステップ83に処理を進める。一方、情報処理部31は、発射操作が行われていない場合、次のステップ84に処理を進める。
【0146】
ステップ83において、情報処理部31は、発射操作に応じて、仮想空間における仮想カメラの位置に弾オブジェクトBOを配置し、当該弾オブジェクトBOに対する移動速度ベクトルを設定して、次のステップ84に処理を進める。例えば、情報処理部31は、標的オブジェクトOBJを透視投影する仮想カメラの位置に弾オブジェクトBOを新たに配置し、当該配置された弾オブジェクトBOの位置を用いて、弾オブジェクトデータDfを更新する。また、情報処理部31は、上記仮想カメラの位置から当該仮想カメラの注視点への方向に向かう所定サイズのベクトルを設定し、当該ベクトルを上記新たに配置した弾オブジェクトBOの移動速度ベクトルとして弾オブジェクトデータDfを更新する。
【0147】
ステップ84において、情報処理部31は、標的オブジェクトOBJと弾オブジェクトBOとが仮想空間内で接触したか否かを判断する。例えば、情報処理部31は、標的オブジェクトデータDeが示す標的オブジェクトOBJの位置と、弾オブジェクトデータDfが示す弾オブジェクトBOの位置とを用いて、標的オブジェクトOBJと弾オブジェクトBOとが仮想空間内で接触したか否かを判断する。そして、情報処理部31は、標的オブジェクトOBJと弾オブジェクトBOとが接触した場合、次のステップ85に処理を進める。一方、情報処理部31は、標的オブジェクトOBJと弾オブジェクトBOとが接触していない場合、次のステップ86に処理を進める。
【0148】
ステップ85において、情報処理部31は、加点処理を行って、次のステップ86に処理を進める。例えば、上記加点処理においては、情報処理部31は、得点データDgが示すゲームの得点を所定数だけ加点し、加点後の得点を用いて得点データDgを更新する。なお、加点する得点については、接触した標的オブジェクトOBJの種別や大きさに応じて変化させてもよい。また、上記加点処理においては、情報処理部31は、消滅条件を満たす場合に、上記ステップ84で接触したと判定された両者(すなわち、標的オブジェクトOBと弾オブジェクトBO)を仮想空間から消滅させる処理(例えば、弾オブジェクトBOと接触した標的オブジェクトOBJおよび標的オブジェクトOBJに接触した弾オブジェクトBOに関するそれぞれの標的オブジェクトデータDeおよび弾オブジェクトデータDfを初期化し、当該標的オブジェクトOBJおよび弾オブジェクトBOが仮想空間に存在しない状態にする)を行う。
【0149】
ステップ86において、情報処理部31は、弾オブジェクトBOが仮想空間における所定の位置まで到達したか否かを判断する。例えば、情報処理部31は、弾オブジェクトデータDfが示す弾オブジェクトBOの位置が、仮想カメラから見て上述したZ=Z0の位置に到達したか否かを判断する。そして、情報処理部31は、弾オブジェクトBOが所定の位置まで到達した場合、次のステップ87に処理を進める。一方、情報処理部31は、弾オブジェクトBOが所定の位置まで到達していない場合、当該サブルーチンによる処理を終了する。
【0150】
ステップ87において、情報処理部31は、上記ステップ86で所定の位置に到達したと判定された弾オブジェクトBOを仮想空間から消滅させる処理を行い、当該サブルーチンによる処理を終了する。例えば、情報処理部31は、上記ステップ86で所定の位置に到達したと判定された弾オブジェクトBOを仮想空間から消滅させる処理(例えば、当該弾オブジェクトBOに関する弾オブジェクトデータDfを初期化し、当該弾オブジェクトBOが仮想空間に存在しない状態にする)を行う。
【0151】
図12に戻り、上記ステップ56における弾オブジェクトに関する処理の後、情報処理部31は、ゲーム装置10の動きを算出して(ステップ57)、次のステップに処理を進める。一例として、情報処理部31は、角速度データDa2が示す角速度を用いて、ゲーム装置10の動き(例えば、ゲーム装置10に設けられた実カメラにおける撮像方向の変化)を算出し、当該動きを用いて動きデータDhを更新する。具体的には、ユーザが実空間においてゲーム装置10に設けられた実カメラの撮像方向を変化させた場合、ゲーム装置10全体の向きも変化するため、ゲーム装置10に当該変化に応じた角速度が生じる。そして、ゲーム装置10に生じた角速度を角速度センサ40が検出することによって、当該角速度を示すデータが角速度データDa2に格納される。したがって、情報処理部31は、角速度データDa2が示す角速度を用いることによって、ゲーム装置10に設けられた実カメラの撮像方向が変化した方向や変化した量(角度)をゲーム装置10の動きとして算出することが可能となる。
【0152】
次に、情報処理部31は、ゲーム装置10の動きに応じて仮想空間における仮想カメラの位置や方向を変更し(ステップ58)、次のステップに処理を進める。例えば、情報処理部31は、実空間におけるゲーム装置10の実カメラの撮像方向変化と同じ変化を、仮想空間における仮想カメラに与え、変化後の仮想カメラの位置や方向を用いて仮想カメラデータDiを更新する。一例として、実空間におけるゲーム装置10の実カメラの撮像方向が左へA°変化(y軸を中心にy軸負方向に見てx軸およびz軸が左回りにA°回転するようにゲーム装置10が動く変化)した場合、仮想空間における仮想カメラの方向も左へA°変化(仮想カメラからのビュー座標において、Y軸を中心にY軸負方向に見てX軸およびZ軸が左回りにA°回転する仮想カメラの方向変化)させる。これによって、実空間内に配置されているように表示されている標的オブジェクトOBJは、実空間内におけるゲーム装置10の方向や位置が変わっても実空間内における同じ位置に配置されているように表示される。
【0153】
次に、情報処理部31は、仮想空間をレンダリングする処理を行い(ステップ59)、次のステップに処理を進める。例えば、情報処理部31は、標的オブジェクトOBJおよび弾オブジェクトBOが配置されている仮想空間をレンダリングした画像を用いて仮想空間のレンダリング画像データDj2を更新する。例えば、図19に示すように、仮想空間には標的オブジェクトOBJ1および弾オブジェクトBOが、それぞれ標的オブジェクトデータDeおよび弾オブジェクトデータDfが示す位置や方向に応じて配置されている。また、仮想空間には、仮想空間をレンダリングするための仮想カメラC2が、仮想カメラデータDiが示す位置および方向に応じて配置されている。ここで、上述したように標的オブジェクトOBJ1は、上側LCD22に表示されたカメラ画像に含まれている特定色領域から出現した位置に配置されている。そして、仮想カメラC2から、仮想空間の配置された標的オブジェクトOBJ1および弾オブジェクトBOを透視投影でレンダリングすることによって仮想世界画像を生成して、仮想空間のレンダリング画像データDj2を更新する。
【0154】
次に、情報処理部31は、実世界画像と仮想空間画像とを合成した表示画像を生成し、当該表示画像を上側LCD22に表示して(ステップ60)、次のステップに処理を進める。例えば、情報処理部31は、カメラ画像のレンダリング画像データDj1が示す実世界画像および仮想空間のレンダリング画像データDj2が示す仮想空間画像を取得して、仮想世界画像を優先して実世界画像上に当該仮想世界画像を合成することによって表示画像を生成し、当該表示画像を用いて表示画像データDkを更新する。また、情報処理部31のCPU311は、表示画像データDkが示す表示画像をVRAM313に格納する。そして、情報処理部31のGPU312が、VRAM313に描画された表示画像を上側LCD22に出力することによって、上側LCD22に当該表示画像が表示される。なお、情報処理部31は、仮想空間のレンダリング画像データDj2に仮想空間画像が格納されていない場合、カメラ画像のレンダリング画像データDj1が示す実世界画像をそのまま上記表示画像とすればよい。
【0155】
次に、情報処理部31は、ゲームを終了するか否かを判断する(ステップ61)。ゲームを終了する条件としては、例えば、ゲームオーバとなる条件が満たされたことや、ユーザがゲームを終了する操作を行ったこと等がある。情報処理部31は、ゲームを終了しない場合、上記ステップ52に戻って処理を繰り返す。一方、情報処理部31は、ゲームを終了する場合、当該フローチャートによる処理を終了する。
【0156】
このように、上述した実施形態に係る表示制御処理では、実カメラから得られた実世界画像に所定サイズ以上の特定色の被写体が含まれている場合、当該特定色に応じた標的オブジェクトを出現させて表示されるため、被写体に応じてオブジェクトが出現する新たな画像を表示することができる。
【0157】
なお、上述した説明では、標的オブジェクトが出現する対象となる特定色を、「赤色」、「緑色」、「青色」の3色としたが、他の色や他の属性を特定色として標的オブジェクトが出現する対象としてもかまわない。例えば、橙色、黄色、紫色、桃色等の他の色相を標的オブジェクトが出現する対象となる特定色に設定してもいいし、黒色、灰色、白色等の無彩色を標的オブジェクトが出現する対象となる特定色に設定してもよい。また、所定の閾値より明るい色または暗い色(明度が相対的に高い色または低い色)や所定の閾値より純色に近い色または純色から遠い色(彩度が相対的に高い色または低い色)を標的オブジェクトが出現する対象となる特定色に設定してもよい。RGB値、色相、彩度、明度等の色情報の少なくとも1つを用いることによって、上記と同様の標的オブジェクト出現処理が可能となることは言うまでもない。
【0158】
また、上述した説明では、カメラ画像を所定サイズのブロックに分割し、ブロック毎に特定色の有無を判定する例を用いたが、他の単位で特定色の有無を判定してもかまわない。例えば、カメラ画像の画素毎に特定色の有無を判定してもかまわない。
【0159】
また、上述した説明では、出現条件を満たした特定色の領域から、射撃の対象となる標的オブジェクトが出現する例を用いたが、他のオブジェクトが当該領域から出現するように表示されてもかまわない。例えば、仮想空間を移動する敵オブジェクトに衝突させることによって当該敵オブジェクトを倒す障害物オブジェクトを、出現条件を満たした特定色の領域から出現させてもかまわない。この場合、上側LCD22に表示されて移動している敵オブジェクトを倒すために、障害物オブジェクトを出現させるようなゲームが可能となる。そして、ゲーム装置10を操作してこのゲームを実行するユーザは、障害物オブジェクトを出現させるためには当該障害物オブジェクトを出現させる特定色をゲーム装置10の実カメラで撮像することが必要となるとともに、仮想空間を移動する敵オブジェクトに衝突するような位置に障害物オブジェクトを出現させるために当該特定色の被写体を当該実カメラで撮像する位置を調整しなければならない。このように、敵オブジェクトを倒す障害物オブジェクトを、出現条件を満たした特定色の領域から出現させることによって、今までない新たな操作感覚が得られるゲームが実現できる。他の例として、出現条件を満たした場合に、単にユーザが上側LCD22に表示させて鑑賞するためのオブジェクトが出現するような仕様でもかまわない。
【0160】
また、上述した説明では、ゲーム装置10に生じる角速度を検出し、当該角速度を用いて実空間におけるゲーム装置10の動きを算出する例を用いたが、他の方式を用いてゲーム装置10の動きを算出してもかまわない。第1の例として、ゲーム装置10に内蔵されている加速度センサ39が検出した加速度を用いて、ゲーム装置10の動きを算出してもかまわない。一例として、加速度センサ39を搭載するゲーム装置10が静的な状態であることを前提としてコンピュータ側で処理する場合(すなわち、加速度センサ39によって検出される加速度が重力加速度のみであるとして処理する場合)、ゲーム装置10が現実に静的な状態であれば、検出された加速度に基づいてゲーム装置10の姿勢が重力方向に対して傾いているか否か、またはどの程度傾いているかを知ることができる。他の例として、加速度センサ39を搭載するゲーム装置10が動的な状態であることを前提とする場合には、加速度センサ39が重力加速度成分に加えて加速度センサ39の動きに応じた加速度を検出するので、重力加速度成分を所定の処理により除去すれば、ゲーム装置10の動き方向等を知ることができる。具体的には、加速度センサ39を備えるゲーム装置10がユーザの手で動的に加速されて動かされる場合に、加速度センサ39によって生成される加速度信号を処理することによって、ゲーム装置10の様々な動きおよび/または位置を算出することができる。また、加速度センサ39が動的な状態であることを前提とする場合であっても、加速度センサ39の動きに応じた加速度を所定の処理により除去すれば、重力方向に対するゲーム装置10の傾きを知ることが可能である。
【0161】
第2の例として、ゲーム装置10に内蔵されている実カメラ(外側撮像部23または内側撮像部24)によってリアルタイムで撮像されたカメラ画像の移動量を用いて、ゲーム装置10の動きを算出してもかまわない。例えば、ゲーム装置10が動くことによって、上記実カメラの撮像方向や撮像位置が変わった場合、当該実カメラで撮像されるカメラ画像も変化する。したがって、ゲーム装置10に内蔵されている実カメラで撮像されるカメラ画像の変化を用いれば、当該実カメラの撮像方向が変化した角度や撮像位置の移動量等を算出することができる。一例として、ゲーム装置10に内蔵されている実カメラで撮像されるカメラ画像から所定の物体を識別し、当該物体が撮像されている角度や撮像されている位置を時系列的に比較することによって、これらの変化量から当該実カメラの撮像方向が変化した角度や撮像位置の移動量等を算出することができる。他の例として、ゲーム装置10に内蔵されている実カメラで撮像されるカメラ画像全体に対して時系列的に比較することによって、当該画像全体の撮像方向や撮像範囲の変化量から、当該実カメラの撮像方向が変化した角度や撮像位置の移動量等を算出することができる。
【0162】
第3の例として、上述したゲーム装置10に生じる角速度、ゲーム装置10に生じる加速度、およびゲーム装置10によって撮像されたカメラ画像の少なくとも2つを組み合わせて、ゲーム装置10の動きを算出してもかまわない。これによって、1つのパラメータからゲーム装置10の動きを算出する場合に当該動きの推定が難しい状況において、他のパラメータを組み合わせてゲーム装置10の動きを算出することによって、当該状況を補ったゲーム装置10の動きの算出が可能となる。一例として、上記第2の例によるゲーム装置10の動きを算出では、撮像されたカメラ画像が時系列的に水平方向へ動いた場合、ゲーム装置10の撮影角度が鉛直方向を中心として回転したのか、ゲーム装置10が水平移動したのか、正確な判定が難しいことがある。この場合、ゲーム装置10に生じる角速度を用いれば、ゲーム装置10が回転移動したのか水平移動したのかを容易に判定することが可能となる。
【0163】
また、第4の例として、ゲーム装置10の動きを、いわゆるAR(拡張現実)の技術により算出してもよい。
【0164】
また、上述した説明では、上側LCD22に、外側撮像部23および内側撮像部24のいずれかから取得したカメラ画像CIに基づいた、実世界の平面画像(上述した立体視可能な画像とは反対の意味での平面視の画像)が表示される例を用いたが、裸眼で立体視可能な画像(立体画像)を上側LCD22に表示してもよい。例えば、上述したように、ゲーム装置10は、外側左撮像部23aおよび外側右撮像部23bから取得したカメラ画像を用いた立体視可能な画像(立体画像)を上側LCD22に表示することが可能である。この場合、上側LCD22に表示された立体画像に含まれる特定色の被写体から標的オブジェクトが出現するように描画される。
【0165】
例えば、上記立体画像に含まれる特定色の被写体から標的オブジェクトが出現するように描画する場合、外側左撮像部23aから得られた左目用画像および外側右撮像部23bから得られた右目用画像を用いて、上述した表示制御処理を行う。具体的には、図12に示した表示制御処理において、仮想空間に配置された標的オブジェクトOBJおよび弾オブジェクトBOを、2つの仮想カメラ(ステレオカメラ)から透視変換することによって、それぞれ左目用仮想世界画像と右目用仮想世界画像とを得る。そして、左目用の実世界画像(上記ステップ53で左目用画像をレンダリングした画像)と左目用仮想世界画像とを合成して左目用表示画像を生成し、右目用の実世界画像(上記ステップ53で右目用画像をレンダリングした画像)と右目用仮想世界画像とを合成して右目用表示画像を生成し、当該左目用表示画像および当該右目用表示画像を上側LCD22に出力する。
【0166】
また、上述した説明では、ゲーム装置10に内蔵する実カメラで撮像されたリアルタイムの動画像が上側LCD22に表示され、上記実カメラで撮像された動画像(カメラ画像)の中から標的オブジェクトが出現するように表示されるが、本発明において上側LCD22に表示する画像は、様々なバリエーションが考えられる。第1の例として、予め録画された動画像およびテレビジョン放送や他の装置から得られる動画像等が上側LCD22に表示される。この場合、上記動画像が上側LCD22に表示され、当該動画像に特定色の被写体が含まれる場合に当該動画像の中に標的オブジェクトが出現することになる。第2の例として、ゲーム装置10に内蔵する実カメラや他の実カメラから得られた静止画像が上側LCD22に表示される。この場合、実カメラから得られた静止画像が上側LCD22に表示され、当該静止画像に特定色の被写体が含まれる場合に当該静止画像の中に標的オブジェクトが出現することになる。ここで、実カメラから得られる静止画像は、ゲーム装置10に内蔵する実カメラでリアルタイムに撮像された実世界の静止画像でもいいし、当該実カメラや他の実カメラで予め撮影された実世界の静止画像でもいいし、テレビジョン放送や他の装置から得られる静止画像でもよい。
【0167】
また、上記実施形態では、上側LCD22がパララックスバリア方式の液晶表示装置であるとして、視差バリアのON/OFFを制御することにより、立体表示と平面表示とを切り替えることができる。他の実施形態では、例えば、上側LCD22としてレンチキュラー方式の液晶表示装置を用いて、立体画像および平面画像を表示可能としてもよい。レンチキュラー方式の場合でも、外側撮像部23で撮像した2つの画像を縦方向に短冊状に分割して交互に配置することで画像が立体表示される。また、レンチキュラー方式の場合でも、内側撮像部24で撮像した1つの画像をユーザの左右の目に視認させることによって、当該画像を平面表示させることができる。すなわち、レンチキュラー方式の液晶表示装置であっても、同じ画像を縦方向に短冊状に分割し、これら分割した画像を交互に配置することにより、ユーザの左右の目に同じ画像を視認させることができる。これにより、内側撮像部24で撮像された画像を平面画像として表示することが可能である。
【0168】
また、上述した実施形態では、2画面分の液晶表示部の一例として、物理的に分離された下側LCD12および上側LCD22を互いに上下に配置した場合(上下2画面の場合)を説明した。しかしながら、本発明は、単一の表示画面(例えば、上側LCD22のみ)を有する装置または単一の表示装置に表示する画像を表示制御する装置でも実現することができる。また、2画面分の表示画面の構成は、他の構成でもかまわない。例えば、下側ハウジング11の一方主面に下側LCD12および上側LCD22を左右に配置してもかまわない。また、下側LCD12と横幅が同じで縦の長さが2倍のサイズからなる縦長サイズのLCD(すなわち、物理的には1つで、表示サイズが縦に2画面分あるLCD)を下側ハウジング11の一方主面に配設して、2つの画像(例えば、撮像画像と操作説明画面を示す画像等)を上下に表示(すなわち上下の境界部分無しに隣接して表示)するように構成してもよい。また、下側LCD12と縦幅が同じで横の長さが2倍のサイズからなる横長サイズのLCDを下側ハウジング11の一方主面に配設して、横方向に2つの画像を左右に表示(すなわち左右の境界部分無しに隣接して表示)するように構成してもよい。すなわち、物理的に1つの画面を2つに分割して使用することにより2つの画像を表示してもかまわない。また、物理的に1つの画面を2つに分割して使用することにより上記2つの画像を表示する場合、当該画面全面にタッチパネル13を配設してもかまわない。
【0169】
また、上述した実施例では、ゲーム装置10にタッチパネル13が一体的に設けられているが、ゲーム装置とタッチパネルとを別体にして構成しても、本発明を実現できることは言うまでもない。また、上側LCD22の上面にタッチパネル13を設けて上側LCD22に上述した下側LCD12に表示していた表示画像を表示してもよい。また、本発明を実現する場合に、タッチパネル13が設けられていなくもかまわない。
【0170】
また、上記実施例では、携帯型のゲーム装置10や据置型のゲーム装置を用いて説明したが、一般的なパーソナルコンピュータ等の情報処理装置で本発明の表示制御プログラムを実行して、本発明を実現してもかまわない。また、他の実施形態では、ゲーム装置に限らず任意の携帯型電子機器、例えば、PDA(Personal Digital Assistant)や携帯電話、パーソナルコンピュータ、カメラ等であってもよい。例えば、携帯電話が、1つのハウジングの主面に2つの表示部と、実カメラとを備えてもよい。
【0171】
また、上述した説明では表示制御処理をゲーム装置10で行う例を用いたが、上記表示制御処理における処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、ゲーム装置10が他の装置(例えば、サーバや他のゲーム装置)と通信可能に構成されている場合、上記表示制御処理における処理ステップは、ゲーム装置10および当該他の装置が協働することによって実行してもよい。一例として、他の装置において、実世界画像および標的オブジェクトOBJ1〜OBJ3を設定する処理が行われ、ゲーム装置10が実世界画像および標的オブジェクトOBJ1〜OBJ3に関するデータを取得して、ステップ56〜ステップ61の処理を行うことが考えられる。このように、上記画像における処理ステップの少なくとも一部を他の装置で行うことによって、上述した表示制御処理と同様の処理が可能となる。このように、上述した表示制御処理は、少なくとも1つの情報処理装置により構成される情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施形態においては、ゲーム装置10の情報処理部31が所定のプログラムを実行することによって、上述したフローチャートによる処理が行われたが、ゲーム装置10が備える専用回路によって上記処理の一部または全部が行われてもよい。
【0172】
また、上述したゲーム装置10の形状や、それに設けられている各種操作ボタン14、アナログスティック15、タッチパネル13の形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、上述した表示制御処理で用いられる処理順序、設定値、判定に用いられる値等は、単なる一例に過ぎず他の順序や値であっても、本発明を実現できることは言うまでもない。
【0173】
また、上記表示制御プログラム(ゲームプログラム)は、外部メモリ45やデータ保存用外部メモリ46等の外部記憶媒体を通じてゲーム装置10に供給されるだけでなく、有線または無線の通信回線を通じてゲーム装置10に供給されてもよい。また、上記プログラムは、ゲーム装置10内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープなどでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを記憶する揮発性メモリでもよい。
【0174】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。
【産業上の利用可能性】
【0175】
本発明に係る表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法は、実世界画像を用いて新たな画像を設定して表示制御することが可能であり、各種画像を表示装置に表示する処理等を行う表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法等として有用である。
【符号の説明】
【0176】
10…ゲーム装置
11…下側ハウジング
12…下側LCD
13…タッチパネル
14…操作ボタン
15…アナログスティック
16…LED
17…挿入口
18…マイクロフォン用孔
19…無線スイッチ
21…上側ハウジング
22…上側LCD
23…外側撮像部
23a…外側左撮像部
23b…外側右撮像部
24…内側撮像部
25…3D調整スイッチ
26…3Dインジケータ
27…スクリーンカバー
28…タッチペン
31…情報処理部
311…CPU
312…GPU
313…VRAM
32…メインメモリ
33…外部メモリI/F
34…データ保存用外部メモリI/F
35…データ保存用内部メモリ
36…無線通信モジュール
37…ローカル通信モジュール
38…RTC
39…加速度センサ
40…角速度センサ
41…電源回路
42…I/F回路
43…マイク
44…スピーカ
45…外部メモリ
46…データ保存用外部メモリ
【技術分野】
【0001】
本発明は、表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法に関し、より具体的には、実世界画像を用いて仮想オブジェクトを設定して表示制御する表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法に関する。
【背景技術】
【0002】
従来、実世界画像と仮想世界画像とを重ね合わせた画像を表示する装置が提案されている(例えば、特許文献1参照)。上記特許文献1で開示されたゲーム装置は、外部カメラによって撮像された画像を背景画像としてゲーム画像に重ね合わせて表示している。具体的には、上記ゲーム装置は、上記背景画像が一定時間毎に更新され、最新の背景画像をゲーム画像と重ね合わせて表示している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−113746号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記特許文献1で開示されたゲーム装置は、外部カメラによって撮像された画像が単に背景画像として表示されるだけであり、重ね合わされる背景画像とゲーム画像とが何ら関連のない状態で表示される。したがって、表示される画像自体が単調であり、面白味のある画像をユーザに提示することはできない。
【0005】
それ故に、本発明の目的は、実世界画像を用いて新たな画像を設定して表示制御することができる表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法を提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。なお、特許請求の範囲の記載を解釈する際に、特許請求の範囲の記載によってのみその範囲が解釈されるべきであることが理解され、特許請求の範囲の記載と本欄の記載とが矛盾する場合には、特許請求の範囲の記載が優先する。
【0007】
本発明の表示制御プログラムの一構成例は、表示装置に画像を表示させる表示制御装置のコンピュータを、撮像画像取得手段、色検出手段、画像生成手段、および画像表示制御手段として機能させる。撮像画像取得手段は、実カメラによって撮像された撮像画像を取得する。色検出手段は、撮像画像取得手段によって取得された撮像画像において、RGB値、色相、彩度、および明度からなる群から選ばれた少なくとも1つを含む色情報に対して特定の範囲の色情報を有する少なくとも1つの画素を検出する。画像生成手段は、色検出手段が検出した画素が有する特定の範囲の色情報に基づいて、仮想世界に配置されるオブジェクトの画像を生成する。画像表示制御手段は、画像生成手段によって生成された画像を表示装置に表示する。
【0008】
上記によれば、実カメラによって撮像された撮像画像から特定の範囲の色情報を有する画素を検出し、当該色情報に応じたオブジェクトを生成して表示するため、実世界画像を用いて新たな画像を設定して表示制御することができる。
【0009】
また、上記画像生成手段は、撮像画像取得手段によって取得された撮像画像とオブジェクトを仮想世界に配置して仮想カメラから見た仮想世界画像とを合成した合成画像を生成してもよい。画像表示制御手段は、画像生成手段により生成された合成画像を表示装置に表示してもよい。
【0010】
上記によれば、撮像画像(実世界画像)とオブジェクトの画像(仮想世界画像)とが合成されて表示されるため、さらに面白味のある画像を提示することができる。
【0011】
また、上記画像生成手段は、色検出手段により検出された特定の範囲の色情報を有する画素の撮像画像における検出位置に応じて、仮想世界画像におけるオブジェクトの画像が当該検出位置に重なって撮像画像に合成されるように当該オブジェクトを仮想世界に配置し、仮想カメラからオブジェクトを見た仮想世界の画像を仮想世界画像として生成してもよい。
【0012】
上記によれば、撮像画像から検出された特定の範囲の色情報を有する画素の位置に対応する仮想空間にオブジェクトが配置されるため、あたかも撮像画像の当該画素上にオブジェクトが配置されているような表現が可能となる。
【0013】
また、上記画像生成手段は、仮想カメラ設定手段を含んでもよい。仮想カメラ設定手段は、実カメラの動きを検出する検出手段からの出力に基づいて、当該実カメラの動きを検出し、当該実カメラの動きと同じ動きを仮想カメラに与えて当該仮想カメラの位置および撮像方向を設定する。この場合、画像生成手段は、オブジェクトを仮想世界に配置した仮想世界画像を生成した後、仮想カメラ設定手段によって設定された仮想カメラからオブジェクトを見た仮想世界の画像を仮想世界画像として生成してもよい。
【0014】
上記によれば、実カメラの動きと同じ動きが仮想カメラに与えられるため、実カメラの撮像範囲が変わったとしても、撮像範囲変更後の撮像画像に対して同じ位置にオブジェクトを配置することができ、あたかも撮像画像で表現された実空間内にオブジェクトが配置されているように表示することができる。
【0015】
また、上記色検出手段は、領域検出手段および面積算出手段を含んでもよい。領域検出手段は、撮像画像取得手段により取得された撮像画像において、特定の範囲の色情報を有する画素の領域を検出する。面積算出手段は、領域検出手段により検出された領域にしたがって決められる面積を算出する。上記画像生成手段は、面積算出手段により算出された面積に応じて、オブジェクトの大きさを設定して当該オブジェクトの画像を生成してもよい。
【0016】
上記によれば、撮像画像から検出された特定の範囲の色情報を有する画素群の面積に応じてオブジェクトの大きさが決定されるため、色だけでなく面積も考慮されて配置されるオブジェクトが変化するため、さらに面白味のある画像を提示することができる。
【0017】
また、上記画像生成手段は、オブジェクト設定手段を含んでもよい。オブジェクト設定手段は、色情報の特定の範囲毎に複数のオブジェクトを予め設定する。上記画像生成手段は、複数のオブジェクトのうち、色検出手段が検出した画素が有する特定の範囲の色情報に対応するオブジェクトを仮想世界に配置して、当該オブジェクトの画像を生成してもよい。
【0018】
上記によれば、色情報の特定の範囲毎に予め複数のオブジェクトが設定され、撮像画像から検出された画素が有する特定の範囲の色情報に応じて当該複数のオブジェクトから仮想世界に配置するオブジェクトが選択されるため、色に応じた様々なオブジェクトを表示対象として設定することが可能であり、さらに面白味のある画像を提示することができる。
【0019】
また、上記表示制御プログラムは、操作入力データ取得手段、操作オブジェクト配置手段、および加点手段として、コンピュータをさらに機能させてもよい。操作入力データ取得手段は、ユーザが入力した操作入力を示すデータを取得する。操作オブジェクト配置手段は、操作入力データ取得手段が取得したデータが所定の操作入力を示す場合、仮想世界にオブジェクトとは異なる操作オブジェクトを配置する。加点手段は、仮想世界においてオブジェクトと操作オブジェクトとが所定の位置関係となった場合に、所定の点数を加点する。上記画像生成手段は、仮想世界に操作オブジェクトも配置して、オブジェクトおよび操作オブジェクトの画像を生成してもよい。
【0020】
上記によれば、ユーザの操作に応じて弾等の発射物を示す発射オブジェクト等を仮想世界に配置して、オブジェクト同士の位置関係によって所定の得点が得られるため、ユーザが飽きることを防止しながらオブジェクトの画像を表示することができる。
【0021】
また、上記表示制御プログラムは、移動オブジェクト配置手段として、コンピュータをさらに機能させてもよい。移動オブジェクト配置手段は、所定のアルゴリズムにしたがって移動する移動オブジェクトを操作オブジェクトとは別に仮想世界に配置する。この場合、上記加点手段は、移動オブジェクトと操作オブジェクトとが所定の位置関係となった場合に、所定の点数をさらに加点してもよい。上記画像生成手段は、仮想世界に移動オブジェクトも配置して、オブジェクト、操作オブジェクト、および移動オブジェクトの画像を生成してもよい。
【0022】
上記によれば、ユーザは、移動オブジェクトに対して操作オブジェクトを所定の位置関係にして得点を得ることを楽しみつつ、さらに実カメラを動かしながら移動オブジェクト以外のオブジェクトも色情報に基づいて出現させて操作オブジェクトを所定の位置関係にすることによって得点をさらに得ることを楽しむことができる。例えば、仮想世界に配置された移動オブジェクトを倒していくゲームと、特定の色を被写体として撮像してオブジェクトを同じ仮想世界に出現させて得点対象とするゲームとを同時に進行させることで、ユーザの興趣性を向上させることができる。
【0023】
また、上記画像生成手段は、色検出手段が検出した特定の範囲の色情報を有する画素が所定の領域以上検出された場合、当該特定の範囲の色情報に対応するオブジェクトを仮想世界に配置して当該オブジェクトの画像を生成してもよい。
【0024】
上記によれば、オブジェクトを表示するためには特定の範囲の色情報を有する画素が所定の領域以上検出される必要があるため、ユーザは当該オブジェクトを表示させるためにオブジェクトを表示させるための被写体を選択しながら、その撮像範囲を調整するような撮像操作が必要となり、新たな画像を表示するために新たな操作が要求されることになる。
【0025】
また、上記色検出手段は、彩度および明度を示す色情報がそれぞれ所定の閾値以上に高く、かつ、色相を示す色情報が所定の範囲内を示す少なくとも1つの画素を検出してもよい。
【0026】
上記によれば、複数の色情報を組み合わせて色検出することによって、色の誤判定を防止しながらユーザが本来区別している色認識に色検出結果を近づけることができる。
【0027】
また、上記色検出手段は、ブロック分割手段、色相算出手段、ブロック分類手段、およびブロック群選択手段を含んでもよい。ブロック分割手段は、撮像画像を複数の画素で構成されるブロックに分割する。色相算出手段は、ブロックに属する画素がそれぞれ有するRGB値に基づいて、当該ブロックに対する色相を示す値をブロック毎に算出する。ブロック分類手段は、ブロックに対する色相を示す値が含まれる所定の色相範囲に基づいて、ブロックが属する色相分類をそれぞれ設定する。ブロック群選択手段は、隣接するブロックが同じ色相分類に属するブロック群の大きさに応じて、オブジェクトの画像を生成する対象とするブロック群を選択する。上記画像生成手段は、ブロック群選択手段が選択したブロック群の色相分類に応じて、仮想世界に配置するオブジェクトを選択してもよい。
【0028】
上記によれば、ブロック毎に色相を判定することによって色検出処理が容易となり、処理負荷が軽減される。
【0029】
また、上記撮像画像取得手段は、表示制御装置が利用可能な実カメラによってリアルタイムに撮像された実世界の撮像画像を繰り返し取得してもよい。上記色検出手段は、撮像画像取得手段によって繰り返し取得された撮像画像それぞれにおいて、特定の範囲の色情報を有する画素を検出してもよい。上記画像生成手段は、撮像画像取得手段によって繰り返し取得された撮像画像それぞれと当該撮像画像から生成された仮想世界画像とを合成して繰り返し合成画像を生成してもよい。上記画像表示制御手段は、撮像画像取得手段によって繰り返し取得された撮像画像それぞれに仮想世界画像が合成画像を表示装置に繰り返し表示してもよい。
【0030】
上記によれば、リアルタイムに撮像された実世界の撮像画像から特定の範囲の色情報を有する画素を検出し、当該色情報に応じたオブジェクトを当該リアルタイムに撮像された画像に合成して表示するため、リアルタイムに得られる実世界画像を用いて新たな画像を設定して表示制御することができる。
【0031】
また、本発明は、上記各手段を備える表示制御装置および表示制御システムや上記各手段で行われる動作を含む表示制御方法の形態で実施されてもよい。
【発明の効果】
【0032】
本発明によれば、実カメラによって撮像された撮像画像から特定の範囲の色情報を有する画素を検出し、当該色情報に応じたオブジェクトを生成して表示するため、実世界画像を用いて新たな画像を設定して表示制御することができる。
【図面の簡単な説明】
【0033】
【図1】開いた状態におけるゲーム装置10の一例を示す正面図
【図2】開いた状態におけるゲーム装置10の一例を示す側面図
【図3A】閉じた状態におけるゲーム装置10の一例を示す左側面図
【図3B】閉じた状態におけるゲーム装置10の一例を示す正面図
【図3C】閉じた状態におけるゲーム装置10の一例を示す右側面図
【図3D】閉じた状態におけるゲーム装置10の一例を示す背面図
【図4】ユーザがゲーム装置10を両手で把持する様子の一例を示す図
【図5】ゲーム装置10の内部構成の一例を示すブロック図
【図6A】青色の被写体が含まれたカメラ画像CIが上側LCD22に表示された一例を示す図
【図6B】カメラ画像CIに含まれる青色の被写体から標的オブジェクトOBJ1が出現した様子が上側LCD22に表示された一例を示す図
【図7A】緑色の被写体が含まれたカメラ画像CIが上側LCD22に表示された一例を示す図
【図7B】カメラ画像CIに含まれる緑色の被写体から標的オブジェクトOBJ2が出現した様子が上側LCD22に表示された一例を示す図
【図8A】赤色の被写体が含まれたカメラ画像CIが上側LCD22に表示された一例を示す図
【図8B】カメラ画像CIに含まれる赤色の被写体から標的オブジェクトOBJ3が出現した様子が上側LCD22に表示された一例を示す図
【図9】図1のゲーム装置10で実行される表示制御プログラムを実行することに応じて、メインメモリ32に記憶される各種データの一例を示す図
【図10】図9の特定色判定結果データDdの一例を示す図
【図11】図9の標的オブジェクト設定データDe1の一例を示す図
【図12】図1のゲーム装置10で実行される表示制御プログラムを実行することによってゲーム装置10が表示制御処理する動作の一例を示すフローチャート
【図13】図12のステップ55で行われる標的オブジェクト出現処理の詳細な動作の一例を示すサブルーチン
【図14】図12のステップ56で行われる弾オブジェクト処理の詳細な動作の一例を示すサブルーチン
【図15】図13のステップ71で行われる色検出処理の詳細な動作の一例を示すサブルーチン
【図16】カメラ画像をレンダリングする処理の一例を説明するための説明図
【図17】カメラ画像をレンダリングする際の座標の一例を説明するための説明図
【図18】同じ特定色で繋がっているブロック群と矩形および標的オブジェクトの位置との関係の一例を説明するための図
【図19】標的オブジェクトOBJ1および弾オブジェクトBOをレンダリングする処理の一例を説明するための説明図
【図20】標的オブジェクトOBJおよび弾オブジェクトBOをレンダリングする際の座標の一例を説明するための説明図
【発明を実施するための形態】
【0034】
図面を参照して、本発明の一実施形態に係る表示制御プログラムを実行する表示制御装置について説明する。本発明の表示制御プログラムは、任意のコンピュータシステムで実行されることによって適用することができるが、表示制御装置の一例として携帯型のゲーム装置10を用い、ゲーム装置10で実行される表示制御プログラムを用いて説明する。なお、図1〜図3Dは、ゲーム装置10の外観の一例を示す平面図である。ゲーム装置10は、一例として携帯型のゲーム装置であり、図1〜図3Dに示すように折り畳み可能に構成されている。図1は、開いた状態(開状態)におけるゲーム装置10の一例を示す正面図である。図2は、開状態におけるゲーム装置10の一例を示す右側面図である。図3Aは、閉じた状態(閉状態)におけるゲーム装置10の一例を示す左側面図である。図3Bは、閉状態におけるゲーム装置10の一例を示す正面図である。図3Cは、閉状態におけるゲーム装置10の一例を示す右側面図である。図3Dは、閉状態におけるゲーム装置10の一例を示す背面図である。ゲーム装置10は、撮像部を内蔵しており、当該撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置10は、交換可能なメモリカード内に記憶され、または、サーバや他のゲーム装置から受信したゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラから見た仮想空間画像等のコンピュータグラフィックス処理により生成された画像を画面に表示することもできる。
【0035】
図1〜図3Dにおいて、ゲーム装置10は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に連結されている。図1の例では、下側ハウジング11および上側ハウジング21は、それぞれ横長の長方形の板状で形成され、互いの長辺部分で回動可能に連結されている。通常、ユーザは、開状態でゲーム装置10を使用する。そして、ユーザは、ゲーム装置10を使用しない場合には閉状態としてゲーム装置10を保管する。また、ゲーム装置10は、上記閉状態および開状態のみでなく、下側ハウジング11と上側ハウジング21とのなす角度が閉状態と開状態との間の任意の角度において、連結部分に発生する摩擦力などによってその開閉角度を維持することができる。つまり、上側ハウジング21を下側ハウジング11に対して任意の角度で静止させることができる。
【0036】
図1および図2に示されるように、下側ハウジング11の上側長辺部分には、下側ハウジング11の内側面(主面)11Bに対して垂直な方向に突起する突起部11Aが設けられる。また、上側ハウジング21の下側長辺部分には、上側ハウジング21の下側面から当該下側面に垂直な方向に突起する突起部21Aが設けられる。下側ハウジング11の突起部11Aと上側ハウジング21の突起部21Aとが連結されることにより、下側ハウジング11と上側ハウジング21とが、折り畳み可能に接続される。
【0037】
下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12、タッチパネル13、各操作ボタン14A〜14L(図1、図3A〜図3D)、アナログスティック15、LED16A〜16B、挿入口17、および、マイクロフォン用孔18が設けられる。以下、これらの詳細について説明する。
【0038】
図1に示すように、下側LCD12は下側ハウジング11に収納される。下側LCD12は横長形状であり、長辺方向が下側ハウジング11の長辺方向に一致するように配置される。下側LCD12は、下側ハウジング11の中央に配置される。下側LCD12は、下側ハウジング11の内側面(主面)に設けられ、下側ハウジング11の内側面に設けられた開口部から下側LCD12の画面が露出する。そして、ゲーム装置10を使用しない場合には上記閉状態としておくことによって、下側LCD12の画面が汚れたり傷ついたりすることを防止することができる。下側LCD12の画素数は、一例として、256dot×192dot(横×縦)である。下側LCD12は、後述する上側LCD22とは異なり、画像を(立体視可能ではなく)平面的に表示する表示装置である。なお、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側LCD12として、任意の解像度の表示装置を利用することができる。
【0039】
図1に示されるように、ゲーム装置10は、入力装置として、タッチパネル13を備えている。タッチパネル13は、下側LCD12の画面上を覆うように装着されている。なお、本実施形態では、タッチパネル13は、例えば抵抗膜方式のタッチパネルが用いられる。ただし、タッチパネル13は、抵抗膜方式に限らず、例えば静電容量方式等、任意の押圧式のタッチパネルを用いることができる。本実施形態では、タッチパネル13として、下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度とが一致している必要はない。また、下側ハウジング11の上側面には挿入口17(図1および図3Dに示す点線)が設けられている。挿入口17は、タッチパネル13に対する操作を行うために用いられるタッチペン28を収納することができる。なお、タッチパネル13に対する入力は通常タッチペン28を用いて行われるが、タッチペン28に限らずユーザの指でタッチパネル13に対する入力をすることも可能である。
【0040】
各操作ボタン14A〜14Lは、所定の入力を行うための入力装置である。図1に示されるように、下側ハウジング11の内側面(主面)には、各操作ボタン14A〜14Lのうち、十字ボタン14A(方向入力ボタン14A)、ボタン14B、ボタン14C、ボタン14D、ボタン14E、電源ボタン14F、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lが設けられる。十字ボタン14Aは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン14B、ボタン14C、ボタン14D、およびボタン14Eは、十字状に配置される。ボタン14A〜14E、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lには、ゲーム装置10が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン14Aは選択操作等に用いられ、各操作ボタン14B〜14Eは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン14Fは、ゲーム装置10の電源をオン/オフするために用いられる。
【0041】
アナログスティック15は、方向を指示するデバイスであり、下側ハウジング11の内側面の下側LCD12より左側領域の上部領域に設けられる。図1に示すように、十字ボタン14Aが下側LCD12より左側領域の下部領域に設けられ、アナログスティック15が十字ボタン14Aの上方に設けられる。また、アナログスティック15および十字ボタン14Aは、下側ハウジング11を把持した左手の親指で操作可能な位置に設計される。また、アナログスティック15を上部領域に設けたことにより、下側ハウジング11を把持する左手の親指が自然と位置するところにアナログスティック15が配され、十字ボタン14Aは、左手の親指を少し下にずらした位置に配される。アナログスティック15は、そのキートップが、下側ハウジング11の内側面に平行にスライドするように構成されている。アナログスティック15は、ゲーム装置10が実行するプログラムに応じて機能する。例えば、3次元仮想空間に所定のオブジェクトが登場するゲームがゲーム装置10によって実行される場合、アナログスティック15は、当該所定のオブジェクトを3次元仮想空間内で移動させるための入力装置として機能する。この場合において、所定のオブジェクトは、アナログスティック15のキートップがスライドした方向に移動される。なお、アナログスティック15として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いてもよい。
【0042】
十字状に配置される、ボタン14B、ボタン14C、ボタン14D、およびボタン14Eの4つのボタンは、下側ハウジング11を把持する右手の親指が自然と位置するところに配置される。また、これらの4つのボタンとアナログスティック15とは、下側LCD12を挟んで、左右対称に配置される。これにより、ゲームプログラムによっては、例えば、左利きの人が、これらの4つのボタンを使用して方向指示入力をすることも可能である。
【0043】
また、下側ハウジング11の内側面には、マイクロフォン用孔18が設けられる。マイクロフォン用孔18の下部には後述する音声入力装置としてのマイク(図5参照)が設けられ、当該マイクがゲーム装置10の外部の音を検出する。
【0044】
図3Bおよび図3Dに示されるように、下側ハウジング11の上側面には、Lボタン14GおよびRボタン14Hが設けられている。Lボタン14Gは、下側ハウジング11の上面の左端部に設けられ、Rボタン14Hは、下側ハウジング11の上面の右端部に設けられる。後述のように、Lボタン14GおよびRボタン14Hは、撮像部のシャッターボタン(撮影指示ボタン)として機能する。また、図3Aに示されるように、下側ハウジング11の左側面には、音量ボタン14Iが設けられる。音量ボタン14Iは、ゲーム装置10が備えるスピーカの音量を調整するために用いられる。
【0045】
図3Aに示されるように、下側ハウジング11の左側面には開閉可能なカバー部11Cが設けられる。このカバー部11Cの内側には、ゲーム装置10とデータ保存用外部メモリ46とを電気的に接続するためのコネクタ(図示せず)が設けられる。データ保存用外部メモリ46は、上記コネクタに着脱自在に装着される。データ保存用外部メモリ46は、例えば、ゲーム装置10によって撮像された画像のデータを記憶(保存)するために用いられる。なお、上記コネクタおよびそのカバー部11Cは、下側ハウジング11の右側面に設けられてもよい。
【0046】
図3Dに示されるように、下側ハウジング11の上側面にはゲーム装置10とゲームプログラムを記録した外部メモリ45を挿入するための挿入口11Dが設けられ、その挿入口11Dの内部には、外部メモリ45と電気的に着脱自在に接続するためのコネクタ(図示せず)が設けられる。外部メモリ45がゲーム装置10に接続されることにより、所定のゲームプログラムが実行される。なお、上記コネクタおよび挿入口11Dは、下側ハウジング11の他の側面(例えば、右側面等)に設けられてもよい。
【0047】
図1に示されるように、下側ハウジング11の下側面には、ゲーム装置10の電源のON/OFF状況をユーザに通知する第1LED16Aが設けられる。また、図3Cに示されるように、下側ハウジング11の右側面には、ゲーム装置10の無線通信の確立状況をユーザに通知する第2LED16Bが設けられる。ゲーム装置10は、他の機器との間で無線通信を行うことが可能であり、第2LED16Bは、他の機器との無線通信が確立している場合に点灯する。ゲーム装置10は、例えば、IEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。下側ハウジング11の右側面には、この無線通信の機能を有効/無効にする無線スイッチ19が設けられる(図3C参照)。
【0048】
なお、図示は省略するが、下側ハウジング11には、ゲーム装置10の電源となる充電式電池が収納され、下側ハウジング11の側面(例えば、上側面)に設けられた端子を介して当該電池を充電することができる。
【0049】
上側ハウジング21には、上側LCD22、2つの外側撮像部23(外側左撮像部23aおよび外側右撮像部23b)、内側撮像部24、3D調整スイッチ25、および3Dインジケータ26が設けられる。以下、これらの詳細について説明する。
【0050】
図1に示すように、上側LCD22は、上側ハウジング21に収納される。上側LCD22は、横長形状であり、長辺方向が上側ハウジング21の長辺方向に一致するように配置される。上側LCD22は、上側ハウジング21の中央に配置される。上側LCD22の画面の面積は、一例として下側LCD12の画面の面積よりも大きく設定される。具体的には、上側LCD22の画面は、下側LCD12の画面よりも横長に設定される。すなわち、上側LCD22の画面のアスペクト比における横幅の割合は、下側LCD12の画面のアスペクト比における横幅の割合よりも大きく設定される。
【0051】
上側LCD22の画面は、上側ハウジング21の内側面(主面)21Bに設けられ、上側ハウジング21の内側面に設けられた開口部から上側LCD22の画面が露出する。また、図2に示すように、上側ハウジング21の内側面は、透明なスクリーンカバー27によって覆われている。スクリーンカバー27は、上側LCD22の画面を保護するとともに、上側LCD22と上側ハウジング21の内側面と一体的にさせ、これにより統一感を持たせている。上側LCD22の画素数は、一例として640dot×200dot(横×縦)である。なお、本実施形態では、上側LCD22が液晶表示装置であるとしたが、例えばELを利用した表示装置などが利用されてもよい。また、上側LCD22として、任意の解像度の表示装置を利用することができる。
【0052】
上側LCD22は、立体視可能な画像を表示することが可能な表示装置である。上側LCD22は、実質的に同一の表示領域を用いて左目用画像と右目用画像とを表示することが可能である。具体的には、上側LCD22は、左目用画像と右目用画像とが所定単位で(例えば、1列ずつ)横方向に交互に表示される方式の表示装置である。なお、上側LCD22は、左目用画像と右目用画像とが交互に表示される方式の表示装置であってもよい。また、上側LCD22は、裸眼立体視可能な表示装置である。この場合、上側LCD22は、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式(視差バリア方式)のものが用いられる。本実施形態では、上側LCD22は、パララックスバリア方式のものとする。上側LCD22は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像(立体画像)を表示する。すなわち、上側LCD22は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像をそれぞれ視認させることにより、ユーザにとって立体感のある立体画像(立体視可能な画像)を表示することができる。また、上側LCD22は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる(上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである。)。このように、上側LCD22は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する(平面視画像を表示する)平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する3D調整スイッチ25によって行われる。
【0053】
外側撮像部23は、上側ハウジング21の外側面(上側LCD22が設けられた主面と反対側の背面)21Dに設けられた2つの撮像部(外側左撮像部23aおよび外側右撮像部23b)の総称である。外側左撮像部23aおよび外側右撮像部23bの撮像方向は、いずれも外側面21Dの外向きの法線方向である。また、外側左撮像部23aおよび外側右撮像部23bは、いずれも、上側LCD22の表示面(内側面)の法線方向と180度反対の方向に設計される。すなわち、外側左撮像部23aの撮像方向および外側右撮像部23bの撮像方向は、平行である。外側左撮像部23aと外側右撮像部23bとは、ゲーム装置10が実行するプログラムによって、ステレオカメラとして使用することが可能である。また、プログラムによっては、2つの外側撮像部(外側左撮像部23aおよび外側右撮像部23b)のいずれか一方を単独で用いて、外側撮像部23を非ステレオカメラとして使用することも可能である。また、プログラムによっては、2つの外側撮像部(外側左撮像部23aおよび外側右撮像部23b)で撮像した画像を合成してまたは補完的に使用することにより撮像範囲を広げた撮像をおこなうことも可能である。本実施形態では、外側撮像部23は、外側左撮像部23aおよび外側右撮像部23bの2つの撮像部で構成される。外側左撮像部23aおよび外側右撮像部23bは、それぞれ所定の共通の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0054】
図1の破線および図3Bの実線で示されるように、外側撮像部23を構成する外側左撮像部23aおよび外側右撮像部23bは、上側LCD22の画面の横方向と平行に並べられて配置される。すなわち、2つの外側左撮像部23aおよび外側右撮像部23bを結んだ直線が上側LCD22の画面の横方向と平行になるように、外側左撮像部23aおよび外側右撮像部23bが配置される。図1の破線23aおよび23bは、上側ハウジング21の内側面とは反対側の外側面に存在する外側左撮像部23aおよび外側右撮像部23bをそれぞれ表している。図1に示すように、ユーザが上側LCD22の画面を正面から視認した場合に、外側左撮像部23aは左側に外側右撮像部23bは右側にそれぞれ位置する。外側撮像部23をステレオカメラとして機能させるプログラムが実行されている場合、外側左撮像部23aは、ユーザの左目で視認される左目用画像を撮像し、外側右撮像部23bは、ユーザの右目で視認される右目用画像を撮像する。外側左撮像部23aおよび外側右撮像部23bの間隔は、人間の両目の間隔程度に設定され、例えば、30mm〜70mmの範囲で設定されてもよい。なお、外側左撮像部23aおよび外側右撮像部23bの間隔は、この範囲に限らない。
【0055】
なお、本実施例においては、外側左撮像部23aおよび外側右撮像部23bは、ハウジングに固定されており、撮像方向を変更することはできない。
【0056】
外側左撮像部23aおよび外側右撮像部23bは、上側LCD22(上側ハウジング21)の左右方向に関して中央から対称となる位置にそれぞれ配置される。すなわち、外側左撮像部23aおよび外側右撮像部23bは、上側LCD22を左右に2等分する線に対して対称の位置にそれぞれ配置される。また、外側左撮像部23aおよび外側右撮像部23bは、上側ハウジング21を開いた状態において、上側ハウジング21の上部であって、上側LCD22の画面の上端よりも上方の位置の裏側に配置される。すなわち、外側左撮像部23aおよび外側右撮像部23bは、上側ハウジング21の外側面であって、上側LCD22を外側面に投影した場合、投影した上側LCD22の画面の上端よりも上方に配置される。
【0057】
このように、外側撮像部23の2つの撮像部(外側左撮像部23aおよび外側右撮像部23b)が上側LCD22の左右方向に関して中央から対称の位置に配置されることにより、ユーザが上側LCD22を正視した場合に、外側撮像部23それぞれの撮像方向をユーザの左右の目それぞれの視線方向と一致させることができる。また、外側撮像部23は、上側LCD22の画面の上端より上方の裏側の位置に配置されるため、外側撮像部23と上側LCD22とが上側ハウジング21の内部で干渉することがない。したがって、外側撮像部23を上側LCD22の画面の裏側に配置する場合と比べて、上側ハウジング21を薄く構成することが可能となる。
【0058】
内側撮像部24は、上側ハウジング21の内側面(主面)21Bに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部24は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0059】
図1に示すように、内側撮像部24は、上側ハウジング21を開いた状態において、上側ハウジング21の上部であって、上側LCD22の画面の上端よりも上方に配置され、上側ハウジング21の左右方向に関して中央の位置(上側ハウジング21(上側LCD22の画面)を左右に2等分する線の線上)に配置される。具体的には、図1および図3Bに示されるように、内側撮像部24は、上側ハウジング21の内側面であって、外側左撮像部23aおよび外側右撮像部23bの中間の裏側の位置に配置される。すなわち、上側ハウジング21の外側面に設けられた外側左撮像部23aおよび外側右撮像部23bを上側ハウジング21の内側面に投影した場合、当該投影した外側左撮像部23aおよび外側右撮像部23bの中間に、内側撮像部24が設けられる。図3Bで示される破線24は、上側ハウジング21の内側面に存在する内側撮像部24を表している。
【0060】
このように、内側撮像部24は、外側撮像部23とは反対方向を撮像する。内側撮像部24は、上側ハウジング21の内側面であって、2つの外側撮像部23の中間位置となる裏側に設けられる。これにより、ユーザが上側LCD22を正視した際、内側撮像部24でユーザの顔を正面から撮像することができる。また、外側左撮像部23aおよび外側右撮像部23bと内側撮像部24とが上側ハウジング21の内部で干渉することがないため、上側ハウジング21を薄く構成することが可能となる。
【0061】
3D調整スイッチ25は、スライドスイッチであり、上述のように上側LCD22の表示モードを切り替えるために用いられるスイッチである。また、3D調整スイッチ25は、上側LCD22に表示された立体視可能な画像(立体画像)の立体感を調整するために用いられる。図1〜図3Dに示されるように、3D調整スイッチ25は、上側ハウジング21の内側面および右側面の端部に設けられ、ユーザが上側LCD22を正視した場合に、当該3D調整スイッチ25を視認できる位置に設けられる。3D調整スイッチ25は、所定方向(例えば、上下方向)の任意の位置にスライド可能なスライダを有しており、当該スライダの位置に応じて上側LCD22の表示モードが設定される。
【0062】
例えば、3D調整スイッチ25のスライダが最下点位置に配置されている場合、上側LCD22が平面表示モードに設定され、上側LCD22の画面には平面画像が表示される。なお、上側LCD22を立体表示モードのままとして、左目用画像と右目用画像とを同一の画像とすることにより平面表示してもよい。一方、上記最下点位置より上側にスライダが配置されている場合、上側LCD22は立体表示モードに設定される。この場合、上側LCD22の画面には立体視可能な画像が表示される。ここで、スライダが上記最下点位置より上側に配置されている場合、スライダの位置に応じて、立体画像の見え方が調整される。具体的には、スライダの位置に応じて、右目用画像および左目用画像における横方向の位置のずれ量が調整される。
【0063】
3Dインジケータ26は、上側LCD22が立体表示モードか否かを示す。例えば、3Dインジケータ26は、LEDであり、上側LCD22の立体表示モードが有効の場合に点灯する。図1に示されるように、3Dインジケータ26は、上側ハウジング21の内側面に設けられ、上側LCD22の画面近傍に設けられる。このため、ユーザが上側LCD22の画面を正視した場合、ユーザは3Dインジケータ26を視認しやすい。したがって、ユーザは、上側LCD22の画面を視認している状態でも、上側LCD22の表示モードを容易に認識することができる。
【0064】
また、上側ハウジング21の内側面には、スピーカ孔21Eが設けられる。後述するスピーカ44からの音声がこのスピーカ孔21Eから出力される。
【0065】
次に、図4を参照して、ゲーム装置10の使用状態の一例を示す。なお、図4は、ユーザがゲーム装置10を把持して操作する様子の一例を示す図である。
【0066】
図4に示されるように、ユーザは、下側LCD12および上側LCD22がユーザの方向を向く状態で、両手の掌と中指、薬指および小指とで下側ハウジング11の側面および外側面(内側面の反対側の面)を把持する。このように把持することで、ユーザは、下側ハウジング11を把持したまま、各操作ボタン14A〜14Eおよびアナログスティック15に対する操作を親指で行い、Lボタン14GおよびR14Hに対する操作を人差し指で行うことができる。そして、図4に示した一例では、外側左撮像部23aおよび外側右撮像部23bによってゲーム装置10の背面側の実世界を撮像した実世界画像が、上側LCD22に表示されている。また、タッチパネル13に対して入力を行う場合には、下側ハウジング11を把持していた一方の手を離して他方の手のみで下側ハウジング11を把持することによって、当該一方の手でタッチパネル13に対する入力を行うことができる。
【0067】
次に、図5を参照して、ゲーム装置10の内部構成を説明する。なお、図5は、ゲーム装置10の内部構成の一例を示すブロック図である。
【0068】
図5において、ゲーム装置10は、上述した各構成部に加えて、情報処理部31、メインメモリ32、外部メモリインターフェイス(外部メモリI/F)33、データ保存用外部メモリI/F34、データ保存用内部メモリ35、無線通信モジュール36、ローカル通信モジュール37、リアルタイムクロック(RTC)38、加速度センサ39、角速度センサ40、電源回路41、およびインターフェイス回路(I/F回路)42等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング11(または上側ハウジング21でもよい)内に収納される。
【0069】
情報処理部31は、所定のプログラムを実行するためのCPU(Central Processing Unit)311、画像処理を行うGPU(Graphics Processing Unit)312等を含む情報処理手段である。本実施形態では、所定のプログラムがゲーム装置10内のメモリ(例えば外部メモリI/F33に接続された外部メモリ45やデータ保存用内部メモリ35)に記憶されている。情報処理部31のCPU311は、当該所定のプログラムを実行することによって、後述する表示制御処理やゲーム処理を実行する。なお、情報処理部31のCPU311によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部31は、VRAM(Video RAM)313を含む。情報処理部31のGPU312は、情報処理部31のCPU311からの命令に応じて画像を生成し、VRAM313に描画する。そして、情報処理部31のGPU312は、VRAM313に描画された画像を上側LCD22および/または下側LCD12に出力し、上側LCD22および/または下側LCD12に当該画像が表示される。
【0070】
情報処理部31には、メインメモリ32、外部メモリI/F33、データ保存用外部メモリI/F34、およびデータ保存用内部メモリ35が接続される。外部メモリI/F33は、外部メモリ45を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリI/F34は、データ保存用外部メモリ46を着脱自在に接続するためのインターフェイスである。
【0071】
メインメモリ32は、情報処理部31(CPU311)のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ32は、表示制御処理やゲーム処理で用いられる各種データを一時的に記憶したり、外部(外部メモリ45や他の機器等)から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ32として例えばPSRAM(Pseudo−SRAM)を用いる。
【0072】
外部メモリ45は、情報処理部31によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ45は、例えば読み取り専用の半導体メモリで構成される。外部メモリ45が外部メモリI/F33に接続されると、情報処理部31は外部メモリ45に記憶されたプログラムを読み込むことができる。情報処理部31が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ46は、不揮発性の読み書き可能なメモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ46には、外側撮像部23で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ46がデータ保存用外部メモリI/F34に接続されると、情報処理部31はデータ保存用外部メモリ46に記憶された画像を読み込み、上側LCD22および/または下側LCD12に当該画像を表示することができる。
【0073】
データ保存用内部メモリ35は、読み書き可能な不揮発性メモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ35には、無線通信モジュール36を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【0074】
無線通信モジュール36は、例えばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール37は、所定の通信方式(例えば赤外線通信)により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール36およびローカル通信モジュール37は、情報処理部31に接続される。情報処理部31は、無線通信モジュール36を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール37を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0075】
情報処理部31には、加速度センサ39が接続される。加速度センサ39は、3軸(本実施形態では、xyz軸)方向に沿った直線方向の加速度(直線加速度)の大きさを検出する。加速度センサ39は、例えば下側ハウジング11の内部に設けられる。加速度センサ39は、図1に示すように、下側ハウジング11の長辺方向をx軸、下側ハウジング11の短辺方向をy軸、下側ハウジング11の内側面(主面)に対して垂直な方向をz軸として、ゲーム装置10の各軸方向へ生じる直線加速度の大きさをそれぞれ検出する。なお、加速度センサ39は、例えば静電容量式の加速度センサとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ39は、1軸または2軸方向を検出する加速度センサであってもよい。情報処理部31は、加速度センサ39が検出した加速度を示すデータ(加速度データ)を受け取って、ゲーム装置10の姿勢や動きを算出する。
【0076】
情報処理部31には、角速度センサ40が接続される。角速度センサ40は、ゲーム装置10の3軸(本実施形態では、xyz軸)周りに生じる角速度をそれぞれ検出し、検出した角速度を示すデータ(角速度データ)を情報処理部31へ出力する。角速度センサ40は、例えば下側ハウジング11の内部に設けられる。情報処理部31は、角速度センサ40から出力された角速度データを受け取って、ゲーム装置10の姿勢や動きを算出する。
【0077】
情報処理部31には、RTC38および電源回路41が接続される。RTC38は、時間をカウントして情報処理部31に出力する。情報処理部31は、RTC38によって計時された時間に基づき現在時刻(日付)を計算する。電源回路41は、ゲーム装置10が有する電源(下側ハウジング11に収納される上記充電式電池)からの電力を制御し、ゲーム装置10の各部品に電力を供給する。
【0078】
情報処理部31には、I/F回路42が接続される。I/F回路42には、マイク43、スピーカ44、およびタッチパネル13が接続される。具体的には、I/F回路42には、図示しないアンプを介してスピーカ44が接続される。マイク43は、ユーザの音声を検知して音声信号をI/F回路42に出力する。アンプは、I/F回路42からの音声信号を増幅し、音声をスピーカ44から出力させる。I/F回路42は、マイク43およびスピーカ44(アンプ)の制御を行う音声制御回路と、タッチパネル13の制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部31に出力する。タッチ位置データは、タッチパネル13の入力面において入力が行われた位置(タッチ位置)の座標を示す。なお、タッチパネル制御回路は、タッチパネル13からの信号の読み込み、およびタッチ位置データの生成を所定時間に1回の割合で行う。情報処理部31は、タッチ位置データを取得することにより、タッチパネル13に対して入力が行われたタッチ位置を知ることができる。
【0079】
操作ボタン14は、上記各操作ボタン14A〜14Lからなり、情報処理部31に接続される。操作ボタン14から情報処理部31へは、各操作ボタン14A〜14Iに対する入力状況(押下されたか否か)を示す操作データが出力される。情報処理部31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に応じた処理を実行する。
【0080】
下側LCD12および上側LCD22は、情報処理部31に接続される。下側LCD12および上側LCD22は、情報処理部31(GPU312)の指示にしたがって画像を表示する。本実施形態では、情報処理部31は、入力操作用の画像を下側LCD12に表示させ、外側撮像部23および内側撮像部24のいずれかから取得した画像を上側LCD22に表示させる。すなわち、情報処理部31は、上側LCD22に外側撮像部23で撮像した右目用画像と左目用画像とを用いた立体画像(立体視可能な画像)を表示させたり、内側撮像部24で撮像した平面画像を上側LCD22に表示させたり、上側LCD22に外側撮像部23で撮像した右目用画像および左目用画像の一方を用いた平面画像を表示させたりする。
【0081】
具体的には、情報処理部31は、上側LCD22のLCDコントローラ(図示せず)と接続され、当該LCDコントローラに対して視差バリアのON/OFFを制御する。上側LCD22の視差バリアがONになっている場合、情報処理部31のVRAM313に格納された(外側撮像部23で撮像された)右目用画像と左目用画像とが、上側LCD22に出力される。より具体的には、LCDコントローラは、右目用画像について縦方向に1ライン分の画素データを読み出す処理と、左目用画像について縦方向に1ライン分の画素データを読み出す処理とを交互に繰り返すことによって、VRAM313から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に1ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側LCD22の画面に表示される。そして、上側LCD22の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側LCD22の画面には立体視可能な画像が表示される。
【0082】
外側撮像部23および内側撮像部24は、情報処理部31に接続される。外側撮像部23および内側撮像部24は、情報処理部31の指示にしたがって画像を撮像し、撮像した画像データを情報処理部31に出力する。本実施形態では、情報処理部31は、外側撮像部23および内側撮像部24のいずれか一方に対して撮像指示を行い、撮像指示を受けた撮像部が画像を撮像して画像データを情報処理部31に送る。具体的には、ユーザによるタッチパネル13や操作ボタン14を用いた操作によって使用する撮像部が選択される。そして、撮像部が選択されたことを情報処理部31(CPU311)が検知し、情報処理部31が外側撮像部23または内側撮像部24に対して撮像指示を行う。
【0083】
3D調整スイッチ25は、情報処理部31に接続される。3D調整スイッチ25は、スライダの位置に応じた電気信号を情報処理部31に送信する。
【0084】
3Dインジケータ26は、情報処理部31に接続される。情報処理部31は、3Dインジケータ26の点灯を制御する。例えば、情報処理部31は、上側LCD22が立体表示モードである場合、3Dインジケータ26を点灯させる。
【0085】
次に、ゲーム装置10で実行される表示制御プログラムによる具体的な表示制御処理動作を説明する前に、図6A〜図8Bを参照して当該表示制御処理動作によって上側LCD22に表示される表示形態例について説明する。なお、図6Aは、青色の被写体が含まれたカメラ画像CIが上側LCD22に表示された一例を示す図である。図6Bは、カメラ画像CIに含まれる青色の被写体から標的オブジェクトOBJ1が出現した様子が上側LCD22に表示された一例を示す図である。図7Aは、緑色の被写体が含まれたカメラ画像CIが上側LCD22に表示された一例を示す図である。図7Bは、カメラ画像CIに含まれる緑色の被写体から標的オブジェクトOBJ2が出現した様子が上側LCD22に表示された一例を示す図である。図8Aは、赤色の被写体が含まれたカメラ画像CIが上側LCD22に表示された一例を示す図である。図8Bは、カメラ画像CIに含まれる赤色の被写体から標的オブジェクトOBJ3が出現した様子が上側LCD22に表示された一例を示す図である。なお、説明を簡単にするために、上側LCD22には、外側撮像部23および内側撮像部24のいずれかから取得したカメラ画像CIに基づいた、実世界の平面画像(上述した立体視可能な画像とは反対の意味での平面視の画像)が表示される例を用いる。
【0086】
図6Aにおいて、上側LCD22には、ゲーム装置10に内蔵する実カメラ(例えば、外側撮像部23)によって撮像された実世界画像であるカメラ画像CIが表示されている。例えば、上側LCD22には、ゲーム装置10に内蔵する実カメラで撮像されたリアルタイムの実世界画像(動画像)が表示される。
【0087】
上側LCD22に表示されたカメラ画像CIとして、青色の被写体が所定のサイズ以上で撮像されて標的オブジェクトの出現条件を満たしている場合、当該青色の被写体部分から標的オブジェクトOBJ1が出現する(図6Bの状態)。図6Bに示した一例では、カメラ画像CIに含まれている青色の被写体部分の中央付近から複数の水玉が標的オブジェクトOBJ1として出現している。
【0088】
図7Aにおいて、上側LCD22に表示されたカメラ画像CIとして、緑色の被写体が表示されている。そして、所定サイズ以上の緑色の被写体がカメラ画像CIに含まれて標的オブジェクトの出現条件を満たしている場合、当該緑色の被写体部分から標的オブジェクトOBJ2が出現する(図7Bの状態)。図7Bに示した一例では、カメラ画像CIに含まれている緑色の被写体部分の中央付近から草花が標的オブジェクトOBJ2として出現している。
【0089】
図8Aにおいて、上側LCD22に表示されたカメラ画像CIとして、赤色の被写体が表示されている。そして、所定サイズ以上の赤色の被写体がカメラ画像CIに含まれて標的オブジェクトの出現条件を満たしている場合、当該赤色の被写体部分から標的オブジェクトOBJ3が出現する(図8Bの状態)。図8Bに示した一例では、カメラ画像CIに含まれている赤色の被写体部分の中央付近から炎が標的オブジェクトOBJ3として出現している。
【0090】
このように、ユーザ自身が撮像している実世界の撮像画像に特定色(上記例では、青色、緑色、赤色)の被写体が含まれている場合、あたかも当該被写体から標的オブジェクトOBJ1〜OBJ3が生成されたように上側LCD22に表示される。例えば、標的オブジェクトOBJ1〜OBJ3を仮想空間に配置し、仮想カメラから標的オブジェクトOBJ1〜OBJ3を見た仮想空間の画像(例えば、コンピュータグラフィックス画像;以下、仮想世界画像と記載する)を、カメラ画像CIから得られる実世界画像に合成することによって、標的オブジェクトOBJ1〜OBJ3が実空間内に出現したように上側LCD22に表示される。そして、ゲーム装置10を用いた攻撃操作(例えば、ボタン14B(Aボタン)の押下)に応じて、所定の方向(例えば、カメラ画像CIを撮像している実カメラの視線方向であり、仮想カメラの視線方向)に弾オブジェクトBOが発射され、標的オブジェクトOBJ1〜OBJ3がユーザの攻撃対象となる。
【0091】
なお、弾オブジェクトBOは、ユーザが所定の操作入力を示す場合に登場し、仮想世界において標的オブジェクトOBJ1〜OBJ3との間で所定の位置関係(例えば、衝突)となった場合に、所定の点数が得られる操作オブジェクトに相当し、ユーザが標的オブジェクトOBJ1〜OBJ3に当てる発射オブジェクト(発射物)を一例として用いている。ここで、本明細書で用いている「操作オブジェクト」は、仮想ゲーム世界における銃弾、砲弾、爆弾、手榴弾、ロケット弾、ミサイル弾、ボール、矢、ビーム、レーザ光線等を含んでいる。
【0092】
ここで、上述したように、上側LCD22には、ゲーム装置10に内蔵する実カメラによって撮像されたリアルタイムの実世界画像が表示されている。したがって、実空間内においてゲーム装置10の方向や位置を変えることによって、ゲーム装置10で撮像される撮像範囲が変わるため、上側LCD22に表示されるカメラ画像CIも変化する。この場合、ゲーム装置10は、実空間内におけるゲーム装置10の動きに応じて、上記仮想空間内における上記仮想カメラの位置や方向を変化させる。これによって、実空間内に配置されているように表示されている標的オブジェクトOBJ1〜OBJ3は、実空間内におけるゲーム装置10の方向や位置が変わっても実空間内における同じ位置に配置されているように表示される。例えば、図6Bに示すようなカメラ画像CIを撮像している状態から、ゲーム装置10の実カメラによる撮像方向を左へ変えた場合、上側LCD22に表示されている標的オブジェクトOBJ1の表示位置が、実カメラの撮像方向を変えた方向の逆方向(右方向)に移動、すなわち標的オブジェクトOBJ1が配置されている仮想空間の仮想カメラの方向が実カメラと同じ左方向に移動する。したがって、標的オブジェクトOBJ1〜OBJ3は、ゲーム装置10の方向や位置が変化して実カメラの撮像範囲が変わったとしても、あたかもカメラ画像CIで表現された実空間内に配置されているように上側LCD22に表示される。
【0093】
このように、実世界画像に含まれた特定色の被写体から標的オブジェクトOBJ1〜OBJ3が出現するように上側LCD22に表示され、出現した標的オブジェクトOBJ1〜OBJ3は、実世界画像で表現された実空間内に配置されているように上側LCD22に表示される。ここで、実世界画像から特定色を検出する場合、当該実世界画像における各画素の色情報を用いることが考えられる。例えば、各画素の色情報としては、RGB値、色相を表す値、彩度を表す値、明度を表す値等が考えられるが、本実施形態においては何れの値を用いてもかまわない。
【0094】
第1の例として、上記値を組み合わせて上記特定色を検出する。具体的には、彩度を表す値および明度を表す値がそれぞれ所定の閾値以上であり、かつ、色相を表す値が特定色を示す範囲内である場合、特定色を表す画素であると判定する。このように、複数の色情報を組み合わせて特定色を判定することによって、色の誤判定を防止しながらユーザが本来区別している色認識に判定結果を近づけることができる。
【0095】
第2の例として、上記値の何れか1つを用いて上記特定色を検出する。一例として、明度を表す値のみを用いて、実世界画像から所定の閾値以上の明度を有する画素を判別することが可能となる。この場合、実世界画像における所定の閾値以上の明度を有する被写体から、標的オブジェクトOBJを出現させるような表示制御処理が可能となる。他の例として、RGB値のみ、色相を表す値のみ、または彩度を表す値のみを用いて、実世界画像から所定条件を満たす画素を、特定色を有する画素として判別してもかまわない。
【0096】
なお、特定色の被写体から出現する標的オブジェクトOBJは、実世界画像における当該被写体のサイズに応じて、出現する際の大きさが変化してもよい。また、出現する標的オブジェクトOBJは、実世界画像と合成されることなく上側LCD22に表示されてもかまわない。この場合、上側LCD22にはゲーム装置10に内蔵する実カメラによって撮像された実世界画像が表示されず、当該実カメラの撮像範囲内に所定サイズ以上の特定色の被写体が含まれる場合に、当該撮像されている特定色に応じた標的オブジェクトOBJが上側LCD22に表示される。すなわち、上側LCD22には、実カメラと同様に撮像方向を変化させる仮想カメラから見た仮想空間のみが表示されることになるが、この場合、実カメラで撮像されている実世界画像を下側LCD12に表示してもかまわない。
【0097】
なお、上述した例では、ゲーム装置10を用いた攻撃操作に応じて、所定の方向に弾オブジェクトBOが発射されて、標的オブジェクトOBJ1〜OBJ3がユーザの攻撃対象となるゲームとなるが、さらに標的オブジェクトOBJ1〜OBJ3とは別のオブジェクト(敵オブジェクト)も攻撃対象とするゲームも実現できる。上記ゲームでは、背景画像としてカメラ画像(実世界画像)が用いられ、標的オブジェクトOBJ1〜OBJ3が出現する同じ仮想空間に敵オブジェクトが配置されて当該仮想空間を所定のアルゴリズムで移動する。そして、ユーザは、仮想空間において敵オブジェクトと弾オブジェクトBOとの間で所定の位置関係(例えば、衝突)となった場合に、所定の点数が得られる。上記ゲームは、このような敵オブジェクトを攻撃対象とするゲームを前提として、実世界画像において被写体の色を検出して、そこから敵オブジェクト以外の標的オブジェクトOBJ1〜OBJ3も出現させて、標的オブジェクトOBJ1〜OBJ3と弾オブジェクトBOとの間で所定の位置関係(例えば、衝突)とすることでさらに得点が加算されるゲームとなる。したがって、ユーザは、敵オブジェクトに対して弾オブジェクトBOを所定の位置関係にして得点を得るゲームを楽しみつつ、さらに実カメラを動かしながら敵オブジェクト以外の標的オブジェクトOBJ1〜OBJ3も色情報に基づいて出現させて弾オブジェクトBOを所定の位置関係にすることによって得点をさらに得ることでさらにゲームを楽しむことができる。例えば、仮想世界に配置された敵オブジェクトを倒していくゲームと、特定の色を被写体として撮像して標的オブジェクトOBJ1〜OBJ3を同じ仮想世界に出現させて得点対象とするゲームとを同時に進行させることで、ゲームの複雑性が増し、ユーザの興趣性を向上させることができる。
【0098】
次に、図9〜図15を参照して、ゲーム装置10で実行される表示制御プログラムによる具体的な処理動作について説明する。なお、図9は、表示制御プログラムを実行することに応じて、メインメモリ32に記憶される各種データの一例を示す図である。図10は、図9の特定色判定結果データDdの一例を示す図である。図11は、図9の標的オブジェクト設定データDe1の一例を示す図である。図12は、当該表示制御プログラムを実行することによってゲーム装置10が表示制御処理する動作の一例を示すフローチャートである。図13は、図12のステップ55で行われる標的オブジェクト出現処理の詳細な動作の一例を示すサブルーチンである。図14は、図12のステップ56で行われる弾オブジェクト処理の詳細な動作の一例を示すサブルーチンである。図15は、図13のステップ71で行われる色検出処理の詳細な動作の一例を示すサブルーチンである。なお、これらの処理を実行するためのプログラムは、ゲーム装置10に内蔵されるメモリ(例えば、データ保存用内部メモリ35)や外部メモリ45またはデータ保存用外部メモリ46に含まれており、ゲーム装置10の電源がオンになったときに、内蔵メモリから、または外部メモリI/F33やデータ保存用外部メモリI/F34を介して外部メモリ45またはデータ保存用外部メモリ46からメインメモリ32に読み出されて、CPU311によって実行される。
【0099】
図9において、メインメモリ32には、内蔵メモリ、外部メモリ45、またはデータ保存用外部メモリ46から読み出されたプログラムや表示制御処理において生成される一時的なデータが記憶される。図9において、メインメモリ32のデータ記憶領域には、操作データDa、カメラ画像データDb、実世界画像データDc、特定色判定結果データDd、標的オブジェクトデータDe、弾オブジェクトデータDf、得点データDg、動きデータDh、仮想カメラデータDi、レンダリング画像データDj、および表示画像データDk等が格納される。また、メインメモリ32のプログラム記憶領域には、表示制御プログラムを構成する各種プログラム群Paが記憶される。
【0100】
操作データDaは、ユーザがゲーム装置10を操作した操作情報を示すデータである。操作データDaは、操作子データDa1および角速度データDa2を含んでいる。操作子データDa1は、ユーザがゲーム装置10の操作ボタン14やアナログスティック15等の操作子を操作したことを示すデータである。角速度データDa2は、角速度センサ40によって検出された角速度を示すデータである。例えば、角速度データDa2には、角速度センサ40が検出したx軸周りの角速度を示すx軸周り角速度データ、y軸周りの角速度を示すy軸周り角速度データ、およびz軸周りの角速度を示すz軸周り角速度データが含まれる。例えば、操作ボタン14やアナログスティック15からの操作データや角速度センサ40からの角速度データは、ゲーム装置10が処理する時間単位(例えば、1/60秒)毎に取得され、当該取得に応じて操作子データDa1および角速度データDa2に格納されて更新される。
【0101】
なお、後述する処理フローでは、操作子データDa1および角速度データDa2が処理周期である1フレーム毎にそれぞれ更新される例を用いて説明するが、他の処理周期で更新されてもかまわない。例えば、操作ボタン14やアナログスティック15等の操作子をユーザが操作したことを検出する周期毎に操作子データDa1を更新し、当該更新された操作子データDa1を処理周期毎に利用する態様でもかまわない。また、角速度センサ40の角速度検出周期毎に角速度データDa2を更新し、当該更新された角速度データDa2を処理周期毎に利用する態様でもかまわない。この場合、操作子データDa1や角速度データDa2を更新するそれぞれの周期と、処理周期とが異なることになる。
【0102】
カメラ画像データDbは、外側撮像部23および内側撮像部24のいずれかが撮像したカメラ画像を示すデータである。後述する処理の説明においては、カメラ画像を取得するステップにおいて外側撮像部23および内側撮像部24のいずれかが撮像したカメラ画像を用いて、カメラ画像データDbを更新する態様を用いる。なお、外側撮像部23または内側撮像部24が撮像し、撮像されたカメラ画像を用いてカメラ画像データDbを更新する周期は、ゲーム装置10が処理する時間単位(例えば、1/60秒)と同じでもいいし、当該時間単位より短い時間でもかまわない。ゲーム装置10が処理する周期よりカメラ画像データDbを更新する周期が短い場合、後述する処理とは独立して適宜カメラ画像データDbを更新してもかまわない。この場合、後述するカメラ画像を取得するステップにおいて、カメラ画像データDbが示す最新のカメラ画像を常に用いて処理すればよい。
【0103】
実世界画像データDcは、ゲーム装置10の実カメラ(外側撮像部23または内側撮像部24)が撮像したカメラ画像を示す実世界画像を生成するためのデータである。例えば、実世界画像データDcは、実世界画像を生成するための平面ポリゴンのデータ、当該平面ポリゴンにマッピングするためのカメラ画像のテクスチャデータ、および当該平面ポリゴンの位置を示すデータ等を含んでいる。
【0104】
特定色判定結果データDdは、実世界画像から判定された特定色を示すデータである。以下、図10を参照して、特定色判定結果データDdの一例について説明する。
【0105】
図10において、一例として、外側撮像部23および内側撮像部24のいずれかが撮像したカメラ画像(以下、単にカメラ画像と記載する)は、所定サイズのブロック(例えば、8×8ピクセルのブロック)に分割され、ブロック毎に特定色の有無が判定される。具体的には、上記カメラ画像は、Nmax個のブロックに分割され、それぞれのブロックにブロック番号1〜ブロック番号Nmaxが付与される。そして、特定色判定結果データDdは、ブロック毎に、RGB平均値、色相Hを表す値、彩度Sを表す値、明度Vを表す値、判定された特定色を示す特定色設定パラメータが記述される。例えば、ブロック番号1のブロックは、RGB平均値がR1、G1、およびB1、色相Hを表す値がH1、彩度Sを表す値がS1、明度Vを表す値がV1であり、当該ブロックが特定色であると判定されなかったことが特定色設定パラメータで示されている。また、ブロック番号2のブロックは、RGB平均値がR2、G2、およびB2、色相Hを表す値がH2、彩度Sを表す値がS2、明度Vを表す値がV2であり、当該ブロックが青色であると判定されたことが特定色設定パラメータで示されている。
【0106】
図9に戻り、標的オブジェクトデータDeは、上述した標的オブジェクトOBJ1〜OBJ3に関するデータであり、標的オブジェクト設定データDe1、標的オブジェクトサイズデータDe2、および標的オブジェクト位置データDe3を含んでいる。標的オブジェクト設定データDe1は、判定された特定色に応じて出現する標的オブジェクトを示すデータであり、予め判定可能な特定色毎に設定されている。例えば、図11に示すように、標的オブジェクト設定データDe1は、判定された特定色が「赤色」である場合に炎が標的オブジェクトとして出現することが設定されている。また、標的オブジェクト設定データDe1は、判定された特定色が「緑色」である場合に草花が標的オブジェクトとして出現することが設定されている。さらに、標的オブジェクト設定データDe1は、判定された特定色が「青色」である場合に水玉が標的オブジェクトとして出現することが設定されている。標的オブジェクトサイズデータDe2は、実世界画像と合成して出現させる際の標的オブジェクトのサイズを示すデータである。標的オブジェクト位置データDe3は、実世界画像と合成して出現させる際の標的オブジェクトの仮想空間における配置位置や配置方向等を示すデータである。
【0107】
弾オブジェクトデータDfは、攻撃操作に応じて発射される弾オブジェクトBOに関するデータである。例えば、弾オブジェクトデータDfは、弾オブジェクトBOの位置を示すデータおよび弾オブジェクトBOの移動速度や移動方向(例えば、移動速度ベクトル)を示すデータ等を含んでいる。
【0108】
得点データDgは、標的オブジェクトOBJ1〜OBJ3が登場するゲームの得点を示すデータである。例えば、ゲームの得点は、攻撃操作によって標的オブジェクトOBJ1〜OBJ3に弾オブジェクトBOが命中することによって加点される。
【0109】
動きデータDhは、実空間におけるゲーム装置10の動きを示すデータである。一例として、ゲーム装置10の動きは、角速度センサ40によって検出された角速度によって算出される。
【0110】
仮想カメラデータDiは、仮想空間に設定される仮想カメラに関するデータである。例えば、仮想空間における仮想カメラの位置や方向は、動きデータDhが示すゲーム装置10の動きに応じて変化する。
【0111】
レンダリング画像データDjは、カメラ画像のレンダリング画像データDj1および仮想空間のレンダリング画像データDj2を含んでいる。カメラ画像のレンダリング画像データDj1は、カメラ画像のテクスチャがマッピングされた平面ポリゴンを、平行投影でレンダリングすることによって得られる実世界画像を示すデータである。仮想空間のレンダリング画像データDj2は、標的オブジェクトOBJ1〜OBJ3が配置された仮想空間を透視投影でレンダリングすることによって得られる仮想世界画像を示すデータである。
【0112】
表示画像データDkは、上側LCD22に表示される表示画像を示すデータである。例えば、上側LCD22に表示される表示画像は、上記仮想世界画像を優先して上記実世界画像上に上記仮想世界画像を合成することによって生成される。
【0113】
次に、図12を参照して、情報処理部31の動作について説明する。まず、ゲーム装置10の電源(電源ボタン14F)がONされると、CPU311によってブートプログラム(図示せず)が実行され、これにより内蔵メモリまたは外部メモリ45やデータ保存用外部メモリ46に格納されているプログラムがメインメモリ32にロードされる。そして、当該ロードされたプログラムが情報処理部31(CPU311)で実行されることによって、図12に示すステップ(図12〜図15では「S」と略称する)が実行される。なお、図12〜図15においては、本発明に直接関連しない処理についての記載を省略する。
【0114】
図12において、情報処理部31は、表示制御処理における初期設定を行い(ステップ51)、次のステップに処理を進める。例えば、情報処理部31は、仮想世界画像を生成するための仮想カメラの初期位置や初期方向を設定し、当該仮想カメラが配置される仮想空間の座標軸(例えば、XYZ軸)を設定する。
【0115】
次に、情報処理部31は、ゲーム装置10の実カメラからカメラ画像を取得し(ステップ52)、次のステップに処理を進める。例えば、情報処理部31は、現在選択されている撮像部(外側撮像部23または内側撮像部24)によって撮像されたカメラ画像を用いて、カメラ画像データDbを更新する。
【0116】
次に、情報処理部31は、上記ステップ52で取得したカメラ画像をレンダリングする処理を行い(ステップ53)、次のステップに処理を進める。例えば、情報処理部31は、上記ステップ52で取得したカメラ画像を用いて実世界画像データDcを更新し、レンダリングされた画像を用いてカメラ画像のレンダリング画像データDj1を更新する。以下、図16および図17を用いてカメラ画像をレンダリングする処理例について説明する。
【0117】
本実施形態においては、図16に示すように、ゲーム装置10の実カメラから得られたカメラ画像をテクスチャに設定し、当該テクスチャがマッピングされた平面ポリゴンを生成する。そして、仮想カメラC1から、平行投影で上記平面ポリゴンをレンダリングした画像を実世界画像として設定する。ここで、上側LCD22の表示画面の中心に仮想カメラC1が配置されるとともに、上側LCD22の表示画面全面に、ゲーム装置10の実カメラから得られたカメラ画像全面を表示する場合の実世界画像生成方法の一例について説明する。
【0118】
まず、上記平面ポリゴンを配置する仮想空間の座標の1単位に対して、iピクセルのテクスチャをマッピングする平面ポリゴンを考える。この場合、上記座標の1単位×1単位の領域に対して、iピクセル×iピクセルのテクスチャがマッピングされることになる。そして、上側LCD22の表示画面が横Wdot×縦Hdotであり、Wdot×Hdotの表示画面全面に上記カメラ画像のテクスチャ全面を対応させて、当該表示画面上の1dotと当該テクスチャの1ピクセルとが対応するように平面ポリゴンを配置するためには、図17に示すように上記座標を定めればよい。すなわち、上記カメラ画像のテクスチャが主面全面にマッピングされた平面ポリゴンの幅がW/i座標分となり、平面ポリゴンの縦がH/i座標分となるように、当該平面ポリゴンを配置する仮想空間のXY座標を設定する。そして、上記テクスチャがマッピングされた平面ポリゴンの主面中心を仮想空間のXY座標の原点に一致させ、当該平面ポリゴンの横方向がX軸方向(右方向がX軸正方向)となり、当該平面ポリゴンの縦方向がY軸方向(上方向がY軸正方向)となるように当該平面ポリゴンを配置する。この場合、上記テクスチャがマッピングされた平面ポリゴンの主面における右上角位置が(X,Y)=(W/2i,H/2i)に配置され、右下角位置が(X,Y)=(W/2i,−H/2i)に配置され、左上角位置が(X,Y)=(−W/2i,H/2i)に配置され、左下角位置が(X,Y)=(−W/2i,−H/2i)に配置されることになる。このように表示画面上の1dotとカメラ画像(テクスチャ)の1ピクセルとが対応するように、仮想空間の座標に配置された平面ポリゴンを平行投影でレンダリングすることによって、ゲーム装置10の実カメラから得られたカメラ画像に対応する実世界画像が生成される。
【0119】
図12に戻り、情報処理部31は、操作データを取得し(ステップ54)、次のステップに処理を進める。例えば、情報処理部31は、操作ボタン14やアナログスティック15を操作したことを示すデータを取得して、操作子データDa1を更新する。また、情報処理部31は、角速度センサ40によって検出された角速度を示す角速度データを取得して、角速度データDa2を更新する。
【0120】
次に、情報処理部31は、標的オブジェクト出現処理を行い(ステップ55)、次のステップに処理を進める。以下、図13を参照して、標的オブジェクト出現処理の一例について説明する。
【0121】
図13において、情報処理部31は、色検出処理を行い(ステップ71)、次のステップに処理を進める。以下、図15を参照して、色検出処理の一例について説明する。
【0122】
図15において、情報処理部31は、当該サブルーチンで用いる一時変数Nを1に設定し(ステップ90)、次のステップに処理を進める。
【0123】
次に、情報処理部31は、ブロックNのRGB平均値を算出し(ステップ91)、次のステップに処理を進める。上述したように、カメラ画像は、Nmax個のブロックに分割される。例えば、情報処理部31は、カメラ画像データDbが示すカメラ画像からブロックNに相当する画素(例えば、8×8ピクセル)のRGB値を抽出し、RGB値それぞれの平均値を算出する。そして、情報処理部31は、算出されたRGB平均値を用いて、ブロックNのRGB平均値に対応する特定色判定結果データDdを更新する。
【0124】
次に、情報処理部31は、上記ステップ91で算出されたRGB平均値を、色相Hn、彩度Sn、および明度Vnに変換し(ステップ92)、次のステップに処理を進める。そして、情報処理部31は、変換された色相Hn、彩度Sn、および明度Vnの値を用いて、ブロックNの色相H、彩度S、および明度Vに対応する特定色判定結果データDdを更新する。
【0125】
ここで、RGB平均値から、色相Hn、彩度Sn、および明度Vnへの変換は、一般的に用いられている手法を用いればよい。例えば、RGB平均値の各要素(すなわち、R、G、およびBの値)が0.0〜1.0で表され、maxを各要素の最大値、minを各要素の最小値とすると、色相Hnは、以下のような数式で変換される。
各要素のうち、Rの値がmaxの場合:
Hn=60×(G−B)/(max−min)
各要素のうち、Gの値がmaxの場合:
Hn=60×(B−R)/(max−min)+120
各要素のうち、Bの値がmaxの場合:
Hn=60×(R−G)/(max−min)+240
なお、上記数式を用いた変換によってHnが負の値となった場合、さらにHnに360を加算して色相Hnとする。また、彩度Snおよび明度Vnは、以下のような数式で変換される。
Sn=(max−min)/max
V=max
上記変換式を用いて、色相Hn、彩度Sn、および明度Vnを算出した場合、色相Hnが0.0〜360.0の範囲、彩度Snが0.0〜1.0の範囲、明度Vnが0.0〜1.0の範囲で、それぞれ求められる。
【0126】
次に、情報処理部31は、上記ステップ92で算出された彩度Snが閾値Sc(例えば、Sc=0.43)以上であるか否かを判断する(ステップ93)。そして、情報処理部31は、彩度Snが閾値Sc以上である場合、次のステップ94に処理を進める。一方、情報処理部31は、彩度Snが閾値Sc未満である場合、次のステップ101に処理を進める。
【0127】
ステップ94において、情報処理部31は、上記ステップ92で算出された明度Vnが閾値Vc(例えば、Vc=0.125)以上であるか否かを判断する。そして、情報処理部31は、明度Vnが閾値Vc以上である場合、次のステップ95に処理を進める。一方、情報処理部31は、明度Vnが閾値Vc未満である場合、次のステップ101に処理を進める。
【0128】
ステップ95において、情報処理部31は、上記ステップ92で算出された色相Hnが閾値R1(例えば、R1=315.0)以上、または、閾値R2(例えば、R2=45.0)以下であるか否かを判断する。そして、上記ステップ95で肯定判定された場合、情報処理部31は、ブロックNを赤色の特定色に設定して、ブロックNの特定色設定に対応する特定色判定結果データDdを更新し(ステップ96)、次のステップ102に処理を進める。一方、上記ステップ95で否定判定された場合、情報処理部31は、次のステップ97に処理を進める。
【0129】
ステップ97において、情報処理部31は、上記ステップ92で算出された色相Hnが閾値G1(例えば、G1=75.0)以上、かつ、閾値G2(例えば、G2=165.0)以下であるか否かを判断する。そして、上記ステップ97で肯定判定された場合、情報処理部31は、ブロックNを緑色の特定色に設定して、ブロックNの特定色設定に対応する特定色判定結果データDdを更新し(ステップ98)、次のステップ102に処理を進める。一方、上記ステップ97で否定判定された場合、情報処理部31は、次のステップ99に処理を進める。
【0130】
ステップ99において、情報処理部31は、上記ステップ92で算出された色相Hnが閾値B1(例えば、B1=195.0)以上、かつ、閾値B2(例えば、B2=285.0)以下であるか否かを判断する。そして、上記ステップ99で肯定判定された場合、情報処理部31は、ブロックNを青色の特定色に設定して、ブロックNの特定色設定に対応する特定色判定結果データDdを更新し(ステップ100)、次のステップ102に処理を進める。一方、上記ステップ99で否定判定された場合、情報処理部31は、次のステップ101に処理を進める。
【0131】
一方、ステップ101において、情報処理部31は、ブロックNを特定色なしに設定して、ブロックNの特定色設定に対応する特定色判定結果データDdを更新し、次のステップ102に処理を進める。このように、ブロックNの彩度Snが閾値Sc未満である場合、ブロックNの明度Vnが閾値Vc未満である場合、またはブロックNの色相Hnがステップ95、ステップ97、およびステップ98においてそれぞれ用いられている判定範囲の何れにも属さない場合、ブロックNが特定色なしに設定される。
【0132】
ステップ102において、情報処理部31は、現在設定されている一時変数NがNmaxであるか否かを判断する。そして、情報処理部31は、一時変数NがNmaxである場合、当該サブルーチンによる処理を終了する。一方、情報処理部31は、一時変数NがNmaxに到達していない場合、現在設定されている一時変数Nに1を加算して新たな一時変数を設定して(ステップ103)、上記ステップ91に戻って処理を繰り返す。
【0133】
図13に戻り、上記ステップ71における色検出処理の後、情報処理部31は、特定色毎の面積を算出し(ステップ72)、次のステップに処理を進める。例えば、情報処理部31は、特定色判定結果データDdで設定されているブロック毎の特定色を参照して、左右または上下に隣接するブロックが同じ特定色に設定されているか否かを判定する。そして、図18に示すように、情報処理部31は、同じ特定色で繋がっているブロック群を1つの図形とし、当該図形を囲む矩形を設定して、当該矩形の面積(サイズ)をそれぞれ特定色の面積とする。
【0134】
次に、情報処理部31は、所定サイズ以上の面積を有する特定色の矩形があるか否かを判断する(ステップ73)。例えば、情報処理部31は、上記ステップ72で算出した特定色毎の矩形面積のうち、予め定められた判定基準(例えば、縦横32ピクセル以上)に到達している矩形がある場合、所定サイズ以上の面積を有する特定色の矩形があると判断する。そして、情報処理部31は、所定サイズ以上の面積の矩形を有する特定色がある場合、次のステップ74に処理を進める。一方、情報処理部31は、所定サイズ以上の面積の矩形を有する特定色がない場合、当該サブルーチンによる処理を終了する。
【0135】
ステップ74において、情報処理部31は、標的オブジェクトOBJが出現する条件を満たしているか否かを判断する。例えば、標的オブジェクトOBJが出現する条件は、特定色毎に設定された最大出現数以内(例えば、各特定色につき1つ以内)となるように標的オブジェクトOBJが出現してもいいし、所定時間毎に標的オブジェクトOBJが出現してもいいし、既に出現している標的オブジェクトOBJが仮想世界から消滅したことに応じて新たな標的オブジェクトOBJが出現してもいいし、ランダムのタイミングで標的オブジェクトOBJを出現させてもよい。また、標的オブジェクトOBJを出現させる条件として、上記ステップ73の判定において、所定サイズ以上の面積を有する特定色の矩形が、同じ特定色、かつ、実質的に同じ位置で複数回(例えば、3回)連続して検出されることを、上記条件に加えてもかまわない。そして、情報処理部31は、標的オブジェクトOBJが出現する条件を満たしている場合、次のステップ75に処理を進める。一方、情報処理部31は、標的オブジェクトOBJが出現する条件を満たしていない場合、当該サブルーチンによる処理を終了する。
【0136】
ステップ75において、情報処理部31は、上記ステップ74における出現条件を満たした特定色に応じて、出現させる標的オブジェクトを設定し、次のステップに処理を進める。例えば、情報処理部31は、標的オブジェクト設定データDe1に予め設定されている標的オブジェクトのうち、出現条件を満たした特定色に対応する標的オブジェクトを選択する。
【0137】
次に、情報処理部31は、出現条件を満たした特定色の矩形面積に応じて出現させる標的オブジェクトの大きさを設定し(ステップ76)、次のステップに処理を進める。例えば、情報処理部31は、上記ステップ74における出現条件を満たした特定色の矩形面積に応じて、出現させる標的オブジェクトの大きさを設定し、当該大きさを用いて標的オブジェクトサイズデータDe2を更新する。一例として、情報処理部31は、出現条件を満たした特定色の矩形サイズが縦横120ピクセル以上であれば出現させる標的オブジェクトの大きさを「大」に設定し、出現条件を満たした特定色の矩形サイズが縦横80ピクセル以上であれば出現させる標的オブジェクトの大きさを「中」に設定し、出現条件を満たした特定色の矩形サイズが縦横32ピクセル以上であれば出現させる標的オブジェクトの大きさを「小」に設定する。
【0138】
次に、情報処理部31は、出現条件を満たした特定色の領域に基づいて標的オブジェクトの位置に設定し(ステップ77)、次のステップに処理を進める。一例として、図18に示すように、標的オブジェクトの位置は、出現条件を満たした特定色ブロック群の実質的な中心(例えば、当該特定色の矩形中心)に設定される。具体的には、カメラ画像における上記ブロック群の左端に位置するブロックと右端に位置するブロックとの中間点となり、かつ、上記ブロック群の上端に位置するブロックと下端に位置するブロックとの中間点となる位置(Xobj,Yobj)、すなわち上記ブロック群を囲む矩形の中心を、標的オブジェクトの位置とする。そして、情報処理部31は、設定された標的オブジェクトの位置(Xobj,Yobj)を用いて、標的オブジェクト位置データDe3を更新する。
【0139】
次に、情報処理部31は、新たに標的オブジェクトを仮想空間に配置して(ステップ78)、当該サブルーチンによる処理を終了する。例えば、情報処理部31は、上記カメラ画像のテクスチャが主面全面にマッピングされた平面ポリゴン(図16および図17参照)に対して、出現条件を満たした特定色の領域に重ね合わされて透視投影される位置(Xobj,Yobj,Z0)に、標的オブジェクトサイズデータDe2が示す大きさで標的オブジェクトを配置し、当該配置位置を用いて標的オブジェクトデータDeを更新する。以下、図19および図20を用いて、標的オブジェクトOBJ1を仮想空間に配置する例について説明する。
【0140】
本実施形態においては、図19に示すように、仮想カメラC2から、透視投影で標的オブジェクトOBJ1をレンダリングした画像を仮想世界画像として生成する。ここで、標的オブジェクトOBJ1が上側LCD22に表示されたカメラ画像から出現したように表現するためには、上記カメラ画像のテクスチャが主面全面にマッピングされた平面ポリゴン(図16および図17参照)における特定色領域内の上記標的オブジェクトの位置に、標的オブジェクトOBJ1を重ね合わせて透視投影する必要がある。
【0141】
原点から(X,Y,Z)=(0,0,−1)方向に標的オブジェクトOBJ1を透視投影することを考える。この場合、図20に示すZ=Z0の位置に標的オブジェクトOBJ1を配置すれば、標的オブジェクトOBJ1におけるテクスチャ1ピクセルあたりの表示画面内の大きさが、当該表示画面の1dotに相当することになる。ここで、Z=Z0の位置は、標的オブジェクトOBJを透視投影する仮想カメラC2のY軸方向の画角をθとした場合に、仮想カメラC2の注視点からY軸正方向への表示範囲の長さがH/2iとなる位置である。なお、上述したように、Hは上側LCD22の表示画面における縦のドット数であり、iは仮想空間の座標の1単位に対してマッピングするテクスチャのピクセル数である。そして、仮想カメラC2の中心からZ=Z0の位置までの距離をD(D>0)とすると、以下の数式が成立する。
tanθ=(H/2i)/D=H/2Di
【0142】
したがって、標的オブジェクトOBJ1を透視投影して仮想世界画像を生成する場合、当該仮想世界画像を生成する仮想カメラC2の設定を
Y軸方向の画角θ=tan-1(H/2Di)
アスペクト比=W:H
とする。そして、大きさW1×H1の標的オブジェクトOBJ1を、仮想カメラC2からのビュー座標(X0,Y0,Z0)に配置すると、図17に示した座標上における位置(X0,Y0)に大きさW1×H1で配置されて表示される。したがって、上記ステップ77で設定された標的オブジェクトの位置(Xobj,Yobj)をX軸方向の座標およびY軸方向の座標としたビュー座標(Xobj,Yobj,Z0)に標的オブジェクトOBJ1を配置することによって、標的オブジェクトOBJ1が上記カメラ画像のテクスチャが主面全面にマッピングされた平面ポリゴンにおける特定色領域に重ね合わされて透視投影される。なお、上記カメラ画像のテクスチャが主面全面にマッピングされた平面ポリゴンと標的オブジェクトOBJ1〜OBJ3とを奥行方向に対して実質的に同じ位置に配置することによって、両者の表示が不安定になる場合は、標的オブジェクトOBJ1の奥行位置を少し前(仮想カメラC2側)に設定してもかまわない。
【0143】
図12に戻り、上記ステップ55における標的オブジェクト出現処理の後、情報処理部31は、弾オブジェクトに関する処理を行い(ステップ56)、次のステップに処理を進める。以下、図14を参照して、弾オブジェクト処理について説明する。
【0144】
図14において、情報処理部31は、設定されている移動速度ベクトルに応じて、仮想空間内で弾オブジェクトBOを移動させ(ステップ81)、次のステップに処理を進める。例えば、情報処理部31は、弾オブジェクトデータDfに設定されている弾オブジェクトBOの位置および移動速度ベクトルに応じて、弾オブジェクトBOの位置を移動速度ベクトルが示す方向へ移動速度ベクトルが示す速度で、仮想空間内を移動させる。そして、情報処理部31は、移動後の弾オブジェクトBOの位置を用いて、弾オブジェクトデータDfを更新する。
【0145】
次に、情報処理部31は、ゲーム装置10のユーザによって発射操作が行われたか否かを判断する(ステップ82)。例えば、情報処理部31は、操作子データDa1を参照して、ユーザが所定の発射操作(例えば、ボタン14B(Aボタン)の押下)を行ったか否かを判断する。そして、情報処理部31は、発射操作が行われた場合、次のステップ83に処理を進める。一方、情報処理部31は、発射操作が行われていない場合、次のステップ84に処理を進める。
【0146】
ステップ83において、情報処理部31は、発射操作に応じて、仮想空間における仮想カメラの位置に弾オブジェクトBOを配置し、当該弾オブジェクトBOに対する移動速度ベクトルを設定して、次のステップ84に処理を進める。例えば、情報処理部31は、標的オブジェクトOBJを透視投影する仮想カメラの位置に弾オブジェクトBOを新たに配置し、当該配置された弾オブジェクトBOの位置を用いて、弾オブジェクトデータDfを更新する。また、情報処理部31は、上記仮想カメラの位置から当該仮想カメラの注視点への方向に向かう所定サイズのベクトルを設定し、当該ベクトルを上記新たに配置した弾オブジェクトBOの移動速度ベクトルとして弾オブジェクトデータDfを更新する。
【0147】
ステップ84において、情報処理部31は、標的オブジェクトOBJと弾オブジェクトBOとが仮想空間内で接触したか否かを判断する。例えば、情報処理部31は、標的オブジェクトデータDeが示す標的オブジェクトOBJの位置と、弾オブジェクトデータDfが示す弾オブジェクトBOの位置とを用いて、標的オブジェクトOBJと弾オブジェクトBOとが仮想空間内で接触したか否かを判断する。そして、情報処理部31は、標的オブジェクトOBJと弾オブジェクトBOとが接触した場合、次のステップ85に処理を進める。一方、情報処理部31は、標的オブジェクトOBJと弾オブジェクトBOとが接触していない場合、次のステップ86に処理を進める。
【0148】
ステップ85において、情報処理部31は、加点処理を行って、次のステップ86に処理を進める。例えば、上記加点処理においては、情報処理部31は、得点データDgが示すゲームの得点を所定数だけ加点し、加点後の得点を用いて得点データDgを更新する。なお、加点する得点については、接触した標的オブジェクトOBJの種別や大きさに応じて変化させてもよい。また、上記加点処理においては、情報処理部31は、消滅条件を満たす場合に、上記ステップ84で接触したと判定された両者(すなわち、標的オブジェクトOBと弾オブジェクトBO)を仮想空間から消滅させる処理(例えば、弾オブジェクトBOと接触した標的オブジェクトOBJおよび標的オブジェクトOBJに接触した弾オブジェクトBOに関するそれぞれの標的オブジェクトデータDeおよび弾オブジェクトデータDfを初期化し、当該標的オブジェクトOBJおよび弾オブジェクトBOが仮想空間に存在しない状態にする)を行う。
【0149】
ステップ86において、情報処理部31は、弾オブジェクトBOが仮想空間における所定の位置まで到達したか否かを判断する。例えば、情報処理部31は、弾オブジェクトデータDfが示す弾オブジェクトBOの位置が、仮想カメラから見て上述したZ=Z0の位置に到達したか否かを判断する。そして、情報処理部31は、弾オブジェクトBOが所定の位置まで到達した場合、次のステップ87に処理を進める。一方、情報処理部31は、弾オブジェクトBOが所定の位置まで到達していない場合、当該サブルーチンによる処理を終了する。
【0150】
ステップ87において、情報処理部31は、上記ステップ86で所定の位置に到達したと判定された弾オブジェクトBOを仮想空間から消滅させる処理を行い、当該サブルーチンによる処理を終了する。例えば、情報処理部31は、上記ステップ86で所定の位置に到達したと判定された弾オブジェクトBOを仮想空間から消滅させる処理(例えば、当該弾オブジェクトBOに関する弾オブジェクトデータDfを初期化し、当該弾オブジェクトBOが仮想空間に存在しない状態にする)を行う。
【0151】
図12に戻り、上記ステップ56における弾オブジェクトに関する処理の後、情報処理部31は、ゲーム装置10の動きを算出して(ステップ57)、次のステップに処理を進める。一例として、情報処理部31は、角速度データDa2が示す角速度を用いて、ゲーム装置10の動き(例えば、ゲーム装置10に設けられた実カメラにおける撮像方向の変化)を算出し、当該動きを用いて動きデータDhを更新する。具体的には、ユーザが実空間においてゲーム装置10に設けられた実カメラの撮像方向を変化させた場合、ゲーム装置10全体の向きも変化するため、ゲーム装置10に当該変化に応じた角速度が生じる。そして、ゲーム装置10に生じた角速度を角速度センサ40が検出することによって、当該角速度を示すデータが角速度データDa2に格納される。したがって、情報処理部31は、角速度データDa2が示す角速度を用いることによって、ゲーム装置10に設けられた実カメラの撮像方向が変化した方向や変化した量(角度)をゲーム装置10の動きとして算出することが可能となる。
【0152】
次に、情報処理部31は、ゲーム装置10の動きに応じて仮想空間における仮想カメラの位置や方向を変更し(ステップ58)、次のステップに処理を進める。例えば、情報処理部31は、実空間におけるゲーム装置10の実カメラの撮像方向変化と同じ変化を、仮想空間における仮想カメラに与え、変化後の仮想カメラの位置や方向を用いて仮想カメラデータDiを更新する。一例として、実空間におけるゲーム装置10の実カメラの撮像方向が左へA°変化(y軸を中心にy軸負方向に見てx軸およびz軸が左回りにA°回転するようにゲーム装置10が動く変化)した場合、仮想空間における仮想カメラの方向も左へA°変化(仮想カメラからのビュー座標において、Y軸を中心にY軸負方向に見てX軸およびZ軸が左回りにA°回転する仮想カメラの方向変化)させる。これによって、実空間内に配置されているように表示されている標的オブジェクトOBJは、実空間内におけるゲーム装置10の方向や位置が変わっても実空間内における同じ位置に配置されているように表示される。
【0153】
次に、情報処理部31は、仮想空間をレンダリングする処理を行い(ステップ59)、次のステップに処理を進める。例えば、情報処理部31は、標的オブジェクトOBJおよび弾オブジェクトBOが配置されている仮想空間をレンダリングした画像を用いて仮想空間のレンダリング画像データDj2を更新する。例えば、図19に示すように、仮想空間には標的オブジェクトOBJ1および弾オブジェクトBOが、それぞれ標的オブジェクトデータDeおよび弾オブジェクトデータDfが示す位置や方向に応じて配置されている。また、仮想空間には、仮想空間をレンダリングするための仮想カメラC2が、仮想カメラデータDiが示す位置および方向に応じて配置されている。ここで、上述したように標的オブジェクトOBJ1は、上側LCD22に表示されたカメラ画像に含まれている特定色領域から出現した位置に配置されている。そして、仮想カメラC2から、仮想空間の配置された標的オブジェクトOBJ1および弾オブジェクトBOを透視投影でレンダリングすることによって仮想世界画像を生成して、仮想空間のレンダリング画像データDj2を更新する。
【0154】
次に、情報処理部31は、実世界画像と仮想空間画像とを合成した表示画像を生成し、当該表示画像を上側LCD22に表示して(ステップ60)、次のステップに処理を進める。例えば、情報処理部31は、カメラ画像のレンダリング画像データDj1が示す実世界画像および仮想空間のレンダリング画像データDj2が示す仮想空間画像を取得して、仮想世界画像を優先して実世界画像上に当該仮想世界画像を合成することによって表示画像を生成し、当該表示画像を用いて表示画像データDkを更新する。また、情報処理部31のCPU311は、表示画像データDkが示す表示画像をVRAM313に格納する。そして、情報処理部31のGPU312が、VRAM313に描画された表示画像を上側LCD22に出力することによって、上側LCD22に当該表示画像が表示される。なお、情報処理部31は、仮想空間のレンダリング画像データDj2に仮想空間画像が格納されていない場合、カメラ画像のレンダリング画像データDj1が示す実世界画像をそのまま上記表示画像とすればよい。
【0155】
次に、情報処理部31は、ゲームを終了するか否かを判断する(ステップ61)。ゲームを終了する条件としては、例えば、ゲームオーバとなる条件が満たされたことや、ユーザがゲームを終了する操作を行ったこと等がある。情報処理部31は、ゲームを終了しない場合、上記ステップ52に戻って処理を繰り返す。一方、情報処理部31は、ゲームを終了する場合、当該フローチャートによる処理を終了する。
【0156】
このように、上述した実施形態に係る表示制御処理では、実カメラから得られた実世界画像に所定サイズ以上の特定色の被写体が含まれている場合、当該特定色に応じた標的オブジェクトを出現させて表示されるため、被写体に応じてオブジェクトが出現する新たな画像を表示することができる。
【0157】
なお、上述した説明では、標的オブジェクトが出現する対象となる特定色を、「赤色」、「緑色」、「青色」の3色としたが、他の色や他の属性を特定色として標的オブジェクトが出現する対象としてもかまわない。例えば、橙色、黄色、紫色、桃色等の他の色相を標的オブジェクトが出現する対象となる特定色に設定してもいいし、黒色、灰色、白色等の無彩色を標的オブジェクトが出現する対象となる特定色に設定してもよい。また、所定の閾値より明るい色または暗い色(明度が相対的に高い色または低い色)や所定の閾値より純色に近い色または純色から遠い色(彩度が相対的に高い色または低い色)を標的オブジェクトが出現する対象となる特定色に設定してもよい。RGB値、色相、彩度、明度等の色情報の少なくとも1つを用いることによって、上記と同様の標的オブジェクト出現処理が可能となることは言うまでもない。
【0158】
また、上述した説明では、カメラ画像を所定サイズのブロックに分割し、ブロック毎に特定色の有無を判定する例を用いたが、他の単位で特定色の有無を判定してもかまわない。例えば、カメラ画像の画素毎に特定色の有無を判定してもかまわない。
【0159】
また、上述した説明では、出現条件を満たした特定色の領域から、射撃の対象となる標的オブジェクトが出現する例を用いたが、他のオブジェクトが当該領域から出現するように表示されてもかまわない。例えば、仮想空間を移動する敵オブジェクトに衝突させることによって当該敵オブジェクトを倒す障害物オブジェクトを、出現条件を満たした特定色の領域から出現させてもかまわない。この場合、上側LCD22に表示されて移動している敵オブジェクトを倒すために、障害物オブジェクトを出現させるようなゲームが可能となる。そして、ゲーム装置10を操作してこのゲームを実行するユーザは、障害物オブジェクトを出現させるためには当該障害物オブジェクトを出現させる特定色をゲーム装置10の実カメラで撮像することが必要となるとともに、仮想空間を移動する敵オブジェクトに衝突するような位置に障害物オブジェクトを出現させるために当該特定色の被写体を当該実カメラで撮像する位置を調整しなければならない。このように、敵オブジェクトを倒す障害物オブジェクトを、出現条件を満たした特定色の領域から出現させることによって、今までない新たな操作感覚が得られるゲームが実現できる。他の例として、出現条件を満たした場合に、単にユーザが上側LCD22に表示させて鑑賞するためのオブジェクトが出現するような仕様でもかまわない。
【0160】
また、上述した説明では、ゲーム装置10に生じる角速度を検出し、当該角速度を用いて実空間におけるゲーム装置10の動きを算出する例を用いたが、他の方式を用いてゲーム装置10の動きを算出してもかまわない。第1の例として、ゲーム装置10に内蔵されている加速度センサ39が検出した加速度を用いて、ゲーム装置10の動きを算出してもかまわない。一例として、加速度センサ39を搭載するゲーム装置10が静的な状態であることを前提としてコンピュータ側で処理する場合(すなわち、加速度センサ39によって検出される加速度が重力加速度のみであるとして処理する場合)、ゲーム装置10が現実に静的な状態であれば、検出された加速度に基づいてゲーム装置10の姿勢が重力方向に対して傾いているか否か、またはどの程度傾いているかを知ることができる。他の例として、加速度センサ39を搭載するゲーム装置10が動的な状態であることを前提とする場合には、加速度センサ39が重力加速度成分に加えて加速度センサ39の動きに応じた加速度を検出するので、重力加速度成分を所定の処理により除去すれば、ゲーム装置10の動き方向等を知ることができる。具体的には、加速度センサ39を備えるゲーム装置10がユーザの手で動的に加速されて動かされる場合に、加速度センサ39によって生成される加速度信号を処理することによって、ゲーム装置10の様々な動きおよび/または位置を算出することができる。また、加速度センサ39が動的な状態であることを前提とする場合であっても、加速度センサ39の動きに応じた加速度を所定の処理により除去すれば、重力方向に対するゲーム装置10の傾きを知ることが可能である。
【0161】
第2の例として、ゲーム装置10に内蔵されている実カメラ(外側撮像部23または内側撮像部24)によってリアルタイムで撮像されたカメラ画像の移動量を用いて、ゲーム装置10の動きを算出してもかまわない。例えば、ゲーム装置10が動くことによって、上記実カメラの撮像方向や撮像位置が変わった場合、当該実カメラで撮像されるカメラ画像も変化する。したがって、ゲーム装置10に内蔵されている実カメラで撮像されるカメラ画像の変化を用いれば、当該実カメラの撮像方向が変化した角度や撮像位置の移動量等を算出することができる。一例として、ゲーム装置10に内蔵されている実カメラで撮像されるカメラ画像から所定の物体を識別し、当該物体が撮像されている角度や撮像されている位置を時系列的に比較することによって、これらの変化量から当該実カメラの撮像方向が変化した角度や撮像位置の移動量等を算出することができる。他の例として、ゲーム装置10に内蔵されている実カメラで撮像されるカメラ画像全体に対して時系列的に比較することによって、当該画像全体の撮像方向や撮像範囲の変化量から、当該実カメラの撮像方向が変化した角度や撮像位置の移動量等を算出することができる。
【0162】
第3の例として、上述したゲーム装置10に生じる角速度、ゲーム装置10に生じる加速度、およびゲーム装置10によって撮像されたカメラ画像の少なくとも2つを組み合わせて、ゲーム装置10の動きを算出してもかまわない。これによって、1つのパラメータからゲーム装置10の動きを算出する場合に当該動きの推定が難しい状況において、他のパラメータを組み合わせてゲーム装置10の動きを算出することによって、当該状況を補ったゲーム装置10の動きの算出が可能となる。一例として、上記第2の例によるゲーム装置10の動きを算出では、撮像されたカメラ画像が時系列的に水平方向へ動いた場合、ゲーム装置10の撮影角度が鉛直方向を中心として回転したのか、ゲーム装置10が水平移動したのか、正確な判定が難しいことがある。この場合、ゲーム装置10に生じる角速度を用いれば、ゲーム装置10が回転移動したのか水平移動したのかを容易に判定することが可能となる。
【0163】
また、第4の例として、ゲーム装置10の動きを、いわゆるAR(拡張現実)の技術により算出してもよい。
【0164】
また、上述した説明では、上側LCD22に、外側撮像部23および内側撮像部24のいずれかから取得したカメラ画像CIに基づいた、実世界の平面画像(上述した立体視可能な画像とは反対の意味での平面視の画像)が表示される例を用いたが、裸眼で立体視可能な画像(立体画像)を上側LCD22に表示してもよい。例えば、上述したように、ゲーム装置10は、外側左撮像部23aおよび外側右撮像部23bから取得したカメラ画像を用いた立体視可能な画像(立体画像)を上側LCD22に表示することが可能である。この場合、上側LCD22に表示された立体画像に含まれる特定色の被写体から標的オブジェクトが出現するように描画される。
【0165】
例えば、上記立体画像に含まれる特定色の被写体から標的オブジェクトが出現するように描画する場合、外側左撮像部23aから得られた左目用画像および外側右撮像部23bから得られた右目用画像を用いて、上述した表示制御処理を行う。具体的には、図12に示した表示制御処理において、仮想空間に配置された標的オブジェクトOBJおよび弾オブジェクトBOを、2つの仮想カメラ(ステレオカメラ)から透視変換することによって、それぞれ左目用仮想世界画像と右目用仮想世界画像とを得る。そして、左目用の実世界画像(上記ステップ53で左目用画像をレンダリングした画像)と左目用仮想世界画像とを合成して左目用表示画像を生成し、右目用の実世界画像(上記ステップ53で右目用画像をレンダリングした画像)と右目用仮想世界画像とを合成して右目用表示画像を生成し、当該左目用表示画像および当該右目用表示画像を上側LCD22に出力する。
【0166】
また、上述した説明では、ゲーム装置10に内蔵する実カメラで撮像されたリアルタイムの動画像が上側LCD22に表示され、上記実カメラで撮像された動画像(カメラ画像)の中から標的オブジェクトが出現するように表示されるが、本発明において上側LCD22に表示する画像は、様々なバリエーションが考えられる。第1の例として、予め録画された動画像およびテレビジョン放送や他の装置から得られる動画像等が上側LCD22に表示される。この場合、上記動画像が上側LCD22に表示され、当該動画像に特定色の被写体が含まれる場合に当該動画像の中に標的オブジェクトが出現することになる。第2の例として、ゲーム装置10に内蔵する実カメラや他の実カメラから得られた静止画像が上側LCD22に表示される。この場合、実カメラから得られた静止画像が上側LCD22に表示され、当該静止画像に特定色の被写体が含まれる場合に当該静止画像の中に標的オブジェクトが出現することになる。ここで、実カメラから得られる静止画像は、ゲーム装置10に内蔵する実カメラでリアルタイムに撮像された実世界の静止画像でもいいし、当該実カメラや他の実カメラで予め撮影された実世界の静止画像でもいいし、テレビジョン放送や他の装置から得られる静止画像でもよい。
【0167】
また、上記実施形態では、上側LCD22がパララックスバリア方式の液晶表示装置であるとして、視差バリアのON/OFFを制御することにより、立体表示と平面表示とを切り替えることができる。他の実施形態では、例えば、上側LCD22としてレンチキュラー方式の液晶表示装置を用いて、立体画像および平面画像を表示可能としてもよい。レンチキュラー方式の場合でも、外側撮像部23で撮像した2つの画像を縦方向に短冊状に分割して交互に配置することで画像が立体表示される。また、レンチキュラー方式の場合でも、内側撮像部24で撮像した1つの画像をユーザの左右の目に視認させることによって、当該画像を平面表示させることができる。すなわち、レンチキュラー方式の液晶表示装置であっても、同じ画像を縦方向に短冊状に分割し、これら分割した画像を交互に配置することにより、ユーザの左右の目に同じ画像を視認させることができる。これにより、内側撮像部24で撮像された画像を平面画像として表示することが可能である。
【0168】
また、上述した実施形態では、2画面分の液晶表示部の一例として、物理的に分離された下側LCD12および上側LCD22を互いに上下に配置した場合(上下2画面の場合)を説明した。しかしながら、本発明は、単一の表示画面(例えば、上側LCD22のみ)を有する装置または単一の表示装置に表示する画像を表示制御する装置でも実現することができる。また、2画面分の表示画面の構成は、他の構成でもかまわない。例えば、下側ハウジング11の一方主面に下側LCD12および上側LCD22を左右に配置してもかまわない。また、下側LCD12と横幅が同じで縦の長さが2倍のサイズからなる縦長サイズのLCD(すなわち、物理的には1つで、表示サイズが縦に2画面分あるLCD)を下側ハウジング11の一方主面に配設して、2つの画像(例えば、撮像画像と操作説明画面を示す画像等)を上下に表示(すなわち上下の境界部分無しに隣接して表示)するように構成してもよい。また、下側LCD12と縦幅が同じで横の長さが2倍のサイズからなる横長サイズのLCDを下側ハウジング11の一方主面に配設して、横方向に2つの画像を左右に表示(すなわち左右の境界部分無しに隣接して表示)するように構成してもよい。すなわち、物理的に1つの画面を2つに分割して使用することにより2つの画像を表示してもかまわない。また、物理的に1つの画面を2つに分割して使用することにより上記2つの画像を表示する場合、当該画面全面にタッチパネル13を配設してもかまわない。
【0169】
また、上述した実施例では、ゲーム装置10にタッチパネル13が一体的に設けられているが、ゲーム装置とタッチパネルとを別体にして構成しても、本発明を実現できることは言うまでもない。また、上側LCD22の上面にタッチパネル13を設けて上側LCD22に上述した下側LCD12に表示していた表示画像を表示してもよい。また、本発明を実現する場合に、タッチパネル13が設けられていなくもかまわない。
【0170】
また、上記実施例では、携帯型のゲーム装置10や据置型のゲーム装置を用いて説明したが、一般的なパーソナルコンピュータ等の情報処理装置で本発明の表示制御プログラムを実行して、本発明を実現してもかまわない。また、他の実施形態では、ゲーム装置に限らず任意の携帯型電子機器、例えば、PDA(Personal Digital Assistant)や携帯電話、パーソナルコンピュータ、カメラ等であってもよい。例えば、携帯電話が、1つのハウジングの主面に2つの表示部と、実カメラとを備えてもよい。
【0171】
また、上述した説明では表示制御処理をゲーム装置10で行う例を用いたが、上記表示制御処理における処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、ゲーム装置10が他の装置(例えば、サーバや他のゲーム装置)と通信可能に構成されている場合、上記表示制御処理における処理ステップは、ゲーム装置10および当該他の装置が協働することによって実行してもよい。一例として、他の装置において、実世界画像および標的オブジェクトOBJ1〜OBJ3を設定する処理が行われ、ゲーム装置10が実世界画像および標的オブジェクトOBJ1〜OBJ3に関するデータを取得して、ステップ56〜ステップ61の処理を行うことが考えられる。このように、上記画像における処理ステップの少なくとも一部を他の装置で行うことによって、上述した表示制御処理と同様の処理が可能となる。このように、上述した表示制御処理は、少なくとも1つの情報処理装置により構成される情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施形態においては、ゲーム装置10の情報処理部31が所定のプログラムを実行することによって、上述したフローチャートによる処理が行われたが、ゲーム装置10が備える専用回路によって上記処理の一部または全部が行われてもよい。
【0172】
また、上述したゲーム装置10の形状や、それに設けられている各種操作ボタン14、アナログスティック15、タッチパネル13の形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、上述した表示制御処理で用いられる処理順序、設定値、判定に用いられる値等は、単なる一例に過ぎず他の順序や値であっても、本発明を実現できることは言うまでもない。
【0173】
また、上記表示制御プログラム(ゲームプログラム)は、外部メモリ45やデータ保存用外部メモリ46等の外部記憶媒体を通じてゲーム装置10に供給されるだけでなく、有線または無線の通信回線を通じてゲーム装置10に供給されてもよい。また、上記プログラムは、ゲーム装置10内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープなどでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを記憶する揮発性メモリでもよい。
【0174】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。
【産業上の利用可能性】
【0175】
本発明に係る表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法は、実世界画像を用いて新たな画像を設定して表示制御することが可能であり、各種画像を表示装置に表示する処理等を行う表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法等として有用である。
【符号の説明】
【0176】
10…ゲーム装置
11…下側ハウジング
12…下側LCD
13…タッチパネル
14…操作ボタン
15…アナログスティック
16…LED
17…挿入口
18…マイクロフォン用孔
19…無線スイッチ
21…上側ハウジング
22…上側LCD
23…外側撮像部
23a…外側左撮像部
23b…外側右撮像部
24…内側撮像部
25…3D調整スイッチ
26…3Dインジケータ
27…スクリーンカバー
28…タッチペン
31…情報処理部
311…CPU
312…GPU
313…VRAM
32…メインメモリ
33…外部メモリI/F
34…データ保存用外部メモリI/F
35…データ保存用内部メモリ
36…無線通信モジュール
37…ローカル通信モジュール
38…RTC
39…加速度センサ
40…角速度センサ
41…電源回路
42…I/F回路
43…マイク
44…スピーカ
45…外部メモリ
46…データ保存用外部メモリ
【特許請求の範囲】
【請求項1】
表示装置に画像を表示させる表示制御装置のコンピュータを、
実カメラによって撮像された撮像画像を取得する撮像画像取得手段、
前記撮像画像取得手段によって取得された撮像画像において、RGB値、色相、彩度、および明度からなる群から選ばれた少なくとも1つを含む色情報に対して特定の範囲の色情報を有する少なくとも1つの画素を検出する色検出手段、
前記色検出手段が検出した画素が有する前記特定の範囲の色情報に基づいて、仮想世界に配置されるオブジェクトの画像を生成する画像生成手段、および
前記画像生成手段によって生成された画像を前記表示装置に表示する画像表示制御手段として機能させる、表示制御プログラム。
【請求項2】
前記画像生成手段は、前記撮像画像取得手段によって取得された撮像画像と前記オブジェクトを仮想世界に配置して仮想カメラから見た仮想世界画像とを合成した合成画像を生成し、
前記画像表示制御手段は、前記画像生成手段により生成された合成画像を前記表示装置に表示する、請求項1に記載の表示制御プログラム。
【請求項3】
前記画像生成手段は、前記色検出手段により検出された前記特定の範囲の色情報を有する画素の前記撮像画像における検出位置に応じて、前記仮想世界画像における前記オブジェクトの画像が当該検出位置に重なって前記撮像画像に合成されるように当該オブジェクトを仮想世界に配置し、前記仮想カメラから前記オブジェクトを見た仮想世界の画像を前記仮想世界画像として生成する、請求項2に記載の表示制御プログラム。
【請求項4】
前記画像生成手段は、前記実カメラの動きを検出する検出手段からの出力に基づいて、当該実カメラの動きを検出し、当該実カメラの動きと同じ動きを前記仮想カメラに与えて当該仮想カメラの位置および撮像方向を設定する仮想カメラ設定手段を含み、
前記画像生成手段は、前記オブジェクトを仮想世界に配置した前記仮想世界画像を生成した後、前記仮想カメラ設定手段によって設定された仮想カメラから前記オブジェクトを見た仮想世界の画像を前記仮想世界画像として生成する、請求項3に記載の表示制御プログラム。
【請求項5】
前記色検出手段は、
前記撮像画像取得手段により取得された撮像画像において、前記特定の範囲の色情報を有する画素の領域を検出する領域検出手段と、
前記領域検出手段により検出された領域にしたがって決められる面積を算出する面積算出手段とを含み、
前記画像生成手段は、前記面積算出手段により算出された面積に応じて、前記オブジェクトの大きさを設定して当該オブジェクトの画像を生成する、請求項1乃至4のいずれか1つに記載の表示制御プログラム。
【請求項6】
前記画像生成手段は、前記色情報の特定の範囲毎に複数のオブジェクトを予め設定するオブジェクト設定手段を含み、
前記画像生成手段は、前記複数のオブジェクトのうち、前記色検出手段が検出した画素が有する前記特定の範囲の色情報に対応するオブジェクトを仮想世界に配置して、当該オブジェクトの画像を生成する、請求項1乃至5のいずれか1つに記載の表示制御プログラム。
【請求項7】
ユーザが入力した操作入力を示すデータを取得する操作入力データ取得手段と、
前記操作入力データ取得手段が取得したデータが所定の操作入力を示す場合、前記仮想世界に前記オブジェクトとは異なる操作オブジェクトを配置する操作オブジェクト配置手段と、
仮想世界において前記オブジェクトと前記操作オブジェクトとが所定の位置関係となった場合に、所定の点数を加点する加点手段として、前記コンピュータをさらに機能させ、
前記画像生成手段は、仮想世界に前記操作オブジェクトも配置して、前記オブジェクトおよび前記操作オブジェクトの画像を生成する、請求項1乃至6のいずれか1つに記載の表示制御プログラム。
【請求項8】
所定のアルゴリズムにしたがって移動する移動オブジェクトを前記操作オブジェクトとは別に前記仮想世界に配置する移動オブジェクト配置手段として、前記コンピュータをさらに機能させ、
前記加点手段は、前記移動オブジェクトと前記操作オブジェクトとが所定の位置関係となった場合に、所定の点数をさらに加点し、
前記画像生成手段は、仮想世界に前記移動オブジェクトも配置して、前記オブジェクト、前記操作オブジェクト、および前記移動オブジェクトの画像を生成する、請求項7に記載の表示制御プログラム。
【請求項9】
前記画像生成手段は、前記色検出手段が検出した前記特定の範囲の色情報を有する画素が所定の領域以上検出された場合、当該特定の範囲の色情報に対応するオブジェクトを仮想世界に配置して当該オブジェクトの画像を生成する、請求項1乃至8のいずれか1つに記載の表示制御プログラム。
【請求項10】
前記色検出手段は、彩度および明度を示す色情報がそれぞれ所定の閾値以上に高く、かつ、色相を示す色情報が所定の範囲内を示す少なくとも1つの画素を検出する、請求項1乃至9のいずれか1つに記載の表示制御プログラム。
【請求項11】
前記色検出手段は、
前記撮像画像を複数の画素で構成されるブロックに分割するブロック分割手段と、
前記ブロックに属する画素がそれぞれ有するRGB値に基づいて、当該ブロックに対する色相を示す値を前記ブロック毎に算出する色相算出手段と、
前記ブロックに対する色相を示す値が含まれる所定の色相範囲に基づいて、前記ブロックが属する色相分類をそれぞれ設定するブロック分類手段と、
隣接するブロックが同じ色相分類に属するブロック群の大きさに応じて、前記オブジェクトの画像を生成する対象とするブロック群を選択するブロック群選択手段とを含み、
前記画像生成手段は、前記ブロック群選択手段が選択したブロック群の色相分類に応じて、仮想世界に配置するオブジェクトを選択する、請求項1乃至9のいずれか1つに記載の表示制御プログラム。
【請求項12】
前記撮像画像取得手段は、前記表示制御装置が利用可能な実カメラによってリアルタイムに撮像された実世界の撮像画像を繰り返し取得し、
前記色検出手段は、前記撮像画像取得手段によって繰り返し取得された撮像画像それぞれにおいて、前記特定の範囲の色情報を有する画素を検出し、
前記画像生成手段は、前記撮像画像取得手段によって繰り返し取得された撮像画像それぞれと当該撮像画像から生成された仮想世界画像とを合成して繰り返し前記合成画像を生成し、
前記画像表示制御手段は、前記撮像画像取得手段によって繰り返し取得された撮像画像それぞれに前記仮想世界画像が合成画像を前記表示装置に繰り返し表示する、請求項2乃至4のいずれか1つに記載の表示制御プログラム。
【請求項13】
表示装置に画像を表示させる表示制御装置であって、
実カメラによって撮像された撮像画像を取得する撮像画像取得手段と、
前記撮像画像取得手段によって取得された撮像画像において、RGB値、色相、彩度、および明度からなる群から選ばれた少なくとも1つを含む色情報に対して特定の範囲の色情報を有する少なくとも1つの画素を検出する色検出手段と、
前記色検出手段が検出した画素が有する前記特定の範囲の色情報に基づいて、仮想世界に配置されるオブジェクトの画像を生成する画像生成手段と、
前記画像生成手段によって生成された画像を前記表示装置に表示する画像表示制御手段とを備える、表示制御装置。
【請求項14】
複数の装置が通信可能に構成され、表示装置に画像を表示させる表示制御システムであって、
実カメラによって撮像された撮像画像を取得する撮像画像取得手段と、
前記撮像画像取得手段によって取得された撮像画像において、RGB値、色相、彩度、および明度からなる群から選ばれた少なくとも1つを含む色情報に対して特定の範囲の色情報を有する少なくとも1つの画素を検出する色検出手段と、
前記色検出手段が検出した画素が有する前記特定の範囲の色情報に基づいて、仮想世界に配置されるオブジェクトの画像を生成する画像生成手段と、
前記画像生成手段によって生成された画像を前記表示装置に表示する画像表示制御手段とを備える、表示制御システム。
【請求項15】
表示装置に画像を表示させる表示制御処理が可能な少なくとも1つの情報処理装置により構成される表示制御システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行される表示制御方法であって、
実カメラによって撮像された撮像画像を取得する撮像画像取得ステップと、
前記撮像画像取得ステップにおいて取得された撮像画像において、RGB値、色相、彩度、および明度からなる群から選ばれた少なくとも1つを含む色情報に対して特定の範囲の色情報を有する少なくとも1つの画素を検出する色検出ステップと、
前記色検出ステップにおいて検出した画素が有する前記特定の範囲の色情報に基づいて、仮想世界に配置されるオブジェクトの画像を生成する画像生成ステップと、
前記画像生成ステップにおいて生成された画像を前記表示装置に表示する画像表示制御ステップとを含む、表示制御方法。
【請求項1】
表示装置に画像を表示させる表示制御装置のコンピュータを、
実カメラによって撮像された撮像画像を取得する撮像画像取得手段、
前記撮像画像取得手段によって取得された撮像画像において、RGB値、色相、彩度、および明度からなる群から選ばれた少なくとも1つを含む色情報に対して特定の範囲の色情報を有する少なくとも1つの画素を検出する色検出手段、
前記色検出手段が検出した画素が有する前記特定の範囲の色情報に基づいて、仮想世界に配置されるオブジェクトの画像を生成する画像生成手段、および
前記画像生成手段によって生成された画像を前記表示装置に表示する画像表示制御手段として機能させる、表示制御プログラム。
【請求項2】
前記画像生成手段は、前記撮像画像取得手段によって取得された撮像画像と前記オブジェクトを仮想世界に配置して仮想カメラから見た仮想世界画像とを合成した合成画像を生成し、
前記画像表示制御手段は、前記画像生成手段により生成された合成画像を前記表示装置に表示する、請求項1に記載の表示制御プログラム。
【請求項3】
前記画像生成手段は、前記色検出手段により検出された前記特定の範囲の色情報を有する画素の前記撮像画像における検出位置に応じて、前記仮想世界画像における前記オブジェクトの画像が当該検出位置に重なって前記撮像画像に合成されるように当該オブジェクトを仮想世界に配置し、前記仮想カメラから前記オブジェクトを見た仮想世界の画像を前記仮想世界画像として生成する、請求項2に記載の表示制御プログラム。
【請求項4】
前記画像生成手段は、前記実カメラの動きを検出する検出手段からの出力に基づいて、当該実カメラの動きを検出し、当該実カメラの動きと同じ動きを前記仮想カメラに与えて当該仮想カメラの位置および撮像方向を設定する仮想カメラ設定手段を含み、
前記画像生成手段は、前記オブジェクトを仮想世界に配置した前記仮想世界画像を生成した後、前記仮想カメラ設定手段によって設定された仮想カメラから前記オブジェクトを見た仮想世界の画像を前記仮想世界画像として生成する、請求項3に記載の表示制御プログラム。
【請求項5】
前記色検出手段は、
前記撮像画像取得手段により取得された撮像画像において、前記特定の範囲の色情報を有する画素の領域を検出する領域検出手段と、
前記領域検出手段により検出された領域にしたがって決められる面積を算出する面積算出手段とを含み、
前記画像生成手段は、前記面積算出手段により算出された面積に応じて、前記オブジェクトの大きさを設定して当該オブジェクトの画像を生成する、請求項1乃至4のいずれか1つに記載の表示制御プログラム。
【請求項6】
前記画像生成手段は、前記色情報の特定の範囲毎に複数のオブジェクトを予め設定するオブジェクト設定手段を含み、
前記画像生成手段は、前記複数のオブジェクトのうち、前記色検出手段が検出した画素が有する前記特定の範囲の色情報に対応するオブジェクトを仮想世界に配置して、当該オブジェクトの画像を生成する、請求項1乃至5のいずれか1つに記載の表示制御プログラム。
【請求項7】
ユーザが入力した操作入力を示すデータを取得する操作入力データ取得手段と、
前記操作入力データ取得手段が取得したデータが所定の操作入力を示す場合、前記仮想世界に前記オブジェクトとは異なる操作オブジェクトを配置する操作オブジェクト配置手段と、
仮想世界において前記オブジェクトと前記操作オブジェクトとが所定の位置関係となった場合に、所定の点数を加点する加点手段として、前記コンピュータをさらに機能させ、
前記画像生成手段は、仮想世界に前記操作オブジェクトも配置して、前記オブジェクトおよび前記操作オブジェクトの画像を生成する、請求項1乃至6のいずれか1つに記載の表示制御プログラム。
【請求項8】
所定のアルゴリズムにしたがって移動する移動オブジェクトを前記操作オブジェクトとは別に前記仮想世界に配置する移動オブジェクト配置手段として、前記コンピュータをさらに機能させ、
前記加点手段は、前記移動オブジェクトと前記操作オブジェクトとが所定の位置関係となった場合に、所定の点数をさらに加点し、
前記画像生成手段は、仮想世界に前記移動オブジェクトも配置して、前記オブジェクト、前記操作オブジェクト、および前記移動オブジェクトの画像を生成する、請求項7に記載の表示制御プログラム。
【請求項9】
前記画像生成手段は、前記色検出手段が検出した前記特定の範囲の色情報を有する画素が所定の領域以上検出された場合、当該特定の範囲の色情報に対応するオブジェクトを仮想世界に配置して当該オブジェクトの画像を生成する、請求項1乃至8のいずれか1つに記載の表示制御プログラム。
【請求項10】
前記色検出手段は、彩度および明度を示す色情報がそれぞれ所定の閾値以上に高く、かつ、色相を示す色情報が所定の範囲内を示す少なくとも1つの画素を検出する、請求項1乃至9のいずれか1つに記載の表示制御プログラム。
【請求項11】
前記色検出手段は、
前記撮像画像を複数の画素で構成されるブロックに分割するブロック分割手段と、
前記ブロックに属する画素がそれぞれ有するRGB値に基づいて、当該ブロックに対する色相を示す値を前記ブロック毎に算出する色相算出手段と、
前記ブロックに対する色相を示す値が含まれる所定の色相範囲に基づいて、前記ブロックが属する色相分類をそれぞれ設定するブロック分類手段と、
隣接するブロックが同じ色相分類に属するブロック群の大きさに応じて、前記オブジェクトの画像を生成する対象とするブロック群を選択するブロック群選択手段とを含み、
前記画像生成手段は、前記ブロック群選択手段が選択したブロック群の色相分類に応じて、仮想世界に配置するオブジェクトを選択する、請求項1乃至9のいずれか1つに記載の表示制御プログラム。
【請求項12】
前記撮像画像取得手段は、前記表示制御装置が利用可能な実カメラによってリアルタイムに撮像された実世界の撮像画像を繰り返し取得し、
前記色検出手段は、前記撮像画像取得手段によって繰り返し取得された撮像画像それぞれにおいて、前記特定の範囲の色情報を有する画素を検出し、
前記画像生成手段は、前記撮像画像取得手段によって繰り返し取得された撮像画像それぞれと当該撮像画像から生成された仮想世界画像とを合成して繰り返し前記合成画像を生成し、
前記画像表示制御手段は、前記撮像画像取得手段によって繰り返し取得された撮像画像それぞれに前記仮想世界画像が合成画像を前記表示装置に繰り返し表示する、請求項2乃至4のいずれか1つに記載の表示制御プログラム。
【請求項13】
表示装置に画像を表示させる表示制御装置であって、
実カメラによって撮像された撮像画像を取得する撮像画像取得手段と、
前記撮像画像取得手段によって取得された撮像画像において、RGB値、色相、彩度、および明度からなる群から選ばれた少なくとも1つを含む色情報に対して特定の範囲の色情報を有する少なくとも1つの画素を検出する色検出手段と、
前記色検出手段が検出した画素が有する前記特定の範囲の色情報に基づいて、仮想世界に配置されるオブジェクトの画像を生成する画像生成手段と、
前記画像生成手段によって生成された画像を前記表示装置に表示する画像表示制御手段とを備える、表示制御装置。
【請求項14】
複数の装置が通信可能に構成され、表示装置に画像を表示させる表示制御システムであって、
実カメラによって撮像された撮像画像を取得する撮像画像取得手段と、
前記撮像画像取得手段によって取得された撮像画像において、RGB値、色相、彩度、および明度からなる群から選ばれた少なくとも1つを含む色情報に対して特定の範囲の色情報を有する少なくとも1つの画素を検出する色検出手段と、
前記色検出手段が検出した画素が有する前記特定の範囲の色情報に基づいて、仮想世界に配置されるオブジェクトの画像を生成する画像生成手段と、
前記画像生成手段によって生成された画像を前記表示装置に表示する画像表示制御手段とを備える、表示制御システム。
【請求項15】
表示装置に画像を表示させる表示制御処理が可能な少なくとも1つの情報処理装置により構成される表示制御システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行される表示制御方法であって、
実カメラによって撮像された撮像画像を取得する撮像画像取得ステップと、
前記撮像画像取得ステップにおいて取得された撮像画像において、RGB値、色相、彩度、および明度からなる群から選ばれた少なくとも1つを含む色情報に対して特定の範囲の色情報を有する少なくとも1つの画素を検出する色検出ステップと、
前記色検出ステップにおいて検出した画素が有する前記特定の範囲の色情報に基づいて、仮想世界に配置されるオブジェクトの画像を生成する画像生成ステップと、
前記画像生成ステップにおいて生成された画像を前記表示装置に表示する画像表示制御ステップとを含む、表示制御方法。
【図1】
【図2】
【図3A】
【図3B】
【図3C】
【図3D】
【図4】
【図5】
【図6A】
【図6B】
【図7A】
【図7B】
【図8A】
【図8B】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図2】
【図3A】
【図3B】
【図3C】
【図3D】
【図4】
【図5】
【図6A】
【図6B】
【図7A】
【図7B】
【図8A】
【図8B】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【公開番号】特開2012−65760(P2012−65760A)
【公開日】平成24年4月5日(2012.4.5)
【国際特許分類】
【出願番号】特願2010−211813(P2010−211813)
【出願日】平成22年9月22日(2010.9.22)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
【公開日】平成24年4月5日(2012.4.5)
【国際特許分類】
【出願日】平成22年9月22日(2010.9.22)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
[ Back to top ]