説明

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

【課題】多様な画像を表示装置に表示させる。
【解決手段】ゲーム装置は、実オブジェクトを複数の方向から撮影した複数の画像を、撮影方向と対応させて予め記憶装置に記憶している。ゲーム装置は、実空間に配置されたマーカを外側撮像部で撮像し、撮像画像に含まれるマーカを検出する。ゲーム装置は、検出したマーカに基づいて、マーカを基準としたマーカ座標系における外側撮像部の位置を算出する。そして、ゲーム装置は外側撮像部の位置からマーカに向かうベクトルを算出し、当該ベクトルに基づいて、記憶装置に記憶された複数の画像の中から画像を選択して上側LCDに選択した画像を表示する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、表示装置に画像を表示させるための情報処理プログラム、情報処理装置、情報処理システム、および、情報処理方法に関する。
【背景技術】
【0002】
従来、実空間に置かれたカードをカメラで撮像して、当該カードの表示位置に仮想オブジェクトを表示させる装置が存在する。例えば、特許文献1では、装置に接続されたカメラで実空間に置かれたカードを撮像し、撮像した画像に基づいて、実空間におけるカードの姿勢、方向、および、カメラとカードとの距離を算出する。そして、算出した姿勢、方向、および距離に応じて、表示装置に表示する仮想オブジェクトを変化させる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−72667号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載されているように、従来は、仮想オブジェクトを仮想空間に配置して、仮想カメラで撮像することにより、仮想オブジェクトの画像を表示装置に表示させるものであった。
【0005】
それ故、本発明の目的は、新規な方法で多様な画像を表示装置に表示させることが可能な情報処理技術を提供することである。
【課題を解決するための手段】
【0006】
本発明は、上記の課題を解決するために、以下の構成を採用した。
【0007】
本発明は、情報処理装置のコンピュータを、画像取得手段、特定対象検出手段、算出手段、画像選択手段、および、表示制御手段、として機能させる情報処理プログラムである。画像取得手段は、撮像手段によって撮像された撮像画像を取得する。特定対象検出手段は、上記画像取得手段によって取得された撮像画像から特定対象を検出する。算出手段は、上記特定対象と上記撮像手段との一方に対する他方の相対的な姿勢を算出する。画像選択手段は、上記算出手段によって算出された姿勢に基づいて、予め記憶手段に記憶されている複数の画像の中から少なくとも1つの画像を選択する。表示制御手段は、上記画像選択手段によって選択された画像を表示装置に表示させる。
【0008】
上記によれば、撮像手段によって撮像された画像に含まれる特定対象と撮像手段との相対的な姿勢を算出し、当該姿勢に基づいて、予め記憶手段に記憶されている複数の画像(例えば、実オブジェクトの写真や仮想オブジェクトのCG画像等)の中から少なくとも1つの画像を選択して表示することができる。
【0009】
また、本発明の他の形態では、上記記憶手段に記憶されている複数の画像は、所定の対象を複数の方向から見た複数の画像であってもよい。上記画像選択手段は、上記姿勢に応じた画像を上記複数の画像の中から選択する。
【0010】
上記によれば、特定の対象(実オブジェクトや仮想オブジェクト)を複数の方向から見た画像(撮影画像や手書き画像等を含む)を記憶手段に予め記憶しておき、これら複数の画像の中から上記姿勢に基づいて画像を選択して表示することができる。
【0011】
また、本発明の他の形態では、上記算出手段は、上記特定対象および上記撮像手段のうちの一方を基準とした他方の相対的な位置を算出してもよい。上記画像選択手段は、上記算出手段によって算出された位置から上記特定対象と所定の位置関係にある所定の位置への方向、または、当該所定の位置から上記算出手段によって算出された位置への方向に基づいて、上記複数の画像の中から画像を選択する。
【0012】
上記によれば、例えば、特定対象を基準として撮像手段の位置を算出し、当該位置から所定の位置(例えば特定対象の中心)への方向に基づいて、記憶手段に記憶された複数の画像の中から画像を選択することができる。これにより、特定対象を撮像手段で撮像する方向に応じて画像を選択し、当該画像を表示装置に表示することができる。
【0013】
また、本発明の他の形態では、上記表示制御手段は、仮想カメラ設定手段と、配置手段と、画像生成手段とを含んでもよい。仮想カメラ設定手段は、上記算出手段によって算出された位置に基づいて、仮想空間に仮想カメラを設定する。配置手段は、上記選択された画像を示す画像オブジェクトが上記仮想カメラを向くようにして、上記仮想空間に上記画像オブジェクトを配置する。画像生成手段は、上記仮想空間を上記仮想カメラで撮像することによって画像を生成する。そして、上記表示制御手段は、上記画像生成手段によって生成された画像を上記表示装置に表示させる。
【0014】
上記によれば、上記選択された画像を仮想空間に配置して、仮想空間を仮想カメラで撮像することができる。これにより、上記選択された画像を含む画像を生成して、表示装置に表示することができる。
【0015】
また、本発明の他の形態では、上記画像オブジェクトは、上記選択された画像がテクスチャとして貼り付けられた板状のオブジェクトであってもよい。
【0016】
上記によれば、上記選択された画像が貼り付けられた画像オブジェクトを仮想空間に配置して仮想カメラで撮像することにより、上記選択された画像を含む画像を生成することができる。
【0017】
また、本発明の他の形態では、上記仮想空間には所定の仮想オブジェクトが配置されてもよい。上記画像生成手段は、上記仮想オブジェクトと、上記選択された画像とを含む上記仮想空間を上記仮想カメラで撮像することで画像を生成する。
【0018】
上記によれば、仮想オブジェクトと、上記選択された画像とを含む画像を生成して、表示装置に表示することができる。
【0019】
また、本発明の他の形態では、上記配置手段は、上記選択された画像が上記仮想オブジェクトと接触しないように、上記選択された画像を上記仮想空間に配置してもよい。
【0020】
また、本発明の他の形態では、上記算出手段は、上記特定対象および上記撮像手段のうちの一方を基準とした他方の相対的な位置を算出してもよい。上記表示制御手段は、上記選択された画像が上記表示装置に表示された場合の当該画像の大きさが上記算出手段によって算出された位置に応じて変化するように、上記選択された画像を上記表示装置に表示させる。
【0021】
上記によれば、上記選択された画像の表示上の大きさを算出手段によって算出された位置に応じて変化させることができる。例えば、特定対象と撮像手段とが離れている場合、選択された画像を縮小して表示装置に表示することができる。
【0022】
上記によれば、仮想空間に仮想オブジェクトが配置される場合において、当該仮想オブジェクトと選択された画像とを表示装置に表示させる場合に、違和感のない画像を表示することができる。
【0023】
また、本発明の他の形態では、上記表示制御手段は、上記撮像手段によって撮像された撮像画像または上記表示装置の画面を透過して視認される実空間と、上記選択された画像とを重ね合わせて、上記表示装置に表示させてもよい。
【0024】
上記によれば、例えば、上記撮像画像と上記選択された画像とを重ね合わせて表示装置に表示することができる。また、例えば、実空間の光を透過する画面上に選択された画像を重ね合わせることにより、実空間と選択された画像とを重ね合わせて表示することができる。
【0025】
また、本発明の他の形態では、上記撮像手段は、第1撮像部および第2撮像部を含んでもよい。上記算出手段は、上記特定対象と上記第1撮像部との一方に対する他方の相対的な姿勢を示す第1姿勢、および、上記特定対象と上記第2撮像部との一方に対する他方の相対的な姿勢を示す第2姿勢を算出する。上記画像選択手段は、上記算出手段によって算出された第1姿勢に基づいて、上記複数の画像の中から第1画像を選択し、上記算出手段によって算出された第2姿勢に基づいて、上記複数の画像の中から第2画像を選択する。上記表示制御手段は、上記画像選択手段によって選択された第1画像および第2画像を立体視表示可能な表示装置に表示させることにより、当該表示装置に立体視画像を表示させる。
【0026】
上記によれば、第1撮像部の第1姿勢および第2撮像部の第2姿勢に基づいて、第1画像および第2画像を選択し、立体視表示可能な表示装置に表示させることができる。これにより、立体視画像を表示装置に表示することができる。
【0027】
また、本発明の他の形態では、上記複数の画像は、実空間に配置された実オブジェクトを実カメラで撮像した画像であってもよい。
【0028】
上記によれば、実オブジェクトの画像を記憶手段に予め記憶しておき、表示装置に表示させることができる。
【0029】
また、本発明の他の形態では、上記複数の画像は、実空間に配置された実オブジェクトを単眼の実カメラで撮像した画像であってもよい。上記画像選択手段は、上記第1姿勢に基づいて、上記単眼の実カメラで撮影した複数の画像の中から上記第1画像を選択し、上記第2姿勢に基づいて、上記単眼の実カメラで撮影した複数の画像の中から上記第2画像を選択する。
【0030】
上記によれば、単眼の実カメラで撮影した複数の画像を予め記憶しておき、当該複数の画像から2つの画像を選択することにより、立体視画像を表示装置に表示させることができる。
【0031】
また、本発明の他の形態では、上記複数の画像は、仮想空間に配置された仮想オブジェクトを仮想カメラで撮像した画像であってもよい。
【0032】
上記によれば、仮想オブジェクトの画像を記憶手段に予め記憶しておき、表示装置に表示させることができる。
【0033】
また、本発明では、上記各手段を実現した情報処理装置であってもよい。また、本発明では、上記各手段を実現する複数の要素が相互に動作することによって、1つの情報処理システムとして構成されてもよい。当該情報処理システムは、1つの装置によって構成されてもよいし、複数の装置によって構成されてもよい。また、本発明は、上述の各手段によって実行されるステップを含む情報処理方法であってもよい。
【0034】
また、本発明の他の形態では、情報処理装置とマーカを備えた情報処理システムであってもよい。上記情報処理装置は、画像取得手段と、特定対象検出手段と、算出手段と、画像選択手段と、表示制御手段とを備える。画像取得手段は、撮像手段によって撮像された撮像画像を取得する。特定対象検出手段は、上記画像取得手段によって取得された撮像画像から特定対象を検出する。算出手段は、上記特定対象と上記撮像手段との一方に対する他方の相対的な姿勢を算出する。画像選択手段は、上記算出手段によって算出された姿勢に基づいて、予め記憶手段に記憶されている複数の画像の中から少なくとも1つの画像を選択する。表示制御手段は、上記画像選択手段によって選択された画像を表示装置に表示させる。
【発明の効果】
【0035】
本発明によれば、新規な方法で多様な画像を表示装置に表示させることができる。
【図面の簡単な説明】
【0036】
【図1】開状態におけるゲーム装置10の外観を示す正面図
【図2】閉状態におけるゲーム装置10の左側面図、正面図、右側面図、および、背面図
【図3】ゲーム装置10の内部構成を示すブロック図
【図4】所定の実オブジェクト50の一例を示す図
【図5】実オブジェクト50を複数の方向から実カメラで撮影する際に、実カメラの位置を示す図
【図6A】位置P1から実オブジェクト50を撮影した場合に取得される実画像501の一例を示す図
【図6B】位置P2から実オブジェクト50を撮影した場合に取得される実画像502の一例を示す図
【図6C】位置Piから実オブジェクト50を撮影した場合に取得される実画像50iの一例を示す図
【図7】ゲーム装置10に予め記憶される複数の実画像のデータを含む実画像テーブル60を示す図
【図8】ゲーム装置10の外側撮像部23を用いて実空間に配置されたマーカを撮像した場合に、上側LCD22に表示される画像を示す図
【図9】ゲーム装置10の外側撮像部23を用いて実空間に配置されたマーカ52を、図8に示す方向とは異なる方向から撮像した場合に、上側LCD22に表示される画像を示す図
【図10】ゲーム装置10のRAM(メインメモリ32等)のメモリマップを示す図
【図11】本実施形態に係る表示処理の詳細を示すメインフローチャート
【図12】左仮想カメラ画像生成処理(ステップS102)の詳細を示すフローチャート
【図13】マーカ52上に設定されるマーカ座標系と仮想空間に設定される左仮想カメラ63aとの位置関係を示す図
【図14】ステップS203で算出される左仮想カメラ方向ベクトル
【図15】ステップS204で選択された画像61が仮想空間に配置される様子を示す図
【図16】他の実施形態における表示処理の概要を示す図
【発明を実施するための形態】
【0037】
(ゲーム装置の構成)
以下、本発明の一実施形態に係るゲーム装置について説明する。図1は、開状態におけるゲーム装置10の外観を示す正面図である。図2(a)は閉状態におけるゲーム装置10の左側面図であり、図2(b)は閉状態におけるゲーム装置10の正面図であり、図2(c)は閉状態におけるゲーム装置10の右側面図であり、図2(d)は閉状態におけるゲーム装置10の背面図である。ゲーム装置10は携帯型のゲーム装置であり、図1および図2に示すように折り畳み可能に構成されている。図1は、開いた状態(開状態)におけるゲーム装置10を示し、図2は、閉じた状態(閉状態)におけるゲーム装置10を示している。ゲーム装置10は、撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置10は、交換可能なメモリカード内に記憶され、または、サーバや他のゲーム装置から受信したゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラで撮像した画像などのコンピュータグラフィックス処理により生成された画像を画面に表示したりすることができる。
【0038】
まず、図1および図2を参照して、ゲーム装置10の外観構成について説明する。図1および図2に示されるように、ゲーム装置10は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に接続されている。本実施形態では、下側ハウジング11および上側ハウジング21はともに横長の長方形の板状形状であり、互いの長辺部分で回転可能に接続されている。
【0039】
(下側ハウジングの説明)
まず、下側ハウジング11の構成について説明する。図1および図2に示すように、下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12、タッチパネル13、各操作ボタン14A〜14L、アナログスティック15、LED16A〜16B、挿入口17、および、マイクロフォン用孔18が設けられる。以下、これらの詳細について説明する。
【0040】
図1に示すように、下側LCD12は下側ハウジング11に収納される。下側LCD12の画素数は、例えば、320dot×240dot(横×縦)であってもよい。下側LCD12は、後述する上側LCD22とは異なり、画像を(立体視可能ではなく)平面的に表示する表示装置である。なお、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側LCD12として、任意の解像度の表示装置を利用することができる。
【0041】
図1に示されるように、ゲーム装置10は、入力装置として、タッチパネル13を備えている。タッチパネル13は、下側LCD12の画面上に装着されている。なお、本実施形態では、タッチパネル13は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。本実施形態では、タッチパネル13として、下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度が一致している必要はない。また、下側ハウジング11の上側面には挿入口17(図1および図2(d)に示す点線)が設けられている。挿入口17は、タッチパネル13に対する操作を行うために用いられるタッチペン28を収納することができる。なお、タッチパネル13に対する入力は通常タッチペン28を用いて行われるが、タッチペン28に限らずユーザの指でタッチパネル13に対する入力をすることも可能である。
【0042】
各操作ボタン14A〜14Lは、所定の入力を行うための入力装置である。図1に示されるように、下側ハウジング11の内側面(主面)には、各操作ボタン14A〜14Lのうち、十字ボタン14A(方向入力ボタン14A)、ボタン14B、ボタン14C、ボタン14D、ボタン14E、電源ボタン14F、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lが、設けられる。十字ボタン14Aは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン14A〜14E、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lには、ゲーム装置10が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン14Aは選択操作等に用いられ、各操作ボタン14B〜14Eは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン14Fは、ゲーム装置10の電源をオン/オフするために用いられる。
【0043】
アナログスティック15は、方向を指示するデバイスである。アナログスティック15は、そのキートップが、下側ハウジング11の内側面に平行にスライドするように構成されている。アナログスティック15は、ゲーム装置10が実行するプログラムに応じて機能する。例えば、3次元仮想空間に所定のオブジェクトが登場するゲームがゲーム装置10によって実行される場合、アナログスティック15は、当該所定のオブジェクトを3次元仮想空間内で移動させるための入力装置として機能する。この場合において、所定のオブジェクトはアナログスティック15のキートップがスライドした方向に移動される。なお、アナログスティック15として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いても良い。
【0044】
また、下側ハウジング11の内側面には、マイクロフォン用孔18が設けられる。マイクロフォン用孔18の下部には後述する音声入力装置としてのマイク42(図3参照)が設けられ、当該マイク42がゲーム装置10の外部の音を検出する。
【0045】
図2(b)および(d)に示されるように、下側ハウジング11の上側面には、Lボタン14GおよびRボタン14Hが設けられている。Lボタン14GおよびRボタン14Hは、例えば、撮像部のシャッターボタン(撮影指示ボタン)として機能することができる。また、図2(a)に示されるように、下側ハウジング11の左側面には、音量ボタン14Iが設けられる。音量ボタン14Iは、ゲーム装置10が備えるスピーカの音量を調整するために用いられる。
【0046】
図2(a)に示されるように、下側ハウジング11の左側面には開閉可能なカバー部11Cが設けられる。このカバー部11Cの内側には、ゲーム装置10とデータ保存用外部メモリ45とを電気的に接続するためのコネクタ(図示せず)が設けられる。データ保存用外部メモリ45は、コネクタに着脱自在に装着される。データ保存用外部メモリ45は、例えば、ゲーム装置10によって撮像された画像のデータを記憶(保存)するために用いられる。
【0047】
また、図2(d)に示されるように、下側ハウジング11の上側面には、ゲーム装置10とゲームプログラムを記録した外部メモリ44を挿入するための挿入口11Dが設けられ、その挿入口11Dの内部には、外部メモリ44と電気的に着脱自在に接続するためのコネクタ(図示せず)が設けられる。当該外部メモリ44がゲーム装置10に接続されることにより、所定のゲームプログラムが実行される。
【0048】
また、図1および図2(c)に示されるように、下側ハウジング11の下側面にはゲーム装置10の電源のON/OFF状況をユーザに通知する第1LED16A、下側ハウジング11の右側面にはゲーム装置10の無線通信の確立状況をユーザに通知する第2LED16Bが設けられる。ゲーム装置10は他の機器との間で無線通信を行うことが可能であり、第2LED16Bは、無線通信が確立している場合に点灯する。ゲーム装置10は、例えば、IEEE802.11b/gの規格に準拠した方式により、無線LANに接続する機能を有する。下側ハウジング11の右側面には、この無線通信の機能を有効/無効にする無線スイッチ19が設けられる(図2(c)参照)。
【0049】
なお、図示は省略するが、下側ハウジング11には、ゲーム装置10の電源となる充電式電池が収納され、下側ハウジング11の側面(例えば、上側面)に設けられた端子を介して当該電池を充電することができる。
【0050】
(上側ハウジングの説明)
次に、上側ハウジング21の構成について説明する。図1および図2に示すように、上側ハウジング21には、上側LCD(Liquid Crystal Display:液晶表示装置)22、外側撮像部23(外側撮像部(左)23aおよび外側撮像部(右)23b)、内側撮像部24、3D調整スイッチ25、および、3Dインジケータ26が設けられる。以下、これらの詳細について説明する。
【0051】
図1に示すように、上側LCD22は上側ハウジング21に収納される。上側LCD22の画素数は、例えば、800dot×240dot(横×縦)であってもよい。なお、本実施形態では上側LCD22は液晶表示装置であるとしたが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置などが利用されてもよい。また、上側LCD22として、任意の解像度の表示装置を利用することができる。
【0052】
上側LCD22は、立体視可能な画像を表示することが可能な表示装置である。また、本実施例では、実質的に同一の表示領域を用いて左目用画像と右目用画像が表示される。具体的には、左目用画像と右目用画像が所定単位で(例えば、1列ずつ)横方向に交互に表示される方式の表示装置である。または、左目用画像と右目用画像とが時間的に交互に表示され、メガネを用いてユーザの左目に左目用画像が右目に右目用画像が視認される方式の表示装置であってもよい。本実施例では、裸眼立体視可能な表示装置である。そして、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式(視差バリア方式)のものが用いられる。本実施形態では、上側LCD22はパララックスバリア方式のものとする。上側LCD22は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像(立体画像)を表示する。すなわち、上側LCD22は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像を視認させることにより、ユーザにとって立体感のある立体画像(立体視可能な画像)を表示することができる。また、上側LCD22は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる(上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである)。このように、上側LCD22は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する(平面視画像を表示する)平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する3D調整スイッチ25によって行われる。
【0053】
外側撮像部23は、上側ハウジング21の外側面(上側LCD22が設けられた主面と反対側の背面)21Dに設けられた2つの撮像部(23aおよび23b)の総称である。外側撮像部(左)23aと外側撮像部(右)23bの撮像方向は、いずれも当該外側面21Dの外向きの法線方向である。外側撮像部(左)23aと外側撮像部(右)23bとは、ゲーム装置10が実行するプログラムによって、ステレオカメラとして使用することが可能である。外側撮像部(左)23aおよび外側撮像部(右)23bは、それぞれ所定の共通の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0054】
内側撮像部24は、上側ハウジング21の内側面(主面)21Bに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部24は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0055】
3D調整スイッチ25は、スライドスイッチであり、上述のように上側LCD22の表示モードを切り替えるために用いられるスイッチである。また、3D調整スイッチ25は、上側LCD22に表示された立体視可能な画像(立体画像)の立体感を調整するために用いられる。3D調整スイッチ25のスライダ25aは、所定方向(上下方向)の任意の位置にスライド可能であり、当該スライダ25aの位置に応じて上側LCD22の表示モードが設定される。また、スライダ25aの位置に応じて、立体画像の見え方が調整される。具体的には、スライダ25aの位置に応じて、右目用画像および左目用画像の横方向の位置のずれ量が調整される。
【0056】
3Dインジケータ26は、上側LCD22に立体視画像を表示可能か否かを示す。3Dインジケータ26は、LEDであり、上側LCD22に立体視画像を表示可能な場合に点灯する。なお、3Dインジケータ26は、立体視画像を表示するプログラム処理が実行されているときに限り、点灯するようにしてもよい。
【0057】
また、上側ハウジング21の内側面には、スピーカ孔21Eが設けられる。後述するスピーカ43からの音声がこのスピーカ孔21Eから出力される。
【0058】
(ゲーム装置10の内部構成)
次に、図3を参照して、ゲーム装置10の内部の電気的構成について説明する。図3は、ゲーム装置10の内部構成を示すブロック図である。図3に示すように、ゲーム装置10は、上述した各部に加えて、情報処理部31、メインメモリ32、外部メモリインターフェイス(外部メモリI/F)33、データ保存用外部メモリI/F34、データ保存用内部メモリ35、無線通信モジュール36、ローカル通信モジュール37、リアルタイムクロック(RTC)38、加速度センサ39、電源回路40、およびインターフェイス回路(I/F回路)41等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング11(または上側ハウジング21でもよい)内に収納される。
【0059】
情報処理部31は、所定のプログラムを実行するためのCPU(Central Processing Unit)311、画像処理を行うGPU(Graphics Processing Unit)312等を含む情報処理手段である。情報処理部31のCPU311は、ゲーム装置10内のメモリ(例えば外部メモリI/F33に接続された外部メモリ44やデータ保存用内部メモリ35)に記憶されているプログラムを実行することによって、当該プログラムに応じた処理を実行する。なお、情報処理部31のCPU311によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部31は、VRAM(Video RAM)313を含む。情報処理部31のGPU312は、情報処理部31のCPU311からの命令に応じて画像を生成し、VRAM313に描画する。そして、情報処理部31のGPU312は、VRAM313に描画された画像を上側LCD22及び/又は下側LCD12に出力し、上側LCD22及び/又は下側LCD12に当該画像が表示される。
【0060】
情報処理部31には、メインメモリ32、外部メモリI/F33、データ保存用外部メモリI/F34、および、データ保存用内部メモリ35が接続される。外部メモリI/F33は、外部メモリ44を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリI/F34は、データ保存用外部メモリ45を着脱自在に接続するためのインターフェイスである。
【0061】
メインメモリ32は、情報処理部31(のCPU311)のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ32は、上記プログラムに基づく処理に用いられる各種データを一時的に記憶したり、外部(外部メモリ44や他の機器等)から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ32として例えばPSRAM(Pseudo−SRAM)を用いる。
【0062】
外部メモリ44は、情報処理部31によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ44は、例えば読み取り専用の半導体メモリで構成される。外部メモリ44が外部メモリI/F33に接続されると、情報処理部31は外部メモリ44に記憶されたプログラムを読み込むことができる。情報処理部31が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ45は、不揮発性の読み書き可能なメモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ45には、外側撮像部23で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ45がデータ保存用外部メモリI/F34に接続されると、情報処理部31はデータ保存用外部メモリ45に記憶された画像を読み込み、上側LCD22及び/又は下側LCD12に当該画像を表示することができる。
【0063】
データ保存用内部メモリ35は、読み書き可能な不揮発性メモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ35には、無線通信モジュール36を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【0064】
無線通信モジュール36は、例えばIEEE802.11b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール37は、所定の通信方式(例えば独自プロトコルによる通信や、赤外線通信)により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール36およびローカル通信モジュール37は情報処理部31に接続される。情報処理部31は、無線通信モジュール36を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール37を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0065】
また、情報処理部31には、加速度センサ39が接続される。加速度センサ39は、3軸(xyz軸)方向に沿った直線方向の加速度(直線加速度)の大きさを検出する。加速度センサ39は、下側ハウジング11の内部に設けられる。加速度センサ39は、図1に示すように、下側ハウジング11の長辺方向をx軸、下側ハウジング11の短辺方向をy軸、下側ハウジング11の内側面(主面)に対して垂直な方向をz軸として、各軸の直線加速度の大きさを検出する。なお、加速度センサ39は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ39は1軸又は2軸方向を検出する加速度センサであってもよい。情報処理部31は、加速度センサ39が検出した加速度を示すデータ(加速度データ)を受信して、ゲーム装置10の姿勢や動きを検出することができる。
【0066】
また、情報処理部31には、RTC38および電源回路40が接続される。RTC38は、時間をカウントして情報処理部31に出力する。情報処理部31は、RTC38によって計時された時間に基づき現在時刻(日付)を計算する。電源回路40は、ゲーム装置10が有する電源(下側ハウジング11に収納される上記充電式電池)からの電力を制御し、ゲーム装置10の各部品に電力を供給する。
【0067】
また、情報処理部31には、I/F回路41が接続される。I/F回路41には、マイク42およびスピーカ43が接続される。具体的には、I/F回路41には、図示しないアンプを介してスピーカ43が接続される。マイク42は、ユーザの音声を検知して音声信号をI/F回路41に出力する。アンプは、I/F回路41からの音声信号を増幅し、音声をスピーカ43から出力させる。また、タッチパネル13はI/F回路41に接続される。I/F回路41は、マイク42およびスピーカ43(アンプ)の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部31に出力する。タッチ位置データは、タッチパネル13の入力面において入力が行われた位置の座標を示す。なお、タッチパネル制御回路は、タッチパネル13からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。情報処理部31は、タッチ位置データを取得することにより、タッチパネル13に対して入力が行われた位置を知ることができる。
【0068】
操作ボタン14は、上記各操作ボタン14A〜14Lからなり、情報処理部31に接続される。操作ボタン14から情報処理部31へは、各操作ボタン14A〜14Iに対する入力状況(押下されたか否か)を示す操作データが出力される。情報処理部31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に従った処理を実行する。
【0069】
下側LCD12および上側LCD22は情報処理部31に接続される。下側LCD12および上側LCD22は、情報処理部31(のGPU312)の指示に従って画像を表示する。本実施形態では、情報処理部31は、上側LCD22に立体画像(立体視可能な画像)を表示させる。
【0070】
具体的には、情報処理部31は、上側LCD22のLCDコントローラ(図示せず)と接続され、当該LCDコントローラに対して視差バリアのON/OFFを制御する。上側LCD22の視差バリアがONになっている場合、情報処理部31のVRAM313に格納された右目用画像と左目用画像とが、上側LCD22に出力される。より具体的には、LCDコントローラは、右目用画像について縦方向に1ライン分の画素データを読み出す処理と、左目用画像について縦方向に1ライン分の画素データを読み出す処理とを交互に繰り返すことによって、VRAM313から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に1ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側LCD22の画面に表示される。そして、上側LCD22の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側LCD22の画面には立体視可能な画像が表示される。
【0071】
外側撮像部23および内側撮像部24は、情報処理部31に接続される。外側撮像部23および内側撮像部24は、情報処理部31の指示に従って画像を撮像し、撮像した画像データを情報処理部31に出力する。
【0072】
3D調整スイッチ25は、情報処理部31に接続される。3D調整スイッチ25は、スライダ25aの位置に応じた電気信号を情報処理部31に送信する。
【0073】
また、3Dインジケータ26は、情報処理部31に接続される。情報処理部31は、3Dインジケータ26の点灯を制御する。例えば、情報処理部31は、上側LCD22に立体視画像を表示可能な場合、3Dインジケータ26を点灯させる。
【0074】
また、情報処理部31には、角速度センサ46が接続される。角速度センサ46は、各軸(x軸、y軸、z軸)周りの角速度を検出する。ゲーム装置10は、角速度センサ46が逐次検出する角速度に基づいて、実空間におけるゲーム装置10の姿勢を算出することができる。具体的には、ゲーム装置10は、角速度センサ46によって検出された各軸周りの角速度を時間で積分することによって、各軸周りのゲーム装置10の回転角を算出することができる。以上がゲーム装置10の内部構成の説明である。
【0075】
(本実施形態の表示処理の概要)
次に、図4から図9を参照して、本実施形態に係るゲーム装置10において行われる表示処理の概要について説明する。本実施形態においては、実空間に配置された所定の実オブジェクトを予め複数の方向から撮影して保存しておき、当該複数の画像の中から2つの画像を選択して、上側LCD22に当該選択した2つの画像を表示する。選択された2つの画像は、具体的には、視差バリアを介してユーザの左目で視認される画像と、視差バリアを介してユーザの右目で視認される画像である。上側LCD22に2つの画像が表示されることによって、上側LCD22に立体視画像が表示される。
【0076】
図4は、所定の実オブジェクト50の一例を示す図である。所定の実オブジェクトは、、例えば、特定の人物のフィギュアや特定の人物の頭部であってもよい。図4に示すように、例えば実オブジェクト50は、6つの面(面50a〜面50c、および、面50d〜面50f(面50d〜面50fは図示せず))から構成された立方体である。実オブジェクト50の面50aには「1」、面50bには「2」、面50cには「3」の数字が記載されている。また、図4では示されていないが、面50aと対向する面50dには「6」、面50bと対向する面50eには「5」、面50cと対向する面50fには「4」の数字が記載されているものとする。
【0077】
図4に示す実オブジェクト50が複数の方向から実カメラで撮影されて、予めゲーム装置10に記憶される。図5は、実オブジェクト50を複数の方向から実カメラで撮影する際に、実カメラの位置を示す図である。図5に示すように、実オブジェクト50は、実空間の所定位置Oに配置され、実カメラは、当該所定位置Oを中心とする半球上の複数の位置(P1〜Pn)に配置される。そして、実カメラの各位置から所定位置Oに向かう方向に実カメラの撮像方向が設定されて、実オブジェクト50が撮影される。例えば、実カメラが位置P1に配置され、当該実カメラの撮像方向は、位置P1から所定位置O(実オブジェクト50が配置された位置)に向かう方向に設定される。また、実カメラが位置P2に配置され、当該実カメラの撮像方向は、位置P2から所定位置Oに向かう方向に設定される。このようにして複数の位置から実オブジェクト50が撮影されて、当該撮影された複数の画像がゲーム装置10の記憶手段(例えば、外部メモリ44等)に記憶される。なお、実オブジェクト50を撮影する際に、1つの実カメラを用いてもよいし、複数のカメラを用いてもよい。すなわち、1つの実カメラの位置および姿勢を順次変更しながら実オブジェクト50を撮影してもよいし、予め複数の実カメラを異なる位置に配置しておいて、当該複数の実カメラで実オブジェクト50を同時に撮影することによって、複数の画像を同時に取得してもよい。
【0078】
なお、本実施形態では、実カメラの注視点は、実オブジェクト50が置かれる位置O(半球の中心)に設定されるものとするが、他の実施形態では、実カメラの注視点は、実オブジェクト50の中心(立方体の中心)に設定されてもよい。また、図5に示す実カメラが設定される位置は単なる例示であって、実カメラは半球上に等間隔に配置されてもよい。
【0079】
図6Aは、位置P1から実オブジェクト50を撮影した場合に取得される実画像501の一例を示す図である。図6Bは、位置P2から実オブジェクト50を撮影した場合に取得される実画像502の一例を示す図である。図6Cは、位置Piから実オブジェクト50を撮影した場合に取得される実画像50iの一例を示す図である。図6Aに示すように、位置P1から実オブジェクト50を撮影した場合は、面50a、面50b、面50fが見え、その他の面は見えない。また、図6Bに示すように、位置P2から実オブジェクト50を撮影した場合は、面50a、面50bが見え、その他の面は見えない。また、図6Cに示すように、位置Piから実オブジェクト50を撮影した場合は、面50a、面50b、面50cが見え、その他の面は見えない。
【0080】
図7は、ゲーム装置10に予め記憶される複数の実画像のデータを含む実画像テーブル60を示す図である。図7に示すように、ゲーム装置10には、図5に示す半球上の各位置から実オブジェクト50を撮影して得られる画像が複数記憶される。具体的には、図7に示すように、各画像(実画像501〜実画像50n)は、それぞれの画像が撮影された位置および撮像方向ベクトルが関連付けられて、記憶される。撮像方向ベクトルは、実カメラの位置から所定位置O(実オブジェクト50の位置)に向かうベクトル(単位ベクトル)であり、実画像テーブル60に記憶される。なお、実画像テーブル60には、撮像方向ベクトルと実画像とが関連付けられた記憶されていれば良く、実カメラが配置される位置は記憶されなくてもよい。
【0081】
なお、実オブジェクト50を実カメラで撮影すると、撮影された画像には、実オブジェクト50とその背景とが含まれる。すなわち、実カメラで実オブジェクト50を撮影して得られる画像は、通常は、正方形あるいは長方形の画像であり、実オブジェクト50の領域と、実オブジェクト50以外の領域とが含まれる。しかしながら、撮影された画像に含まれる背景の部分は削除されて保存される。このため、実画像テーブル60に記憶される各画像は、実オブジェクト50のみを撮像した画像である。従って、実画像テーブル60に記憶される各画像の形状は、実オブジェクト50の外縁の形状となり、例えば、図6Aに示す画像501は、6角形の形状となる。
【0082】
上述のようにして予め取得された複数の画像が、ゲーム装置10に記憶されていることを前提として、ゲーム装置10の上側LCD22に表示される画像について説明する。図8は、ゲーム装置10の外側撮像部23を用いて実空間に配置されたマーカ52を撮像した場合に、上側LCD22に表示される画像を示す図である。
【0083】
図8に示すように、実空間には、マーカ52が配置される。当該マーカ52は、長方形の紙であって、その中心に矢印が描かれている。マーカ52の中心に描かれた矢印の方向は、マーカ52の長辺と平行である。ゲーム装置10は、外側撮像部23によって撮像された画像に対して、例えばパターンマッチング等の画像処理を行うことによって、当該画像に含まれるマーカ52を検出することができる。図8に示すように、外側撮像部23によって撮像された画像中にマーカ52が検出された場合、上側LCD22には、当該マーカ52の画像上に実オブジェクト50を撮像した画像50xが重ね合わされて表示される。
【0084】
具体的には、図8に示すように、マーカ52の矢印に対して斜めになるようにして当該マーカ52を外側撮像部23で撮像した場合、当該マーカ52の上に実オブジェクト50が置かれているような画像が上側LCD22に表示される。例えば、実オブジェクト50の数字「1」が書かれた面50a、数字「2」が書かれた面50b、および、数字「4」が書かれた面50fが見えるようにして、実オブジェクト50の画像が表示される。
【0085】
実空間に配置されたマーカ52を外側撮像部23で撮像すると、図7に示す実画像テーブル60に予め記憶された複数の画像(実画像501〜実画像50n)の中から、1つの左選択画像、および、1つの右選択画像がそれぞれ選択される。ここで、「左選択画像」は、実画像テーブル60に記憶された実画像501〜実画像50nの中から選択された画像であって、ユーザの左目に視認される画像である。また、「右選択画像」は、実画像テーブル60に記憶された実画像501〜実画像50nの中から選択された画像であって、ユーザの右目に視認される画像である。左選択画像と右選択画像とが上側LCD22に表示されることによって、ユーザが立体的に感じる立体視画像50xが表示される。
【0086】
ゲーム装置10は、外側撮像部(左)23aによって取得された画像に含まれるマーカ52の位置および姿勢に基づいて、実画像テーブル60に記憶された複数の画像の中から、1つの画像を左選択画像として選択する。また、ゲーム装置10は、外側撮像部(右)23bによって取得された画像に含まれるマーカ52の位置および姿勢に基づいて、実画像テーブル60に記憶された複数の画像の中から、1つの画像を右選択画像として選択する。具体的な画像の選択方法については、後述する。
【0087】
図9は、ゲーム装置10の外側撮像部23を用いて実空間に配置されたマーカ52を、図8に示す方向とは異なる方向から撮像した場合に、上側LCD22に表示される画像を示す図である。
【0088】
図9に示すように、外側撮像部23によって撮像された画像中にマーカ52が検出された場合、上側LCD22には、当該マーカ52の画像に実オブジェクト50を撮像した画像50yが重ね合わされて表示される。画像50yは、図8と同様に立体視画像であって、実際には2つの画像を含む。
【0089】
図9に示すように、マーカ52の矢印方向が手前側になるようにして当該マーカ52を配置して外側撮像部23で撮像すると、マーカ52の上に実オブジェクト50が置かれているような画像が上側LCD22に表示される。具体的には、実オブジェクト50の数字「1」が書かれた面50a、および、数字「2」が書かれた面50bが見えるようにして、実オブジェクト50の画像が上側LCD22に表示される。
【0090】
このように、外側撮像部23でマーカ52を撮像した場合、実際には実空間に配置されていない実オブジェクト50が当該マーカ52の画像の上に、表示される。上側LCD22に表示される実オブジェクト50の画像は、実オブジェクト50を実際にカメラで撮影して得られた画像である。このため、ユーザは、実オブジェクト50があたかも実空間に配置されているように感じる。
【0091】
(表示処理の詳細)
次に、図10〜図15を参照して、本実施形態に係る表示処理の詳細について説明する。まず、表示処理の際にメインメモリ32およびVRAM313(以下、これらを総称してRAMと呼ぶことがある)に記憶される主なデータについて説明する。図10は、ゲーム装置10のRAM(メインメモリ32等)のメモリマップを示す図である。図10に示されるように、RAMには、ゲームプログラム70、左カメラ画像71L、右カメラ画像71R、左仮想カメラ行列72L、右仮想カメラ行列72R、左仮想カメラ方向情報73L、右仮想カメラ方向情報73R、実画像テーブルデータ74、左仮想カメラ画像75L、右仮想カメラ画像75R等が記憶される。これらの他、RAMには、ユーザによって行われたボタン操作に関するデータ等が記憶される。
【0092】
ゲームプログラム70は、後述するフローチャートに示される表示処理を情報処理部31(CPU311)に実行させるためのプログラムである。
【0093】
左カメラ画像71Lは、外側撮像部(左)23aによって撮像された画像であり、上側LCD22に表示されてユーザの左目で視認される画像である。右カメラ画像71Rは、外側撮像部(右)23bによって撮像された画像であり、上側LCD22に表示されてユーザの右目で視認される画像である。外側撮像部(左)23aおよび外側撮像部(右)23bは、所定の時間間隔で左カメラ画像71Lおよび右カメラ画像71Rを撮像し、左カメラ画像71Lおよび右カメラ画像71RはRAMに記憶される。
【0094】
左仮想カメラ行列72Lは、マーカ52上に設定されるマーカ座標系を基準とした左仮想カメラ63a(図13参照)の位置および姿勢を示す行列である。右仮想カメラ行列72Rは、マーカ52上に設定されるマーカ座標系を基準とした右仮想カメラ63b(図13参照)の位置および姿勢を示す行列である。左仮想カメラ63aは、仮想空間に配置される仮想カメラであり、実空間におけるマーカ52を基準とした外側撮像部(左)23aの位置および姿勢に対応する、仮想空間上の位置および姿勢で仮想空間に配置される。右仮想カメラ63bは、仮想空間に配置される仮想カメラであり、実空間におけるマーカ52を基準とした外側撮像部(右)23bの位置および姿勢に対応する、仮想空間上の位置および姿勢で仮想空間に配置される。左仮想カメラ63aおよび右仮想カメラ63bは、仮想ステレオカメラ63を構成し、これらの仮想空間上の位置および姿勢は、マーカ座標系の座標値およびマーカ座標系の各軸周りの回転として表わされる。左仮想カメラ63a、右仮想カメラ63b、および、マーカ座標系の設定については、後述する。
【0095】
左仮想カメラ方向情報73Lは、仮想空間における左仮想カメラ63aの位置から仮想空間の所定位置(マーカ座標系の原点)に向かう左仮想カメラ方向ベクトル(図14)を表わす情報である。右仮想カメラ方向情報73Rは、仮想空間における右仮想カメラ63bの位置から仮想空間の所定位置(マーカ座標系の原点)に向かう右仮想カメラ方向ベクトル(図14)を表わす情報である。左仮想カメラ方向ベクトルおよび右仮想カメラ方向ベクトルについては、後述する。
【0096】
実画像テーブルデータ74は、図7に示す実画像テーブル60を示すデータである。具体的には、実画像テーブルデータ74には、実オブジェクト50を撮影した実画像501〜実画像50nの画像データ、および、各画像の撮像方向を示す撮像方向ベクトルが画像毎に予め記憶されている。
【0097】
左仮想カメラ画像75Lは、仮想空間を左仮想カメラ63aで撮像して得られる画像であり、上側LCD22に表示されてユーザの左目に視認される画像である。右仮想カメラ画像75Rは、仮想空間を右仮想カメラ63bで撮像して得られる画像であり、上側LCD22に表示されてユーザの右目に視認される画像である。
【0098】
(フローチャートの説明)
次に、表示処理の詳細について図11を参照して説明する。図11は、本実施形態に係る表示処理の詳細を示すメインフローチャートである。ゲーム装置10の電源が投入されると、ゲーム装置10の情報処理部31(CPU311)は、ROMに記憶されている起動プログラムを実行し、これによってメインメモリ32等の各ユニットが初期化される。次に、不揮発性メモリ(外部メモリ44等;コンピュータ読み取り可能な記憶媒体)に記憶されたゲームプログラム70がRAM(具体的には、メインメモリ32)に読み込まれ、情報処理部31のCPU311によって当該プログラムの実行が開始される。図11のフローチャートに示す処理は、以上の処理が完了した後に情報処理部31(CPU311又はGPU312)によって行われる。
【0099】
なお、図11では、本発明に直接関連しない処理については記載を省略する。また、図11に示すステップS101〜ステップS105の処理は、1フレーム(例えば1/30秒又は1/60秒。フレーム時間という)毎に繰り返し実行される。
【0100】
まず、ステップS101において、情報処理部31は、外側撮像部23によって撮像された画像を取得する。具体的には、情報処理部31は、外側撮像部(左)23aによって撮像された画像を取得して、左カメラ画像71LとしてRAMに保存するとともに、外側Mに保存する。次に、情報処理部31は、ステップS102の処理を実行する。
【0101】
ステップS102において、情報処理部31は、左仮想カメラ画像生成処理を行う。ここでは、左仮想カメラ63aで仮想空間を撮像することによって左仮想カメラ画像75Lを生成する。ステップS102における左仮想カメラ画像生成処理の詳細を、図12を用いて説明する。
【0102】
図12は、左仮想カメラ画像生成処理(ステップS102)の詳細を示すフローチャートである。
【0103】
ステップS201において、情報処理部31は、ステップS101で取得した左カメラ画像71Lからマーカ52を検出する。具体的には、情報処理部31は、例えばパターンマッチング手法等によってステップS101で取得した左カメラ画像71Lに含まれるマーカ52を検出する。情報処理部31は、マーカ52を検出すると、次にステップS202の処理を実行する。なお、ステップS201において情報処理部31がマーカ52を検出しない場合、以降のステップS202〜ステップS206の処理は行われず、情報処理部31は、当該左仮想カメラ画像生成処理を終了する。
【0104】
ステップS202において、情報処理部31は、ステップS201で検出した左カメラ画像71Lに含まれるマーカ52の画像に基づいて、左仮想カメラ63aを仮想空間に設定する。具体的には、情報処理部31は、検出したマーカ52の画像の位置、形状や大きさ、姿勢に基づいて、マーカ52上にマーカ座標系を設定するとともに、実空間のマーカ52と外側撮像部(左)23aとの位置関係を算出する。そして、情報処理部31は、算出した位置関係に応じて、仮想空間における左仮想カメラ63aの位置および姿勢を設定する。
【0105】
図13は、マーカ52上に設定されるマーカ座標系と仮想空間に設定される左仮想カメラ63aとの位置関係を示す図である。図13に示すように、情報処理部31は、左カメラ画像71Lにマーカ52を検出すると、当該マーカ52上にマーカ座標系(XYZ座標系)を設定する。マーカ座標系の原点は、マーカ52の中心に設定される。マーカ座標系のZ軸は、マーカ52の中心からマーカ52に描かれた矢印の方向に設定される。マーカ座標系のX軸は、マーカ52に描かれた矢印方向に対して右向きに設定される。また、マーカ座標系のY軸は、マーカ52に対して垂直上向きに設定される。このように、マーカ52を基準としてマーカ座標系が設定されるため、マーカ座標系によって定義される仮想空間と実空間とが対応づけられる。例えば、実空間のマーカ52の中心は、仮想空間の所定点(マーカ座標系の原点)と対応付けられる。
【0106】
また、情報処理部31は、左カメラ画像71Lに含まれるマーカ52の画像に基づいて、実空間のマーカ52と外側撮像部(左)23aとの位置関係を算出する。マーカ52と外側撮像部(左)23aとの位置関係は、マーカ52を基準とした外側撮像部(左)23aの位置および姿勢である。具体的には、情報処理部31は、左カメラ画像71Lにおけるマーカ52の画像の位置、形状や大きさ、姿勢等に基づいて、マーカ52を基準とした外側撮像部(左)23aの位置および姿勢を示す行列を算出する。そして、情報処理部31は、算出した外側撮像部(左)23aの位置および姿勢と対応するようにして、仮想空間の左仮想カメラ63aの位置および姿勢を設定する。具体的には、情報処理部31は、算出した行列を左仮想カメラ行列72LとしてRAMに記憶する。このようにして左仮想カメラ63aが設定されることにより、実空間の外側撮像部(左)23aの位置および姿勢と仮想空間の左仮想カメラ63aの位置および姿勢とが対応付けられる。図13に示すように、左仮想カメラ行列72Lは、仮想空間におけるマーカ座標系(XYZ座標系)で表わされた座標を、左仮想カメラ座標系(XcaYcaZca座標系)で表わされる座標へと変換するための座標変換行列である。左仮想カメラ座標系は、左仮想カメラ63aの位置を原点とし、左仮想カメラ63aの撮像方向をZca軸、当該Zca軸に対して右向きの方向をXca軸、Zca軸に対して上向きの方向をYca軸とする座標系である。
【0107】
情報処理部31は、ステップS202の処理の後、次にステップS203の処理を実行する。
【0108】
ステップS203において、情報処理部31は、左仮想カメラ63aからマーカ52に向かうベクトルを算出する。具体的には、情報処理部31は、左仮想カメラ63aの位置(左仮想カメラ行列72Lによって表わされる位置)を始点とし、マーカ座標系の原点を終点とする左仮想カメラ方向ベクトルを算出する。図14は、ステップS203で算出される左仮想カメラ方向ベクトルを示す図である。図14に示すように、左仮想カメラ方向ベクトルは、マーカ座標系で示される左仮想カメラ63aの位置からマーカ座標系の原点に向かうベクトルである。そして、情報処理部31は、算出したベクトルを左仮想カメラ方向情報73Lとして、RAMに記憶する。次に、情報処理部31は、ステップS204の処理を実行する。
【0109】
ステップS204において、情報処理部31は、ステップS203で算出したベクトルに基づいて、実画像テーブル60の中から1つの実画像を選択する。具体的には、情報処理部31は、算出したベクトルと、実画像テーブル60の各撮像方向ベクトルとを比較し、算出したベクトルと一致する(または最も近い)ベクトルを選出する。そして、選出したベクトルに対応する画像(実画像501〜実画像50nのうちの1つの画像)を実画像テーブル60の中から選択する。例えば、情報処理部31は、ステップS203で算出したベクトルと、実画像テーブル60の各撮像方向ベクトルとの内積の値を求め、内積の値が最も大きな撮像方向ベクトルを選出し、当該選出した撮像方向ベクトルに対応する画像を選択する。次に、情報処理部31は、ステップS205の処理を実行する。
【0110】
ステップS205において、情報処理部31は、ステップS204で選択された画像を仮想空間に配置する。図15は、ステップS204で選択された画像61が仮想空間に配置される様子を示す図である。
【0111】
図15に示すように、選択された画像61の位置はマーカ座標系の原点に設定される。具体的には、選択された画像61の左右方向の中心であって当該画像の下端は、マーカ座標系の原点に設定される。また、選択された画像61の姿勢は、左仮想カメラ63aの姿勢に応じて設定される。具体的には、当該画像61が左仮想カメラ63a(左仮想カメラ63aのカメラ座標系における原点)を向くように、当該画像61が仮想空間に配置される。仮想空間に配置される画像61は、2次元のオブジェクト(画像オブジェクト)として扱うことができる。当該画像オブジェクトは板状のオブジェクトに選択された画像がテクスチャとして貼り付けられたものである。ステップS204で選択された画像61を示す2次元の画像オブジェクトを左仮想カメラ63aを用いて撮像する際に、当該2次元の画像オブジェクトが正面から撮像されるように、当該画像オブジェクトが仮想空間に配置される。仮に画像オブジェクトが左仮想カメラ63aを向くように配置されない場合、左仮想カメラ63aで仮想空間を撮像すると、当該画像オブジェクトを斜めから撮像することになり、その結果得られる画像は、選択された画像61を斜めから見た画像となってしまう。しかしながら、ステップS205において、選択された画像61を示す2次元の画像オブジェクトが左仮想カメラ63aを向くように仮想空間に配置される。このため、左仮想カメラ63aで仮想空間を撮像して得られる画像は、選択された画像61を正面から見た画像となる。
【0112】
なお、上述のように、実画像テーブル60に記憶されている各画像は、実オブジェクト50のみを撮像した画像(実オブジェクト50以外の背景が除かれた画像)である。このため、図15では、仮想空間に配置された2次元の画像オブジェクトは、正方形あるいは長方形のオブジェクトのように見えるが、実際には、2次元の画像オブジェクトは、実オブジェクト50の外縁の形状となる。すなわち、2次元の画像オブジェクトの形状は、実オブジェクト50を実空間のマーカ52上に実際に配置して外側撮像部(左)23aの位置から当該実オブジェクト50を見たときの、実オブジェクト50の像の外縁形状である。従って、図15に示される画像61は、実際には実オブジェクト50のみ画像である。
【0113】
また、選択された画像61を左仮想カメラ63aに向けるために、選択された画像61を示す2次元の画像オブジェクトの法線と、左仮想カメラ63aの撮像方向とが平行(法線ベクトルと撮像方向ベクトルとの角度が180度)になるように、当該画像オブジェクトが配置されてもよい。また、選択された画像61を左仮想カメラ63aに向けるために、左仮想カメラ63aの位置とマーカ座標系の原点とを結ぶ直線が、上記2次元の画像オブジェクトと垂直に交わるように、当該画像オブジェクトが配置されてもよい。
【0114】
また、予め用意された複数の画像(実画像501〜50n)を撮影する際の実カメラの注視点が、実オブジェクト50の中心に設定されていた場合、選択された画像61の中心がマーカ座標系の原点となるように、選択された画像61が仮想空間に配置されてもよい。
【0115】
情報処理部31は、ステップS205の処理の後、次にステップS206の処理を実行する。
【0116】
ステップS206において、情報処理部31は、仮想空間を左仮想カメラ63aで撮像することにより、左仮想カメラ画像75Lを生成する。情報処理部31は、生成した左仮想カメラ画像75LをRAMに記憶する。ステップS206の処理の後、情報処理部31は、左仮想カメラ画像生成処理を終了する。
【0117】
図11に戻り、情報処理部31は、ステップS103において、右仮想カメラ画像生成処理を実行する。ステップS103の右仮想カメラ画像生成処理は、ステップS102の左仮想カメラ画像生成処理と同様の処理である。ステップS103においては、情報処理部31は、ステップS101で取得した右カメラ画像71Rからマーカ52を検出し、当該マーカ52の画像に基づいて、仮想空間に右仮想カメラ63bを設定する。次に、情報処理部31は、右仮想カメラ63bからマーカ52に向かうベクトル(図14に示す右仮想カメラ方向ベクトル)を算出し、当該ベクトルに基づいて、実画像テーブル60から画像を選択する。そして、情報処理部31は、選択した画像を示す2次元の画像オブジェクトを仮想空間に配置して、仮想空間を右仮想カメラ63bで撮像することにより、右仮想カメラ画像75Rを生成する。情報処理部31は、生成した右仮想カメラ画像75RをRAMに記憶して、ステップS103の処理を終了する。次に、情報処理部31は、ステップS104の処理を実行する。
【0118】
ステップS104において、情報処理部31は、外側撮像部23で撮像した画像と仮想ステレオカメラ63で撮像した画像とを重ね合わせる。具体的には、情報処理部31は、ステップS101で取得した左カメラ画像71Lに、ステップS102で生成した左仮想カメラ画像75Lを重ね合わせて、左重畳画像を生成する。また、情報処理部31は、ステップS101で取得した右カメラ画像71Rに、ステップS103で生成した右仮想カメラ画像75Rを重ね合わせて、右重畳画像を生成する。次に、情報処理部31は、ステップS105の処理を実行する。
【0119】
ステップS105において、情報処理部31は、ステップS104で生成した左重畳画像および右重畳画像を上側LCD22に出力する。左重畳画像は、上側LCD22の視差バリアを介してユーザの左目に視認され、右重畳画像は、上側LCD22の視差バリアを介してユーザの右目に視認される。これにより、上側LCD22には、ユーザが立体的に感じる立体視画像が表示される。以上で、図11に示すフローチャートの説明を終了する。
【0120】
以上のように、本実施形態では、実オブジェクトを複数の方向から撮影した画像が予め用意され、当該容易された複数の画像の中から、ゲーム装置10(外側撮像部23)から見えるマーカ52の姿勢(向き)に応じた画像が選択される。そして、外側撮像部23によって撮像された画像に、選択された画像が重ね合わされて上側LCD22に表示される。これにより、実際には実空間に存在しない実オブジェクトが当該実空間に存在するような感覚をユーザに与えることができる。
【0121】
また、外側撮像部23によって撮像された画像に含まれるマーカ52上に、選択された画像の2次元画像オブジェクトが仮想カメラを向くようにして配置されて、仮想カメラで当該画像オブジェクトを含む仮想空間が撮像される。仮想カメラは、外側撮像部23に対応する位置および姿勢で仮想空間に配置される。これにより、実空間における外側撮像部23とマーカ52との距離に応じて選択された画像の大きさを変化させることができるため、あたかも実空間に実オブジェクトが存在するような感覚をユーザに与えることができる。
【0122】
(変形例)
なお、本実施形態では、予め用意される複数の画像は、実オブジェクト50を実カメラで複数の方向から撮影した画像であるとした。他の実施形態では、予め用意される複数の画像は、3次元仮想オブジェクトを仮想カメラで複数の方向から撮像した画像であってもよい。3次元仮想オブジェクトは、当該仮想オブジェクトの形状や模様を示すモデル情報として、ゲーム装置10に記憶され、ゲーム装置10は、当該仮想オブジェクトを仮想カメラで撮像することにより、仮想オブジェクトの画像を生成することができる。しかしながら、複雑な形状の仮想オブジェクトやポリゴン数が非常に多い仮想オブジェクトを描画する場合、ゲーム装置10の処理負荷が高くなり、描画処理が画面の更新のタイミングに間に合わないことがある。このため、特定の仮想オブジェクトを撮像した画像を予め複数用意して、当該用意された画像の中から表示する画像を選択することで、低負荷で当該仮想オブジェクトの画像を表示することができる。すなわち、所定の撮影対象(当該撮影対象は、実オブジェクトであってもよいし、仮想オブジェクトであってもよい)を複数の方向から撮影して得られた複数の画像が、予め用意されてもよい。
【0123】
また、他の実施形態では、予め用意される複数の画像は、実カメラや仮想カメラで撮影されたもの以外であってもよく、例えば、ユーザが手書きである対象を複数の方向から見た画像を作成してもよい。また、他の実施形態では、予め用意される複数の画像は、特定の実オブジェクト(あるいは仮想オブジェクト)を複数の方向から見た画像である必要はない。例えば、異なる実オブジェクト(あるいは仮想オブジェクト)を撮像した複数の画像が予め用意され、マーカ52を撮像する方向に基づいて、用意された複数の画像の中から画像を選択して、表示してもよい。例えば、ある方向からマーカ52を撮像した場合には、あるオブジェクトが表示され、別の方向からマーカ52を撮像した場合は、別のオブジェクトが表示されてもよい。
【0124】
また、本実施形態では、外側撮像部23で撮像した実画像に、選択された画像を重ね合わせて表示した。他の実施形態では、選択された画像のみを表示してもよい。
【0125】
また、本実施形態では、マーカ52の中心の上に実オブジェクト50の画像を表示した。他の実施形態では、実オブジェクト50は、必ずしもマーカ52の中心に配置される必要はなく、マーカ座標系の所定位置に配置されてもよい。この場合、例えば、左仮想カメラ画像を生成するときは、左仮想カメラ63aの位置から当該所定位置に向かうベクトルが算出され、当該ベクトルに基づいて、予め用意された画像の中から1つの画像が選択される。そして、選択された画像は、上記所定位置に配置され、当該画像は、左仮想カメラ63aを向くように配置される。
【0126】
また、本実施形態では、撮像画像に含まれるマーカ52に基づいて、マーカ52上にマーカ座標系を設定するとともに、当該マーカ座標系における外側撮像部23の位置を算出した。すなわち、本実施形態では、外側撮像部23とマーカ52との一方を基準とした他方の相対的な姿勢および距離を算出した。他の実施形態では、外側撮像部23とマーカ52との相対的な姿勢のみを算出してもよい。すなわち、マーカ52を見ている方向を算出し、当該方向に基づいて、予め記憶された複数の画像の中から1つの画像が選択されてもよい。
【0127】
また、本実施形態では、選択した画像を示す2次元の画像オブジェクトが仮想カメラを向くようにして仮想空間に当該画像を配置し、仮想カメラで当該仮想空間を撮像した。これにより、実オブジェクト50が上側LCD22に表示された場合の実オブジェクト50の大きさが、マーカ52と外側撮像部との相対的な位置に応じて変化するように、実オブジェクト50が表示された。他の実施形態では、他の方法によって、実オブジェクト50の表示上の大きさが変更されるようにしてもよい。例えば、選択した画像は仮想空間に配置されずに、選択された画像のサイズを変更して、変更された画像がそのまま上側LCD22に表示されてもよい。具体的には、例えば、左カメラ画像71Lに含まれるマーカ52の画像の大きさに基づいて、選択された画像のサイズを拡大あるいは縮小し、当該拡大あるいは縮小した画像を左カメラ画像71Lに含まれるマーカ52の画像上に重ね合わせてもよい。そして、当該重ね合わされた画像が上側LCD22に表示されてもよい。
【0128】
図16は、他の実施形態における表示処理の概要を示す図である。図16に示すように、ゲーム装置10は、まず、例えば外側撮像部(左)23aによって撮像された左カメラ画像について、当該左カメラ画像に含まれるマーカ52の画像を検出する。次に、ゲーム装置10は、上述と同様の方法によって、予め用意された複数の画像の中から、1つの画像を選択する。次に、ゲーム装置10は、左カメラ画像に含まれるマーカ52の画像の大きさに基づいて、選択した画像を縮小(あるいは拡大)する。具体的には、ゲーム装置10は、マーカ52の大きさが予め定められた大きさに対してどの程度の比率かを算出し、当該比率に応じて、選択した画像を縮小(あるいは拡大)する。そして、ゲーム装置10は、左カメラ画像に当該縮小(あるいは拡大)した画像を重ね合わせる。この場合、ゲーム装置10は、例えば、当該縮小(あるいは拡大)した画像の中心と、左カメラ画像に含まれるマーカ52の中心とが一致するようにして、2つの画像を重ね合わせる。
【0129】
また、本実施形態では、仮想空間に他の仮想オブジェクトが配置されない例について説明した。他の実施形態では、仮想空間に、複数の仮想オブジェクトが配置され、当該仮想オブジェクト、実空間のマーカ52、および、実オブジェクト50の画像が上側LCD22に表示されてもよい。
【0130】
例えば、地面を示す地面オブジェクトがXZ平面上に配置されてもよい。当該地面オブジェクトは、滑らかな平面であってもよいし、凹凸のある面であってもよい。この場合において、選択された画像は、当該地面オブジェクトに接触しないように配置されてもよい。例えば、選択された画像が地面オブジェクトに接触しないように、選択された画像を地面オブジェクトから浮かせて配置してもよい。あるいは、選択された画像と地面オブジェクトとが接触する部分については、地面オブジェクトを選択された画像よりも優先して描画してもよい。例えば、選択された画像と地面オブジェクトとが接触する部分について、選択された画像を優先して描画すると、表示される画像は、地面に埋まっているはずの実オブジェクトの部分も表示されてしまい、違和感のある画像となることがある。しかしながら、選択された画像が地面オブジェクトに接触しないように配置されたり、接触しても地面オブジェクトを優先的に描画することにより、違和感のない画像を表示することができる。
【0131】
また、例えば、仮想空間に仮想キャラクタを配置し、記憶手段には特定の人物の顔を複数の方向から撮影した写真が記憶され、当該複数の写真の中から1つの写真を選択して、仮想キャラクタの顔を当該選択した写真と置き換えて表示してもよい。この場合において、例えば、仮想キャラクタの胴体が右を向いている場合は、右を向いた顔写真が仮想キャラクタの顔の部分に張り付けられて表示される。また、この場合、仮想空間に配置されたその他の仮想オブジェクト(あるいは当該仮想キャラクタの他の部分(手の部分等))が、仮想キャラクタの顔の部分よりも仮想カメラ側に位置している場合には、当該その他の仮想オブジェクトが優先的に表示される。これにより、現在の実空間と、仮想空間のオブジェクトと、現在は実空間には存在しない実オブジェクトとを融合させた画像を違和感なく表示することができる。
【0132】
また、本実施形態では、平面状で四角形のマーカ52が用いられた。他の実施形態では、どのようなマーカが用いられてもよく、立体形状のマーカ(特定対象)が用いられてもよい。
【0133】
また、本実施形態では、外側撮像部(左)23aによって撮像された左カメラ画像71Lを用いて、外側撮像部(左)23aとマーカ52との位置関係(相対的な姿勢および距離)を算出し、外側撮像部(右)23bによって撮像された右カメラ画像71Rを用いて、外側撮像部(右)23bとマーカ52との位置関係(相対的な姿勢および距離)を算出した。他の実施形態では、どちらか一方の画像(例えば左カメラ画像71L)を用いて、どちらか一方の撮像部(例えば外側撮像部(左)23a)とマーカ52との位置関係を算出してもよい。そして、一方の撮像部とマーカ52との位置関係に基づいて、他方の撮像部(外側撮像部(右)23b)とマーカ52との位置関係を算出してもよい。外側撮像部(左)23aと外側撮像部(右)23bとは、所定の距離だけ離れて、どちらも同じ姿勢でゲーム装置10に固定されている。このため、どちらか一方の撮像部の位置および姿勢が算出されると、他方の撮像部の位置および姿勢も算出することができる。
【0134】
また、本実施形態では、立体視画像を上側LCD22に表示したが、他の実施形態では、平面視画像を上側LCD22あるいは下側LCD12に表示してもよい。例えば、1つの撮像部(外側撮像部23の2つの撮像部のうちの何れか、または、他の1つの撮像部)で実空間のマーカ52を撮像し、当該撮像画像に含まれるマーカ52の姿勢に基づいて、予め記憶された複数の画像の中から1つの画像を選択してもよい。そして、撮像画像に選択した画像を重ね合わせて、上側LCD22に表示してもよい。
【0135】
また、本実施形態では、1つの撮像部によって撮像された画像に含まれるマーカ52の姿勢に基づいて、複数の画像の中から1つの画像を選択して表示した。他の実施形態では、1つの撮像部によって撮像された画像に含まれるマーカ52の姿勢に基づいて、複数の画像の中から1つ以上の画像を選択して表示してもよい。例えば、外側撮像部23の2つの撮像部のうちの何れかによって撮像された画像に基づいて、当該撮像部からマーカ52の中心に向かうベクトルを算出し、当該ベクトルに対応した2つの画像を実画像テーブル60の中から選択する。ここで、選択される2つの画像は、互いに視差を有する画像であって、一方はユーザの左目で視認される画像であり、他方はユーザの右目で視認される画像である。選択された2つの画像が上側LCD22に表示されることで、実オブジェクト50の立体視画像が表示される。また、例えば、上側LCD22には上述のようにして選択された画像を表示し、下側LCD12には上側LCD22に表示される画像とは異なる方向から撮像された画像を表示することにより、異なる方向から撮像された実オブジェクト50の平面視画像を表示してもよい。具体的には、例えば、外側撮像部23のうちの1つの撮像部からマーカ52に向かうベクトルに応じた画像が選択されて上側LCD22に表示されるとともに、当該ベクトルと反対方向のベクトルに応じた画像が選択されて下側LCD12に表示されてもよい。また、1つの撮像部によって撮像された画像に含まれるマーカ52の姿勢に基づいて選択された2つ(あるいはそれ以上)の画像を、1つの表示装置に表示してもよい。例えば、撮像画像に含まれるマーカ52の姿勢に応じた実オブジェクト50を正面から見た画像と、当該実オブジェクト50を右側から見た画像と、当該実オブジェクト50を左側から見た画像とが、1つの表示装置に表示されてもよい。
【0136】
また、本実施形態では、ビデオシースルー方式を用いて拡張現実感を実現した。すなわち、本実施形態では、外側撮像部23によって撮像された画像と、仮想カメラ(左右の仮想カメラ)によって撮像された画像とが重ね合わされて重畳画像が生成され、当該重畳画像が上側LCD22に表示された。他の実施形態では、光学シースルー方式により拡張現実感を実現してもよい。例えば、実空間に配置されたマーカを検出するためのカメラを備えたヘッドマウンドディスプレイをユーザが装着し、ユーザはメガネのレンズ部分に相当するディスプレイ部を通して実空間を視認できるようになっていてもよい。このディプレイ部は、現実空間を透過してユーザの目に直接導くことが可能な素材によって構成されており、さらにコンピュータにより生成した仮想オブジェクトの画像を表示させることができるようになっている。
【0137】
また、他の実施形態では、上述した表示制御方法は、携帯型ゲーム装置に限らず、据置型ゲーム装置や他の任意の電子機器、例えば、PDA(Personal Digital Assistant)や高機能携帯電話、パーソナルコンピュータ等に適用されてもよい。
【0138】
また、本実施形態では、表示装置として裸眼で立体視画像を表示可能なLCDが用いられた。他の実施形態では、眼鏡を用いて立体視画像を表示するような方式(時分割方式や偏向方式、アナグリフ方式(赤青眼鏡方式)など)や、ヘッドマウントディスプレイを用いる方式等においても、本発明は適用可能である。また、他の実施形態では、立体視画像を表示可能なLCDの替わりに平面視画像を表示する表示装置が用いられてもよい。
【0139】
また、他の実施形態では、有線や無線等で通信可能に接続された複数の情報処理装置が各処理を分担して処理することにより、上述した表示制御方法を実現する表示制御システムとして構築されてもよい。例えば、予め用意される複数の画像は、ネットワークを介してゲーム装置10がアクセス可能な記憶装置に記憶されてもよい。また、上記プログラムは、不揮発性メモリに限らず、磁気ディスク、光ディスク等に記憶されてもよく、ネットワークに接続されたサーバ上のRAMに記憶されて、ネットワークを介して当該プログラムが提供されてもよい。
【0140】
また、上記実施形態においては、ゲーム装置10の情報処理部31が所定のプログラムを実行することによって、上述したフローチャートによる処理が行われた。他の実施形態においては、上記処理の一部又は全部は、ゲーム装置10が備える専用回路によって行われてもよい。
【符号の説明】
【0141】
10 ゲーム装置
12 下側LCD
13 タッチパネル
14 操作ボタン
15 アナログスティック
22 上側LCD
23 外側撮像部
23a 外側撮像部(左)
23b 外側撮像部(右)
24 内側撮像部
31 情報処理部
311 CPU
312 GPU
32 メインメモリ
50 実オブジェクト
52 マーカ
60 実画像テーブル
63 仮想ステレオカメラ
63a 左仮想カメラ
63b 右仮想カメラ

【特許請求の範囲】
【請求項1】
情報処理装置のコンピュータを、
撮像手段によって撮像された撮像画像を取得する画像取得手段、
前記画像取得手段によって取得された撮像画像から特定対象を検出する特定対象検出手段、
前記特定対象と前記撮像手段との一方に対する他方の相対的な姿勢を算出する算出手段、
前記算出手段によって算出された姿勢に基づいて、予め記憶手段に記憶されている複数の画像の中から少なくとも1つの画像を選択する画像選択手段、
前記画像選択手段によって選択された画像を表示装置に表示させる表示制御手段、として機能させる、情報処理プログラム。
【請求項2】
前記記憶手段に記憶されている複数の画像は、所定の対象を複数の方向から見た複数の画像であり、
前記画像選択手段は、前記姿勢に応じた画像を前記複数の画像の中から選択する、請求項1に記載の情報処理プログラム。
【請求項3】
前記算出手段は、前記特定対象および前記撮像手段のうちの一方を基準とした他方の相対的な位置を算出し、
前記画像選択手段は、前記算出手段によって算出された位置から前記特定対象と所定の位置関係にある所定の位置への方向、または、当該所定の位置から前記算出手段によって算出された位置への方向に基づいて、前記複数の画像の中から画像を選択する、請求項1または2に記載の情報処理プログラム。
【請求項4】
前記表示制御手段は、
前記算出手段によって算出された位置に基づいて、仮想空間に仮想カメラを設定する仮想カメラ設定手段と、
前記選択された画像を示す画像オブジェクトが前記仮想カメラを向くようにして、前記仮想空間に前記画像オブジェクトを配置する配置手段と、
前記仮想空間を前記仮想カメラで撮像することによって画像を生成する画像生成手段とを含み、
前記表示制御手段は、前記画像生成手段によって生成された画像を前記表示装置に表示させる、請求項3に記載の情報処理プログラム。
【請求項5】
前記画像オブジェクトは、前記選択された画像がテクスチャとして貼り付けられた板状のオブジェクトである、請求項4に記載の情報処理プログラム。
【請求項6】
前記仮想空間には所定の仮想オブジェクトが配置され、
前記画像生成手段は、前記仮想オブジェクトと、前記選択された画像とを含む前記仮想空間を前記仮想カメラで撮像することで画像を生成する、請求項4または5に記載の情報処理プログラム。
【請求項7】
前記配置手段は、前記選択された画像が前記仮想オブジェクトと接触しないように、前記選択された画像を前記仮想空間に配置する、請求項6に記載の情報処理プログラム。
【請求項8】
前記算出手段は、前記特定対象および前記撮像手段のうちの一方を基準とした他方の相対的な位置を算出し、
前記表示制御手段は、前記選択された画像が前記表示装置に表示された場合の当該画像の大きさが前記算出手段によって算出された位置に応じて変化するように、前記選択された画像を前記表示装置に表示させる、請求項1に記載の情報処理プログラム。
【請求項9】
前記表示制御手段は、前記撮像手段によって撮像された撮像画像または前記表示装置の画面を透過して視認される実空間と、前記選択された画像とを重ね合わせて、前記表示装置に表示させる、請求項1から8の何れかに記載の情報処理プログラム。
【請求項10】
前記撮像手段は、第1撮像部および第2撮像部を含み、
前記算出手段は、前記特定対象と前記第1撮像部との一方に対する他方の相対的な姿勢を示す第1姿勢、および、前記特定対象と前記第2撮像部との一方に対する他方の相対的な姿勢を示す第2姿勢を算出し、
前記画像選択手段は、前記算出手段によって算出された第1姿勢に基づいて、前記複数の画像の中から第1画像を選択し、前記算出手段によって算出された第2姿勢に基づいて、前記複数の画像の中から第2画像を選択し、
前記表示制御手段は、前記画像選択手段によって選択された第1画像および第2画像を立体視表示可能な表示装置に表示させることにより、当該表示装置に立体視画像を表示させる、請求項1から9の何れかに記載の情報処理プログラム。
【請求項11】
前記複数の画像は、実空間に配置された実オブジェクトを実カメラで撮像した画像である、請求項1から10の何れかに記載の情報処理プログラム。
【請求項12】
前記複数の画像は、実空間に配置された実オブジェクトを単眼の実カメラで撮像した画像であり、
前記画像選択手段は、前記第1姿勢に基づいて、前記単眼の実カメラで撮影した複数の画像の中から前記第1画像を選択し、前記第2姿勢に基づいて、前記単眼の実カメラで撮影した複数の画像の中から前記第2画像を選択する、請求項10に記載の情報処理プログラム。
【請求項13】
前記複数の画像は、仮想空間に配置された仮想オブジェクトを仮想カメラで撮像した画像である、請求項1から10の何れかに記載の情報処理プログラム。
【請求項14】
撮像手段によって撮像された撮像画像を取得する画像取得手段と、
前記画像取得手段によって取得された撮像画像から特定対象を検出する特定対象検出手段と、
前記特定対象と前記撮像手段との一方に対する他方の相対的な姿勢を算出する算出手段と、
前記算出手段によって算出された姿勢に基づいて、予め記憶手段に記憶されている複数の画像の中から少なくとも1つの画像を選択する画像選択手段と、
前記画像選択手段によって選択された画像を表示装置に表示させる表示制御手段とを備える、情報処理装置。
【請求項15】
撮像手段によって撮像された撮像画像を取得する画像取得手段と、
前記画像取得手段によって取得された撮像画像から特定対象を検出する特定対象検出手段と、
前記特定対象と前記撮像手段との一方に対する他方の相対的な姿勢を算出する算出手段と、
前記算出手段によって算出された姿勢に基づいて、予め記憶手段に記憶されている複数の画像の中から少なくとも1つの画像を選択する画像選択手段と、
前記画像選択手段によって選択された画像を表示装置に表示させる表示制御手段とを備える、情報処理システム。
【請求項16】
撮像手段によって撮像された撮像画像を取得する画像取得ステップと、
前記画像取得ステップで取得された撮像画像から特定対象を検出する特定対象検出ステップと、
前記特定対象と前記撮像手段との一方に対する他方の相対的な姿勢を算出する算出ステップと、
前記算出ステップで算出された姿勢に基づいて、予め記憶手段に記憶されている複数の画像の中から少なくとも1つの画像を選択する画像選択ステップと、
前記画像選択ステップで選択された画像を表示装置に表示させる表示制御手段とを含む、情報処理方法。
【請求項17】
情報処理装置とマーカを備えた情報処理システムであって、
前記情報処理装置は、
撮像手段によって撮像された撮像画像を取得する画像取得手段と、
前記画像取得手段によって取得された撮像画像から特定対象を検出する特定対象検出手段と、
前記特定対象と前記撮像手段との一方に対する他方の相対的な姿勢を算出する算出手段と、
前記算出手段によって算出された姿勢に基づいて、予め記憶手段に記憶されている複数の画像の中から少なくとも1つの画像を選択する画像選択手段と、
前記画像選択手段によって選択された画像を表示装置に表示させる表示制御手段とを備える、情報処理システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6A】
image rotate

【図6B】
image rotate

【図6C】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2012−243147(P2012−243147A)
【公開日】平成24年12月10日(2012.12.10)
【国際特許分類】
【出願番号】特願2011−113860(P2011−113860)
【出願日】平成23年5月20日(2011.5.20)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】