説明

表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法

【課題】実世界画像を用いて新たな画像を設定して表示制御することができる表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法を提供する。
【解決手段】実カメラによって撮像された撮像画像において、RGB値、色相、彩度、および明度からなる群から選ばれた少なくとも1つを含む色情報に対して特定の範囲の色情報を有する少なくとも1つの画素が含まれているか否かを検出する。特定の範囲の色情報を有する画素を検出した場合、当該画素が有する色情報に基づいて仮想世界に配置されるオブジェクトの形状、位置、および表示態様の少なくとも1つを変化させる。そして、設定されたオブジェクトが少なくとも配置された仮想世界の画像を表示装置に表示する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法に関し、より具体的には、実世界画像を用いて仮想オブジェクトを設定して表示制御する表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法に関する。
【背景技術】
【0002】
従来、実世界画像と仮想世界画像とを重ね合わせた画像を表示する装置が提案されている(例えば、特許文献1参照)。上記特許文献1で開示されたゲーム装置は、外部カメラによって撮像された画像を背景画像としてゲーム画像に重ね合わせて表示している。具体的には、上記ゲーム装置は、上記背景画像が一定時間毎に更新され、最新の背景画像をゲーム画像と重ね合わせて表示している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−113746号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記特許文献1で開示されたゲーム装置は、外部カメラによって撮像された画像が単に背景画像として表示されるだけであり、重ね合わされる背景画像とゲーム画像とが何ら関連のない状態で表示される。したがって、表示される画像自体が単調であり、面白みのある画像をユーザに提示することはできない。
【0005】
それ故に、本発明の目的は、実世界画像を用いて新たな画像を設定して表示制御することができる表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法を提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。なお、特許請求の範囲の記載を解釈する際に、特許請求の範囲の記載によってのみその範囲が解釈されるべきであることが理解され、特許請求の範囲の記載と本欄の記載とが矛盾する場合には、特許請求の範囲の記載が優先する。
【0007】
本発明の表示制御プログラムの一構成例は、表示装置に画像を表示させる表示制御装置のコンピュータを、撮像画像取得手段、色検出手段、オブジェクト設定手段、および画像表示制御手段として機能させる。撮像画像取得手段は、実カメラによって撮像された撮像画像を取得する。色検出手段は、撮像画像取得手段によって取得された撮像画像において、RGB値、色相、彩度、および明度からなる群から選ばれた少なくとも1つを含む色情報に対して特定の範囲の色情報を有する少なくとも1つの画素が含まれているか否かを検出する。オブジェクト設定手段は、色検出手段が特定の範囲の色情報を有する画素を検出した場合、当該画素が有する色情報に基づいて仮想世界に配置されるオブジェクトの形状、位置、および表示態様の少なくとも1つを変化させる。画像表示制御手段は、オブジェクト設定手段によって設定されたオブジェクトが少なくとも配置された仮想世界の画像を表示装置に表示する。
【0008】
上記によれば、実カメラによって撮像された撮像画像に特定の範囲の色情報を有する画素が検出された場合、当該色情報に応じてオブジェクトが変化して表示されるため、実世界画像を用いて新たな画像を設定して表示制御することができる。
【0009】
また、上記表示制御プログラムは、画像合成手段として、さらにコンピュータを機能させてもよい。画像合成手段は、撮像画像取得手段によって取得された撮像画像とオブジェクトが配置された仮想世界の画像とを合成した合成画像を生成する。この場合、画像表示制御手段は、画像合成手段により生成された合成画像を表示装置に表示してもよい。
【0010】
上記によれば、撮像画像(実世界画像)とオブジェクトが配置された画像(仮想世界画像)とが合成されて表示されるため、さらに面白みのある画像を提示することができる。
【0011】
また、上記オブジェクト設定手段は、画像合成手段が撮像画像と仮想世界の画像とを合成する場合に、特定の範囲の色情報を有する画素と重なって当該撮像画像に合成されるオブジェクトに対して、当該画素が有する色情報に基づいて当該オブジェクトの形状、位置、および表示態様の少なくとも1つを変化させてもよい。
【0012】
上記によれば、撮像画像から検出された特定の範囲の色情報を有する画素の位置に対応する仮想空間にオブジェクトが変化の対象となるため、ユーザが変化させたいオブジェクトを特定色の被写体に合わせるような操作が必要となり、新たな操作環境を提供することができる。
【0013】
また、上記オブジェクト設定手段は、画像合成手段が撮像画像と仮想世界の画像とを合成する場合に、彩度および明度を示す色情報がそれぞれ所定の閾値以上に高く、かつ、色相を示す色情報が所定の範囲内を示す画素と重なって当該撮像画像に合成されるオブジェクトを、当該画素が有する色情報に基づいて当該オブジェクトの形状、位置、および表示態様の少なくとも1つを変化させてもよい。
【0014】
上記によれば、複数の色情報を組み合わせてオブジェクトを設定することによって、色の誤判定を防止しながらユーザが本来区別している色認識にオブジェクト設定結果を近づけることができる。
【0015】
また、上記オブジェクト設定手段は、画素と重なって当該撮像画像に合成されるオブジェクトの形状を変化させる形状変化量、当該オブジェクトの位置を変化させる位置変化量、または当該オブジェクトの表示態様を変化させる変化速度を、当該画素の彩度または明度に応じて設定してもよい。
【0016】
上記によれば、オブジェクトを変化させる変化量や変化速度が彩度または明度に応じて変化するため、さらにバリエーションに富んだオブジェクトの変化を表示することができる。
【0017】
また、上記表示制御プログラムは、操作対象オブジェクト設定手段として、さらにコンピュータを機能させてもよい。操作対象オブジェクト設定手段は、オブジェクト設定手段が設定するオブジェクトの少なくとも一部と接触しながら仮想世界を移動可能な別の操作対象オブジェクトをさらに仮想世界に配置する。この場合、上記オブジェクト設定手段は、画素と重なって当該撮像画像に合成されるオブジェクトの形状または位置を変化させてもよい。上記画像表示制御手段は、オブジェクト設定手段によって設定されたオブジェクトに加えて、操作対象オブジェクト設定手段によって設定された操作対象オブジェクトが配置された仮想世界の画像を表示装置に表示してもよい。
【0018】
上記によれば、オブジェクトの変化に応じて別の操作対象オブジェクトを移動させるようなゲームが可能となる。
【0019】
また、上記オブジェクト設定手段は、画像合成手段が撮像画像と仮想世界の画像とを合成する場合に、特定の範囲の色情報を有する画素と重ならずに当該撮像画像に合成されるオブジェクトの形状および位置をそれぞれ基準形状および基準位置に設定し、特定の範囲の色情報を有する画素と重なって当該撮像画像に合成されるオブジェクトの形状または位置を当該基準形状から変形または当該基準位置から移動させてもよい。
【0020】
上記によれば、基準位置に配置されたオブジェクトのうち、特定の範囲の色情報を有する画素と重なるオブジェクトのみが変形または移動するような面白みのある画像を表示することができる。
【0021】
また、上記操作対象オブジェクト設定手段は、オブジェクト設定手段によるオブジェクトの形状または位置の変化に応じて、操作対象オブジェクトを仮想世界内で移動させてもよい。
【0022】
上記によれば、オブジェクトの形状または位置の変化に応じて別の操作対象オブジェクトが仮想世界内を移動するようなゲームが可能となる。
【0023】
また、上記オブジェクト設定手段は、特定の範囲の色情報を有する画素と重なって当該撮像画像に合成されるオブジェクトの形状または位置を当該基準形状から上下方向に拡縮するように変形または当該基準位置から昇降移動させてもよい。この場合、上記操作対象オブジェクト設定手段は、オブジェクト設定手段が設定する複数のオブジェクトの何れか1つの上面上に操作対象オブジェクトを配置し、当該複数のオブジェクトの上面高低差に基づいて当該操作対象オブジェクトを仮想世界内で移動させてもよい。
【0024】
上記によれば、複数のオブジェクト上に配置されている操作対象オブジェクトがオブジェクトの高低差に応じて移動するとともに、特定の範囲の色情報を有する画素と重なるオブジェクトのみが変形または移動するため、特定色の被写体とオブジェクトとを重ねて表示させることによって、操作対象オブジェクトを移動させるような新たなゲームが可能となる。
【0025】
また、上記オブジェクト設定手段は、画素と重なって当該撮像画像に合成されるオブジェクトに対して、当該画素が有する色情報に基づいて当該オブジェクトを伸縮させることによって形状を変化させてもよい。
【0026】
上記によれば、特定の範囲の色情報を有する画素と重なるオブジェクトを伸縮させることによって、面白みのある画像を表示することができる。
【0027】
また、上記表示制御プログラムは、固定オブジェクト設定手段として、さらにコンピュータを機能させてもよい。固定オブジェクト設定手段は、所定の基準位置に固定して仮想世界に複数の固定オブジェクトをさらに設定する。この場合、上記オブジェクト設定手段は、画像合成手段が撮像画像と仮想世界の画像とを合成する場合に、特定の範囲の色情報を有する画素と重ならずに当該撮像画像に合成されるオブジェクトを基準位置の高さとは異なる位置に配置し、特定の範囲の色情報を有する画素と重なって当該撮像画像に合成されるオブジェクトを基準位置と実質的に同じ高さに配置してもよい。上記画像表示制御手段は、オブジェクト設定手段によって設定されたオブジェクトに加えて、固定オブジェクト設定手段によって設定された複数の固定オブジェクトが配置された仮想世界の画像を表示装置に表示してもよい。
【0028】
上記によれば、基準位置の高さとは異なる位置に配置されているオブジェクトが、特定の範囲の色情報を有する画素と重なることによって、固定オブジェクトと実質的に同じ高さの位置まで昇降するため、面白みのある画像を表示することができる。
【0029】
また、上記表示制御プログラムは、固定オブジェクト設定手段として、さらにコンピュータを機能させてもよい。固定オブジェクト設定手段は、所定の基準位置に固定して仮想世界に複数の固定オブジェクトをさらに設定する。この場合、上記オブジェクト設定手段は、特定の範囲の色情報を有する画素と重なって当該撮像画像に合成されるオブジェクトを、基準位置と実質的に同じ高さで複数の固定オブジェクト間の間隙内で往復移動させてもよい。上記画像表示制御手段は、オブジェクト設定手段によって設定されたオブジェクトに加えて、固定オブジェクト設定手段によって設定された固定オブジェクトが配置された仮想世界の画像を表示装置に表示してもよい。
【0030】
上記によれば、基準位置の高さとは異なる位置に配置されているオブジェクトが、特定の範囲の色情報を有する画素と重なることによって、固定オブジェクト間の間隙内を基準位置の高さと実質的に同じ高さで往復移動するため、面白みのある画像を表示することができる。
【0031】
また、上記表示制御プログラムは、操作対象オブジェクト設定手段として、さらにコンピュータを機能させてもよい。操作対象オブジェクト設定手段は、基準位置と実質的に同じ高さに配置されたオブジェクトおよび固定オブジェクト上を、ユーザの操作に応じて移動可能な別の操作対象オブジェクトをさらに仮想世界に配置する。この場合、上記画像表示制御手段は、オブジェクト設定手段によって設定されたオブジェクトおよび固定オブジェクト設定手段によって設定された固定オブジェクトに加えて、操作対象オブジェクト設定手段によって設定された操作対象オブジェクトが配置された仮想世界の画像を表示装置に表示してもよい。
【0032】
上記によれば、基準位置と実質的に同じ高さに配置されたオブジェクト上のみ操作対象オブジェクトが移動可能なゲームにおいて、操作対象オブジェクトが跳躍できない間隙が形成され、かつ、当該間隙に配置可能なオブジェクトが設定されている場合、当該オブジェクトと特定の範囲の色情報を有する画素と重なることによって、当該間隙を通過することが可能となる。
【0033】
また、上記色検出手段は、今回取得された撮像画像における色情報を前回の処理で算出された色情報で補間することによって、今回の検出処理で用いる色情報を算出してもよい。
【0034】
上記によれば、撮像画像における急激な色変化に起因するオブジェクトの形状、位置、および表示態様の少なくとも1つにおける急変を防止することができる。
【0035】
また、上記オブジェクト設定手段は、形状、位置、および表示態様の少なくとも1つを変化させる対象となるオブジェクトの色を、特定の範囲の色情報を有する画素色の補色に設定してもよい。
【0036】
上記によれば、オブジェクトの色によってユーザが変化の対象となる被写体の色を把握することができる。
【0037】
また、上記表示制御プログラムは、オブジェクト移動制御手段として、さらにコンピュータを機能させてもよい。オブジェクト移動制御手段は、オブジェクト設定手段が設定するオブジェクトを、ユーザの操作に応じて仮想世界内を移動させる。この場合、オブジェクト設定手段は、オブジェクト移動制御手段が移動制御するオブジェクトが画素と重なって当該撮像画像に合成される場合、当該画素が有する色情報に基づいて当該オブジェクトをオブジェクト移動制御手段が移動させる速度を増減させてもよい。
【0038】
上記によれば、ユーザ操作可能なオブジェクトが特定色の被写体と重なることによってその移動速度が増減するため、操作の難易度が増す。また、上記オブジェクトの移動速度をユーザが増減させたい場合、特定色の被写体と当該オブジェクトとを重ねるような操作が必要となり、新たな操作環境を提供することができる。
【0039】
また、上記色検出手段は、ブロック分割手段およびブロックRGB平均値算出手段を含んでいてもよい。ブロック分割手段は、撮像画像を複数の画素で構成されるブロックに分割する。ブロックRGB平均値算出手段は、ブロックに属する画素がそれぞれ有するRGB値の平均値を当該ブロック毎に算出する。この場合、色検出手段は、ブロック毎の平均値に基づいて、特定の範囲の色情報を有する少なくとも1つの画素が含まれているか否かを検出してもよい。
【0040】
上記によれば、ブロック毎に色情報を判定することによって色検出処理が容易となり、処理負荷が軽減される。
【0041】
また、上記撮像画像取得手段は、表示制御装置が利用可能な実カメラによってリアルタイムに撮像された実世界の撮像画像を繰り返し取得してもよい。この場合、色検出手段は、撮像画像取得手段によって繰り返し取得された撮像画像それぞれにおいて、特定の範囲の色情報を有する画素を繰り返し検出してもよい。上記オブジェクト設定手段は、色検出手段が繰り返し検出した色情報に基づいてオブジェクトの形状、位置、および表示態様の少なくとも1つを繰り返し変化させてもよい。上記画像合成手段は、撮像画像取得手段によって繰り返し取得された撮像画像それぞれとオブジェクトが配置された仮想世界の画像とを合成して繰り返し合成画像を生成してもよい。上記画像表示制御手段は、撮像画像取得手段によって繰り返し取得された撮像画像それぞれに仮想世界の画像が合成された合成画像を表示装置に繰り返し表示してもよい。
【0042】
上記によれば、リアルタイムに撮像された実世界の撮像画像から特定の範囲の色情報を有する画素を検出し、当該色情報に応じたオブジェクトを変化させて撮像された画像に合成して表示するため、リアルタイムに得られる実世界画像を用いて新たな画像を設定して表示制御することができる。
【0043】
また、上記オブジェクト設定手段は、画像合成手段が撮像画像と仮想世界の画像とを合成する場合に、特定の範囲の色情報を有する画素と重なって当該撮像画像に合成された後に、さらに当該特定の範囲とは異なる範囲の色情報を有する画素と重なって当該撮像画像に合成されるオブジェクトの形状、位置、および表示態様の少なくとも1つを変化させてもよい。
【0044】
上記によれば、オブジェクトの形状、位置、および表示態様の少なくとも1つを変化させるためには、当該オブジェクトに異なる特定色を有する2つの被写体を重ね合わせる必要があるため、ユーザにおける操作の難易度が高まるとともに、新たな操作環境を提供することができる。
【0045】
また、本発明は、上記各手段を備える表示制御装置および表示制御システムや上記各手段で行われる動作を含む表示制御方法の形態で実施されてもよい。
【発明の効果】
【0046】
本発明によれば、実カメラによって撮像された撮像画像から特定の範囲の色情報を有する画素を検出し、当該色情報に応じたオブジェクトの形状、位置、および表示態様の少なくとも1つを変化させて表示するため、実世界画像を用いて新たな画像を設定して表示制御することができる。
【図面の簡単な説明】
【0047】
【図1】開いた状態におけるゲーム装置10の一例を示す正面図
【図2】開いた状態におけるゲーム装置10の一例を示す側面図
【図3A】閉じた状態におけるゲーム装置10の一例を示す左側面図
【図3B】閉じた状態におけるゲーム装置10の一例を示す正面図
【図3C】閉じた状態におけるゲーム装置10の一例を示す右側面図
【図3D】閉じた状態におけるゲーム装置10の一例を示す背面図
【図4】ユーザがゲーム装置10を両手で把持する様子の一例を示す図
【図5】ゲーム装置10の内部構成の一例を示すブロック図
【図6A】第1のゲーム例において、カメラ画像CIに仮想世界画像が合成されて上側LCD22に表示された一例を示す図
【図6B】第1のゲーム例において、カメラ画像CIに含まれる赤色の被写体と仮想オブジェクトとが重なって表示された様子が上側LCD22に表示された一例を示す図
【図7A】第2のゲーム例において、カメラ画像CIに仮想世界画像が合成されて上側LCD22に表示された一例を示す図
【図7B】第2のゲーム例において、カメラ画像CIに含まれる赤色の被写体と仮想オブジェクトとが重なって表示された様子が上側LCD22に表示された一例を示す図
【図8A】第3のゲーム例において、カメラ画像CIに仮想世界画像が合成されて上側LCD22に表示された一例を示す図
【図8B】第3のゲーム例において、カメラ画像CIに含まれる赤色の被写体と仮想オブジェクトとが重なって表示された様子が上側LCD22に表示された一例を示す図
【図9】表示制御プログラムを実行することに応じて、メインメモリ32に記憶される各種データの一例を示す図
【図10】図9のブロックRGBデータDbの一例を示す図
【図11】図9のキューブ色データDcの一例を示す図
【図12】表示制御プログラムを実行することによってゲーム装置10が表示制御処理する動作の一例を示すフローチャート
【図13】図12のステップ53で行われるオブジェクト設定処理の詳細な動作の一例を示すサブルーチン
【図14】図13のステップ72で行われるキューブ長さ算出処理の詳細な動作の一例を示すサブルーチン
【図15】複数のキューブCBおよびボールオブジェクトBLをレンダリングする処理の一例を説明するための説明図
【図16A】第4のゲーム例において、カメラ画像CIに仮想世界画像が合成されて上側LCD22に表示された一例を示す図
【図16B】第4のゲーム例において、カメラ画像CIに含まれる青色の被写体と仮想オブジェクトとが重なって表示された様子が上側LCD22に表示された一例を示す図
【発明を実施するための形態】
【0048】
図面を参照して、本発明の一実施形態に係る表示制御プログラムを実行する表示制御装置について説明する。本発明の表示制御プログラムは、任意のコンピュータシステムで実行されることによって適用することができるが、表示制御装置の一例として携帯型のゲーム装置10を用い、ゲーム装置10で実行される表示制御プログラムを用いて説明する。なお、図1〜図3Dは、ゲーム装置10の外観の一例を示す平面図である。ゲーム装置10は、一例として携帯型のゲーム装置であり、図1〜図3Dに示すように折り畳み可能に構成されている。図1は、開いた状態(開状態)におけるゲーム装置10の一例を示す正面図である。図2は、開状態におけるゲーム装置10の一例を示す右側面図である。図3Aは、閉じた状態(閉状態)におけるゲーム装置10の一例を示す左側面図である。図3Bは、閉状態におけるゲーム装置10の一例を示す正面図である。図3Cは、閉状態におけるゲーム装置10の一例を示す右側面図である。図3Dは、閉状態におけるゲーム装置10の一例を示す背面図である。ゲーム装置10は、撮像部を内蔵しており、当該撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置10は、交換可能なメモリカード内に記憶され、または、サーバや他のゲーム装置から受信したゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラから見た仮想世界画像等のコンピュータグラフィックス処理により生成された画像を画面に表示することもできる。
【0049】
図1〜図3Dにおいて、ゲーム装置10は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に連結されている。図1の例では、下側ハウジング11および上側ハウジング21は、それぞれ横長の長方形の板状で形成され、互いの長辺部分で回動可能に連結されている。通常、ユーザは、開状態でゲーム装置10を使用する。そして、ユーザは、ゲーム装置10を使用しない場合には閉状態としてゲーム装置10を保管する。また、ゲーム装置10は、上記閉状態および開状態のみでなく、下側ハウジング11と上側ハウジング21とのなす角度が閉状態と開状態との間の任意の角度において、連結部分に発生する摩擦力などによってその開閉角度を維持することができる。つまり、上側ハウジング21を下側ハウジング11に対して任意の角度で静止させることができる。
【0050】
図1および図2に示されるように、下側ハウジング11の上側長辺部分には、下側ハウジング11の内側面(主面)11Bに対して垂直な方向に突起する突起部11Aが設けられる。また、上側ハウジング21の下側長辺部分には、上側ハウジング21の下側面から当該下側面に垂直な方向に突起する突起部21Aが設けられる。下側ハウジング11の突起部11Aと上側ハウジング21の突起部21Aとが連結されることにより、下側ハウジング11と上側ハウジング21とが、折り畳み可能に接続される。
【0051】
下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12、タッチパネル13、各操作ボタン14A〜14L(図1、図3A〜図3D)、アナログスティック15、LED16A〜16B、挿入口17、および、マイクロフォン用孔18が設けられる。以下、これらの詳細について説明する。
【0052】
図1に示すように、下側LCD12は下側ハウジング11に収納される。下側LCD12は横長形状であり、長辺方向が下側ハウジング11の長辺方向に一致するように配置される。下側LCD12は、下側ハウジング11の中央に配置される。下側LCD12は、下側ハウジング11の内側面(主面)に設けられ、下側ハウジング11の内側面に設けられた開口部から下側LCD12の画面が露出する。そして、ゲーム装置10を使用しない場合には上記閉状態としておくことによって、下側LCD12の画面が汚れたり傷ついたりすることを防止することができる。下側LCD12の画素数は、一例として、256dot×192dot(横×縦)である。他の例として、下側LCD12の画素数は、320dot×240dot(横×縦)である。下側LCD12は、後述する上側LCD22とは異なり、画像を(立体視可能ではなく)平面的に表示する表示装置である。なお、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側LCD12として、任意の解像度の表示装置を利用することができる。
【0053】
図1に示されるように、ゲーム装置10は、入力装置として、タッチパネル13を備えている。タッチパネル13は、下側LCD12の画面上を覆うように装着されている。なお、本実施形態では、タッチパネル13は、例えば抵抗膜方式のタッチパネルが用いられる。ただし、タッチパネル13は、抵抗膜方式に限らず、例えば静電容量方式等、任意の押圧式のタッチパネルを用いることができる。本実施形態では、タッチパネル13として、下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度とが一致している必要はない。また、下側ハウジング11の上側面には挿入口17(図1および図3Dに示す点線)が設けられている。挿入口17は、タッチパネル13に対する操作を行うために用いられるタッチペン28を収納することができる。なお、タッチパネル13に対する入力は通常タッチペン28を用いて行われるが、タッチペン28に限らずユーザの指でタッチパネル13に対する入力をすることも可能である。
【0054】
各操作ボタン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の電源をオン/オフするために用いられる。
【0055】
アナログスティック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として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いてもよい。
【0056】
十字状に配置される、ボタン14B、ボタン14C、ボタン14D、およびボタン14Eの4つのボタンは、下側ハウジング11を把持する右手の親指が自然と位置するところに配置される。また、これらの4つのボタンとアナログスティック15とは、下側LCD12を挟んで、左右対称に配置される。これにより、ゲームプログラムによっては、例えば、左利きの人が、これらの4つのボタンを使用して方向指示入力をすることも可能である。
【0057】
また、下側ハウジング11の内側面には、マイクロフォン用孔18が設けられる。マイクロフォン用孔18の下部には後述する音声入力装置としてのマイク(図5参照)が設けられ、当該マイクがゲーム装置10の外部の音を検出する。
【0058】
図3Bおよび図3Dに示されるように、下側ハウジング11の上側面には、Lボタン14GおよびRボタン14Hが設けられている。Lボタン14Gは、下側ハウジング11の上面の左端部に設けられ、Rボタン14Hは、下側ハウジング11の上面の右端部に設けられる。後述のように、Lボタン14GおよびRボタン14Hは、撮像部のシャッターボタン(撮影指示ボタン)として機能する。また、図3Aに示されるように、下側ハウジング11の左側面には、音量ボタン14Iが設けられる。音量ボタン14Iは、ゲーム装置10が備えるスピーカの音量を調整するために用いられる。
【0059】
図3Aに示されるように、下側ハウジング11の左側面には開閉可能なカバー部11Cが設けられる。このカバー部11Cの内側には、ゲーム装置10とデータ保存用外部メモリ46とを電気的に接続するためのコネクタ(図示せず)が設けられる。データ保存用外部メモリ46は、上記コネクタに着脱自在に装着される。データ保存用外部メモリ46は、例えば、ゲーム装置10によって撮像された画像のデータを記憶(保存)するために用いられる。なお、上記コネクタおよびそのカバー部11Cは、下側ハウジング11の右側面に設けられてもよい。
【0060】
図3Dに示されるように、下側ハウジング11の上側面にはゲーム装置10とゲームプログラムを記録した外部メモリ45を挿入するための挿入口11Dが設けられ、その挿入口11Dの内部には、外部メモリ45と電気的に着脱自在に接続するためのコネクタ(図示せず)が設けられる。外部メモリ45がゲーム装置10に接続されることにより、所定のゲームプログラムが実行される。なお、上記コネクタおよび挿入口11Dは、下側ハウジング11の他の側面(例えば、右側面等)に設けられてもよい。
【0061】
図1に示されるように、下側ハウジング11の下側面には、ゲーム装置10の電源のON/OFF状況をユーザに通知する第1LED16Aが設けられる。また、図3Cに示されるように、下側ハウジング11の右側面には、ゲーム装置10の無線通信の確立状況をユーザに通知する第2LED16Bが設けられる。ゲーム装置10は、他の機器との間で無線通信を行うことが可能であり、第2LED16Bは、他の機器との無線通信が確立している場合に点灯する。ゲーム装置10は、例えば、IEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。下側ハウジング11の右側面には、この無線通信の機能を有効/無効にする無線スイッチ19が設けられる(図3C参照)。
【0062】
なお、図示は省略するが、下側ハウジング11には、ゲーム装置10の電源となる充電式電池が収納され、下側ハウジング11の側面(例えば、上側面)に設けられた端子を介して当該電池を充電することができる。
【0063】
上側ハウジング21には、上側LCD22、2つの外側撮像部23(外側左撮像部23aおよび外側右撮像部23b)、内側撮像部24、3D調整スイッチ25、および3Dインジケータ26が設けられる。以下、これらの詳細について説明する。
【0064】
図1に示すように、上側LCD22は、上側ハウジング21に収納される。上側LCD22は、横長形状であり、長辺方向が上側ハウジング21の長辺方向に一致するように配置される。上側LCD22は、上側ハウジング21の中央に配置される。上側LCD22の画面の面積は、一例として下側LCD12の画面の面積よりも大きく設定される。具体的には、上側LCD22の画面は、下側LCD12の画面よりも横長に設定される。すなわち、上側LCD22の画面のアスペクト比における横幅の割合は、下側LCD12の画面のアスペクト比における横幅の割合よりも大きく設定される。
【0065】
上側LCD22の画面は、上側ハウジング21の内側面(主面)21Bに設けられ、上側ハウジング21の内側面に設けられた開口部から上側LCD22の画面が露出する。また、図2に示すように、上側ハウジング21の内側面は、透明なスクリーンカバー27によって覆われている。スクリーンカバー27は、上側LCD22の画面を保護するとともに、上側LCD22と上側ハウジング21の内側面と一体的にさせ、これにより統一感を持たせている。上側LCD22の画素数は、一例として640dot×200dot(横×縦)である。他の例として、上側LCD22の画素数は、800dot×240dot(横×縦)である。なお、本実施形態では、上側LCD22が液晶表示装置であるとしたが、例えばELを利用した表示装置などが利用されてもよい。また、上側LCD22として、任意の解像度の表示装置を利用することができる。
【0066】
上側LCD22は、立体視可能な画像を表示することが可能な表示装置である。上側LCD22は、実質的に同一の表示領域を用いて左目用画像と右目用画像とを表示することが可能である。具体的には、上側LCD22は、左目用画像と右目用画像とが所定単位で(例えば、1列ずつ)横方向に交互に表示される方式の表示装置である。一例として、上側LCD22の画素数が800dot×240dotで構成される場合、横の800ピクセルを左目用画像と右目用画像とに交互にそれぞれ400ピクセル割り当てることによって立体視が可能となる。なお、上側LCD22は、左目用画像と右目用画像とが交互に表示される方式の表示装置であってもよい。また、上側LCD22は、裸眼立体視可能な表示装置である。この場合、上側LCD22は、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式(視差バリア方式)のものが用いられる。本実施形態では、上側LCD22は、パララックスバリア方式のものとする。上側LCD22は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像(立体画像)を表示する。すなわち、上側LCD22は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像をそれぞれ視認させることにより、ユーザにとって立体感のある立体画像(立体視可能な画像)を表示することができる。また、上側LCD22は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる(上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである。)。このように、上側LCD22は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する(平面視画像を表示する)平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する3D調整スイッチ25によって行われる。
【0067】
外側撮像部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イメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0068】
図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の間隔は、この範囲に限らない。
【0069】
なお、本実施例においては、外側左撮像部23aおよび外側右撮像部23bは、ハウジングに固定されており、撮像方向を変更することはできない。
【0070】
外側左撮像部23aおよび外側右撮像部23bは、上側LCD22(上側ハウジング21)の左右方向に関して中央から対称となる位置にそれぞれ配置される。すなわち、外側左撮像部23aおよび外側右撮像部23bは、上側LCD22を左右に2等分する線に対して対称の位置にそれぞれ配置される。また、外側左撮像部23aおよび外側右撮像部23bは、上側ハウジング21を開いた状態において、上側ハウジング21の上部であって、上側LCD22の画面の上端よりも上方の位置の裏側に配置される。すなわち、外側左撮像部23aおよび外側右撮像部23bは、上側ハウジング21の外側面であって、上側LCD22を外側面に投影した場合、投影した上側LCD22の画面の上端よりも上方に配置される。
【0071】
このように、外側撮像部23の2つの撮像部(外側左撮像部23aおよび外側右撮像部23b)が上側LCD22の左右方向に関して中央から対称の位置に配置されることにより、ユーザが上側LCD22を正視した場合に、外側撮像部23それぞれの撮像方向をユーザの左右の目それぞれの視線方向と一致させることができる。また、外側撮像部23は、上側LCD22の画面の上端より上方の裏側の位置に配置されるため、外側撮像部23と上側LCD22とが上側ハウジング21の内部で干渉することがない。したがって、外側撮像部23を上側LCD22の画面の裏側に配置する場合と比べて、上側ハウジング21を薄く構成することが可能となる。
【0072】
内側撮像部24は、上側ハウジング21の内側面(主面)21Bに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部24は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0073】
図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を表している。
【0074】
このように、内側撮像部24は、外側撮像部23とは反対方向を撮像する。内側撮像部24は、上側ハウジング21の内側面であって、2つの外側撮像部23の中間位置となる裏側に設けられる。これにより、ユーザが上側LCD22を正視した際、内側撮像部24でユーザの顔を正面から撮像することができる。また、外側左撮像部23aおよび外側右撮像部23bと内側撮像部24とが上側ハウジング21の内部で干渉することがないため、上側ハウジング21を薄く構成することが可能となる。
【0075】
3D調整スイッチ25は、スライドスイッチであり、上述のように上側LCD22の表示モードを切り替えるために用いられるスイッチである。また、3D調整スイッチ25は、上側LCD22に表示された立体視可能な画像(立体画像)の立体感を調整するために用いられる。図1〜図3Dに示されるように、3D調整スイッチ25は、上側ハウジング21の内側面および右側面の端部に設けられ、ユーザが上側LCD22を正視した場合に、当該3D調整スイッチ25を視認できる位置に設けられる。3D調整スイッチ25は、所定方向(例えば、上下方向)の任意の位置にスライド可能なスライダを有しており、当該スライダの位置に応じて上側LCD22の表示モードが設定される。
【0076】
例えば、3D調整スイッチ25のスライダが最下点位置に配置されている場合、上側LCD22が平面表示モードに設定され、上側LCD22の画面には平面画像が表示される。なお、上側LCD22を立体表示モードのままとして、左目用画像と右目用画像とを同一の画像とすることにより平面表示してもよい。一方、上記最下点位置より上側にスライダが配置されている場合、上側LCD22は立体表示モードに設定される。この場合、上側LCD22の画面には立体視可能な画像が表示される。ここで、スライダが上記最下点位置より上側に配置されている場合、スライダの位置に応じて、立体画像の見え方が調整される。具体的には、スライダの位置に応じて、右目用画像および左目用画像における横方向の位置のずれ量が調整される。
【0077】
3Dインジケータ26は、上側LCD22が立体表示モードか否かを示す。例えば、3Dインジケータ26は、LEDであり、上側LCD22の立体表示モードが有効の場合に点灯する。図1に示されるように、3Dインジケータ26は、上側ハウジング21の内側面に設けられ、上側LCD22の画面近傍に設けられる。このため、ユーザが上側LCD22の画面を正視した場合、ユーザは3Dインジケータ26を視認しやすい。したがって、ユーザは、上側LCD22の画面を視認している状態でも、上側LCD22の表示モードを容易に認識することができる。
【0078】
また、上側ハウジング21の内側面には、スピーカ孔21Eが設けられる。後述するスピーカ44からの音声がこのスピーカ孔21Eから出力される。
【0079】
次に、図4を参照して、ゲーム装置10の使用状態の一例を示す。なお、図4は、ユーザがゲーム装置10を把持して操作する様子の一例を示す図である。
【0080】
図4に示されるように、ユーザは、下側LCD12および上側LCD22がユーザの方向を向く状態で、両手の掌と中指、薬指および小指とで下側ハウジング11の側面および外側面(内側面の反対側の面)を把持する。このように把持することで、ユーザは、下側ハウジング11を把持したまま、各操作ボタン14A〜14Eおよびアナログスティック15に対する操作を親指で行い、Lボタン14GおよびR14Hに対する操作を人差し指で行うことができる。そして、図4に示した一例では、外側左撮像部23aおよび外側右撮像部23bによってゲーム装置10の背面側の実世界を撮像したカメラ画像が、上側LCD22に表示されている。また、タッチパネル13に対して入力を行う場合には、下側ハウジング11を把持していた一方の手を離して他方の手のみで下側ハウジング11を把持することによって、当該一方の手でタッチパネル13に対する入力を行うことができる。
【0081】
次に、図5を参照して、ゲーム装置10の内部構成を説明する。なお、図5は、ゲーム装置10の内部構成の一例を示すブロック図である。
【0082】
図5において、ゲーム装置10は、上述した各構成部に加えて、情報処理部31、メインメモリ32、外部メモリインターフェイス(外部メモリI/F)33、データ保存用外部メモリI/F34、データ保存用内部メモリ35、無線通信モジュール36、ローカル通信モジュール37、リアルタイムクロック(RTC)38、加速度センサ39、角速度センサ40、電源回路41、およびインターフェイス回路(I/F回路)42等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング11(または上側ハウジング21でもよい)内に収納される。
【0083】
情報処理部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に当該画像が表示される。
【0084】
情報処理部31には、メインメモリ32、外部メモリI/F33、データ保存用外部メモリI/F34、およびデータ保存用内部メモリ35が接続される。外部メモリI/F33は、外部メモリ45を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリI/F34は、データ保存用外部メモリ46を着脱自在に接続するためのインターフェイスである。
【0085】
メインメモリ32は、情報処理部31(CPU311)のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ32は、表示制御処理やゲーム処理で用いられる各種データを一時的に記憶したり、外部(外部メモリ45や他の機器等)から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ32として例えばPSRAM(Pseudo−SRAM)を用いる。
【0086】
外部メモリ45は、情報処理部31によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ45は、例えば読み取り専用の半導体メモリで構成される。外部メモリ45が外部メモリI/F33に接続されると、情報処理部31は外部メモリ45に記憶されたプログラムを読み込むことができる。情報処理部31が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ46は、不揮発性の読み書き可能なメモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ46には、外側撮像部23で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ46がデータ保存用外部メモリI/F34に接続されると、情報処理部31はデータ保存用外部メモリ46に記憶された画像を読み込み、上側LCD22および/または下側LCD12に当該画像を表示することができる。
【0087】
データ保存用内部メモリ35は、読み書き可能な不揮発性メモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ35には、無線通信モジュール36を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【0088】
無線通信モジュール36は、例えばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール37は、所定の通信方式(例えば赤外線通信)により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール36およびローカル通信モジュール37は、情報処理部31に接続される。情報処理部31は、無線通信モジュール36を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール37を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0089】
情報処理部31には、加速度センサ39が接続される。加速度センサ39は、3軸(本実施形態では、xyz軸)方向に沿った直線方向の加速度(直線加速度)の大きさを検出する。加速度センサ39は、例えば下側ハウジング11の内部に設けられる。加速度センサ39は、図1に示すように、下側ハウジング11の長辺方向をx軸、下側ハウジング11の短辺方向をy軸、下側ハウジング11の内側面(主面)に対して垂直な方向をz軸として、ゲーム装置10の各軸方向へ生じる直線加速度の大きさをそれぞれ検出する。なお、加速度センサ39は、例えば静電容量式の加速度センサとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ39は、1軸または2軸方向を検出する加速度センサであってもよい。情報処理部31は、加速度センサ39が検出した加速度を示すデータ(加速度データ)を受け取って、ゲーム装置10の姿勢や動きを算出する。
【0090】
情報処理部31には、角速度センサ40が接続される。角速度センサ40は、ゲーム装置10の3軸(本実施形態では、xyz軸)周りに生じる角速度をそれぞれ検出し、検出した角速度を示すデータ(角速度データ)を情報処理部31へ出力する。角速度センサ40は、例えば下側ハウジング11の内部に設けられる。情報処理部31は、角速度センサ40から出力された角速度データを受け取って、ゲーム装置10の姿勢や動きを算出する。
【0091】
情報処理部31には、RTC38および電源回路41が接続される。RTC38は、時間をカウントして情報処理部31に出力する。情報処理部31は、RTC38によって計時された時間に基づき現在時刻(日付)を計算する。電源回路41は、ゲーム装置10が有する電源(下側ハウジング11に収納される上記充電式電池)からの電力を制御し、ゲーム装置10の各部品に電力を供給する。
【0092】
情報処理部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に対して入力が行われたタッチ位置を知ることができる。
【0093】
操作ボタン14は、上記各操作ボタン14A〜14Lからなり、情報処理部31に接続される。操作ボタン14から情報処理部31へは、各操作ボタン14A〜14Iに対する入力状況(押下されたか否か)を示す操作データが出力される。情報処理部31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に応じた処理を実行する。
【0094】
下側LCD12および上側LCD22は、情報処理部31に接続される。下側LCD12および上側LCD22は、情報処理部31(GPU312)の指示にしたがって画像を表示する。本実施形態では、情報処理部31は、入力操作用の画像を下側LCD12に表示させ、外側撮像部23および内側撮像部24のいずれかから取得した画像を上側LCD22に表示させる。すなわち、情報処理部31は、上側LCD22に外側撮像部23で撮像した右目用画像と左目用画像とを用いた立体画像(立体視可能な画像)を表示させたり、内側撮像部24で撮像した平面画像を上側LCD22に表示させたり、上側LCD22に外側撮像部23で撮像した右目用画像および左目用画像の一方を用いた平面画像を表示させたりする。
【0095】
具体的には、情報処理部31は、上側LCD22のLCDコントローラ(図示せず)と接続され、当該LCDコントローラに対して視差バリアのON/OFFを制御する。上側LCD22の視差バリアがONになっている場合、情報処理部31のVRAM313に格納された(外側撮像部23で撮像された)右目用画像と左目用画像とが、上側LCD22に出力される。より具体的には、LCDコントローラは、右目用画像について縦方向に1ライン分の画素データを読み出す処理と、左目用画像について縦方向に1ライン分の画素データを読み出す処理とを交互に繰り返すことによって、VRAM313から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に1ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側LCD22の画面に表示される。そして、上側LCD22の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側LCD22の画面には立体視可能な画像が表示される。
【0096】
外側撮像部23および内側撮像部24は、情報処理部31に接続される。外側撮像部23および内側撮像部24は、情報処理部31の指示にしたがって画像を撮像し、撮像した画像データを情報処理部31に出力する。本実施形態では、情報処理部31は、外側撮像部23および内側撮像部24のいずれか一方に対して撮像指示を行い、撮像指示を受けた撮像部が画像を撮像して画像データを情報処理部31に送る。具体的には、ユーザによるタッチパネル13や操作ボタン14を用いた操作によって使用する撮像部が選択される。そして、撮像部が選択されたことを情報処理部31(CPU311)が検知し、情報処理部31が外側撮像部23または内側撮像部24に対して撮像指示を行う。
【0097】
3D調整スイッチ25は、情報処理部31に接続される。3D調整スイッチ25は、スライダの位置に応じた電気信号を情報処理部31に送信する。
【0098】
3Dインジケータ26は、情報処理部31に接続される。情報処理部31は、3Dインジケータ26の点灯を制御する。例えば、情報処理部31は、上側LCD22が立体表示モードである場合、3Dインジケータ26を点灯させる。
【0099】
次に、ゲーム装置10で実行される表示制御プログラムによる具体的な表示制御処理動作を説明する前に、図6A〜図8Bを参照して当該表示制御処理動作によって上側LCD22に表示される表示形態例について説明する。なお、図6Aは、第1のゲーム例において、カメラ画像CIに仮想世界画像が合成されて上側LCD22に表示された一例を示す図である。図6Bは、第1のゲーム例において、カメラ画像CIに含まれる赤色の被写体と仮想オブジェクトとが重なって表示された様子が上側LCD22に表示された一例を示す図である。図7Aは、第2のゲーム例において、カメラ画像CIに仮想世界画像が合成されて上側LCD22に表示された一例を示す図である。図7Bは、第2のゲーム例において、カメラ画像CIに含まれる赤色の被写体と仮想オブジェクトとが重なって表示された様子が上側LCD22に表示された一例を示す図である。図8Aは、第3のゲーム例において、カメラ画像CIに仮想世界画像が合成されて上側LCD22に表示された一例を示す図である。図8Bは、第3のゲーム例において、カメラ画像CIに含まれる赤色の被写体と仮想オブジェクトとが重なって表示された様子が上側LCD22に表示された一例を示す図である。なお、説明を簡単にするために、上側LCD22には、外側撮像部23および内側撮像部24のいずれかから取得したカメラ画像CIに基づいた、実世界の平面画像(上述した立体視可能な画像とは反対の意味での平面視の画像)が表示される例を用いる。
【0100】
図6A〜図8Bにおいて、第1のゲーム例〜第3のゲーム例では、上側LCD22にゲーム装置10に内蔵する実カメラ(例えば、外側撮像部23)によって撮像された実世界画像であるカメラ画像CIが表示される。例えば、第1のゲーム例〜第3のゲーム例では、上側LCD22には、ゲーム装置10に内蔵する実カメラで撮像されたリアルタイムの実世界画像(動画像)が表示される。
【0101】
図6Aにおいて、第1のゲーム例では、複数のキューブCBおよびボールオブジェクトBLが仮想世界に配置された仮想世界画像がカメラ画像CIに合成されて上側LCD22に表示される。ここで、複数のキューブCBは、マトリックス状に一体化された単一の平板形状となるように配置され、当該平板形状の上面が仮想世界における水平方向に形成される。また、ボールオブジェクトBLは、マトリックス状に一体化された複数のキューブCBの上面上に配置され、当該上面上を転がるように移動する。なお、図6Aに示した一例は、上側LCD22に表示されたカメラ画像CIとして赤色以外の被写体(例えば、白い被写体)が撮像されており、当該被写体と複数のキューブCBとが重なって表示された場合を示している。なお、この例では、上側LCD22に表示されたカメラ画像CIとして赤色の被写体も撮像されているが、当該赤色の被写体と複数のキューブCBとは重なって表示されていない。また、ゲームステージ毎にゴールとして設定されるキューブCB上にボールオブジェクトBLが移動したときにゲームクリアとなる。そして、所定時間内にボールオブジェクトBLがゴールのキューブCB上に到達しない場合にはゲームオーバとなる。
【0102】
図6Bにおいて、上側LCD22に表示されたカメラ画像CIとして赤色の被写体が撮像されており、当該赤色の被写体と複数のキューブCBの少なくとも一部とが重なって表示されている。この場合、赤色の被写体と重なったキューブCBが、他のキューブCBに対して相対的に上面が上昇して伸長変形し、色が変化(例えば、赤色のキューブCBに変化)する。これによって、マトリックス状に一体化された複数のキューブCB内で上面高さの差や色の差が生じ、結果的に上面に高低差が形成された単一の板形状に複数のキューブCBが変形する。一方、複数のキューブCBの上面上に配置されたボールオブジェクトBLは、当該上面に高低差が形成された場合、当該上面上を低い方(例えば、図6Bに示す白抜き矢印方向)へ転がって移動する。つまり、ゲーム装置10のプレイヤは、複数のキューブCBと重なるように赤色の被写体を撮像し、当該赤色の被写体の撮像位置を調整することによって、複数のキューブCB上に配置されたボールオブジェクトBLを転がして移動させることができる。なお、一例として、キューブCBが上昇する上昇量(伸長量)は、当該キューブCBに重なって撮像されている赤色画素の彩度によって決定されるが、詳細については後述する。
【0103】
図7Aにおいて、第2のゲーム例では、固定キューブCBf、可動キューブCBm、およびプレイヤキャラクタPCが仮想世界に配置された仮想世界画像がカメラ画像CIに合成されて上側LCD22に表示される。ここで、固定キューブCBfは、全て仮想世界における基準高さに配置され、一部に間隙が形成されている。また、可動キューブCBmは、固定キューブCBfの間に形成された間隙に配置され、仮想世界における上記基準高さに対して低い位置に配置されている。なお、図7Aに示した一例は、上側LCD22に表示されたカメラ画像CIとして赤色以外の被写体(例えば、白い被写体)が撮像されており、可動キューブCBmが全て当該被写体と重なって表示された場合を示している。また、この例では、上側LCD22に表示されたカメラ画像CIとして赤色の被写体が撮像されているが、当該赤色の被写体と可動キューブCBmとは重なって表示されていない。そして、プレイヤキャラクタPCは、固定キューブCBfまたは可動キューブCBmの上を移動可能であり、プレイヤの操作(例えば、十字ボタン14Aやアナログスティック15による操作)に応じて、仮想世界内を移動する。例えば、プレイヤキャラクタPCは、仮想世界に設けられたゴールに向かって固定キューブCBfまたは可動キューブCBmの上を移動するが、途中の経路に間隙が形成されている場合、当該間隙を飛び越えることができない。なお、所定時間内にプレイヤキャラタクPCがゴールに到達しない場合や固定キューブCBfの間に形成された間隙に落ちた場合にはゲームオーバとなる。
【0104】
図7Bにおいて、上側LCD22に表示されたカメラ画像CIとして赤色の被写体が撮像されており、当該赤色の被写体と可動キューブCBmの少なくとも一部とが重なって表示されている。この場合、赤色の被写体と重なった可動キューブCBmが、配置されている間隙内において上記基準高さ付近まで上昇して移動し、色が変化(例えば、赤色のキューブCBmに変化)する。これによって、固定キューブCBf間に形成されていた間隙が可動キューブCBmによって埋められるため、プレイヤキャラクタPCが間隙を埋めた可動キューブCBm上を移動することによって、当該間隙を渡ることができる。つまり、ゲーム装置10のプレイヤは、プレイヤキャラクタPCをゴールまで導くために、固定キューブCBf間に形成されていた間隙を渡る必要がある場合、当該間隙に配置されている可動キューブCBmと重なるように赤色の被写体を撮像することによって、当該間隙による障害をクリアすることができる。
【0105】
図8Aにおいて、第3のゲーム例では、固定キューブCBf、可動キューブCBm、およびプレイヤキャラクタPCが仮想世界に配置された仮想世界画像がカメラ画像CIに合成されて上側LCD22に表示される。ここで、固定キューブCBfは、全て仮想世界における基準高さに配置され、一部に間隙が形成されている。また、可動キューブCBmは、固定キューブCBfの間に形成された間隙に配置され、仮想世界における上記基準高さに対して低い位置に配置されている。なお、図8Aに示した一例は、上側LCD22に表示されたカメラ画像CIとして赤色以外の被写体(例えば、白い被写体)が撮像されており、可動キューブCBmが当該被写体と重なって表示された場合を示している。また、この例では、上側LCD22に表示されたカメラ画像CIとして赤色の被写体が撮像されているが、当該赤色の被写体と可動キューブCBmとは重なって表示されていない。そして、プレイヤキャラクタPCは、固定キューブCBfまたは可動キューブCBmの上を移動可能であり、プレイヤの操作(例えば、十字ボタン14Aやアナログスティック15による操作)に応じて、仮想世界内を移動する。例えば、プレイヤキャラクタPCは、仮想世界に設けられたゴールに向かって固定キューブCBfまたは可動キューブCBmの上を移動するが、第2のゲーム例と同様に途中の経路に間隙が形成されている場合、当該間隙を飛び越えることができない。なお、第2のゲーム例と同様に所定時間内にプレイヤキャラタクPCがゴールに到達しない場合や固定キューブCBfの間に形成された間隙に落ちた場合にはゲームオーバとなる。
【0106】
図8Bにおいて、上側LCD22に表示されたカメラ画像CIとして赤色の被写体が撮像されており、当該赤色の被写体と可動キューブCBmとが重なって表示されている。この場合、赤色の被写体と重なった可動キューブCBmが、配置されている間隙内において上記基準高さ付近まで上昇し、当該間隙の左右に配置されている固定キューブCBf間を当該間隙内で往復して移動(例えば、図8Bに示す白抜き矢印方向へ往復移動)して、色が変化(例えば、赤色のキューブCBmに変化)する。これによって、固定キューブCBf間に形成されていた間隙内を可動キューブCBmが往復するように移動するため、プレイヤキャラクタPCが間隙内往復移動する可動キューブCBm上に移動することによって、可動キューブCBm上に乗って当該間隙を渡ることができる。つまり、ゲーム装置10のプレイヤは、プレイヤキャラクタPCをゴールまで導くために、固定キューブCBf間に形成されていた間隙を渡る必要がある場合、当該間隙に配置されている可動キューブCBmと重なるように赤色の被写体を撮像することによって、当該間隙による障害をクリアすることができる。なお、可動キューブCBmが往復移動する速度は、可動キューブCBmに重なって撮像されている赤色画素の色相、彩度、または明度等によって変化してもかまわないし、予め設定された速度に固定してもかまわない。
【0107】
このように、ユーザ自身が撮像している実世界の撮像画像に特定色(上記例では、赤色)の被写体が含まれている場合、当該被写体と特定の仮想オブジェクト(キューブCBや可動キューブCBm)とを重ねることによって、当該仮想オブジェクトの形状、位置、および表示態様の少なくとも1つが変化して上側LCD22に表示される。例えば、仮想オブジェクト(キューブCB、固定キューブCBf、可動キューブCBm、ボールオブジェクトBL、プレイヤキャラクタPC等)を仮想空間に配置し、仮想カメラから当該仮想オブジェクトを見た仮想空間の画像(例えば、コンピュータグラフィックス画像;以下、仮想世界画像と記載する)を、カメラ画像CIから得られる実世界画像に合成することによって、仮想オブジェクトが実空間内に配置されているように上側LCD22に表示される。
【0108】
ここで、カメラ画像から特定色を検出する場合、当該カメラ画像における各画素の色情報を用いることが考えられる。例えば、各画素の色情報としては、RGB値、色相を表す値、彩度を表す値、明度を表す値等が考えられるが、本実施形態においては何れの値を用いてもかまわない。
【0109】
第1の例として、上記値を組み合わせて上記特定色を検出する。具体的には、彩度を表す値および明度を表す値がそれぞれ所定の閾値以上であり、かつ、色相を表す値が特定色を示す所定の範囲内である場合、特定色を表す画素であると判定する。このように、複数の色情報を組み合わせて特定色を判定することによって、色の誤判定を防止しながらユーザが本来区別している色認識に判定結果を近づけることができる。
【0110】
第2の例として、上記値の何れか1つを用いて上記特定色を検出する。一例として、明度を表す値のみを用いて、カメラ画像から所定の閾値以上の明度を有する画素を判別することが可能となる。この場合、カメラ画像における所定の閾値以上の明度を有する被写体と特定の仮想オブジェクトとが重なった場合、当該仮想オブジェクトの形状、位置および表示態様の少なくとも1つを変化させるような表示制御処理が可能となる。他の例として、RGB値のみ、色相を表す値のみ、または彩度を表す値のみを用いて、カメラ画像から所定条件を満たす画素を、特定色を有する画素として判別してもかまわない。
【0111】
なお、仮想オブジェクトの形状、位置、および表示態様の少なくとも1つを変化させる対象となる特定色は、仮想世界に配置されている仮想オブジェクト毎に異なっていてもかまわない。また、仮想オブジェクトの形状、位置、および表示態様の少なくとも1つが変化する対象となる特定色をユーザに示すために、仮想オブジェクトの色を当該特定色や当該特定色の補色にして表示してもよい。また、仮想オブジェクトが変形する変形量、位置が変化する移動量、表示態様が変化する変化量等は、当該仮想オブジェクトと重なる画素の色情報に応じて変化させてもかまわない。また、上側LCD22に表示される仮想オブジェクトは、カメラ画像と合成されることなく上側LCD22に表示されてもかまわない。この場合、上側LCD22にはゲーム装置10に内蔵する実カメラによって撮像されたカメラ画像が表示されず、当該カメラ画像と仮想世界画像とを合成すると仮定した場合に撮像された特定色の被写体と重なる位置に特定の仮想オブジェクトが配置されている場合に、当該重なる特定の仮想オブジェクトの形状、位置、および表示態様の少なくとも1つを変化させて上側LCD22に表示される。すなわち、上側LCD22には、仮想カメラから見た仮想空間のみが表示されることになるが、この場合、実カメラで撮像されているカメラ画像を下側LCD12に表示してもかまわない。
【0112】
次に、図9〜図14を参照して、ゲーム装置10で実行される表示制御プログラムによる具体的な処理動作について説明する。なお、図9は、表示制御プログラムを実行することに応じて、メインメモリ32に記憶される各種データの一例を示す図である。図10は、図9のブロックRGBデータDbの一例を示す図である。図11は、図9のキューブ色データDcの一例を示す図である。図12は、当該表示制御プログラムを実行することによってゲーム装置10が表示制御処理する動作の一例を示すフローチャートである。図13は、図12のステップ53で行われるオブジェクト設定処理の詳細な動作の一例を示すサブルーチンである。図14は、図13のステップ72で行われるキューブ長さ算出処理の詳細な動作の一例を示すサブルーチンである。なお、以下の処理動作の説明では、上述した第1のゲーム例を用いる。また、これらの処理を実行するためのプログラムは、ゲーム装置10に内蔵されるメモリ(例えば、データ保存用内部メモリ35)や外部メモリ45またはデータ保存用外部メモリ46に含まれており、ゲーム装置10の電源がオンになったときに、内蔵メモリから、または外部メモリI/F33やデータ保存用外部メモリI/F34を介して外部メモリ45またはデータ保存用外部メモリ46からメインメモリ32に読み出されて、CPU311によって実行される。
【0113】
図9において、メインメモリ32には、内蔵メモリ、外部メモリ45、またはデータ保存用外部メモリ46から読み出されたプログラムや表示制御処理において生成される一時的なデータが記憶される。図9において、メインメモリ32のデータ記憶領域には、カメラ画像データDa、ブロックRGBデータDb、キューブ色データDc、キューブ形状位置データDd、ボールオブジェクト位置データDe、仮想世界画像データDf、および表示画像データDg等が格納される。また、メインメモリ32のプログラム記憶領域には、表示制御プログラムを構成する各種プログラム群Paが記憶される。
【0114】
カメラ画像データDaは、外側撮像部23および内側撮像部24のいずれかが撮像したカメラ画像を示すデータである。後述する処理の説明においては、カメラ画像を取得するステップにおいて外側撮像部23および内側撮像部24のいずれかが撮像したカメラ画像を用いて、カメラ画像データDaを更新する態様を用いる。なお、外側撮像部23または内側撮像部24が撮像し、撮像されたカメラ画像を用いてカメラ画像データDaを更新する周期は、ゲーム装置10が処理する時間単位(例えば、1/60秒)と同じでもいいし、当該時間単位より短い時間でもかまわない。ゲーム装置10が処理する周期よりカメラ画像データDaを更新する周期が短い場合、後述する処理とは独立して適宜カメラ画像データDaを更新してもかまわない。この場合、後述するカメラ画像を取得するステップにおいて、カメラ画像データDaが示す最新のカメラ画像を常に用いて処理すればよい。
【0115】
ブロックRGBデータDbは、カメラ画像から算出されたブロック毎のRGB平均値を示すデータである。以下、図10を参照して、ブロックRGBデータDbの一例について説明する。
【0116】
図10において、一例として、外側撮像部23および内側撮像部24のいずれかが撮像したカメラ画像(以下、単にカメラ画像と記載する)は、所定サイズのブロック(例えば、8×8ピクセルのブロック)に分割され、ブロック毎にRGB平均値が算出される。具体的には、上記カメラ画像は、Nmax個のブロックに分割され、それぞれのブロックにブロック番号1〜ブロック番号Nmaxが付与される。そして、ブロックRGBデータDbは、ブロック毎にRGB平均値が記述される。例えば、ブロック番号1のブロックは、RGB平均値がR1、G1、およびB1であることが示されている。また、ブロック番号2のブロックは、RGB平均値がR2、G2、およびB2であることが示されている。
【0117】
図9に戻り、キューブ色データDcは、仮想空間に配置されて表示されるキューブCB毎の色情報およびキューブ長さを示すデータである。以下、図11を参照して、キューブ色データDcの一例について説明する。
【0118】
図11において、仮想空間に配置されて表示されるそれぞれのキューブCBにキューブ番号1〜キューブ番号Cmaxが付与される。そして、キューブ色データDcは、キューブCB毎に、前フレームのRGB値、現フレームのRGB値、色相Hを表す値、彩度Sを表す値、明度Vを表す値、および設定されたキューブ長さを示す値が記述される。例えば、キューブ番号1のキューブCBは、前フレームのRGB値がRo1、Go1、およびBo1、現フレームのRGB値がRr1、Gr1、およびBr1、色相Hを表す値がH1、彩度Sを表す値がS1、明度Vを表す値がV1であり、当該キューブCBのキューブ長さがL1であることが示されている。また、キューブ番号2のキューブCBは、前フレームのRGB値がRo2、Go2、およびBo2、現フレームのRGB値がRr2、Gr2、およびBr2、色相Hを表す値がH2、彩度Sを表す値がS2、明度Vを表す値がV2であり、当該キューブCBのキューブ長さがL2であることが示されている。
【0119】
図9に戻り、キューブ形状位置データDdは、カメラ画像と合成して表示する際のキューブCB毎の仮想空間における形状や配置位置および配置方向等を示すデータである。ボールオブジェクト位置データDeは、カメラ画像と合成して表示する際のボールオブジェクトBLの仮想空間における配置位置等を示すデータである。
【0120】
仮想世界画像データDfは、ボールオブジェクトBLや複数のキューブCBが配置された仮想空間を透視投影でレンダリングすることによって得られる仮想世界画像を示すデータである。
【0121】
表示画像データDgは、上側LCD22に表示される表示画像を示すデータである。例えば、上側LCD22に表示される表示画像は、上記仮想世界画像を優先して上記カメラ画像上に上記仮想世界画像を合成することによって生成される。
【0122】
次に、図12を参照して、情報処理部31の動作について説明する。まず、ゲーム装置10の電源(電源ボタン14F)がONされると、CPU311によってブートプログラム(図示せず)が実行され、これにより内蔵メモリまたは外部メモリ45やデータ保存用外部メモリ46に格納されているプログラムがメインメモリ32にロードされる。そして、当該ロードされたプログラムが情報処理部31(CPU311)で実行されることによって、図12に示すステップ(図12〜図14では「S」と略称する)が実行される。なお、図12〜図14においては、本発明に直接関連しない処理についての記載を省略する。
【0123】
図12において、情報処理部31は、表示制御処理における初期設定を行い(ステップ51)、次のステップに処理を進める。例えば、情報処理部31は、仮想世界画像を生成するための仮想カメラ仮想空間に設定し、当該仮想カメラが配置される仮想空間の座標軸(例えば、XYZ軸)を設定する。そして、情報処理部31は、上記仮想空間に複数のキューブCBおよびボールオブジェクトBLをそれぞれ初期位置に配置し、各キューブCBの形状(具体的には、キューブ長さL)を初期形状(初期長さLi)にそれぞれ設定する。例えば、情報処理部31は、マトリックス状に一体化された所定厚さの単一の平板形状となり、当該平板形状の上面が仮想空間における水平方向(例えば、仮想空間のXZ平面に平行な方向)に形成されるように複数のキューブCBの形状を設定して配置し、それぞれのキューブCBの初期位置および形状を用いてキューブ色データDcおよびキューブ形状位置データDdを更新する。また、情報処理部31は、マトリックス状に一体化された複数のキューブCBの上面上の初期位置にボールオブジェクトBLを配置し、当該ボールオブジェクトBLの初期位置を用いてボールオブジェクト位置データDeを更新する。また、情報処理部31は、以降の表示制御処理で用いる他のパラメータを初期化する。
【0124】
次に、情報処理部31は、ゲーム装置10の実カメラからカメラ画像を取得し(ステップ52)、次のステップに処理を進める。例えば、情報処理部31は、現在選択されている撮像部(外側撮像部23または内側撮像部24)によって撮像されたカメラ画像を用いて、カメラ画像データDaを更新する。
【0125】
次に、情報処理部31は、オブジェクト設定処理を行い(ステップ53)、次のステップに処理を進める。以下、図13を参照して、オブジェクト設定処理の一例について説明する。
【0126】
図13において、情報処理部31は、ブロック毎のRGB平均値を算出し(ステップ71)、次のステップに処理を進める。上述したように、カメラ画像は、Nmax個のブロックに分割される。例えば、情報処理部31は、カメラ画像データDaが示すカメラ画像からブロック番号Nのブロックに相当する画素(例えば、8×8ピクセル)のRGB値を抽出し、RGB値それぞれの平均値を算出する。そして、情報処理部31は、算出されたRGB平均値を用いて、当該ブロック番号NのRGB平均値に対応するブロックRGBデータDbを更新する。このように、情報処理部31は、カメラ画像データDaが示すカメラ画像が分割されているNmax個全てのブロックに対して、それぞれRGB平均値を算出し、算出されたそれぞれのRGB平均値を用いてブロックRGBデータDbを更新する。
【0127】
次に、情報処理部31は、キューブ長さ算出処理を行い(ステップ72)、次のステップに処理を進める。以下、図14を参照して、キューブ長さ算出処理の一例について説明する。
【0128】
図14において、情報処理部31は、当該サブルーチンで用いる一時変数Cを1に設定し(ステップ80)、次のステップに処理を進める。
【0129】
次に、情報処理部31は、キューブ番号CのキューブCBに対する現フレームRGB値を算出し(ステップ81)、次のステップに処理を進める。例えば、情報処理部31は、仮想世界画像がカメラ画像に合成される際、キューブ番号CのキューブCBと重なるブロック(例えば、キューブ番号CのキューブCBにおける底面中央の点と重なるブロック)を抽出し、ブロックRGBデータDbを参照して当該ブロックに対して算出されているRGB平均値(Rn,Gn,Bn)を取得する。そして、情報処理部31は、キューブ番号CのキューブCBに対する現フレームRGB値(Rrc,Grc,Brc)を、以下の数式を用いて算出する。
Rrc=Roc+(Rn−Roc)/4
Grc=Goc+(Gn−Goc)/4
Brc=Boc+(Bn−Boc)/4
ここで、Roc、Goc、Bocは、キューブ番号CのキューブCBに対して、前回の処理(前フレームの処理)で算出されたRGB値(前フレームRGB値)であり、キューブ番号Cの前フレームRGB値に対応するキューブ色データDcを参照することによって取得される。そして、情報処理部31は、算出された現フレームRGB値を用いて、キューブ番号Cの現フレームRGB値に対応するキューブ色データDcを更新する。このような計算を行うのは、急激にキューブCBの長さが変化するような画像を表示させないためである。また、急激にキューブCBの長さが変化するとゲームが非常に難しくなってしまい、これを防止するためでもある。
【0130】
次に、情報処理部31は、上記ステップ81で算出された現フレームRGB値を、色相Hc、彩度Sc、および明度Vcに変換し(ステップ82)、次のステップに処理を進める。そして、情報処理部31は、変換された色相Hc、彩度Sc、および明度Vcの値を用いて、キューブ番号Cの色相H、彩度S、および明度Vに対応するキューブ色データDcを更新する。
【0131】
ここで、現フレームRGB値から、色相Hc、彩度Sc、および明度Vcへの変換は、一般的に用いられている手法を用いればよい。例えば、現フレームRGB値の各要素(すなわち、Rrc、Grc、およびBrc)が0.0〜1.0で表され、maxを各要素の最大値、minを各要素の最小値とすると、色相Hnは、以下のような数式で変換される。
各要素のうち、Rrcの値がmaxの場合:
Hc=60×(Grc−Brc)/(max−min)
各要素のうち、Grcの値がmaxの場合:
Hc=60×(Brc−Rrc)/(max−min)+120
各要素のうち、Brcの値がmaxの場合:
Hc=60×(Rrc−Grc)/(max−min)+240
なお、上記数式を用いた変換によってHcが負の値となった場合、さらにHcに360を加算して色相Hcとする。また、彩度Scおよび明度Vcは、以下のような数式で変換される。
Sc=(max−min)/max
Vc=max
上記変換式を用いて、色相Hc、彩度Sc、および明度Vcを算出した場合、色相Hcが0.0〜360.0の範囲、彩度Scが0.0〜1.0の範囲、明度Vcが0.0〜1.0の範囲で、それぞれ求められる。
【0132】
次に、情報処理部31は、上記ステップ82で算出された彩度Scが閾値St(例えば、St=0.125)以上であるか否かを判断する(ステップ83)。そして、情報処理部31は、彩度Scが閾値St以上である場合、次のステップ84に処理を進める。一方、情報処理部31は、彩度Scが閾値St未満である場合、次のステップ87に処理を進める。
【0133】
ステップ84において、情報処理部31は、上記ステップ82で算出された明度Vcが閾値Vt(例えば、Vt=0.37)以上であるか否かを判断する。そして、情報処理部31は、明度Vcが閾値Vt以上である場合、次のステップ85に処理を進める。一方、情報処理部31は、明度Vcが閾値Vt未満である場合、次のステップ87に処理を進める。
【0134】
ステップ85において、情報処理部31は、上記ステップ82で算出された色相Hcが閾値Rt1(例えば、Rt1=348.75)以上、または、閾値Rt2(例えば、Rt2=11.25)以下であるか否か(すなわち、色相Hcが赤の範囲内か否か)を判断する。そして、情報処理部31は、上記ステップ85で肯定判定された場合、次のステップ86に処理を進める。一方、上記ステップ85で否定判定された場合、情報処理部31は、次のステップ87に処理を進める。
【0135】
ステップ86において、情報処理部31は、上記ステップ82で算出された彩度Scに基づいて、キューブ番号CのキューブCBにおけるキューブ長さLcを算出し、次のステップ88に処理を進める。一例として、情報処理部31は、キューブ長さLcを彩度Scに正比例するように算出し、算出されたキューブ長さLcを用いてキューブ番号Cのキューブ長さに対応するキューブ色データDcを更新する。
【0136】
一方、ステップ87において、情報処理部31は、キューブ番号CのキューブCBにおけるキューブ長さLcを基準長さ(例えば、初期設定におけるキューブ長さLi)に設定し、次のステップ88に処理を進める。例えば、情報処理部31は、基準高さに設定されたキューブ長さLcを用いてキューブ番号Cのキューブ長さに対応するキューブ色データDcを更新する。
【0137】
ステップ88において、情報処理部31は、キューブ番号Cの現フレームRGB値を用いて、キューブ番号Cの前フレームRGB値を更新し、次のステップに処理を進める。例えば、情報処理部31は、キューブ色データDcが示すキューブ番号Cの現フレームRGB値(Rrc,Grc,Brc)を用いて、キューブ色データDcにおけるキューブ番号Cの前フレームRGB値(Roc、Goc、Boc)をそれぞれ更新する。
【0138】
次に、情報処理部31は、現在設定されている一時変数CがCmaxであるか否かを判断する(ステップ89)。そして、情報処理部31は、一時変数CがCmaxである場合、当該サブルーチンによる処理を終了する。一方、情報処理部31は、一時変数CがCmaxに到達していない場合、現在設定されている一時変数Cに1を加算して新たな一時変数Cを設定して(ステップ90)、上記ステップ81に戻って処理を繰り返す。
【0139】
図13に戻り、上記ステップ72におけるキューブ長さ算出処理の後、情報処理部31は、仮想空間における各キューブCBの位置および形状を設定してキューブ形状位置データDdを更新し(ステップ73)、次のステップに処理を進める。一例として、情報処理部31は、仮想空間において、各キューブCBの上面および下面の形状を同一に設定し、4つの側面の上下長さが各キューブCBに設定されているキューブ長さLとなるように各キューブCBの側面形状を設定する。そして、情報処理部31は、仮想空間において、各キューブCBがマトリックス状に一体化された平板形状となり、各キューブCBの下面(当該平板形状の下面)が仮想空間における同じ水平平面上に並ぶ(例えば、仮想空間の同じXZ平面に並ぶ)ように、各キューブCBの位置を設定する。つまり、各キューブCBがマトリックス状に一体化されて形成される平板形状は、各キューブCBのキューブ長さLに応じてその上面に高低差が形成されることになる。
【0140】
次に、情報処理部31は、仮想空間におけるボールオブジェクトBLの位置を設定してボールオブジェクト位置データDeを更新し(ステップ74)、次のステップに処理を進める。例えば、情報処理部31は、各キューブCBが一体化されて形成されている上記平板形状の上面高さに応じて、当該上面上に配置するボールオブジェクトBLの位置を算出する。具体的には、情報処理部31は、ボールオブジェクトBLが上面に配置されているキューブCB(配置キューブCB)の周辺に配置されているキューブCB(周辺キューブCB)の上面高さ(キューブ長さL)を参照し、配置キューブCBの上面高さよりその上面高さが低い周辺キューブCBの方へ物理法則に基づいてボールオブジェクトBLを移動させる。なお、情報処理部31は、仮想空間に対して予め設定している物理法則に基づいてボールオブジェクトBLを移動させるため、原則として上面高さが低い周辺キューブCBの方へボールオブジェクトBLを移動させるが、直前までのボールオブジェクトBLの移動速度および移動方向に基づいて、他の周辺キューブCBの方へボールオブジェクトBLが移動することもあり得る。一例として、周辺キューブCBの上面高さが配置キューブCBの上面高さと同じである場合であっても、直前までのボールオブジェクトBLの移動方向が当該周辺キューブCBへ向かう方向であれば、当該周辺キューブCBの方へボールオブジェクトBLを移動させる。他の例として、周辺キューブCBの上面高さが配置キューブCBの上面高さより高い場合であっても、直前までのボールオブジェクトBLの移動方向が当該周辺キューブCBへ向かう方向であり、上記物理法則に基づいても当該周辺キューブCBとの高低差を乗り越えるような移動速度で移動していれば、当該周辺キューブCBの方へボールオブジェクトBLを移動させる。
【0141】
次に、情報処理部31は、設定された位置および/または形状に基づいて、キューブCBおよびボールオブジェクトBLを仮想空間に配置して(ステップ75)、当該サブルーチンによる処理を終了する。例えば、情報処理部31は、キューブ形状位置データDdおよびボールオブジェクト位置データDeを参照して、仮想空間において設定された位置および/形状に基づいて、複数のキューブCBおよびボールオブジェクトBLを配置する。一例として、本実施形態においては、図15に示すように、仮想カメラCaから、透視投影で複数のキューブCBおよびボールオブジェクトBLをレンダリングした画像を仮想世界画像として生成する。ここで、上述した処理では、マトリックス状に一体化された平板形状となり、各キューブCBの下面が仮想空間における同じ水平平面上に並ぶように複数のキューブCBの位置が設定され、何れかのキューブCBの上面上に配置されるようにボールオブジェクトBLの位置が設定されている。したがって、仮想空間には、複数のキューブCBが平板形状に一体化し、当該平板形状の上面上にボールオブジェクトBLが載置されるように、複数のキューブCBおよびボールオブジェクトBLが配置される。
【0142】
図12に戻り、上記ステップ53におけるオブジェクト設定処理の後、情報処理部31は、仮想空間をレンダリングする処理を行い(ステップ54)、次のステップに処理を進める。例えば、情報処理部31は、複数のキューブCBおよびボールオブジェクトBLが配置されている仮想空間をレンダリングした画像を用いて、仮想世界画像データDfを更新する。例えば、図15に示すように、仮想空間には複数のキューブCBおよびボールオブジェクトBLが、それぞれキューブ形状位置データDdおよびボールオブジェクト位置データDeが示す形状、位置、および方向に応じて配置されている。また、仮想空間には、仮想空間をレンダリングするための仮想カメラCaが、所定の位置および方向に配置されている。そして、情報処理部31は、仮想空間の配置された複数のキューブCBおよびボールオブジェクトBLを、仮想カメラCaから透視投影でレンダリングすることによって仮想世界画像を生成し、生成された仮想世界画像を用いて仮想世界画像データDfを更新する。
【0143】
次に、情報処理部31は、カメラ画像と仮想世界画像とを合成した表示画像を生成し、当該表示画像を上側LCD22に表示して(ステップ55)、次のステップに処理を進める。例えば、情報処理部31は、カメラ画像データDaが示すカメラ画像および仮想世界画像データDfが示す仮想世界画像を取得して、仮想世界画像を優先してカメラ画像上に当該仮想世界画像を合成することによって表示画像を生成し、当該表示画像を用いて表示画像データDgを更新する。また、情報処理部31のCPU311は、表示画像データDgが示す表示画像をVRAM313に格納する。そして、情報処理部31のGPU312が、VRAM313に描画された表示画像を上側LCD22に出力することによって、上側LCD22に当該表示画像が表示される。なお、情報処理部31は、仮想世界画像データDfに仮想世界画像が格納されていない場合、カメラ画像データDaが示すカメラ画像をそのまま上記表示画像とすればよい。
【0144】
次に、情報処理部31は、ゲームを終了するか否かを判断する(ステップ56)。ゲームを終了する条件としては、例えば、ゲームオーバとなる条件が満たされたことや、ユーザがゲームを終了する操作を行ったこと等がある。情報処理部31は、ゲームを終了しない場合、上記ステップ52に戻って処理を繰り返す。一方、情報処理部31は、ゲームを終了する場合、当該フローチャートによる処理を終了する。
【0145】
このように、上述した実施形態に係る表示制御処理では、実カメラから得られたカメラ画像に特定色の被写体が含まれている場合、当該特定色の被写体と重なって表示されるキューブCBが伸長するとともに、そのキューブCBの色が変化して表示されるため、重なる被写体に応じて仮想オブジェクトが変形したり色が変化したりする新たな画像を表示することができる。また、他のゲーム例では、実カメラから得られたカメラ画像に特定色の被写体が含まれている場合、当該特定色の被写体と重なって表示された場合に可動キューブCBmが移動するとともに、その可動キューブCBmの色が変化して表示されるため、重なる被写体に応じて仮想オブジェクトが移動する新たな画像を表示することもできる。
【0146】
なお、上述した第1のゲーム例では、実カメラから得られたカメラ画像に特定色の被写体が含まれている場合、当該特定色の被写体と重なって表示されるキューブCBを伸長させる例を用いた。このキューブCBの変形によってキューブCBの上面位置を上昇させ、当該上面の高低差によってボールオブジェクトBLを移動させているが、キューブCBに他の変化を与えてキューブCBを上方へ移動させてもかまわない。例えば、実カメラから得られたカメラ画像に特定色の被写体が含まれている場合、当該特定色の被写体と重なって表示されるキューブCBを上昇移動させたり、当該特定色の被写体と重なって表示されるキューブCBの大きさを拡大させたりしてもよい。この場合でも、キューブCBの上面位置が上昇し、当該上面の高低差によってボールオブジェクトBLを移動させることができる。例えば、重なった特定色の彩度に応じて、キューブCBが上昇する上昇距離や大きさが拡大する拡大率を設定することによって、同様のゲームが可能となる。また、第1のゲーム例において、実カメラから得られたカメラ画像に特定色の被写体が含まれている場合、当該特定色の被写体と重なって表示されるキューブCBを短縮させたり、下降移動させたり、大きさを縮小させたりしてもよい。このキューブCBの変形や移動によってキューブCBの上面位置が下降するため、当該上面の高低差によってボールオブジェクトBLを移動させることが可能となる。このように、上述した第1のゲーム例では、特定色の被写体と重なって表示されるキューブCBを伸縮(伸長/短縮)、昇降(上昇/下降)、拡縮(拡大/縮小)することによって生じる上面の高低差によって、ボールオブジェクトBLを移動させることが可能となる。
【0147】
また、上述した説明では、仮想オブジェクトの形状、位置、および表示態様の少なくとも1つが変化する対象となるカメラ画像における被写体の特定色を、「赤色」を例示したが、他の色や他の属性を特定色として標的オブジェクトが出現する対象としてもかまわない。例えば、緑色、青色、橙色、黄色、紫色、桃色等の他の色相を上記変化の対象となる特定色に設定してもいいし、黒色、灰色、白色等の無彩色を上記変化の対象となる特定色に設定してもよい。また、所定の閾値より明るい色または暗い色(明度が相対的に高い色または低い色)や所定の閾値より純色に近い色または純色から遠い色(彩度が相対的に高い色または低い色)を上記変化の対象となる特定色に設定してもよい。RGB値、色相、彩度、明度等の色情報の少なくとも1つを用いることによって、上記と同様のオブジェクト設定処理が可能となることは言うまでもない。
【0148】
また、実カメラが撮像したカメラ画像における被写体の明暗や色を反転させた画像(ネガ画像)を、上側LCD22に表示してもかまわない。この場合、情報処理部31がカメラ画像データDaに格納されているカメラ画像全体のRGB値をそれぞれ反転させることによって、上記ネガ画像を生成することができる。具体的には、カメラ画像のRGB値が0〜255の値で示される場合、255からRGB値を減算した値をそれぞれのRGB値とする(例えば、RGB値(150,120,60)の場合、RGB値(105,135,195)となる)ことによって、上述したRGB値の反転が可能となる。この場合、ゲーム装置10のプレイヤは、仮想オブジェクトの形状、位置、および表示態様の少なくとも1つが変化させるためには、上側LCD22に表示されたネガ画像において対象となる特定色の補色(例えば、特定色が赤色の場合、青緑色)で撮像されている被写体に重ねることが必要となり、ゲームを進行させる上で新たな思考が必要となる。なお、上側LCD22に表示するカメラ画像は、ボールオブジェクトBLやプレイヤキャラクタPCが特定のキューブCB上に到達したことを契機として、上記ネガ画像へ変化させてもかまわない。
【0149】
また、上述した説明では、カメラ画像を所定サイズのブロックに分割し、ブロック毎にRGB平均値を算出し、当該RGB平均値を用いてキューブCBの現フレームRGB値を算出する例を用いたが、他の単位でRGB平均値を算出してもかまわない。例えば、カメラ画像の画素毎のRGB値を直接用いて、キューブCBの現フレームRGB値を算出してもかまわない。
【0150】
また、上述したゲーム例では、特定色を有する被写体と重なる仮想オブジェクトの形状および表示態様が変化する例と、仮想オブジェクトの位置および表示態様が変化する例とを用いたが、当該仮想オブジェクトの表示態様が変化しなくても同様のゲームが可能であることは言うまでもない。また、特定色を有する被写体と重なる仮想オブジェクトの表示態様のみが変化するゲームも実現することができる。以下、図16Aおよび図16Bを参照して、特定色を有する被写体と重なる仮想オブジェクトの表示態様のみが変化する第4のゲーム例を説明する。なお、図16Aは、第4のゲーム例において、カメラ画像CIに仮想世界画像が合成されて上側LCD22に表示された一例を示す図である。図16Bは、第4のゲーム例において、カメラ画像CIに含まれる青色の被写体と仮想オブジェクトとが重なって表示された様子が上側LCD22に表示された一例を示す図である。
【0151】
図16Aおよび図16Bにおいても、第4のゲーム例では、上側LCD22にゲーム装置10に内蔵する実カメラ(例えば、外側撮像部23)によって撮像された実世界画像であるカメラ画像CIが表示される。例えば、第4のゲーム例では、上側LCD22には、ゲーム装置10に内蔵する実カメラで撮像されたリアルタイムの実世界画像(動画像)が表示される。
【0152】
図16Aにおいて、第4のゲーム例では、複数の固定キューブCBfおよびプレイヤキャラクタPCが配置された仮想世界画像がカメラ画像CIに合成されて上側LCD22に表示される。ここで、複数の固定キューブCBfは、全て仮想世界における基準高さに配置されている。そして、プレイヤキャラクタPCは、固定キューブCBf上を移動可能であり、プレイヤの操作(例えば、十字ボタン14Aやアナログスティック15による操作)に応じて、仮想世界内をゴールまで移動する。一方、複数の固定キューブCBfの間に形成された間隙内に炎を示す炎オブジェクトFが配置されており、プレイヤキャラクタPCは、途中の経路に炎オブジェクトFが配置されている場合、炎オブジェクトFを通過することができない。なお、図16Aに示した一例は、上側LCD22に表示されたカメラ画像CIとして青色以外の被写体(例えば、白い被写体)が撮像されており、炎オブジェクトFが全て当該被写体と重なって表示された場合を示している。
【0153】
図16Bにおいて、上側LCD22に表示されたカメラ画像CIとして青色の被写体が撮像されており、当該青色の被写体と炎オブジェクトFとが重なって表示される。この場合、炎オブジェクトFは、上記青色の被写体と重なることによって炎オブジェクトF上に降雨状態を示す雨オブジェクトWが配置され、やがて炎が雨で消火されるように炎オブジェクトFが段階的に縮小されて消滅して、新たなキューブCBnが出現する。つまり、炎オブジェクトFは、青色の被写体と重なることによって、雨オブジェクトWが上部に付加された後に段階的に縮小して、新たなキューブCBnに表示態様が変化する。これによって、固定キューブCBf上に配置されていた炎オブジェクトFが新たなキューブCBnに変化するため、プレイヤキャラクタPCが当該キューブCBn上を移動可能となる。つまり、ゲーム装置10のプレイヤは、プレイヤキャラクタPCをゴールまで導くために、炎オブジェクトFを消滅させる必要がある場合、当該炎オブジェクトFと重なるように青色の被写体を撮像することによって、当該オブジェクトによる障害をクリアすることができる。なお、上記青色の被写体と重なることによって固定キューブCBfの上に出現した雨オブジェクトWは、当該炎オブジェクトFが消滅することと連動して消滅させてもかまわない。また、炎オブジェクトFが段階的に縮小して消滅し新たなキューブCBnに表示態様を変化させる速度は、炎オブジェクトFと重なって表示されている被写体の彩度または明度によって変化してもかまわないし、予め設定された速度に固定してもかまわない。
【0154】
なお、上述した第4のゲーム例では、仮想オブジェクトが青色の被写体と重なって表示されることによって、その表示態様を変化させる例を用いたが、仮想オブジェクトの表示態様変化に複数の段階が必要であってもかまわない。例えば、草花を示す仮想オブジェクトが青色の被写体と重なることによって当該仮想オブジェクトに水が与えられ、当該仮想オブジェクトをさらに赤色の被写体と重ねることによって当該仮想オブジェクトに日光が当たる。このような複数の段階を経ることによって、草花が育つように当該仮想オブジェクトの表示態様が変化するような例が考えられる。
【0155】
また、プレイヤの操作に応じて仮想世界内を移動するプレイヤキャラクタと特定色を有する被写体とが重なった場合、当該プレイヤキャラクタのパラメータ(例えば、移動速度や跳躍距離等の移動パラメータ)を変化させてもかまわない。例えば、十字ボタン14Aやアナログスティック15による操作に応じて仮想世界内を移動するプレイヤキャラクタと特定色を有する被写体とが重なって表示される場合、同じ移動操作に対してプレイヤキャラクタを相対的に高速移動または低速移動させる。このように、プレイヤキャラクタが特定色を有する被写体と重なった場合、当該プレイヤキャラクタのパラメータを変化させることによって、新たな趣向のゲームが可能となる。
【0156】
また、上述したゲーム例では、特定色を有する被写体と重なる仮想オブジェクトの形状、位置、および表示態様の少なくとも1つが変化するが、カメラ画像と合成する場合に当該被写体と重ならない仮想オブジェクトも変化させてもかまわない。例えば、上側LCD22に表示されたカメラ画像に特定色の被写体が撮像されていれば、上側LCD22に表示された仮想オブジェクトのうち、当該特定色を変化の対象とする仮想オブジェクトの形状、位置、および表示態様の少なくとも1つを変化させてもかまわない。この場合、ゲーム装置10のユーザは、仮想オブジェクトを変化させる場合に当該仮想オブジェクトと特定色の被写体とを重ねて表示させる必要はなく、当該特定色の被写体が少なくとも撮像範囲に含まれるように実カメラで撮像するだけでよい。
【0157】
また、上述した説明では、上側LCD22に、外側撮像部23および内側撮像部24のいずれかから取得したカメラ画像CIが、実世界の平面画像(上述した立体視可能な画像とは反対の意味での平面視の画像)として表示される例を用いたが、裸眼で立体視可能な実世界の画像(立体画像)を上側LCD22に表示してもよい。例えば、上述したように、ゲーム装置10は、外側左撮像部23aおよび外側右撮像部23bから取得したカメラ画像を用いた立体視可能な画像(立体画像)を上側LCD22に表示することが可能である。この場合、上側LCD22に表示された立体画像に含まれる特定色の被写体と仮想オブジェクトとの位置関係に応じて、当該仮想オブジェクトの形状、位置、および表示態様の少なくとも1つが変化するように描画される。
【0158】
例えば、上記立体画像に含まれる特定色の被写体に応じて仮想オブジェクトが変化するように描画する場合、外側左撮像部23aから得られた左目用画像および外側右撮像部23bから得られた右目用画像を用いて、上述した表示制御処理を行う。具体的には、図12に示した表示制御処理において、仮想空間に配置されたキューブCBおよびボールオブジェクトBLを、2つの仮想カメラ(ステレオカメラ)から透視変換することによって、それぞれ左目用仮想世界画像と右目用仮想世界画像とを得る。そして、左目用画像(外側左撮像部23aから得られたカメラ画像)と左目用仮想世界画像とを合成して左目用表示画像を生成し、右目用画像(外側右撮像部23bから得られたカメラ画像)と右目用仮想世界画像とを合成して右目用表示画像を生成し、当該左目用表示画像および当該右目用表示画像を上側LCD22に出力する。
【0159】
また、上述した説明では、ゲーム装置10に内蔵する実カメラで撮像されたリアルタイムの動画像が上側LCD22に表示され、上記実カメラで撮像された動画像(カメラ画像)が仮想世界画像と合成されて表示されるが、本発明において上側LCD22に表示する画像は、様々なバリエーションが考えられる。第1の例として、予め録画された動画像およびテレビジョン放送や他の装置から得られる動画像等が上側LCD22に表示される。この場合、上記動画像が上側LCD22に表示され、当該動画像に特定色の被写体が含まれる場合、当該特定色の被写体に応じて、仮想オブジェクトの形状、位置、および表示態様の少なくとも1つが変化することになる。第2の例として、ゲーム装置10に内蔵する実カメラや他の実カメラから得られた静止画像が上側LCD22に表示される。この場合、実カメラから得られた静止画像が上側LCD22に表示され、当該静止画像に特定色の被写体が含まれる場合、当該特定色の被写体に応じて、仮想オブジェクトの形状、位置、および表示態様の少なくとも1つが変化することになる。ここで、実カメラから得られる静止画像は、ゲーム装置10に内蔵する実カメラでリアルタイムに撮像された実世界の静止画像でもいいし、当該実カメラや他の実カメラで予め撮影された実世界の静止画像でもいいし、テレビジョン放送や他の装置から得られる静止画像でもよい。
【0160】
また、上記実施形態では、上側LCD22がパララックスバリア方式の液晶表示装置であるとして、視差バリアのON/OFFを制御することにより、立体表示と平面表示とを切り替えることができる。他の実施形態では、例えば、上側LCD22としてレンチキュラー方式の液晶表示装置を用いて、立体画像および平面画像を表示可能としてもよい。レンチキュラー方式の場合でも、外側撮像部23で撮像した2つの画像を縦方向に短冊状に分割して交互に配置することで画像が立体表示される。また、レンチキュラー方式の場合でも、内側撮像部24で撮像した1つの画像をユーザの左右の目に視認させることによって、当該画像を平面表示させることができる。すなわち、レンチキュラー方式の液晶表示装置であっても、同じ画像を縦方向に短冊状に分割し、これら分割した画像を交互に配置することにより、ユーザの左右の目に同じ画像を視認させることができる。これにより、内側撮像部24で撮像された画像を平面画像として表示することが可能である。
【0161】
また、上述した実施形態では、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を配設してもかまわない。
【0162】
また、上述した実施例では、ゲーム装置10にタッチパネル13が一体的に設けられているが、ゲーム装置とタッチパネルとを別体にして構成しても、本発明を実現できることは言うまでもない。また、上側LCD22の上面にタッチパネル13を設けて上側LCD22に上述した下側LCD12に表示していた表示画像を表示してもよい。また、本発明を実現する場合に、タッチパネル13が設けられていなくもかまわない。
【0163】
また、上記実施例では、携帯型のゲーム装置10を用いて説明したが、据置型のゲーム装置や一般的なパーソナルコンピュータ等の情報処理装置で本発明の表示制御プログラムを実行して、本発明を実現してもかまわない。この場合、ユーザによって撮像方向や撮像位置を変化させることができる撮像装置を使用し、当該撮像装置から得られる実世界画像を用いれば同様の表示制御処理が実現可能となる。また、他の実施形態では、ゲーム装置に限らず任意の携帯型電子機器、例えば、PDA(Personal Digital Assistant)や携帯電話、パーソナルコンピュータ、カメラ等であってもよい。例えば、携帯電話が、1つのハウジングの主面に表示部と、実カメラとを備えてもよい。
【0164】
また、上述した説明では表示制御処理をゲーム装置10で行う例を用いたが、上記表示制御処理における処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、ゲーム装置10が他の装置(例えば、サーバや他のゲーム装置)と通信可能に構成されている場合、上記表示制御処理における処理ステップは、ゲーム装置10および当該他の装置が協働することによって実行してもよい。一例として、ゲーム装置10において、カメラ画像を設定する処理が行われ、他の装置がゲーム装置10からカメラ画像に関するデータを取得して、ステップ53〜ステップ56の処理を行う。そして、カメラ画像と仮想世界とが合成された表示画像を他の装置から取得して、ゲーム装置10の表示装置(例えば、上側LCD22)に表示することが考えられる。他の例として、他の装置において、カメラ画像を設定する処理が行われ、ゲーム装置10がカメラ画像に関するデータを取得して、ステップ53〜ステップ56の処理を行うことが考えられる。このように、上記画像における処理ステップの少なくとも一部を他の装置で行うことによって、上述した表示制御処理と同様の処理が可能となる。つまり、上述した表示制御処理は、少なくとも1つの情報処理装置により構成される情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施形態においては、ゲーム装置10の情報処理部31が所定のプログラムを実行することによって、上述したフローチャートによる処理が行われたが、ゲーム装置10が備える専用回路によって上記処理の一部または全部が行われてもよい。
【0165】
また、上述したゲーム装置10の形状や、それに設けられている各種操作ボタン14、アナログスティック15、タッチパネル13の形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、上述した表示制御処理で用いられる処理順序、設定値、数式、判定に用いられる値等は、単なる一例に過ぎず他の順序、値、数式であっても、本発明を実現できることは言うまでもない。
【0166】
また、上記表示制御プログラム(ゲームプログラム)は、外部メモリ45やデータ保存用外部メモリ46等の外部記憶媒体を通じてゲーム装置10に供給されるだけでなく、有線または無線の通信回線を通じてゲーム装置10に供給されてもよい。また、上記プログラムは、ゲーム装置10内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープなどでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを記憶する揮発性メモリでもよい。
【0167】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。
【産業上の利用可能性】
【0168】
本発明に係る表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法は、実世界画像を用いて新たな画像を設定して表示制御することが可能であり、各種画像を表示装置に表示する処理等を行う表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法等として有用である。
【符号の説明】
【0169】
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つの画素が含まれているか否かを検出する色検出手段、
前記色検出手段が前記特定の範囲の色情報を有する画素を検出した場合、当該画素が有する色情報に基づいて仮想世界に配置されるオブジェクトの形状、位置、および表示態様の少なくとも1つを変化させるオブジェクト設定手段、および
前記オブジェクト設定手段によって設定されたオブジェクトが少なくとも配置された仮想世界の画像を前記表示装置に表示する画像表示制御手段として機能させる、表示制御プログラム。
【請求項2】
前記撮像画像取得手段によって取得された撮像画像と前記オブジェクトが配置された仮想世界の画像とを合成した合成画像を生成する画像合成手段として、さらに前記コンピュータを機能させ、
前記画像表示制御手段は、前記画像合成手段により生成された合成画像を前記表示装置に表示する、請求項1に記載の表示制御プログラム。
【請求項3】
前記オブジェクト設定手段は、前記画像合成手段が前記撮像画像と前記仮想世界の画像とを合成する場合に、前記特定の範囲の色情報を有する画素と重なって当該撮像画像に合成される前記オブジェクトに対して、当該画素が有する色情報に基づいて当該オブジェクトの形状、位置、および表示態様の少なくとも1つを変化させる、請求項2に記載の表示制御プログラム。
【請求項4】
前記オブジェクト設定手段は、前記画像合成手段が前記撮像画像と前記仮想世界の画像とを合成する場合に、彩度および明度を示す色情報がそれぞれ所定の閾値以上に高く、かつ、色相を示す色情報が所定の範囲内を示す画素と重なって当該撮像画像に合成される前記オブジェクトを、当該画素が有する色情報に基づいて当該オブジェクトの形状、位置、および表示態様の少なくとも1つを変化させる、請求項3に記載の表示制御プログラム。
【請求項5】
前記オブジェクト設定手段は、前記画素と重なって当該撮像画像に合成されるオブジェクトの形状を変化させる形状変化量、当該オブジェクトの位置を変化させる位置変化量、または当該オブジェクトの表示態様を変化させる変化速度を、当該画素の彩度または明度に応じて設定する、請求項3または4に記載の表示制御プログラム。
【請求項6】
前記オブジェクト設定手段が設定するオブジェクトの少なくとも一部と接触しながら仮想世界を移動可能な別の操作対象オブジェクトをさらに仮想世界に配置する操作対象オブジェクト設定手段として、さらに前記コンピュータを機能させ、
前記オブジェクト設定手段は、前記画素と重なって当該撮像画像に合成されるオブジェクトの形状または位置を変化させ、
前記画像表示制御手段は、前記オブジェクト設定手段によって設定されたオブジェクトに加えて、前記操作対象オブジェクト設定手段によって設定された操作対象オブジェクトが配置された仮想世界の画像を前記表示装置に表示する、請求項3に記載の表示制御プログラム。
【請求項7】
前記オブジェクト設定手段は、前記画像合成手段が前記撮像画像と前記仮想世界の画像とを合成する場合に、前記特定の範囲の色情報を有する画素と重ならずに当該撮像画像に合成されるオブジェクトの形状および位置をそれぞれ基準形状および基準位置に設定し、前記特定の範囲の色情報を有する画素と重なって当該撮像画像に合成されるオブジェクトの形状または位置を当該基準形状から変形または当該基準位置から移動させる、請求項6に記載の表示制御プログラム。
【請求項8】
前記操作対象オブジェクト設定手段は、前記オブジェクト設定手段による前記オブジェクトの形状または位置の変化に応じて、前記操作対象オブジェクトを仮想世界内で移動させる、請求項6に記載の表示制御プログラム。
【請求項9】
前記オブジェクト設定手段は、前記特定の範囲の色情報を有する画素と重なって当該撮像画像に合成されるオブジェクトの形状または位置を当該基準形状から上下方向に拡縮するように変形または当該基準位置から昇降移動させ、
前記操作対象オブジェクト設定手段は、前記オブジェクト設定手段が設定する複数のオブジェクトの何れか1つの上面上に前記操作対象オブジェクトを配置し、当該複数のオブジェクトの上面高低差に基づいて当該操作対象オブジェクトを仮想世界内で移動させる、請求項7に記載の表示制御プログラム。
【請求項10】
前記オブジェクト設定手段は、前記画素と重なって当該撮像画像に合成される前記オブジェクトに対して、当該画素が有する色情報に基づいて当該オブジェクトを伸縮させることによって形状を変化させる、請求項3に記載の表示制御プログラム。
【請求項11】
所定の基準位置に固定して仮想世界に複数の固定オブジェクトをさらに設定する固定オブジェクト設定手段として、さらに前記コンピュータを機能させ、
前記オブジェクト設定手段は、前記画像合成手段が前記撮像画像と前記仮想世界の画像とを合成する場合に、前記特定の範囲の色情報を有する画素と重ならずに当該撮像画像に合成されるオブジェクトを前記基準位置の高さとは異なる位置に配置し、前記特定の範囲の色情報を有する画素と重なって当該撮像画像に合成されるオブジェクトを前記基準位置と実質的に同じ高さに配置し、
前記画像表示制御手段は、前記オブジェクト設定手段によって設定されたオブジェクトに加えて、前記固定オブジェクト設定手段によって設定された複数の固定オブジェクトが配置された仮想世界の画像を前記表示装置に表示する、請求項3または4に記載の表示制御プログラム。
【請求項12】
所定の基準位置に固定して仮想世界に複数の固定オブジェクトをさらに設定する固定オブジェクト設定手段として、さらに前記コンピュータを機能させ、
前記オブジェクト設定手段は、前記特定の範囲の色情報を有する画素と重なって当該撮像画像に合成されるオブジェクトを、前記基準位置と実質的に同じ高さで前記複数の固定オブジェクト間の間隙内で往復移動させ、
前記画像表示制御手段は、前記オブジェクト設定手段によって設定されたオブジェクトに加えて、前記固定オブジェクト設定手段によって設定された固定オブジェクトが配置された仮想世界の画像を前記表示装置に表示する、請求項3または4に記載の表示制御プログラム。
【請求項13】
前記基準位置と実質的に同じ高さに配置されたオブジェクトおよび前記固定オブジェクト上を、ユーザの操作に応じて移動可能な別の操作対象オブジェクトをさらに仮想世界に配置する操作対象オブジェクト設定手段として、さらに前記コンピュータを機能させ、
前記画像表示制御手段は、前記オブジェクト設定手段によって設定されたオブジェクトおよび前記固定オブジェクト設定手段によって設定された固定オブジェクトに加えて、前記操作対象オブジェクト設定手段によって設定された操作対象オブジェクトが配置された仮想世界の画像を前記表示装置に表示する、請求項11または12に記載の表示制御プログラム。
【請求項14】
前記色検出手段は、今回取得された撮像画像における色情報を前回の処理で算出された色情報で補間することによって、今回の検出処理で用いる色情報を算出する、請求項1乃至3に記載の表示制御プログラム。
【請求項15】
前記オブジェクト設定手段は、形状、位置、および表示態様の少なくとも1つを変化させる対象となる前記オブジェクトの色を、前記特定の範囲の色情報を有する画素色の補色に設定する、請求項1乃至3に記載の表示制御プログラム。
【請求項16】
前記オブジェクト設定手段が設定する前記オブジェクトを、ユーザの操作に応じて仮想世界内を移動させるオブジェクト移動制御手段として、さらに前記コンピュータを機能させ、
前記オブジェクト設定手段は、前記オブジェクト移動制御手段が移動制御するオブジェクトが前記画素と重なって当該撮像画像に合成される場合、当該画素が有する色情報に基づいて当該オブジェクトを前記オブジェクト移動制御手段が移動させる速度を増減させる、請求項3に記載の表示制御プログラム。
【請求項17】
前記色検出手段は、
前記撮像画像を複数の画素で構成されるブロックに分割するブロック分割手段と、
前記ブロックに属する画素がそれぞれ有するRGB値の平均値を当該ブロック毎に算出するブロックRGB平均値算出手段とを含み、
前記色検出手段は、前記ブロック毎の前記平均値に基づいて、前記特定の範囲の色情報を有する少なくとも1つの画素が含まれているか否かを検出する、請求項1乃至3に記載の表示制御プログラム。
【請求項18】
前記撮像画像取得手段は、前記表示制御装置が利用可能な実カメラによってリアルタイムに撮像された実世界の撮像画像を繰り返し取得し、
前記色検出手段は、前記撮像画像取得手段によって繰り返し取得された撮像画像それぞれにおいて、前記特定の範囲の色情報を有する画素を繰り返し検出し、
前記オブジェクト設定手段は、前記色検出手段が繰り返し検出した色情報に基づいて前記オブジェクトの形状、位置、および表示態様の少なくとも1つを繰り返し変化させ、
前記画像合成手段は、前記撮像画像取得手段によって繰り返し取得された撮像画像それぞれと前記オブジェクトが配置された仮想世界の画像とを合成して繰り返し前記合成画像を生成し、
前記画像表示制御手段は、前記撮像画像取得手段によって繰り返し取得された撮像画像それぞれに前記仮想世界の画像が合成された合成画像を前記表示装置に繰り返し表示する、請求項2または3に記載の表示制御プログラム。
【請求項19】
前記オブジェクト設定手段は、前記画像合成手段が前記撮像画像と前記仮想世界の画像とを合成する場合に、前記特定の範囲の色情報を有する画素と重なって当該撮像画像に合成された後に、さらに当該特定の範囲とは異なる範囲の色情報を有する画素と重なって当該撮像画像に合成される前記オブジェクトの形状、位置、および表示態様の少なくとも1つを変化させる、請求項3に記載の表示制御プログラム。
【請求項20】
表示装置に画像を表示させる表示制御装置であって、
実カメラによって撮像された撮像画像を取得する撮像画像取得手段と、
前記撮像画像取得手段によって取得された撮像画像において、RGB値、色相、彩度、および明度からなる群から選ばれた少なくとも1つを含む色情報に対して特定の範囲の色情報を有する少なくとも1つの画素が含まれているか否かを検出する色検出手段と、
前記色検出手段が前記特定の範囲の色情報を有する画素を検出した場合、当該画素が有する色情報に基づいて仮想世界に配置されるオブジェクトの形状、位置、および表示態様の少なくとも1つを変化させるオブジェクト設定手段と、
前記オブジェクト設定手段によって設定されたオブジェクトが少なくとも配置された仮想世界の画像を前記表示装置に表示する画像表示制御手段とを備える、表示制御装置。
【請求項21】
複数の装置が通信可能に構成され、表示装置に画像を表示させる表示制御システムであって、
実カメラによって撮像された撮像画像を取得する撮像画像取得手段と、
前記撮像画像取得手段によって取得された撮像画像において、RGB値、色相、彩度、および明度からなる群から選ばれた少なくとも1つを含む色情報に対して特定の範囲の色情報を有する少なくとも1つの画素が含まれているか否かを検出する色検出手段と、
前記色検出手段が前記特定の範囲の色情報を有する画素を検出した場合、当該画素が有する色情報に基づいて仮想世界に配置されるオブジェクトの形状、位置、および表示態様の少なくとも1つを変化させるオブジェクト設定手段と、
前記オブジェクト設定手段によって設定されたオブジェクトが少なくとも配置された仮想世界の画像を前記表示装置に表示する画像表示制御手段とを備える、表示制御システム。
【請求項22】
表示装置に画像を表示させる表示制御処理が可能な少なくとも1つの情報処理装置により構成される表示制御システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行される表示制御方法であって、
実カメラによって撮像された撮像画像を取得する撮像画像取得ステップと、
前記撮像画像取得ステップにおいて取得された撮像画像において、RGB値、色相、彩度、および明度からなる群から選ばれた少なくとも1つを含む色情報に対して特定の範囲の色情報を有する少なくとも1つの画素が含まれているか否かを検出する色検出ステップと、
前記色検出ステップにおいて前記特定の範囲の色情報を有する画素を検出した場合、当該画素が有する色情報に基づいて仮想世界に配置されるオブジェクトの形状、位置、および表示態様の少なくとも1つを変化させるオブジェクト設定ステップと、
前記オブジェクト設定ステップにおいて設定されたオブジェクトが少なくとも配置された仮想世界の画像を前記表示装置に表示する画像表示制御ステップとを含む、表示制御方法。

【図1】
image rotate

【図2】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図3C】
image rotate

【図3D】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6A】
image rotate

【図7A】
image rotate

【図7B】
image rotate

【図8A】
image rotate

【図8B】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16A】
image rotate

【図16B】
image rotate

【図6B】
image rotate


【公開番号】特開2012−104023(P2012−104023A)
【公開日】平成24年5月31日(2012.5.31)
【国際特許分類】
【出願番号】特願2010−253821(P2010−253821)
【出願日】平成22年11月12日(2010.11.12)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】