【文献】
Convrge VR,Ghosting Improvements - Virtual Reality Locomotion Technique,YouTube[online][video],2015年10月 1日,https://www.youtube.com/watch?v=N3tWSZlAI-0,URL,https://www.youtube.com/watch?v=N3tWSZlAI-0
(58)【調査した分野】(Int.Cl.,DB名)
装着型の表示装置のユーザの視点を示す仮想空間の視点位置と姿勢を記憶する位置姿勢記憶手段と、仮想オブジェクト及び前記仮想オブジェクトの仮想空間における位置姿勢を記憶する仮想オブジェクト記憶手段と、前記表示装置の位置姿勢と前記仮想オブジェクトの位置姿勢に基づいて前記表示装置の視点から見た場合の前記仮想オブジェクトの画像を生成する生成手段と、を備える情報処理装置であって、
前記位置姿勢記憶手段に記憶された過去の位置のうち複数の所定の位置と、前記表示装置の位置との位置関係に応じて、前記所定の位置のうち、前記所定の位置にかかる情報を前記表示装置に一覧表示する第1の所定の位置と、前記表示装置の位置姿勢に基づいて表示位置を決定して表示する第2の所定の位置とを決定する決定手段と、
前記決定手段による決定に応じて、前記第1の所定の位置にかかる情報を一覧表示し、または/及び、前記第2の所定の位置にかかる情報を前記表示装置の位置姿勢に基づいて決定される位置に表示すべく制御する表示制御手段と、
を備えることを特徴とする情報処理装置。
前記決定手段は、前記表示装置の位置する仮想空間のフロアと別のフロアの前記所定の位置を前記第1の所定の位置として決定し、前記表示装置の位置する仮想空間のフロアと同じフロアの前記所定の位置を前記第2の所定の位置として決定することを特徴とする請求項1に記載の情報処理装置。
前記決定手段は、前記表示装置の位置する仮想空間の部屋と別の部屋の前記所定の位置を前記第1の所定の位置として決定し、前記表示装置の位置する仮想空間の部屋と同じ部屋の前記所定の位置を前記第2の所定の位置として決定することを特徴とする請求項1又は2に記載の情報処理装置。
装着型の表示装置のユーザの視点を示す仮想空間の視点位置と姿勢を記憶する位置姿勢記憶手段と、仮想オブジェクト及び前記仮想オブジェクトの仮想空間における位置姿勢を記憶する仮想オブジェクト記憶手段と、前記表示装置の位置姿勢と前記仮想オブジェクトの位置姿勢に基づいて前記表示装置の視点から見た場合の前記仮想オブジェクトの画像を生成する生成手段と、を備える情報処理装置における情報処理方法であって、
前記位置姿勢記憶手段に記憶された過去の位置のうち複数の所定の位置と、前記表示装置の位置との位置関係に応じて、前記所定の位置のうち、前記所定の位置にかかる情報を前記表示装置に一覧表示する第1の所定の位置と、前記表示装置の位置姿勢に基づいて表示位置を決定して表示する第2の所定の位置とを決定する決定工程と、
前記決定工程による決定に応じて、前記第1の所定の位置にかかる情報を一覧表示し、または/及び、前記第2の所定の位置にかかる情報を前記表示装置の位置姿勢に基づいて決定される位置に表示すべく制御する表示制御工程と、
を含むことを特徴とする情報処理方法。
装着型の表示装置のユーザの視点を示す仮想空間の視点位置と姿勢を記憶する位置姿勢記憶手段と、仮想オブジェクト及び前記仮想オブジェクトの仮想空間における位置姿勢を記憶する仮想オブジェクト記憶手段と、前記表示装置の位置姿勢と前記仮想オブジェクトの位置姿勢に基づいて前記表示装置の視点から見た場合の前記仮想オブジェクトの画像を生成する生成手段と、を備える情報処理装置を、
前記位置姿勢記憶手段に記憶された過去の位置のうち複数の所定の位置と、前記表示装置の位置との位置関係に応じて、前記所定の位置のうち、前記所定の位置にかかる情報を前記表示装置に一覧表示する第1の所定の位置と、前記表示装置の位置姿勢に基づいて表示位置を決定して表示する第2の所定の位置とを決定する決定手段と、
前記決定手段による決定に応じて、前記第1の所定の位置にかかる情報を一覧表示し、または/及び、前記第2の所定の位置にかかる情報を前記表示装置の位置姿勢に基づいて決定される位置に表示すべく制御する表示制御手段として機能させるためのプログラム。
装着型の表示装置と、前記表示装置のユーザの視点を示す仮想空間の視点位置と姿勢を記憶する位置姿勢記憶手段と、仮想オブジェクト及び前記仮想オブジェクトの仮想空間における位置姿勢を記憶する仮想オブジェクト記憶手段と、前記表示装置の位置姿勢と前記仮想オブジェクトの位置姿勢に基づいて前記表示装置の視点から見た場合の前記仮想オブジェクトの画像を生成する生成手段と、を備える情報処理装置と、を含む情報処理システムであって、
前記位置姿勢記憶手段に記憶された過去の位置のうち複数の所定の位置と、前記表示装置の位置との位置関係に応じて、前記所定の位置のうち、前記所定の位置にかかる情報を前記表示装置に一覧表示する第1の所定の位置と、前記表示装置の位置姿勢に基づいて表示位置を決定して表示する第2の所定の位置とを決定する決定手段と、
前記決定手段による決定に応じて、前記第1の所定の位置にかかる情報を一覧表示し、または/及び、前記第2の所定の位置にかかる情報を前記表示装置の位置姿勢に基づいて決定される位置に表示すべく制御する表示制御手段と、
を備えることを特徴とする情報処理システム。
装着型の表示装置と、前記表示装置のユーザの視点を示す仮想空間の視点位置と姿勢を記憶する位置姿勢記憶手段と、仮想オブジェクト及び前記仮想オブジェクトの仮想空間における位置姿勢を記憶する仮想オブジェクト記憶手段と、前記表示装置の位置姿勢と前記仮想オブジェクトの位置姿勢に基づいて前記表示装置の視点から見た場合の前記仮想オブジェクトの画像を生成する生成手段と、を備える情報処理装置と、を含む情報処理システムにおける情報処理方法であって、
前記位置姿勢記憶手段に記憶された過去の位置のうち複数の所定の位置と、前記表示装置の位置との位置関係に応じて、前記所定の位置のうち、前記所定の位置にかかる情報を前記表示装置に一覧表示する第1の所定の位置と、前記表示装置の位置姿勢に基づいて表示位置を決定して表示する第2の所定の位置とを決定する決定工程と、
前記決定工程による決定に応じて、前記第1の所定の位置にかかる情報を一覧表示し、または/及び、前記第2の所定の位置にかかる情報を前記表示装置の位置姿勢に基づいて決定される位置に表示すべく制御する表示制御工程と、
を含むことを特徴とする情報処理方法。
装着型の表示装置と、前記表示装置のユーザの視点を示す仮想空間の視点位置と姿勢を記憶する位置姿勢記憶手段と、仮想オブジェクト及び前記仮想オブジェクトの仮想空間における位置姿勢を記憶する仮想オブジェクト記憶手段と、前記表示装置の位置姿勢と前記仮想オブジェクトの位置姿勢に基づいて前記表示装置の視点から見た場合の前記仮想オブジェクトの画像を生成する生成手段と、を備える情報処理装置と、を含む情報処理システムを、
前記位置姿勢記憶手段に記憶された過去の位置のうち複数の所定の位置と、前記表示装置の位置との位置関係に応じて、前記所定の位置のうち、前記所定の位置にかかる情報を前記表示装置に一覧表示する第1の所定の位置と、前記表示装置の位置姿勢に基づいて表示位置を決定して表示する第2の所定の位置とを決定する決定手段と、
前記決定手段による決定に応じて、前記第1の所定の位置にかかる情報を一覧表示し、または/及び、前記第2の所定の位置にかかる情報を前記表示装置の位置姿勢に基づいて決定される位置に表示すべく制御する表示制御手段として機能させるためのプログラム。
【発明を実施するための形態】
【0014】
図1を参照して、本発明の実施形態における情報処理システムの構成の一例について説明する。
【0015】
図1に示すように、本発明における情報処理システムの各種装置はネットワーク150を介して通信可能に接続されている。例えばPC100は、HMD101(HMD101A〜HMD101Cの総称)と通信可能に接続されている。HMD101は、頭部装着型のディスプレイ(ヘッドマウントディスプレイ)である。
【0016】
PC100には、HMD101により撮影される現実画像に重畳する3次元モデル(CGモデル/仮想オブジェクト/仮想物体)が記憶されている。
【0017】
また、PC100は、自機の管理するHMD101(
図1におけるHMD101A〜101C)より現実画像を取得して、記憶部に記憶する。また、PC100はHMD101の位置姿勢を特定し、記憶する。HMD101の位置姿勢の特定方法は、特許文献1に記載されている、HMD101の撮影した現実画像中の二次元マーカを用いて特定可能である。また、特許文献2に記載されている、センサ(
図1における光学センサ104)がHMD101に設置された光学式マーカの位置姿勢をHMD101の位置姿勢として検出し、それをPC100が取得することで特定可能である。本実施形態においては、特許文献2に記載の方法用いてHMD101の位置姿勢を特定するものとする。
【0018】
PC100では、HMD101の位置姿勢と、記憶部に記憶されている3次元モデル及び3次元モデルの位置姿勢の情報を用いて、現実画像に3次元モデルを重畳した複合現実画像を生成する。そして、当該複合現実画像をHMD101のディスプレイに表示させるべく、HMD101に送信する。HMD101は受信した複合現実画像をディスプレイに表示する。以上が
図1の説明である。
【0019】
次に
図2を参照して、本発明の実施形態における、各種装置のハードウェア構成の一例について説明する。
【0020】
CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。
【0021】
また、ROM202には、CPU201の制御プログラムであるBIOS(Basic Input / OutputSystem)やオペレーティングシステム(OS)、その他各種装置の実行する機能を実現するために必要な各種プログラムが記憶されている。
【0022】
RAM203は、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をRAM203にロードして、プログラムを実行することで各種動作を実現するものである。
【0023】
本発明のPC100が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ211に記録されており、必要に応じてRAM203にロードされることによりCPU201によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ211に格納されている。
入力コントローラ(入力C)205は、キーボードやマウス等のポインティングデバイス(入力デバイス209)からの入力を制御する。
【0024】
また、入力デバイス209がタッチパネルの場合、ユーザがタッチパネルに表示されたアイコンやカーソルやボタンに合わせて押下(指等でタッチ)することにより、各種の指示を行うことができることとする。なお、タッチパネルは、マルチタッチスクリーンなどの、複数の指でタッチされた位置を検出することが可能なタッチパネルであってもよいこととする。
【0025】
ビデオコントローラ(VC)206は、HMD101が備える右目・左目ディスプレイ222等の表示器への表示を制御する。右目・左目ディスプレイ222に対しては、例えば外部出力端子(例えば、Digital Visual Interface)を用いて出力される。また、右目・左目ディスプレイ222は、右目用のディスプレイと左目用のディスプレイとから構成されている。また、入力コントローラ(入力C)205は、PC100の備えるディスプレイ210(CRTディスプレイ等)の表示器への表示を制御する。なお、
図2では、表示器はCRTディスプレイだけでなく、液晶ディスプレイ等の他の表示器であってもよい。
【0026】
メモリコントローラ(MC)207は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク(HD)やフレキシブルディスク(FD)或いはPCMCIAカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ211へのアクセスを制御する。
【0027】
通信I/Fコントローラ(通信I/FC)208は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いたインターネット通信等が可能である。また、通信I/Fコントローラ208は、ギガビットイーサネット(登録商標)等を通じて光学センサ104との通信も制御する。
【0028】
汎用バス212は、HMD101の右目・左目ビデオカメラ221からの映像を取り込むために使用される。右目・左目ビデオカメラ221からは、外部入力端子(例えば、IEEE1394端子)を用いて入力される。右目・左目ビデオカメラ221は、右目用のビデオカメラと左目用のビデオカメラとから構成されている。
【0029】
尚、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ上での表示を可能としている。また、CPU201は、ディスプレイ上の不図示のマウスカーソル等でのユーザ指示を可能とする。以上が
図2の説明である。
【0030】
次に
図3を参照して、本発明の実施形態における各種装置の機能構成の一例について説明する。
【0031】
撮影画像送信部301は、カメラで撮影した撮影画像(現実画像)をPC100に送信する。
【0032】
撮影画像受信部311は、撮影画像を受信して随時RAM上に記憶する。位置姿勢記憶部312は、光学センサにより取得したHMD101の位置姿勢を記憶する。
【0033】
MR画像生成部313は、現実に仮想物体の画像を重畳した重畳画像であるMR画像を生成する。MR画像送信部314は、生成したMR画像をHMD101において表示させるべく出力する。
【0034】
共有画像記憶部315は、HMD101に設置されている不図示のレリーズボタンの押下を受け付けることにより、HMD101で表示中のMR画像を、レリーズボタン押下時のHMD101の位置姿勢と対応付けて外部メモリに記憶する。レリーズボタンの押下=表示中のMR画像の撮影及び保存指示である。
【0035】
判定部316は、HMD101にかかる属性と、共有画像の属性とが一致するか判定する。例えば、HMD101のいる部屋と、共有画像が撮影された部屋とが同じか判定する。
【0036】
決定部317は、判定部316の判定結果に応じて、各共有画像の表示方法を決定する。例えば、複数ある共有画像のうち、HMD101のいる部屋と同じ部屋の共有画像を部屋に配置する仮想オブジェクトとして表示する画像として決定し、HMD101のいる部屋と異なる部屋の共有画像をHMD101に一覧表示する画像として決定する。
【0037】
表示制御部318は、HMD101のいる部屋と同じ部屋の共有画像を仮想オブジェクトとして表示するべく、仮想オブジェクトを作成して位置決定し、対象の共有画像を当該仮想オブジェクトに貼り付けてMR画像を生成する。また、HMD101のいる部屋と別の部屋の共有画像を表示する一覧表示部の画像を生成して一覧表示部における対象の共有画像の位置を決定する。そして、これらのMR画像及び一覧表示部をHMD101に送信して表示指示し、HMD101に表示させる。
【0038】
共有画像一覧表示部302は、共有画像記憶部315に記憶されているMR画像の一覧を選択可能に表示する。
【0039】
MR画像送信部314は、視点移動後のMR画像を生成してHMD101に送信する。
【0040】
MR画像受信部303は、当該MR画像を受信し、表示部304は当該MR画像を表示する。
【0041】
なお、本実施形態においては、311〜318の各機能部の備える機能をPC100が備えているが、例えばこれらの構成をHMD101が備えるよう構成してもよいものとする。以上が
図3の説明である。
【0042】
次に
図4を参照して、本発明の実施形態における、各種装置のモジュール構成の一例について説明する。
【0043】
PC100は、オペレーティングシステム401(OS)、グラフィックエンジン402、複合現実感プラットフォーム403(MRプラットフォームともいう)、複合現実感アプリケーション404(MRアプリケーションやビューアアプリケーションともいう)で構成され、CPU201により制御されている。
【0044】
オペレーティングシステム401は、HMD101の入出力を制御しカメラ221から入力インターフェースを介して得られた現実画像を複合現実感プラットフォーム403へ受け渡す。またグラフィックエンジン402で描画された複合現実画像を、出力インターフェースを介して、ディスプレイ222へ出力する。
【0045】
グラフィックエンジン402は、外部メモリ211に記憶されている3次元モデルから描画する画像を生成し、現実画像に重畳し、合成する。描画に利用するエンジンは、例えば、OpenGLやDirectXなどの広く利用されているグラフィックエンジンでも、独自に開発したグラフィックエンジンでもよい。なお、本実施形態ではグラフィックライブラリとしてOpenGLを利用するものとする。
【0046】
複合現実感プラットフォーム403は、光学センサ104からHMDに付与された複数の光マーカの位置姿勢を受信することでHMD101の位置姿勢を特定し、現実空間と仮想空間の位置合わせを行う。
【0047】
なお、位置姿勢や位置合わせの技術は、既知の技術として開示されている、特開2002−32784、特開2006−072903、特開2007−166427等を用いて実現することが可能である。
【0048】
なお、二次元マーカを使用せずに、HMD101に位置センサを備え、この位置センサを用いて三角測量により計測された位置をもとに、HMD101の位置や姿勢を特定して実現することも可能である。
【0049】
複合現実感アプリケーション404は、複合現実感プラットフォーム403からHMD101の位置姿勢、3次元モデルの形状の情報、位置姿勢の情報を受け付け、グラフィックエンジン402に対して、3次元モデルの描画命令を発行する。この時、OpenGLのAPIを用いて、描画する3次元モデルの識別情報、位置姿勢の情報を設定した命令を発行する。以上が
図4の説明である。
【0050】
次に
図5を参照して、本発明の実施形態における複合現実画像の生成及び表示処理について説明する。
【0051】
HMD101は、不図示のユーザ操作を受け付けることにより、ステップS501で複合現実アプリケーション起動し、カメラ221の機能を用いて現実画像の撮影を開始する(ステップS502)。そして、撮影処理によって取得した現実画像をPC100に送信する(ステップS503)。
【0052】
当該複合現実アプリケーションの起動及び撮影開始は、例えばPC100におけるユーザ操作を受け付けることによっても実行可能である。
【0053】
PC100のCPU201はHMD101より現実画像を受信し(ステップS504)、受信した現実画像を外部メモリ211に記憶する(ステップS505)。例えば、
図6の現実画像テーブル630に示すように、現実画像の送信元のHMD101の識別情報であるHMD ID631と、現実画像632とを対応付けて記憶する。
【0054】
PC100のCPU201は、HMD101の位置姿勢を取得して(ステップS506)、外部メモリ211に記憶する(ステップS507)。例えば、
図6のHMD情報610に示すように、HMD101の識別情報であるHMD ID611と、当該HMDの位置612(X,Y,Z座標)、姿勢(方向613及び角度614)を記憶する。
【0055】
方向613及び角度614の例を
図8に示す。方向613は、HMD101の視線方向である。方向613は、
図8の800に示すように、3次元空間のXYZ方向の軸に基づく球801上の、視線方向と交差する点のXYZ座標によって示される。
【0056】
角度614は、
図8の810に示すような、HMD101の左右の傾きの角度である。HMD101が床面と平行な状態を角度614=0度とする。HMD101を装着した状態で頭部を左に傾けると+n度となり、HMD101を装着した状態で頭部を右に傾けると−n度となる。
【0057】
また、ステップS507において、PC100のCPU201は、HMD101の属する(位置する)フロア(階)とルーム(部屋)の識別情報(ID)を特定して、フロア615、ルーム616にそれぞれ記憶する。フロア615、ルーム616はHMD101を装着したユーザの体験状況の属性情報である。
【0058】
なお、フロア及びルーム自体の位置の情報は、例えば
図6の660に示す形式でPC100の外部メモリ211に予め記憶されている。フロア661はフロアのIDである。ルーム662はフロア661に属する(位置する)部屋のIDである。
【0059】
位置663は、ルーム662の示すルームの頂点位置を複数記憶している。当該頂点を、当該頂点が記憶されている順につなぐことでルームの形状(外枠)が特定可能である。つまり、位置663は、ルームの位置及び形状の情報である。当該形状(外枠)によって特定される、当該ルーム形状の内側の位置=ルームの中である。
【0060】
PC100のCPU201は、HMD101の位置(X,Y,Z座標)とルームの位置(X,Y,Z座標)を用いて、HMD101が現在どのルームの中にあるかを特定し、特定されたHMD101が位置するルーム及びそのルームのフロアのIDをフロア615、ルーム616にそれぞれ記憶するものである。
【0061】
PC100のCPU201は、外部メモリ211から仮想物体(ここでは3Dモデル)の情報を取得し、HMD101から受信した現実画像に重畳して複合現実画像を生成して(ステップS508)、HMD101に送信する(ステップS509)。
【0062】
3Dモデルの情報は、例えば
図6のモデル情報620に示す情報である(仮想オブジェクト記憶手段に該当)。モデル情報620は、予めPC100の外部メモリ211に記憶されている情報である。モデルID621は3Dモデルの識別情報である。
【0063】
モデル名622は、3Dモデルのファイル名である。ファイルパス623は、ファイルが記憶されている場所を示す。位置624、姿勢(方向625、角度626)は、3Dモデルの位置姿勢を示す。
【0064】
PC100のCPU201は、HMDの現在の位置姿勢から、HMD101と同じ画角を持つカメラが、モデル情報620の位置姿勢の3Dモデルを撮影した場合の、当該3Dモデルの画像を描画データ640として生成する。一例として、レンダリング済みのモデル画像とする。
【0065】
そして、当該描画データを現実画像と合成することで、
図6のMR画像テーブル650に示すMR画像(複合現実画像)を生成する。MR画像は、現実に仮想物体の画像を重畳した重畳画像である。
【0066】
図7に現実空間及び仮想空間におけるカメラの様子と、MR画像の一例を示す。
図7において、700は現実空間、710は仮想空間、720は現実空間と仮想空間を複合した複合現実空間(MR空間)である。
【0067】
現実空間700と仮想空間710は、例えば同じ大きさの空間であり、703を原点として位置合わせがされている。つまり、現実空間における位置(XYZ座標)及び姿勢と、仮想空間における位置姿勢は同じである。
【0068】
現実空間700においてHMD101の位置姿勢が光学センサ104によって特定される。702は現実物体であり、700においてはHMD101のカメラ装置によって現実物体702の一部が撮影されている。撮影された現実画像(
図6の632)の一例を701に示す。
【0069】
仮想空間710において、仮想カメラ713は、HMD101の現実空間上の位置姿勢と同じ仮想空間上の位置姿勢で、仮想空間上に仮想的に配置される。仮想カメラはHMD101ごとに対応づけられて存在する。
【0070】
HMD101のカメラ装置と仮想カメラ713の画角は同じである。PC100のCPU201は、仮想カメラ713の位置姿勢を、HMD101の現実空間上の位置姿勢に連動させて変更する。
【0071】
仮想カメラ713は、仮想空間710の画像(動画)を撮影している。例えば仮想空間710には仮想物体712が配置されており、HMD101と同じ位置姿勢の仮想カメラ713は、仮想物体712を撮影している。711は仮想カメラ713が仮想空間710を撮影した仮想画像であり、711における712は、描画データ640の一例である。
【0072】
PC100のCPU201は、現実画像701と仮想画像711(仮想画像711の中の描画データ)を重畳して、MR画像721(複合現実画像)を生成する。
【0073】
また、MR画像テーブル650の、MR画像を生成するために用いた現実画像の送信元のHMD(HMD ID651)と対応付けて記憶する。その後、HMD ID651の示すHMD101に、複合現実画像652を送信する(ステップS509)。
【0074】
HMD101は、PC100から複合現実画像を受信し(ステップS510)、表示画面に表示する(ステップS511)。HMD101及びPC100は、複合現実アプリケーションの終了指示を受け付けるまで、ステップS502〜S511の処理を繰り返し実行する。以上が
図5の説明である。
【0075】
次に
図9を参照して、本発明の実施形態における、撮影画像の記録処理の流れについて説明する。ここでいう撮影画像の記録処理とは、撮影指示を受け付けた時点のHMD101の位置姿勢と撮影画像を記憶する処理である。
【0076】
ステップS901では、PC100のCPU201は指示を受け付け、受け付けた指示がHMD101に表示中のMR画像の撮影・保存指示か判定する。
【0077】
例えば、HMD101に設置された不図示のレリーズボタンの押下を受け付けた旨の情報をHMD101から受け付け、PC100が当該レリーズボタンの押下を検知した場合に、HMD101に表示中の画像の保存指示を受け付けたと判定する。ここでいう表示中の画像とはサーバ200によって生成されたMR画像である。
【0078】
ここでは、画像の保存の操作(レリーズボタンの押下)を受け付けたのはHMD101Aであるものとする。
【0079】
画像の保存指示を受け付けた場合、PC100のCPU201は、ステップS902で保存指示がされた時点でHMD101に表示していた画像を、保存指示がされた時点のHMD101の位置姿勢と対応付けて記憶する。
【0080】
保存指示された画像は、共有画像情報1300に記憶されることで他のHMD101からも参照可能となる。つまり、複数のHMD101によって共有される共有画像として記憶される(撮影画像記憶手段に該当)。
【0081】
例えば、
図13の共有画像情報1300に撮影した画像の情報を記憶する。画像ID1301には、ステップS902で画像の保存指示がされた時点でHMD101に表示していたMR画像を記憶する。撮影者1302には、画像の保存指示がされた、画像ID1301の画像を表示していたHMDのIDを記憶する。また、画像の撮影日時を、撮影日時1306に記憶する。
【0082】
ステップS903で、PC100のCPU201は、当該画像と対応付けて、HMD101の画像撮影当初の位置姿勢を、共有画像情報1300の1303〜1305に記憶する。
【0083】
位置1303には、画像の保存指示がされた時点の、撮影者1302の示すHMD101の位置を記憶する。
【0084】
方向1304、角度1305には、画像の保存指示がされた時点の、撮影者1302の示すHMD101の向いている方向と、角度を記憶する。
【0085】
また、ステップ904で、PC100のCPU201は、画像の保存指示がされた時点の、HMD101の位置するフロアと部屋の識別情報(ID)を、フロア1307、ルーム1308に記憶する。以上が
図8の説明である。
【0086】
次に
図10を参照して、本発明の実施形態における処理の概要について説明する。
【0087】
ステップS1001で、PC100のCPU201は、HMD101に共有画像を表示する表示処理を行う。当該表示所為の詳細については
図11の説明で後述する。
【0088】
ステップS1002で、PC100のCPU201は、ユーザ操作により共有画像の選択を受け付ける。
【0089】
HMD101に一覧表示されている共有画像の場合、例えばHMD101に設置されているボタンを複数回押下することで選択中の共有画像を切り替え、ボタンの長押しを受け付けることで共有画像の選択確定をする。また、仮想空間上の当該共有画像の撮影位置に配置され、HMD101の位置姿勢に応じてHMD101に表示されている共有画像の場合、例えばHMD101の視線で選択を行う。具体的には、HMD101の視線方向と交差する共有画像(共有画像が貼り付けられた仮想オブジェクト)を選択し、当該交差している状態が所定時間以上(例:5秒以上)継続した場合に選択確定する。
【0090】
ここでは、当該共有画像の選択を行ったのはHMD101Bであるものとする。
【0091】
共有画像の選択決定は、選択された共有画像の撮影位置への視点の移動指示である。
【0092】
ステップS1003で、PC100のCPU201は、ステップS1002で選択された位置に、HMD101の仮想空間上の視点位置を移動する処理を行う。視点位置の移動処理の詳細は
図12の説明で後述する。以上が
図10の説明である。
【0093】
次に
図11を参照して、本発明の実施形態における、共有画像の表示処理の詳細について説明する。
【0094】
共有画像の表示処理は、外部メモリに記憶されているHMD(HMDを装着したユーザ)の過去の位置を選択及び識別可能に表示する処理である。
【0095】
ステップS1101で、PC100のCPU201は、共有画像の表示指示を受け付ける。例えば、HMD101に設置された不図示のボタンの押下を受け付け、当該ボタンが押下された旨の情報をHMD101がPC100に送信し、PC100がこれを検知することで共有画像の表示指示を受け付けるものとする。
【0096】
PC100のCPU201は、共有画像の表示指示を受け付けた場合にステップS1101の処理を行う。
【0097】
ステップS1101で、PC100のCPU201は、現在のHMD101のユーザの体験状況の属性を取得する。具体的には、ボタンが押下されたHMD101の現在のフロア615、ルーム616を取得する。
【0098】
PC100のCPU201は、
図13の1300に記憶された共有画像数分、ステップS1102〜S1106の処理を繰り返す。つまり、全ての共有画像に対してステップS1102、S1103、S1104、S1105又はステップS1102、S1103、S1106の処理を適用する。
【0099】
ステップS1102で、PC100のCPU201は、ステップS1103以下の処理を未適用の(未処理の)共有画像を1300から1つ取得し、処理中の画像としてRAM上に記憶する。
【0100】
ステップS1103で、PC100のCPU201は、ステップS1102で取得した画像の属性と、ステップS1101で取得したHMD101の体験状況の属性とが一致するか判定する。ここでは、取得した共有画像とHMDが同じルームに位置しているか判定するものとする。
【0101】
ステップS1103で2つのデータの属性が一致している(共有画像とHMDとが同じルームに位置している)と判定された場合、処理をステップS1104に移行する。ステップS1103で2つのデータの属性が一致していない(共有画像とHMDとが同じルームに位置していない)と判定された場合、処理をステップS1106に移行する。
【0102】
ステップS1104で、PC100のCPU201は、HMD101と同じルームに位置すると判定された共有画像を、HMD101の位置姿勢に応じてHMD101に表示する共有画像として決定し、RAM上に記憶する。
【0103】
ステップS1105で、PC100のCPU201は、外部メモリに予め記憶されているテンプレートの仮想オブジェクト(テンプレートモデル情報1310に図示)を取得する。
【0104】
テンプレートの仮想オブジェクトの構成は、モデル情報620の構成と同じである。但し、まだ仮想空間に配置されていない状態のであり、モデルIDや位置姿勢の情報は未挿入の状態である。
【0105】
ステップS1105で、PC100のCPU201は、追加表示モデル情報1320のテーブルを外部メモリに生成して、取得したテンプレートの仮想オブジェクトをコピーし、追加・記憶する。つまり、表示対象の仮想オブジェクトを生成する。
【0106】
追加表示モデル情報1320は、HMD101ごと(ユーザごと)に、HMD101のIDと対応付けて作成・記憶・管理する。追加表示モデル情報1320は、モデル情報620に加えて、当該追加表示モデル情報1320に対応するHMD101(共有画像の表示指示がされたHMD101)のMR画像の生成に用いる仮想オブジェクトを記憶するテーブルである。他のHMD101のMR画像の生成には用いない。
【0107】
なお、追加表示モデル情報1320におけるモデルIDには、追加表示モデル情報1320へのデータの追加時に新規の値を付与する。また、モデルの姿勢は一律同じ値を設定する。
【0108】
PC100のCPU201は、ステップS1104でRAMに記憶した共有画像の位置を取得し、追加表示モデル情報1320に追加した仮想オブジェクトの位置として記憶する。そして、画像1321に、ステップS1102で取得した共有画像を記憶する。つまり、共有画像の仮想空間上の位置を決定する。
【0109】
画像1321は、当該追加表示モデル情報1320に追加した仮想オブジェクトにテクスチャ画像として貼り付ける画像を記憶する記憶部である。
【0110】
ステップS1106で、PC100のCPU201は、HMD101と同じルームに位置しないと判定された共有画像を、HMD101の共有画像一覧表示部に表示する共有画像として決定し、RAM上に記憶する。
【0111】
PC100のCPU201は、全ての共有画像に対するS1102〜S1106の処理を完了すると、処理をステップS1107に移行する。
【0112】
ステップS1107で、PC100のCPU201は、モデル情報620及び追加表示モデル情報1320を用いて、ステップS1101で共有画像の表示指示がされたHMD101のMR画像の生成・表示更新を行う。具体的には、
図5のステップS506以降の処理を順次行い、ステップS508において、モデル情報620だけでなく、追加表示モデル情報1320の仮想オブジェクトも用いて描画データの生成及びHMD101の画面における表示位置(描画位置)を決定してMR画像を生成し、ステップS511まで処理を実行する。
【0113】
また、ステップS1106で記憶された、HMD101と同じルームに位置しないと判定された共有画像があるか判定し、ある場合には、当該HMD101と同じルームに位置しないと判定された共有画像をHMD101に一覧表示する(一覧表示部に各共有画像を配置して表示する)。
【0114】
以降、共有画像の表示を終了する指示を受け付けるまで、共有画像の一覧、又は/及び共有画像を貼り付けた仮想オブジェクトを用いたMR画像の生成・表示処理を継続する。以上が
図11の説明である。
【0115】
HMD101と同じルームの共有画像のみ記憶されている場合の共有画像の表示(共有画像がテクスチャとして貼り付けられた仮想オブジェクトの表示)の一例を、
図15の1500に示す。テンプレートの仮想オブジェクトは、1505に示す共有画像の撮像位置(具体的には撮影位置から高さ方向において床に向けて垂直に伸ばした線と床が交差する点)を示す部分と、共有画像を貼り付ける1501〜1504の部分とから成る。1501〜1504には、HMD101と同じルームの共有画像が貼り付けられ、HMD101で表示される。
【0116】
HMD101と別のルームの共有画像のみ記憶されている場合の共有画像の表示の一例を、
図15の1510に示す。一覧表示部1511には、HMD101と別のルームの共有画像が選択可能に一覧表示されている。
【0117】
HMD101と同じルームの共有画像と、HMD101と別のルームの共有画像の両方が記憶されている場合の共有画像の表示の一例を
図16の1600に示す。
【0118】
次に
図12を参照して、本発明の実施形態における、視点位置の移動処理の詳細について説明する。
【0119】
視点位置を移動させるとは、現実空間におけるHMD101の動きと連動して移動・方向転換する仮想空間上の仮想のカメラの位置を、他の仮想空間上の位置に移動させるということである。例えば
図14に示すように、HMD101に対応する仮想カメラ713の位置を、仮想空間において移動させる処理である。
【0120】
現実空間のHMD101の視点が移動するわけではなく、仮想空間上の仮想の視点が移動だけであるため、現実の映像に重畳する仮想物体(CG)の表示のみが移動先の位置から見た仮想物体の表示に変更されることとなる。共有画像の位置は移動先の候補の位置である。
【0121】
ステップS1201で、PC100のCPU201は、
図10のステップS1002において選択された共有画像の位置姿勢を取得する。具体的には、
図13の共有画像情報1300から対象の共有画像の位置1303、方向1304、角度1305を取得する。
【0122】
ステップS1202で、PC100のCPU201は、ステップS1201で取得した位置姿勢情報からHMD101の仮想空間上の位置(視点位置)の移動先の位置を決定する。例えば、当該共有画像の位置1303を移動先の位置として決定する。
【0123】
ステップS1203で、PC100のCPU201は、ステップS1202で決定した移動先の位置に、HMD101の仮想空間上の視点位置を変更する。つまり、ユーザの視点を指定された共有画像の位置に移動する。
【0124】
ステップS1204で、PC100のCPU201は、HMD101のカメラが撮像している現在の現実画像と、移動先の仮想空間上の視点位置から見た仮想オブジェクトの画像を合成(重畳)して、MR画像を生成し、ステップS1205でHMD101に送信して表示させる。
【0125】
以降、視点位置の移動を解除する操作がされるまで、現在の現実画像と、移動先の仮想空間上の視点位置から見た仮想オブジェクトの画像を合成してMR画像を生成し、HMD101に表示するものとする。以上が
図12の説明である。
【0126】
視点の移動前後の位置関係及びMR画像の状態を
図14に示す。1400の1401は現実画像である。1410は仮想空間上のHMD101の視点位置(仮想カメラ)の移動の様子を示す。1411は視点位置の移動前の仮想空間の画像である。1420の1421は、視点位置移動後のMR画像の一例である。
【0127】
以上説明したように、本発明によれば、ユーザと記録済の位置の関係に応じて適切に当該位置の選択部を表示することが可能な仕組みを提供することができる。
【0128】
例えば、ユーザが装着したHMDの位置する部屋と、共有画像の位置する部屋とに応じて、共有画像の表示方法を変更してユーザに提示することができる。
【0129】
これにより、仮に一覧に表示する共有画像(過去の位置の識別情報)が多い場合であっても、一覧表示部を過剰に拡大してしまいHMDの表示領域を圧迫してしまう危険を低減できる。
【0130】
なお、上述した実施形態においては、
図11のステップS1103で、HMD101と共有画像が同じ部屋の中にあるか判定するものとしたが、例えば、HMD101と共有画像が同じフロアにあるか判定するようしにてもよい。
【0131】
具体的には、ステップS1103においてPC100のCPU201が、ステップS1101で取得したHMD101の位置するフロアと、ステップS1102で取得した共有画像に対応するフロアとが一致するか判定し、一致する場合は処理をステップS1104に移行し、一致しない場合は処理をステップ1106に移行する。
【0132】
これにより、仮に一覧に表示する共有画像(過去の位置の識別情報)が多い場合であっても、一覧表示部を過剰に拡大してしまいHMDの表示領域を圧迫してしまう危険を低減できる。
【0133】
また、
図6の660に示す部屋の情報がない場合であっても、フロアの情報さえれば、ユーザと記録済の位置の関係に応じて適切に当該位置の選択部を表示することが可能となる。
【0134】
また、上述した実施形態においては、共有画像として記憶するデータは静止画である画像として説明したが、例えば動画像であってもよい。動画の撮影場所=動画の撮影が開始された時点(録画開始時点)の撮影者のHMDの位置とする。
【0135】
以上、本発明の実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【0136】
例えば、
図2に示すPC100の構成を全て備えるHMD101が、自機の機能をCPU201で実行して、上述した実施形態においてPC100の実行するものとして説明した処理の全てを、実行するようにしてもよい。
【0137】
具体的には、HMD101とPC100が一体であり、1つ筐体として、HMD101のCPU201が、ステップS504〜S509の処理及びその他の図のフローチャートに記載の処理を実行するよう構成してもよい。この場合、PC100の機能は各HMD101に備わり、各HMD101の記憶装置に、光学センサ104から取得された各HMD101の位置姿勢が記憶されるものとする。
【0138】
なお、上述した実施形態においては、複合現実における視点移動と案内について説明したが、例えば視点移動及び経路案内の表示を、仮想現実や拡張現実の技術を用いて実現するようにしてもよい。
【0139】
また、上述した実施形態においては、現実画像と仮想物体の描画データを重畳することで複合現実画像を生成するものとしたが、例えば透過型(シースルー型)のHMD101を採用し、透過率100%の現実画像に透過率0%の描画データを重ね合わせてディスプレイに表示し、現実の情報はディスプレイ越しに肉眼で確認できるような複合現実画像を生成・表示するようにしてもよい。
【0140】
また、上述した実施形態においては、MR画像を生成するものとしたが、例えば仮想世界の画像のみを表示するようにしてもよい。つまり、複合現実ではなく、仮想現実の技術を用いて本発明を実現するようにしてもよい。
【0141】
また、本発明におけるプログラムは、各図に示すフローチャートの処理方法をコンピュータが実行可能なプログラムであり、本発明の記憶媒体は各図の処理方法をコンピュータが実行可能なプログラムが記憶されている。なお、本発明におけるプログラムは各図の各装置の処理方法ごとのプログラムであってもよい。
【0142】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読み出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0143】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記録媒体は本発明を構成することになる。
【0144】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク、ソリッドステートドライブ等を用いることができる。
【0145】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0146】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0147】
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0148】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0149】
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。