(58)【調査した分野】(Int.Cl.,DB名)
装着型の表示装置のユーザの視点を示す仮想空間の視点位置と姿勢を記憶する位置姿勢記憶手段と、仮想オブジェクト及び前記仮想オブジェクトの仮想空間における位置姿勢を記憶する仮想オブジェクト記憶手段と、前記表示装置の位置姿勢と前記仮想オブジェクトの位置姿勢に基づいて、前記表示装置の視点から見た場合の前記仮想オブジェクトの画像を生成する生成手段と、を備える情報処理装置であって、
前記表示装置のユーザの現在の視点位置を、前記位置姿勢記憶手段に記憶されている過去の位置に移動する指示を受け付ける移動指示受付手段と、
前記移動指示受付手段により視点位置の移動指示を受け付けた場合に、前記移動指示を受け付けた前記過去の位置から所定距離離れた位置を、前記視点位置の移動先の位置として決定する決定手段と、
前記決定手段により決定された位置に、前記表示装置の仮想空間における視点位置を移動させるべく変更する変更手段と、
を備えることを特徴とする情報処理装置。
前記移動指示受付手段において移動指示を受け付けた前記過去の表示装置の位置から所定距離内に前記仮想オブジェクトが位置しているか判定する仮想オブジェクト位置判定手段
を備え、
前記決定手段は、前記仮想オブジェクト位置判定手段により、前記移動指示受付手段において移動指示を受け付けた前記過去の表示装置の位置から所定距離内に前記仮想オブジェクトが位置していると判定された場合に、前記移動指示を受け付けた前記過去の位置から所定距離離れた位置を、前記視点位置の移動先の位置として決定することを特徴とする請求項1に記載の情報処理装置。
前記移動指示受付手段において移動指示を受け付けた前記過去の表示装置の高さ位置と、前記視点位置を移動させる対象の表示装置の高さ位置が所定以上異なるか判定する高さ位置判定手段
を備え、
前記決定手段は、前記高さ位置判定手段により、前記移動指示受付手段において移動指示を受け付けた前記過去の表示装置の高さ位置と、前記視点位置を移動させる対象の表示装置の高さ位置が所定以上異なると判定された場合に、前記移動指示を受け付けた前記過去の位置から所定距離離れた位置を、前記視点位置の移動先の位置として決定することを特徴とする請求項1又は2に記載の情報処理装置。
前記変更手段により変更された視点位置から、前記移動指示受付手段により移動指示を受け付けた前記表示装置の過去の位置までの案内を表示すべく制御する案内表示制御手段と、
を備えることを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。
装着型の表示装置のユーザの視点を示す仮想空間の視点位置と姿勢を記憶する位置姿勢記憶手段と、仮想オブジェクト及び前記仮想オブジェクトの仮想空間における位置姿勢を記憶する仮想オブジェクト記憶手段と、前記表示装置の位置姿勢と前記仮想オブジェクトの位置姿勢に基づいて、前記表示装置の視点から見た場合の前記仮想オブジェクトの画像を生成する生成手段と、を備える情報処理装置の制御方法であって、
前記表示装置のユーザの現在の視点位置を、前記位置姿勢記憶手段に記憶されている過去の位置に移動する指示を受け付ける移動指示受付工程と、
前記移動指示受付工程により視点位置の移動指示を受け付けた場合に、前記移動指示を受け付けた前記過去の位置から所定距離離れた位置を、前記視点位置の移動先の位置として決定する決定工程と、
前記決定工程により決定された位置に、前記表示装置の仮想空間における視点位置を移動させるべく変更する変更工程と、
を含むことを特徴とする情報処理装置の制御方法。
装着型の表示装置のユーザの視点を示す仮想空間の視点位置と姿勢を記憶する位置姿勢記憶手段と、仮想オブジェクト及び前記仮想オブジェクトの仮想空間における位置姿勢を記憶する仮想オブジェクト記憶手段と、前記表示装置の位置姿勢と前記仮想オブジェクトの位置姿勢に基づいて、前記表示装置の視点から見た場合の前記仮想オブジェクトの画像を生成する生成手段と、を備える情報処理装置で実行が可能なプログラムであって、
前記情報処理装置を、
前記表示装置のユーザの現在の視点位置を、前記位置姿勢記憶手段に記憶されている過去の位置に移動する指示を受け付ける移動指示受付手段と、
前記移動指示受付手段により視点位置の移動指示を受け付けた場合に、前記移動指示を受け付けた前記過去の位置から所定距離離れた位置を、前記視点位置の移動先の位置として決定する決定手段と、
前記決定手段により決定された位置に、前記表示装置の仮想空間における視点位置を移動させるべく変更する変更手段として機能させることを特徴とする情報処理装置のプログラム。
装着型の表示装置と、前記表示装置のユーザの視点を示す仮想空間の視点位置と姿勢を記憶する位置姿勢記憶手段と、仮想オブジェクト及び前記仮想オブジェクトの仮想空間における位置姿勢を記憶する仮想オブジェクト記憶手段と、前記表示装置の位置姿勢と前記仮想オブジェクトの位置姿勢に基づいて、前記表示装置の視点から見た場合の前記仮想オブジェクトの画像を生成する生成手段と、を備える情報処理装置と、を含む情報処理システムであって、
前記表示装置のユーザの現在の視点位置を、前記位置姿勢記憶手段に記憶されている過去の位置に移動する指示を受け付ける移動指示受付手段と、
前記移動指示受付手段により視点位置の移動指示を受け付けた場合に、前記移動指示を受け付けた前記過去の位置から所定距離離れた位置を、前記視点位置の移動先の位置として決定する決定手段と、
前記決定手段により決定された位置に、前記表示装置の仮想空間における視点位置を移動させるべく変更する変更手段と、
を備えることを特徴とする情報処理システム。
装着型の表示装置と、前記表示装置のユーザの視点を示す仮想空間の視点位置と姿勢を記憶する位置姿勢記憶手段と、仮想オブジェクト及び前記仮想オブジェクトの仮想空間における位置姿勢を記憶する仮想オブジェクト記憶手段と、前記表示装置の位置姿勢と前記仮想オブジェクトの位置姿勢に基づいて、前記表示装置の視点から見た場合の前記仮想オブジェクトの画像を生成する生成手段と、を備える情報処理装置と、を含む情報処理システムの制御方法であって、
前記表示装置のユーザの現在の視点位置を、前記位置姿勢記憶手段に記憶されている過去の位置に移動する指示を受け付ける移動指示受付工程と、
前記移動指示受付工程により視点位置の移動指示を受け付けた場合に、前記移動指示を受け付けた前記過去の位置から所定距離離れた位置を、前記視点位置の移動先の位置として決定する決定工程と、
前記決定工程により決定された位置に、前記表示装置の仮想空間における視点位置を移動させるべく変更する変更工程と、
を含むことを特徴とする情報処理システムの制御方法。
装着型の表示装置と、前記表示装置のユーザの視点を示す仮想空間の視点位置と姿勢を記憶する位置姿勢記憶手段と、仮想オブジェクト及び前記仮想オブジェクトの仮想空間における位置姿勢を記憶する仮想オブジェクト記憶手段と、前記表示装置の位置姿勢と前記仮想オブジェクトの位置姿勢に基づいて、前記表示装置の視点から見た場合の前記仮想オブジェクトの画像を生成する生成手段と、を備える情報処理装置と、を含む情報処理システムを制御するためのプログラムであって、
前記情報処理システムを、
前記表示装置のユーザの現在の視点位置を、前記位置姿勢記憶手段に記憶されている過去の位置に移動する指示を受け付ける移動指示受付手段と、
前記移動指示受付手段により視点位置の移動指示を受け付けた場合に、前記移動指示を受け付けた前記過去の位置から所定距離離れた位置を、前記視点位置の移動先の位置として決定する決定手段と、
前記決定手段により決定された位置に、前記表示装置の仮想空間における視点位置を移動させるべく変更する変更手段として機能させるためのプログラム。
【発明を実施するための形態】
【0013】
図1を参照して、本発明の実施形態における情報処理システムの構成の一例について説明する。
【0014】
図1に示すように、本発明における情報処理システムの各種装置はネットワーク150を介して通信可能に接続されている。例えばPC100は、HMD101(HMD101A〜HMD101Cの総称)と通信可能に接続されている。HMD101は、頭部装着型のディスプレイ(ヘッドマウントディスプレイ)である。
【0015】
PC100には、HMD101により撮影される現実画像に重畳する3次元モデル(CGモデル/仮想オブジェクト/仮想物体)が記憶されている。
【0016】
また、PC100は、自機の管理するHMD101(
図1におけるHMD101A〜101C)より現実画像を取得して、記憶部に記憶する。また、PC100はHMD101の位置姿勢を特定し、記憶する。HMD101の位置姿勢の特定方法は、特許文献1に記載されている、HMD101の撮影した現実画像中の二次元マーカを用いて特定可能である。また、特許文献2に記載されている、センサ(
図1における光学センサ104)がHMD101に設置された光学式マーカの位置姿勢をHMD101の位置姿勢として検出し、それをPC100が取得することで特定可能である。本実施形態においては、特許文献2に記載の方法用いてHMD101の位置姿勢を特定するものとする。
【0017】
PC100では、HMD101の位置姿勢と、記憶部に記憶されている3次元モデル及び3次元モデルの位置姿勢の情報を用いて、現実画像に3次元モデルを重畳した複合現実画像を生成する。そして、当該複合現実画像をHMD101のディスプレイに表示させるべく、HMD101に送信する。HMD101は受信した複合現実画像をディスプレイに表示する。以上が
図1の説明である。
次に
図2を参照して、本発明の実施形態における、各種装置のハードウェア構成の一例について説明する。
CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。
【0018】
また、ROM202には、CPU201の制御プログラムであるBIOS(Basic Input / OutputSystem)やオペレーティングシステム(OS)、その他各種装置の実行する機能を実現するために必要な各種プログラムが記憶されている。
【0019】
RAM203は、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をRAM203にロードして、プログラムを実行することで各種動作を実現するものである。
【0020】
本発明のPC100が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ211に記録されており、必要に応じてRAM203にロードされることによりCPU201によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ211に格納されている。
入力コントローラ(入力C)205は、キーボードやマウス等のポインティングデバイス(入力デバイス209)からの入力を制御する。
【0021】
また、入力デバイス209がタッチパネルの場合、ユーザがタッチパネルに表示されたアイコンやカーソルやボタンに合わせて押下(指等でタッチ)することにより、各種の指示を行うことができることとする。なお、タッチパネルは、マルチタッチスクリーンなどの、複数の指でタッチされた位置を検出することが可能なタッチパネルであってもよいこととする。
【0022】
ビデオコントローラ(VC)206は、HMD101が備える右目・左目ディスプレイ222等の表示器への表示を制御する。右目・左目ディスプレイ222に対しては、例えば外部出力端子(例えば、Digital Visual Interface)を用いて出力される。また、右目・左目ディスプレイ222は、右目用のディスプレイと左目用のディスプレイとから構成されている。また、入力コントローラ(入力C)205は、PC100の備えるディスプレイ210(CRTディスプレイ等)の表示器への表示を制御する。なお、
図2では、表示器はCRTディスプレイだけでなく、液晶ディスプレイ等の他の表示器であってもよい。
【0023】
メモリコントローラ(MC)207は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク(HD)やフレキシブルディスク(FD)或いはPCMCIAカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ211へのアクセスを制御する。
【0024】
通信I/Fコントローラ(通信I/FC)208は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いたインターネット通信等が可能である。また、通信I/Fコントローラ208は、ギガビットイーサネット(登録商標)等を通じて光学センサ104との通信も制御する。
【0025】
汎用バス212は、HMD101の右目・左目ビデオカメラ221からの映像を取り込むために使用される。右目・左目ビデオカメラ221からは、外部入力端子(例えば、IEEE1394端子)を用いて入力される。右目・左目ビデオカメラ221は、右目用のビデオカメラと左目用のビデオカメラとから構成されている。
【0026】
尚、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ上での表示を可能としている。また、CPU201は、ディスプレイ上の不図示のマウスカーソル等でのユーザ指示を可能とする。以上が
図2の説明である。
【0027】
次に
図3を参照して、本発明の実施形態における各種装置の機能構成の一例について説明する。
【0028】
撮影画像送信部301は、カメラで撮影した撮影画像(現実画像)をPC100に送信する。
【0029】
撮影画像受信部311は、撮影画像を受信して随時RAM上に記憶する。位置姿勢記憶部312は、光学センサにより取得したHMD101の位置姿勢を記憶する。
【0030】
MR画像生成部313は、現実に仮想物体の画像を重畳した重畳画像であるMR画像を生成する。MR画像送信部314は、生成したMR画像をHMD101において表示させるべく出力する。
【0031】
MR画像記憶部315は、HMD101に設置されている不図示のレリーズボタンの押下を受け付けることにより、HMD101で表示中のMR画像を、レリーズボタン押下時のHMD101の位置姿勢と対応付けて外部メモリに記憶する。レリーズボタンの押下=表示中のMR画像の撮影及び保存指示である。
【0032】
MR画像一覧表示部302は、MR画像記憶部315に記憶されているMR画像の一覧を選択可能に表示する。
【0033】
MR画像選択受付部316は、MR画像一覧表示部302によりHMD101に表示されたMR画像の一覧から、MR画像の選択を受け付ける。例えばHMD101に設置されているボタンを複数回押下することで選択中のMR画像を切り替え、ボタンの長押しを受け付けることでMR画像の選択確定をする。
【0034】
撮影場所特定部317は、選択確定したMR画像の撮影指示がされた場所(位置)を特定する。移動先決定部318は、特定した撮影場所から所定距離又は時間離れた場所を、HMD101の視点を移動させる位置として決定する。
【0035】
視点移動処理部819は、移動先決定部318によって決定された位置に、HMD101の視点を移動させる。
【0036】
視点を移動させるとは、現実空間におけるHMD101の動きと連動して移動・方向転換する仮想空間上の仮想のカメラの位置を、他の仮想空間上の位置に移動させるということである。
【0037】
現実空間のHMD101の視点が移動するわけではなく、仮想空間上の仮想の視点が移動だけであるため、現実の映像に重畳する仮想物体(CG)の表示のみが移動先の位置から見た仮想物体の表示に変更されることとなる。
【0038】
MR画像送信部314は、視点移動後のMR画像を生成してHMD101に送信する。
【0039】
MR画像受信部303は、当該MR画像を受信し、表示部304は当該MR画像を表示する。
【0040】
なお、本実施形態においては、311〜319の各機能部の備える機能をPC100が備えているが、例えばこれらの構成をHMD101が備えるよう構成してもよいものとする。以上が
図3の説明である。
【0041】
次に
図4を参照して、本発明の実施形態における、各種装置のモジュール構成の一例について説明する。
【0042】
PC100は、オペレーティングシステム401(OS)、グラフィックエンジン402、複合現実感プラットフォーム403(MRプラットフォームともいう)、複合現実感アプリケーション404(MRアプリケーションやビューアアプリケーションともいう)で構成され、CPU201により制御されている。
【0043】
オペレーティングシステム401は、HMD101の入出力を制御しカメラ221から入力インターフェースを介して得られた現実画像を複合現実感プラットフォーム403へ受け渡す。またグラフィックエンジン402で描画された複合現実画像を、出力インターフェースを介して、ディスプレイ222へ出力する。
【0044】
グラフィックエンジン402は、外部メモリ211に記憶されている3次元モデルから描画する画像を生成し、現実画像に重畳し、合成する。描画に利用するエンジンは、例えば、OpenGLやDirectXなどの広く利用されているグラフィックエンジンでも、独自に開発したグラフィックエンジンでもよい。なお、本実施形態ではグラフィックライブラリとしてOpenGLを利用するものとする。
【0045】
複合現実感プラットフォーム403は、光学センサ104からHMDに付与された複数の光マーカの位置姿勢を受信することでHMD101の位置姿勢を特定し、現実空間と仮想空間の位置合わせを行う。
【0046】
なお、位置姿勢や位置合わせの技術は、既知の技術として開示されている、特開2002−32784、特開2006−072903、特開2007−166427等を用いて実現することが可能である。
【0047】
なお、二次元マーカを使用せずに、HMD101に位置センサを備え、この位置センサを用いて三角測量により計測された位置をもとに、HMD101の位置や姿勢を特定して実現することも可能である。
【0048】
複合現実感アプリケーション404は、複合現実感プラットフォーム403からHMD101の位置姿勢、3次元モデルの形状の情報、位置姿勢の情報を受け付け、グラフィックエンジン402に対して、3次元モデルの描画命令を発行する。この時、OpenGLのAPIを用いて、描画する3次元モデルの識別情報、位置姿勢の情報を設定した命令を発行する。以上が
図4の説明である。
【0049】
次に
図5を参照して、本発明の実施形態における複合現実画像の生成及び表示処理について説明する。
【0050】
HMD101は、不図示のユーザ操作を受け付けることにより、ステップS501で複合現実アプリケーション起動し、カメラ221の機能を用いて現実画像の撮影を開始する(ステップS502)。そして、撮影処理によって取得した現実画像をPC100に送信する(ステップS503)。
【0051】
当該複合現実アプリケーションの起動及び撮影開始は、例えばPC100におけるユーザ操作を受け付けることによっても実行可能である。
【0052】
PC100のCPU201はHMD101より現実画像を受信し(ステップS504)、受信した現実画像を外部メモリ211に記憶する(ステップS505)。例えば、
図6の現実画像テーブル630に示すように、現実画像の送信元のHMD101の識別情報であるHMD ID631と、現実画像632とを対応付けて記憶する。
【0053】
PC100のCPU201は、HMD101の位置姿勢を取得して(ステップS506)、外部メモリ211に記憶する(ステップS507)。例えば、
図6のHMD情報610に示すように、HMD101の識別情報であるHMD ID611と、当該HMDの位置612(X,Y,Z座標)、姿勢(方向613及び角度614)を記憶する。
【0054】
方向613及び角度614の例を
図18に示す。方向613は、HMD101の視線方向である。方向613は、
図18の1800に示すように、3次元空間のXYZ方向の軸に基づく球1801上の、視線方向と交差する点のXYZ座標によって示される。
【0055】
角度614は、
図18の1810に示すような、HMD101の左右の傾きの角度である。HMD101が床面と平行な状態を角度614=0度とする。HMD101を装着した状態で頭部を左に傾けると+n度となり、HMD101を装着した状態で頭部を右に傾けると−n度となる。
【0056】
PC100のCPU201は、外部メモリ211から仮想物体(ここでは3Dモデル)の情報を取得し、HMD101から受信した現実画像に重畳して複合現実画像を生成して(ステップS508)、HMD101に送信する(ステップS509)。
【0057】
3Dモデルの情報は、例えば
図6のモデル情報620に示す情報である(仮想オブジェクト記憶手段に該当)。モデル情報620は、予めPC100の外部メモリ211に記憶されている情報である。モデルID621は3Dモデルの識別情報である。
【0058】
モデル名622は、3Dモデルのファイル名である。ファイルパス623は、ファイルが記憶されている場所を示す。位置624、姿勢(方向625、角度626)は、3Dモデルの位置姿勢を示す。
【0059】
PC100のCPU201は、HMDの現在の位置姿勢から、HMD101と同じ画角を持つカメラが、モデル情報620の位置姿勢の3Dモデルを撮影した場合の、当該3Dモデルの画像を描画データ640として生成する。一例として、レンダリング済みのモデル画像とする。
【0060】
そして、当該描画データを現実画像と合成することで、
図6のMR画像テーブル650に示すMR画像(複合現実画像)を生成する。MR画像は、現実に仮想物体の画像を重畳した重畳画像である。
【0061】
図7に現実空間及び仮想空間におけるカメラの様子と、MR画像の一例を示す。
図7において、700は現実空間、710は仮想空間、720は現実空間と仮想空間を複合した複合現実空間(MR空間)である。
【0062】
現実空間700と仮想空間710は、例えば同じ大きさの空間であり、703を原点として位置合わせがされている。つまり、現実空間における位置(XYZ座標)及び姿勢と、仮想空間における位置姿勢は同じである。
【0063】
現実空間700においてHMD101の位置姿勢が光学センサ104によって特定される。702は現実物体であり、700においてはHMD101のカメラ装置によって現実物体702の一部が撮影されている。撮影された現実画像(
図6の632)の一例を701に示す。
【0064】
仮想空間710において、仮想カメラ713は、HMD101の現実空間上の位置姿勢と同じ仮想空間上の位置姿勢で、仮想空間上に仮想的に配置される。仮想カメラはHMD101ごとに対応づけられて存在する。
【0065】
HMD101のカメラ装置と仮想カメラ713の画角は同じである。PC100のCPU201は、仮想カメラ713の位置姿勢を、HMD101の現実空間上の位置姿勢に連動させて変更する。
【0066】
仮想カメラ713は、仮想空間710の画像(動画)を撮影している。例えば仮想空間710には仮想物体712が配置されており、HMD101と同じ位置姿勢の仮想カメラ713は、仮想物体712を撮影している。711は仮想カメラ713が仮想空間710を撮影した仮想画像であり、711における712は、描画データ640の一例である。
【0067】
PC100のCPU201は、現実画像701と仮想画像711(仮想画像711の中の描画データ)を重畳して、MR画像721(複合現実画像)を生成する。
【0068】
また、MR画像テーブル650の、MR画像を生成するために用いた現実画像の送信元のHMD(HMD ID651)と対応付けて記憶する。その後、HMD ID651の示すHMD101に、複合現実画像652を送信する(ステップS509)。
【0069】
HMD101は、PC100から複合現実画像を受信し(ステップS510)、表示画面に表示する(ステップS511)。HMD101及びPC100は、複合現実アプリケーションの終了指示を受け付けるまで、ステップS502〜S511の処理を繰り返し実行する。以上が
図5の説明である。
【0070】
次に
図8を参照して、本発明の実施形態における、撮影画像の記録処理の流れについて説明する。
【0071】
ステップS801では、PC100のCPU201は指示を受け付け、受け付けた指示がHMD101に表示中のMR画像の撮影・保存指示か判定する。
【0072】
例えば、HMD101に設置された不図示のレリーズボタンの押下を受け付けた旨をPC100が検知した場合に、HMD101に表示中の画像の保存指示を受け付けたと判定する。ここでいう表示中の画像とはサーバ200によって生成されたMR画像である。
【0073】
ここでは、画像の保存の操作(レリーズボタンの押下)を受け付けたのはHMD101Aであるものとする。
【0074】
画像の保存指示を受け付けた場合、PC100のCPU201は、ステップS802で保存指示がされた時点でHMD101に表示していた画像を、保存指示がされた時点のHMD101の位置姿勢と対応付けて記憶する。
【0075】
保存指示された画像は、共有画像情報1100に記憶されることで他のHMD101からも参照可能となる。つまり、複数のHMD101によって共有される共有画像として記憶される(撮影画像記憶手段に該当)。
【0076】
例えば、
図11の共有画像情報1100に撮影した画像の情報を記憶する。画像ID1101には、ステップS802で画像の保存指示がされた時点でHMD101に表示していたMR画像を記憶する。撮影者1102には、画像の保存指示がされた、画像ID1101の画像を表示していたHMDのIDを記憶する。また、画像の撮影日時を、撮影日時1106に記憶する。
【0077】
ステップS803で、PC100のCPU201は、当該画像と対応付けて、HMD101の画像撮影当初の位置姿勢を、共有画像情報1100の1103〜1105に記憶する。
【0078】
位置1103には、画像の保存指示がされた時点の、撮影者1102の示すHMD101の位置を記憶する。
【0079】
方向1104、角度1105には、画像の保存指示がされた時点の、撮影者1102の示すHMD101の向いている方向と、角度を記憶する。以上が
図8の説明である。
【0080】
次に
図9を参照して、本発明の実施形態における、視点移動の処理の概要について説明する。
【0081】
ステップS901では、PC100のCPU201は、HMD101に設置された不図示のボタンの押下を受け付けることで、共有画像情報1100に記憶されているMR画像のデータ(共有画像の情報)をメモリから取得し、当該ボタンの押下を受け付けたHMD101に一覧表示する。
【0082】
ステップS902で、PC100のCPU201は、共有画像の選択を受け付ける。例えばHMD101に設置されているボタンを複数回押下することで選択中の共有画像を切り替え、ボタンの長押しを受け付けることで共有画像の選択確定をする。
【0083】
ここでは、当該共有画像の選択を行ったのはHMD101Bであるものとする。
【0084】
共有画像の選択決定は、選択された共有画像の撮影位置への視点の移動指示である(移動指示受付手段に該当)。
【0085】
PC100のCPU201は、ステップS903で、視点移動先の位置決定及び案内処理を実行し、ステップS904で、撮影場所における案内処理を行う。
【0086】
視点移動先の位置決定及び案内処理の詳細は
図10の説明で後述する。
【0087】
撮影場所における案内処理の詳細は
図15の説明で後述する。以上が
図8の説明である。
【0088】
図10を参照して、本発明の実施形態における、視点移動先の位置決定及び案内処理について説明する。
【0089】
ステップS1001では、PC100のCPU201は、ステップS902で選択を受け付けた共有画像を撮影したHMD101を特定する。つまり、選択された画像の画像ID1101に対応する撮影者1102を特定する。
【0090】
そして、当該撮影者1102の位置姿勢の履歴(過去の位置姿勢の情報)をメモリより取得する。つまり、当該撮影者1102と同じIDを持つ撮影者1111(ここではHMD101Aとする)の位置姿勢履歴1110を取得する。
【0091】
ステップS1102で、PC100のCPU201は、ステップS1001で取得した位置姿勢履歴の示す位置1112の履歴の中から、共有画像を選択したHMD101Bのユーザの視点を移動する移動先の位置を選出し、決定する。
【0092】
視点の移動処理とは、
図12に示すように、HMD101Bに対応する仮想カメラ713の位置を、仮想空間において移動させる処理である。
【0093】
選択された共有画像の位置に視点を移動させることで、視点を移動したユーザは、共有画像を撮影したユーザが見ていた仮想物体と同じ仮想物体を見ることができる。
【0094】
なお、HMD101を装着するユーザによって身長は異なると考えられる。身長170cmのユーザの視点を身長150cmのユーザの視点に変更すると、仮想空間における地面と視点位置との距離が短くなるため(仮想空間における視点位置が低くなるため)、ユーザが現実空間において歩いている地面と視点との距離と、仮想空間における地面と視点との距離に差が生じてしまい、ユーザに違和感を与えてしまう。
【0095】
また、
図13の1300に示すように、ユーザが屈んだ状態保存した共有画像1302を選択し、その位置に視点を移動する場合、屈んだ状態の視点の高さに、立った状態のユーザの視点の高さを合わせてしまうと、ユーザに違和感を与えてしまう。
【0096】
よって、視点の移動は、仮想カメラの地面に対して平行な方向(XY軸方向)に対してのみ行うものとする。高さ方向(Z軸方向)に対する、地面から視点位置までの距離の変更・移動は行わない。
【0097】
しかし、高さ方向の位置の変更を行わないまま、HMD101Bのユーザの視点を、撮影場所の位置に直接移動してしまうと、移動直後にHMD101に表示される画像は、必ずしも選択された共有画像とは一致しない。
【0098】
例えば
図13においては、視点を移動したユーザの視界が仮想物体1301に覆われてしまっている。共有画像の撮影時とは異なる画像1311が目前に表示されてしまっており、視点を移動したユーザが混乱してしまうことが考えられる。
【0099】
よって、本実施形態においては、共有画像の位置から離れた位置を、視点の移動先として決定する。例えば、共有画像の撮影場所から、所定距離以上離れた位置を、移動先の位置として決定する。
【0100】
本実施形態における所定距離は5mであるものとする。当該所定距離の情報はPC100の外部メモリに予め記憶されており、ユーザ操作により任意に設定・変更可能である。
【0101】
具体的には、PC100のCPU201は、ステップS1002において、選択された共有画像の撮影日時1106より前のHMD101Aの位置姿勢履歴1110の中から、撮影時点の位置1103より5m以上離れた位置1103のレコードを抽出し、撮影日時1106に最も近い日時の位置を取得して、当該取得した位置をHMD101Bの視点の移動先の位置として決定し、HMD101Bの視点位置(HMD101Bに対応する仮想カメラの位置)を当該移動先の位置に変更する。
【0102】
なお、移動後のユーザの視線方向(仮想カメラの方向)は、共有画像が撮影された時点の、HMD101Aが当該共有画像を撮影した時点の方向とする決定を行う。また、角度はHMD101Bの角度をそのまま適用するものとする。
【0103】
ステップS1003では、PC100のCPU201は、ステップS1001で取得したHMD101Aの位置姿勢履歴1110を参照して、視点の移動先の位置から撮影場所までの経路を可視化した仮想物体である経路モデルを生成し、位置決定する。
【0104】
経路モデルの一例を
図14の1421及び1422に示す。PC100のCPU201は、移動先に決定された位置1103を持つHMD101Aの位置姿勢履歴1110のレコードから、撮影日時1106までのHMD101Aの位置姿勢履歴1110のレコードを抽出する。
【0105】
PC100のCPU201は、移動先の位置のレコードより後の日時のレコードで、移動先の位置から所定距離(例えば50cm)以上離れた直近のレコードを抽出して位置を特定する。また、当該抽出した位置のレコードより後の日時のレコードで、当該位置から所定距離以上離れた直近のレコードを抽出して位置を特定する。当該位置の特定処理を、特定される位置が撮影場所の位置から所定距離内(例えば50cm以内)になるまで繰り返す。
【0106】
PC100のCPU201は、特定したそれぞれの位置に、
図14の1421に示す経路モデルの一部となる仮想物体をそれぞれ配置する。つまり、1421の位置を、特定したそれぞれの位置に決定する。
【0107】
また、移動先の位置の位置から撮影場所までに特定した1421の位置を撮影日時1106の順に繋ぐ経路モデル1422を生成して配置する。つまり、1422の位置を、移動先の位置の位置から撮影場所までに特定した各位置を始点及び終点とする位置に決定する。
【0108】
PC100のCPU201は、
図5のステップS508で、HMD101Bのカメラ装置によって撮影されている最新の現実画像と、移動先の位置(1421と同じXY座標の位置)及び姿勢から撮影した仮想画像とを合成し、複合現実画像を生成して記憶する。
【0109】
移動先の位置に移動後のユーザの視点における複合現実画像の一例を
図14の1424に示す。
【0110】
PC100のCPU201は、
図5のステップS509で、当該複合現実画像をHMD101Bに送信し、HMD101Bが当該複合現実画像を受信して表示する(案内表示制御手段に該当)。以上が
図10の説明である。
【0111】
図10の発明によれば、適切な位置にユーザの視点を移動させることが可能な仕組みを提供することができる。
【0112】
例えば、撮影場所に移動した場合に、ユーザの視界が確保できるか否かに応じて、適切な位置にユーザの視点を移動させるようにしてもよい。
【0113】
具体的には、ステップS1001の次に、HMD101B(共有画像の選択を受け付けたHMD)の地面高さ方向の位置(仮想空間における床からの高さ)を取得する。そして、取得した高さを維持したまま、撮影場所にHMD101Bのユーザの視点が移動した場合に、移動したユーザの視点位置と仮想物体が重なるか判定する。つまり、移動後のユーザの視点位置付近に仮想物体が位置するか判定する(仮想オブジェクト位置判定手段に該当)。
【0114】
移動したユーザの視点位置と仮想物体が重なる場合は、共有画像選択後にいきなり撮影場所に視点を移動させると例えばユーザの視界いっぱいに仮想物体が広がることとなり視界が十分に確保できないと判断し、処理をステップS1002に進める。
【0115】
一方、移動したユーザの視点位置と仮想物体が重ならない場合は、共有画像選択後にいきなり撮影場所に視点を移動させた場合であっても、ユーザの視界を十分に確保でき、移動直後にユーザの混乱を引き起こす可能性が低いと判断し、選択された共有画像の撮影場所を視点を移動させる位置として決定し、視点を移動させる処理を実行する。
【0116】
ここでは、移動したユーザの視点位置と仮想物体が重なるか判定するものとしたが、例えば、移動後のユーザの視点位置から所定距離内(所定範囲内)に仮想物体があるか判定し、所定距離内に仮想物体がある場合には移動後のユーザの視界を十分に確保できないと判断し、処理をステップS1002へ、所定距離内に仮想物体がない場合には移動後のユーザの視界を十分に確保できると判断し、撮影場所にユーザの視点位置を移動させる処理を行うようにしてもよい。
【0117】
また、例えば、選択された共有画像の撮影された高さとユーザの視点位置の高さに応じて、適切な位置にユーザの視点を移動させるようにしてもよい。
【0118】
具体的には、ステップS1001の次に、HMD101B(共有画像の選択を受け付けたHMD)の地面高さ方向の位置(仮想空間における床からの高さ)を取得する。そして、選択された共有画像の撮影時の高さ方向の位置(床からの高さ)を取得する。
【0119】
この2つの高さ方向の位置に所定距離以上開きがある場合、つまり、撮影時の高さと移動後のユーザの視点位置の高さに所定以上差がある場合、共有画像選択後にいきなり撮影場所に視点を移動させると、ユーザは撮影場所に移動していると認識しているにもかかわらず、共有画像と移動後の視界の画像に差があり混乱を生じさせてしまう。
【0120】
よって、PC100のCPU201は、ステップS1001の後、共有画像撮影時の高さ位置と、移動先への移動指示をしたユーザの視点の高さ位置との間が所定距離以上離れているか判定し(高さ位置判定手段に該当)、所定距離以上離れていると判定した場合には、移動後のユーザの混乱を軽減すべく、処理をステップS1002に移行する。
【0121】
所定距離以上離れていないと判定した場合には、視点位置を撮影場所に直接移動した場合であっても混乱は少ないと判断し、指定された共有画像の撮影場所を移動先として決定し、当該撮影場所にユーザの視点位置を移動させる処理を行う
【0122】
また、例えば、ユーザに応じて、適切な位置にユーザの視点を移動させるようにしてもよい。
【0123】
例えば、共有画像の撮影者と、共有画像を選択したユーザの身長が近い場合、当該ユーザの視点を撮影場所に直接移動しても、子どもと大人のように身長差が激しいユーザ同士に比べて移動後に見える景色は撮影者と近いと考えられるため、撮影者と移動したいユーザの組み合わせによっては、撮影場所に直接視点を移動させてもよい。
【0124】
例えば、PC100のCPU201は、HMD101A、HMD101B、HMD101Cの各ユーザの視点位置の高さの情報を、HMD101ごとに予め記憶しておく。例えば、HMD101を装着し、ステップS501で複合現実アプリケーションを起動して、HMD101を装着したユーザがMRの体験を開始した時点の高さ位置をHMD101のIDと対応付けて記憶しておく。ここでは、複合現実アプリケーション起動時においてユーザは起立しているものとする。
【0125】
また、高さ位置が記憶された時点で、当該HMD101のユーザと身長の近いユーザをグルーピングして記憶する。例えば視点の高さが156〜165cmを同一グループとし、166〜174cmを同一グループとして登録する。
【0126】
PC100のCPU201は、ステップS1001の後、HMD101AのIDを取得し、HMD101BのIDを取得する。HMD101AとHMD101Bが同一のグループに属しているか判定し、同一のグループに属していない場合は処理をステップS1002に移行し、同一のグループに属している場合は、HMD101Bの視点位置を撮影場所に直接移動する。
【0127】
つまり、撮影者と撮影場所に移動したいユーザの組み合わせによって(選択された共有画像のユーザが所定のユーザである場合に)、撮影場所に直接視点を移動させるべき組み合わせか否かを判定し、撮影場所に直接視点を移動させるべき組み合わせの場合にはHMD101Bの視点位置を撮影場所に直接移動させ、撮影場所に直接視点を移動させるべき組み合わせでない場合には処理をステップS1002に移行する。
【0128】
なお、上述した実施形態においては、共有画像として記憶するデータは静止画である画像として説明したが、例えば動画像であってもよい。動画の撮影場所=動画の撮影が開始された時点(録画開始時点)の撮影者のHMDの位置とする(動画記憶手段に該当)。
【0129】
よって、動画である共有画像の選択を受け付けた場合、ステップS1002では、動画の撮影開始時点の場所より所定距離離れた位置を移動先として決定する。
【0130】
また、上述した実施形態においては、撮影場所から所定距離離れた位置を移動先の位置として決定したが、これは床と水平方向の距離である。
【0131】
また、例えば、撮影場所から所定距離以上移動した場所を、撮影場所から所定距離離れた位置とし、移動先として決定してもよい。
【0132】
具体的には、撮影者(HMD101A)の位置姿勢の履歴を取得し、共有画像の撮影時の位置から、1つ前のレコードの位置までの距離を取得する。また、当該取得した1つ前の更に1つ前のレコードを取得し、レコード間の距離を取得する。このレコードの取得及び距離の加算処理を繰り返していき、加算していった距離の合計が所定距離に達した場合に、取得した最後のレコードの位置を移動先の位置として決定する。
【0133】
つまり、撮影場所までの撮影者の移動経路及び距離を所定距離分だけ遡った位置を移動先の位置として決定する。
【0134】
以上説明したように、本発明によれば、適切な位置にユーザの視点を移動させることが可能な仕組みを提供することができる。
【0135】
次に
図15を参照して、本発明の実施形態における、画像の撮影場所における案内処理の流れについて説明する。
【0136】
例えば
図16の1600に示すようにHMD101Aのユーザが、1101の仮想物体を見て、1602に示す画像を撮影して共有画像として記憶したとする。
【0137】
共有画像を選択したHMD101Bのユーザは1610に示すように、仮想物体1301に視界を覆われてしまい、1611のような画像を見ることになる。よって自分がどこにいるのか分からなくなり、混乱してしまう。
【0138】
また、たとえ仮想物体1301から頭部を抜け出し、画像が撮影された場所により近付いたとしても、1620に示すように、周囲の状況が分からず、共有画像がどこを撮影したものなのか分からなくなることがある。
【0139】
また、撮影場所までの経路案内を受けた場合であっても、例えば1620に示すように物体が多数配置されている場合は、共有画像がどのような姿勢で撮影されたのか分かり難いことがある。
【0140】
図15の処理によれば、撮影場所に近付いたユーザに対して、撮影された画像の撮影時の姿勢を案内することができる。
【0141】
ステップS1501で、PC100のCPU201は、ステップS902で選択を受け付けた共有画像の撮影者の、撮影時点の位置姿勢を取得する。
【0142】
ステップS1502で、PC100のCPU201は、各HMD101の現在の位置姿勢を取得し、ステップS1503で、当該撮影場所に近いHMD101があるか判定する。つまり、撮影場所から所定距離内にいるHMD101が存在するか判定する。
【0143】
撮影場所に近いHMD101がない場合は
図15の処理を終了する。撮影場所に近いHMD101がある場合は処理をステップS1504に移行する。
【0144】
ステップS1504で、PC100のCPU201は、撮影場所に近い位置にあるHMD101が、撮影場所の指定を受け付けたHMD101(本実施形態におけるHMD101B)か判定する。
【0145】
撮影場所に近い位置にあるHMD101が撮影場所の指定を受け付けたHMD101である場合(例えばHMD101Bである場合)は、当該HMD101の装着者であるユーザに撮影時の姿勢の案内をすべく、処理をステップS1505に移行する。撮影場所に近い位置にあるHMD101が撮影場所の指定を受け付けたHMD101でない場合(例えばHMD101Cである場合)は、撮影時の姿勢の案内は不要であるため、
図15の処理を終了する。
【0146】
ステップ1505で、PC100のCPU201は、HMD101Bを姿勢を案内するHMDとして特定し、当該HMD101Bの現在の位置姿勢を特定する。
【0147】
ステップ1506で、PC100のCPU201は、姿勢案内用の矢印の仮想物体(CG)をメモリ上に生成する。矢印の仮想物体の一例を
図17の1701に示す。
【0148】
ステップ1507で、PC100のCPU201は、矢印の仮想物体の位置姿勢を決定する。具体的には、HMD101Bの位置からHMD101Bの視線方向に所定距離(例えば20cm)離れた位置を始点として位置決定し、共有画像の撮影時点のHMD101Aの位置から、共有画像の撮影時点のHMD101Aの視線方向に向けて所定距離離れた位置(例えば30cm離れた位置)を終点とするよう位置決定して、矢印の仮想物体のサイズを変更する。
【0149】
PC100のCPU201は、
図5のステップS508で、HMD101Bのカメラ装置によって撮影されている最新の現実画像と、仮想空間上の視点位置から仮想カメラで撮影した、サイズ決定及び位置決定された矢印の仮想物体の描画データとを重畳した複合現実画像を生成する。生成した複合現実画像の一例を
図17の1702に示す。
【0150】
PC100のCPU201は、
図5のステップS509で、当該複合現実画像をHMD101Bに送信し、HMD101Bが当該複合現実画像を受信して表示する(案内表示制御手段に該当)。
【0151】
ステップS1508で、PC100のCPU201は、現在のHMD101Bの姿勢が、共有画像撮影時のHMD101Aの姿勢に所定以上近付いたか判定する。
【0152】
具体的には、HMD101Bの方向が共有画像の方向1104からXYZの値が所定値以内の方向となり、且つ、HMD101Bの角度が共有画像の角度1105から所定角度(例:5度)以内の角度になっている場合に、現在のHMD101Bの姿勢が、共有画像撮影時のHMD101Aの姿勢に所定以上近付いたと判定する。
【0153】
現在のHMD101Bの姿勢が、共有画像撮影時のHMD101Aの姿勢に所定以上近付いていないと判定された場合、PC100のCPU201は、処理をステップS1505に戻し、現在のHMD101Bの位置姿勢を取得して、姿勢案内の処理を継続する。
【0154】
現在のHMD101Bの姿勢が、共有画像撮影時のHMD101Aの姿勢に所定以上近付いたと判定された場合、PC100のCPU201は、HMD101Bのユーザが目的の撮影対象(選択された共有画像の被写体)を視認したと判断し、姿勢案内用の矢印CGを非表示状態に変更する。例えば、矢印のCGを記憶装置から削除する。以上が
図15の説明である。
【0155】
図15の処理によれば、撮影場所に近付いたユーザに対して、撮影された画像の撮影時の姿勢を案内することができる。
【0156】
また、撮影場所の選択をしていないユーザを混乱させないよう、撮影場所に近付いたユーザのうち、撮影場所の選択をしていないユーザには姿勢の案内をすることなく、撮影場所の選択をしたユーザに対して姿勢の案内をすることができる。
【0157】
なお、上述した実施形態においては、HMD101Bの姿勢が共有画像撮影当初のHMD101Aの姿勢と所定以上異なる場合に姿勢の案内の表示を制御し(ステップS1505、S1506)、HMD101Bの姿勢が共有画像撮影当初のHMD101Aの姿勢に所定以上近付いている場合に案内の表示を取りやめるものとしたが、例えば、更に高さ方向の位置の情報を用いて案内の表示の要否を決定してもよい。
【0158】
具体的には、HMD101Bの高さ方向の位置又は姿勢が共有画像撮影当初のHMD101Aの高さ方向の位置及び姿勢と所定以上異なる場合に姿勢の案内の表示を制御し、HMD101Bの高さ方向の位置及び姿勢が共有画像撮影当初のHMD101Aの高さ方向の位置及び姿勢に所定以上近付いている場合に異なる場合に案内の表示を取りやめるようにしてもよい。
【0159】
高さ方向の位置が撮影当初から離れていることを以って案内を表示することで、どの高さから共有画像が撮影されたのかをユーザに確認させることができる。
【0160】
当該案内の表示(矢印のCG)は、案内対象のHMD101Bに対してのみ表示するようにしている。その他のHMDでMRを体験しているユーザに余計な情報を見せることなく、案内を必要としているユーザに案内の表示を限定するためである。
【0161】
しかし、案内を表示するHMD(ユーザ)を限定した場合、その他のHMDを装着しているユーザには、案内表示中のHMDのユーザが何をしようとしているのか分からない。
【0162】
例えばHMD101Bに案内表示中の場合、HMD101Bのユーザは矢印のCGを追いかけて首を振ったり、頭の角度を変えて何かを覗き込んだりする動きをすることが考えられますが、HMD101A及びHMD101Cのユーザには、HMD101Bがなぜそのような行動を取っているか分からない。
【0163】
よって、例えば案内表示中のHMD101Bに対応付けてHMD101Bのユーザが共有画像の撮影場所及び姿勢の案内中であることを、HMD101A及びHMD101C(他のHMD)に表示するようにしてもよい。
【0164】
具体的には、案内表示中のHMD101BからXYZ軸方向に所定距離離れた位置に、「撮影場所・姿勢案内中」というテキストのCGを配置する。
【0165】
また、当該テキストと合わせて、撮影場所および角度を案内中の共有画像を、HMD101BからXYZ軸方向に所定距離離れた位置に配置して表示することで、どの共有画像の撮影場所及び姿勢が案内されるか他のHMDのユーザに認識可能としてもよい。
【0166】
また、上述した実施形態においては、共有画像の撮影場所及び姿勢を案内するものとしたが、例えば共有画像に写っている、HMD101Aにおいて撮影された仮想物体の位置を案内するようにしてもよい。
【0167】
具体的には、共有画像撮影時に、HMD101Aの画角内に含まれる仮想物体のIDを、共有画像と対応付けて記憶しておき、PC100のCPU201が、例えばステップS1507の後に、HMD101Bで選択された共有画像に対応する仮想物体のIDを特定して、特定された各仮想物体の輪郭線の色を変えて強調表示(識別表示)する。
【0168】
これにより、共有画像によって撮影された何が撮影されていたか(撮影されていた仮想物体)を、HMD101Bのユーザに案内することが可能である。
【0169】
また、そもそも選択された共有画像によって撮影されていた仮想物体が、撮影場所への視点位置の移動指示をしたHMD(HMD101B)の仮想カメラが存在する仮想空間に存在しない場合、撮影場所や姿勢を案内して撮影場所・姿勢を再現したとしても、共有画像に写っていた物体を捉えることができない。
【0170】
つまり、HMD101Bのユーザに、案内に沿って移動したり視線方向を変えたりしたりと無駄に労力を消費させてしまうことになる。
【0171】
よて、例えば選択された共有画像で撮影された物体が存在するか否かに応じて、案内の表示を行うか否かを決定するようにしてもよい。
【0172】
具体的には、
図15のステップS1505の後に、PC100のCPU201は、HMD101Bの仮想カメラの配置されている仮想空間において、HMD101Bにおいて選択された共有画像に写っている仮想物体が配置されているか(仮想空間に配置するモデルとして、モデル情報620に記憶されているか)判定する。
【0173】
配置されていない場合は
図15の処理を終了し、配置されている場合は処理をステップS1506に移行することで、共有画像を選択したユーザが、共有画像の撮影場所に視点を移動させれば共有画像の被写体を確認することができるという場合に、案内を表示することができる。
【0174】
また、共有画像情報1100を不図示のサーバに記憶するようにしてもよい。例えば複数のPC100を準備し、HMD101ごとに個別にPC100を接続する。各PC100と不図示のサーバをネットワーク150を介して接続し、PC100に記憶された共有画像情報1100をサーバにアップロードして、サーバが当該共有画像情報1100の更新がされたことを他のPC100に通知する。PC100は、通知に応じて更新後の共有画像情報1100をサーバより取得して自機のメモリに記憶する。
【0175】
以上、本発明の実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【0176】
例えば、
図2に示すPC100の構成を全て備えるHMD101が、自機の機能をCPU201で実行して、上述した実施形態においてPC100の実行するものとして説明した処理の全てを、実行するようにしてもよい。
【0177】
具体的には、HMD101とPC100が一体であり、1つ筐体として、HMD101のCPU201が、ステップS504〜S509の処理及びその他の図のフローチャートに記載の処理を実行するよう構成してもよい。この場合、PC100の機能は各HMD101に備わり、各HMD101の記憶装置に、光学センサ104から取得された各HMD101の位置姿勢が記憶されるものとする。
【0178】
なお、上述した実施形態においては、複合現実における視点移動と案内について説明したが、例えば視点移動及び経路案内の表示を、仮想現実や拡張現実の技術を用いて実現するようにしてもよい。
【0179】
また、上述した実施形態においては、現実画像と仮想物体の描画データを重畳することで複合現実画像を生成するものとしたが、例えば透過型(シースルー型)のHMD101を採用し、透過率100%の現実画像に透過率0%の描画データを重ね合わせてディスプレイに表示し、現実の情報はディスプレイ越しに肉眼で確認できるような複合現実画像を生成・表示するようにしてもよい。
【0180】
また、本発明におけるプログラムは、各図に示すフローチャートの処理方法をコンピュータが実行可能なプログラムであり、本発明の記憶媒体は各図の処理方法をコンピュータが実行可能なプログラムが記憶されている。なお、本発明におけるプログラムは各図の各装置の処理方法ごとのプログラムであってもよい。
【0181】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読み出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0182】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記録媒体は本発明を構成することになる。
【0183】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク、ソリッドステートドライブ等を用いることができる。
【0184】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0185】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0186】
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0187】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0188】
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。