(57)【要約】【課題】  体験者が体感しているＣＧモデルが、異なるローカル座標空間に属する共同体験者に遮られて視認し難くなることを抑制する。【解決手段】  ＨＭＤを接続しているＰＣは、ＨＭＤの位置姿勢に基づき、ＨＭＤで撮像した画像にＣＧモデルを合成し、ＨＭＤのディスプレイに表示させる。また、ＰＣは、自身とは異なるローカル座標空間に位置する他のＰＣと通信し、互いの体験者の位置姿勢を共有している。共同体験者のアバターを、合成対象として更に合成する。このとき、自装置の体験者とＣＧモデルとの間に、共同体験者が位置する場合には、共同体験者のアバターを透過などの出力制御して合成する。【選択図】  図１
2018106297.tif 000002
【特許請求の範囲】
【請求項１】
複合現実感提示システムであって、
撮像手段及び表示手段を有する、複数の頭部装着可能なデバイスと、
前記デバイスそれぞれが属するローカル座標空間の識別情報、前記撮像手段で撮像する画像への合成対象のＣＧモデルの描画のためのＣＧモデル情報、及び、各デバイスを装着する体験者に代わって表示されるアバターの描画のためのアバター情報を記憶する記憶手段と、
前記デバイスそれぞれの位置姿勢を検出する検出手段と、
前記デバイスそれぞれの撮像手段が撮像した画像に、前記ＣＧモデル及び前記アバターをそれぞれの位置姿勢に基づいて合成し、当該合成して得た合成画像を、それぞれの表示手段に出力する制御手段とを有し、
前記制御手段は、
前記複数のデバイスにおける１つを着目デバイスとしたとき、当該着目デバイスの撮像手段が撮像した画像に、
（１）当該着目デバイスの位置姿勢に基づく前記ＣＧモデル、
（２）前記着目デバイスとは異なるローカル座標空間に属する他デバイスに対応するアバター
を合成する合成手段を含み、
前記合成手段は、前記着目デバイス、前記ＣＧモデル及び前記他デバイスとの位置関係に基づき、前記ＣＧモデルを視認させるべく当該他デバイスに対応するアバターの出力を制御して前記ＣＧモデル及び前記アバターを合成する
ことを特徴とする複合現実感提示システム。
【請求項２】
前記合成手段は、前記着目デバイス、前記ＣＧモデルとの間に、前記他デバイスが位置する場合、当該他デバイスに対応するアバターを透過して合成することを特徴とする請求項１に記載の複合現実感提示システム。
【請求項３】
体験者の視点からの視線方向に位置するＣＧモデルを特定する特定手段を有し、
前記合成手段は、前記特定手段で特定したＣＧモデルと前記体験者の視点との間に、前記他デバイスが位置するとき、当該他デバイスのアバターを透過して合成する
ことを特徴とする請求項１に記載の複合現実感提示システム。
【請求項４】
前記合成手段は、
透過して合成するアバターが存在する場合、当該アバターが透過合成されることを示すメッセージを、前記着目デバイスの撮像手段が撮像した画像に合成する
ことを特徴とする請求項２又は３に記載の複合現実感提示システム。
【請求項５】
前記合成手段は、前記着目デバイスと同じローカル座標空間に属する他デバイスについては、当該他デバイスの体験者の頭部のアバターを合成する
ことを特徴とする請求項１乃至４のいずれか１項に記載の複合現実感提示システム。
【請求項６】
前記デバイスそれぞれと通信するサーバを更に有し、
前記検出手段、及び、前記合成手段は、前記デバイスそれぞれが有し、
前記サーバは、各デバイスが検出した位置姿勢情報、及び、各デバイスが属するローカル座標空間を示す識別情報を、他のデバイスに向けて送信することで、各デバイスが互いの位置姿勢情報及び前記識別情報を共有させる
ことを特徴とする請求項１乃至５のいずれか１項に記載の複合現実感提示システム。
【請求項７】
前記デバイスは、
前記サーバと通信すると共に、前記検出手段、及び、前記合成手段として機能するアプリケーションプログラムを実行する情報処理装置と、
前記表示手段としての表示装置及び前記撮像手段としてのカメラ、並びに、前記情報処理装置と通信するための通信インターフェースとを有するＨＭＤ装置と
を含むことを特徴とする請求項６に記載の複合現実感提示システム。
【請求項８】
ディスプレイ及びカメラを有する頭部装着可能なデバイスと通信可能に接続される情報処理装置であって、
ＣＧモデルを描画するためのＣＧ描画情報を記憶する記憶手段と、
体験者に装着される前記デバイスの位置姿勢を検出する検出手段と、
前記デバイスから、当該デバイスが有するカメラで撮像した画像を受信し、前記検出した位置姿勢に基づく前記ＣＧモデルを前記画像に合成し、合成して得た合成画像を前記デバイスが有するディスプレイに表示させるために送信する合成手段とを有し、
前記情報処理装置は、
当該情報処理装置とは異なるローカル座標空間に属する他の情報処理装置とネットワークを介して通信するための通信手段と、
前記通信手段を介して、それぞれが有するデバイスの位置姿勢を、それぞれの体験者の頭部の位置姿勢を表す情報として共有する共有手段を更に有し、
前記記憶手段は、
前記他の情報処理装置における共同体験者に代わるアバターを描画するためのアバター描画情報を更に記憶し、
前記合成手段は、
前記デバイス、前記ＣＧモデル及び前記共同体験者が装着するデバイスの位置関係に基づき、前記ＣＧモデルを視認させるべく当該共同体験者に対応するアバターの出力を制御して前記ＣＧモデル及び前記アバターを合成する
ことを特徴とする情報処理装置。
【請求項９】
前記通信手段は、
ネットワーク上の、前記他の情報処理装置との中継装置として機能するサーバと通信することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記合成手段は、前記デバイス、前記ＣＧモデルとの間に、前記共同体験者が位置する場合、当該共同体験者に対応するアバターを透過して合成することを特徴とする請求項８又は９に記載の情報処理装置。
【請求項１１】
体験者の視点からの視線方向に位置するＣＧモデルを特定する特定手段を有し、
前記合成手段は、前記特定手段で特定したＣＧモデルと前記体験者の視点との間に、前記共同体験者が位置するとき、当該共同体験者のアバターを透過して合成する
ことを特徴とする請求項８又は９に記載の情報処理装置。
【請求項１２】
体験者の頭部に装着可能であって、ディスプレイ及びカメラを搭載したデバイスと通信可能に接続され、記憶手段、及び、ネットワークと通信するための通信手段を有する情報処理装置の制御方法であって、
前記記憶手段は、ＣＧモデルを描画するためのＣＧ描画情報、及び、共同体験者に代わるアバターを描画するためのアバター描画情報を記憶し、
前記方法は、
前記体験者に装着される前記デバイスの位置姿勢を検出する検出工程と、
前記通信手段を介して、それぞれが有するデバイスの前記位置姿勢を、それぞれの体験者の頭部の位置姿勢を表す情報として共有する共有工程と、
前記デバイスから、当該デバイスが有するカメラで撮像した画像を受信し、前記検出した位置姿勢に基づく前記ＣＧモデル並びに前記共同体験者の位置姿勢に基づくアバターを前記画像に合成し、合成して得た合成画像を前記デバイスが有するディスプレイに表示させるために送信する合成工程とを有し、
前記合成工程は、
前記デバイス、前記ＣＧモデル及び前記共同体験者が装着するデバイスの位置関係に基づき、前記ＣＧモデルを視認させるべく当該共同体験者に対応するアバターの出力を制御して前記ＣＧモデル及び前記アバターを合成する
ことを特徴とする情報処理装置の制御方法。
【請求項１３】
体験者の頭部に装着可能であって、ディスプレイ及びカメラを搭載したデバイスと通信可能に接続され、記憶手段、及び、ネットワークと通信するための通信手段を有するコンピュータに読み込ませ実行させることで、前記コンピュータに、請求項１２に記載の方法の各工程を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複合現実感提示システム、及び、情報処理装置とその制御方法、並びに、プログラムに関するものである。
【背景技術】
【０００２】
近年、複合現実（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ／以下、ＭＲと記載）の技術が普及している。複合現実の技術を用いて、ヘッドマウントディスプレイ（ＨＭＤ）を装着したユーザに対し、現実画像にＣＧモデルを重畳配置した複合現実画像を提供し、現実と仮想を複合した複合現実の世界を体験させることができる。複合現実画像を生成するにあたり、ＨＭＤの位置とＣＧモデルの位置とを、センサや二次元マーカを用いて特定する手法が取られている。
【０００３】
特許文献１には、ＨＭＤで撮像された画像の中に写る二次元マーカを用いてＨＭＤの位置姿勢を特定し、複合現実画像を提供する技術が記載されている。また、特許文献２には、磁気センサを用いてＨＭＤの位置姿勢を特定し、複合現実画像を提供する技術が記載されている。
【０００４】
また、特許文献３にはＨＭＤから見える現実画像の特定のものについて、仮想ＣＧオブジェクトが隠してしまう場合に、仮想ＣＧを透明にするする技術が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−３０８５１４号公報
【特許文献２】特開２００３−２４０５３２号公報
【特許文献３】特開２００５−１２８８７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献３では、仮想ＣＧが現実空間の特定のものを遮っている場合、仮想ＣＧを透明化する事により、現実空間の特定のものが見えない状態を防ぐ事ができる。
【０００７】
しかし、仮想ＣＧに遮られて見えなくなるものの対象は現実空間の特定のものだけではなく、複数の仮想ＣＧやアバターが存在する世界（例えば、同じ仮想ＣＧを複数の現実空間上で共有して、ＨＭＤを利用した状態で会議を行う）においては、仮想ＣＧを見ている時に、移動したユーザに対応するアバターによって仮想ＣＧを遮ってしまうことが存在する。
【０００８】
実際に体験者が現実空間の特定のものを見ていない場合でも、不要に仮想ＣＧ（アバター含む）を透明化すると、没入感を失うという課題がある。実際の体験においては、複数の仮想ＣＧが表示されているため、適切な仮想ＣＧの透明化（非表示含む）の制御することが望まれる。
【０００９】
そこで、本発明は、撮像装置を用いて体験しているユーザが見ている仮想物体を他の体験しているユーザの移動により遮ることを防ぐ技術を提供する。
【課題を解決するための手段】
【００１０】
この課題を解決するため、例えば本発明の複合現実感提示システムは以下の構成を有する。すなわち、
複合現実感提示システムであって、
撮像手段及び表示手段を有する、複数の頭部装着可能なデバイスと、
前記デバイスそれぞれが属するローカル座標空間の識別情報、前記撮像手段で撮像する画像への合成対象のＣＧモデルの描画のためのＣＧモデル情報、及び、各デバイスを装着する体験者に代わって表示されるアバターの描画のためのアバター情報を記憶する記憶手段と、
前記デバイスそれぞれの位置姿勢を検出する検出手段と、
前記デバイスそれぞれの撮像手段が撮像した画像に、前記ＣＧモデル及び前記アバターをそれぞれの位置姿勢に基づいて合成し、当該合成して得た合成画像を、それぞれの表示手段に出力する制御手段とを有し、
前記制御手段は、
前記複数のデバイスにおける１つを着目デバイスとしたとき、当該着目デバイスの撮像手段が撮像した画像に、
（１）当該着目デバイスの位置姿勢に基づく前記ＣＧモデル、
（２）前記着目デバイスとは異なるローカル座標空間に属する他デバイスに対応するアバター
を合成する合成手段を含み、
前記合成手段は、前記着目デバイス、前記ＣＧモデル及び前記他デバイスとの位置関係に基づき、前記ＣＧモデルを視認させるべく当該他デバイスに対応するアバターの出力を制御して、前記ＣＧモデル及び前記アバターを合成することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、体験者が体感しているＣＧモデルが、異なるローカル座標空間に属する共同体験者に遮られて視認し難くなることを抑制することが可能になる。
【図面の簡単な説明】
【００１２】
【図１】実施形態における、情報処理システム構成図の一例を示す図である。
【図２】実施形態における、各種装置のハードウェア構成の一例を示す図である。
【図３】実施形態における、各種装置の機能構成の一例を示す図である。
【図４】実施形態における、各種装置のモジュール構成の一例を示す処理図である。
【図５】実施形態における、複合現実画像の生成及び表示処理の一例を示す処理図である。
【図６】実施形態における、サーバ側の初期化処理の一例を示す処理図である。
【図７】実施形態における、ＰＣ側の初期化処理の一例を示す図である。
【図８】実施形態における、ＰＣからサーバに位置・姿勢を送信する処理の一例を示す処理図である。
【図９】実施形態における、別拠点にいるアバターを現実空間に重畳する処理図である。
【図１０】実施形態における、体験者が注視している仮想ＣＧを特定する処理図である。
【図１１】実施形態における、各種データの構成の一例を示す図である。
【図１２】実施形態における、複数拠点のイメージを示す図である。
【図１３】実施形態における、本発明が解決したい課題である注視している仮想ＣＧをアバターが遮るイメージ図である。
【図１４】実施形態における、本発明が解決するイメージ図である。
【図１５】他の実施形態を説明するフローチャートである。
【発明を実施するための形態】
【００１３】
以下、添付図面に従って発明に係る実施形態を詳細に説明する。
【００１４】
図１は、本実施形態における複合現実感提示システムの構成図である。図示のように、実施形態における本システムの各種装置は拠点毎にネットワーク１５１、ネットワーク１５２を介して通信可能に接続されている。つまり、それぞれがネットワーク通信インターフェースを有する。拠点間はネットワーク１５０によって通信可能に接続されている。例えば拠点１においてＰＣ（情報処理装置）１００ａ乃至１００ｃからサーバ２００と通信する場合はネットワーク１５２を介して通信可能に接続される。拠点２のＰＣ１００ｄ乃至１００ｄからサーバ２００と通信する場合はネットワーク１５１、ネットワーク１５０を介して通信可能に接続される。なお、ここで言う、拠点とは、ローカル座標空間を区別すするための表現であり、例えば、東京地区、大阪地区を指していると考えると理解しやすい。また、同じ建屋であっても、異なる部屋、異なるフロアでも構わない。
【００１５】
なお、ネットワーク１５１、１５２はローカルネットワーク、ネットワーク１５０はインターネットがその典型である。また、各デバイス（ＨＭＤ，ＰＣ，サーバ）間の通信形態は有線、無線を問わない。なお、ＨＭＤは、一般に、Head Mounted Displayを指すが、例えば、スマホ及びそれを収納して頭部装着可能にする筐体であっても構わない。更に、以下の説明において、例えば「ＰＣ１００ａ」と表記した場合には特定の１つのＰＣを指し示すものとし、ａ、ｂ…等の添え字無し参照番号で「ＰＣ１００」とした場合には、図示のＰＣ１００ａ,ｂ,ｃ、…の全てについて表すものと理解されたい。参照符号１０３、１０４についても同様である。
【００１６】
ＨＭＤ１０１ａには、ＨＭＤ１０１に固有の光学式マーカ１０３ａが搭載されている。この光学式マーカ１０３ａを、フロアの天井等に設置された複数のカメラ１０４ａ，１０４ｂにて撮像して、光学式マーカ１０３ａを搭載したＨＭＤ１０１ａの位置姿勢を検出可能となっている。なお、位置姿勢の検出処理は、それぞれのＰＣにて行われるものとする。例えば、ＨＭＤ１０１ａの位置姿勢は、ＨＭＤ１０１ａを接続しているＰＣ１００ａにて実行されるアプリケーションにて検出（算出）される。これは拠点２でも同じである。
【００１７】
なお、特許文献１に開示されているように、ＨＭＤ１００ａが有するカメラで撮像した画像内に２次元マーカが複数存在する程度に、それら２次元マーカを現実空間に配置し、ＨＭＤ１００ａによる撮像画像内の２次元マーカをＰＣ１００ａの処理にて識別することで、そのＨＭＤ１００の位置姿勢を検出する技術を用いても構わない。図１の構成は、あくまで例示であると認識されたい。
【００１８】
ＰＣ１００ａには、ＨＭＤ１０１ａ（撮像装置ともいう）により撮像される現実画像に重畳する、合成対象の３次元モデル（ＣＧモデル／仮想オブジェクト）を表すデータ（描画データ、現実空間における位置・姿勢を示すデータ）が記憶されている。
【００１９】
また、ＰＣ１００ａは、自機の管理するＨＭＤ１０１ａより現実画像を取得して、ＰＣ１００ａが有する記憶部に取得した画像を記憶する。また、ＰＣ１００ａは、カメラ１０４ａ，１０４ｂで撮像された画像内の、自機が管理するＨＭＤ１００ａの光学式マーカから、そのＨＭＤ１０１ａの位置姿勢を特定し、記憶部にその位置姿勢を記憶する。
【００２０】
ＰＣ１００ａでは、ＨＭＤ１０１ａの位置姿勢と、記憶部に記憶されている３次元モデル及び３次元モデルの位置姿勢の情報を用いて、現実画像に３次元モデルを重畳した複合現実画像を生成する。そして、当該複合現実画像をＨＭＤ１０１ａのディスプレイに表示させるべく、ＨＭＤ１０１ａに送信する。ＨＭＤ１０１ａは受信した複合現実画像を内部に設けられたディスプレイに表示し、装着者に提示することになる。
【００２１】
上記はＰＣ１００ａ、ＨＭＤ１０１ａについての説明であるが、他のＰＣとＨＭＤでも同様であるものとする。
【００２２】
なお、実施形態では１台のＰＣに対して１台のＨＭＤを接続する構成としたが、１台のＰＣに対して複数のＨＭＤが接続する構成であっても構わない。この場合、ＰＣは、接続された各ＨＭＤぞれぞれの位置姿勢を特定し、それぞれに応じた複合現実画像を生成する。そして、ＰＣは、それぞれのＨＭＤに向けて、対応する複合現実画像を送信することになる。
【００２３】
以上、図１のシステムについて説明した。次に図２を参照して、本実施形態における、各種装置のハードウェア構成の一例について説明する。
【００２４】
図２はＰＣ１００ａとＨＭＤ１０１ａとのブロック構成図を示している。他のＰＣ、ＨＭＤでも同様である。
【００２５】
ＰＣ１００ａ内のＣＰＵ２０１は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。なお、サーバ２００とＰＣ１００ａは、ＣＰＵの処理能、メモリ容量、実行するプログラムの差があっても。基本ハードウェアは実質的に同じである。
【００２６】
また、ＲＯＭ２０２には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  ＯｕｔｐｕｔＳｙｓｔｅｍ）やオペレーティングシステム（ＯＳ）、その他各種装置の実行する機能を実現するために必要な各種プログラムが記憶されている。
【００２７】
ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＡＭ２０３にロードして、プログラムを実行することで各種動作を実現するものである。
【００２８】
本実施形態のＰＣ１００ａが後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０３にロードされることによりＣＰＵ２０１によって実行されるものである。さらに、本実施形態に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ２１１に格納されている。
【００２９】
入力コントローラ（入力Ｃ）２０５は、入力デバイス（キーボードやマウス等のポインティングデバイス）２０９からの入力を制御する。また、入力デバイス２０９がタッチパネルの場合、ユーザがタッチパネルに表示されたアイコンやカーソルやボタンに合わせて押下（指等でタッチ）することにより、各種の指示を行うことができることとする。なお、タッチパネルは、マルチタッチスクリーンなどの、複数の指でタッチされた位置を検出することが可能なタッチパネルであってもよい。
【００３０】
ビデオコントローラ（ＶＣ）２０６は、ＨＭＤ１００ａが備える右目・左目ディスプレイ２２２等の表示器への表示を制御する。右目・左目ディスプレイ２２２に対しては、例えば外部出力端子（例えば、Ｄｉｇｉｔａｌ  Ｖｉｓｕａｌ  Ｉｎｔｅｒｆａｃｅ）を用いて出力される。また、右目・左目ディスプレイ２２２は、右目用のディスプレイと左目用のディスプレイとから構成されている。また、ビデオコントローラ２０６は、ＰＣ１００ａの備えるディスプレイ２１０（ＣＲＴディスプレイ等）の表示器への表示を制御する。なお、図２では、表示器はＣＲＴディスプレイだけでなく、液晶ディスプレイ等の他の表示器であってもよい。
【００３１】
メモリコントローラ（ＭＣ）２０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク（ＨＤ）やフレキシブルディスク（ＦＤ）或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ２１１へのアクセスを制御する。
【００３２】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）２０８は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。また、通信Ｉ／Ｆコントローラ２０８は、ギガビットイーサネット（登録商標）等を通じて光学式センサ１０４との通信も制御する。
【００３３】
汎用バス２１２は、ＨＭＤ１００ａの右目・左目ビデオカメラ２２１からの映像を取り込む用途と、視線センサ２２３からＨＭＤ体験者（ユーザ）の視線位置を取り込む用途に使用される。右目・左目ビデオカメラ２２１からは、外部入力端子（例えば、ＩＥＥＥ１３９４端子）を用いて入力される。右目・左目ビデオカメラ２２１は、右目用のビデオカメラと左目用のビデオカメラとから構成されている。視線センサ２２３はＨＭＤ体験者の視線情報を取得するためのセンサである。視線センサ２２３は、視線検出（アイトラッキング）技術を用いて実現されるものである。視線検出技術は、様々な技術があるが、例えば、赤外線を用いて、目の動きを検知する技術があげられる。視線センサ２２３に備わる赤外線LEDが赤外線を出力し，その赤外線が体験者の瞳孔で反射される。この反射光を赤外線センサが検出し、瞳孔の動きとして視線を特定する。赤外線を用いず、目の動きを捉えるカメラで、目頭、眼球の虹彩の位置関係で視線を特定するようにしてもよい。
【００３４】
尚、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ上での表示を可能としている。また、ＣＰＵ２０１は、ディスプレイ上の不図示のマウスカーソル等でのユーザ指示を可能とする。なお、ＨＭＤ１０１ａとＰＣ１００ａが同一筐体とする構成であってもよい。
【００３５】
以上、図２について説明した。次に図３（ａ），（ｂ）を参照して、本実施形態における各種装置の機能構成の一例について説明する。
【００３６】
図３（ａ）はサーバ２００、同図（ｂ）はＰＣ１００ａの機能構成図である。他のＰＣも同図（ｂ）の機能構成であると理解されたい。
【００３７】
サーバ２００は、通信制御部３０１、位置情報管理部３０２、位置情報送信部３０３、位置情報受信部３０４、モデルデータ管理部３０５、モデルデータ送信部３０６を含む。
【００３８】
通信制御部３０１は、各ＰＣ１００との通信を制御する。位置情報管理部３０２は、複数のＨＭＤ１００の位置・姿勢情報（拠点を示す情報も含む）を管理する。位置情報送信部３０３は、ＨＭＤ１００ａの位置・姿勢情報を、ＨＭＤ１００ａを接続するＰＣを除く他のＰＣに送信する。位置情報受信部３０４は、各ＰＣ１００から、それぞれに接続されたＨＭＤ１００の位置・姿勢情報を受信する。モデルデータ管理部３０５は、仮想ＣＧモデルの描画データ、並びに、アバターの描画データを管理する。また、モデルデータ管理部３０５は、仮想ＣＧモデル、アバターの位置情報をも管理する。モデルデータ送信部３０６は、仮想ＣＧモデルやアバターに係る情報（描画データ、位置情報）を各ＰＣ１００に送信する。
【００３９】
ＰＣ１００ａは通信制御部３１１、位置特定部３１２、注視モデル特定部３１３、除外アバター特定部３１４、位置情報送信部３１５、位置情報受信部３１６、モデルデータ受信部３１７、モデルデータ表示部３１８、モデルデータ管理部３１９を含む。
【００４０】
通信制御部３１１は、サーバ２００との通信を制御する。位置特定部３１２は、ＰＣ１００自身に接続されたＨＭＤ１０１ａの位置・姿勢を特定する。注視モデル特定部３１３は、自身に接続されたＨＭＤ１００ａにある視線センサ２２３により取得した視線情報を元に、ＨＭＤ１０１ａのカメラの視線の先にある仮想ＣＧモデルを特定する。除外アバター特定部３１４は、注視モデル特定部３１３により注視している仮想モデルを遮るアバターを特定する。
【００４１】
位置情報送信部３１５は、ＰＣ１００ａに接続されているＨＭＤ１０１ａの位置・姿勢情報（拠点を示す情報を含む）をサーバ２００に送信する。位置情報受信部３１６は、サーバ２００から、ＰＣ１００ａ以外の他のＰＣ１００それぞれに接続されたＨＭＤ１０１の位置、姿勢情報を受信する。
【００４２】
モデルデータ受信部３１７は、サーバ２００から仮想ＣＧモデルやアバターの描画データを受信する。モデルデータ表示部３１８は、仮想ＣＧモデルやアバターを現実映像に重畳し表示させる。モデルデータ管理部３１９は、サーバ２０１から受信した仮想ＣＧモデルデータ、アバターの描画データを管理する。
【００４３】
上記の説明からわかるように、ＰＣ１００ａは、自身がどの拠点に属しているかを示す情報と自身の管理対象のＨＭＤ１０１ａに係る位置姿勢情報をサーバ２００に送信する。そして、ＰＣ１００ａは、他のＰＣ１００ｂ〜１００ｆに接続されたＨＭＤ１０１ｂ〜１０１ｆの位置姿勢情報やその拠点に関する情報をサーバ２００から受信する。つまり、システムにおける各ＰＣ１００は、システム上に存在する全ＨＭＤ１０１の位置姿勢とその拠点を共に共有することになる。
【００４４】
以上、図３について説明した。なお、本実施形態においては、ＰＣ１００ａとＨＭＤ１０１ａを別筐体で実現して説明しているが、ＰＣ１００ａとＨＭＤ１０１ａが同一筐体で実現する場合、ＰＣ１００の機能をＨＭＤ１０１に備えてもよい。
【００４５】
次に図４を参照して、実施形態における、各種装置のモジュール構成の一例について説明する。なお、同図は、ＰＣ１００ａと、ＰＣ１００ａに接続されたＨＭＤ１０１ａとの関係を示しているが、他のＰＣとＨＭＤとの関係も同様である。
【００４６】
ＰＣ１００ａは、オペレーティングシステム４０１（ＯＳ）、グラフィックエンジン４０２、複合現実感プラットフォーム４０３（ＭＲプラットフォームともいう）、複合現実感アプリケーション４０４（ＭＲアプリケーションやビューアアプリケーションともいう）で構成され、ＣＰＵ２０１により制御されている。
【００４７】
オペレーティングシステム４０１は、ＨＭＤ１０１の入出力を制御しカメラ２２１から入力インターフェースを介して得られた現実画像を複合現実感プラットフォーム４０３へ受け渡す。またグラフィックエンジン４０２で描画された複合現実画像を、出力インターフェースを介して、ディスプレイ２２２へ出力する。
【００４８】
グラフィックエンジン４０２は、外部メモリ２１１に記憶されている３次元モデルから描画する画像を生成し、現実画像に重畳し、合成する。描画に利用するエンジンは、例えば、ＯｐｅｎＧＬやＤｉｒｅｃｔＸなどの広く利用されているグラフィックエンジンでも、独自に開発したグラフィックエンジンでもよい。なお、本実施形態ではグラフィックライブラリとしてＯｐｅｎＧＬを利用するものとする。
【００４９】
複合現実感プラットフォーム４０３は、例えばカメラ１０４ａ、１０４ｂで撮像した光学マーカ１０３の検出し、マーカ１０３の向き、カメラかたマーカに向かう方向と距離とからＨＭＤ１０１ａの位置姿勢を特定し、現実空間と仮想空間の位置合わせを行う。
【００５０】
なお、位置姿勢や位置合わせの技術は、既知の技術として開示されている、特開２００２−３２７８４号公報、特開２００６−０７２９０３号公報、特開２００７−１６６４２７号公報等を用いて実現することも可能である。
【００５１】
複合現実感アプリケーション４０４は、複合現実感プラットフォーム４０３からＨＭＤ１０１ａの位置姿勢、３次元モデルの形状の情報、位置姿勢（アバターを含む）の情報を受け付け、グラフィックエンジン４０２に対して、３次元モデルの描画命令を発行する。この時、ＯｐｅｎＧＬのＡＰＩを用いて、描画する３次元モデルの識別情報、位置姿勢の情報を設定した命令を発行する。
【００５２】
以上が図４について説明した。次に図５を参照して、本実施形態における複合現実画像の生成及び表示処理について説明する。
【００５３】
ＨＭＤ１０１は、ステップＳ５０１で起動後、カメラ２２１の機能を用いて現実画像の撮像を開始する（ステップＳ５０２）。カメラ２２１の撮像フレームレートは特に問わないが、自然な映像とするため、実施形態では３０フレーム／秒とする。そして、ＨＭＤ１０１は、撮像処理によって取得した現実画像をＰＣ１００ａに送信する（ステップＳ５０３）。なおステップＳ５０３と並行して、ＨＭＤ１０１は、視線センサ２２３から視線情報もＰＣ１００ａに送信するものとする。
【００５４】
ＰＣ１００ａのＣＰＵ２０１は、ＨＭＤ１０１ａから現実画像（撮像画像）を受信し（ステップＳ５０４）、受信した現実画像を外部メモリ２１１に記憶する（ステップＳ５０５）。
【００５５】
ＰＣ１００ａのＣＰＵ２０１は、カメラ１０４ａ，１０４ｂからの撮像画像に基づき、ＨＭＤ１０１ａの位置姿勢を取得して（ステップＳ５０６）、外部メモリ２１１に記憶する（ステップＳ５０７）。例えば、図１１（ａ）のＨＭＤ情報１１１０に示すように、ＨＭＤ１０１ａの識別情報であるＨＭＤ  ＩＤ１１１１と、当該ＨＭＤの位置１１１３（Ｘ，Ｙ，Ｚ座標）、姿勢１１１４（Ｘ，Ｙ，Ｚ座標の値により表現されるＨＭＤ１０１の向いている方向）を記憶する。なお、アバターＩＤ１１１５は、個々のＨＭＤに代わって表示されるアバターの識別子であり、本システム（サーバ２００）にログインした際に、各ＰＣのＨＭＤに割り当てられるものである。アバターＩＤは、ログイン時に、ＨＭＤを装着するユーザが、サーバから提示された中から選択するものとする。アバターＩＤは、同図（ｇ）の符号１１７０に示すように、アバターの描画データを特定する情報としても利用される。なお、サーバ２００は、ＨＭＤを装着するユーザ（ＰＣ）からのログインが行われる度に、それ以前にログイン済みのユーザに対して、割り当てたアバターＩＤ，アバターの描画データを送信するものとする。この結果、ログイン中の全ＰＣは、仮想ＣＧモデルに加え、全ＨＭＤに対応するアバターＩＤ，アバター描画データを共有することになる。
【００５６】
図１１のように、ＨＭＤ（ＨＭＤ  ＩＤ）ごとにアバターＩＤを保持するようにしたが、アバターの描画データは、拠点ごとに管理するようにしてもよい。この場合、例えば、他拠点で同じ拠点のＨＭＤに対する位置には、同じアバターの描画データを用いて合成し、ＨＭＤに表示する。この時、ＨＭＤ情報１１１０に予め登録した体験者を識別するための体験者名（不図示）を表示することが望ましい。
【００５７】
さて、ＰＣ１００ａのＣＰＵ２０１は、外部メモリ２１１から３Ｄモデル（仮想ＣＧモデルやアバター）の情報を取得し、ＨＭＤ１０１から受信した現実画像に重畳して複合現実画像（ＭＲ画像）を生成して（ステップＳ５０８）、ＨＭＤ１０１に送信する（ステップＳ５０９）。
【００５８】
３Ｄモデルの情報は、例えば図１１（ｂ）のモデル情報１１２０に示す情報、図１１（ｇ）のアバター情報１１７０である。なお、モデル情報１１２０は、予めＰＣ１００の外部メモリ２１１に記憶されていても構わない。モデルＩＤ１１２１は３Ｄモデルの識別情報である。モデル名１１２２は、３Ｄモデルのファイル名である。ファイルパス１１２３は、ファイルが記憶されている場所を示す。位置１１２４、姿勢１１２５は３Ｄモデルの位置姿勢を示す。ＰＣ１００ａのＣＰＵ２０１は、ＨＭＤの位置１１１３、姿勢１１１４から、ＨＭＤ１０１ａと同じ画角を持つカメラが、位置１１２４、姿勢１１２５の３Ｄモデルを撮像した場合の、当該３Ｄモデルの画像を描画データ１１４１として生成する。そして、当該描画データを現実画像と合成することで、図１１のＭＲ画像テーブル１１５０に示す複合現実画像（ＭＲ画像）を生成する。生成した画像データ１１５１を、ＨＭＤ１０１ａに送信するため記憶する。
【００５９】
ＨＭＤ１０１ａは、ＰＣ１００ａから複合現実画像を受信し（ステップＳ５１０）、表示画面に表示する（ステップＳ５１１）。
【００６０】
以上、図５について説明した。次に図６を参照して、本実施形態における、サーバ２００の起動処理について説明する。
【００６１】
図６のフローチャートは、サーバ２００の起動処理であり、サーバ２００の起動からＰＣ１００との接続処理を示すフローチャートである。
【００６２】
ステップＳ６０１にてサーバ２０１が起動する。そして、サーバ２００は、仮想ＣＧモデル及びその位置、姿勢を読み込み（Ｓ６０２）、読み込んだ仮想ＣＧモデル及びその位置、姿勢情報を保存する（Ｓ６０３）。保存した情報がモデル情報１１２０である。
【００６３】
ＰＣ１００が起動し接続（ログイン）するのを待つ(Ｓ６０４)。接続されたらＰＣ１００から送信されたＨＭＤ情報及び拠点情報を保存する（Ｓ６０５）。その際に、各ＨＭＤにはアバターＩＤも割り当てる。保存された情報がＨＭＤ情報１１１０である。なお、サーバは、ＰＣからの新規接続が行われた際、それ以前に既に接続しているＰＣに対して、新規接続のＰＣ（ＨＭＤ）に割り当てたアバターの描画データも送信する。
【００６４】
以上が図６の説明である。次に図７を参照して、本実施形態における、ＰＣ１００ａの起動処理について説明する。なお、同図に示すフローチャートは、ＰＣ１００ａの起動処理であり、ＰＣ１００ａの起動からサーバ２００への接続処理を示す。
【００６５】
ステップＳ７０１にて、ＰＣ１００ａが起動する。ＰＣ１００ａは、ＨＭＤ情報（ＨＭＤ１０１ａのＩＤ）及び拠点情報（拠点情報となる拠点ＩＤは各ＰＣが予め保持している）を読み込み（Ｓ７０２）、図６で説明したように、事前に起動しているサーバ２００に接続する（Ｓ７０３）。また、この際、ＰＣ１０１ａは、ＨＭＤ情報、拠点情報、アバターＩＤをサーバに送信する（Ｓ７０４）。
【００６６】
以上が図７の説明である。次に図８を参照して、本実施形態における、ＰＣ１００ａにおける、自身が管理するＨＭＤ１０１ａの位置・姿勢情報のサーバ２００への送信する処理について説明する。
【００６７】
図８のフローチャートは、ＰＣ１００ａが自身に接続されたＨＭＤ１０１ａの位置、姿勢情報のサーバ２００への送信、サーバによる管理処理を示している。他のＰＣの同様の処理を行うことで、本システムにおける全ＨＭＤがサーバ２００にて管理されることになる。
【００６８】
ステップＳ８０１では、ＰＣ１００ａは自身に接続されたＨＭＤ１０１ａから現実画像を受信する。そして、ＰＣ１００ａは、自身に接続されたＨＭＤ１０１ａの位置、姿勢を特定する（Ｓ８０２）。実施形態では、カメラ１０４ａ，１０４ｂが撮像したＨＭＤ１０１ａの光学式マーカ１０３ａから、ＨＭＤ１０１ａの位置姿勢を求めるが、ＨＭＤ１０１ａが撮像した画像内の２次元マーカから求めるようにしても構わない。次いで、ＰＣ１００ａは、ＨＭＤ１０１ａの特定した位置、姿勢情報をサーバ２００に送信する（Ｓ８０３）。
【００６９】
サーバ２００は、ＨＭＤ１０１ａの位置、姿勢情報を受信する（Ｓ８０４）。サーバ２００は、受信した情報を自身が有する記憶部（ＲＡＭやＨＤＤ等）に保存する（Ｓ８０５）。図１１（ａ）は、サーバ２００が記憶する各ＨＭＤの記憶状態を示している。
【００７０】
以上、図８について説明した。次に図９を参照して、本実施形態における、アバターの重畳処理について説明する。
【００７１】
図９のフローチャートは、サーバ２００からＰＣ１００ａへの、仮想ＣＧモデルや他のＰＣのＨＭＤ１０１ｂ乃至１０１ｆの位置・姿勢情報の送信、及び、ＰＣ１００ａにおける現実画像に仮想ＣＧモデル（仮想オブジェクトともいう）及びアバター（ユーザオブジェクトともいう）を重畳する処理を示すフローチャートである。なお、説明が前後するが、拠点１と２では、それぞれ予め設定された原点に対してのＨＭＤの位置姿勢を検出するものとする。そして、拠点１、２における原点、及び、それらにおける３次元の３軸の軸方向の対応づけが行われているものとする。
【００７２】
ステップＳ９０１では、サーバ２００に記憶されている、モデル情報１１２０やアバター情報１１７０をＰＣ１００ａに送信する。これにより、ＰＣ１００ａは、仮想ＣＧモデルの位置を取得できる。また、ＰＣ１００ａは、自身に接続されたＨＭＤ１００ａだけでなく、他のＨＭＤ１００ｂ乃至１００ｆの位置情報も取得できる。なお、サーバ２００は、ＨＭＤ１０１の位置姿勢情報を基に、現実画像に重畳表示する仮想ＣＧモデルを特定して、この特定された仮想ＣＧモデル情報をＰＣ１００に送信する構成であってもよい。仮想ＣＧモデル情報を受信した（Ｓ９０２）ＰＣ１００ａは、ＨＭＤ１０１で撮像した現実画像に、そのＨＭＤ１０１ａの位置姿勢から表示する仮想ＣＧモデル画像を重畳させる（Ｓ９０３）。つまり、ＨＭＤ１０１ａを装着したユーザから見える、アバターを除く、ＭＲ画像を生成する。
【００７３】
サーバ２００は、ＰＣ１００ａに、他のＰＣ１００ａ以外のＨＭＤ１０１の位置、姿勢情報及び拠点情報を送信するため、ＨＭＤ情報１１１０をＰＣ１００ａに送信する（Ｓ９０４）。なお、ＰＣ１００ａは、ＨＭＤ１０１ａの位置姿勢の情報を所有している。従って、サーバ２００は、ＨＭＤ情報１１１０から、ＨＭＤ１０１ａの位置姿勢の情報を除外した上でＰＣ１００ａに送信しても良い。ただし、この場合、サーバは、送信先ＰＣ毎に、除外する処理を行うことになり、その負担が増える。そこで、実施形態では、サーバ２００は、単純にＨＭＤ情報１１１０を全ＰＣに送信するようにした。
【００７４】
ＰＣ１００ａは、サーバ２００から受信したＨＭＤ情報１１１０（各ＨＭＤの位置姿勢情報及び拠点情報）を、一旦、メモリ等に保存する（Ｓ９０５）。
【００７５】
ＰＣ１００ａは自身のＨＭＤ１０１ａの位置、姿勢及び、視線情報に基づき、ＨＭＤ１０１ａを装着しているユーザが注視している仮想ＣＧモデルを特定し、特定した仮想ＣＧモデルを注視モデルテーブル１１３０に保存する（Ｓ９０６）。特定には、視線情報から注視点が特定されるため、この注視点にある仮想ＣＧモデルを特定する。
【００７６】
なお、実施形態では、視線センサ２２３で検出した視線情報を用いるものとして説明したが、高い精度を求めないのであれば、ＨＭＤ１０１ａのカメラの撮像範囲内に存在する仮想ＣＧモデルの全てを注視していると見なようにしても良い。この場合、ＨＭＤ１０１ａの視線センサ２２３を不要とすることができる。
【００７７】
Ｓ９０７以降は、仮想ＣＧモデルの合成画像に対する、アバターの合成処理となる。ＰＣ１００ａは、ＨＭＤ情報１１１０内に、自身が管理するＨＭＤ１０１ａを除く他のＨＭＤ１０１ｂ〜１０１ｆをその処理対象とし、以下の処理を行う。
【００７８】
まず、ＰＣ１００ａは、ＨＭＤ情報１１１０から、１つの処理対象のＨＭＤの位置姿勢、拠点を読み出し、ＰＣ１００ａ（正確にはＨＭＤ１０１ａ）が属する拠点と同じか否かを判定する（Ｓ９０７）。同じであれば、処理対象のＨＭＤを装着しているユーザは、ＨＭＤ１０１ａを装着しているユーザと同じ現実空間内に位置することになるので、処理対象ＨＭＤのユーザに代わるアバターを描画する必要がないので、アバター重畳処理をスキップする。同じ拠点のＨＭＤについては、現実画像から人を検出して、仮想ＣＧが表示されないように制御しているためである。例えば、ＨＭＤ１０１ａのユーザが拠点１内に位置している場合には、図１２のＨＭＤ１０１ａ以外のＨＭＤを装着している体験者Ａ、Ｂ、Ｃのように、実際の体験者の画像が表示される。
【００７９】
これにより、他の拠点（異なる体験エリア）のＨＭＤ（撮像装置）の体験者と、同じ拠点の体験者とを識別させることが可能となり、複数拠点を連携した体験でのコミュニケーションをしやすくすることができる。
【００８０】
処理対象のＨＭＤの拠点が、ＨＭＤ１０１ａが位置する拠点と異なっている場合、ＰＣ１００ａは、ＨＭＤ１０１ａを装着しているユーザが注視している仮想ＣＧモデルがあるか否かを判定する（Ｓ９０８）。この判定は、Ｓ９０６において仮想ＣＧモデルが特定できたか否かに対応する。
【００８１】
そして、注視している仮想ＣＧモデルが存在すると判断した場合、ＰＣ１００ａは、処理対象ＨＭＤが、注視している仮想ＣＧモデルを遮る（仮想ＣＧモデルの表示を抑制する）ように位置しているか否かを判定する（Ｓ９０９）。具体的には、ＰＣ１００ａは、処理対象ＨＭＤの座標位置が、ＨＭＤ１０１ａの視点（カメラ２２１）と仮想ＣＧモデルとの間にあるか否かを判定する。なお、ＨＭＤ１０１ａの視点位置から見て、処理対象のＨＭＤまでの距離の方が短く、且つ、仮想ＣＧモデルと処理対象のＨＭＤの角度が閾値以下である、ことを条件にしても良い。
【００８２】
さて、処理対象ＨＭＤが、注視している仮想ＣＧモデルを遮るように位置していると判断された場合、ＰＣ１００ａは、注視している仮想ＣＧモデルが邪魔されないようにするため、処理対象のＨＭＤに対するアバターの透過度を１００％（非表示もしくは非合成などの出力を制御することと等価）とする（Ｓ９１１）。
【００８３】
一方、処理対象ＨＭＤが、注視している仮想ＣＧモデルを遮らないように位置していると判断した場合、処理対象のＨＭＤ用のアバターを、その位置と姿勢に応じて描画し、仮想ＣＧモデルと合成する（Ｓ９１０）。
【００８４】
そして、上記Ｓ９０７以降の処理を、ＨＭＤ１０１ａを除く、全てのＨＭＤに対して行う。この重畳処理を終えた画像を、ＨＭＤ１０１ａへ出力し、表示させる。
【００８５】
なお、上記実施形態では、ＨＭＤ１０１ａと同じ拠点のＨＭＤに対してはアバターの描画・合成を行わないとしたが、同じ拠点に属するユーザはＨＭＤを装着しているので、ＨＭＤから適当な空間範囲を頭部と推定し、頭部（顔）についてはアバターを描画するようにしても良い。
【００８６】
また、デフォルトの設定で、アバターを非表示として制御させてもよい。また、急にアバターが非表示とならないようにするため、段階的にアバターを透明になるようにしてもよい。すなわち、重なるアバターであることを管理しておき、次の複合現実画像（ＭＲ画像）を生成する際に、透過率を変えたアバターを生成して、現実画像に仮想ＣＧモデルの画像と透過率を変えたアバターの画像を重畳する。
【００８７】
以上、図９について説明した。次に図１０を参照して、本実施形態における、注視しているモデルの特定処理について説明する。
【００８８】
図１０のフローチャートは、ＰＣ１００ａに保持しているＨＭＤ１０１ａの位置、姿勢及び、視線センサ２２３より取得した視線情報によりＨＭＤ１０１ａを装着した体験者（ユーザ）が見ている仮想ＣＧモデルを特定する処理のフローチャートである。
【００８９】
ＰＣ１００ａは、Ｓ１００１にて、視線センサ２２３より取得し、図１１（ｆ）の視線情報１１６０の位置１１６１に記憶された視線情報を読み出す。これによりＨＭＤ１０１ａを装着しいている体験者の視線位置を特定する。
【００９０】
Ｓ１００２にて、ＰＣ１０１ａは、図１１の視線情報１１６０の位置１１６１から視線情報と自身のＨＭＤ情報１１１０の位置１１１３、姿勢１１１４（自身の位置、姿勢）よりより、ＨＭＤ１０１ａの見ている位置（カメラ２２１の視線方向の位置）を特定する。見ている位置に仮想ＣＧモデルがあるか判断するため、ＰＣ１０１ａは、図１１（ｂ）のモデル情報１１２０の全てのモデルについて位置１１２４、姿勢１１２５を取り出す。視線の位置（視線情報に重なる位置）に仮想ＣＧモデルがある場合は、視線の先にモデルがあると判断し、ＰＣ１０１ａのメモリに予め確保された図１１（ｃ）の注視しているモデル情報１１３０の注視モデルＩＤ１１３１に、対象のモデルＩＤ１１２０を保存する（Ｓ１００３）。
【００９１】
視線の位置に仮想ＣＧモデルがない場合は、ＰＣ１０１ａは、視線の先にモデルがないと判断し、図１１の注視しているモデル情報１１３０の注視モデルＩＤ１１３１にあるモデルＩＤを削除する（Ｓ１００４）。
【００９２】
なお、注視しているモデルは、所定時間（例えば、２秒間）、同一の仮想ＣＧモデルに、視線があるものを注視しているモデルとして決定するようにする。すなわち、一瞬、或いは、視線が頻繁に移動している場合には、モデル情報１１３０には保存されない。
【００９３】
以上が図１０の説明である。次に図１１（ａ）乃至（ｆ）を参照して、本実施形態における、各種データの構成の一例について説明する。
【００９４】
ＨＭＤ情報１１１０は、ＰＣ１００及びサーバ２００の外部メモリに記憶される。ＨＭＤ情報１１１０はＨＭＤ１０１を一意に示す識別情報であるＨＭＤ ＩＤ１１１１、ＨＭＤ１０１の所属する拠点を位置に示す識別情報である拠点ＩＤ１１１２（拠点名であってもよい）、ＨＭＤ１０１の位置情報である１１１３、ＨＭＤ１０１の姿勢情報である姿勢１１１４、さらには、ＨＭＤに代えて表示するアバターを特定するアバターＩＤを含む情報である。なお、ＨＭＤを使用しているユーザ名も保持するものとする。また、サーバは、ＰＣからログイン要求があるたびに、このＨＭＤ情報１１１０を更新し、既ログインのＰＣにはその差分を送信して、互いに最新のＨＭＤ情報を共有するようになっている。
【００９５】
モデル情報１１２０は、ＰＣ１００及びサーバ２００の外部メモリに記憶される。モデルＩＤ１１２１は仮想ＣＧモデルを一意に示すモデルＩＤ、モデルファイルを示すモデル名１１２２、モデルのファイルパスを示すファイルパス１１２３、モデルを仮想空間に配置する位置情報を示す位置１１２４、モデルを仮想空間に配置した時の姿勢情報を示す姿勢１１２５を含む情報である。
【００９６】
注視モデル情報１１３０は、各ＰＣ１００の外部メモリに記憶されるものである。この情報は、ＨＭＤ１０１が注視しているモデルを示す注視モデルＩＤ１１３１を含む情報である。
【００９７】
描画データ情報１１４０は、ＰＣ１００の外部メモリに記憶される。ＨＭＤ１０１に表示する仮想ＣＧデータを示す描画データ１１４１を含む情報である。ＭＲ画像情報１１５０は、ＰＣ１００の外部メモリに記憶される。ＨＭＤ１０１に表示するＭＲ画像を示す画像データ１１５１を含む情報である。視線情報１１６０はＰＣ１００の外部メモリに記憶される。ＨＭＤ１０１の視線位置を示す位置１１６１を含む情報である。
【００９８】
そして、アバター情報１１７０は、サーバ２００及び各ＰＣ１００の外部メモリに記憶されるものである。なお、着目ＨＭＤ（着目デバイス）に表示すべき合成画像を生成する際に、その着目ＨＭＤと同じ拠点に位置する他ＨＭＤ（他デバイス）に対してはアバターを表示しない（透過表示する）。従って、着目ＨＭＤとは異なる拠点のアバター情報が、各ＰＣの外部メモリに記憶されるようにしてもよい。以上が図１１の説明である。
【００９９】
次に図１２を参照して、本実施形態における、複数拠点で仮想空間を共有するイメージについて説明する。
【０１００】
図１２の参照符号１２０１、１２０２に示す通り、体験者Ａと同じ拠点１には体験者Ｂと体験者Ｃが存在し、体験者１と異なる拠点２には体験者Ｄと体験者Ｅが存在しているものとする。そして仮想空間を共有して各体験者の位置にアバター（各体験者の位置、姿勢を示す３次元モデル）を表示する事で、図１２の参照符号１２０３のように別拠点の体験者があたかも同じ空間に存在するように見せることができる。
【０１０１】
したがって、例えば、東京に居る体験者から見て、大阪という別の拠点に居る体験者（のアバター）をテーブルを挟んで会議を行う等が行えるようになる。なお、ここで言う拠点とは、図９のＳ９０７における判定に用いるものであり、拠点の数に制限はない。例えば、３以上の拠点に分散した体験者が、あたまも一カ所に集って会議するなども可能になる。
【０１０２】
次に図１３を参照して、本実施形態における、解決する課題について説明する。
【０１０３】
図１３の参照１３０１は、複数の拠点で仮想空間を共有しており、図１２の体験者ＡのＨＭＤでの視界のイメージである。図示は、新製品（複合装置；ＭＦＰ）に対応する仮想ＣＧモデルを、各体験者が囲んでいることを示している。体験者Ａからは、同一拠点にいる体験者Ｂと体験者Ｃは現実画像として見えるが、別拠点にいる体験者Ｄと体験者Ｅは、それぞれの位置、姿勢情報を元にアバターとして知覚される。
【０１０４】
ここで、図１３の参照符号１３０２では体験者Ａが仮想ＣＧモデルを注視している状態で、体験者Ｅ（アバター）が体験者Ａと仮想ＣＧモデルの前を横切り視界を遮った場合、体験者Ａが見たい仮想ＣＧが見にくい状態が発生する。以上が図１３の説明である。
【０１０５】
次に図１４を参照して、本実施形態における、課題の解決イメージついて説明する。
【０１０６】
図１４の参照符号１４０１は図１３の参照１３０１と同様で、複数の拠点で仮想空間を共有しており、図１２の体験者ＡのＨＭＤでの視界のイメージである。同一拠点にいる体験者Ｂと体験者Ｃは現実画像において確認できるため視認できる状態となっている。体験者Ｄと体験者Ｅは、体験者Ａとは別拠点にいるため、それら位置、姿勢情報を元にアバターとして表示される。
【０１０７】
図１４の参照符号１４０２は、体験者Ａの視線や位置、視線より体験者Ａが注視している仮想ＣＧオブジェクトが特定されていることを示している。図１４の参照符号１４０３は、体験者Ａが注視している仮想ＣＧオブジェクトと体験者Ａの間に別拠点の体験者Ｅが移動した場合の状態を示している。すなわち、本実施形態では、体験者Ａが注視している仮想ＣＧオブジェクトを、体験者Ｅのアバターが邪魔している（重なる）と判定される状態である。本実施形態では、かかる状態にあるとき、体験者Ｅのアバターを消すもしくは半透明にする。
【０１０８】
図１４の参照符号１４０４は体験者Ａが注視している仮想ＣＧオブジェクトの前に体験者Ｅのアバターがいる状態であるが、アバターが消えているので注視している事を邪魔されない。
【０１０９】
また、非表示としたアバターに対応するＨＭＤ１０１の拠点ＩＤとＨＭＤの識別情報（ＩＤやユーザ名）を取得し、重なっている仮想ＣＧオブジェクトのモデル名を取得し、体験者Ａに通知しても良い、例えば、「非表示となっている体験者Ｅが、ＭＦＰの前を移動中」というメッセージを体験者Ａの画像に重畳表示する。
【０１１０】
また、着目ＨＭＤから見て、ＣＧモデルを遮る位置に、異なる拠点のＨＭＤが位置する場合には、そのＨＭＤに対するアバターの透過度を１００％としたが、存在するがわかる程度まで透過度を設定して、合成しても良い。
【０１１１】
上記実施形態によれば、複数のＨＭＤの体験者に対して、それぞれの体験者が共通な仮想ＣＧモデルを含む仮想空間内に存在するかのような体験を提示することができる。このとき、在る一人の体験者に着目したとき、その着目体験者が見ている仮想ＣＧモデルが、別拠点に居る体験者のアバターで遮られることを無くすことが可能になる。
【０１１２】
［他の実施形態］
他の実施形態について、図１５のフローチャートを用いて説明する。図１５のフローチャートは、ＰＣ１００ａにおける図９のＳ９１０の処理の一例を示している。つまり、アバターを合成する場合の処理である。
【０１１３】
ステップＳ１５０１にて、ＰＣ１００ａは、他の拠点のＨＭＤ１０１の位置姿勢を取得し、ＭＲ画像を表示するＨＭＤ１０１ａの位置姿勢とに基づき、所定の範囲内の距離に位置するかを特定する。所定の範囲は、システムで予め設定されているものとするが、例えば、ＭＲ画像を表示するＨＭＤ１０１の位置から半径Ｎｃｍの範囲などである。
【０１１４】
ステップＳ１５０２では、所定の範囲内に他の拠点のＨＭＤ１０１の位置がある場合に、アバター画像を拡大処理したオブジェクトを取得する。
【０１１５】
ステップＳ１５０３では、所定の範囲より通り位置に他の拠点のＨＭＤ１０１の位置がある場合に、離れている距離に応じたアバター画像を拡大または縮小処理して、取得する。
【０１１６】
なお、拡大や縮小処理せず、距離に応じたアバター画像を記憶しておき、他の拠点のＨＭＤ１０１の位置に応じたアバター画像を取得するようにしてもよい。
【０１１７】
ステップＳ１５０４では、ステップＳ９０３で生成した現実画像と仮想ＣＧモデルの画像とを合成したＭＲ画像に、取得したアバター画像を重畳する。この重畳されたＭＲ画像がＨＭＤ１０１へ出力され、表示される。なお、仮想ＣＧモデルの後ろに見える位置にユーザがいる場合には、アバターを重畳させた後に仮想ＣＧモデルの画像を表示し、前後関係を制御する。
【０１１８】
なお、本実施形態では、アバター画像を予め準備し、表示するように構成したが、他の拠点の体験者の顔画像を取得して、アバター画像として表示するようにしてもよい。また、実施形態では、ＨＭＤ毎に異なるアバターを割り当てるものとして説明したが、アバターに、例えば名札を付加するのであれば、アバターは１種類でも構わない。
【０１１９】
以上説明したように、本実施形態によれば、撮像装置を用いて体験しているユーザが見ている仮想物体を他の体験しているユーザの移動により遮ることを防ぐことができる。
【０１２０】
また、注視している仮想物体以外に重なるユーザのアバターは表示制御することなく表示されるため、没入感を維持した体験が可能となる。特に、複数の拠点で連携した体験（遠隔拠点間での会議の実施）において、本来同じ環境にいない体験者が邪魔になりスムーズな体験を阻害することを防止することが可能となる。
【０１２１】
一方、同じ拠点の体験者については、透過や非表示等の制御をしないため、実際の体験環境を表現することができる。特に、他の環境の体験者との衝突を意識することなく体験できると共に、同じ環境の体験者との衝突を回避することが可能となる。
【０１２２】
なお、実施形態では、各ＰＣ１０１とサーバ２００とのネットワーク通信を前提にして説明した。しかし、拠点１、２が物理的に近い位置にあって（例えば隣り合う部屋やフロア）、１つの装置が十分な処理能力を有するのであれば、その１つの装置が拠点１、２に属する全てのＨＭＤを接続し、それらの合成画像を生成するようにしても構わない。この場合、上記実施形態にて説明した通信に係る処理は無くなり、ＰＣ、サーバに係る処理（が１つの装置上で実行されることになる。なお、サーバは、ＰＣ間で情報を共有する際の中継装置として機能するものであり、ネットワークの通信帯域が十分に広く、且つ、ＰＣそれぞれが十分に高い処理能力を有するのであれば、サーバを不要とし、各ＰＣはピアツーピア接続するものとしても構わない。
【０１２３】
以上、本発明に係る実施形態について示したが、本発明は、例えば、システム、装置、方法、アプリケーションプログラムもしくは記録媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１２４】
例えば、図２に示すＰＣ１００の構成を全て備えるＨＭＤ１０１が、自機の機能をＣＰＵ２０１で実行して、上述した実施形態においてＰＣ１００の実行するものとして説明した処理の全てを、実行するようにしてもよい。
【０１２５】
また、本実施形態におけるプログラムは、図５〜図９、図１５に示すフローチャートの処理方法をコンピュータが実行可能なプログラムであり、記憶媒体は図５〜図９、図１５の処理方法をコンピュータが実行可能なプログラムが記憶されている。なお、本発明におけるプログラムは図５〜図９、図１５の各装置の処理方法ごとのプログラムであってもよい。
【０１２６】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読み出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１２７】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記録媒体は本発明を構成することになる。
【０１２８】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＥＥＰＲＯＭ、シリコンディスク、ソリッドステートドライブ等を用いることができる。
【０１２９】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１３０】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１３１】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１３２】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１３３】
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０１３４】
１００…ＰＣ、１０１…ＨＭＤ、１０３…光学式マーカ、１０４…光学式センサ、１５０…ネットワーク
【図１】
2018106297.tif 000003
【図２】
2018106297.tif 000004
【図３】
2018106297.tif 000005
【図４】
2018106297.tif 000006
【図５】
2018106297.tif 000007
【図６】
2018106297.tif 000008
【図７】
2018106297.tif 000009
【図８】
2018106297.tif 000010
【図９】
2018106297.tif 000011
【図１０】
2018106297.tif 000012
【図１１】
2018106297.tif 000013
【図１２】
2018106297.tif 000014
【図１３】
2018106297.tif 000015
【図１４】
2018106297.tif 000016
【図１５】
2018106297.tif 000017