(57)【要約】【課題】第１の仮想空間上の所望の位置を、第１のヘッドマウントディスプレイの視線によって特定することにより、第２のヘッドマウントディスプレイで識別可能に表示させること。【解決手段】複数の情報処理装置間で仮想オブジェクトの情報が共通する仮想空間の画像を表示させる表示手段を備えるヘッドマウントディスプレイと通信可能に接続された情報処理装置を複数備える情報処理システムであって、ヘッドマウントディスプレイの現実空間上の位置及び向きを取得し取得した位置向き情報をもとに、仮想空間上の位置を特定する。特定した位置に対してヘッドマウントディスプレイからの矢印を表示するよう制御する情報処理システム。【選択図】図１１
2020102232.tif 000002
【特許請求の範囲】
【請求項１】
共通する仮想空間である、第１のヘッドマウントディスプレイの仮想空間と第２のヘッドマウントディスプレイの仮想空間とを管理する情報処理システムであって、
第１のヘッドマウントディスプレイの現実空間上の視線を示す情報である視線情報を取得する取得手段と、
前記取得手段で取得した前記視線情報に基づき、前記第１のヘッドマウントディスプレイの仮想空間上の位置座標を特定する特定手段と、
第２のヘッドマウントディスプレイの仮想空間上に、前記特定手段で特定された前記位置座標に対応する位置座標を識別可能に表示させる表示制御手段と
を備えることを特徴とする情報処理システム。
【請求項２】
前記視線情報は、ヘッドマウントディスプレイの現実空間上の位置情報及び向きを含むことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記位置座標は、前記取得手段で取得した前記視線情報が示す視線と、前記第１のヘッドマウントディスプレイの仮想空間上の仮想オブジェクトとの交点の位置座標であること
を特徴とする請求項１または２に記載の情報処理システム。
【請求項４】
前記表示制御手段は、前記特定手段で特定した位置座標を前記第１のヘッドマウントディスプレイの仮想空間上にも識別可能に表示させることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理システム。
【請求項５】
前記表示制御手段は、前記特定手段で特定された前記位置座標に対応する位置座標を含む仮想オブジェクトを識別可能に表示すること
を特徴とする請求項１乃至４のいずれか１項に記載の情報処理システム。
【請求項６】
仮想オブジェクトごとにフラグを記憶する記憶手段と、
前記特定手段で特定した仮想オブジェクトを前記記憶手段に記憶されたフラグによって、前記表示制御手段で位置座標を識別可能に表示させるか否かを判定する判定手段と
を更に備え、
前記表示制御手段は、前記判定手段で識別表示すべきであると判定した場合に、前記特定手段で特定された前記位置座標に対応する位置座標を識別可能に表示させること
を特徴とする請求項１乃至５のいずれか１項に記載の情報処理システム。
【請求項７】
仮想オブジェクトに対する移動指示を受け付ける移動指示受付手段と、
前記移動指示受付手段で受け付けた前記仮想オブジェクトの位置情報が示す位置座標と前記特定手段で特定した仮想空間上の位置座標との距離を特定する距離特定手段と、
前記距離特定手段で特定した前記距離が所定の値より小さい場合には前記仮想オブジェクトの移動をさせないよう制御する移動制御手段と
を更に備えることを特徴とする請求項１乃至６のいずれか１項に記載の情報処理システム。
【請求項８】
前記距離特定手段は、ヘッドマウントディスプレイの位置から前記取得手段で取得した位置座標への距離を更に特定し、
前記表示制御手段は、
前記距離特定手段で特定した、ヘッドマウントディスプレイの位置から前記取得手段で取得した位置座標への距離が所定の値以内の場合には、当該距離を示す情報を表示すること
を特徴とする請求項７に記載の情報処理システム。
【請求項９】
前記仮想オブジェクトの位置座標から前記特定手段で特定された位置座標へのベクトルを特定するベクトル特定手段
を更に備え、
前記表示制御手段は、
前記距離特定手段で特定した、ヘッドマウントディスプレイの位置から前記取得手段で取得した位置座標への距離が所定の値より大きい場合には、前記ベクトル特定手段で特定した前記ベクトルを表示すること
を特徴とする請求項７乃至８に記載の情報処理システム。
【請求項１０】
共通する仮想空間である、第１のヘッドマウントディスプレイの仮想空間と第２のヘッドマウントディスプレイの仮想空間とを管理する情報処理システムの制御方法であって、
前記情報処理システムの取得手段が、第１のヘッドマウントディスプレイの現実空間上の視線を示す情報である視線情報を取得する取得ステップと、
前記情報処理システムの特定手段が、前記取得ステップで取得した前記視線情報に基づき、前記第１のヘッドマウントディスプレイの仮想空間上の位置座標を特定する特定ステップと、
前記情報処理システムの表示制御手段が、第２のヘッドマウントディスプレイの仮想空間上に、前記特定ステップで特定された前記位置座標に対応する位置座標を識別可能に表示させる表示制御ステップと
を備えることを特徴とする情報処理システムの制御方法。
【請求項１１】
共通する仮想空間である、第１のヘッドマウントディスプレイの仮想空間と第２のヘッドマウントディスプレイの仮想空間とを管理する情報処理システムで実行可能なプログラムであって、
前記情報処理システムを、
第１のヘッドマウントディスプレイの現実空間上の視線を示す情報である視線情報を取得する取得手段と、
前記取得手段で取得した前記視線情報に基づき、前記第１のヘッドマウントディスプレイの仮想空間上の位置座標を特定する特定手段と、
第２のヘッドマウントディスプレイの仮想空間上に、前記特定手段で特定された前記位置座標に対応する位置座標を識別可能に表示させる表示制御手段
として機能させることを特徴とするプログラム。
【請求項１２】
第１のヘッドマウントディスプレイの仮想空間と第２のヘッドマウントディスプレイの仮想空間とが共通する仮想空間であって、第２のヘッドマウントディスプレイの仮想空間を管理する情報処理装置と通信可能な第１のヘッドマウントディスプレイの仮想空間を管理する情報処理装置であって、
第１のヘッドマウントディスプレイの現実空間上の視線を示す情報である視線情報を取得する取得手段と、
前記取得手段で取得した前記視線情報に基づき、前記第１のヘッドマウントディスプレイの仮想空間上の位置座標を特定する特定手段と、
前記特定手段で特定した前記位置座標を第２のヘッドマウントディスプレイの仮想空間を管理する情報処理装置に対して送信する送信手段と
を備えることを特徴とする情報処理装置。
【請求項１３】
第１のヘッドマウントディスプレイの仮想空間と第２のヘッドマウントディスプレイの仮想空間とが共通する仮想空間であって、第２のヘッドマウントディスプレイの仮想空間を管理する情報処理装置と通信可能な第１のヘッドマウントディスプレイの仮想空間を管理する情報処理装置の制御方法であって、
前記情報処理装置の取得手段が、第１のヘッドマウントディスプレイの現実空間上の視線を示す情報である視線情報を取得する取得ステップと、
前記情報処理装置の特定手段が、前記取得ステップで取得した前記視線情報に基づき、前記第１のヘッドマウントディスプレイの仮想空間上の位置座標を特定する特定ステップと、
前記特定手段で特定した前記位置座標を第２のヘッドマウントディスプレイの仮想空間を管理する情報処理装置に対して送信する送信ステップと
を備えることを特徴とする情報処理装置の制御方法。
【請求項１４】
第１のヘッドマウントディスプレイの仮想空間と第２のヘッドマウントディスプレイの仮想空間とが共通する仮想空間であって、第２のヘッドマウントディスプレイの仮想空間を管理する情報処理装置と通信可能な第１のヘッドマウントディスプレイの仮想空間を管理する情報処理装置で実行可能なプログラムであって、
前記情報処理装置を、
第１のヘッドマウントディスプレイの現実空間上の視線を示す情報である視線情報を取得する取得手段と、
前記取得手段で取得した前記視線情報に基づき、前記第１のヘッドマウントディスプレイの仮想空間上の位置座標を特定する特定手段と、
前記特定手段で特定した前記位置座標を第２のヘッドマウントディスプレイの仮想空間を管理する情報処理装置に対して送信する送信手段
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複合現実感（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ）技術に関し、特に第１の仮想空間上の所望の位置を、第１のヘッドマウントディスプレイの視線によって特定することにより、第２のヘッドマウントディスプレイで識別可能に表示させることが可能な情報処理システム、その制御方法、及びプログラム、並びに、情報処理装置、その制御方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、カメラで撮影することで得られる現実空間の画像とコンピュータで生成された仮想空間の画像（仮想オブジェクト）とを重畳させて、ヘッドマウントディスプレイ（ＨＭＤ）やスマートフォンに表示させる技術が存在する。例えば、複合現実感（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ、以下、ＭＲ）技術や拡張現実感（Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ、以下、ＡＲ）技術などがある。
【０００３】
特にＭＲ技術は、ユーザが装着したＨＭＤに現実空間の画像と仮想空間の画像とを重畳させてリアルタイムに表示するので、あたかも現実空間の中に仮想空間の画像が表示されているかのように見え、臨場感が非常に高い。このため、ＭＲ技術を用いた様々な活用が考えられている。
【０００４】
一方、ユーザがＨＭＤを通して見ている仮想オブジェクトはＨＭＤを装着していれば複数人がそれぞれの位置で仮想オブジェクトを見る（共有する）ことができる。そして共有している間に、例えば一人のユーザが仮想オブジェクトに対して位置を１ｍ移動させる指示を行うと、他のユーザの見ている仮想オブジェクトも１ｍ移動したように表示させるような制御を行うことができる。
【０００５】
下記の特許文献１では、視点が異なる複数の画像データからなる自由視点画像に対して、説明情報を付与する位置を指定すると、当該指定された場所にアノテーションが付与され、新たな自由視点画像に切り替わっても前記説明情報が指定された場所に表示される仕組みが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１４−０３２４４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
また、東京（Ａ地点）と大阪（Ｂ地点）間というように遠隔地間でＭＲ空間を共有するということが行われている。これにより、遠隔地であっても同じ仮想オブジェクトの配置を共有することができ、例えば仮想オブジェクトからなるショールームなどを遠隔地間で共有しながら会議などを行うことが可能になる。
【０００８】
このような状況においても、Ａ地点で仮想オブジェクトを移動させるとＢ地点でも当該仮想オブジェクトの位置をＡ地点と同期して移動させるように表示されるように制御される。
【０００９】
この時、遠隔地間で共有されるのは仮想オブジェクトの座標情報だけであって、現実空間の画像データは共有されないため、Ｂ地点のユーザが仮想オブジェクトを移動させたい位置を指などでＡ地点のユーザに対して指示したとしても、Ａ地点のユーザにはＢ地点のユーザの姿を見ることができないため、Ｂ地点のユーザが指示している位置が分からないという課題が生じる。
【００１０】
そこで、前述した特許文献の方法を用いてアノテーションを付与することで位置を指定する方法が考えられる。すなわち、Ｂ地点のユーザが、仮想オブジェクトを移動させたい位置にアノテーションを付与する必要があるが、仮想オブジェクトを移動させたい位置の指定のためには一度ＭＲ体験をするために装着したＨＭＤを頭部から外して、ＰＣの画面上で仮想空間上の位置を指定するという操作が必要となる。ＨＭＤを装着したまま、ＰＣの操作を行うことも考えられるが、ＨＭＤの視野は広いものではないので、ＰＣの操作はしづらいものとなる。
【００１１】
本発明は、第１の仮想空間上の所望の位置を、第１のヘッドマウントディスプレイの視線によって特定することにより、第２のヘッドマウントディスプレイで識別可能に表示させることを目的とする。
【課題を解決するための手段】
【００１２】
上記の目的を達成するために、本発明の情報処理システムは、共通する仮想空間である、第１のヘッドマウントディスプレイの仮想空間と第２のヘッドマウントディスプレイの仮想空間とを管理する情報処理システムであって第１のヘッドマウントディスプレイの現実空間上の視線を示す情報である視線情報を取得する取得手段と、前記取得手段で取得した前記視線情報に基づき、前記第１のヘッドマウントディスプレイの仮想空間上の位置座標を特定する特定手段と、第２のヘッドマウントディスプレイの仮想空間上に、前記特定手段で特定された前記位置座標に対応する位置座標を識別可能に表示させる表示制御手段とを備えることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、第１の仮想空間上の所望の位置を、第１のヘッドマウントディスプレイの視線によって特定することにより、第２のヘッドマウントディスプレイで識別可能に表示させることの可能な効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態における情報処理システムのシステム構成の一例を示す図である。
【図２】情報処理装置２００のハードウェア構成の一例を示す図である。
【図３】情報処理装置２００の機能構成の一例を示す図である。
【図４】本発明の実施形態における一連の処理の流れの一例を示すフローチャートである。
【図５】図４に示す指定ポイントモデル表示処理の詳細を示すフローチャートである。
【図６】図４に示す仮想オブジェクト移動処理の詳細を示すフローチャートである。
【図７】図６に示す指定ポイントモデルへの仮想オブジェクト移動処理の詳細を示すフローチャートである。
【図８】ＨＭＤ１００の仮想空間上の座標情報とベクトルの情報とを格納するＨＤ情報テーブル８００の一例を示す構成図である。
【図９】仮想空間上の仮想オブジェクトに関する各種データを格納するオブジェクトテーブル９００の一例を示す構成図である。
【図１０】選択デバイス１０５の一例を示す模式図である。
【図１１】情報処理装置２００−Ａで作成された指定ポイントモデル１１０２と情報処理装置２００−Ｂと接続されたＨＭＤ１００−Ｂで表示することのできる指定ポイントモデル１１０４の表示の一例である指定ポイントモデルイメージ１１００を示す模式図である。
【図１２】情報処理装置２００−Ｂと接続されたＨＭＤ１００−Ｂで表示される指定ポイントモデルまでの距離表示の一例である距離表示イメージ１２００を示す模式図である。
【図１３】情報処理装置２００−Ｂと接続されたＨＭＤ１００−Ｂで表示される指定ポイントモデルまでの矢印表示の一例である矢印表示イメージ１３００を示す模式図である。
【図１４】情報処理装置２００−Ｂにより作成されるＭＲ空間のなかで、仮想オブジェクトを指定ポイントモデルの位置まで移動させるイメージの一例である仮想オブジェクト移動イメージ１４００を示す模式図である。
【図１５】ユーザから視線に基づく指定ポイントモデルを表示させるか否かの指示を受け付けるダイアログの一例を示す指定ポイントモデル表示指示受付画面１５００の一例を示す模式図である。
【図１６】外部メモリ２１１に記憶される閾値テーブル１６００の一例を示す模式図である。
【図１７】本発明の第２の実施形態における指定ポイントモデル表示処理の詳細を示すフローチャートである。
【図１８】識別表示イメージ１８００の一例を示す図である。
【図１９】本発明の第２の実施形態におけるオブジェクトテーブル９００の一例を示す構成図である
【発明を実施するための形態】
【００１５】
以下、図面を参照して、本発明の実施形態を詳細に説明する。
【００１６】
図１は、本発明の情報処理システムは、情報処理装置２００、ＨＭＤ１００（ヘッドマウントディスプレイ）、光学式センサ１０４、選択デバイス１０５等から構成され、同一の構成を持つ複数の情報処理システムからなるものである。情報処理装置２００とＨＭＤ１００、光学式センサ１０４、選択デバイス１０５は、図１に示すＬＡＮ１０１や、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）等を介して相互にデータ通信可能に接続されている。尚、本実施例では拠点Ａと拠点Ｂにそれぞれ情報処理装置２００が設置されている構成となっているが、１つの拠点Ａに複数の情報処理装置２００を設置しても構わないし、１つの拠点Ａに一つの情報処理装置２００を設置し、複数のＨＭＤ１００を接続し、それぞれのＭＲ空間を構築することで本発明を実施することもできる。一つの情報処理装置２００で実施する場合には、情報処理装置２００に複数のグラフィックボードを備える必要がある。
【００１７】
情報処理装置２００は、外部メモリ２１１内に、ＭＲ空間に配置して表示する仮想オブジェクトであり、複数の情報処理装置２００に共通の仮想オブジェクトを記憶している。情報処理装置２００は、ＨＭＤ１００から受信した現実画像に仮想オブジェクトを重畳した複合現実画像（ＭＲ画像）を生成して、ＨＭＤに送信する。ＭＲ技術の仕組みの詳細については、前述した従来技術の通りである。ＨＭＤは頭部装着式のものであってもよいし、メガネ式のものであってもよい。
【００１８】
情報処理装置２００にはセカンダリの情報処理装置２００−Ａとプライマリの情報処理装置２００−Ｂがある。情報処理装置２００−Ｂは情報処理装置２００−Ａから受け付けた仮想オブジェクトの位置座標の変更（例えば、選択デバイス１０５に基づく仮想オブジェクトの移動指示）を受信し、他の情報処理装置２００に当該位置座標の変更を通知する役割を担う。これにより、例えば場所を異とする遠隔地間でのＭＲ空間の共有であっても、共有しているユーザは共通の仮想空間とそれぞれの現実空間とを重畳した画像をＨＭＤ１００を通して視認することが可能となる。情報処理装置２００−Ａと情報処理装置２００−Ｂの機能は同じものとし、本実施例は便宜的に情報処理装置２００−Ｂをプライマリとしたが、どちらの情報処理装置２００でもプライマリの役割を行うことが可能である。よって情報処理装置２００−Ａと情報処理装置２００−Ｂとそれぞれの用途が限定されることはない。
【００１９】
ＨＭＤ１００は、右目・左目ビデオカメラ２２１で撮影することにより得られた現実空間の画像データを情報処理装置２００に送信する。そして情報処理装置２００から受信した複合現実画像を右目・左目ディスプレイ２２２に表示する。
【００２０】
選択デバイス１０５は、ＭＲ空間上に配置された仮想オブジェクトを選択して、移動するためのデバイスである。例えば、図１０に示す選択デバイス１０５である。選択デバイス１０５は選択ボタン１００１と光学式マーカ１０３を備える。選択ボタン１００１の押下を受け付けると、情報処理装置２００は選択デバイス１０５の位置から一定の範囲（図１０で示す１００２の範囲内）にある仮想オブジェクトの位置座標を選択デバイス１０５の位置座標と同期させる。これによりユーザは選択ボタン１００１を押下することで選択デバイス１０５の一定の距離にある仮想オブジェクトを移動させることを可能にする。選択ボタン１００１の押下が検知されなくなるのを検知すると、仮想オブジェクトと選択デバイス１０５の位置座標の同期を中止する。
【００２１】
ＨＭＤ１００と選択デバイス１０５には、それぞれ光学式マーカ１０３が設置されており、光学式センサ１０４が当該光学式マーカ１０３を撮影（検知・検出）することで、ＨＭＤ１００と選択デバイス１０５の位置向き（座標Ｘ，Ｙ，Ｚ）を特定し、情報処理装置２００に送信することができる。
【００２２】
尚、現実空間とＭＲ空間（原点座標Ｘ，Ｙ，Ｚ＝０，０，０を原点として、仮想オブジェクトを配置した仮想空間）との位置合わせ（キャリブレーション）は既に行われているものとして、以下、本発明の実施形態について説明する。
【００２３】
図２は、情報処理装置２００のハードウェア構成を示す図である。尚、図２の情報処理装置２００のハードウェアの構成は一例であり、用途や目的に応じて様々な構成例がある。
【００２４】
ＣＰＵ２０１は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。
【００２５】
また、ＲＯＭ２０２あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  ＯｕｔｐｕｔＳｙｓｔｅｍ）やオペレーティングシステムや、各種装置の実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。
【００２６】
ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＡＭ２０３にロードして、プログラムを実行することで各種動作を実現するものである。
【００２７】
また、入力コントローラ（入力Ｃ）２０５は、キーボードやマウス等のポインティングデバイス（入力デバイス２０９）からの入力を制御する。
【００２８】
ビデオコントローラ（ＶＣ）２０６は、ＨＭＤ１００が備える右目・左目ディスプレイ２２２等の表示器への表示を制御する。右目・左目ディスプレイ２２２に対しては、例えば外部出力端子（例えば、Ｄｉｇｉｔａｌ  Ｖｉｓｕａｌ  Ｉｎｔｅｒｆａｃｅ）を用いて出力される。また、右目・左目ディスプレイ２２２は、右目用のディスプレイと左目用のディスプレイとから構成されている。
【００２９】
メモリコントローラ（ＭＣ）２０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク（ＨＤ）やフレキシブルディスク（ＦＤ）或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ２１１へのアクセスを制御する。
【００３０】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）２０８は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。また、通信Ｉ／Ｆコントローラ２０８は、ギガビットイーサネット（登録商標）等を通じて光学式センサ１０４との通信も制御する。
【００３１】
汎用バス２１２は、ＨＭＤ１００の右目・左目ビデオカメラ２２１からの映像を取り込むために使用される。右目・左目ビデオカメラ２２１からは、外部入力端子（例えば、ＩＥＥＥ１３９４端子）を用いて入力される。右目・左目ビデオカメラ２２１は、右目用のビデオカメラと左目用のビデオカメラとから構成されている。
【００３２】
尚、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ上での表示を可能としている。また、ＣＰＵ２０１は、ディスプレイ上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００３３】
本発明の情報処理装置２００が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０３にロードされることによりＣＰＵ２０１によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ２１１に格納されている。
【００３４】
次に図３を用いて情報処理装置２００の機能構成について説明する。
【００３５】
情報処理装置２００は、通信制御部３０１、仮想オブジェクト記憶部３０２、ＨＭＤ情報取得部３０３、現実空間画像取得部３０４、ＨＭＤ視線特定部３０５、距離特定部３０６、複合現実画像生成部３０７、仮想空間管理部３０８、表示制御部３０９、ＨＭＤ視界判定部３１０を備えている。
【００３６】
通信制御部３０１は、通信可能に接続されているＨＭＤ１００や光学式センサ１０４、および他の情報処理装置２００との通信を制御することが可能な機能部である。通信制御部３０１は、前述したビデオコントローラ２０６、通信Ｉ／Ｆコントローラ２０８、汎用バス２１２等を通じてこれらの装置と情報の送受信を行う。
【００３７】
仮想オブジェクト記憶部３０２は、ＨＭＤ１００で現実画像と重畳するための仮想オブジェクトを記憶する機能部である。
【００３８】
ＨＭＤ情報取得部３０３はＨＭＤ１００の現実空間における位置及び向きを示す情報を光学式センサ１０４から取得する機能部である。現実空間画像取得部３０４は、ＨＭＤ１００の右目・左目ビデオカメラ２２１から現実空間画像を取得する機能部である。
【００３９】
ＨＭＤ視線特定部３０５は、ＨＭＤ情報取得部３０３で取得したＨＭＤ１００の現実空間における位置及び向きからＨＭＤ１００を装着しているユーザの視線を特定する機能部である。
【００４０】
距離特定部３０６は、ＨＭＤ１００と指定ポイントモデルとの距離を算出することで特定したり、移動対象となった仮想オブジェクトと指定ポイントモデルとの距離を算出する機能部である。なお、距離の算出の仕方は仮想空間上の２点間の座標を用いて計算する従来技術を用いるものとする。
【００４１】
複合現実画像生成部３０７は、ＨＭＤ１００の右目・左目ビデオカメラ２２１から送信される現実空間の画像とＨＭＤ情報取得部３０３から取得したＨＭＤ１００の位置向きに基づく仮想空間の画像とを重畳した画像を生成する機能部である。
【００４２】
仮想空間管理部３０８は、仮想空間における仮想オブジェクトの座標情報を管理する機能部である。情報処理装置２００がプライマリの情報処理装置２００であれば、セカンダリの情報処理装置２００から送信される共通の仮想オブジェクトの座標情報を他のセカンダリの情報処理装置２００に対して、通信制御部３０１を用いて制御するなどの管理を行う。情報処理装置２００がセカンダリの情報処理装置２００であれば仮想オブジェクトの移動指示をユーザから検知すると、当該移動指示による仮想オブジェクトの座標情報をプライマリの情報処理装置２００に対して送信する。
【００４３】
表示制御部３０９は、ＨＭＤ１００の右目・左目ディスプレイ２２２に対して表示の制御を行う機能部である。
【００４４】
次に、本発明の実施形態におけるプライマリ機である情報処理装置２００−Ｂ、セカンダリ機である情報処理装置２００−Ａによって行われる一連の処理について、図４に示すフローチャートを用いて説明する。
【００４５】
ステップＳ４０１では、情報処理装置２００−ＡのＣＰＵ２０１は、ユーザからのＭＲアプリケーションの起動指示を受け付けることにより、ＭＲアプリケーションを起動させる。ＭＲアプリケーションを起動したのち、処理をステップＳ４０２に移す。
【００４６】
ステップＳ４０２では、情報処理装置２００−ＡのＣＰＵ２０１は、別の情報処理装置である情報処理装置２００−Ａに対して接続要求の送信を行う。
【００４７】
ステップＳ４０３では、情報処理装置２００−ＢのＣＰＵ２０１は、ステップＳ４０２で情報処理装置２００−Ａから送信された接続要求を受信する。
【００４８】
ステップＳ４０４では、情報処理装置２００−ＢのＣＰＵ２０１は、接続要求の送信元の情報処理装置２００−Ａに対して、仮想オブジェクトのデータをすべて送信する。例えば、図９に示すオブジェクトテーブル９００と、ファイルパス９０５に示すファイルとを送信する。これにより、仮想オブジェクトの座標情報のやり取りだけで、仮想オブジェクトのリアルタイムな表示制御を行うことを可能にする。
【００４９】
図９に示すオブジェクトテーブル９００は、オブジェクトＩＤ９０１、属性９０２、座標９０３、サイズ９０４、ファイルパス９０５、選択中フラグ９０６、選択禁止フラグ９０７とが格納されている。
【００５０】
オブジェクトＩＤ９０１は、各仮想オブジェクトのデータの識別情報である。属性９０２は、各仮想オブジェクトが、選択デバイス１０５に対応する仮想オブジェクト（選択デバイス）か、選択デバイス１０５の仮想オブジェクトに接触することで選択される選択対象の仮想オブジェクト（被選択）か、ＨＭＤの視線と仮想オブジェクトとの交点に設置される指定ポイントか、を示す情報である。
【００５１】
座標９０３は、各仮想オブジェクトの、ＭＲ空間上の配置位置（Ｘ．Ｙ．Ｚ＝０００．０００．０００  を原点とするＸＹＺ座標）を示す。図９によれば、オブジェクトＩＤ＝Ｍ１１１の座標９０３＝ＸＸ１．ＹＹ１．ＺＺ１のため、オブジェクトＩＤ＝Ｍ１１１の仮想オブジェクトは、ＭＲ空間上の当該座標が示す座標に配置されていることとなる。原点は前述したキャリブレーションの時に設定されるものとする。各座標９０３の座標値は、各仮想オブジェクトの中心点の座標であるものとする。
【００５２】
尚、選択デバイス１０５の座標９０３は、光学式センサにより補足されており、例えばユーザが選択デバイス１０５を移動させることで、当該座標９０３がリアルタイムに更新される。当該更新に用いる選択デバイス１０５のリアルタイムの座標９０３の情報は、光学式センサ１０４から情報処理装置２００に送信され、情報処理装置２００が、当該光学式センサ１０４から受信した座標の情報を、選択デバイス１０５の座標９０３に上書きすることで更新を行う。
【００５３】
サイズ（スケール）９０４は、各仮想オブジェクトの大きさを示す。ファイルパス９０５は、各仮想オブジェクトのファイルが記憶されている記憶領域上のアドレスを示す。
【００５４】
選択中フラグ９０６は、被選択用の仮想オブジェクトが選択デバイス１０５により選択されている状態か否かを示すフラグである。選択中フラグ９０６＝０の場合、選択されていない状態であり、選択中フラグ９０６＝１の場合、選択中であることを示す。
【００５５】
選択禁止フラグ９０７は、被選択用の仮想オブジェクトが選択デバイス１０５による選択を受け付けないように制御するためのフラグである。選択禁止フラグ９０７＝０の場合、選択デバイス１０５の選択を受け付けることを可能とし、選択禁止フラグ９０７＝１の場合には、選択デバイス１０５による選択を受け付けないように制御する。これにより、選択デバイス１０５で選択行為を行ったとしても、被選択用の仮想オブジェクトの移動を不可能とする効果がある。
【００５６】
ステップＳ４０５では、情報処理装置２００−ＢのＣＰＵ２０１は、ステップＳ４０３で受信をした接続要求の送信元の情報処理装置２００−Ａに対して接続の許可を行う。これにより、情報処理装置２００−Ａと情報処理装置２００−Ｂは相互に共通の仮想オブジェクトを表示し、情報処理装置２００−Ｂで仮想オブジェクトの移動指示を選択デバイス１０５により行われたとしてもリアルタイムで情報処理装置―Ａで当該仮想オブジェクトの移動を表示可能にする。
【００５７】
ステップＳ４０６では、情報処理装置２００−ＡのＣＰＵ２０１は、ステップＳ４０４で情報処理装置２００−Ｂから送信されたオブジェクトテーブル９００と、ファイルパス９０５に示すファイルとを受信する。
【００５８】
ステップＳ４０７では、情報処理装置２００−ＡのＣＰＵ２０１は、光学式センサ１０４を用いてＨＭＤ１００−Ａに付された光学式マーカを検知し、ＭＲ空間上のＨＭＤ１００−Ａの位置や向き（位置情報及び向き情報）を取得する（取得手段）。取得したＨＭＤ１００−Ａの位置や向きは、ＨＭＤ情報テーブル８００に格納する。例えば図８に示すＨＭＤ情報テーブル８００である。ＨＭＤ情報テーブル８００には、ＨＭＤ位置・向き８０１が格納されている。ＨＭＤ位置・向き８０１は、ＨＭＤのＭＲ空間上の座標情報と、向き情報（向き）を記憶している。向き情報（向き）はユーザの視線方向と同一の向きを示す情報（視線情報）を格納する。
【００５９】
ステップＳ４０８では、情報処理装置２００−ＡのＣＰＵ２０１は、ＨＭＤ１００−Ａの右目・左目ビデオカメラ２２１から送信される現実空間画像を、取得し、ＲＡＭ２０３等に記憶する。右目・左目ビデオカメラ２２１は、ユーザの右目に相当するビデオカメラと左目に相当するビデオカメラとの２つが存在するため、右目用と左目用の現実空間画像を取得する。
【００６０】
ステップＳ４０９では、情報処理装置２００−ＡのＣＰＵ２０１は、仮想空間画像（仮想空間の画像）を取得しＲＡＭ２０３等に記憶する。より具体的には、ステップＳ４０７で格納したＨＭＤ１００−Ａの位置・向き８０１を読み出し、当該ＨＭＤ位置・向きに対応する仮想空間上のＨＭＤ１００−Ａの位置及び向きを特定する。そして、特定した仮想空間上の位置及び向きで仮想空間上に仮想のカメラ（視点）を設置し、当該カメラにより仮想空間を撮像する。これにより、仮想空間画像を生成する。尚、前述した現実空間画像と同様に、ＨＭＤ１００−Ａの右目・左目ディスプレイ２２２のそれぞれに表示するために右目用の仮想空間画像と左目用の仮想空間画像の２枚を取得する。
【００６１】
ステップＳ４１０では、情報処理装置２００−ＡのＣＰＵ２０１は、ステップＳ４０８で取得した現実空間画像とステップＳ４０９で取得した仮想空間画像とをＲＡＭ２０３等から読み出し、複合現実画像生成部３０７を用いて当該現実空間画像に当該仮想空間画像を重畳し、複合現実画像を生成する。生成した複合現実画像はＲＡＭ２０３等に記憶する。前述したとおり、現実空間画像と仮想空間画像にはそれぞれ右目用と左目用の２枚ずつの画像がＲＡＭ２０３等に記憶されている。そして右目用の現実空間画像に右目用の仮想空間画像を重畳し、左目用の現実空間画像に左目用の仮想空間画像を重畳することで、より没入感の高い視覚をユーザは得ることができる。
【００６２】
ステップＳ４１１では、情報処理装置２００−ＡのＣＰＵ２０１は、ステップＳ４１０で生成した右目用の複合現実画像と左目用の複合現実画像とをＲＡＭ２０３等から読み出し、ＨＭＤ１００−Ａの右目・左目ディスプレイ２２２に表示させるように制御する。前述したように、右目用の複合現実画像を右目・左目ディスプレイ２２２の右目のディスプレイに表示するよう制御し、左目用の複合現実画像を右目・左目ディスプレイ２２２の左目のディスプレイに表示するよう制御する。
【００６３】
ステップＳ４１２では、情報処理装置２００−ＡのＣＰＵ２０１は、ユーザから事前に視線による指定ポイントモデルを表示させるか否かの指示を受け付けたか否かに応じて、指定ポイントモデルの表示指示を受け付けたか否かを判定する。例えば図１５に示す指定ポイントモデル表示指示受付画面１５００のような画面をディスプレイ２１０に表示させ、はいボタン１５０１の押下を受け付けた場合には指定ポイントモデルの表示指示を受け付けたと判定し、いいえボタン１５０２の押下を受け付けた場合には、指定ポイントモデルの非表示指示を受け付けたと判定する。指定ポイントモデルの表示指示を受け付けたと判定した場合には処理をステップＳ４１３に進め、指定ポイントモデルの表示指示を受け付けなかったと判定した場合には処理をステップＳ４１５に進める。
【００６４】
ステップＳ４１３では、情報処理装置２００−ＡのＣＰＵ２０１は、情報処理装置２００−Ａに接続されたＨＭＤ１００−Ａと情報処理装置２００−Ｂに接続されたＨＭＤ１００−Ｂのそれぞれの、右目・左目ディスプレイに指定ポイントモデルを表示させるための処理である指定ポイントモデル表示処理を行う。指定ポイントモデル表示処理の詳細は後の図５で詳細に説明を行う。指定ポイントモデル表示処理を行ったあと、処理をステップＳ４１５に進め、情報処理装置２００−ＢはステップＳ４１４の処理を行う。
【００６５】
ステップＳ４１４では、情報処理装置２００−ＢのＣＰＵ２０１は、仮想オブジェクトをステップＳ４１３で表示された指定ポイントモデルの位置まで移動させる処理である仮想オブジェクト移動処理を行う。仮想オブジェクト移動処理の詳細は後の図６にて詳細に説明を行う。仮想オブジェクト移動処理を行った後、処理をステップＳ４１５に進める。
【００６６】
ステップＳ４１５では、情報処理装置２００−ＡのＣＰＵ２０１は、ユーザからＭＲアプリケーションの終了指示を受け付けたか否かを判定する。例えばアプリケーション終了ボタンの押下を受け付けるなど、ユーザからのアプリケーション終了指示を受け付けたと判定された場合には処理を終了させ、ユーザからのアプリケーション終了指示を受け付けなかったと判定された場合には処理をステップＳ４０７に戻す。
【００６７】
以上により、例えば遠隔地にいるユーザなどの他のユーザを視認することができない状態であっても、ＨＭＤ１００−Ａを装着したユーザＡの視線によりユーザＡが仮想空間上のどこを見ているのかを把握することができるという効果をもたらす。更にＨＭＤ１００−Ｂを装着したユーザＢはＨＭＤ１００−Ａを装着したユーザＡの視線をもとにして、指定ポイントモデルを視認することが可能になるため、仮想オブジェクトの指定ポイントモデルへの移動を容易にすることが可能な仕組みを提供している。
【００６８】
次に、図４に示す指定ポイントモデル表示処理の詳細を図５に示すフローチャートを用いて説明する。
【００６９】
ステップＳ５０１では、情報処理装置２００−ＡのＣＰＵ２０１は、ステップＳ４０７で取得しＲＡＭ２０３等に記憶されたＨＭＤ１００−Ａの視線を読み込む。例えば図８に示すＨＭＤ位置・向き８０１に格納された、向きを示す情報である。
【００７０】
ステップＳ５０２では、情報処理装置２００−ＡのＣＰＵ２０１は、ステップＳ５０１っで読み込んだＨＭＤ１００−Ａの視線により、仮想空間上に配置された仮想オブジェクトを特定する。ＨＭＤ１００−Ａから延びる視線が最初に突き当たった（交差した）仮想オブジェクトのオブジェクトＩＤ９０１を特定する。
【００７１】
ステップＳ５０３では、情報処理装置２００−ＡのＣＰＵ２０１は、ＨＭＤ１００−Ａから延びる視線が最初に突き当たった仮想オブジェクトとの交点の座標（仮想空間上の位置座標）を算出し取得する（特定手段）。取得した交点の座標はＲＡＭ２０３等に記憶しておく。
【００７２】
なお、仮想オブジェクトの当たり判定を示す領域を実際の仮想オブジェクトの大きさより少し大きめにして規定しておき、仮想オブジェクトを容易に特定できるようにしてもよい。
【００７３】
ステップＳ５０４では、情報処理装置２００−ＡのＣＰＵ２０１は、ステップＳ５０１で読み込んだＨＭＤ１００−ＡのＨＭＤ位置・向き８０１の情報と、ステップＳ５０３で取得した交点の座標を情報処理装置２００−Ｂに対して送信する。これらの情報を情報処理装置２００−Ｂに対して送信することにより、情報処理装置２００−Ｂでも指定ポイントモデルを表示することが可能になる。
【００７４】
ステップＳ５０５では、情報処理装置２００−ＡのＣＰＵ２０１は、ステップＳ５０１で読み込んだＨＭＤ１００−ＡのＨＭＤ位置・向き８０１の情報と、ステップＳ５０３で取得した交点の座標をもとにして仮想空間画像上に指定ポイントモデルを表示する。表示は、ステップＳ４１０のように現実空間の画像に仮想空間画像を重畳することで表示をさせる。指定ポイントモデルは、オブジェクトテーブル９００のオブジェクトＩＤ９０１＝Ｍ４４４の指定ポイントモデルを使用する。ステップＳ５０３で取得した交点の座標が座標９０３に格納されることにより、ステップＳ５０３で取得した交点の座標に対して指定ポイントモデルを表示する。ステップＳ４０７で取得しＲＡＭ２０３等に記憶されたＨＭＤ１００−Ａの視線の向きで指定ポイントモデルを表示するように制御するものとする。なお、指定ポイントモデルの表示位置の特定は光学式マーカ１０３を設けた物理的なオブジェクトを光学式センサ１０４で検知することで特定する方法もある。
【００７５】
例えば、図１１に示す指定ポイントモデルイメージ１１００である。指定ポイントモデルイメージ１１００には情報処理装置２００−Ａが生成するＭＲ空間（拠点Ａ）と情報処理装置２００−Ｂが生成するＭＲ空間（拠点Ｂ）のイメージが描画されている。交点１１０３に対してＨＭＤ１００−Ａの視線の向きで表示された指定ポイントモデルが、図１１に示す指定ポイントモデル１１０２である。視線の向きを表示することにより、他のユーザがどの方向から仮想オブジェクトのどの部分を見ているのかを容易に通知することができる。
【００７６】
ステップＳ５０６では、情報処理装置２００−ＢのＣＰＵ２０１は、ステップＳ５０４で情報処理装置２００−Ａから送信されたＨＭＤ１００−ＡのＨＭＤ位置・向き８０１の情報と、交点の座標とを受信する。受信したのち、処理をステップＳ５０７に進める。
【００７７】
ステップＳ５０７では、情報処理装置２００−ＢのＣＰＵ２０１は、ステップＳ５０６で受信したＨＭＤ位置・向き８０１と、交点の座標とを情報処理装置２００−Ａ以外のセカンダリ機の情報処理装置２００に対して配信する。これにより複数のセカンダリ機の情報処理装置２００でも情報処理装置２００−Ａでの指定ポイントモデルの位置を共有することができる。
【００７８】
ステップＳ５０８では、情報処理装置２００−ＢのＣＰＵ２０１は、ステップＳ５０６で受信したＨＭＤ１００−ＡのＨＭＤ位置・向き８０１の情報と、交点の座標をもとに、指定ポイントモデルを仮想空間画像上に重畳表示する（表示制御手段）。重畳表示することで仮想オブジェクトを識別可能に表示する。指定ポイントモデルの表示方法は、ステップＳ５０５と同様であるので割愛する。図１１に示す指定ポイントモデルイメージ１１００の拠点Ｂに示す図が指定ポイントモデルの表示イメージである。拠点Ｂには仮想オブジェクトを指し示すように指定ポイントモデル１１０４が表示される。指定ポイントモデル１１０４が表示されることで、指定ポイントモデル１１０４が指す仮想オブジェクトをユーザに識別可能に視認させることを可能とする効果もある。指定ポイントモデル１１０４は、本実施例では矢印状のものとしたが、仮想オブジェクトを識別可能とする方法はこれに限定されない。視線との交点を持つ仮想オブジェクトの色を変えたり、当該仮想オブジェクト以外を半透明にしたりするなど様々な方法が含まれるものである。
【００７９】
なお、指定ポイントモデルはＨＭＤ１００から仮想オブジェクトまでのベクトルを示す矢印状の仮想オブジェクトとしたが、ＨＭＤ１００の視線と仮想オブジェクトとの交点を識別表示するような構成としてもよい。詳細は後の第２の実施形態で説明する。
【００８０】
本発明は常時ユーザの視線を取得することでリアルタイムに指定ポイントモデルを表示する構成となっているが、ユーザの手が仮想オブジェクトに接触したことを検知し、接触を検知した時点でのユーザの視線に基づいて指定ポイントモデルを表示させるような仕組みにしても構わない。
【００８１】
以上の処理によると、ＨＭＤ１００−Ａを装着したユーザＡの視線に基づいて仮想空間上の位置を特定し、特定した位置を基にしてユーザＡがどこを見ているのかをＨＭＤ１００−Ｂを装着したユーザＢが把握することができるという効果がある。
【００８２】
次に図４に示す仮想オブジェクト移動処理の詳細を図６に示すフローチャートを用いて説明する。
【００８３】
ステップＳ６０１では、情報処理装置２００−ＢのＣＰＵ２０１は、選択デバイス１０５からの仮想オブジェクトの移動指示である移動操作信号を選択デバイス１０５から受け付ける（移動指示受付手段）。具体的には、図１０に示す選択デバイス１０５の選択ボタン１００１の押下を受け付けることで、移動操作信号を受信する。
【００８４】
ステップＳ６０２では、情報処理装置２００−ＢのＣＰＵ２０１は、ステップＳ６０１で移動操作信号を受け付けた時の選択デバイス１０５の現実空間上の座標情報を取得する。取得した選択デバイス１０５の現実空間上の座標情報はＲＡＭ２０３に記憶しておく。選択デバイス１０５の座標情報の取得方法は前述したとおり、光学式センサ１０４を用いる。
【００８５】
ステップＳ６０３では、情報処理装置２００−ＢのＣＰＵ２０１は、ステップＳ６０２で取得した選択デバイス１０５の現実空間上の座標情報に基づいて、当該座標情報に対応する仮想空間上の所定の領域内に仮想オブジェクトがあるか否かを判定する。具体的には、所定の領域とはオブジェクトテーブル９００のサイズ９０４に示す領域であって、選択デバイス１０５の座標９０３を基準とするサイズ９０４に示す範囲を所定の領域とする。この所定の領域内に仮想オブジェクトが接触していると判定された場合には処理をステップＳ６０４に進め、所定の領域内に仮想オブジェクトが接触していないと判定された場合には処理をステップＳ６０１に戻す。
【００８６】
ステップＳ６０４では、情報処理装置２００−ＢのＣＰＵ２０１は、ステップＳ６０３で接触していると判定された仮想オブジェクトのオブジェクトＩＤ９０１を特定し、当該オブジェクトＩＤ９０１に対応する選択中フラグ９０６を０から１にする。
【００８７】
ステップＳ６０５では、情報処理装置２００−ＢのＣＰＵ２０１は、ステップＳ６０４で特定したオブジェクトＩＤ９０１に対応する座標９０３の値を、選択デバイス１０５の座標９０３と同期させる。例えばオブジェクトＩＤ９０１＝Ｍ２２２が特定された場合には、Ｍ２２２に対応する座標９０３をＭ４４４の座標９０３（ＸＸ４、ＹＹ４、ＺＺ４）として上書きする。これにより、選択デバイス１０５と移動対象の仮想オブジェクトの座標が一致するためユーザの選択デバイス１０５の挙動に合わせて仮想オブジェクトが移動しているようにＨＭＤ１００−Ｂで表示することが可能である。
【００８８】
また、選択デバイス１０５で仮想オブジェクトが移動されると、移動された仮想オブジェクトの座標９０３をプライマリ機の情報処理装置２００に送信し、プライマリ機の情報処理装置２００はセカンダリ機の情報処理装置２００に対して配信する。これにより、１つの情報処理装置２００で仮想オブジェクトの移動指示が行われたとしても複数の情報処理装置２００の間でも当該仮想オブジェクトの位置座標の同期を行うことが可能になる。
【００８９】
ステップＳ６０６では、情報処理装置２００−ＢのＣＰＵ２０１は、ＨＭＤ１００−Ｂの座標を取得する。具体的には、ステップＳ４０７と同様に光学式センサ１０４を用いてＨＭＤ１００−Ｂに付された光学式マーカを検知し、ＭＲ空間上のＨＭＤ１００−Ｂの位置や向きを取得する。取得した情報は、ＨＭＤ情報テーブル８００のＨＭＤ位置・向き８０１に格納する。
【００９０】
ステップＳ６０７では、情報処理装置２００−ＢのＣＰＵ２０１は、ステップＳ６０６で取得したＨＭＤ１００−Ｂの座標情報とステップＳ５０６で受信した指定ポイントモデルの座標情報に基づいて、２つの座標情報が示す２点間の距離（ａ）を算出する（距離特定手段）。算出した距離（ａ）はＲＡＭ２０３等に記憶しておく。
【００９１】
ステップＳ６０８では、情報処理装置２００−ＢのＣＰＵ２０１は、ステップＳ６０７で取得した距離（ａ）が閾値以内か否かを判定する。閾値以内か否かの判定は図１６に示している事前に設定された閾値テーブル１６００のＨＭＤの閾値１６０１に基づいて判定する。図１６のＨＭＤの閾値１６０１では５メートルという値が設定されているので、ＨＭＤ１００−Ｂと指定ポイントモデルの座標が示す距離が５メートル以内かを判定する。ＨＭＤ１００−Ｂと指定ポイントモデルの座標が示す距離閾値を超えると判定された場合には処理をステップＳ６０９に進め、閾値以内であると判定された場合には、処理をステップＳ６１０に進める。これにより、ユーザが指定ポイントモデルに近づくことで矢印ではなく距離で指定ポイントモデルとの間隔を図ることが可能になる。
【００９２】
ステップＳ６０９では、情報処理装置２００−ＢのＣＰＵ２０１は、距離（ａ）の値をＨＭＤ１００−Ｂで表示する。表示は、ステップＳ４１０のように現実空間の画像に仮想空間画像を重畳することで表示をさせる。例えば図１２に示す距離表示イメージ１２００である。閾値以内の範囲であればユーザは指定ポイントモデルを視認することが可能のため、指定ポイントモデルまでの距離を表示することで、ユーザは指定ポイントモデルまでの距離を把握することが可能になる。
【００９３】
ステップＳ６１０では、情報処理装置２００−ＢのＣＰＵ２０１は、ステップＳ６０６で取得したＨＭＤ１００−Ｂの座標情報と、ステップＳ５０６で受信した指定ポイントモデルの座標情報との２点からなるベクトルを特定する（ベクトル特定手段）。
【００９４】
ステップＳ６１１では、情報処理装置２００−ＢのＣＰＵ２０１は、ステップＳ６１０で特定したベクトルに基づいて、矢印を表示させる。表示は、ステップＳ４１０のように現実空間の画像に仮想空間画像を重畳することで表示をさせる。矢印はオブジェクトテーブル９００に格納されている仮想オブジェクトである矢印オブジェクトを用いるものとする。矢印オブジェクトを、ステップＳ６１０で特定したベクトル方向の向きにし、ステップＳ４１０のように仮想空間画像として更に重畳させ複合現実画像を生成し、ＨＭＤ１００−Ｂで表示させるように制御する。例えば図１３に示す矢印表示イメージ１３００である。矢印表示イメージ１３００には図示してあるように矢印１３０１が表示されている。これにより、ユーザは指定ポイントモデルまでの距離が遠く離れていたとしても、矢印に沿って移動することで指定ポイントモデルまで到達することができる。
【００９５】
ステップＳ６１２では、情報処理装置２００−ＢのＣＰＵ２０１は、指定ポイントモデルへの仮想オブジェクトの移動処理を行う。詳細は後の図７に示すフローチャートを用いて説明を行う。
【００９６】
以上の処理により、所定の距離に応じて指定ポイントモデルまでの矢印か距離の表示を切り替えることでユーザに適切な誘導を行うことを可能とする。
【００９７】
次に図７を用いて、図６に示す指定ポイントへの到達処理の詳細について説明を行う。
【００９８】
ステップＳ７０１では、情報処理装置２００−ＢのＣＰＵ２０１は、ステップＳ６０２で取得した選択デバイス１０５の座標情報と、ステップＳ５０６で受信した指定ポイントモデルの座標情報に基づいて、２つの座標情報が示す２点間の距離（ｂ）を算出する（距離特定手段）。距離（ｂ）を算出したのち、処理をステップＳ７０２に進める。
【００９９】
ステップＳ７０２では、情報処理装置２００−ＢのＣＰＵ２０１は、ステップＳ７０１で算出した値（ｂ）と、外部メモリ２１１に記憶される閾値テーブル１６００の仮想オブジェクトの閾値１６０２とを比較する。（ｂ）が外部メモリ２１１に記憶される閾値テーブル１６００の仮想オブジェクトの閾値１６０２以内であると判定された場合には処理をステップＳ７０５に移す。（ｂ）が外部メモリ２１１に記憶される閾値テーブル１６００の仮想オブジェクトの閾値１６０２以内ではないと判定された場合には処理をステップＳ７０３に移す。例えば、図１４に示す仮想オブジェクト移動イメージ１４００を用いて説明する。選択デバイス１０５で選択され移動中の仮想オブジェクトが、所定の領域１２０１に接した場合に、選択デバイス１０５との同期が解消され、指定ポイントモデルのある位置に仮想オブジェクトが設置される。
【０１００】
ステップＳ７０３では、情報処理装置２００−ＢのＣＰＵ２０１は、選択デバイス１０５から解除信号を受信したか否かを判定する。解除信号は例えば選択ボタン１００１の押下が検知されなくなるなどによって受け付ける。選択デバイス１０５から解除信号を受信したと判定した場合には処理をステップＳ７０４に進め、選択デバイス１０５から解除信号を受信しなかったと判定した場合には処理をステップＳ６０６に戻す。
【０１０１】
ステップＳ７０４では、情報処理装置２００−ＢのＣＰＵ２０１は、選択デバイス１０５と座標を同期している仮想オブジェクト（選択中フラグ９０６が１の仮想オブジェクト）の座標９０３の選択デバイス１０５との同期を解除する。
【０１０２】
ステップＳ７０５では、情報処理装置２００−ＢのＣＰＵ２０１は、選択中フラグ９０６が「１」の仮想オブジェクトの座標９０３を指定ポイントモデルの座標９０３と同期させる。これにより、指定ポイントモデルの座標に仮想オブジェクトを固定することができる。
【０１０３】
ステップＳ７０６では、情報処理装置２００−ＢのＣＰＵ２０１は、ステップＳ７０５で指定ポイントモデルの座標９０３と同期させた仮想オブジェクトのオブジェクトＩＤ９０１に対応する選択禁止フラグ９０７を１にし、選択中フラグ９０６を１から０とする。（移動制御手段）
【０１０４】
前述したとおり、選択禁止フラグ９０７がたっている間は選択デバイス１０５による選択を受け付けない。
【０１０５】
ステップＳ７０７では、情報処理装置２００−ＢのＣＰＵ２０１は、事前に設定した所定時間（所定の時間）経過したか否かを判定する。事前に設定した所定時間を経過したと判定された場合には、処理をステップＳ７０８に進める。事前に設定した所定時間を経過しないと判定された場合には、処理をステップＳ７０７に戻す。
【０１０６】
ステップＳ７０８では、情報処理装置２００−ＢのＣＰＵ２０１は、ステップＳ７０６で立てた選択禁止フラグ９０７を０に戻す。
【０１０７】
以上で本発明の第１の実施形態の説明を終了する。次に本発明の第２の実施形態の説明を開始する。
【０１０８】
第１の実施形態では、ＨＭＤ１００−Ａを装着したユーザＡの視線に基づいて仮想空間上の位置を特定し、特定した位置とユーザＡのＨＭＤ１００−Ａの位置の２点に基づいて矢印状の仮想オブジェクトを表示した。これにより、どの方向からユーザＡが特定した位置を覗いているのかを他のユーザが把握することができる。
【０１０９】
第２の実施形態の特徴は以下の通りである。第２の実施形態は、ＨＭＤ１００−Ａを装着したユーザＡの視線に基づいて特定した仮想空間上の位置に、方向の概念を持たない仮想オブジェクト（マーク状の仮想オブジェクト）を、重畳表示させることを特徴としている。さらに、視線方向を読み込んだＨＭＤ１００では視線を示す指定ポイントモデルを表示させないことでＨＭＤ１００の視認性を向上させることを特徴としている。また、ＨＭＤ１００の視線方向の最も近い仮想オブジェクトが指定ポイントモデルを表示すべき仮想オブジェクトか否かを判定することにより、指定ポイントモデルの表示を制御させることを特徴としている。
【０１１０】
第２の実施形態では、システム構成、ハードウェア構成、機能構成、画面例、テーブルは第１の実施形態と下記の変更点を除き同様とする。変更点としては、図５を図１７に変更、図９を図１９に変更、図１１を図１８に変更したものである。
これより図１７と図１８の説明を行う。
【０１１１】
図１７は、本発明の第２の実施形態における指定ポイントモデル表示処理の詳細な処理の流れを説明するフローチャートである。
【０１１２】
ステップＳ１７０１からステップＳ１７０２までは図５に示すステップＳ５０１からステップＳ５０２と同様の処理であるため、説明を省略する。
【０１１３】
図１７のフローチャートでは、図５のステップＳ５０５に対応する処理を削除している。これにより、拠点Ａのユーザ（本実施形態であればＨＭＤ１００−Ａを装着しているユーザＡ）のＨＭＤ１００に、指定ポイントモデルを表示させないことにより、ユーザの視界に不要な指定ポイントモデルを表示させないことを可能とするものである。拠点Ｂのユーザが装着するＨＭＤ１００−Ｂでは、拠点Ａのユーザの視線から特定される指定ポイントモデルが表示される。
【０１１４】
また、第２の実施形態では指定ポイントモデルをマーク状のものとしたが、識別表示することができれば第1の実施形態のように矢印状のものを用いてもよい。
【０１１５】
ステップＳ１７０３では、情報処理装置２００−ＡのＣＰＵ２０１は、図１９のオブジェクトテーブル１９００を参照する。オブジェクトテーブル１９００は図９に示すオブジェクトテーブル９００に視線表示フラグ１９０８を追加したものである。視線表示フラグ１９０８は事前に設定されているものであり、視線表示フラグ１９０８が「０」であれば指定ポイントモデルを表示しない仮想オブジェクトであることを示しており、「１」であれば指定ポイントモデルを表示する仮想オブジェクトであることを示すものである。
【０１１６】
ステップＳ１７０４では、情報処理装置２００−ＡのＣＰＵ２０１は、ステップＳ１７０２で特定した仮想オブジェクトの視線表示フラグ１９０８を確認し、視線表示フラグ１９０８が「０」であれば処理をステップＳ１７０２に戻し、視線表示フラグ１９０８が「１」であれば処理をステップＳ１７０５に進める。
【０１１７】
このように、仮想オブジェクトごとに設定を設けることで、仮想オブジェクトによっては指定ポイントモデルを表示させないことが可能となる効果がある。
【０１１８】
ステップＳ１７０５からステップＳ１７０８までの処理はステップＳ５０３乃至５０４、ステップＳ５０６乃至５０７と同様のため、説明を省略する。上述したようにステップＳ５０５は削除している。
【０１１９】
ステップＳ１７０９では、情報処理装置２００−ＢのＣＰＵ２０１は、ステップＳ１７０５で受信した交点の座標（視点と交差する仮想オブジェクト上の座標）に所定の指定ポイントモデル（仮想オブジェクト）を重畳して表示する。
【０１２０】
例えば図１８に示すイメージである。図１８は識別表示イメージ１８００である。視線をもとに仮想オブジェクトの位置座標を特定した（他のＨＭＤに見ている対象を通知する）ＨＭＤ１００−Ａには指定ポイントモデル１８０１を表示せず、ＨＭＤ１００−Ａとは異なるＨＭＤ１００であるＨＭＤ１００−Ｂでは指定ポイントモデル１８０１を表示する。指定ポイントモデル１８０１が表示されることにより仮想オブジェクトを識別可能に表示させることができる。指定ポイントモデル１８０１は図１８のイメージに限定されず、仮想オブジェクトと視線との交点を識別可能にできればこれに限定されない。また、仮想オブジェクトを識別可能にする効果もある。
これにより、ＨＭＤ１００−Ａを装着するユーザの視認性向上をもたらす効果がある。
【０１２１】
第２の実施形態では、矢印状の指定ポイントモデル以外の表示形態で記載をしたが、矢印状の指定ポイントモデルで上述の処理を実施してもよい。
【０１２２】
以上の処理により、指定ポイントモデルの所定の範囲内に選択デバイス１０５で選択し移動中の仮想オブジェクトが近づいた時には、ユーザが簡単に指定ポイントモデルのある座標に仮想オブジェクトを配置することを可能とする。さらに所定時間選択禁止にすることでユーザは選択デバイス１０５による選択解除指示を行わなくとも、指定ポイントモデルのある座標に仮想オブジェクトを配置することを可能としている。
【０１２３】
以上、本実施例により、第１の仮想空間上の所望の位置を、第１のヘッドマウントディスプレイの視線によって特定することにより、第２のヘッドマウントディスプレイで識別可能に表示させることの可能な効果を奏する。
【０１２４】
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、１つの機器からなる装置に適用してもよい。
【０１２５】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【０１２６】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１２７】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【０１２８】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【０１２９】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【０１３０】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１３１】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせても実行可能である。
【０１３２】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１３３】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【０１３４】
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１３５】
１００  ＨＭＤ
１０１  ＬＡＮ
１０３  光学式マーカ
１０４  光学式センサ
１０５  選択デバイス
２００  情報処理装置
２０１  ＣＰＵ
２０２  ＲＯＭ
２０３  ＲＡＭ
２０４  システムバス
２０５  入力コントローラ
２０６  ビデオコントローラ
２０７  メモリコントローラ
２０８  通信Ｉ／Ｆコントローラ
２０９  入力デバイス
２１０  ディスプレイ
２１１  外部メモリ
２１２  汎用バス
２２１  右目・左目ビデオカメラ
２２２  右目・左目ディスプレイ
【図１】
2020102232.tif 000003
【図２】
2020102232.tif 000004
【図３】
2020102232.tif 000005
【図４】
2020102232.tif 000006
【図５】
2020102232.tif 000007
【図６】
2020102232.tif 000008
【図７】
2020102232.tif 000009
【図８】
2020102232.tif 000010
【図９】
2020102232.tif 000011
【図１０】
2020102232.tif 000012
【図１１】
2020102232.tif 000013
【図１２】
2020102232.tif 000014
【図１３】
2020102232.tif 000015
【図１４】
2020102232.tif 000016
【図１５】
2020102232.tif 000017
【図１６】
2020102232.tif 000018
【図１７】
2020102232.tif 000019
【図１８】
2020102232.tif 000020
【図１９】
2020102232.tif 000021