(57)【要約】【課題】複数のユーザが視認しやすい大きさで三次元モデルを表示することの可能な仕組みを提供すること。【解決手段】本発明の情報処理装置は、仮想空間上に配置するための三次元モデルを記憶する。現実空間上のヘッドマウントディスプレイを装着する複数のユーザの位置を取得し、取得した複数のユーザの位置に応じて三次元モデルを表示する大きさを決定する。そして決定された大きさの三次元モデルが複数のヘッドマウントディスプレイで表示されるよう制御する。これにより、複数のヘッドマウントディスプレイで共通の三次元モデルを同時に閲覧する際に、いずれのユーザも視認しやすい大きさとすることができる。【選択図】図７
2016122443.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間上に配置するための三次元モデルを記憶する記憶手段と、
仮想空間上で前記三次元モデルを視認可能な複数のヘッドマウントディスプレイの位置を取得する取得手段と、
前記取得手段で取得された前記複数のヘッドマウントディスプレイの位置に基づいて、前記三次元モデルの表示の大きさを決定する決定手段と、
前記決定手段で決定された大きさで前記三次元モデルを前記複数のヘッドマウントディスプレイで表示させるよう制御する表示制御手段と
を備えることを特徴とする情報処理システム。
【請求項２】
前記三次元モデルの表示される大きさを固定する指示を受け付ける受付手段を更に備え、
前記表示制御手段は、前記受付手段で前記三次元モデルの表示される大きさを固定する指示を受け付けた後は、当該指示を受け付けた際の前記複数のヘッドマウントディスプレイの位置と前記記憶手段で記憶される三次元モデルの大きさとに基づいて決定された大きさで、前記三次元モデルを表示しつづけるように制御すること
を特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記取得手段は、前記複数のヘッドマウントディスプレイの向き及び視野角も取得し、
前記決定手段は、前記取得手段で取得された前記複数のヘッドマウントディスプレイの位置と向きと視野角とに基づいて、前記三次元モデルの表示の大きさを決定すること
を特徴とする請求項１または２に記載の情報処理システム。
【請求項４】
前記決定手段は、前記取得手段で取得された前記複数のヘッドマウントディスプレイと向きと視野角とに基づいて定まる前記複数のヘッドマウントディスプレイの視野が重複する領域に応じて前記三次元モデルの表示の大きさとして決定すること
を特徴とする請求項３に記載の情報処理システム。
【請求項５】
前記決定手段は前記取得手段で取得された前記複数のヘッドマウントディスプレイの位置に基づいて前記三次元モデルの表示位置も決定し、
前記表示制御手段は前記決定手段で決定された大きさと表示位置に基づいて前記三次元モデルを表示するように制御することを特徴とする請求項１乃至４に記載の情報処理システム。
【請求項６】
前記決定手段は、前記取得手段で取得された前記複数のヘッドマウントディスプレイの位置と向きと視野とに基づいて、前記三次元モデルの表示位置を決定し、
前記表示制御手段は前記決定手段で決定された大きさと表示位置に基づいて前記三次元モデルを表示するように制御することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理システム。
【請求項７】
前記表示位置は前記三次元モデルが床面に配置された状態で視認できる位置であることを特徴とする請求項５または６に記載の情報処理システム。
【請求項８】
前記記憶手段は、前記三次元モデルの大きさも記憶しており、
前記決定手段は、前記取得手段で取得された前記複数のヘッドマウントディスプレイの位置と、前記記憶手段に記憶された前記三次元モデルの大きさとに基づいて、三次元モデルの表示倍率を決定し、
前記表示制御手段は、前記記憶手段に記憶された前記三次元モデルの大きさに前記決定手段で決定された表示倍率を乗じて生成した三次元モデルを表示するように制御することを特徴とする請求項１乃至７のいずれか１項に記載の情報処理システム。
【請求項９】
仮想空間上に配置するための三次元モデルを記憶する記憶手段を備える情報処理システムであって、
前記情報処理システムが、
仮想空間上で前記三次元モデルを視認可能な複数のヘッドマウントディスプレイの位置を取得する取得ステップと、
前記取得ステップで取得された前記複数のヘッドマウントディスプレイの位置に基づいて、前記三次元モデルの表示の大きさを決定する決定ステップと、
前記決定ステップで決定された大きさで前記三次元モデルを前記複数のヘッドマウントディスプレイで表示させるよう制御する表示制御ステップと
を備えることを特徴とする情報処理システムの制御方法。
【請求項１０】
仮想空間上に配置するための三次元モデルを記憶する記憶手段を備える情報処理システムで実行可能なプログラムであって、
前記情報処理システムを、
仮想空間上で前記三次元モデルを視認可能な複数のヘッドマウントディスプレイの位置を取得する取得手段と、
前記取得手段で取得された前記複数のヘッドマウントディスプレイの位置に基づいて、前記三次元モデルの表示の大きさを決定する決定手段と、
前記決定手段で決定された大きさで前記三次元モデルを前記複数のヘッドマウントディスプレイで表示させるよう制御する表示制御手段
として機能させることを特徴とするプログラム。
【請求項１１】
仮想空間上に配置するための三次元モデルを記憶する記憶手段と、
仮想空間上で前記三次元モデルを視認可能な複数のヘッドマウントディスプレイの位置を取得する取得手段と、
前記取得手段で取得された前記複数のヘッドマウントディスプレイの位置に基づいて、前記三次元モデルの表示の大きさを決定する決定手段と、
前記決定手段で決定された大きさで前記三次元モデルを前記複数のヘッドマウントディスプレイで表示させるよう制御する表示制御手段と
を備えることを特徴とする情報処理装置。
【請求項１２】
仮想空間上に配置するための三次元モデルを記憶する記憶手段を備える情報処理装置の制御方法であって、
前記情報処理装置が、
仮想空間上で前記三次元モデルを視認可能な複数のヘッドマウントディスプレイの位置を取得する取得ステップと、
前記取得ステップで取得された前記複数のヘッドマウントディスプレイの位置に基づいて、前記三次元モデルの表示の大きさを決定する決定ステップと、
前記決定ステップで決定された大きさで前記三次元モデルを前記複数のヘッドマウントディスプレイで表示させるよう制御する表示制御ステップと
を備えることを特徴とする情報処理装置の制御方法。
【請求項１３】
仮想空間上に配置するための三次元モデルを記憶する記憶手段を備える情報処理装置で実行可能なプログラムであって、
前記情報処理装置を、
仮想空間上で前記三次元モデルを視認可能な複数のヘッドマウントディスプレイの位置を取得する取得手段と、
前記取得手段で取得された前記複数のヘッドマウントディスプレイの位置に基づいて、前記三次元モデルの表示の大きさを決定する決定手段と、
前記決定手段で決定された大きさで前記三次元モデルを前記複数のヘッドマウントディスプレイで表示させるよう制御する表示制御手段
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複合現実感（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ）技術に関し、複数のユーザが視認しやすい三次元モデルに調整して三次元モデルを表示することの可能な仕組みを提供することの可能な情報処理装置、その制御方法、及びプログラム、並びに、情報処理システム、その制御方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、ヘッドマウントディスプレイ（以下、ＨＭＤという。）で現実の世界を撮影した画像に、コンピュータで生成した仮想の世界の画像を重畳させて、ＨＭＤの画面に表示する技術が存在する。
【０００３】
ユーザはＨＭＤを装着することで、あたかも現実空間上に仮想の三次元モデルが存在しているかのような視界を得ることが可能になる。
【０００４】
下記の特許文献１には、ＨＭＤで撮影した現実の画像に人の顔画像を検出した場合に、検出した人の顔画像にＨＭＤで表示する仮想の世界の画像が重複しないよう、画像の位置や大きさを制御する仕組みが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−２１１６６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
前述した仕組みでは、複数のユーザがＨＭＤを装着し、共通の三次元モデルを同時に閲覧することが可能である。この仕組みは、例えば製造業の開発現場で、複数の設計者が製品の三次元モデルを各自のＨＭＤに表示させて、製品レビューを行うようなケースで活用される。
【０００７】
製品レビューの場合、ユーザは製品の全体のバランスなどを見る必要があるため、表示する三次元モデルは、当該三次元モデルが示す製品の実物と同等のサイズで表示されること（原寸大であること）が望ましい。そのため、三次元モデルを原寸大となるよう作成し、仮想空間にこれを原寸大で配置している。
【０００８】
しかしながら、三次元モデルの原寸大の大きさが非常に大きい場合がある。例えば飛行機などである。サイズの大きい三次元モデルを原寸大で表示させてしまうと、三次元モデルの全体のバランスを見ることができず正常に製品レビューを行うことができない。そのためこういった場合にはユーザのレビューに適した大きさで表示するべく、三次元モデルの大きさ（三次元モデルの表示倍率）を変更する手間が生じる。
【０００９】
そこで本発明は、複数のユーザが視認しやすい三次元モデルに調整して三次元モデルを表示することの可能な仕組みを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の情報処理装置は、仮想空間上に配置するための三次元モデルを記憶する記憶手段と、仮想空間上で前記三次元モデルを視認可能な複数のヘッドマウントディスプレイの位置を取得する取得手段と、前記取得手段で取得された前記複数のヘッドマウントディスプレイの位置に基づいて、前記三次元モデルの表示の大きさを決定する決定手段と、前記決定手段で決定された大きさで前記三次元モデルを前記複数のヘッドマウントディスプレイで表示させるよう制御する表示制御手段とを備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、複数のユーザが視認しやすい三次元モデルに調整して三次元モデルを表示することの可能な仕組みを提供することの可能な効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態における遠隔ＭＲシステムのシステム構成の一例を示す図である。
【図２】拠点に構成されるＭＲシステムのシステム構成の一例を示す図である。
【図３】情報処理装置１０１とＨＭＤ１０２のハードウェア構成の一例を示す図である。
【図４】情報処理装置１０１の機能構成の一例を示す図である。
【図５】本実施形態の一連の処理の流れの一例を示すフローチャートである。
【図６】図５に示す三次元モデル倍率決定処理の詳細な処理の流れを示すフローチャートである。
【図７】図６に示すフローチャートにおける三次元モデルの大きさを決定するイメージである表示イメージ７００の一例を示す図である。
【図８】図６に示すフローチャートにおける三次元モデルの大きさを決定するイメージである表示イメージ８００の一例を示す図である。
【図９】各種テーブルのテーブル構成の一例を示す図である。
【図１０】本発明の第２の実施形態における一連の処理の流れの一例を示すフローチャートである。
【図１１】図１０に続く、本発明の第２の実施形態における一連の処理の流れの一例を示すフローチャートである。
【図１２】第２の実施形態において決定された倍率で三次元モデルが表示されるイメージ図である。
【図１３】本発明の第３の実施形態における一連の処理の流れの一例を示すフローチャートである。
【図１４】図１３に続く、本発明の第３の実施形態における一連の処理の流れの一例を示すフローチャートである。
【図１５】第３の実施形態において、領域の内接円の半径によって決定された大きさで三次元モデルが表示されるイメージ図である。
【図１６】第３の実施形態において、各座標から等距離にある位置から各座標までの距離によって決定された大きさで三次元モデルが表示されるイメージ図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照しながら、本発明の実施形態の一例について説明する。
【００１４】
図１は、本発明の実施形態におけるＭＲシステム（情報処理システム）のシステム構成の一例を示す図である。図１に示すＭＲシステムは、ＭＲ技術を用いて、複数の拠点のユーザに同一の仮想空間を閲覧させるシステムである。ＭＲシステムは、情報処理装置１０１にＨＭＤ１０２が相互にデータ通信可能に接続される複数のＭＲシステムを含み、各ＭＲシステムの情報処理装置１０１はネットワーク１０３を介して通信可能に接続されている。情報処理装置１０１とＨＭＤ１０２との接続は、有線接続であってもよいし、無線接続であってもよい。また、ＭＲシステムに含まれるＭＲシステムはいくつでもよい。本実施形態では、情報処理装置１０１−１とＨＭＤ１０２−１とが接続されるＭＲシステムと、情報処理装置１０１−２とＨＭＤ１０２−２とが接続されるＭＲシステムと、その他複数のＭＲシステムとを含むＭＲシステムとして説明を行う。尚、図１のシステム上に接続される各種端末の構成は一例であり、用途や目的に応じて様々な構成例がある。
【００１５】
情報処理装置１０１は、汎用的なコンピュータである。情報処理装置１０１は、ＨＭＤ１０２で撮影（撮像）された現実空間の画像（以下、現実空間画像という。）と、情報処理装置１０１で生成された仮想空間の画像（以下、仮想空間画像という。）とを重畳した画像（以下、複合現実画像という。）を生成し、ＨＭＤ１０２に送信する。尚、ＭＲ技術に関しては従来技術を用いるため、詳細な説明は省略する。また、情報処理装置１０１は、パーソナルコンピュータであってもよいし、サーバのような大型のコンピュータであってもよい。更には、携帯電話やタブレット端末といった携帯端末であってもよい。コンピュータの種類は特に問わない。また、拠点ごとに情報処理装置１０１を設置せず、１台の情報処理装置１０１で処理するようにしてもよい。すなわち、１台の情報処理装置１０１が本実施形態における各ＭＲシステムを構築してもよい。
【００１６】
ＨＭＤ１０２は、ヘッドマウントディスプレイである。ＨＭＤ１０２は、ユーザの頭部に装着する装置であり、右目用と左目用のビデオカメラと、右目用と左目用のディスプレイを備えている。ＨＭＤ１０２は、ＨＭＤ１０２のビデオカメラで撮影された現実空間画像を情報処理装置１０１に送信する。そして、情報処理装置１０１から送信されてきた複合現実画像を受信し、ディスプレイに表示する。ＨＭＤ１０２では、右目用と左目用のディスプレイを設けているので、視差によって立体感を得ることができる。尚、ＨＭＤ１０２で撮影する現実空間画像とＨＭＤ１０２で表示する複合現実画像は、動画（映像）が望ましいが、所定の間隔で撮影された画像であってもよい。
【００１７】
図２は、各拠点のＭＲシステムのシステム構成の一例を示す図である。前述した通り、情報処理装置１０１はＨＭＤ１０２と通信可能に接続されている。更に、情報処理装置１０１には赤外線カメラ２０２が接続されている。赤外線カメラ２０２は、赤外線を用いた光学式のセンサである。赤外線カメラ２０２は、現実空間に赤外線を照射し、現実空間の物体で反射した赤外線を撮影することにより、赤外線カメラ２０２が定義する座標系における、現実空間の物体の位置及び姿勢を特定する。この赤外線カメラ２０２を用いて、現実空間におけるＨＭＤ１０２（すなわちユーザ）の位置及び姿勢（向きや傾き、視線の方向等）を特定する。ＨＭＤ１０２には、オプティカルマーカ２０１という赤外線を反射する物体を備えており、赤外線カメラ２０２はこのオプティカルマーカ２０１で反射した赤外線を撮影することで、ＨＭＤ１０２の位置及び姿勢を特定できるようになっている。ユーザがどのような位置や姿勢であっても、当該ユーザが装着するＨＭＤ１０２のオプティカルマーカ２０１を撮影または検知できるように、ＭＲシステムでは赤外線カメラ２０２を複数台設置することが望ましい。また、位置及び姿勢を特定可能なＨＭＤ１０２は、赤外線カメラ２０２の撮影範囲に存在するＨＭＤ１０２である。
【００１８】
尚、本実施形態においては、現実空間におけるＨＭＤ１０２の位置及び姿勢を特定するために、赤外線カメラ２０２を用いるが、ＨＭＤ１０２の現実空間における位置及び姿勢を特定できるのであれば、これに限らない。例えば、磁気センサを用いてもよいし、ＨＭＤ１０２が撮影した画像を解析して位置及び姿勢を特定してもよい。
【００１９】
図３は、情報処理装置１０１とＨＭＤ１０２の各ハードウェア構成の一例を示す図である。
【００２０】
まず、情報処理装置１０１は、ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３、システムバス３０４、入力コントローラ３０５、ビデオコントローラ３０６、メモリコントローラ３０７、通信Ｉ／Ｆコントローラ３０８、汎用バス３０９、入力デバイス３１０、外部メモリ３１１、ディスプレイ３１２等を備える。
【００２１】
ＣＰＵ３０１は、システムバス３０４に接続される各デバイスやコントローラを統括的に制御する。
【００２２】
また、ＲＯＭ３０２あるいは外部メモリ３１１（記憶手段に相当する）には、ＣＰＵ３０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  ＯｕｔｐｕｔＳｙｓｔｅｍ）やオペレーティングシステムや、各種装置の実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。ＲＡＭ３０３は、ＣＰＵ３０１の主メモリ、ワークエリア等として機能する。
【００２３】
ＣＰＵ３０１は、処理の実行に際して必要なプログラム等をＲＡＭ３０３にロードして、プログラムを実行することで各種動作を実現するものである。
【００２４】
また、入力コントローラ（入力Ｃ）３０５は、キーボードやマウス等のポインティングデバイス（入力デバイス３１０）からの入力を制御する。
【００２５】
情報処理装置１０１のビデオコントローラ（ＶＣ）３０６は、ＨＭＤ１０２が備える右目・左目ディスプレイ３２２やディスプレイ３１２等の表示器への表示を制御する。右目・左目ディスプレイ３２２に対しては、例えば外部出力端子（例えば、Ｄｉｇｉｔａｌ  Ｖｉｓｕａｌ  Ｉｎｔｅｒｆａｃｅ）を用いて出力される。また、右目・左目ディスプレイ３２２は、右目用のディスプレイと左目用のディスプレイとから構成されている。また、ディスプレイ３１２は、液晶ディスプレイ等であり、右目・左目ディスプレイ３２２と同様の表示、または仮想空間を操作するためのＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）が表示される。
【００２６】
メモリコントローラ（ＭＣ）３０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク（ＨＤ）やフレキシブルディスク（ＦＤ）或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ３１１へのアクセスを制御する。
【００２７】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）３０８は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。特に、情報処理装置１０１の通信Ｉ／Ｆコントローラ３０８は、赤外線カメラ２０２との通信も制御する。
【００２８】
情報処理装置１０１の汎用バス３０９は、情報処理装置１０１に接続されるＨＭＤ１０２の右目・左目ビデオカメラ３２１で撮影した画像を取り込むために使用される。右目・左目ビデオカメラ３２１からは、外部入力端子（例えば、ＩＥＥＥ１３９４端子）を用いて入力される。また、右目・左目ビデオカメラ３２１は、右目用のビデオカメラと左目用のビデオカメラとから構成されている。
【００２９】
尚、ＣＰＵ３０１は、例えばＲＡＭ３０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ上での表示を可能としている。また、ＣＰＵ３０１は、ディスプレイ上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００３０】
本発明の情報処理装置１０１が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ３１１に記録されており、必要に応じてＲＡＭ３０３にロードされることによりＣＰＵ３０１によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ３１１に格納されている。
【００３１】
図４は、情報処理装置１０１の機能構成を示す機能構成図である。尚、図４の情報処理装置１０１の機能構成は一例であり、用途や目的に応じて様々な構成例がある。
【００３２】
情報処理装置１０１は機能部として、通信制御部４０１と、位置・姿勢取得部４０２と、位置・姿勢特定部４０３と、現実空間画像取得部４０４と、仮想空間生成部４０５と、仮想空間画像取得部４０６と、複合現実画像生成部４０７とを備える。また、表示制御部４０８と、記憶部４０９と、三次元モデル制御部４１０と、重複視界領域特定部４１１と、表示倍率決定部４１２と、座標特定部４１３と、マウス制御部４１４とを備える。
【００３３】
通信制御部４０１は、情報処理装置１０１と通信可能なＨＭＤ１０２と赤外線カメラ２０２との各種情報の送受信を行う機能部である。通信制御部４０１は、前述したビデオコントローラ３０６、通信Ｉ／Ｆコントローラ３０８、汎用バス３０９等を通じてこれらの装置と情報の送受信を行う。
【００３４】
位置・姿勢取得部４０２は、オプティカルマーカ２０１を備える装置の現実空間における位置及び姿勢を示す情報を赤外線カメラ２０２から取得する機能部である。本実施形態では、ＨＭＤ１０２がオプティカルマーカ２０１を備えているため、位置・姿勢取得部４０２は赤外線カメラ２０２が解析した、現実空間におけるＨＭＤ１０２の位置及び姿勢（ＨＭＤ１０２を装着しているユーザの位置及び姿勢。以下同じ。）を示す情報を取得する。また、位置・姿勢取得部４０２は、現実空間画像取得部４０４で右目・左目ビデオカメラ３２１から取得した右目用の現実空間画像と左目用の現実空間画像とを用いて、三角測量等の方法により、現実空間の物体の位置及び姿勢を特定することもできる。
【００３５】
位置・姿勢特定部４０３は、位置・姿勢取得部４０２で取得した、現実空間におけるＨＭＤ１０２の位置及び姿勢に対応する仮想空間上の位置及び姿勢を特定する機能部である。現実空間の座標系（赤外線カメラ２０２の座標系）と仮想空間の座標系とはあらかじめキャリブレーションがなされており、現実空間と仮想空間とが対応付けられている。つまり、この対応付けに基づいて現実空間におけるＨＭＤ１０２の位置及び姿勢に対応する仮想空間上の位置及び姿勢を特定する。
【００３６】
現実空間画像取得部４０４は、ＨＭＤ１０２の右目・左目ビデオカメラ３２１で撮影された現実空間画像を取得する機能部である。
【００３７】
仮想空間生成部４０５は、情報処理装置１０１の外部メモリ３１１に記憶されている情報に基づいて仮想空間を生成する機能部である。仮想空間は情報処理装置１０１の内部に生成される仮想的な空間であるので、その空間の形や大きさに関する情報が外部メモリ３１１に記憶されており、これに基づいて仮想空間を生成する。仮想空間には三次元モデルからなる三次元モデルを配置可能である。三次元モデルは三次元モデル制御部４１０によって配置される。
【００３８】
仮想空間画像取得部４０６は、仮想空間生成部４０５で生成した仮想空間の画像を取得する機能部である。仮想空間画像取得部４０６が仮想空間の画像を取得する場合には、位置・姿勢特定部４０３で特定した仮想空間におけるＨＭＤ１０２の位置及び姿勢に基づいて仮想空間上の視点を決定し、当該視点から見た場合の仮想空間画像を生成し、これを取得する。この視点に仮想的なカメラを設置し、仮想空間を撮像するようにすればよい。
【００３９】
複合現実画像生成部４０７は、現実空間画像取得部４０４で取得した現実空間画像に仮想空間画像取得部４０６で取得した仮想空間画像を重畳することにより、複合現実画像を生成する機能部である。
【００４０】
表示制御部４０８は、情報処理装置１０１に接続されたＨＭＤ１０２の右目・左目ディスプレイ３２２や情報処理装置１０１に接続されたディスプレイ３１２における各種情報の表示制御を行う機能部である。特に、複合現実画像生成部４０７で生成された複合現実画像をＨＭＤ１０２の右目・左目ディスプレイ３２２に表示させる機能を有する。
【００４１】
記憶部４０９は、後述する各種テーブルの情報や仮想空間を生成するための情報、三次元モデル等の情報を記憶するための機能部である。必要に応じて、情報の追加・更新・削除を行う。本実施形態においては、三次元モデルや三次元モデルを管理する三次元モデル管理テーブル９００が各情報処理装置１０１の記憶部４０９で記憶されているものとして説明を行う。
【００４２】
三次元モデル制御部４１０は、三次元モデルを仮想空間に配置するための機能部である。仮想空間が生成された場合には、あらかじめ定義された位置及び姿勢で三次元モデルを配置する。必要に応じて、配置された三次元モデルを異なる位置及び姿勢で再配置する。
【００４３】
重複視界領域特定部４１１は、位置・姿勢特定部４０３で特定した仮想空間における位置や姿勢に基づいて、仮想空間におけるユーザの視界（視野角）が重複している領域を特定するための機能部である。
【００４４】
表示倍率決定部４１２は、仮想空間に配置する三次元モデルの大きさを規定する表示倍率を決定するための機能部である。具体的には、ユーザの位置関係に応じて三次元モデルの大きさを規定する表示倍率を決定する。
【００４５】
座標特定部４１３は、仮想空間や三次元モデルの座標系において、任意の位置の座標を特定するための機能部である。特に、三次元モデルを表示する位置の座標等を特定する。
【００４６】
マウス制御部４１４は、入力デバイス３１０であるマウスからの入力を受け付けるための機能部である。マウス制御部４１４は、マウスのどのボタンが押下されたのかを検知することができる。
【００４７】
（第１の実施形態）
次に、本発明の第１の実施形態における情報処理装置１０１によって行われる一連の処理について、図５に示すフローチャートを用いて説明する。尚、以下説明する図５以降のフローチャートは、説明の都合上、情報処理装置１０１−１と情報処理装置１０１−２とに処理の主体を分けて表現しているが、どの情報処理装置１０１もステップＳ５０１乃至ステップＳ５１２の処理を実行可能である。すなわち、図５に示すステップＳ５０１乃至５１２、図６に示すステップＳ６０１乃至６０３及び６０７乃至６１６の各処理は、情報処理装置１０１−２も実行可能である。また、図６のステップＳ６０４乃至６０６の各処理は、情報処理装置１０１−１も実行可能である。また、これ以外の情報処理装置１０１が存在する場合にも同じくステップＳ５０１乃至ステップＳ５１２を実行可能である。
【００４８】
ステップＳ５０１では、情報処理装置１０１−１のＣＰＵ３０１は、仮想空間生成部４０５の機能により、外部メモリ３１１から仮想空間の形や大きさに関する情報を取得し、仮想空間を生成する。また、三次元モデル制御部４１０の機能により、外部メモリ３１１から三次元モデルを取得し、所定の位置及び姿勢で仮想空間に配置する。三次元モデルの配置について具体的に説明する。まず、情報処理装置１０１−１は、外部メモリ３１１に記憶された図９の三次元モデル管理テーブル９００と仮想空間管理テーブル９２０とを参照する。そして、三次元モデル保存場所９０２が示すファイルパスから三次元モデルに関する情報（三次元モデルのデータ等）を取得し、これを三次元モデル位置姿勢情報９２１が示す位置及び姿勢（ベクトル）で仮想空間に配置する。
【００４９】
図９に示す三次元モデル管理テーブル９００には、三次元モデルＩＤ９０１、三次元モデル保存場所９０２、大きさ情報９０３が対応付けて保存されている。三次元モデルＩＤ９０１は、三次元モデルを一意に識別するためのＩＤを示す。三次元モデル保存場所９０２は、三次元モデルの保存場所であるファイルパスを示す。大きさ情報９０３は、三次元モデルの大きさを示す情報である。具体的には、三次元モデルの中心座標から最も遠い点までの距離を示すものである。この大きさ情報９０３により、大きさ情報９０３を半径とすれば、三次元モデルが入る最も半径の小さい球を特定することができる。三次元モデル管理テーブル９００は一例であってこれに限定されない。
【００５０】
図９に示す仮想空間管理テーブル９２０には、三次元モデルＩＤ９０１と、三次元モデル位置姿勢情報９２１と表示倍率９２２とが対応付けて保存されている。三次元モデル位置姿勢情報９２１は、仮想空間上の三次元モデルを配置する座標と、三次元モデルの姿勢を規定するベクトルの情報が格納されている。表示倍率９２２は、三次元モデルを表示する倍率を規定する値が格納されている。ユーザなどから三次元モデルの表示指示を受け付けると、情報処理装置１０１は表示指示のあった三次元モデルの三次元モデルＩＤ９０１に紐づく三次元モデル保存場所９０２から三次元モデルのデータを取得し、三次元モデル位置姿勢情報９２１が示す座標とベクトルで、表示倍率９２２が示す倍率を乗じた大きさの三次元モデルを仮想空間に配置し、ＨＭＤで表示させる。詳細は後述する。三次元モデルを表示させる際には、三次元モデルの原点（三次元モデルのＸ軸成分、Ｙ軸成分、Ｚ軸成分が最も小さい点）が三次元モデル位置姿勢情報９２１が示す座標と一致するように制御することで三次元モデルを仮想空間上に配置しＨＭＤで表示可能となる。
【００５１】
ステップＳ５０２では、情報処理装置１０１−１のＣＰＵ３０１は、現実空間画像取得部４０４の機能により、ＨＭＤ１０２−１の右目・左目ビデオカメラ３２１から現実空間画像を取得し、これをＲＡＭ３０３に記憶する。
【００５２】
ステップＳ５０３では、情報処理装置１０１−１のＣＰＵ３０１は、位置・姿勢取得部４０２の機能により、情報処理装置１０１−１と通信可能なＨＭＤ１０２−１の現実空間における位置及び姿勢を示す情報を取得し、これをＲＡＭ３０３に記憶する。前述した通り、ＨＭＤ１０２が備えるオプティカルマーカ２０１を赤外線カメラ２０２が検知することで特定した位置及び姿勢を示す情報を、赤外線カメラ２０２から取得する。
【００５３】
ステップＳ５０４では、情報処理装置１０１−１のＣＰＵ３０１は、三次元モデルの表示指示をユーザから受け付けたか否かを判定する。例えば入力デバイス３１０により、三次元モデルの表示指示を受け付ける。表示指示を受け付けた三次元モデルの三次元モデルＩＤ９０１をＲＡＭ３０３に記憶する。三次元モデルの表示指示をユーザから受け付けたと判定した場合には処理をステップＳ５０５に進める。三次元モデルの表示指示をユーザから受け付けないと判定した場合には処理をステップＳ５０７に進める。
【００５４】
ステップＳ５０５では、情報処理装置１０１−１のＣＰＵ３０１は、図９に示す仮想空間管理テーブルにステップＳ５０４でＲＡＭ３０３に記憶した三次元モデルＩＤ９０１を追加する。この時点では、三次元モデル位置姿勢情報９２１と表示倍率９２２は空欄状態である。
【００５５】
ステップＳ５０６では、情報処理装置１０１−１のＣＰＵ３０１は、ステップＳ５０４で表示指示を受け付けた三次元モデルの表示倍率を決定する処理を行う。三次元モデルは、現実空間と重畳表示した場合に違和感の無いよう、あらかじめサイズが定められている。例えば車の三次元モデルであれば、現実空間と重畳表示した場合に実際の車と同等のサイズで表示できるよう、サイズが規定されている。ステップＳ５０６では、このように原寸大として定められた三次元モデルの大きさを変更するために、三次元モデルの表示倍率を決定する処理を行う。なお、三次元モデルが表示される大きさの決定方法の一つとして表示倍率で説明をしたが、三次元モデルの大きさ情報自体を修正することにより三次元モデルの表示される大きさを変更するなど、三次元モデルの表示される大きさを変更できればなんでもよい。
【００５６】
ステップＳ５０７では、情報処理装置１０１−１のＣＰＵ３０１は、ユーザから三次元モデルの表示倍率と表示位置を固定する指示を受け付けたか否かを判定する。例えば、入力デバイス３１０により、三次元モデルの表示倍率と表示位置を固定する指示を受け付ける（受付手段に相当する）。三次元モデルの表示倍率と表示位置を固定する指示を受け付けたと判定した場合には、処理をステップＳ５０８に進め、三次元モデルの表示倍率と表示位置を固定する指示を受け付けないと判定した場合には処理をステップＳ５０６に進める。なお、必ずしも表示倍率と表示位置の両方について固定する指示である必要は無く、いずれか一方に対する固定指示であってもよい。
【００５７】
ステップＳ５０８では、情報処理装置１０１−１のＣＰＵ３０１は、ステップＳ５０７で固定する指示を受け付けた三次元モデルの三次元モデル位置姿勢情報９２１と表示倍率９２２を固定する処理を行う。三次元モデル倍率決定処理で決定された三次元モデル位置姿勢情報９２１と表示倍率９２２で固定する。三次元モデル位置姿勢情報９２１と表示倍率９２２を固定することで、ユーザが三次元モデルに近づいたとしても三次元モデルの表示位置や表示倍率が変更せずに、三次元モデルを視認することができ、視認性が向上する効果がある。
【００５８】
ステップＳ５０９では、情報処理装置１０１−１のＣＰＵ３０１は、仮想空間画像取得部４０６の機能により、仮想空間を撮像することにより仮想空間画像を取得し、これをＲＡＭ３０３等に記憶する。より具体的には、まずステップＳ５０３で取得したＨＭＤ１０２−１の現実空間における位置及び姿勢を示す情報をＲＡＭ３０３等から読み出し、当該情報を用いて現実空間上の位置及び姿勢に対応する仮想空間上の位置及び姿勢を特定する。そして、特定した仮想空間上の位置及び姿勢で仮想空間上に仮想のカメラ（視点）を設置し、当該カメラにより仮想空間を撮像する。これにより仮想空間画像を生成し、これをＲＡＭ３０３等に記憶する。尚、ＨＭＤ１０２の右目・左目ディスプレイ３２２のそれぞれに表示するために右目用の仮想空間画像と左目用の仮想空間画像の２枚を取得する。
【００５９】
また、情報処理装置１０１−１は、ステップＳ５０９で特定した仮想空間上のＨＭＤ１０２−１の位置及び姿勢は、図６のＨＭＤ管理テーブル９１０のＨＭＤ状態情報９１２に格納する。より具体的には、自ＨＭＤフラグ９１４が「１」となっているレコードのＨＭＤ状態情報９１２にステップＳ５０９で特定した仮想空間上のＨＭＤ１０２−１の位置及び姿勢である仮想空間上の座標とベクトルとを示す情報を格納する。
【００６０】
図９のＨＭＤ管理テーブル９１０は、情報処理装置１０１−１の外部メモリ３１１等に記憶されるデータテーブルである。ＨＭＤ管理テーブル９１０は、ＨＭＤ  ＩＤ９１１と、ＨＭＤ状態情報９１２と、通信先情報処理装置９１３と、自ＨＭＤフラグ９１４とを備える。ＨＭＤ  ＩＤ９１１は、情報処理装置１０１−１に接続されているＨＭＤ１０２−１と、他の情報処理装置１０１（例えば、情報処理装置１０１−２）に接続されているＨＭＤ１０２（例えば、ＨＭＤ１０２−２）とを一意に識別するための識別情報である。あらかじめ共通の仮想空間を閲覧するために使用するＨＭＤ１０２の識別情報を格納しておく。ＨＭＤ状態情報９１２は、仮想空間における各ＨＭＤ１０２の位置及び姿勢と視野角を示す。この位置及び姿勢は、三次元モデル位置姿勢情報９２１と同様に、仮想空間上の座標とベクトルとを示す情報である。視野角は、ＨＭＤの右目・左目ビデオカメラ３２１のカメラの視野角であり、視野の範囲を示すものである。通信先情報処理装置９１３は、各ＨＭＤ１０２と通信可能に接続されている情報処理装置１０１の通信先の情報を示す。通信先の情報は、ＩＰドレスやＭＡＣアドレス等の情報である。自ＨＭＤフラグ９１４は、ＨＭＤ管理テーブル９１０を記憶する情報処理装置１０１−１がどのＨＭＤ１０２と接続されているのかを示すフラグである。自ＨＭＤフラグ９１４に「１」が格納されていれば、そのレコードのＨＭＤ１０２が情報処理装置１０１−１と接続されていることがわかる。自ＨＭＤフラグ９１４に「０」が格納されていれば、他の情報処理装置１０１（例えば、情報処理装置１０１−２）と接続されているＨＭＤ１０２であることがわかる。尚、ＨＭＤ管理テーブル９１０の構成はこれに限らない。
【００６１】
ステップＳ５１０では、情報処理装置１０１−１のＣＰＵ３０１は、複合現実画像生成部４０７の機能により、ステップＳ５０２で取得した現実空間画像とステップＳ５０９で取得した仮想空間画像とをＲＡＭ３０３等から読み出す。そして、当該現実空間画像に当該仮想空間画像を重畳し、複合現実画像を生成する。生成した複合現実画像はＲＡＭ３０３等に記憶する。尚、前述した通り、現実空間画像と仮想空間画像とは右目用と左目用の２枚ずつがＲＡＭ３０３等に記憶されているので、右目用の現実空間画像に右目用の仮想空間画像を重畳し、左目用の現実空間画像に左目用の仮想空間画像を重畳する。
【００６２】
ステップＳ５１１では、情報処理装置１０１−１のＣＰＵ３０１は、表示制御部４０８の機能により、ステップＳ５１０で生成した複合現実画像をＲＡＭ３０３等から読み出し、ビデオコントローラ３０６を通じてＨＭＤ１０２−１の右目・左目ディスプレイ３２２に表示する（表示制御手段に相当する）。ＲＡＭ３０３等に記憶された複合現実画像は、右目用と左目用の２枚が存在する。そのため、右目用の複合現実画像を右目・左目ディスプレイ３２２の右目のディスプレイに表示するよう制御し、左目用の複合現実画像を右目・左目ディスプレイ３２２の左目のディスプレイに表示するよう制御する。
【００６３】
ステップＳ５１２では、情報処理装置１０１−１のＣＰＵ３０１は、ＨＭＤ１０２−１を装着しているユーザに複合現実感を提示する処理の終了指示があったか否かを判定する。例えば、前述したステップＳ５０１乃至ステップＳ５１１の処理を実行する情報処理装置１０１−１のアプリケーションの停止指示や終了指示があったか否かを判定する。終了指示があったと判定した場合には、本一連の処理を終了する。終了指示があったと判定しなかった場合、すなわち終了指示がなかった場合にはステップＳ５０２に処理を戻し、終了指示があるまでステップＳ５０２乃至ステップＳ５１１の処理を繰り返す。
【００６４】
このようにすることで、仮想空間に配置された三次元モデルがあたかも現実空間に配置されているかのような感覚をユーザに与えることができる。
【００６５】
以上で、図５に示す一連の処理の説明を終了する。
【００６６】
次に図６に示すフローチャートを用いて、図５の三次元モデル倍率決定処理の詳細な処理の流れを説明する。ステップＳ６０３からステップＳ６０４への点線及び、ステップＳ６０６からステップＳ６０７への点線の矢印は、データの流れを示す矢印である。
【００６７】
ステップＳ６０１では、情報処理装置１０１−１のＣＰＵ３０１は、三次元モデルの三次元モデルＩＤ９０１を特定する。ステップＳ５０４で表示指示を受け付けた三次元モデルか、既に仮想空間上に配置されている三次元モデルの三次元モデルＩＤ９０１を特定する。
【００６８】
ステップＳ６０２では、情報処理装置１０１−１のＣＰＵ３０１は、図９に示すＨＭＤ管理テーブル９１０を読み込む。
【００６９】
ステップＳ６０３では、情報処理装置１０１−１のＣＰＵ３０１は、他の情報処理装置（例えば、情報処理装置１０１−２）に対してＨＭＤ１０２のＨＭＤ状態情報９１２の送信要求を送信する。要求を送信する情報処理装置１０１は、自ＨＭＤフラグ９１４の立っていないＨＭＤ  ＩＤ９１１であり、通信先情報処理装置９１３により通信先を特定することが可能である。
【００７０】
ステップＳ６０４では、情報処理装置１０１−２のＣＰＵ３０１は、ステップＳ６０３で情報処理装置１０１−１が送信したＨＭＤ１０２のＨＭＤ状態情報９１２の送信要求を受信する。
【００７１】
ステップＳ６０５では、情報処理装置１０１−２のＣＰＵ３０１は、情報処理装置１０１−２が管理するＨＭＤ管理テーブル９１０の自ＨＭＤフラグ９１４の立っているＨＭＤ１０２のＨＭＤ  ＩＤ９１１とＨＭＤ状態情報９１２を取得する。
【００７２】
ステップＳ６０６では、情報処理装置１０１−２のＣＰＵ３０１は、ステップＳ６０５で取得したＨＭＤ  ＩＤ９１１とＨＭＤ状態情報９１２を情報処理装置１０１−１に対して送信する。
【００７３】
ステップＳ６０７では、情報処理装置１０１−１のＣＰＵ３０１は、ステップＳ６０６で情報処理装置１０１−２が送信したＨＭＤ  ＩＤ９１１とＨＭＤ状態情報９１２を受信する（取得手段に相当する）。
【００７４】
ステップＳ６０８では、情報処理装置１０１−１のＣＰＵ３０１は、ステップＳ６０２で読み出したＨＭＤ管理テーブル９１０の、ステップＳ６０７で受信したＨＭＤ  ＩＤ９１１に対応するＨＭＤ状態情報９１２を更新する処理を行う。更新することで、他の情報処理装置１０１に接続されるＨＭＤ１０２の状態を把握することができる。
【００７５】
ステップＳ６０９では、情報処理装置１０１−１のＣＰＵ３０１は、ＨＭＤ管理テーブル９１０の、ＨＭＤ状態情報９１２であるＨＭＤの座標（Ｘ軸、Ｙ軸、Ｚ軸）とベクトルと視野角に基づいて、複数のＨＭＤ１０２の視野が重複している仮想空間上の領域を抽出する。なお、視野が重複している領域の抽出方法は、例えば特許文献（特開２０１０−２５６２９６）のように公知技術を用いるものとする。
【００７６】
ステップＳ６１０では、情報処理装置１０１−１のＣＰＵ３０１は、ステップＳ６０９で抽出した重複領域の内接球の中心座標を特定する。特定した中心座標は、図９に示す内接球テーブル９３０の内接球中心座標９３１に格納する。内接球テーブル９３０は、視野が重複している領域の内接球の情報を管理するテーブルであり、内接球中心座標９３１と半径９３２とが記憶されている。内接球中心座標９３１は、内接球の中心座標を記憶する。半径９３２は内接球の半径を記憶する。
【００７７】
ステップＳ６１１では、情報処理装置１０１−１のＣＰＵ３０１は、ステップＳ６０９で抽出した重複領域の内接球の半径を特定する。特定した半径は、半径９３２に格納する。ステップＳ６１０とステップＳ６１１の処理により、重複領域の内接球を規定する情報を取得する。
【００７８】
ステップＳ６１２では、情報処理装置１０１−１のＣＰＵ３０１は、ステップＳ６１１で特定した半径９３２と、ステップＳ６０１で特定した三次元モデルＩＤ９０１に対応する大きさ情報９０３とを比較し、大きさ情報９０３より半径９３２が大きいか否かを判定する。大きさ情報９０３より半径９３２が大きいと判定した場合は処理をステップＳ６１３に進める。大きさ情報９０３より半径９３２が大きくないと判定した場合は処理をステップＳ６１４に進める。
【００７９】
ステップＳ６１３では、情報処理装置１０１−１のＣＰＵ３０１は、ステップＳ６０１で特定した三次元モデルＩＤ９０１が示す三次元モデルを原寸大で表示させるべく、表示倍率９２２を１（倍率の上限値に相当する）とする。これにより、ＨＭＤを装着した複数のユーザの視野の重複範囲が大きかった場合でも三次元モデルの大きくなりすぎることなく、原寸大で表示することができる。
【００８０】
例えば、図８に示す表示イメージ８００である。表示イメージ８００は、ＨＭＤを装着しているユーザを上方から見たイメージである。ＨＭＤ１０２−１を装着したユーザの視野８０１とＨＭＤ１０２−２を装着したユーザの視野８０２とＨＭＤ１０２−３を装着したユーザの視野８０３が重複する領域の内接球８０７のイメージである。内接球８０７の中心座標８０４（高さ成分は０とする）を中心として三次元モデル８０６を表示する。表示イメージ８００は、ステップＳ６１３で表示倍率を１とした場合のイメージである。そのため、内接球の半径８０５の方が三次元モデル８０６の大きさ情報９０３より大きい為、三次元モデル８０６は原寸大で表示される。このようにすることで、三次元モデルが異常に大きくなってしまうことを防ぐ効果がある。なお、この大きさの上限値を原寸大として説明したが、これに限定されず、ユーザによる任意の大きさを大きさの上限として処理しても構わない。
【００８１】
ステップＳ６１４では、情報処理装置１０１−１のＣＰＵ３０１は、三次元モデルを表示する表示倍率９２２を特定する。具体的には、ステップＳ６１２で比較した内接球の半径９３２と、大きさ情報９０３との比を計算により特定する。より具体的には大きさ情報９０３を１とする半径９３２の比を特定する。特定した半径９３２の比を表示倍率９２２に格納する（決定手段に相当する）。このようにして、ユーザの位置関係に応じて適切に表示される大きさの三次元モデルの大きさを決定することができる。
【００８２】
例えば、図７に示す表示イメージ７００である。表示イメージ７００は、ＨＭＤを装着しているユーザを上方から見たイメージである。ＨＭＤ１０２−１を装着したユーザの視野７０１とＨＭＤ１０２−２を装着したユーザの視野７０２とＨＭＤ１０２−３を装着したユーザの視野７０３とが重複する領域の内接球７０７のイメージである。内接球７０７の中心座標７０４（高さ成分は０とする）を中心として三次元モデル７０６を表示する。表示イメージ７００は、ステップＳ６１４で内接球の半径７０５に対応して三次元モデルの大きさが決定された場合のイメージである。このようにすることで、複数のユーザの位置関係に応じた視認しやすい三次元モデルの適切な大きさを決定することができる。
【００８３】
ステップＳ６１５では、情報処理装置１０１−１のＣＰＵ３０１は、ステップＳ６１０で特定した中心座標９４１を三次元モデルの表示位置とすべく、ステップＳ６０１で特定した三次元モデルＩＤ９０１に対応する三次元モデル位置姿勢情報９２１の座標を更新する（決定手段に相当する）。なお、高さを示すＹ軸成分に関しては、三次元モデルが宙に浮いたように表示されてしまわないように、Ｙ軸成分は三次元モデルが地面（床面）に配置されているように視認可能な適切な値に制御する。例えば、Ｙ軸成分は変更させずに０とすることで、地面に配置されているようにＨＭＤで表示することができる。
【００８４】
ステップＳ６１６では、情報処理装置１０１−１のＣＰＵ３０１は、ステップＳ６０１で特定した三次元モデルＩＤ９０１に対応する三次元モデル保存場所９０２から表示するための三次元モデルのデータを取得する。
【００８５】
ステップＳ６１７では、情報処理装置１０１−１のＣＰＵ３０１は、ステップＳ６１５で定めた仮想空間上の表示位置に、ステップＳ６１６で取得した三次元モデルのデータと表示倍率９２２に基づいて三次元モデルを配置する（三次元モデル配置に相当する）。
【００８６】
より具体的には表示倍率９２２が示す倍率をステップＳ６１６で取得した大きさ情報データが示す三次元モデルを縮小することで、三次元モデルの大きさを決定する（決定手段に相当する）。大きさが決定された三次元モデルを、ステップＳ６１５で更新した三次元モデル位置姿勢情報９２１の座標に配置する。なお、三次元モデルを配置した後に三次元モデルの大きさを変更してもよい。
【００８７】
このようにして、複数のユーザが共有する仮想空間上の三次元モデルの大きさ及び配置位置を適切に決定することができる。すなわち、複数のユーザがＨＭＤを装着し、共通の三次元モデルを同時に閲覧する際に、いずれのユーザも見やすい大きさ及び位置に三次元モデルを表示させることができる。
【００８８】
以上、図６に示すフローチャートの説明を終了する。
【００８９】
本実施形態では、大きさ情報９０３をあらかじめ記憶しているものとして記載を行った。しかし、表示指示を受け付けた段階で、表示指示を受け付けた三次元モデルの中心座標から最も遠い三次元モデルの点を特定し、中心座標から当該点までの距離を算出して、大きさ情報９０３を算出しても構わない。
【００９０】
本実施形態では、三次元モデルの大きさを決定するための情報として内接球の半径を用いるものとしたが、直径など他の成分でも構わない。複数のユーザのＨＭＤの視野が重複する領域に応じて三次元モデルの大きさを決定することができれば外接球を用いるなど他のものでも構わない。
【００９１】
本実施形態では、ＨＭＤを装着した複数のユーザの位置関係に応じて決定される三次元モデルの大きさを原寸大より大きくならない（拡大しない）ように制御したが、原寸大を表示する大きさの上限値とした一例にすぎず、原寸大より大きいサイズを上限値としてもよいし、場合によっては上限値を設けなくとも構わない。
【００９２】
また、三次元モデルの作成者が原寸大の大きさを誤って非常に小さく設定してしまったような場合であっても、ＨＭＤを装着した複数のユーザの位置関係に応じて表示倍率を変更して表示することでも本発明の目的は達成される。その場合、三次元モデルを縮小する上限値を設定し、その上限値より縮小されないように制御するものでも構わない。
【００９３】
以上で本発明の第１の実施形態の説明を終了する。
【００９４】
（第２の実施形態）
次に本発明の第２の実施形態について説明する。
【００９５】
第１の実施形態では、ＨＭＤの視野が重複する領域の内接球の半径と、当該三次元モデルの中心座標から最も遠い点までの距離とに基づいて、三次元モデルが表示される大きさを決定し、表示するように制御した。第２の実施形態では、上から見てＨＭＤの視野が重複する領域の内接円の半径と、当該三次元モデルの中心座標から最も遠い点までの距離とに基づいて、三次元モデルが表示される大きさを決定するように制御している。
【００９６】
以下、図面を参照しながら本発明の第２の実施形態について説明する。
【００９７】
第２の実施形態は、第１の実施形態と図６に対応する図１０と図１１、図７に対応する図１２を除いて、ハードウェア構成、機能構成、フローチャート、データテーブル等については同様である。第１の実施形態と同様な部分については、説明を省略し、処理が異なる部分についてのみ説明する。
【００９８】
図１０は本発明の第２の実施形態における三次元モデル倍率決定処理の詳細な処理を説明するフローチャートである。
【００９９】
ステップＳ１００１乃至ステップＳ１００８は、図６のステップＳ６０１乃至ステップＳ６０８までと処理が同様であるため説明を省略する。
【０１００】
ステップＳ１００９では、情報処理装置１０１−１のＣＰＵ３０１は、ＨＭＤ管理テーブル９１０のＨＭＤ状態情報９１２に格納されている座標の情報に関して高さ情報（Ｙ軸成分）を０とした座標を求める。この処理は、ＨＭＤの視野の重複を平面上で計算するためである。
【０１０１】
ステップＳ１０１０では、情報処理装置１０１−１のＣＰＵ３０１は、ＨＭＤ管理テーブル９１０のＨＭＤ状態情報９１２に格納されているベクトルを平面化（Ｙ軸成分を０とする）する。
【０１０２】
ステップＳ１０１１では、情報処理装置１０１−１のＣＰＵ３０１は、ステップ１０１０で平面化されたベクトルと、ＨＭＤ状態情報９１２に格納されている視野角情報の平面成分（Ｘ軸成分とＺ軸成分）に基づいて、ＨＭＤ管理テーブル９１０で管理されているＨＭＤの視野領域を特定する。
【０１０３】
ステップＳ１０１２では、情報処理装置１０１−１のＣＰＵ３０１は、ステップＳ１０１１で特定された視野領域に基づいて、ＨＭＤの視野領域の重複している領域を抽出する。
【０１０４】
ステップＳ１０１３では、情報処理装置１０１−１のＣＰＵ３０１は、ステップＳ１０１２で抽出されたＨＭＤの視野領域の重複している領域の内接円の中心座標を特定する。
【０１０５】
ステップＳ１０１４では、情報処理装置１０１−１のＣＰＵ３０１は、ステップＳ１０１２で抽出されたＨＭＤの視野領域の重複している領域の内接円の半径を特定する。例えば図１２に示すイメージ図である。平面上の視野角が１２０１、１２０２、１２０３である。この１２０１、１２０２、１２０３が示す視野領域が重複する領域の内接円１２０７の半径が半径１２０５となる。内接円の中心は中心座標１２０４である。
【０１０６】
以上で図１０に示すフローチャートの説明を終了し、ステップＳ１０１４以降の処理について図１１に示すフローチャートを用いて説明を行う。
【０１０７】
ステップＳ１１０１では、情報処理装置１０１−１のＣＰＵ３０１は、ステップＳ１００１で特定された三次元モデルＩＤ９０１に対応する大きさ情報９０３と、ステップＳ１０１４で特定された半径とを比較し、大きさ情報９０３より半径１２０５が大きいか否かを判定する。大きさ情報９０３より半径１２０５が大きいと判定された場合は処理をステップＳ１１１２に処理を進め、そうでない場合には処理をステップＳ１１３に進める。
【０１０８】
ステップＳ１１０２では、情報処理装置１０１−１のＣＰＵ３０１は、図６のステップＳ６１３と処理が同様であるため説明を省略する。
【０１０９】
ステップＳ１１０３では、情報処理装置１０１−１のＣＰＵ３０１は、三次元モデルを表示する表示倍率９２２を特定する。具体的には、ステップＳ１１０１で比較した内接円の半径１２０５と大きさ情報９０３との比を計算により特定する。大きさ情報９０３を１とする半径１２０５の比を特定し、特定された大きさ情報９０３を１とする半径１２０５の比を表示倍率９２２に特定する。このようにすることで、ユーザの位置関係に応じて適切に表示される大きさの三次元モデルの大きさを決定することができる。
【０１１０】
ステップＳ１１０４では、情報処理装置１０１−１のＣＰＵ３０１は、ステップＳ１０１３で特定された内接円の中心座標の高さ成分をあらかじめユーザに指定された高さ成分に変更して、三次元モデルの表示位置を決定する。このようにすることで、例えばあらかじめユーザがテーブルの高さを指定しておくことにより、本発明は、テーブルの上に三次元モデルがあたかもテーブルの上に配置されたような視覚をヘッドマウントディスプレイを介して複数のユーザに提供することを可能とする。
【０１１１】
ステップＳ１１０５では、情報処理装置１０１−１のＣＰＵ３０１は、ステップＳ６１６と処理が同様であるため説明を省略する。
【０１１２】
ステップＳ１１０６では、情報処理装置１０１−１のＣＰＵ３０１は、ステップＳ１１０５で取得された三次元モデルのデータを、ステップＳ１１０４で決定された三次元モデルの表示位置に、ステップＳ１１０２またはステップＳ１１０３で決定された表示倍率で表示するように制御する。例えば図１２に示すイメージ図であれば、三次元モデル１２０６のように表示される。三次元モデル１２０６は、立方体のような三次元モデルである。図１２では、三次元モデル１２０６が、ヘッドマウントディスプレイの視野の重複する領域内で表示されるよう、大きさが変更されて表示されている。このようにすることで、ユーザが視認しやすい大きさで三次元モデル１２０６が表示されるのである。
【０１１３】
以上で本発明の第２の実施形態の説明を終了する。
【０１１４】
（第３の実施形態）
次に本発明の第３の実施形態の説明を開始する。本発明の第３の実施形態では、第１、第２の実施形態のようにヘッドマウントディスプレイの視野に関する情報なく、複数のヘッドマウントディスプレイの位置のみに基づいて表示する三次元モデルの大きさを決定することを特徴としている。
【０１１５】
以下、第３の実施形態について説明を行うが、第３の実施形態は、第１の実施形態と図６に対応する図１３と図１４、表示イメージを除いて、ハードウェア構成、機能構成、フローチャート、データテーブル等については同様である。第１の実施形態と同様な部分については、説明を省略し、処理が異なる部分についてのみ説明する。
【０１１６】
図１３は本発明の第３の実施形態における三次元モデル倍率決定処理の詳細な処理を説明するフローチャートである。
【０１１７】
ステップＳ１３０１乃至ステップＳ１３０８は、図６のステップＳ６０１乃至ステップＳ６０８までと処理が同様であるため説明を省略する。
【０１１８】
ステップＳ１３０９では、情報処理装置１０１−１のＣＰＵ３０１は、ＨＭＤ管理テーブル９１０のＨＭＤ状態情報９１２に格納されている座標の情報に関して高さ情報（Ｙ軸成分）を０とした座標を求める。この処理は、ＨＭＤの視野の重複を平面上で計算するためである。
【０１１９】
ステップＳ１３１０では、情報処理装置１０１−１のＣＰＵ３０１は、ステップＳ１３０９で求められた座標を頂点とする多角形の領域を求める。例えば図１５で説明する。図１５は、ＨＭＤを装着しているユーザを上方から見たイメージである。ＨＭＤ１０２−１乃至３の位置（ステップＳ１３０９で求められた座標）を頂点とする領域が、領域１５０１である。
【０１２０】
以上で図１３に示すフローチャートの説明を終了し、ステップＳ１３１０以降の処理について引き続き図１４のフローチャートにて説明を行う。
【０１２１】
ステップＳ１４０１では、情報処理装置１０１−１のＣＰＵ３０１は、ステップＳ１３１０で求められた領域の内心を用いて三次元モデルの表示倍率を決定するか否かを判定する。複数の座標の内心の算出方法は、公知の手法を用いるものとする。具体的には、内心の径が所定の大きさ（例えば半径１ｍ）以上である場合に、内心を用いて三次元モデルの表示倍率を決定してよいと判定し、内心の径が所定の大きさ未満である場合に、内心を用いて三次元モデルの表示倍率を決定できないと判定し、外心を用いて三次元モデルの表示倍率を決定する。このように判定を行うことで、表示される三次元モデルが小さくなりすぎてしまうことを防止することができる。
【０１２２】
ステップＳ１４０２では、情報処理装置１０１−１のＣＰＵ３０１は、ステップＳ１３０９で求められた複数の座標から距離が等しい位置にある外心の座標と、当該距離を求める。
【０１２３】
ステップＳ１４０３では、情報処理装置１０１−１のＣＰＵ３０１は、ステップＳ１４０２で求められた表示座標の高さ成分をユーザにあらかじめ指定された値に変更し、高さ成分が変更された座標を三次元モデルの表示位置として決定する。
【０１２４】
ステップＳ１４０４では、情報処理装置１０１−１のＣＰＵ３０１は、ステップＳ１４０２で求められた距離に対する補正値を取得する。なお、補正値は必須の構成ではなく、補正を行わない構成としてもよい。この補正値を設けることにより、ＨＭＤの位置に基づいて好適な大きさで三次元モデルを表示することを可能とする。
【０１２５】
ステップＳ１４０５では、情報処理装置１０１−１のＣＰＵ３０１は、ステップＳ１４０２で求められた距離と、ステップＳ１４０４で取得した補正値と、ステップＳ１３０１で特定された三次元モデルＩＤ９０１に対応する三次元モデルの大きさ情報９０３とをもとに表示倍率を決定する。より具体的には、まず、ステップＳ１４０２で取得した距離に対してステップＳ１４０４で取得した補正値を掛けあわせることで補正後の距離を算出する。求められた補正後の距離を１としたときの大きさ情報９０３の値を、三次元モデルの表示倍率として決定する。三次元モデルの表示倍率を決定したのち、処理をステップＳ１４１０に進める。
【０１２６】
ステップＳ１４０６では、情報処理装置１０１−１のＣＰＵ３０１は、ステップＳ１４０１で算出可能と判断された内心の座標とステップＳ１３１０で求められた領域の内接円の半径を求める。
【０１２７】
ステップＳ１４０７では、情報処理装置１０１−１のＣＰＵ３０１は、ステップＳ１４０６で求められた内心の座標の高さ成分をユーザにあらかじめ指定された値に変更し、高さ成分が変更された座標を三次元モデルの表示位置として決定する。図１６に示すイメージ図に示すように、ＨＭＤ１０２−１乃至３の位置から等距離にある点１６０２を三次元モデルの表示位置としている。
【０１２８】
ステップＳ１４０８では、情報処理装置１０１−１のＣＰＵ３０１は、ステップＳ１４０６で求められた半径に対する補正値を取得する。なお、補正値は必須の構成ではなく、補正を行わない構成としてもよい。この補正値を設けることにより、ＨＭＤの位置に基づいて好適な大きさで三次元モデルを表示することを可能とする。
【０１２９】
ステップＳ１４０９では、情報処理装置１０１−１のＣＰＵ３０１は、ステップＳ１４０６で求められた内接円の半径と、ステップＳ１３０１で特定された三次元モデルＩＤ９０１に対応する三次元モデルの大きさ情報９０３と、ステップＳ１４０８で取得された補正値とをもとに表示倍率を決定する。
【０１３０】
より具体的には、まず、ステップＳ１４０６で取得された内心の半径に対してステップＳ１４０８で取得された補正値を掛けあわせることで補正後の半径を算出する。求められた補正後の半径を１としたときの大きさ情報９０３の値を、ステップＳ１３０１で特定された三次元モデルの表示倍率として決定する。三次元モデルの表示倍率を決定したのち、処理をステップＳ１４０９に進める。
【０１３１】
ステップＳ１４１０では、情報処理装置１０１−１のＣＰＵ３０１は、ステップＳ１３０１で特定された三次元モデルＩＤ９０１に対応する三次元モデル保存場所９０２に保存されている三次元モデルを表示するための三次元モデルのデータを取得する。
【０１３２】
ステップＳ１４１１では、情報処理装置１０１−１のＣＰＵ３０１は、ステップＳ１４０５またはステップＳ１４０９で決定された表示倍率で三次元モデルを表示する。
【０１３３】
ステップＳ１４０５で決定された表示倍率で三次元モデルが表示されるイメージ図が、図１６のイメージ図である。ＨＭＤ１０２−１乃至３の位置から等距離にある点１６０２（１６０３、１６０４、１６０５からそれぞれ等距離にある点であり、外接円１６０７の中心）を三次元モデルの表示位置としている。当該表示位置に三次元モデル１６０６がステップＳ１４０５で決定された倍率で複数のＨＭＤで表示されることにより、ＨＭＤ１０２−１乃至３を装着するユーザが視認しやすい大きさで三次元モデル１６０６を表示させることが可能となる。
【０１３４】
ステップＳ１４０６乃至ステップＳ１４０９で決定された表示倍率で三次元モデルが表示されるイメージ図が、図１５に示すイメージ図である。ＨＭＤ１０２−１乃至３の位置を頂点とする領域の内接円１５０６を求め、当該内接円１５０６の半径１５０３とステップＳ１４０４で取得された補正値と三次元モデル１５０５の大きさ情報９０３に基づいて決定された大きさで、三次元モデル１５０５が、複数のＨＭＤで表示される。（三次元モデル１５０５の原点が内接円１５０６の中心の座標となるように表示されている）これにより、ＨＭＤ１０２−１乃至３を装着するユーザが視認しやすい大きさで三次元モデル１５０５を表示させることが可能となる。
【０１３５】
なお、第３の実施形態では、ステップＳ１３１０で求めた領域で内心を用いて三次元モデルの表示倍率を決定できない場合にステップＳ１４０２〜ステップＳ１４０５の処理を行うようになっているが、必ずしもこのような判定を経てステップＳ１４０２〜ステップＳ１４０５を行う必要は無く、内心が求められるか否かの判定を行うことなくステップＳ１４０２〜ステップＳ１４０５の処理を行う、またはステップＳ１４０６~Ｓ１４０９の処理を行うように構成しても構わない。
【０１３６】
なお、第３の実施形態では、ステップＳ１３０９で求められた座標を頂点とする多角形の領域の内接円を用いて処理を説明したが、内接円ではなく内接球を用いて処理を行っても本発明の範囲に含まれるものである。
【０１３７】
また、内心も外心も求めることができない場合にはあらかじめ定められた所定の倍率で三次元モデルを表示するように制御してもよい。
【０１３８】
以上、本発明の第３の実施形態によっても、複数のヘッドマウントディスプレイの位置に基づいて、三次元モデルが表示される大きさを決定し、決定された大きさで三次元モデルを表示することができる。
【０１３９】
以上説明したように、第１〜第３の本実施形態によれば、複数のＨＭＤの位置情報を用いることで、複数のユーザがＨＭＤを装着し共通の三次元モデルを同時に閲覧する際に、いずれのユーザも視認しやすい三次元モデルに調整することの可能な仕組みを提供することの可能な効果を奏する。
【０１４０】
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、１つの機器からなる装置に適用してもよい。
【０１４１】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【０１４２】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１４３】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【０１４４】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【０１４５】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【０１４６】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１４７】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１４８】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１４９】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【０１５０】
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１５１】
１０１  情報処理装置
１０２  ＨＭＤ
２０１  オプティカルマーカ
２０２  赤外線カメラ
３０１  ＣＰＵ
３０２  ＲＯＭ
３０３  ＲＡＭ
３０４  システムバス
３０５  入力コントローラ
３０６  ビデオコントローラ
３０７  メモリコントローラ
３０８  通信Ｉ／Ｆコントローラ
３０９  汎用バス
３１０  入力デバイス
３１１  外部メモリ
３１２  ディスプレイ
３２１  右目・左目ビデオカメラ
３２２  右目・左目ディスプレイ
【図１】
2016122443.tif 000003
【図２】
2016122443.tif 000004
【図３】
2016122443.tif 000005
【図４】
2016122443.tif 000006
【図５】
2016122443.tif 000007
【図６】
2016122443.tif 000008
【図７】
2016122443.tif 000009
【図８】
2016122443.tif 000010
【図９】
2016122443.tif 000011
【図１０】
2016122443.tif 000012
【図１１】
2016122443.tif 000013
【図１２】
2016122443.tif 000014
【図１３】
2016122443.tif 000015
【図１４】
2016122443.tif 000016
【図１５】
2016122443.tif 000017
【図１６】
2016122443.tif 000018