(57)【特許請求の範囲】
【請求項１】
表示装置と通信可能な情報処理装置であって、
前記表示装置の位置を示す表示装置位置を特定する表示装置位置特定手段と、
現実物体の上面側における３次元上の位置のうちどの位置を、前記表示装置に新たに表示するべく表示が指示された仮想オブジェクトの位置とするかを、前記表示装置位置と前記現実物体の位置を表す現実物体位置とに基づいて決定する決定手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記情報処理装置は３次元上の前記現実物体の位置を表す現実物体位置を記憶し、
前記決定手段は、前記現実物体位置と前記表示装置位置とから算出された前記表示装置から前記現実物体の方向に向けてのベクトルを用いて、前記ベクトルの示す方向にある前記現実物体の上面側の位置であって、前記現実物体から所定の距離離れた位置を、前記表示装置に新たに表示するべく表示が指示された前記仮想オブジェクトの、３次元上の位置として決定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置は、複数の前記表示装置と通信可能であって、
前記決定手段は、前記表示装置位置特定手段により特定された複数の表示装置のそれぞれの表示装置位置と前記現実物体位置とに基づき、複数の前記表示装置ごとに対応する位置であって、複数の前記表示装置にそれぞれに対応する前記仮想オブジェクトの、前記現実物体の上面側における３次元上の位置を決定することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記情報処理装置は、前記仮想オブジェクト上に表示する画像を出力する出力装置と通信可能であり、
前記情報処理装置は更に、
前記出力装置から出力される画像を前記仮想オブジェクト上に表示する操作を受け付けた場合に、前記決定手段により決定された位置の、前記出力装置から出力された画像を示す仮想オブジェクトの画像を、前記表示装置の位置姿勢に応じて生成する生成手段と、
前記生成手段により生成された仮想オブジェクトの画像を前記表示装置に表示させるべく出力する出力手段と、
を備えることを特徴とする請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
前記情報処理装置は更に、
前記出力装置の位置である出力装置位置を特定する出力装置位置特定手段と、
前記出力装置位置特定手段により特定された前記出力装置位置と、前記表示装置位置特定手段により特定された前記表示装置位置と、を用いて、前記出力装置のオーナーの前記表示装置位置を特定する特定手段と
を備え、
前記決定手段は、前記特定手段により特定された前記出力装置のオーナーの前記表示装置位置を除く他の前記表示装置位置と前記現実物体位置とに基づき、前記表示装置に対応する位置であって、前記仮想オブジェクトの、前記現実物体の上面側における３次元上の位置を決定することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記情報処理装置は更に、
前記仮想オブジェクトの３次元上の位置をどのように決定するかのモードである第１のモード又は第２のモードを設定する設定手段
を備え、
前記第１のモードが設定されている場合には、
前記決定手段は、前記現実物体の上面側における３次元上の位置のうちどの位置を、前記表示装置に新たに表示するべく表示が指示された仮想オブジェクトの位置とするかを、前記表示装置位置と前記現実物体位置とに基づき決定し、
前記第２のモードが設定されている場合には、
前記決定手段は、前記第２のモードにおいて規定された所定の位置を、前記仮想オブジェクトの３次元上の位置として決定することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
表示装置と通信可能な情報処理装置であって、
前記表示装置の位置を示す表示装置位置を特定する表示装置位置特定手段と、
現実物体の上面側における３次元上の位置のうちどの位置を仮想オブジェクトの位置とするかを、前記表示装置位置に基づいて決定する決定手段と
を備え、
前記情報処理装置は３次元上の現実物体の位置を表す現実物体位置を記憶し、
前記決定手段は、前記現実物体位置と前記表示装置位置とから算出された前記表示装置から前記現実物体の方向に向けてのベクトルを用いて、前記ベクトルの示す方向にある前記現実物体の上面側の位置であって、前記現実物体から所定の距離離れた位置を、前記仮想オブジェクトの、３次元上の位置として決定することを特徴とする情報処理装置。
【請求項８】
表示装置と通信可能な情報処理装置であって、
前記表示装置の位置を示す表示装置位置を特定する表示装置位置特定手段と、
現実物体の上面側における３次元上の位置のうちどの位置を仮想オブジェクトの位置とするかを、前記表示装置位置に基づいて決定する決定手段と
を備え、
前記情報処理装置は、前記仮想オブジェクト上に表示する画像を出力する出力装置と通信可能であり、
前記情報処理装置は更に、
前記出力装置から出力される画像を前記仮想オブジェクト上に表示する操作を受け付けた場合に、前記決定手段により決定された位置の、前記出力装置から出力された画像を示す仮想オブジェクトの画像を、前記表示装置の位置姿勢に応じて生成する生成手段と、
前記生成手段により生成された仮想オブジェクトの画像を前記表示装置に表示させるべく出力する出力手段と、
を備えることを特徴とする情報処理装置。
【請求項９】
表示装置と通信可能な情報処理装置が行う情報処理方法であって、
前記情報処理装置の表示装置位置特定手段が、前記表示装置の位置を示す表示装置位置を特定する表示装置位置特定工程と、
前記情報処理装置の決定手段が、現実物体の上面側における３次元上の位置のうちどの位置を、前記表示装置に新たに表示するべく表示が指示された仮想オブジェクトの位置とするかを、前記表示装置位置と前記現実物体の位置を表す現実物体位置とに基づいて決定する決定工程と
を含むことを特徴とする情報処理方法。
【請求項１０】
表示装置と通信可能な情報処理装置が行う情報処理方法であって、
前記情報処理装置の表示装置位置特定手段が、前記表示装置の位置を示す表示装置位置を特定する表示装置位置特定工程と、
前記情報処理装置の決定手段が、現実物体の上面側における３次元上の位置のうちどの位置を仮想オブジェクトの位置とするかを、前記表示装置位置に基づいて決定する決定工程と
を備え、
前記情報処理装置は３次元上の現実物体の位置を表す現実物体位置を記憶し、
前記決定工程では、前記現実物体位置と前記表示装置位置とから算出された前記表示装置から前記現実物体の方向に向けてのベクトルを用いて、前記ベクトルの示す方向にある前記現実物体の上面側の位置であって、前記現実物体から所定の距離離れた位置を、前記仮想オブジェクトの、３次元上の位置として決定することを特徴とする情報処理方法。
【請求項１１】
表示装置と通信可能な情報処理装置が行う情報処理方法であって、
前記情報処理装置の表示装置位置特定手段が、前記表示装置の位置を示す表示装置位置を特定する表示装置位置特定工程と、
前記情報処理装置の決定手段が、現実物体の上面側における３次元上の位置のうちどの位置を仮想オブジェクトの位置とするかを、前記表示装置位置に基づいて決定する決定工程と
を備え、
前記情報処理装置は、前記仮想オブジェクト上に表示する画像を出力する出力装置と通信可能であり、
前記情報処理方法は更に、
前記出力装置から出力される画像を前記仮想オブジェクト上に表示する操作を受け付けた場合に、前記決定工程により決定された位置の、前記出力装置から出力された画像を示す仮想オブジェクトの画像を、前記表示装置の位置姿勢に応じて生成する生成工程と、
前記生成工程で生成された仮想オブジェクトの画像を前記表示装置に表示させるべく出力する出力工程と、
を備えることを特徴とする情報処理方法。
【請求項１２】
コンピュータを、請求項１乃至８の何れか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【請求項１３】
表示装置と、該表示装置と通信可能な情報処理装置と、を含む情報処理システムであって、
前記表示装置の位置を示す表示装置位置を特定する表示装置位置特定手段と、
現実物体の上面側における３次元上の位置のうちどの位置を、前記表示装置に新たに表示するべく表示が指示された仮想オブジェクトの位置とするかを、前記表示装置位置と前記現実物体の位置を表す現実物体位置とに基づいて決定する決定手段と
を備えることを特徴とする情報処理システム。
【請求項１４】
表示装置と、該表示装置と通信可能な情報処理装置と、を含む情報処理システムにおける情報処理方法であって、
表示装置位置特定手段が、前記表示装置の位置を示す表示装置位置を特定する表示装置位置特定工程と、
決定手段が、現実物体の上面側における３次元上の位置のうちどの位置を、前記表示装置に新たに表示するべく表示が指示された仮想オブジェクトの位置とするかを、前記表示装置位置と前記現実物体の位置を表す現実物体位置とに基づいて決定する決定工程と
を含むことを特徴とする情報処理方法。
【請求項１５】
表示装置と、該表示装置と通信可能な情報処理装置と、を含む情報処理システムを制御するプログラムであって、
前記情報処理システムを、
前記表示装置の位置を示す表示装置位置を特定する表示装置位置特定手段、
現実物体の上面側における３次元上の位置のうちどの位置を、前記表示装置に新たに表示するべく表示が指示された仮想オブジェクトの位置とするかを、前記表示装置位置と前記現実物体の位置を表す現実物体位置とに基づいて決定する決定手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
複数人のユーザがＰＣを持ち寄って、共通の資料のデータを各ＰＣで閲覧しながら会議を行う場合がある。
【０００３】
また近年、データを閲覧するツールとして、複合現実感（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ／以下、ＭＲと記載）の技術が普及している。ＭＲ技術を用いて、ヘッドマウントディスプレイを装着したユーザに対し、現実物体と所望の映像（ＣＧモデル）を配置した空間の疑似体験を提供できる（特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−３５０８６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、表示装置の位置と現実物体の位置とを用いて、現実物体の上面側のどの位置を該表示装置に新たに表示するべく表示が指示された仮想オブジェクトの位置とするかを容易に決定可能な仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、表示装置と通信可能な情報処理装置であって、
前記表示装置の位置を示す表示装置位置を特定する表示装置位置特定手段と、
現実物体の上面側における３次元上の位置のうちどの位置を、前記表示装置に新たに表示するべく表示が指示された仮想オブジェクトの位置とするかを、前記表示装置位置と前記現実物体の位置を表す現実物体位置とに基づいて決定する決定手段と
を備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、表示装置の位置と現実物体の位置とを用いて、現実物体の上面側のどの位置を該表示装置に新たに表示するべく表示が指示された仮想オブジェクトの位置とするかを容易に決定可能な仕組みを提供することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態における、情報処理システムの構成の一例を示す図である。
【図２】本発明の実施形態における、各種装置のハードウェア構成の一例を示す図である。
【図３】本発明の実施形態における、各種装置の機能構成の一例を示す図である。
【図４】本発明の実施形態における、仮想スクリーンの配置処理の流れを示すフローチャートである。
【図５】本発明の実施形態における、仮想スクリーンの表示・非表示の決定処理の流れを示すフローチャートである。
【図６】本発明の第２の実施形態における、仮想スクリーンの配置処理の流れを示すフローチャートである。
【図７】本発明の実施形態における、各種データテーブルの構成の一例を示す図である。
【図８】本発明の実施形態における、仮想スクリーンの配置の様子を示す図である。
【図９】本発明の第３の実施形態における、仮想スクリーンの配置の様子を示す図である。
【図１０】本発明の実施形態における、仮想スクリーンの移動・拡大縮小処理の流れを示すフローチャートである。
【図１１】本発明の実施形態における、仮想スクリーンの移動・拡大縮小処理に用いる各種データテーブルの構成の一例を示す図である。
【図１２】本発明の実施形態における、仮想スクリーンの構成の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の１つである。
【００１０】
先ず、それぞれの実施形態に共通の構成について説明する。先ず、本実施形態に係る情報処理システムの構成例について、図１のブロック図を用いて説明する。
【００１１】
図１に示すように、情報処理システムが有する各装置はネットワーク（例えばＬＡＮ）１５０に通信可能に接続されている。ネットワーク１５０の種別については特定の種別に限るものではないし、１種類だけでなく２種類以上のネットワークにより構成されても良い。
【００１２】
ＰＣ（パーソナルコンピュータ）１００は、該ＰＣ１００の表示画面上に表示している画面（スクリーン画像）を表す情報をスクリーン情報としてサーバ２００に送信する。サーバ２００は、ＰＣ１００から送信されたスクリーン情報を受信すると共に、赤外線カメラによって測定されたＨＭＤ１０１Ａ〜１０１Ｃ（総称してＨＭＤ１０１と呼称する場合がある）の位置姿勢を該赤外線カメラから取得する。更に、サーバ２００は、ＨＭＤ１０１に搭載された不図示のカメラにより撮像された現実空間の画像（現実画像）を該カメラから取得する。そしてサーバ２００は、ＨＭＤ１０１の位置姿勢、現実画像、スクリーン情報、そして自身が管理する様々な情報、に基づいて、現実画像に仮想オブジェクトを重畳させた画像である重畳画像（ＭＲ画像）を生成し、該生成したＭＲ画像をＨＭＤ１０１に対して配信する。
【００１３】
サーバ２００が管理する様々な情報には、現実空間に対して位置合わせを行って重ね合わせる仮想空間（若しくは、現実空間に対して位置合わせを行って仮想空間を重ね合わせた空間＝ＭＲ空間（ようは、現実空間と仮想空間とを合成した空間））における、現実物体の位置姿勢及び形状、が含まれている。本実施形態では、このような情報を用いて、ＣＧ（コンピュータグラフィックス）で描画された仮想オブジェクトとしての仮想スクリーンの配置位置姿勢を決定し、該仮想スクリーンを該決定した配置位置姿勢でもって仮想空間中に配置する。なお、図１に記載の如く、ＰＣ１００とサーバ２００とは別個の装置であっても良いが、一体化した１つの装置であっても良い。
【００１４】
以下では、現実空間に位置合わせを行って仮想空間を重ね合わせた空間を、ＭＲ空間と記載する。
【００１５】
ＨＭＤ１０１は上記の如く、現実空間を撮像するカメラと、該ＨＭＤ１０１を頭部に装着したユーザの眼前に位置するように取り付けられた表示画面と、を有する頭部装着型表示装置の一例であり、サーバ２００から受信したＭＲ画像を該表示画面に表示する。
【００１６】
次に図２を参照して、サーバ２００及びＨＭＤ１０１のハードウェア構成の一例について説明する。図２は、サーバ２００及びＨＭＤ１０１のハードウェア構成の一例を示すブロック図である。
【００１７】
ＣＰＵ２０１は、ＲＡＭ２０３やＲＯＭ２０２に格納されているコンピュータプログラムやデータを用いて処理を実行することで、システムバス２０４に接続されている各機能部を統括的に制御し、サーバ２００が行うものとして後述する各処理を実行若しくは制御する。
【００１８】
ＲＯＭ２０２には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  ＯｕｔｐｕｔＳｙｓｔｅｍ）やサーバ２００の設定データなどが格納されている。
【００１９】
外部メモリ２１１は、ハードディスクドライブ装置（ＨＤＤ）に代表される大容量情報記憶装置である。外部メモリ２１１には、オペレーティングシステムや、サーバ２００が行うものとして後述する各処理をＣＰＵ２０１に実行させるためのコンピュータプログラムやデータが格納されている。また、外部メモリ２１１には、以下の説明において既知の情報として取り扱う情報（定義ファイルやテーブルなども含む）も格納されている。ＲＯＭ２０２や外部メモリ２１１に格納されているコンピュータプログラムやデータは、ＣＰＵ２０１による制御に従って適宜ＲＡＭ２０３にロードされ、ＣＰＵ２０１による処理対象となる。
【００２０】
ＲＡＭ２０３は、ＲＯＭ２０２や外部メモリ２１１からロードされたコンピュータプログラムやデータ、ＨＭＤ１０１が有する右目・左目ビデオカメラ２２１が撮像した現実空間の動画像（現実空間を撮像することで得られる各フレームの画像（現実画像））を格納するためのエリアを有する。更にＲＡＭ２０３は、通信Ｉ／Ｆコントローラ２０８を介して外部から受信したコンピュータプログラムやデータを格納するためのエリアを有する。更にＲＡＭ２０３は、ＣＰＵ２０１が各種の処理を実行する際に用いるワークエリアを有する。このように、ＲＡＭ２０３は、各種のエリアを適宜提供することができる。
【００２１】
入力コントローラ（入力Ｃ）２０５は、キーボードやマウス等のポインティングデバイスである入力デバイス２１０を制御する。
【００２２】
ビデオコントローラ（ＶＣ）２０６は、サーバ２００に接続されているディスプレイ２１２や、ＨＭＤ１０１が有する右目・左目ディスプレイ２２２等の表示装置における表示制御を行う。ビデオコントローラ２０６は、右目・左目ディスプレイ２２２に対しては、例えば外部出力端子（例えば、Ｄｉｇｉｔａｌ  Ｖｉｓｕａｌ  Ｉｎｔｅｒｆａｃｅ）を用いて出力を行う。
【００２３】
右目・左目ディスプレイ２２２は、右目用のディスプレイと左目用のディスプレイとから構成されている。右目用のディスプレイは、ＨＭＤ１０１を頭部に装着したユーザの右目の眼前に位置するようにＨＭＤ１０１に取り付けられており、左目用のディスプレイは、ＨＭＤ１０１を頭部に装着したユーザの左目の眼前に位置するようにＨＭＤ１０１に取り付けられている。右目・左目ディスプレイ２２２には、ビデオコントローラ２０６から出力された画像信号に応じた画像が表示されることになる。
【００２４】
メモリコントローラ（ＭＣ）２０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するＨＤＤやフレキシブルディスク（ＦＤ）或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ２１１へのアクセスを制御する。
【００２５】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）２０８は、ネットワークを介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。また、通信Ｉ／Ｆコントローラ２０８は、ギガビットイーサネット（登録商標）等を通じて赤外線カメラとの通信も制御する。
【００２６】
汎用バス２０９は、ＨＭＤ１０１の右目・左目ビデオカメラ２２１が撮像した現実空間の動画像（現実空間を撮像することで得られる各フレームの画像（現実画像））を取り込むために使用される。右目・左目ビデオカメラ２２１からの現実画像は、外部入力端子（例えば、ＩＥＥＥ１３９４端子）を用いてサーバ２００に入力される。右目・左目ビデオカメラ２２１は、右目用のビデオカメラと左目用のビデオカメラとから構成されている。
【００２７】
尚、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ２１２上での表示や右目・左目ディスプレイ２２２上での表示を可能としている。また、ＣＰＵ２０１は、ディスプレイ２１２上のマウスカーソル等でのユーザ指示を可能とする。
【００２８】
なお、図２に示したサーバ２００及びＨＭＤ１０１のハードウェア構成は、あくまでも一例であり、以下に説明する処理と同等以上の処理を実現可能な構成であれば、如何なる構成を採用しても構わない。例えば、図２では、ＨＭＤ１０１に取り付けられたカメラは右目用と左目用の２つであったが、１つであっても良く、該１つのカメラによる現実画像を右目、左目で共有して使用するようにしても構わない。同様に、図２では、ＨＭＤ１０１に取り付けられたディスプレイは右目用と左目用の２つであったが、右目、左目で共有して観察する１つのディスプレイであっても良い。
【００２９】
次に図３を参照して、ＰＣ１００、ＨＭＤ１０１、サーバ２００のそれぞれの機能構成例について説明する。図３は、本発明の実施形態における、ＰＣ１００、ＨＭＤ１０１、サーバ２００のそれぞれの機能構成の一例を示すブロック図である。
【００３０】
スクリーン画像送信部３０１は、ＰＣ１００の表示画面上に表示している画面（スクリーン画像）を表す情報をスクリーン情報としてサーバ２００に送信する。スクリーン画像受信部３２１は、スクリーン画像送信部３０１によって送信されたスクリーン情報を受信する。
【００３１】
配置ルール記憶部３２２は、スクリーン画像受信部３２１が受信したスクリーン情報が表すスクリーン画像をテクスチャとして貼り付ける対象となる仮想オブジェクトである仮想スクリーン（ＣＧのスクリーン）を配置するための条件（ルール）を記憶する。
【００３２】
現実物体位置取得部３２３は、外部メモリ２１１に格納されている、現実空間中の現実物体の位置姿勢、形状を示す情報を取得する。
【００３３】
撮像処理部３１１は、右目・左目ビデオカメラ２２１により撮像された現実画像を取得し、撮像画像送信部３１２は、該現実画像をサーバ２００に対して送信する。
【００３４】
撮像画像受信部３２４は、撮像画像送信部３１２によって送信された現実画像を受信する。ＨＭＤ位置特定部３２５は、赤外線カメラよって測定されたＨＭＤ１０１の位置姿勢を取得する。厳密には、ＨＭＤ位置特定部３２５は、赤外線カメラによるＨＭＤ１０１の位置姿勢測定結果を取得し、該位置姿勢測定結果に基づいてＨＭＤ１０１の位置姿勢を特定する。なお、ここでは赤外線カメラを用いてＨＭＤ１０１の位置姿勢を特定するものとしているが、他の手法を用いてＨＭＤ１０１の位置姿勢を特定するようにしても構わない。例えば、ＨＭＤ１０１の位置姿勢、ＨＭＤ１０１による現実画像中のマーカの識別情報・位置・大きさ・角度、サーバ２００に記憶されているマーカの識別情報・ＭＲ空間上の位置・大きさ、を用いて、ＨＭＤ１０１のＭＲ空間上の位置姿勢を特定するようにしてもよい。このようなマーカを使ったＨＭＤの位置姿勢の特定方法は公知の技術であるため詳細な説明は割愛する。なお、「ＨＭＤ１０１の位置姿勢」としてＨＭＤ１０１のどの部分の位置姿勢を採用しても構わないが、以下では、一例として、「右目・左目ビデオカメラ２２１の位置姿勢」とする。
【００３５】
仮想スクリーン配置位置決定部３２６は、配置ルール記憶部３２２から取得したルール、ＨＭＤ位置特定部３２５で特定したＨＭＤのＭＲ空間上の位置姿勢、現実物体位置取得部３２３が取得した、現実空間中の現実物体の位置姿勢、形状を示す情報、に基づいて、ＭＲ空間中のどのような位置にどのような姿勢で仮想スクリーンを配置するのか、すなわち仮想スクリーンの配置位置姿勢を決定する。
【００３６】
ＭＲ画像生成部３２７は、仮想スクリーン配置位置決定部３２６で決定した配置位置姿勢で配置された仮想スクリーンを含むＭＲ空間の画像をＭＲ画像として生成する。
【００３７】
ＭＲ画像送信部３２８は、ＭＲ画像生成部３２７によって生成されたＭＲ画像をＨＭＤ１０１に対して送信する。ＭＲ画像受信部３１３は、ＭＲ画像送信部３２８によって送信されたＭＲ画像を受信し、ＭＲ画像表示部３１４は、受信したＭＲ画像を表示する。
【００３８】
［第１の実施形態］
本実施形態に係るＰＣ１００及びサーバ２００の動作について、図４のフローチャートを用いて説明する。
【００３９】
ＰＣ１００の不図示のプロセッサは、アプリケーションの起動指示を検知すると、対応するアプリケーションを起動する（ステップＳ４０１）。これによりＰＣ１００の不図示の表示画面には、該アプリケーションを実行することで得られる画面が表示される。
【００４０】
次に、ＰＣ１００の不図示のプロセッサは、仮想スクリーンの表示指示を受け付ける（ステップＳ４０２）。例えば、ＰＣ１００のプロセッサは、ＰＣ１００がサーバ２００に接続されたことを検知すると、仮想スクリーンの表示指示を受け付けたものと判断する。
【００４１】
次に、ＰＣ１００の不図示のプロセッサは、ＰＣ１００の不図示の表示画面に表示されている画面を表すスクリーン情報を、仮想スクリーンの表示指示と共に、サーバ２００に対して送信する（ステップＳ４０３）。なお、スクリーン情報は、ＰＣ１００の不図示の表示画面に表示されている画面全体を表すスクリーン情報でなくても良く、ＰＣ１００の不図示の表示画面に表示されている画面の一部を表すスクリーン情報であっても良い。
【００４２】
以下、ステップＳ４０４でアプリケーションの終了指示を受け付けるまで、ＰＣ１００の不図示のプロセッサは、このような送信を繰り返し続ける。一方、アプリケーションの終了指示を検知すると、ＰＣ１００の不図示のプロセッサは処理を完了する。
【００４３】
一方、サーバ２００のＣＰＵ２０１は、ＰＣ１００から送信されたスクリーン情報及び仮想スクリーンの表示指示を通信Ｉ／Ｆコントローラ２０８を介して受信すると、これらをＲＡＭ２０３や外部メモリ２１１に格納する（ステップＳ４０５）。
【００４４】
次に、ＣＰＵ２０１は、通信Ｉ／Ｆコントローラ２０８を介して、赤外線カメラにより測定されたそれぞれのＨＭＤ１０１の位置姿勢の測定結果を取得し、該測定結果に基づいて該それぞれのＨＭＤ１０１の位置姿勢を特定する（ステップＳ４０６）。また、ＣＰＵ２０１は、配置ルール記憶部３２２が記憶しているものとして説明した、仮想スクリーンの配置ルール（図７の仮想スクリーン配置ルール７１０）を、外部メモリ２１１から読み出す（ステップＳ４０７）。
【００４５】
ここで、外部メモリ２１１で管理している様々なデータについて、図７を用いて説明する。
【００４６】
ＨＭＤ情報７００は、ステップＳ４０６においてＨＭＤ１０１毎に特定した該ＨＭＤ１０１の位置姿勢を含む情報であり、外部メモリ２１１内で管理される。ＩＤ７０１は、ＨＭＤ１０１毎に固有の情報である。ＨＭＤ位置７０２は、ステップＳ４０６において特定したそれぞれのＨＭＤ１０１の位置（現実空間及び仮想空間で共有している座標系におけるｘ座標値、ｙ座標値、ｚ座標値）である。ＨＭＤ姿勢７０３は、ステップＳ４０６において特定したそれぞれのＨＭＤ１０１の姿勢（現実空間及び仮想空間で共有している座標系におけるｘ軸回転角度、ｙ軸回転角度、ｚ軸回転角度）である。以下では、何れの位置及び姿勢も、この座標系におけるものであるとする。
【００４７】
仮想スクリーン配置ルール７１０は上記の通り、仮想スクリーンの配置に係るルールを規定した情報であり、外部メモリ２１１内で管理される。ｒｕｌｅＩＤ７１１は、ルール毎に固有の情報である。位置７１２は、仮想スクリーンの配置位置について規定したルールである。姿勢７１３は、仮想スクリーンの配置姿勢について規定したルールである。仮想スクリーン配置ルール７１０に登録されているルールのうち何れを用いるのか（どのｒｕｌｅＩＤ７１１に対応するルールを用いるのか）、についてはユーザが選択しても良いし、仮想オブジェクト毎若しくはその種別毎に適用するルールが決められていても良い。
【００４８】
仮想スクリーン情報７２０は、それぞれの仮想スクリーンを規定した情報であり、外部メモリ２１１内で管理される。仮想スクリーンＩＤ７２１は、仮想スクリーン毎に固有の情報である。形状７２２は、仮想スクリーンの大きさであり、縦、横、奥行きのそれぞれの大きさを規定する。位置７２３は、仮想スクリーンが実際に配置されている位置であり、姿勢７２４は、仮想スクリーンが実際に配置されている姿勢である。ＩＤ７２５は、対応するＨＭＤのＩＤである。例えば図７の場合、ＩＤ＝ｓｃｒ１の仮想スクリーンは、ＩＤ＝１のＨＭＤに対応づけられている。
【００４９】
現実物体情報７３０は、現実空間中に配置されているそれぞれの現実物体を規定した情報であり、外部メモリ２１１内で管理される。ＩＤ７３１は、現実物体毎に固有の情報である。形状７３２は、現実物体の大きさであり、縦、横、奥行きのそれぞれの大きさを規定する。位置７３３は、現実物体の実際の配置位置であり、姿勢７３４は、現実物体の実際の配置姿勢である。
【００５０】
以降の処理は、サーバ２００に接続されているそれぞれのＨＭＤ１０１について行われる。ＣＰＵ２０１は、外部メモリ２１１内で管理しているＨＭＤ情報７００からＨＭＤ１０１の位置（ＨＭＤ位置７０２）を読み出す（ステップＳ４０８）。また、ＣＰＵ２０１は、外部メモリ２１１内で管理されている現実物体情報７３０を読み出す（ステップＳ４０９）。本実施形態では図７に示す如く、現実物体情報７３０には、ＩＤ７３１＝ＤＥＳＫ１に対応する現実物体（机）の形状７３２、位置７３３、姿勢７３４が登録されているものとして説明する。図７の現実物体情報７３０によれば、ＩＤ７３１＝ＤＥＳＫ１に対応する現実物体（机）は、位置７３３で規定される位置に姿勢７３４で規定される姿勢でもって配置される、縦ＸＸＸmm、横ＹＹＹmm、奥行きＺＺＺmmのサイズの直方体であることがわかる。なお、「位置７３３で規定される位置」とは、該直方体における１点（直方体内の重心位置や８個の頂点のうちの１つ）の位置のことであり、且つ該１点と直方体の８個の頂点との位置関係は既知とするので、これによれば、上記の座標系における、該直方体の幾何的な情報（例えば直方体の８個の頂点の位置）もまた既知である。
【００５１】
そしてＣＰＵ２０１は、この直方体の上面を規定する４本の辺のうちＨＭＤ位置７０２に最も近い辺を最近辺として特定する。ここで、ＨＭＤ位置７０２が（ｘｈ、ｙｈ、ｚｈ）であり、該上面が上記の座標系におけるＸＹ平面と平行な面で且つそのｚ座標値（床面からの高さ）がｚｄであるとすると、ＣＰＵ２０１は、点（ｘｈ、ｙｈ、ｚｄ）を通り、且つ該最近辺に直交する線分（ベクトル）を求める（ステップＳ４１０）。
【００５２】
次に、ＣＰＵ２０１は、外部メモリ２１１内で管理している仮想スクリーン情報７２０を読み出し、該読み出した仮想スクリーン情報７２０から形状７２２を読み出す（ステップＳ４１１）。そしてＣＰＵ２０１は、該読み出した形状７２２を有する仮想オブジェクトを仮想スクリーンとして生成し、該仮想スクリーンにおいて規定の面に、ステップＳ４０５でＨＭＤ１０１から受信したスクリーン情報が表すスクリーン画像をテクスチャとして貼り付ける（ステップＳ４１１）。これにより仮想スクリーンの規定の面には、ＰＣ１００側で表示されている画面（スクリーン画像）がテクスチャとして貼り付けられていることになる。
【００５３】
次に、ＣＰＵ２０１は、ステップＳ４０７において読み出した仮想スクリーン配置ルール７１０中の位置７１２が規定する位置を特定する（ステップＳ４１２）。図７の場合、位置７１２が規定するルールは「机の端から２００mm、机の上空１００mm」であるから、上記のベクトルと上記の最近辺との交点位置を求め、点（ｘｈ、ｙｈ、ｚｄ）から該交点位置に向かう方向に、該交点位置から２００mmだけ進んだ位置（ベクトル上の位置）を求め、該求めた位置から上記上面の法線方向に１００mmだけ進んだ位置を、「ステップＳ４０７において読み出した仮想スクリーン配置ルール７１０中の位置７１２が規定する位置」として求める。
【００５４】
そしてＣＰＵ２０１は、ステップＳ４１１で生成した仮想スクリーンを、「ステップＳ４０７において読み出した仮想スクリーン配置ルール７１０中の位置７１２が規定する位置」に、「ステップＳ４０７において読み出した仮想スクリーン配置ルール７１０中の姿勢７１３が規定する姿勢」でもって、仮想空間中に配置する（ステップＳ４１２）。もちろん、規定の面がＨＭＤ位置７０２側に向くように配置する。仮想スクリーンの配置の様子は図８に示す通りである。
【００５５】
なお、仮想スクリーンの位置については上記のようにして求めた位置に限るものではなく、例えば、ＨＭＤ位置７０２から視線方向に規定の距離だけ離間した位置に、仮想スクリーンを、規定の面がＨＭＤ位置７０２側に向くように配置しても構わない。また、ＨＭＤ位置７０２から規定の距離にあり、且つ直方体の上面若しくはその上空の位置に、仮想スクリーンを、規定の面がＨＭＤ位置７０２側に向くように配置しても構わない。つまり、ＨＭＤ１０１の位置と、現実物体の位置及び形状と、に応じて、仮想スクリーンの配置位置を決定する。
【００５６】
次に、ＣＰＵ２０１は、ステップＳ４１２で配置した仮想スクリーンのＩＤ７２１に対応するＩＤ７２５として、該仮想スクリーンの配置位置を求めるために用いたＨＭＤ位置７０２に対応するＨＭＤ１０１のＩＤ７０１を登録する（ステップＳ４１３）。
【００５７】
次に、ＣＰＵ２０１は、ＨＭＤ位置７０２及びＨＭＤ姿勢７０３をそれぞれ視点位置及び視点姿勢とする視点から見える仮想空間の画像を、周知の方法でもって生成し、該仮想空間の画像を、右目・左目ビデオカメラ２２１から取得した現実画像に重畳させることでＭＲ画像を生成する（ステップＳ４１４）。そしてＣＰＵ２０１は、このようにして生成したＭＲ画像をＨＭＤ１０１に対して送信する（ステップＳ４１５）。
【００５８】
また、ＣＰＵ２０１は、図４のフローチャートに従った処理と並行して、図５のフローチャートに従った処理を実行する。図５のフローチャートに従った処理は、サーバ２００に接続されているそれぞれのＨＭＤ１０１について行われる。
【００５９】
ＣＰＵ２０１は、ＨＭＤ情報７００から未選択のＩＤ７０１を１つ選択し（ステップＳ５０１）、該選択したＩＤに対応するＨＭＤ位置７０２を該ＨＭＤ情報７００から取得する（ステップＳ５０２）。
【００６０】
そしてＣＰＵ２０１は、現実物体情報７３０中の位置７３３を取得する（ステップＳ５０３）。そしてＣＰＵ２０１は、ステップＳ５０３で取得した位置７３３と、ステップＳ５０２で取得したＨＭＤ位置７０２と、の間の距離を求め、該求めた距離が所定距離以上か否か（ＨＭＤ１０１が現実物体から所定距離以上離れたか否か）を判断する（ステップＳ５０４）。
【００６１】
この判断の結果、所定距離以上離れた場合（ステップＳ５０４でＹＥＳ）、処理はステップＳ５０５に進み、ＣＰＵ２０１は、ステップＳ５０１で選択したＩＤに対応するＨＭＤ１０１に対する仮想スクリーンの表示を非表示にする（ステップＳ５０５）。つまり、机から離れたＨＭＤ１０１に対して出力するＭＲ画像を生成する処理（図４）において、仮想スクリーンを生成して配置するための一連の処理を中止して、仮想スクリーンがＭＲ画像上に描画されないようにする。なお、仮想スクリーンの透明度を１００％にしても構わない。すなわち、ステップＳ５０５では、仮想スクリーンを不可視にする。
【００６２】
一方、所定距離以上離れていない場合（ステップＳ５０４でＮＯ）、処理はステップＳ５０６に進み、ＣＰＵ２０１は、ステップＳ５０１で選択したＩＤに対応するＨＭＤ１０１（机から所定距離内にある（所定距離以上離れていない）ＨＭＤ１０１）に対する仮想スクリーンの表示を許可する（ステップＳ５０６）。仮想スクリーンが表示中の場合には該表示を継続する。非表示中の場合には、仮想スクリーンを生成して配置するための一連の処理を再開し、仮想スクリーンを可視にする。なお、ステップＳ５０５で仮想スクリーンの透明度を１００％にした場合には、ステップＳ５０６では、仮想スクリーンの透明度を０％にしても構わない。
【００６３】
このような処理により、部屋からユーザが退出し（机から離れ）た場合には、不要となった該退出したユーザ用の仮想スクリーンを非表示にし、部屋に残っているユーザ用の仮想スクリーンを表示させることができる。
【００６４】
［第２の実施形態］
本実施形態では、ＰＣ１００の前に座るユーザの前には、仮想スクリーンを配置しないようにする。以下では第１の実施形態との差分について重点的に説明し、以下で特に触れない限りは、第１の実施形態と同様であるものとして説明する。これは、第３の実施形態以降についても同様である。本実施形態に係るサーバ２００は、図４のフローチャートにおいて、ステップＳ４０６とステップＳ４１３との間で図６のフローチャートに従った処理を実行する。図６において図４に示した処理ステップと同じ処理ステップには同じステップ番号を付しており、該処理ステップに係る説明は省略する。
【００６５】
本実施形態では、赤外線カメラは、ＨＭＤ１０１だけでなく、ＰＣ１００も測定対象となっている。本実施形態では、ＰＣ１００についてはその位置を測定しているものとする。
【００６６】
ＣＰＵ２０１は、赤外線カメラからの測定結果に応じて、ＰＣ１００の位置を特定する（ステップＳ６０１）。もちろん、ＰＣ１００の位置を特定するための仕組みについては特定の仕組みに限るものではない。
【００６７】
次に、ＣＰＵ２０１は、ＨＭＤ情報７００で管理しているそれぞれのＨＭＤ１０１の位置（ＨＭＤ位置７０２）のうち、ＰＣ１００の位置に最も近い位置を特定し、該特定した位置に対応するＩＤ（ＩＤ７０１）を、オーナーＨＭＤのＩＤとして別途、外部メモリ２１１に格納する（ステップＳ６０２）。
【００６８】
ステップＳ６０３、Ｓ６０４、Ｓ６０５ではそれぞれ、ステップＳ６０２で外部メモリ２１１に格納したオーナーＨＭＤのＩＤ以外のＩＤに対応するそれぞれのＨＭＤ１０１を対象として、ステップＳ４０８、Ｓ４１０、Ｓ４１２と同様の処理を行う。これはすなわち、仮想スクリーンを生成して配置するための一連の処理（ステップＳ４０６〜Ｓ４１３）は、オーナーＨＭＤのＩＤ以外のＩＤに対応するそれぞれのＨＭＤ１０１を対象として行うことを意味する。この場合、オーナーＨＭＤのＩＤに対応するＨＭＤ１０１には、ＭＲ画像ではなく、該ＨＭＤ１０１による撮像画像としての現実画像が表示されることになる。
【００６９】
以上の処理を行うことで、オーナーＨＭＤの前の卓上には仮想スクリーンは配置されず、オーナーＨＭＤ以外のＨＭＤ（一般ＨＭＤ）の前の卓上には仮想スクリーンは配置される。
【００７０】
本実施形態においては、ユーザの位置と現実物体の位置とを用いて、所定のユーザに対応する仮想オブジェクトの表示・非表示を決定する仕組みを提供することができる。
【００７１】
［第３の実施形態］
本実施形態では、仮想スクリーンを上記第１の実施形態の方法（ＨＭＤの位置と現実物体の位置及び形状とに基づいて仮想スクリーンの配置位置を決定する方法）で決定した配置位置に配置するか、デフォルトの配置位置に巨大な１つのスクリーンを配置するかを、不図示の設定切替画面にて設定する（切り替える）。
【００７２】
デフォルトの配置位置（デフォルト位置）とは、ＨＭＤ１０１の位置により変動しない所定の位置である。デフォルト位置には、ＨＭＤ１０１の位置により変動しない所定の姿勢も含まれている。デフォルト位置、及び該デフォルト位置に仮想スクリーンを配置する場合の該仮想スクリーンの大きさ（デフォルトサイズ）は、予め外部メモリ２１１に登録されているものとする。
【００７３】
例えば、デフォルト位置に仮想スクリーンを配置する場合には、図９に示す如く、デフォルトサイズを有する１つ（所定の数）の仮想スクリーンを生成して、デフォルト位置に配置する。なお、デフォルト位置にデフォルトサイズで仮想スクリーンを配置する場合には、第１の実施形態において説明したように、ユーザごとに仮想スクリーンを配置する設定にはなっていない。
【００７４】
ここで、１つの仮想スクリーンを全てのユーザで共有して閲覧する場合、図５のフローチャートに従った処理をそのまま適用してしまうと、それぞれのユーザのＨＭＤ１０１のうち１つでも現実物体から所定距離以上離れてしまうと全てのユーザで共有している１つの仮想スクリーンが非表示になってしまうことになる。
【００７５】
然るに本実施形態では、図５のフローチャートにおいて、ステップＳ５０１の前に、ＣＰＵ２０１は、ＲＡＭ２０３や外部メモリ２１１において管理されている「仮想スクリーンの配置設定」が、可変設定（第１の実施形態と同様にしてそれぞれのＨＭＤ１０１に対して仮想スクリーンを提供する）であるのか、それともデフォルト設定（デフォルトサイズを有する１つの仮想スクリーンをデフォルト位置に配置する）であるのかを判断する。
【００７６】
この判断の結果、可変設定の場合、即ち可変モードが設定されている場合には、処理はステップＳ５０１に進み、第１の実施形態と同様の処理を行う。一方、デフォルト設定の場合、即ちデフォルトモードが設定されている場合には、ステップＳ５０１〜Ｓ５０６の処理を行わずに、上記の如く、デフォルトサイズを有する１つの仮想スクリーンを生成して、仮想空間中のデフォルト位置に配置する（もちろん、図４のフローチャートにおいて、ＨＭＤ１０１ごとに仮想スクリーンの配置位置を決定するための処理も行わない）。然るにＨＭＤ１０１を頭部に装着したそれぞれのユーザには、デフォルト位置にデフォルトサイズを有する仮想スクリーンが配置されているＭＲ空間が提供されることになり、それぞれのユーザでこの１つの仮想スクリーンを共有して閲覧することができる。
【００７７】
このような処理により、デフォルト設定の場合、会議に参加している１人のユーザが現実物体から離れたとしても、仮想スクリーンを非表示にすることなく、ユーザに継続して仮想スクリーンを閲覧させることができる。
【００７８】
［第４の実施形態］
第１の実施形態では、ＨＭＤ１０１の位置と、現実物体の位置と、を用いて、該ＨＭＤ１０１に対する仮想オブジェクトの表示／非表示を切り替えていたが、本実施形態においては、ＨＭＤ１０１の位置と、仮想オブジェクトの位置と、を用いて、該ＨＭＤ１０１に対する仮想オブジェクトの表示／非表示を切り替える。
【００７９】
例えば、ＨＭＤ１０１の位置と仮想スクリーンの位置との間の距離が所定距離内である場合には、該ＨＭＤ１０１に対しては仮想スクリーンを表示し、該距離が所定距離以上である場合には、該ＨＭＤ１０１に対しては仮想スクリーンを非表示にする。
【００８０】
本実施形態では、図５のフローチャートに従った処理において、ステップＳ５０３で現実物体情報７３０中の位置７３３を取得する代わりに、仮想スクリーン情報７２０から、ステップＳ５０１で取得したＩＤ７０１と同じＩＤ７２５に対応する仮想スクリーン（
ステップＳ５０１で取得したＩＤ７０１に対応するＨＭＤ１０１と対応づけられている仮想スクリーン）の位置７２３を取得する。そして、ステップＳ５０４では、ステップＳ５０３で取得した位置７２３と、ステップＳ５０２で取得したＨＭＤ位置７０２と、の間の距離を求め、該求めた距離が所定距離以上か否か（ＨＭＤ１０１が仮想スクリーンから所定距離以上離れたか否か）を判断する。
【００８１】
この判断の結果、所定距離以上離れた場合（ステップＳ５０４でＹＥＳ）、処理はステップＳ５０５に進み、第１の実施形態と同様、ステップＳ５０１で選択したＩＤに対応するＨＭＤ１０１に対する仮想スクリーンの表示を非表示にする（ステップＳ５０５）。
【００８２】
一方、所定距離以上離れていない場合（ステップＳ５０４でＮＯ）、処理はステップＳ５０６に進み、第１の実施形態と同様、ステップＳ５０１で選択したＩＤに対応するＨＭＤ１０１に対する仮想スクリーンの表示を許可する（ステップＳ５０６）。
【００８３】
このように、本実施形態においては、ＨＭＤ１０１の位置と、仮想オブジェクトの位置と、を用いて、該ＨＭＤ１０１に対する仮想オブジェクトの表示／非表示を切り替える。
【００８４】
以上説明したように、本実施形態によれば、ＨＭＤ１０１の位置と、仮想オブジェクトの位置と、を用いて、該ＨＭＤ１０１に対する仮想オブジェクトの表示／非表示を切り替える仕組みを提供することができる。
【００８５】
また、第１〜４の実施形態では、ＨＭＤ１０１はビデオシースルー型のものを用いていたが、光学シースルー型のものを用いても構わない。その場合、サーバ２００は、生成した仮想空間の画像をそのままＨＭＤ１０１に対して送出することになる。
【００８６】
［第５の実施形態］
本実施形態では、仮想スクリーンの移動・拡大・縮小について説明する。本実施形態は、第１〜４の実施形態の何れに適用しても構わない。仮想スクリーンは、ユーザからの操作に応じて自在に移動・変形（拡大・縮小）可能である。本実施形態では、図４，５のフローチャートに従った処理と並行して、図１０のフローチャートに従った処理も実行する。なお、図１０に示した各ステップのうち幾つかのステップについては、図４，５のフローチャートに示したステップと重複するものもあるが、図１０では説明をわかりやすくするために各ステップを列挙したのであって、実際には、ステップの重複は生じ得ない。
【００８７】
先ず、ＣＰＵ２０１は、すでに外部メモリ２１１に登録したＨＭＤ情報７００から、ＨＭＤ１０１の位置７０２及び姿勢７０３を取得すると共に、右目・左目ビデオカメラ２２１から取得した現実画像を取得する（ステップＳ１００１）。次に、ＣＰＵ２０１は、該現実画像から手の領域を抽出し（ステップＳ１００２）、該抽出した手の領域から、位置７０２に対する該手の相対的な位置姿勢を算出する（ステップＳ１００３）。
【００８８】
一般に、画像中に写っている手の、該画像を撮像した装置に対する相対的な位置姿勢を求める方法には様々な方法があり、本実施形態では如何なる方法を採用しても構わない。例えば、ユーザの手の３次元ＣＧモデル（ユーザの手の大きさ・形状と同じ大きさ・形状を有するハンドオブジェクト）を予め作成して外部メモリ２１１に登録しておく。そして、現実画像から肌色を示す画素値を有する画素から成る領域を手の領域として抽出し、位置７０２から姿勢７０３で見たハンドモデルの外形線で囲まれた領域が、該抽出した手の領域と一致するような、手の位置姿勢（ＨＭＤ１０１に対する該手の相対的な位置姿勢）を推定する。もちろん、ハンドモデルを用いて手の位置姿勢を推定する方法はこの方法に限るものではない。
【００８９】
次に、ＣＰＵ２０１は、ハンドモデルを、位置７０２及び姿勢７０３に対する相対的な位置姿勢がステップＳ１００３で推定した位置姿勢となる位置姿勢に上記のハンドモデルを配置する（ステップＳ１００４）。
【００９０】
上記のようにしてＨＭＤ１０１ごとに求めたハンドモデルの位置姿勢については、図１１に示す如く、ハンドモデルに固有のＩＤ１１２１、ハンドモデルの位置１１２２、ハンドモデルの姿勢１１２３、がそれぞれのハンドモデルについて管理されているハンドオブジェクト情報１１２０として外部メモリ２１１で管理する。
【００９１】
次に、ＣＰＵ２０１は、ステップＳ１００４で配置したハンドモデルと、仮想スクリーンと、が接触しているか否かを判断する（ステップＳ１００５）。ハンドモデル及び仮想スクリーンの何れも仮想物体であり、仮想物体同士の衝突判定については公知の技術であるため、これに係る説明は省略する。
【００９２】
この判断の結果、接触していない場合（ステップＳ１００５でＮＯ）には、図１０のフローチャートに従った処理は完了する（実際には、図１０のフローチャートに従った処理は、右目・左目ビデオカメラ２２１による撮像画像毎に行われるため、現フレームに対する図１０のフローチャートに従った処理は完了し、次のフレームについてはまた図１０のフローチャートに従った処理を開始することになる）。
【００９３】
一方、この判断の結果、接触している場合（ステップＳ１００５でＹＥＳ）には、図１１に示す如く、ハンドモデルのＩＤ１１３１と、該ハンドモデルと接触したと判断された仮想スクリーンのＩＤ１１３２と、を関連づけて、接触情報１１３０に登録する。そして処理はステップＳ１００６に進む。
【００９４】
次に、ＣＰＵ２０１は、仮想スクリーンに対して予め設定された領域Ａ（領域Ｂを除く領域）及び領域Ｂ（仮想スクリーンの頂点から所定範囲内の領域）のうち、ハンドモデルと接触したと判断された位置が領域Ａ内の位置であるのか、それとも領域Ｂ内の位置であるのかを判断する。領域Ａ及び領域Ｂの一例を図１２に示す。ただし、領域Ａ及び領域Ｂの設定は図１２に示した設定に限るものではない。また、仮想スクリーンを３以上の領域に分割しても良く、それぞれの領域に異なる機能を割り当てるようにしても構わない。
【００９５】
本実施形態においては、領域Ｂは、仮想スクリーンの各頂点から半径３００ｍｍ以内の領域であるものとする。また、領域Ａは、仮想スクリーンにおける領域Ｂ以外の領域であるものとする。
【００９６】
このような領域Ａ及び領域Ｂを規定する情報（仮想スクリーン上のＸ，Ｙ座標）は予め作成されて外部メモリ２１１に登録されているものとする。
【００９７】
そして、ハンドモデルと接触したと判断された位置が領域Ａ内の位置である場合には、処理はステップＳ１００７に進み、領域Ｂ内の位置である場合には、処理はステップＳ１０１４に進む。
【００９８】
ステップＳ１００７では、ＣＰＵ２０１は、図１１の接触情報１１３０における接触領域１１３４に、領域Ａを示す情報を登録する（ステップＳ１００７）。
【００９９】
次に、ＣＰＵ２０１は、ハンドモデルと仮想スクリーンとが接触した状態において、ハンドモデルの移動量が規定量以下となる状態が所定時間以上続いているか否かを判断する（ステップＳ１００８）。この判断の結果、続いていると判断した場合（ステップＳ１００８でＹＥＳ）には、処理はステップＳ１００９に進み、続いていないと判断した場合（ステップＳ１００８でＮＯ）には、図１０のフローチャートに従った処理は完了する。
【０１００】
次に、ＣＰＵ２０１は、接触情報１１３０中の追従フラグ１１３３を参照し、該追従フラグ１１３３が「１」であるか「０」であるかを判断する（ステップＳ１００９）。追従フラグ１１３３とは、図１１の追従フラグ１１００で示す如く、ハンドモデルの移動（ユーザの手の移動）に合わせて仮想スクリーンの移動や拡大縮小が可能な状態（ハンドモデルの移動に追従して仮想スクリーンの移動や拡大縮小が可能な状態）の場合には「１」となり、可能ではない場合には「０」となる。
【０１０１】
この追従フラグ１１３３は、「ハンドモデルと仮想スクリーンとが接触した状態において、ハンドモデルの移動量が規定量以下となる状態が所定時間以上続いた」という条件が満たされると「１」にセットされる。この「所定時間」は、例えば図１１の１１１０に示す如く「３秒」である。
【０１０２】
図１１の例からすると、ハンドモデルが仮想スクリーンにおける領域Ａと接触している状態において、ハンドモデルの移動量が規定量以下となる状態が３秒以上続くと、追従フラグ１１３３は「１」にセットされ、ハンドモデルの移動に合わせて仮想スクリーンの移動が可能な状態となる。仮想スクリーンはハンドモデルの移動に追従して移動する。移動したい先で仮想スクリーンを停止させ（手を停止させ）てから３秒以上が経過すると、追従フラグ１１３３は「０」にセットされ、仮想スクリーンが停止中の位置に固定される。つまり仮想スクリーンの位置７２３、姿勢７２４が、移動後の位置・姿勢に変更される。
【０１０３】
また、ハンドモデルが仮想スクリーンにおける領域Ｂと接触している状態において、ハンドモデルの移動量が規定量以下となる状態が３秒以上続くと、追従フラグ１１３３は「１」にセットされ、ハンドモデルの移動に合わせて仮想スクリーンの拡大縮小が可能な状態となる。仮想スクリーンは手の移動に追従して拡大縮小される。具体的には、ハンドモデルの位置と、仮想スクリーンの中心座標（重心位置）と、の間の距離が大きくなった場合に、該大きくなった距離に応じて仮想スクリーンを拡大する。また、ハンドモデルの位置と、仮想スクリーンの中心座標（重心位置）と、の間の距離が小さくなった場合に、該小さくなった距離に応じて仮想スクリーンを縮小する。
【０１０４】
拡大縮小後、手を停止させてから３秒以上が経過すると、追従フラグ１１３３は「０」にセットされ、仮想スクリーンの大きさが、拡大縮小後の大きさに固定される。つまり仮想スクリーンの形状７２２が、拡大縮小後の大きさに変更される。
【０１０５】
図１０に戻って、ステップＳ１００９における判断において、追従フラグ１１３３が「１」である場合には、処理はステップＳ１０１２に進み、「０」である場合には、処理はステップＳ１０１０に進む。
【０１０６】
ステップＳ１０１０では、ＣＰＵ２０１は、追従フラグ１１３３を「１」にセットし（ステップＳ１０１０）、その後、上記の通り、ハンドモデルの移動に追従させて仮想スクリーンを移動させる（ステップＳ１０１１）。
【０１０７】
一方、ステップＳ１０１２では、ＣＰＵ２０１は、追従フラグ１１３３を「０」にセットし（ステップＳ１０１２）、その後、ハンドモデルの移動に追従させて仮想スクリーンを移動させことを中止し、仮想スクリーンの位置姿勢を固定して、手（ハンドモデル）と仮想スクリーンを分離させる（ステップＳ１０１３）。
【０１０８】
一方、ステップＳ１０１４では、ＣＰＵ２０１は、図１１の接触情報１１３０における接触領域１１３４に、領域Ｂを示す情報を登録する（ステップＳ１０１４）。
【０１０９】
次に、ＣＰＵ２０１は、ハンドモデルと仮想スクリーンとが接触した状態において、ハンドモデルの移動量が規定量以下となる状態が所定時間以上続いているか否かを判断する（ステップＳ１０１５）。この判断の結果、続いていると判断した場合（ステップＳ１０１５でＹＥＳ）には、処理はステップＳ１０１６に進み、続いていないと判断した場合（ステップＳ１０１５でＮＯ）には、図１０のフローチャートに従った処理は完了する。
【０１１０】
次に、ＣＰＵ２０１は、接触情報１１３０中の追従フラグ１１３３を参照し、該追従フラグ１１３３が「１」であるか「０」であるかを判断する（ステップＳ１０１６）。
【０１１１】
ステップＳ１０１６における判断において、追従フラグ１１３３が「１」である場合には、処理はステップＳ１０１９に進み、「０」である場合には、処理はステップＳ１０１７に進む。
【０１１２】
ステップＳ１０１７では、ＣＰＵ２０１は、追従フラグ１１３３を「１」にセットし（ステップＳ１０１７）、その後、上記の通り、ハンドモデルの移動に追従させて仮想スクリーンを拡大／縮小させる（ステップＳ１０１８）。
【０１１３】
一方、ステップＳ１０１９では、ＣＰＵ２０１は、追従フラグ１１３３を「０」にセットし（ステップＳ１０１９）、その後、ハンドモデルの移動に追従させて仮想スクリーンを拡大縮小させことを中止し、仮想スクリーンのサイズを固定して、手（ハンドモデル）と仮想スクリーンを分離させる（ステップＳ１０２０）。
【０１１４】
このように、本実施形態においては、例えば、移動・拡大・縮小後の仮想スクリーンの位置・姿勢・形状と、ＨＭＤ１０１の位置情報と、に応じて、仮想スクリーンの表示・非表示を切り替えることが可能である。
【０１１５】
尚、上述した実施形態の図５の説明においては、ＨＭＤ１０１の位置と現実物体の位置が所定距離以上離れた場合に（ステップＳ５０４でＹＥＳ）、ステップＳ５０１で選択したＩＤに対応するＨＭＤ１０１に対する全ての仮想スクリーンの表示を非表示にするものとしたが、例えばステップＳ５０５で、当該ＨＭＤ１０１（ＨＭＤ  ＩＤ７２５）に対応する仮想スクリーン（仮想スクリーンＩＤ７２１の仮想スクリーン）を特定して当該特定した仮想スクリーンを非表示にするようにしてもよい。つまり、現実物体から離れたユーザの前に配置されていた仮想スクリーンを非表示にして、他のユーザの前に配置されている仮想スクリーンは、当該現実物体から離れたユーザの装着しているＨＭＤ１０１のディスプレイにも継続して表示されるようにするということである。
【０１１６】
また、上述した第３の実施形態の説明においては、図５のステップＳ５０１の前に、ＣＰＵ２０１は、ＲＡＭ２０３や外部メモリ２１１において管理されている「仮想スクリーンの配置設定」が、可変設定であるのか、それともデフォルト設定であるのかを判断して、当該判断結果に応じて、処理をステップＳ５０１に移行するのか、ステップＳ５０１からＳ５０６の処理を行わずに処理を終了するのかを切り替えたが、例えば、図４のステップＳ４０７とＳ４０８の間に「仮想スクリーンの配置設定」が、可変設定であるのか、それともデフォルト設定であるのかを判定するようしてもよい。尚、ステップＳ４０７では更にデフォルトの配置位置の情報が外部メモリから読み込まれているものとする。
【０１１７】
この判断の結果、可変設定の場合、即ち可変モードが設定されている場合には、処理はステップＳ４０８に進み、第１の実施形態と同様の処理を行う。一方、デフォルト設定の場合、即ちデフォルトモードが設定されている場合には、ステップＳ４０８〜Ｓ４１３の処理を行わずに、デフォルトサイズを有する１つの仮想スクリーンを生成して、仮想空間中のデフォルト位置に配置する。そして、当該デフォルトの位置に配置された仮想スクリーンの情報とＨＭＤ１０１の位置姿勢、現実画像の情報を用いてＨＭＤ１０１に表示させるＭＲ画像を生成して、当該ＭＲ画像ＨＭＤ１０１に送信するものとする。
【０１１８】
然るにＨＭＤ１０１を頭部に装着したそれぞれのユーザには、デフォルト位置にデフォルトサイズを有する仮想スクリーンが配置されているＭＲ空間が提供されることになり、それぞれのユーザでこの１つの仮想スクリーンを共有して閲覧することができる。
【０１１９】
尚、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、１つの機器からなる装置に適用してもよい。
【０１２０】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【０１２１】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１２２】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【０１２３】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【０１２４】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１２５】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１２６】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１２７】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【０１２８】
尚、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１２９】
１００    ＰＣ
１０１Ａ  ＨＭＤ
１０１Ｂ  ＨＭＤ
１０１Ｃ  ＨＭＤ
１５０    ネットワーク
２００    サーバ
【図１】
0006357412.tif 000002
【図２】
0006357412.tif 000003
【図３】
0006357412.tif 000004
【図４】
0006357412.tif 000005
【図５】
0006357412.tif 000006
【図６】
0006357412.tif 000007
【図７】
0006357412.tif 000008
【図８】
0006357412.tif 000009
【図９】
0006357412.tif 000010
【図１０】
0006357412.tif 000011
【図１１】
0006357412.tif 000012
【図１２】
0006357412.tif 000013