(58)【調査した分野】(Int.Cl.,DB名)
前記配置手段は、前記仮想空間に配置される3次元モデルとの前後関係が表現されるように、前記現実空間画像取得手段で取得した現実空間画像を前記仮想空間に配置することを特徴とする請求項1に記載の情報処理装置。
前記現実空間画像取得手段は、前記撮像装置で前記対象物を含む現実空間を撮像することにより生成された画像から前記対象物を抽出した現実空間画像を取得することを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
前記現実空間画像取得手段は、前記撮像装置で前記対象物を含む現実空間を撮像することにより生成された画像の所定の色を透過することにより、前記対象物を抽出した現実空間画像を生成することを特徴とする請求項4に記載の情報処理装置。
【発明を実施するための形態】
【0014】
以下、図面を参照しながら、本発明の実施形態の一例について説明する。
【0015】
図1は、本発明の実施形態におけるMRシステムのシステム構成の一例を示す図である。MRシステムは、複合現実感(Mixed Reality、以下、MR)をユーザに提供するシステムである。MRシステムは、第1の情報処理装置101、HMD102、光学式センサ104、第2の情報処理装置105、客観カメラ106(撮像装置)とを含む。第1の情報処理装置101にHMD102と光学式センサ104と第2の情報処理装置105とが接続されており、第1の情報処理装置101はこれらと相互にデータ通信可能に有線または無線で接続されている。また、第2の情報処理装置105に客観カメラ106が接続されており、第2の情報処理装置105はこれと相互にデータ通信可能に有線または無線で接続されている。尚、
図1のシステム上に接続される各種端末の構成は一例であり、用途や目的に応じて様々な構成例がある。
【0016】
第1の情報処理装置101は、オペレーティングシステムを搭載する汎用的な装置である。第1の情報処理装置101は、現実空間の画像(以下、現実空間画像)と、仮想空間の画像(以下、仮想空間画像)とを重畳した画像(以下、複合現実画像)を生成し、HMD102に送信する。MRの技術に関しては従来技術を用いるため、詳細な説明は省略する。
【0017】
HMD102は、いわゆるヘッドマウントディスプレイである。HMD102は、ユーザの頭部に装着するディスプレイ装置であり、右目用と左目用のビデオカメラと、右目用と左目用のディスプレイを備えている。HMD102は、HMD102のビデオカメラで撮像された現実空間画像を第1の情報処理装置101に送信する。そして、第1の情報処理装置101から送信されてきた複合現実画像を受信し、ディスプレイに表示する。更に、右目用と左目用のビデオカメラとディスプレイを設けているので、視差によって立体感を得ることができる。尚、HMD102で撮像する現実空間画像、及び表示する複合現実画像は、動画が望ましいが、所定の間隔で撮像された静止画であってもよい。
【0018】
光学式センサ104は、現実空間を撮像し、光学式マーカ103の位置及び姿勢を検出する装置である。本実施形態では、光学式センサ104はHMD102が備える光学式マーカ103を検出し、HMD102の位置及び姿勢を特定する。どのような状況下でも光学式マーカ103を検出できるように、光学式センサ104を部屋の中に複数設置することが望ましい。尚、本実施形態では光学式センサ104とHMD102が備える光学式マーカ103とを用いてHMD102の位置及び姿勢を示す情報を取得するが、HMD102の位置及び姿勢が検出できればどのような形態でも構わない。例えば、磁気センサを用いてもよいし、HMD102で撮像された映像を解析して位置及び姿勢を特定してもよい。
【0019】
第2の情報処理装置105は、オペレーティングシステムを搭載する汎用的な装置である。第2の情報処理装置105は、第1の情報処理装置101が管理している仮想空間と同じ仮想空間を管理している。また、第1の情報処理装置101から取得したHMD102の位置を示す情報に応じて、客観カメラ106で撮像された現実空間画像を仮想空間に配置する。
【0020】
客観カメラ106は、現実空間を撮像する装置である。客観カメラ106で撮像した現実空間画像は、第2の情報処理装置105に送信する。尚、本実施形態においては、現実空間画像は動画が望ましいが、所定の間隔で撮像された静止画であってもよい。また、本実施形態における客観カメラ106は、単眼のカメラであり、更に所定の位置に固定されている。
【0021】
図2は、第1の情報処理装置101のハードウェア構成を示す図である。尚、
図2の第1の情報処理装置101のハードウェアの構成は一例であり、用途や目的に応じて様々な構成例がある。
【0022】
CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。
【0023】
また、ROM202あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / OutputSystem)やオペレーティングシステムや、各種装置の実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。RAM203は、CPU201の主メモリ、ワークエリア等として機能する。
【0024】
CPU201は、処理の実行に際して必要なプログラム等をRAM203にロードして、プログラムを実行することで各種動作を実現するものである。
【0025】
また、入力コントローラ(入力C)205は、キーボードやマウス等のポインティングデバイス(入力デバイス210)からの入力を制御する。
【0026】
ビデオコントローラ(VC)206は、HMD102が備える右目・左目ディスプレイ222等の表示器への表示を制御する。右目・左目ディスプレイ222に対しては、例えば外部出力端子(例えば、Digital Visual Interface)を用いて出力される。また、右目・左目ディスプレイ222は、右目用のディスプレイと左目用のディスプレイとから構成されている。
【0027】
メモリコントローラ(MC)207は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク(HD)やフレキシブルディスク(FD)或いはPCMCIAカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ211へのアクセスを制御する。
【0028】
通信I/Fコントローラ(通信I/FC)208は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いたインターネット通信等が可能である。また、通信I/Fコントローラ208は、ギガビットイーサネット(登録商標)等を通じて光学式センサ104との通信も制御する。
【0029】
汎用バス209は、HMD102の右目・左目ビデオカメラ221からの映像を取り込むために使用される。右目・左目ビデオカメラ221からは、外部入力端子(例えば、IEEE1394端子)を用いて入力される。右目・左目ビデオカメラ221は、右目用のビデオカメラと左目用のビデオカメラとから構成されている。
【0030】
尚、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ上での表示を可能としている。また、CPU201は、ディスプレイ上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【0031】
本発明の第1の情報処理装置101が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ211に記録されており、必要に応じてRAM203にロードされることによりCPU201によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ211に格納されている。
【0032】
図3は、第2の情報処理装置105のハードウェア構成を示す図である。尚、
図3の第2の情報処理装置101のハードウェアの構成は一例であり、用途や目的に応じて様々な構成例がある。
【0033】
第2の情報処理装置105のハードウェア構成は、
図2で前述した第1の情報処理装置101のハードウェア構成と同様であるので、同じ箇所については説明を省略する。第1の情報処理装置101とは異なり、第2の情報処理装置105のビデオコントローラ206には、右目・左目ディスプレイ222が接続されていない。また、第2の情報処理装置105の通信I/Fコントローラ208には、光学式センサ104が接続されていない。更には、第2の情報処理装置105の汎用バス209には、右目・左目ビデオカメラ221が接続されておらず、客観カメラ106が接続されている。
【0034】
図4は、第1の情報処理装置101、第2の情報処理装置105の機能構成を示す機能構成図である。尚、
図4の第1の情報処理装置101、第2の情報処理装置105の機能構成は一例であり、用途や目的に応じて様々な構成例がある。
【0035】
第1の情報処理装置101は機能部として、通信制御部401、HMD位置・姿勢取得部402、HMD現実空間画像取得部403、仮想空間画像取得部404、複合現実画像生成部405、仮想空間管理部406、表示制御部407を備えている。
【0036】
通信制御部401は、第1の情報処理装置101と通信可能なHMD102と光学式センサ104と第2の情報処理装置105との各種情報の送受信を行う機能部である。通信制御部401は、前述したビデオコントローラ206、通信I/Fコントローラ208、汎用バス209等を通じてこれらの装置と情報の送受信を行う。
【0037】
HMD位置・姿勢取得部402は、HMD102の現実空間における位置及び姿勢を示す情報を光学式センサ104から取得する機能部である。HMD現実空間画像取得部403は、HMD102の右目・左目ビデオカメラ221から現実空間画像を取得する機能部である。
【0038】
仮想空間画像取得部404は、第1の情報処理装置101で生成する仮想空間の画像を取得する機能部である。仮想空間画像取得部404が仮想空間の画像を取得する場合には、HMD位置・姿勢取得部402で取得したHMD102の位置及び姿勢に基づいて仮想空間上の視点を決定し、当該視点から見た場合の仮想空間画像を生成し、これを取得する。
【0039】
複合現実画像生成部405は、HMD現実空間画像取得部403で取得した現実空間画像に仮想空間画像取得部404で取得した仮想空間画像を重畳することにより、複合現実画像を生成する機能部である。
【0040】
仮想空間管理部406は、第1の情報処理装置101において仮想空間を生成し、当該仮想空間に3次元モデルから成るオブジェクトを配置する機能部である。仮想空間管理部406で使用する各オブジェクトは、第1の情報処理装置101の外部メモリ211等に記憶されており、これらを適宜読み出して仮想空間を生成する。
【0041】
表示制御部407は、第1の情報処理装置101に接続されたHMD102の右目・左目ディスプレイ222や第1の情報処理装置101に接続されたディスプレイ212における各種情報の表示制御を行う機能部である。
【0042】
また、第2の情報処理装置105は機能部として、通信制御部451、客観カメラ位置・姿勢取得部452、客観カメラ現実空間画像取得部453、透過処理部454、テクスチャ生成部455、HMD位置取得部456、オブジェクト配置部457、テクスチャ制御部458、表示制御部459、仮想空間管理部460を備えている。
【0043】
通信制御部451は、第2の情報処理装置105と通信可能な第1の情報処理装置101と客観カメラ106との各種情報の送受信を行う機能部である。通信制御部401は、前述した通信I/Fコントローラ208、汎用バス209等を通じてこれらの装置と情報の送受信を行う。
【0044】
客観カメラ位置・姿勢取得部452は、客観カメラ106が設置されている現実空間上の位置及び姿勢を示す情報を取得する機能部である。本実施形態においては、客観カメラ106は所定の場所に固定されているので、あらかじめ外部メモリ211等に客観カメラ106の位置及び姿勢を示す情報を記憶されている。よって、客観カメラ位置・姿勢取得部452は、この記憶された情報を取得する。または、客観カメラ現実空間画像取得部453で取得した現実空間画像に含まれる情報に基づいて、客観カメラ106が設置されている位置及び姿勢を特定し、これを取得してもよい。この場合には、
図1に示すような二次元マーカ107を仮想空間の所定の座標と対応付けておき、客観カメラ106の撮像範囲の床や壁等に当該二次元マーカ107を設置する。そして、客観カメラ106から取得した現実空間画像に含まれる二次元マーカ107の大きさや形状、対応付けた座標等に基づいて、二次元マーカ107との位置関係を算出し、客観カメラ106の位置及び姿勢を特定する。
【0045】
客観カメラ現実空間画像取得部453は、客観カメラ106から現実空間画像を取得する機能部である。
【0046】
透過処理部454は、客観カメラ現実空間画像取得部453で取得した現実空間画像に含まれる所定の色を透過する機能部である。例えば、現実空間の背景色を青にした場合、現実空間画像に含まれる画素のうち、青色の画素の透過度(アルファ値)を「0」にする。尚、透過度は必ずしも「0」である必要はないが、完全に透過させることで、本願発明の効果をより向上することができる。また、透過する色は複数色あってもよいし、色味や濃さによって透過する対象の色に幅を持たせてもよい。
【0047】
テクスチャ生成部455は、仮想空間に配置される平面の3次元モデル(オブジェクト)に貼り付け可能なテクスチャを生成する機能部である。テクスチャ生成部455は、透過処理部454で指定色が透過処理された現実空間画像をテクスチャとして生成する。
【0048】
HMD位置取得部456は、HMD102の現実空間における位置を示す情報を第1の情報処理装置101から取得する機能部である。尚、本実施形態においては第1の情報処理装置101から取得する形態で説明を行うが、光学式センサ104と通信I/Fコントローラ208とを接続し、光学式センサ104からHMD102の位置を示す情報を直接取得してもよい。
【0049】
オブジェクト配置部457は、テクスチャ生成部455で生成したテクスチャを貼り付けるオブジェクトの位置を決定し、決定した位置に平面のオブジェクトを配置する機能部である。オブジェクト配置部457は、客観カメラ位置・姿勢取得部452で取得した客観カメラ106の位置及び姿勢を示す情報とHMD位置取得部456で取得したHMD102の位置を示す情報とを用いて、仮想空間上における客観カメラ106の光軸に垂直かつHMD102の位置を通る平面のオブジェクトを配置する。
【0050】
テクスチャ制御部458は、オブジェクト配置部457で配置したオブジェクトにテクスチャ生成部で生成されたテクスチャを貼り付ける機能部である。貼り付ける際には、テクスチャの中心点を、仮想空間上における客観カメラ106の光軸が通る位置に貼り付ける。また、仮想空間管理部460が客観カメラ106の位置・姿勢に応じて仮想空間上の視点を制御し、当該制御された視点から仮想空間を閲覧した場合の閲覧範囲を満たすように、テクスチャ制御部458がテクスチャのサイズを変更する。
【0051】
表示制御部459は、仮想空間管理部460が客観カメラ106の位置及び姿勢に応じて仮想空間上の視点を制御し、当該制御された視点から閲覧した仮想空間をディスプレイ212に表示制御する機能部である。
【0052】
仮想空間管理部460は、第2の情報処理装置105において第1の情報処理装置101と同様の仮想空間を生成し、当該仮想空間に第1の情報処理装置101と同様の3次元モデルから成るオブジェクトを配置する機能部である。仮想空間管理部406で使用する各オブジェクトは、第2の情報処理装置105の外部メモリ211等に記憶されており、これらを適宜読み出して仮想空間を生成する。そのため、あらかじめ第1の情報処理装置101から仮想空間を生成するための各種情報を外部メモリ211に複製しておくことが望ましい。
【0053】
次に、本発明の実施形態における第1情報処理装置101、第2の情報処理装置105によって行われる一連の処理について、
図5に示すフローチャートを用いて説明する。
【0054】
まず、第1の情報処理装置101における処理の流れについて説明する。第1の情報処理装置101は、HMD102を装着するユーザに対して複合現実感を提示する。特に、本実施形態においては、ユーザは所定の色(青や緑等)の壁や床や天井、その他設置物から成る部屋でHMD102を装着し、複合現実感を体感することを前提として、以下説明を行う。
【0055】
ステップS501では、第1の情報処理装置101のCPU201は、光学式センサ104からHMD102の位置及び姿勢を示す情報を、HMD位置・姿勢取得部402を用いて取得し、RAM203等に記憶する。すなわちステップS501では、現実空間でHMD102を装着しているユーザの位置及び姿勢を示す情報を取得している。HMD102の位置及び姿勢を示す情報は、例えば
図7のHMD位置・姿勢700に示す通りである。現実空間の所定の場所を原点とした場合のXYZ座標と、当該XYZ座標を用いたベクトルである。この2つをHMD102の位置及び姿勢とする。尚、HMD102の位置及び姿勢を示す情報の取得方法は、これに限らない。磁気センサや二次元マーカを用いてHMD102の位置及び姿勢を特定してもよい。現実空間における対象物の位置及び姿勢を示す情報の取得方法は従来技術であるので、説明は省略する。
【0056】
ステップS502では、第1の情報処理装置101のCPU201は、ステップS501で取得したHMD位置・姿勢700のうち、HMD102の位置を示す情報を、通信制御部401を用いて第2の情報処理装置105に送信する。
【0057】
ステップS503では、第1の情報処理装置101のCPU201は、HMD102の右目・左目ビデオカメラ221から送信される現実空間画像を、HMD現実空間画像取得部403を用いて取得し、RAM203等に記憶する。右目・左目ビデオカメラ221はユーザの右目に相当するビデオカメラと左目に相当するビデオカメラとの2つが存在するため、これらから右目用と左目用の現実空間画像を取得する。
【0058】
ステップS504では、第1の情報処理装置101のCPU201は、仮想空間画像取得部404を用いて仮想空間画像を取得し、RAM203等に記憶する。より具体的には、まずステップS501で取得したHMD位置・姿勢700をRAM203等から読み出し、当該HMD位置・姿勢700に対応する仮想空間上の位置及び姿勢を特定する。そして、特定した仮想空間上の位置及び姿勢で仮想空間上に仮想のカメラ(視点)を設置し、当該カメラにより仮想空間を撮像する。これにより仮想空間画像を生成する。尚、前述した現実空間画像と同様に、HMD102の右目・左目ディスプレイ222のそれぞれに表示するために右目用の仮想空間画像と左目用の仮想空間画像の2枚を取得する。
【0059】
ステップS505では、第1の情報処理装置101のCPU201は、ステップS503で取得した現実空間画像とステップS504で取得した仮想空間画像とをRAM203等から読み出す。そして、複合現実画像生成部405を用いて当該現実空間画像に当該仮想空間画像を重畳し、複合現実画像を生成する。生成した複合現実画像はRAM203等に記憶する。尚、前述した通り、現実空間画像と仮想空間画像とは右目用と左目用の2枚ずつがRAM203等に記憶されているので、右目用の現実空間画像に右目用の仮想空間画像を重畳し、左目用の現実空間画像に左目用の仮想空間画像を重畳する。また、前述した通り本実施形態では、後述するステップS510を実行する都合上、現実空間の部屋の壁等は所定の色(青や緑等)になっている。よって、当該所定の色が見えないような仮想空間画像を重畳することが望ましい。すなわち、バーチャルリアリティのように現実空間が見えないほうが、より没入感が高くなる。
【0060】
ステップS506では、第1の情報処理装置101のCPU201は、ステップS505で生成した複合現実画像をRAM203等から読み出し、ビデオコントローラ206を通じてHMD102の右目・左目ディスプレイ222に表示する。RAM203等に記憶された複合現実画像は、右目用と左目用の2枚が存在する。そのため表示制御部407を用いて、右目用の複合現実画像を右目・左目ディスプレイ222の右目のディスプレイに表示するよう制御し、左目用の複合現実画像を右目・左目ディスプレイ222の左目のディスプレイに表示するよう制御する。
【0061】
ステップS507では、第1の情報処理装置101のCPU201は、HMD102を装着しているユーザに複合現実感を提示する処理(前述したステップS501乃至ステップS506)の終了指示があったか否かを判定する。例えば、前述したステップS501乃至ステップS506の処理を実行する第1の情報処理装置101のアプリケーションの停止指示や終了指示があったか否かを判定する。終了指示があったと判定した場合には、本一連の処理を終了する。終了指示があったと判定しなかった場合、すなわち終了指示がなかった場合にはステップS501に処理を戻し、終了指示があるまでステップS501乃至ステップS507を繰り返す。
【0062】
次に、第1の情報処理装置101とは非同期で動作する第2の情報処理装置105の処理について説明する。
【0063】
ステップS508では、第2の情報処理装置105のCPU201は、通信制御部451を用いて、ステップS502において第1の情報処理装置101から送信されたHMD102の位置を示す情報(位置情報)を受信し、RAM203等(記憶手段)に記憶する。本実施形態では、HMD102の位置を示す情報を第1の情報処理装置から受信することで取得するが、客観カメラ106が複眼カメラであった場合には、三角測量により客観カメラ106からHMD102に対する距離を取得し、客観カメラ106の位置及び姿勢を示す情報を用いて、HMD102の位置を算出してもよい。
【0064】
ステップS509では、第2の情報処理装置105のCPU201は、第2の情報処理装置105に接続された客観カメラ106で現実空間を撮像することにより生成された現実空間画像を、客観カメラ現実空間画像取得部453を用いて取得し、RAM203等に記憶する(現実空間画像取得手段)。前述した通り、客観カメラ106は本実施形態では単眼カメラであるので、HMD102のような複眼カメラとは異なり、出力される画像(または映像)は1つである。
【0065】
ステップS510では、第2の情報処理装置105のCPU201は、ステップS509で取得した現実空間画像をRAM203等から読み出し、透過処理部454を用いて当該現実空間画像の所定の色(青や緑等)を透過する(透過処理手段)。現実空間画像は、HMD102を装着するユーザ以外の部分は所定の色となっているため、この所定の色のアルファ値を変更することで現実空間画像の所定の色を透過する。こうすると、ユーザだけを現実空間画像から抽出できる。
図6はステップS510の概要を示している。
図6の600は、ステップS509で取得した現実空間画像である。この現実空間画像にはHMD102を装着したユーザ601が含まれており、床や壁や天井等はステップS510で透過処理される所定の色である。この現実空間画像に対してステップS510の処理を実行すると、所定の色が透過されるので、610に示す通りの現実空間画像となる。すなわち、ユーザ以外の床や壁や天井等が透過された画像となる。
【0066】
ステップS511では、第2の情報処理装置105のCPU201は、ステップS510で透過した現実空間画像を用いて仮想空間で表示可能なテクスチャを生成する(テクスチャ生成手段)。テクスチャとは、3次元モデルから成るオブジェクトの表面に貼り付ける模様である。テクスチャ生成部455を用いて現実空間画像からこのテクスチャを生成する。
【0067】
ステップS512では、第2の情報処理装置105のCPU201は、客観カメラ106の位置及び姿勢を示す情報(位置姿勢情報)を、客観カメラ位置・姿勢取得部452を用いて取得する。前述した通り、本実施形態では外部メモリ211等(記憶手段)に客観カメラ106の位置及び姿勢を示す情報が記憶されているので、これを取得するものとする。尚、前述した通り、客観カメラ106の位置及び姿勢を取得する方法はこれに限らない。すなわち、現実空間の壁等に貼り付けられた二次元マーカ107を客観カメラ106で撮像することにより、当該客観カメラ106の位置及び姿勢を特定してもよいし、これ以外の方法で特定してもよい。客観カメラ106の位置及び姿勢を示す情報は、例えば
図7の客観カメラ位置・姿勢710に示す通りである。客観カメラ位置・姿勢710は、HMD位置・姿勢700と同様の情報であるため、説明は省略する。
【0068】
ステップS513では、第2の情報処理装置105のCPU201は、仮想空間における客観カメラ106の光軸を、仮想空間管理部460を用いて特定する。すなわち、ステップS512で取得した客観カメラ位置・姿勢710に対応する仮想空間上の位置及び姿勢を特定し、当該位置及び姿勢で仮想空間を撮像した場合の光軸のベクトルを特定する。
【0069】
ステップS514では、第2の情報処理装置105のCPU201は、ステップS508で受信したHMD102の位置を示す情報をRAM203等から読み出す。
【0070】
ステップS515では、第2の情報処理装置105のCPU201は、オブジェクト配置部457を用いて、ステップS513で特定した客観カメラ106の仮想空間上における光軸に垂直で、かつステップS514で読み出したHMD102の位置を通る平面のオブジェクトを生成し、配置する(オブジェクト配置手段)。
【0071】
ステップS516では、第2の情報処理装置105のCPU201は、テクスチャ制御部458を用いて、ステップS515で配置したオブジェクトにステップS511で生成したテクスチャを貼り付ける(テクスチャ貼付手段)。貼り付ける際には、客観カメラ106の仮想空間上における光軸がテクスチャの中心点を通るように貼り付ける。
【0072】
ステップS517では、第2の情報処理装置105のCPU201は、テクスチャ制御部458を用いて、ステップS516で貼り付けたテクスチャのサイズをディスプレイ212に表示する仮想空間の範囲に応じて変更する(テクスチャサイズ変更手段)。すなわち、仮想空間を撮像する仮想のカメラの撮像範囲と同等のサイズにテクスチャを拡大または縮小する。テクスチャの位置が仮想のカメラ(客観カメラ106の現実空間上の位置・姿勢に対応する仮想空間上の視点)に近ければ近いほどテクスチャのサイズを縮小し、テクスチャの位置が仮想のカメラから遠ければ遠いほどテクスチャのサイズを拡大することになる。
【0073】
客観カメラ106で撮像した現実空間画像において、すでに被写体であるユーザの遠近感は表現されている。しかしながら、仮想空間上においても遠近感が存在するので、テクスチャのサイズを変更しないと遠近感が単純に2倍となる。つまり、客観カメラ106が捉えた遠近感を崩さないためにも、テクスチャの位置が仮想カメラに近ければテクスチャを縮小して仮想空間上の遠近感を相殺し、テクスチャの位置が仮想カメラから遠ければテクスチャを拡大して仮想空間上の遠近感を相殺している。
【0074】
ステップS518では、第2の情報処理装置105のCPU201は、ステップS512で取得した客観カメラ位置・姿勢710をRAM203等から読み出し、当該客観カメラ位置・姿勢710に応じて仮想空間上に仮想のカメラ(視点)を設定し、当該カメラから見た仮想空間を撮像する。これにより仮想空間画像を生成し、RAM203等に記憶する。
【0075】
ステップS519では、第2の情報処理装置105のCPU201は、ステップS518で撮像した仮想空間画像をRAM203等から取得し、ビデオコントローラ206を介してディスプレイ212に当該仮想空間画像を表示する(表示手段)。
【0076】
ステップS520では、第2の情報処理装置105のCPU201は、HMD102を装着しているユーザが仮想空間を移動する様子を表示する処理(前述したステップS508乃至ステップS518)の終了指示があったか否かを判定する。例えば、前述したステップS508乃至ステップS518の処理を実行する第2の情報処理装置105のアプリケーションの停止指示や終了指示があったか否かを判定する。終了指示があったと判定した場合には、本一連の処理を終了する。終了指示があったと判定しなかった場合、すなわち終了指示がなかった場合にはステップS508に処理を戻し、終了指示があるまでステップS508乃至ステップS519を繰り返す。
【0077】
図8から
図11を用いて、ステップS508乃至ステップS519の処理の一例を説明する。
【0078】
図8の斜視イメージ800は、ステップS508乃至ステップS517の処理を実行した結果の仮想空間を示す図である。この仮想空間には3次元モデルから成るオブジェクト801、オブジェクト802、オブジェクト803が配置されている。また、客観カメラ106の位置及び姿勢に応じて仮想空間上に仮想のカメラ804が設置されている。当該仮想のカメラ804を視点とした映像がディスプレイ212に表示される。
【0079】
ステップS513では、客観カメラ106の光軸を仮想空間上で特定する。すなわち、光軸805が客観カメラ106の光軸である。この光軸に垂直で、かつHMD102の位置を通る平面のオブジェクトがオブジェクト806である。上面イメージ810に示すように、光軸805に垂直で、かつHMD102の位置811を通る平面がオブジェクト806である。
【0080】
そして、オブジェクト806には
図6の610に示す透過された現実空間画像のテクスチャをオブジェクト806に貼り付けて(ステップS516)、仮想のカメラ804の撮像範囲807となるよう、貼り付けた現実空間画像のサイズを変更する(ステップS517)。
図8に示す撮像範囲807が示す4つの線分を含む内側の空間が仮想のカメラ804の撮像可能な範囲である。この範囲を満たすよう、現実空間画像のサイズを調整する。このようにすることで、オブジェクト802とオブジェクト803との間に、テクスチャの貼り付けられたオブジェクト806が配置されるので、仮想のカメラ804で撮像すると、
図9の仮想空間画像900が示すような画像がディスプレイ212に表示されることとなる。仮想空間画像900は、前述した
図12の1203の画像とは異なり、適切な奥行き位置にHMD102を装着するユーザ601を配置することができている。
【0081】
HMD102を装着するユーザ601が移動すれば、オブジェクト806の位置も変わる。
図10に示す斜視イメージ1000は、ユーザ601がオブジェクト801とオブジェクト802との間に移動した場合を示す。客観カメラ106は固定なので、仮想のカメラ804の位置及び姿勢は変わらない。そのため、光軸805や撮像範囲807は
図8と同じである。HMD102を装着するユーザ601が、上面イメージ1010の1011が示す位置に移動すると、オブジェクト806は1001に示す位置に移動する。そのため、この仮想空間を仮想のカメラ804で撮像すると、
図11の仮想空間画像1100が示すような画像がディスプレイ212に表示されることとなる。
図11の仮想空間画像1100に映るユーザ601が、オブジェクト801とオブジェクト802との間に位置していることが確認できる。
【0082】
このように、通常のクロマキー合成では表現できない奥行きを、現実空間画像のテクスチャと仮想空間とを用いることにより表現することができるようになる。
【0083】
以上説明したように、本実施形態によれば、現実空間のユーザを撮像することにより生成される画像を仮想空間上の適切な位置に表示することの可能な効果を奏する。
【0084】
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、1つの機器からなる装置に適用してもよい。
【0085】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【0086】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【0087】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
【0088】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などもある。
【0089】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【0090】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
【0091】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【0092】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【0093】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【0094】
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。