(58)【調査した分野】(Int.Cl.,DB名)
前記イベント発生手段は、前記距離算出手段で算出した前記撮像装置と前記特定対象との距離が所定の距離以下になった場合、前記イベントを発生する、請求項1に記載の情報処理プログラム。
前記イベント発生手段は、前記撮像装置と前記第1特定対象との距離が第1距離以下になった場合、第1イベントを発生し、複数の前記第2特定対象のうち、前記撮像装置との距離が所定の距離以下になった場合、第2イベントを発生する、請求項4に記載の情報処理プログラム。
前記イベント発生手段は、前記第1特定対象が検出された場合に第1イベントを発生し、その後に、複数の前記第2特定対象のうち、前記撮像装置との距離が所定の距離以下になった場合、第2イベントを発生する、請求項4に記載の情報処理プログラム。
前記仮想画像生成手段は、前記イベント発生手段で発生した前記イベントとして前記仮想空間内に配置した所定形状のオブジェクトを前記仮想カメラで撮影することにより前記仮想画像を生成する、請求項1〜6のいずれか1項に記載の情報処理プログラム。
前記仮想画像生成手段は、前記イベント発生手段で発生した前記イベントとして前記仮想空間内に配置した板状のポリゴンにテクスチャをマッピングして、前記仮想カメラで撮影することにより前記仮想画像を生成する、請求項7に記載の情報処理プログラム。
【発明の概要】
【発明が解決しようとする課題】
【0004】
非特許文献1に開示してある技術は、被写体に含まれるマーカを検出し、検出したマーカに対応する位置に仮想オブジェクトを単に表示しているだけに過ぎないので、検出したマーカが複数ある場合、検出したマーカのすべてに仮想オブジェクトが表示されるイベントが発生する可能性があり、ユーザの意図しないイベントが発生してしまうという問題があった。
【0005】
それゆえに、本発明は、検出したマーカ(特定対象)を利用してユーザの意図にあったイベントを発生することが可能な情報処理プログラム、情報処理システム、情報処理装置および情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するために、以下のような構成を採用し得る。
本発明の一構成例に係る情報処理プログラムは、撮像装置および表示装置に接続された情報処理装置のコンピュータを、画像取得手段、特定対象検出手段、距離算出手段、イベント発生手段、仮想画像生成手段、表示制御手段として機能させる。画像取得手段は、撮像装置により撮像した被写体の画像を取得する。特定対象検出手段は、画像取得手段で取得した被写体の画像から特定対象を検出する。距離算出手段は、被写体の画像から撮像装置と特定対象との距離を算出する。イベント発生手段は、距離算出手段で算出した撮像装置と特定対象との距離に応じて仮想空間内にイベントを発生する。仮想画像生成手段は、イベント発生手段で発生するイベントを仮想空間内に配置された仮想カメラで撮影することにより仮想画像を生成する。表示制御手段は、被写体の画像もしくは、表示装置の画面を透過して見える被写体に重ね合わせてユーザに視認されるように、仮想画像を表示装置に表示させる。
【0007】
上記構成例によれば、算出した撮像装置と特定対象との距離に応じて仮想空間内にイベントを発生させることができるので、検出した特定対象を利用してユーザの意図にあったイベントを発生することが可能となる。
【0008】
上記情報処理プログラムのさらに他の構成例として、イベント発生手段は、距離算出手段で算出した撮像装置と特定対象との距離が所定の距離以下になった場合、イベントを発生する。
【0009】
上記構成例によれば、ユーザが撮像装置を特定対象に近付けて、算出した撮像装置と特定対象との距離が所定の距離以下にすることで、ユーザの意図にあったイベントを発生することが可能となる。
【0010】
上記情報処理プログラムのさらに他の構成例として、特定対象は、第1特定対象と、第1特定対象に内包して配置された第2特定対象とを有し、イベント発生手段は、撮像装置と第1特定対象との距離が第1距離以下になった場合、第1イベントを発生し、撮像装置と第2特定対象との距離が第2距離以下になった場合、第2イベントを発生する。
【0011】
上記構成例によれば、撮像装置と第1特定対象との距離、撮像装置と第2特定対象との距離により、ユーザの意図にあったイベントを発生することが可能となる。
【0012】
上記情報処理プログラムのさらに他の構成例として、特定対象は、第1特定対象と、第1特定対象に内包して配置された複数の第2特定対象とを有し、イベント発生手段は、複数の第2特定対象のうち、撮像装置との距離が所定の距離以下になった第2特定対象に応じたイベントを発生する。
【0013】
上記構成例によれば、撮像装置と第2特定対象との距離により、複数の第2特定対象のうちから、特定の第2特定対象を選択することができ、ユーザの意図にあったイベントを発生することが可能となる。
【0014】
上記情報処理プログラムのさらに他の構成例として、イベント発生手段は、撮像装置と第1特定対象との距離が第1距離以下になった場合、第1イベントを発生し、複数の第2特定対象のうち、撮像装置との距離が所定の距離以下になった場合、第2イベントを発生する。
【0015】
上記構成例によれば、撮像装置と第1特定対象との距離、撮像装置と第2特定対象との距離により、ユーザの意図にあったイベントを発生することが可能となる。
【0016】
上記情報処理プログラムのさらに他の構成例として、イベント発生手段は、第1特定対象が検出された場合に第1イベントを発生し、その後に、複数の第2特定対象のうち、撮像装置との距離が所定の距離以下になった場合、第2イベントを発生する。
【0017】
上記構成例によれば、第1特定対象が検出された場合に第1イベントを発生し、その後に、撮像装置を第2特定対象に近付けると第2イベントを発生するので、第1イベントと第2イベントをユーザの意図に沿うように発生することが可能となる。
【0018】
上記情報処理プログラムのさらに他の構成例として、仮想画像生成手段は、イベント発生手段で発生したイベントとして仮想空間内に配置した所定形状のオブジェクトを仮想カメラで撮影することにより仮想画像を生成する。
【0019】
上記構成例によれば、イベントに応じて所定形状のオブジェクトを表示するので、特定対象に対応する位置にオブジェクトを単に表示するだけの場合に比べて、ユーザに拡張現実を実感する視覚効果を十分に与えることができる。
【0020】
上記情報処理プログラムのさらに他の構成例として、仮想画像生成手段は、イベント発生手段で発生したイベントとして仮想空間内に配置した板状のポリゴンにテクスチャをマッピングして、仮想カメラで撮影することにより仮想画像を生成する。
【0021】
上記構成例によれば、仮想空間内に配置した板状のポリゴンにテクスチャ
をマッピングする仮想画像を生成するので、ユーザに拡張現実を実感する視覚効果を十分に与えることができる。
【0022】
上記情報処理プログラムのさらに他の構成例として、情報処理装置は、コンピュータを、被写体の画像から撮像装置と特定対象との位置関係を算出する位置算出手段、および位置算出手段で算出した位置関係に応じて仮想カメラを配置する仮想カメラ配置手段としてさらに機能させる。
【0023】
上記構成例によれば、撮像装置と特定対象との位置関係に応じて配置された仮想カメラで撮像した画像を仮想画像として生成するので、あたかもイベントが実世界で発生しているような表示ができるため、ユーザに拡張現実を実感する視覚効果を十分に与えることができる。
【0024】
本発明の一構成例に係る情報処理装置は、撮像装置および表示装置に接続された情報処理装置であって、画像取得手段と、特定対象検出手段と、距離算出手段と、イベント発生手段と、仮想画像生成手段と、表示制御手段とを備える。画像取得手段は、撮像装置により撮像した被写体の画像を取得する。特定対象検出手段は、画像取得手段で取得した被写体の画像から特定対象を検出する。距離算出手段は、被写体の画像から撮像装置と特定対象との距離を算出する。イベント発生手段は、距離算出手段で算出した撮像装置と特定対象との距離に応じて仮想空間内にイベントを発生する。仮想画像生成手段は、イベント発生手段で発生するイベントを仮想空間内に配置された仮想カメラで撮影することにより仮想画像を生成する。表示制御手段は、被写体の画像もしくは、表示装置の画面を透過して見える被写体に重ね合わせてユーザに視認されるように、仮想画像を表示装置に表示させる。
【0025】
上記構成例によれば、算出した撮像装置と特定対象との距離に応じて仮想空間内にイベントを発生させることができるので、検出した特定対象を利用してユーザの意図にあったイベントを発生することが可能となる。
【0026】
本発明の一構成例に係る情報処理方法は、撮像装置および表示装置に接続された情報処理装置の制御部によって処理される情報処理方法である。制御部が、撮像装置により撮像した被写体の画像を取得するステップと、取得した被写体の画像から特定対象を検出するステップと、被写体の画像から撮像装置と特定対象との距離を算出するためのステップと、算出した撮像装置と特定対象との距離に応じて仮想空間内にイベントを発生するためのステップと、発生するイベントを仮想空間内に配置された仮想カメラで撮影することにより仮想画像を生成するステップと、被写体の画像もしくは、表示装置の画面を透過して見える被写体に重ね合わせてユーザに視認されるように、仮想画像を表示装置に表示させるステップとを含む。
【0027】
上記構成例によれば、算出した撮像装置と特定対象との距離に応じて仮想空間内にイベントを発生させることができるので、検出した特定対象を利用してユーザの意図にあったイベントを発生することが可能となる。
【0028】
本発明の一構成例に係る情報処理システムは、被写体に配置してある特定対象と、被写体を撮像する撮像装置と、撮像装置に接続された情報処理装置と、情報処理装置に接続した表示装置とを備える情報処理システムである。情報処理装置は、撮像装置により撮像した被写体の画像を取得するための画像取得手段と、画像取得手段で取得した被写体の画像から特定対象を検出する特定対象検出手段と、被写体の画像から撮像装置と特定対象との距離を算出するための距離算出手段と、距離算出手段で算出した撮像装置と特定対象との距離に応じて仮想空間内にイベントを発生するためのイベント発生手段と、イベント発生手段で発生するイベントを仮想空間内に配置された仮想カメラで撮影することにより仮想画像を生成する仮想画像生成手段と、被写体の画像もしくは、表示装置の画面を透過して見える被写体に重ね合わせてユーザに視認されるように、仮想画像を表示装置に表示させる表示制御手段とを備える。
【0029】
上記構成例によれば、算出した撮像装置と特定対象との距離に応じて仮想空間内にイベントを発生させることができるので、検出した特定対象を利用してユーザの意図にあったイベントを発生することが可能となる。
【発明の効果】
【0030】
本発明によれば、算出した撮像装置と特定対象との距離に応じて仮想空間内にイベントを発生させることができるので、検出した特定対象を利用してユーザの意図にあったイベントを発生することが可能となる。
【発明を実施するための形態】
【0032】
(ゲーム装置の構成)
以下、本発明の一実施形態に係るゲーム装置について説明する。ゲーム装置10は携帯型のゲーム装置である。
図1は、本発明の実施の形態に係るゲーム装置10の開状態における正面図である。
図2は、本発明の実施の形態に係るゲーム装置10の閉状態における左側面図である。
図3は、本発明の実施の形態に係るゲーム装置10の閉状態における正面図である。
図4は、本発明の実施の形態に係るゲーム装置10の閉状態における右側面図である。
図5は、本発明の実施の形態に係るゲーム装置10の閉状態における背面図である。
【0033】
図1および
図2〜
図5に示されるように、ゲーム装置10は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に接続されている。
【0034】
(下側ハウジングの説明)
図1および
図2〜
図5に示すように、下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12、タッチパネル13、各操作ボタン14A〜14L、アナログスティック15、LED16A〜16B、挿入口17、および、マイクロフォン用孔18が設けられている。
【0035】
タッチパネル13は、下側LCD12の画面上に装着されている。下側ハウジング11の上側面には、タッチペン28を収納するための挿入口17(
図1および
図5に示す点線)が設けられている。
【0036】
下側ハウジング11の内側面(主面)には、十字ボタン(方向入力ボタン)14A、ボタン14B、ボタン14C、ボタン14D、ボタン14E、電源ボタン14F、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lが、設けられている。
【0037】
アナログスティック15は、方向を指示するデバイスである。
下側ハウジング11の内側面には、マイクロフォン用孔18が設けられている。マイクロフォン用孔18の下部に
は音声入力装置としてのマイク42(
図6参照)が設けられている。
【0038】
図3および
図5に示されるように、下側ハウジング11の上側面には、Lボタン14GおよびRボタン14Hが設けられている。また、
図2に示されるように、下側ハウジング11の左側面には、ゲーム装置10が備えるスピーカ43(
図6参照)の音量を調整するための音量ボタン14Iが設けられている。
【0039】
図2に示されるように、下側ハウジング11の左側面には開閉可能なカバー部11Cが設けられている。このカバー部11Cの内側には、ゲーム装置10とデータ保存用外部メモリ45とを電気的に接続するためのコネクタが設けられている。
【0040】
図5に示されるように、下側ハウジング11の上側面には、外部メモリ44を挿入するための挿入口11Dが設けられている。
【0041】
図1および
図4に示されるように、下側ハウジング11の下側面にはゲーム装置10の電源のON/OFF状況をユーザに通知する第1LED16A、下側ハウジング11の右側面にはゲーム装置10の無線通信の確立状況をユーザに通知する第2LED16Bが設けられている。ゲーム装置10は他の機器との間で無線通信を行うことが可能であり、下側ハウジング11の右側面には、この無線通信の機能を有効/無効にする無線スイッチ19が設けられている(
図4参照)。
【0042】
(上側ハウジングの説明)
図1および
図2に示すように、上側ハウジング21には、上側LCD(Liquid Crystal Display:液晶表示装置)22、外側撮像部23(外側撮像部(左)23aおよび外側撮像部(右)23b)、内側撮像部24、3D調整スイッチ25、および、3Dインジケータ26が設けられている。
【0043】
上側LCD22は、立体視可能な画像を表示することが可能な表示装置である。具体的に、上側LCD22は、パララックスバリア方式の裸眼立体視可能な表示装置である。上側LCD22は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像を視認させることにより、ユーザにとって立体感のある画像(立体視画像(3D画像))を表示することができる。また、上側LCD22は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる。このように、上側LCD22は、立体視画像を表示する立体表示モードと、画像を平面的に表示する(平面視画像を表示する)平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、たとえば、後述する3D調整スイッチ25によって行われる。
【0044】
外側撮像部23は、上側ハウジング21の外側面21Dに設けられた2つの撮像部(23aおよび23b)の総称である。外側撮像部(左)23aと外側撮像部(右)23bとは、ゲーム装置10が実行するプログラムによって、ステレオカメラとして使用することが可能である。
【0045】
内側撮像部24は、上側ハウジング21の内側面21Bに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。
【0046】
3D調整スイッチ25は、スライドスイッチであり、上述のように上側LCD22の表示モードを切り替えるために用いられるスイッチである。また、3D調整スイッチ25は、上側LCD22に表示された立体視可能な画像(立体画像)の立体感を調整するために用いられる。3D調整スイッチ25のスライダ25aは、所定方向(上下方向)の任意の位置にスライド可能であり、当該スライダ25aの位置に応じて上側LCD22の表示モードが設定される。また、スライダ25aの位置に応じて、立体画像の見え方が調整される。
【0047】
3Dインジケータ26は、上側LCD22が立体表示モードか否かを示すLEDである。
【0048】
また、上側ハウジング21の内側面には、スピーカ孔21Eが設けられている。後述するスピーカ43からの音声がこのスピーカ孔21Eから出力される。
【0049】
(ゲーム装置10の内部構成)
次に、
図6は、本発明の実施の形態に係るゲーム装置10の内部構成を示すブロック図である。
図6を参照して、ゲーム装置10の内部の電気的構成について説明する。
図6に示すように、ゲーム装置10は、上述した各部に加えて、情報処理部31、メインメモリ32、外部メモリインターフェイス(外部メモリI/F)33、データ保存用外部メモリI/F34、データ保存用内部メモリ35、無線通信モジュール36、ローカル通信モジュール37、リアルタイムクロック(RTC)38、加速度センサ39、電源回路40、およびインターフェイス回路(I/F回路)41等の電子部品を備えている。
【0050】
情報処理部31は、所定のプログラムを実行するためのCPU(Central Processing Unit)311、画像処理を行うGPU(Graphics Processing Unit)312、VRAM(Video RAM)313を含む。CPU311は、ゲーム装置10内のメモリ(たとえば、外部メモリI/F33に接続された外部メモリ44やデータ保存用内部メモリ35)に記憶されているプログラムを実行することによって、当該プログラムに応じた処理を実行する。なお、CPU311によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。GPU312は、CPU311からの命令に応じて画像を生成し、VRAM313に描画する。VRAM313に描画された画像は、上側LCD22及び/又は下側LCD12に出力され、上側LCD22及び/又は下側LCD12に当該画像が表示される。
【0051】
外部メモリI/F33は、外部メモリ44を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリI/F34は、データ保存用外部メモリ45を着脱自在に接続するためのインターフェイスである。
【0052】
メインメモリ32は、情報処理部31(のCPU311)のワーク領域やバッファ領域として用いられる揮発性の記憶装置である。
【0053】
外部メモリ44は、情報処理部31によって実行されるプログラム等を記憶するための不揮発性の記憶装置である。外部メモリ44は、たとえば読み取り専用の半導体メモリで構成される。
【0054】
データ保存用外部メモリ45は、不揮発性の読み書き可能なメモリ(たとえば、NAND型フラッシュメモリ)で構成され、任意のデータを保存するために用いられる。
【0055】
データ保存用内部メモリ35は、読み書き可能な不揮発性メモリ(たとえば、NAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。たとえば、データ保存用内部メモリ35には、無線通信モジュール36を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【0056】
無線通信モジュール36は、たとえばIEEE802.11b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール37は、所定の通信方式(たとえば、独自プロトコルによる通信や、赤外線通信)により同種のゲーム装置との間で無線通信を行う機能を有する。
【0057】
加速度センサ39は、3軸(xyz軸)方向に沿った直線方向の加速度(直線加速度)の大きさを検出する。情報処理部31は、加速度センサ39が検出した加速度を示すデータ(加速度データ)を受信して、ゲーム装置10の姿勢や動きを検出することができる。
【0058】
RTC38は、時間をカウントして情報処理部31に出力する。情報処理部31は、RTC38によって計時された時間に基づき現在時刻(日付)を計算する。電源回路40は、ゲーム装置10が有する電源(充電式電池)からの電力を制御し、ゲーム装置10の各部品に電力を供給する。
【0059】
I/F回路41には、タッチパネル13、マイク42およびスピーカ43が接続される。I/F回路41は、マイク42およびスピーカ43(アンプ)の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部31に出力する。情報処理部31は、タッチ位置データを取得することにより、タッチパネル13に対して入力が行われた位置を知ることができる。
【0060】
操作ボタン14は、上記各操作ボタン14A〜14Lからなり、操作ボタン14から情報処理部31へは、各操作ボタン14A〜14Iに対する入力状況(押下されたか否か)を示す操作データが出力される。
【0061】
下側LCD12および上側LCD22は情報処理部31に接続される。具体的に、情報処理部31は、上側LCD22のLCDコントローラ(図示せず)と接続され、当該LCDコントローラに対して視差バリアのON/OFFを制御する。上側LCD22の視差バリアがONになっている場合、情報処理部31のVRAM313に格納された右目用画像と左目用画像とが、上側LCD22に出力される。より具体的に、LCDコントローラは、右目用画像について縦方向に1ライン分の画素データを読み出す処理と、左目用画像について縦方向に1ライン分の画素データを読み出す処理とを交互に繰り返すことによって、VRAM313から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に1ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側LCD22の画面に表示される。そして、上側LCD22の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側LCD22の画面には立体視可能な画像が表示される。
【0062】
外側撮像部23および内側撮像部24は、情報処理部31の指示に従って画像を撮像し、撮像した画像データを情報処理部31に出力する。
【0063】
3D調整スイッチ25は、スライダ25aの位置に応じた電気信号を情報処理部31に送信する。
【0064】
情報処理部31は、3Dインジケータ26の点灯を制御する。たとえば、情報処理部31は、上側LCD22が立体表示モードである場合、3Dインジケータ26を点灯させる。
【0065】
(ゲームの概要)
次に、
図7〜
図13は、本発明の実施の形態に係るゲーム装置10のゲームプレイ中におけるゲーム画像例を示す図である。
図7〜
図13を参照して、ゲーム装置10において実行されるゲーム1〜ゲーム3の概要を説明する。このゲーム1〜ゲーム3は、ゲームソフトに同梱されているノートに描かれている所定の模様(文字、数字、記号、その他の図柄)のマーカ50を、ゲーム装置10の外側撮像部23で撮像しながらプレイする、拡張現実技術を利用したゲームである。
【0066】
まず、ゲーム装置10において実行されるゲーム1の概要を説明する。
図7に示すゲーム画像例は、ゲーム1の開始直後、マーカ50を検出するときに上側LCD22および下側LCD12に表示されるゲーム画像を示している。
【0067】
上側LCD22には、外側撮像部23によって現在撮像されているノート(被写体)の画像と、ノートに描かれているマーカ50の画像が表示されている。この例では、マーカ50は、ノートの略中央部に配置してある正方形のマーカである。
【0068】
下側LCD12には、マーカ50を検出中であることを示す情報(たとえば、「マーカ検出中」)が表示される。ゲーム装置10がマーカ50を検出することができなかった場合、ゲーム装置10は、下側LCD12に、「マーカを検出することができませんでした。再度マーカを検出する処理を行なってください。」などの情報を表示してもよい。ゲーム装置10がマーカ50を検出することができた場合、ゲーム装置10は、下側LCD12に、「マーカを検出することができました。」などの情報を表示してもよい。
【0069】
ゲーム装置10は、マーカ50を検出している状態で、外側撮像部23とマーカ50との距離を所定の距離(たとえば、所定の距離を10cmとする)以下となるようにノートに対して近づくと、第1イベントを発生する。なお、外側撮像部23とマーカ50との距離が所定の距離以下となっていない場合であっても、マーカ50を検出したときに、第1イベント発生してもよい。発生した第1イベントにより、上側LCD22には、
図8に示すようにマーカ50上に配置されたキャラクタオブジェクト60が表示される。なお、ゲーム装置10は、ゲームを演出するために、上側LCD22のマーカ5
0内の領域において動画を再生してもよい。
【0070】
次に、ゲーム装置10において実行されるゲーム2の概要を説明する。ゲーム2で用いるマーカ50は、外マーカ50a(第1特定対象)と、外マーカ50aに内包して配置された内マーカ50b(第2特定対象)とを有している。この例では、外マーカ50a、および内マーカ50bは、形状が正方形のマーカである。
【0071】
まず、ゲーム装置10は、外側撮像部23によって現在撮像されているノートの画像を取得し、取得したノートの画像から外マーカ50aを検出する。ゲーム装置10は、外マーカ50aを検出している状態で、外側撮像部23と外マーカ50aとの距離を第1距離(たとえば、第1距離を30cmとする)となるようにノートに対して近づくと、第1イベントを発生する。発生した第1イベントにより、上側LCD22には、
図9に示すように内マーカ50b上に配置されたキャラクタオブジェクト60が表示される。なお、ゲーム装置10は、ゲームを演出するために、上側LCD22のマーカ50a内の領域において動画を再生してもよい。
【0072】
ゲーム装置10は、下側LCD12に、ゲームの説明を表示してもよい。たとえば、ゲーム装置10は、下側LCD12に、「もっと、近づいてください。」などの情報を表示する。当該表示は、ユーザを第2イベントに移行させるためのガイドである。
【0073】
そして、ゲーム装置10は、第1イベントの処理が終了した後に、外側撮像部23によって撮像されているノートの画像を取得し、取得したノートの画像から内マーカ50bを検出する。ゲーム装置10は、内マーカ50bを検出している状態で、外側撮像部23と内マーカ50bとの距離を第2距離(たとえば、第2距離を10cmとする)となるようにノートに対して近づくと、第2イベントを発生する。発生した第2イベントにより、上側LCD22には、
図10に示すように内マーカ50b上に配置されたキャラクタオブジェクト60と、キャラクタオブジェクト60の近傍に配置された別のキャラクタオブジェクト61が表示される。
【0074】
なお、ゲーム装置10は、ゲーム2の実行において、外マーカ50aと、内マーカ50bとを別々の処理で検出しているが、本発明はこれに限定されるものではなく、取得したノートの画像から外マーカ50aおよび内マーカ50bを同じ処理で検出してもよい。
【0075】
次に、ゲーム装置10において実行されるゲーム3の概要を説明する。ゲーム3で用いるマーカ50は、外マーカ50aと、外マーカ50aに内包して配置された4つの内マーカ50bとを有している。この例では、外マーカ50a、および4つの内マーカ50bは、形状がすべて正方形のマーカである。
【0076】
まず、
図11に示すゲーム画像例は、ゲーム3の開始直後、外マーカ50aを検出するときに上側LCD22および下側LCD12に表示されるゲーム画像を示している。
【0077】
上側LCD22には、外側撮像部23によって現在撮像されているノートの画像と、ノートに描かれているマーカ50(外マーカ50a、および4つの内マーカ50b)の画像が表示されている。下側LCD12には、マーカ50を検出中であることを示す情報(たとえば、「マーカ検出中」)が表示される。
【0078】
ゲーム装置10は、外側撮像部23によって現在撮像されているノートの画像を取得し、取得したノートの画像から外マーカ50aを検出する。ゲーム装置10は、外マーカ50aを検出することができた場合、第1イベントを発生する。発生した第1イベントにより、上側LCD22には、
図12に示すように4つの内マーカ50bそれぞれの上に配置されたキャラクタオブジェクトA62、キャラクタオブジェクトB63、キャラクタオブジェクトC64、キャラクタオブジェクトD65が表示される。なお、ゲーム装置10は、ゲームを演出するために、上側LCD22のマーカ50a内の領域において動画を再生してもよい。
【0079】
ゲーム装置10は、第1イベントが発生すると、下側LCD12に、ゲームの説明を表示し、ユーザに対してクイズを出題する。ここでは、キャラクタオブジェクトA62、キャラクタオブジェクトB63、キャラクタオブジェクトC64、およびキャラクタオブジェクトD65は、出題されたクイズに対する回答の選択肢となる。ユーザは、キャラクタオブジェクトA62、キャラクタオブジェクトB63、キャラクタオブジェクトC64、およびキャラクタオブジェクトD65のいずれかにゲーム装置10を近づけて、出題したクイズの答えを選択する。そのため、ゲーム装置10は、下側LCD12に、「正解だと思うキャラクタに、ゲーム本体を近づ
けてください。」などの情報を表示する。当該表示は、ユーザを第2イベントに移行させるためのガイドとなる。
【0080】
そして、ゲーム装置10は、第1イベントの処理が終了した後に、外側撮像部23によって撮像されているノートの画像を取得し、取得したノートの画像から内マーカ50bを検出する。ゲーム装置10は、内マーカ50bを検出している状態で、4つの内マーカ50bのうち、外側撮像部23との距離が所定の距離(たとえば、所定の距離を10cmとする)以下となった内マーカ50bに応じた第2イベントを発生する。
【0081】
具体的に、クイズの正解がキャラクタオブジェクトD65の場合、ゲーム装置10は、
図13に示すように、外側撮像部23との距離が所定の距離以下となったキャラクタオブジェクトD65の下に位置する内マーカ50bに、正解を示す解答オブジェクト66を表示する。
【0082】
なお、図示していないが、ゲーム装置10は、外側撮像部23との距離が所定の距離以下となったキャラクタオブジェクトA62、キャラクタオブジェクトB63、およびキャラクタオブジェクトC64の下に位置する内マーカ50bに、不正解を示す解答オブジェクトを表示する。
【0083】
なお、ゲーム装置10は、ゲーム3の実行において、外マーカ50aと、内マーカ50bとを別々の処理で検出しているが、本発明はこれに限定されるものではなく、取得したノートの画像から外マーカ50aおよび内マーカ50bを同じ処理で検出してもよい。
【0084】
(ゲーム装置10の動作)
次に、上記ゲーム3を実行した場合のゲーム装置10の動作についてより詳細に説明する。
【0085】
図14は、本発明の実施の形態に係るゲーム装置10のメインメモリ32のメモリマップを示す概略図である。
【0086】
図14に示すメインメモリ32は、ゲームプログラムD11、動画情報D12、仮想オブジェクト情報D13、左被写体画像D14、右被写体画像D15、仮想カメラ情報D16、左仮想空間画像D17、右仮想空間画像D18などを含む。
【0087】
ゲームプログラムD11は、ゲームの実行に先立って外部メモリ44またはデータ保存用内部メモリ35等から読み出されて、メインメモリ32に格納される。なお、無線通信機能を使ってサーバ装置または他のゲーム装置からゲームプログラムD11を受信して、メインメモリ32に格納してもよい。
【0088】
動画情報D12は、第1イベントなどで表示する動画情報であり、H.264、MPEG−4 AVCなどの動画圧縮規格に基づいて圧縮した動画情報である。
【0089】
仮想オブジェクト情報D13は、仮想空間に配置される各種仮想オブジェクト(キャラクタオブジェクトA62〜キャラクタオブジェクトD65、解答オブジェクト66)に関連する情報であって、仮想オブジェクトの形状、色、模様、位置、姿勢などの情報を含んでいる。
【0090】
左被写体画像D14は、外側撮像部(左)23aによって撮像された被写体の画像であり、右被写体画像D15は、外側撮像部(右)23bによって撮像された被写体の画像である。
【0091】
仮想カメラ情報D16は、立体視画像を生成する際に用いられる一対の仮想カメラ(後述する左仮想カメラおよび右仮想カメラ)に関する情報であって、仮想空間における各仮想カメラの位置や姿勢などの情報を含んでいる。
【0092】
左仮想空間画像D17は、左仮想カメラに基づいて描画された仮想画像であり、右仮想空間画像D18は、右仮想カメラに基づいて描画された仮想画像である。
【0093】
次に、
図15は、本発明の実施の形態に係るゲーム装置10の動作を説明するためのフローチャートである。
図15を参照して、ゲームプログラムD11に基づいてCPU311によって実行されるゲーム処理の流れについて説明する。当該ゲーム処理は、たとえば、外側撮像部23によって被写体を撮像している状態で、操作ボタン14のボタン14Bが押下されたときに開始される。
【0094】
まず、CPU311は、外側撮像部(左)23aおよび外側撮像部(右)23bから、最新の左被写体画像D14および右被写体画像D15を取得して、メインメモリ32に格納する(ステップS11)。
【0095】
次に、CPU311は、取得した被写体の画像から外マーカ50aを検出する(ステップS12)。当該マーカ検出処理では、左被写体画像D14および右被写体画像D15のそれぞれにおける外マーカ50aを検出する。たとえば、左被写体画像D14および右被写体画像D15に対して、それぞれエッジ検出処理とパターンマッチング処理を行うことによって、左被写体画像D14および右被写体画像D15のそれぞれにおける外マーカ50aを検出する。ここで、エッジ検出処理は、左被写体画像D14および右被写体画像D15から、外マーカ50aの輪郭を表す一連のエッジ画素を検出し、一連のエッジ画素に基づいて複数の直線を生成して輪郭の頂点を検出する。
【0096】
外マーカ50aは、
図11に示したように、ノートの略中央部に配置してある正方形のマーカに限定されるものではなく、取得した被写体の画像から検出することができる形状であればいずれの形状であってもよい。また、外マーカ50aは、1つに限定されるものではなく、複数のマーカをノートに配置してあってもよい。
【0097】
次に、CPU311は、マーカ50の4頂点から現実空間における外側撮像部23とマーカ50との位置関係
を算出
し、この算出結果に基づいて、仮想空間における仮想カメラの位置および姿勢
を算出して、現実空間における外側撮像部23と外マーカ50aとの位置関係と仮想カメラと仮想空間内のマーカとの位置関係が対応するように、仮想カメラが設置される(ステップS13)。上記位置関係から仮想カメラの位置を算出する処理は、従来の拡張現実感技術における処理と同様であってもよい。なお、仮想空間における仮想カメラの位置および姿勢
を算出、および仮想カメラを設置する処理は、一定間隔で行われており、後述する各イベントの処理中でも行われている。しかし、以降のフローチャートでは、省略して記載していない場合もあるが、当該処理は、後述する各イベントの処理中を含む一定間隔で行われているものとする。また、このとき、マーカ50bについても同様の処理を行い、現実空間における外側撮像部23と内マーカ50bとの位置関係と仮想カメラと仮想空間内のマーカ50bとの位置関係が対応するように、上記仮想カメラとは別の仮想カメラ
が仮想空間内
に配置されるようにして、後述のステップS17
2において、その仮想カメラが用いられてもよい。
【0098】
次に、CPU311は、外マーカ50aを検出することができたか否かを判断する(ステップS14)。CPU311は、外マーカ50aを検出することができなかったと判断した場合(ステップS14:NO)、処理をステップS12に戻して、取得した被写体の画像から外マーカ50aを検出する処理を継続する。CPU311は、外マーカ50aを検出することができたと判断した場合(ステップS14:YES)、第1イベントを発生する(ステップS15)。
【0099】
次に、発生した第1イベントの処理について説明する。
図16は、本発明の実施の形態に係るゲーム装置10の第1イベントの処理を説明するためのフローチャートである。
【0100】
CPU311は、外マーカ50aの中心を原点とした仮想空間内の当該原点を基準とした所定の位置に、キャラクタオブジェクトA62、キャラクタオブジェクトB63、キャラクタオブジェクトC64、およびキャラクタオブジェクトD65を配置する(ステップS171)。
【0101】
CPU311は、キャラクタオブジェクトA62、キャラクタオブジェクトB63、キャラクタオブジェクトC64、およびキャラクタオブジェクトD65を配置した後、仮想カメラでキャラクタオブジェクトA62、キャラクタオブジェクトB63、キャラクタオブジェクトC64、およびキャラクタオブジェクトD65を含む仮想空間を撮像して仮想空間内の仮想画像を生成する(ステップS172)。具体的に、CPU311は、左仮想カメラに基づいて仮想オブジェクト(キャラクタオブジェクトA62など)を描画することによって左仮想空間画像D17を生成し、右仮想カメラに基づいて仮想オブジェクトを描画することによって右仮想空間画像D18を生成する。なお、仮想空間の描画処理は、典型的には、CPU311の指示に従ってGPU312が行う。
【0102】
CPU311は、仮想画像を生成した後、被写体の画像と仮想画像とを合成し、上側LCD22に表示する(ステップS173)。具体的に、CPU311は、左被写体画像D14に左仮想空間画像D17(すなわち、左仮想カメラに基づいて描画されたキャラクタオブジェクトA62など)を上書きし、右被写体画像D15に右仮想空間画像D18(すなわち、右仮想カメラに基づいて描画されたキャラクタオブジェクトA62など)を上書きする。そして、合成された画像は、上側LCD22に表示される。つまり、CPU311は、左被写体画像D14と左仮想空間画像D17とを合成した画像を左目用画像とし、右被写体画像D15と右仮想空間画像D18とを合成した画像を右目用画像として、上側LCD22に3D画像を表示する。第1イベントの処理は、上側LCD22にキャラクタオブジェクトA62、キャラクタオブジェクトB63、キャラクタオブジェクトC64、およびキャラクタオブジェクトD65を表示することで終了する。
【0103】
なお、CPU311は、メインメモリ32から動画情報D12を読出し、マーカ50内の領域で動画を再生してもよい。具体的に、マーカ50内の領域で動画を再生する方法について説明する。CPU311は、発生した第1イベントに応じて仮想空間内に板状のポリゴンを配置する。CPU311は、配置した板状のポリゴンにテクスチャとして動画情報D12の画像をマッピングすることで仮想画像を生成する。CPU311は、生成した仮想画像を、被写体の画像に重ね合わせてユーザに視認されるように、仮想画像を上側LCD22に順次表示させることで、動画を再生する。
【0104】
図15に戻って、CPU311は、第1イベントの処理が終了した後、外側撮像部(左)23aおよび外側撮像部(右)23bから、最新の左被写体画像D14および右被写体画像D15を取得し、取得した被写体の画像から内マーカ50bを検出する。なお、当該マーカ検出処理でも、外マーカ50aの検出と同様に、左被写体画像D14および右被写体画像D15のそれぞれにおける内マーカ50bを検出する。たとえば、左被写体画像D14および右被写体画像D15に対して、それぞれエッジ検出処理とパターンマッチング処理を行うことによって、左被写体画像D14および右被写体画像D15のそれぞれにおける内マーカ50bを検出する。
【0105】
そして、CPU311は、内マーカ50bを検出することができたか否かを判断する(ステップS16)。CPU311は、内マーカ50bを検出することができなかったと判断した場合(ステップS16:NO)、内マーカ50bを検出する処理を継続する。CPU311は、内マーカ50bを検出することができたと判断した場合(ステップS16:YES)、外側撮像部23と内マーカ50bとの距離を算出し、算出した距離(内マーカ50bとの距離)が所定の距離以下となるか否かを判断する(ステップS17)。
【0106】
CPU311は、外側撮像部23で取得したノートの画像から、外側撮像部23と内マーカ50bとの距離を算出する。具体的に、CPU311は、ノートの画像に占める内マーカ50bの割合から外側撮像部23と内マーカ50bとの距離を算出する。たとえば、CPU311は、ノートの画像に占める内マーカ50bの割合が50%の場合、外側撮像部23と内マーカ50bとの距離が30cmとする。また、CPU311は、ステップS13と同様に外側撮像部23とマーカ50bとの位置関係を算出し、算出した結果に基づいて、外側撮像部23と内マーカ50bとの距離を算出してもよいし、外側撮像部23a、23bで取得した被写体の画像から、公知のステレオカメラに関連する技術を用いて、外側撮像部23と内マーカ50bとの距離を算出してもよい。
【0107】
ゲーム装置10は、第1イベントが発生すると、下側LCD12に、ゲームの説明を表示し、ユーザに対してクイズを出題する。ユーザは、キャラクタオブジェクトA62、キャラクタオブジェクトB63、キャラクタオブジェクトC64、およびキャラクタオブジェクトD65のいずれかにゲーム装置10を近づけて、出題したクイズの答えを選択する。そのため、ゲーム装置10は、外側撮像部23と内マーカ50bとの距離を算出し、算出した距離が所定の距離以下となる内マーカ50bを、ユーザが選択した答えと認識する。
【0108】
CPU311は、算出した距離(内マーカ50bとの距離)が所定の距離より大きいと判断した場合(ステップS17:NO)、処理をステップS16に戻し、内マーカ50bを検出する処理を継続し、外側撮像部23と別の内マーカ50bとの距離を算出する。CPU311は、算出した距離(内マーカ50bとの距離)が所定の距離以下となると判断した場合(ステップS17:YES)、第2イベントを発生する(ステップS18)。
【0109】
つまり、CPU311は、ユーザが選択した答え(所定の距離以下となった内マーカ50b)に応じた解答オブジェクト66を表示する(第2イベント)。
【0110】
次に、発生した第2イベントの処理について説明する。
図17は、本発明の実施の形態に係るゲーム装置10の第2イベントの処理を説明するためのフローチャートである。まず、CPU311は、所定の距離以下となった内マーカ50bに応じた解答オブジェクト66を配置する(ステップS181)。具体的に、クイズの正解がキャラクタオブジェクトD65の場合、CPU311は、外側撮像部23と、キャラクタオブジェクトD65の下に位置する内マーカ50bとの距離を所定の距離以下となると、
図13に示すような正解を示す解答オブジェクト66をキャラクタオブジェクトD65に重ねて配置する。
【0111】
CPU311は、解答オブジェクト66を重ねて配置したキャラクタオブジェクトD65を含む仮想空間を撮像して仮想空間内の仮想画像を生成する(ステップS182)。具体的に、CPU311は、左仮想カメラに基づいて解答オブジェクト66を重ねて配置したキャラクタオブジェクトD65を描画することによって左仮想空間画像D17を生成し、右仮想カメラに基づいて解答オブジェクト66を重ねて配置したキャラクタオブジェクトD65を描画することによって右仮想空間画像D18を生成する。
【0112】
なお、仮想カメラは、第1イベントの処理で配置した仮想カメラを用いることで、再度配置する必要はない。再度仮想カメラを配置する場合、CPU311は、外側撮像部23a,23bとマーカ50との位置関係を再度算出し、再度算出した位置関係に基づいて仮想空間に一対の仮想カメラ(左仮想カメラおよび右仮想カメラ)を再度配置する。
【0113】
CPU311は、仮想画像を生成した後、被写体の画像と仮想画像とを合成し、上側LCD22に表示する(ステップS183)。具体的に、CPU311は、左被写体画像D14に、左仮想カメラに基づいて描画された解答オブジェクト66を重ねて配置したキャラクタオブジェクトD65を上書し、右被写体画像D15に、右仮想カメラに基づいて描画された解答オブジェクト66を重ねて配置したキャラクタオブジェクトD65を上書きすることで、ユーザに、キャラクタオブジェクトD65が正解であることを認識させることができる。なお、同様に、合成された画像は、上側LCD22に表示される。つまり、CPU311は、左被写体画像D14と左仮想空間画像D17とを合成した画像を左目用画像とし、右被写体画像D15と右仮想空間画像D18とを合成した画像を右目用画像として、上側LCD22に3D画像を表示する。
【0114】
図12に戻って、CPU311は、第2イベントの処理を終了した後、ゲームを終了する。なお、CPU311は、ゲームを終了せずに、処理をステップS12に戻して、取得した被写体の画像から外マーカ50aを検出する処理を継続してもよい。
【0115】
以上のように、本発明の実施の形態に係るゲーム装置10は、外側撮像部23により撮像した被写体の画像を取得し、取得した被写体の画像からマーカ50を検出し、外側撮像部23とマーカ50との距離を算出し、算出した距離に応じて仮想空間内にイベントを発生し、発生するイベントを仮想空間内に配置された仮想カメラで撮影することにより仮想画像を生成し、被写体の画像に重ね合わせてユーザに視認されるように、仮想画像を上側LCD22に表示させるので、検出したマーカ50を利用してユーザの意図にあったイベントを発生することが可能となる。
【0116】
(変形例)
また、上記実施形態では、外側撮像部23によって撮像された被写体画像に仮想画像を合成して上側LCD22に表示している(ビデオシースルー方式)が、本発明はこれに限定されるものではない。本発明は、透過型の表示画面に仮想オブジェクトを表示し、当該透過型の表示画面を通じて見える被写体にあたかも仮想オブジェクトが実在するかのようにユーザに視認されるような光学シースルー方式のゲーム装置(たとえば、ヘッドマウントディスプレイを備えるゲーム装置)やゲームシステムにも適用できる。
【0117】
また、上記実施形態では、マーカ検出処理の結果に応じて、左仮想カメラの位置および姿勢と、右仮想カメラの位置および姿勢とを個別に決定しているが、他の実施形態では、マーカ検出処理の結果に応じていずれか一方の仮想カメラの位置および姿勢を決定した後、当該一方の仮想カメラの位置および姿勢から他方の仮想カメラの位置および姿勢を決定するようにしてもよい。
【0118】
また、上記実施形態では、被写体画像に含まれるマーカ50の位置および姿勢に基づいて仮想カメラの位置および姿勢を決定しているが、他の実施形態では、被写体画像に含まれるマーカ50以外の認識対象物(たとえば、顔や、手など)の位置等に応じて仮想カメラの位置等を決定してもよい。
【0119】
また、上記実施形態では、上側LCD22に立体視画像を表示する例を説明したが、本発明はこれに限らず、平面視画像を表示する場合にも本発明は適用できる。たとえば、外側撮像部(左)23aまたは外側撮像部(右)23bのいずれか一方から取得した被写体画像に基づいて仮想空間に1つの仮想カメラを配置して、上記実施形態と同様の処理を行えばよい。
【0120】
また、上記実施形態では、マーカ50が描かれているノートを用いる例を説明したが、本発明はこれに限らず、一般的なクレジットカードや名刺等のサイズのカードにマーカ50が描かれているものを用いる場合にも本発明は適用できる。このとき、マーカ50が描かれているカードを単にマーカと呼ぶようにしてもよい。
【0121】
また、上記実施形態では、ゲームプログラムD11の処理がCPU(CPU311)によって実行される例を説明したが、他の実施形態では、ゲームプログラムD11の少なくとも一部の処理がハードウェアのみによって実現されてもよい。
【0122】
また、上記実施形態では、上記ゲーム例で説明したが、本発明はこれに限らず、マーカ50の形状が変化することでイベントを発生するような任意のゲームに適用可能である。また、本発明はゲームソフトウェアに限らず、任意のアプリケーションソフトウェアにも適用可能である。
【0123】
また、上記実施形態では、携帯型のゲーム装置10について説明したが、他の実施形態では、任意の情報処理装置(据え置き型ゲーム装置、デスクトップパソコン、ノートパソコン、携帯電話など)をゲーム装置またはゲームシステムとして利用してもよい。
【0124】
また、上記実施形態では、ゲームプログラムD11の処理が1つのCPU(CPU311)によって実行される例を説明したが、他の実施形態では、ゲームプログラムD11の処理が複数のプロセッサによって分担して実行されてもよい。また、これらの複数のプロセッサは、同一の情報処理装置に内蔵されていてもよいし、サーバ装置とクライアント装置のように互いに通信可能な複数の情報処理装置に分散して設けられていてもよい。
【0125】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。