(57)【要約】【課題】本発明の目的は、ヘッドマウントディスプレイを装着しているユーザに、三次元モデルを見やすい大きさで表示させることの可能な仕組みを提供することである。【解決手段】仮想空間上におけるヘッドマウントディスプレイの位置、姿勢及び視野角の情報を取得し、仮想空間上の三次元モデルを表示する位置を、取得された位置、姿勢により特定する。特定された三次元モデルの位置と、取得されたヘッドマウントディスプレイの位置及び視野角の情報とに基づいて、三次元モデルの表示する大きさを決定する。三次元モデルを、決定された大きさで、特定された位置にヘッドマウントディスプレイで表示させるよう制御することを特徴とする。【選択図】図８
2018036765.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間上におけるヘッドマウントディスプレイの位置、姿勢及び視野角の情報を取得する取得手段と、
前記仮想空間上の三次元モデルを表示する位置を、前記取得手段で取得された前記位置、姿勢により特定する位置特定手段と、
前記位置特定手段で特定された前記三次元モデルの位置と、前記取得手段で取得された前記ヘッドマウントディスプレイの位置及び視野角の情報とに基づいて、前記三次元モデルの表示する大きさを決定する決定手段と、
前記三次元モデルを、前記決定手段で決定された前記大きさで、前記位置特定手段で特定された位置に前記ヘッドマウントディスプレイで表示させるよう制御する表示制御手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記決定手段は、前記三次元モデルを前記位置に表示する際に前記視野角の範囲内に収まる大きさを、前記三次元モデルの表示する大きさとして決定すること
を特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記取得手段は、前記ヘッドマウントディスプレイの視線方向の情報も取得し、
前記位置特定手段は、前記取得手段で取得された前記ヘッドマウントディスプレイの位置から前記視線方向に向かって所定の距離となる位置を前記三次元モデルの表示する位置として特定すること
を特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記位置特定手段で特定された位置を通る法線ベクトルであって、前記視線方向に対する法線ベクトルを特定するベクトル特定手段と、
前記ベクトル特定手段で特定された前記法線ベクトルと前記視野角との交点までの距離を算出する算出手段と
を更に備え、
前記決定手段は、前記算出手段で算出された前記距離に基づいて前記三次元モデルの表示する大きさを決定することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記位置特定手段は、前記視線方向と前記仮想空間を規定する境界との交点から、ヘッドマウントディスプレイの前記位置までの間の位置を、前記三次元モデルを表示する位置を特定すること
を特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記位置特定手段は、前記視線方向と前記仮想空間を規定する境界との交点と前記ヘッドマウントディスプレイの前記位置までの間の位置であり、前記ヘッドマウントディスプレイの前記位置から所定の割合となる位置を、前記三次元モデルを表示する位置として特定すること
を特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記位置特定手段で特定された三次元モデルを表示する前記位置が、前記仮想空間内の位置か否かを判定する判定手段と、
前記判定手段で前記位置が前記仮想空間内の位置ではないと判定された場合には、前記位置が前記仮想空間内となるよう補正する補正手段と
を更に備えることを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
情報処理装置が、
仮想空間上におけるヘッドマウントディスプレイの位置、姿勢及び視野角の情報を取得する取得ステップと、
前記仮想空間上の三次元モデルを表示する位置を、前記取得ステップで取得された前記位置、姿勢により特定する位置特定ステップと、
前記位置特定ステップで特定された前記三次元モデルの位置と、前記取得ステップで取得された前記ヘッドマウントディスプレイの位置及び視野角の情報とに基づいて、前記三次元モデルの表示する大きさを決定する決定ステップと、
前記三次元モデルを、前記決定ステップで決定された前記大きさで、前記位置特定ステップで特定された位置に前記ヘッドマウントディスプレイで表示させるよう制御する表示制御ステップと
を備えることを特徴とする情報処理装置の制御方法。
【請求項９】
情報処理装置を、
仮想空間上におけるヘッドマウントディスプレイの位置、姿勢及び視野角の情報を取得する取得手段と、
前記仮想空間上の三次元モデルを表示する位置を、前記取得手段で取得された前記位置、姿勢により特定する位置特定手段と、
前記位置特定手段で特定された前記三次元モデルの位置と、前記取得手段で取得された前記ヘッドマウントディスプレイの位置及び視野角の情報とに基づいて、前記三次元モデルの表示する大きさを決定する決定手段と、
前記三次元モデルを、前記決定手段で決定された前記大きさで、前記位置特定手段で特定された位置に前記ヘッドマウントディスプレイで表示させるよう制御する表示制御手段
として機能させることを特徴とするプログラム。
【請求項１０】
仮想空間上におけるヘッドマウントディスプレイの位置、姿勢及び視野角の情報を取得する取得手段と、
前記仮想空間上の三次元モデルを表示する位置を、前記取得手段で取得された前記位置、姿勢により特定する位置特定手段と、
前記位置特定手段で特定された前記三次元モデルの位置と、前記取得手段で取得された前記ヘッドマウントディスプレイの位置及び視野角の情報とに基づいて、前記三次元モデルの表示する大きさを決定する決定手段と、
前記三次元モデルを、前記決定手段で決定された前記大きさで、前記位置特定手段で特定された位置に前記ヘッドマウントディスプレイで表示させるよう制御する表示制御手段と
を備えることを特徴とする情報処理システム。
【請求項１１】
情報処理システムが、
仮想空間上におけるヘッドマウントディスプレイの位置、姿勢及び視野角の情報を取得する取得ステップと、
前記仮想空間上の三次元モデルを表示する位置を、前記取得ステップで取得された前記位置、姿勢により特定する位置特定ステップと、
前記位置特定ステップで特定された前記三次元モデルの位置と、前記取得ステップで取得された前記ヘッドマウントディスプレイの位置及び視野角の情報とに基づいて、前記三次元モデルの表示する大きさを決定する決定ステップと、
前記三次元モデルを、前記決定ステップで決定された前記大きさで、前記位置特定ステップで特定された位置に前記ヘッドマウントディスプレイで表示させるよう制御する表示制御ステップと
を備えることを特徴とする情報処理システムの制御方法。
【請求項１２】
情報処理システムを、
仮想空間上におけるヘッドマウントディスプレイの位置、姿勢及び視野角の情報を取得する取得手段と、
前記仮想空間上の三次元モデルを表示する位置を、前記取得手段で取得された前記位置、姿勢により特定する位置特定手段と、
前記位置特定手段で特定された前記三次元モデルの位置と、前記取得手段で取得された前記ヘッドマウントディスプレイの位置及び視野角の情報とに基づいて、前記三次元モデルの表示する大きさを決定する決定手段と、
前記三次元モデルを、前記決定手段で決定された前記大きさで、前記位置特定手段で特定された位置に前記ヘッドマウントディスプレイで表示させるよう制御する表示制御手段
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
ヘッドマウントディスプレイを装着しているユーザに、三次元モデルを見やすい大きさで簡便に表示させることの可能な情報処理装置、その制御方法、及びプログラム、並びに、情報処理システム、その制御方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、複合現実（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ）の技術が普及している。複合現実の技術を用いて、ヘッドマウントディスプレイ（ＨＭＤ）を装着したユーザに対し、現実画像にＣＧモデルを配置した複合現実画像を提供し、現実画像と仮想空間を複合した複合現実の世界を体感させることができる。
【０００３】
複合現実画像を生成するにあたり、下記の特許文献１では、ユーザからのオブジェクト画像のサイズの変更指示を受け付けることにより、オブジェクト画像の表示サイズを変更することの可能な仕組みが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−１３９１９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述した特許文献１では、ＨＭＤで表示されるオブジェクトのサイズを変更することの可能な仕組みについて開示されている。しかし、ユーザが適切なサイズと感じるサイズにオブジェクトのサイズを変更するためには、ユーザは適切なサイズとなるまでオブジェクトのサイズの変更指示を行わなければならないというように手間がかかるものとなっていた。
【０００６】
そこで本発明の目的は、ヘッドマウントディスプレイを装着しているユーザに、三次元モデルを見やすい大きさで簡便に表示させることの可能な仕組みを提供することである。
【課題を解決するための手段】
【０００７】
本発明の情報処理装置は、仮想空間上におけるヘッドマウントディスプレイの位置、姿勢及び視野角の情報を取得する取得手段と、前記仮想空間上の三次元モデルを表示する位置を、前記取得手段で取得された前記位置、姿勢により特定する位置特定手段と、前記位置特定手段で特定された前記三次元モデルの位置と、前記取得手段で取得された前記ヘッドマウントディスプレイの位置及び視野角の情報とに基づいて、前記三次元モデルの表示する大きさを決定する決定手段と、前記三次元モデルを、前記決定手段で決定された前記大きさで、前記位置特定手段で特定された位置に前記ヘッドマウントディスプレイで表示させるよう制御する表示制御手段とを備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、ヘッドマウントディスプレイを装着しているユーザに、三次元モデルを見やすい大きさで簡便に表示させることが可能となる。
【図面の簡単な説明】
【０００９】
【図１】本実施形態における情報処理システムの構成の一例を示す構成図である。
【図２】本実施形態における各種装置のハードウェア構成の一例を示す構成図である。
【図３】複合現実空間を模式的に示すイメージである。
【図４】本実施形態における各種装置の機能構成の一例を説明する構成図である。
【図５】本実施形態における各種装置のモジュール構成の一例を説明する構成図である。
【図６】本実施形態における詳細な処理の流れを説明するフローチャートである。
【図７】図６のフローチャートの複合現実画像生成処理の詳細な処理の流れを説明するフローチャートである。
【図８】本実施形態における三次元モデルを表示する大きさを決定するイメージである。
【図９】本実施形態における各種データテーブルの一例を示すデータテーブルである。
【発明を実施するための形態】
【００１０】
図１を参照して、本発明の実施形態における情報処理システムの構成の一例について説明する。
【００１１】
図１に示すように、本発明における情報処理システムの各種装置はネットワーク１５０を介して通信可能に接続されている。例えばＰＣ１００は、ＨＭＤ１０１（ＨＭＤ１０１Ａ〜ＨＭＤ１０１Ｃの総称）と通信可能に接続されている。
【００１２】
ＰＣ１００には、ＨＭＤ１０１により撮像される現実画像に重畳する三次元モデル（ＣＧモデル／仮想オブジェクト）が記憶されている。
【００１３】
また、ＰＣ１００は、自機の管理するＨＭＤ１０１（図１におけるＨＭＤ１０１Ａ〜１０１Ｃ）より現実画像を取得して、記憶部に記憶する。また、ＰＣ１００はＨＭＤ１０１の位置姿勢を特定し、記憶する。ＨＭＤ１０１の位置姿勢の特定方法は、特開２００３−３０８５１４号公報に記載されている、ＨＭＤ１０１の撮像した現実画像中の二次元マーカを用いて特定可能である。また、特開２００３−２４０５３２号公報に記載されているように、センサ（図１における光学センサ１０４）がＨＭＤ１０１に設置された光学式マーカの位置姿勢をＨＭＤ１０１の位置姿勢として検出し、それをＰＣ１００が取得することで特定することも可能である。本実施形態においては、光学センサ１０４で光学式マーカを読み取ることにより、ＨＭＤ１０１の位置姿勢を特定するものとするがこれ以外の方法を用いてもよい。
【００１４】
ＰＣ１００では、ＨＭＤ１０１の位置姿勢と、記憶部に記憶されている三次元モデル及び三次元モデルの位置姿勢の情報を用いて、現実画像に三次元モデルを重畳した複合現実画像を生成する。そして、当該複合現実画像をＨＭＤ１０１のディスプレイに表示させるべく、ＨＭＤ１０１に送信する。ＨＭＤ１０１は受信した複合現実画像をディスプレイに表示する。以上が図１の説明である。
【００１５】
複合現実空間を模式的に示したのが図３に示す模式図である。図３はＨＭＤ１０１の視野の範囲内に三次元モデルが表示されていることを示している。ＨＭＤ１０１を装着したユーザはあたかも三次元モデルが現実空間上に存在するかのように知覚することができる。
【００１６】
従来、三次元モデルは実寸大で表示をすることにより、仮想的な三次元モデルが現実空間上にあたかも存在しているかのような体験をユーザに対して提供することができた。しかしながら、実寸大で表示することが適さない三次元モデルも存在し、その場合にはユーザが見やすい大きさに三次元モデルの大きさを変更しなければならない。そのため、ＨＭＤ１０１の視野角の範囲内に三次元モデルが収まるように三次元モデルの表示倍率を変更することで、三次元モデルを見やすいサイズでＨＭＤ１０１を介してユーザに知覚させることが可能となる。なお、サイズの変更方法は一例であって、倍率の変更以外の方法で表示される三次元モデルの大きさを変更しても構わない。
【００１７】
次に図２を参照して、本発明の実施形態における、各種装置のハードウェア構成の一例について説明する。
【００１８】
ＣＰＵ２０１は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。
【００１９】
また、ＲＯＭ２０２には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  ＯｕｔｐｕｔＳｙｓｔｅｍ）やオペレーティングシステム（ＯＳ）、その他各種装置の実行する機能を実現するために必要な各種プログラムが記憶されている。
【００２０】
ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＡＭ２０３にロードして、プログラムを実行することで各種動作を実現するものである。
【００２１】
本発明のＰＣ１００が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０３にロードされることによりＣＰＵ２０１によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ２１１に格納されている。
【００２２】
入力コントローラ（入力Ｃ）２０５は、キーボードやマウス等のポインティングデバイス（入力デバイス２０９）からの入力を制御する。
【００２３】
また、入力デバイス２０９がタッチパネルの場合、ユーザがタッチパネルに表示されたアイコンやカーソルやボタンに合わせて押下（指等でタッチ）することにより、各種の指示を行うことができることとする。なお、タッチパネルは、マルチタッチスクリーンなどの、複数の指でタッチされた位置を検出することが可能なタッチパネルであってもよいこととする。
【００２４】
ビデオコントローラ（ＶＣ）２０６は、ＨＭＤ１０１が備える右目・左目ディスプレイ２２２等の表示器への表示を制御する。右目・左目ディスプレイ２２２に対しては、例えば外部出力端子（例えば、Ｄｉｇｉｔａｌ  Ｖｉｓｕａｌ  Ｉｎｔｅｒｆａｃｅ）を用いて出力される。また、右目・左目ディスプレイ２２２は、右目用のディスプレイと左目用のディスプレイとから構成されている。また、入力コントローラ（入力Ｃ）２０５は、ＰＣ１００の備えるディスプレイ２１２（液晶ディスプレイ等）の表示器への表示を制御する。なお、図２では、表示器は液晶ディスプレイだけでなく、ＣＲＴディスプレイ等の他の表示器であってもよい。
【００２５】
メモリコントローラ（ＭＣ）２０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク（ＨＤ）やフレキシブルディスク（ＦＤ）或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ２１１へのアクセスを制御する。
【００２６】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）２０８は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。また、通信Ｉ／Ｆコントローラ２０８は、ギガビットイーサネット（登録商標）等を通じて光学センサ１０４との通信も制御する。
【００２７】
汎用バス２１２は、ＨＭＤ１０１の右目・左目ビデオカメラ２２１からの映像を取り込むために使用される。右目・左目ビデオカメラ２２１からは、外部入力端子（例えば、ＩＥＥＥ１３９４端子）を用いて入力される。右目・左目ビデオカメラ２２１は、右目用のビデオカメラと左目用のビデオカメラとから構成されている。
【００２８】
尚、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ上での表示を可能としている。また、ＣＰＵ２０１は、ディスプレイ上の不図示のマウスカーソル等でのユーザ指示を可能とする。以上が図２の説明である。
【００２９】
次に図４を参照して、本発明の実施形態における各種装置の機能構成の一例について説明する。
【００３０】
ＰＣ１００は、オペレーティングシステム４０１（ＯＳ）、グラフィックエンジン４０２、複合現実感プラットフォーム４０３（ＭＲプラットフォームともいう）、複合現実感アプリケーション４０４（ＭＲアプリケーションやビューアアプリケーションともいう）で構成され、ＣＰＵ２０１により制御されている。
【００３１】
オペレーティングシステム４０１は、ＨＭＤ１０１の入出力を制御しカメラ２２１から入力インターフェースを介して得られた現実画像を複合現実感プラットフォーム４０３へ受け渡す。またグラフィックエンジン４０２で描画された複合現実画像を、出力インターフェースを介して、ディスプレイ２２２へ出力する。
【００３２】
グラフィックエンジン４０２は、外部メモリ２１１に記憶されている三次元モデルから描画する画像を生成し、現実画像に重畳し、合成する。描画に利用するエンジンは、例えば、ＯｐｅｎＧＬやＤｉｒｅｃｔＸなどの広く利用されているグラフィックエンジンでも、独自に開発したグラフィックエンジンでもよい。なお、本実施形態ではグラフィックライブラリとしてＯｐｅｎＧＬを利用するものとする。
【００３３】
複合現実感プラットフォーム４０３は、光学センサ１０４で光学式マーカを読み取ることでＨＭＤ１０１の位置姿勢を特定し、現実空間と仮想空間の位置合わせを行う。なお、位置姿勢や位置合わせの技術は、既知の技術として開示されている、特開２００２−３２７８４、特開２００６−０７２９０３、特開２００７−１６６４２７等を用いて実現することが可能である。
【００３４】
複合現実感アプリケーション４０４は、複合現実感プラットフォーム４０３からＨＭＤ１０１の位置姿勢、三次元モデルの形状の情報、位置姿勢の情報を受け付け、グラフィックエンジン４０２に対して、三次元モデルの描画命令を発行する。この時、ＯｐｅｎＧＬのＡｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ（ＡＰＩ）を用いて、描画する三次元モデルの識別情報、位置姿勢の情報を設定した命令を発行する。以上が図４の説明である。
【００３５】
次に図５を参照して本実施形態におけるＨＭＤ１０１とＰＣ１００のモジュール構成の一例を説明する。
【００３６】
ＨＭＤ１０１は、撮像部３０１、撮像画像送信部３０２、ＭＲ画像受信部３０３、ＭＲ画像表示部３０４を備える。
【００３７】
撮像部３０１は、右目・左目ビデオカメラ２２１で現実空間を撮像する機能部である。
【００３８】
撮像画像送信部３０２は、右目・左目ビデオカメラ２２１で撮像された画像をＰＣ１００に送信する機能部である。
【００３９】
ＭＲ画像受信部３０３は、ＰＣ１００から送信されたＭＲ画像（仮想現実画像）を受信する機能部である。
【００４０】
ＭＲ画像表示部３０４は、ＭＲ画像受信部３０３で受信したＭＲ画像を右目・左目ディスプレイ２２２で表示させる機能部である。
【００４１】
ＰＣ１００は、撮像画像受信部３２１、取得部３２２、位置特定部３２３、決定部３２４、表示制御部３２５を備える。
【００４２】
撮像画像受信部３２１は、ＨＭＤ１０１から送信された画像を受信する機能部である。
【００４３】
取得部３２２は、ＨＭＤ１０１の位置及び視野角の情報を取得する機能部である。
【００４４】
位置特定部３２３は、仮想空間上の三次元モデルを表示する位置をＨＭＤ１０１の位置及び姿勢により特定する機能部である。
【００４５】
決定部３２４は、決定された三次元モデルの表示位置とＨＭＤ１０１の位置及び視野角の情報に基づいて、三次元モデルを表示する大きさを決定する機能部である。
【００４６】
表示制御部３２５は、三次元モデルを決定部３２４で決定された大きさでＨＭＤ１０１に表示させる機能部である。
【００４７】
なお、ＰＣ１００のモジュールをＨＭＤ１０１に持たせるようにしても構わない。
【００４８】
以上で、図５に示す本実施形態におけるＰＣ１００の機能構成の説明を終了する。
【００４９】
次に図６を参照して、本実施形態における複合現実画像の生成及び表示処理について説明する。
【００５０】
ＨＭＤ１０１は、ステップＳ６０１で起動後、カメラ２２１の機能を用いて現実画像の撮像を開始する（ステップＳ６０２）。そして、撮像処理によって取得した現実画像をＰＣ１００に送信する（ステップＳ６０３）。
【００５１】
ＰＣ１００のＣＰＵ２０１はＨＭＤ１０１より現実画像を受信し（ステップＳ６０４）、受信した現実画像を外部メモリ２１１に記憶する（ステップＳ６０５）。例えば、図９の現実画像テーブル９３０に示すように、現実画像の送信元のＨＭＤ１０１の識別情報であるＨＭＤ  ＩＤ９３１と、現実画像９３２とを対応付けて記憶する。
【００５２】
ＰＣ１００のＣＰＵ２０１は、ＨＭＤ１０１の位置、姿勢を取得して（ステップＳ６０６、取得手段に相当する）、外部メモリ２１１に記憶する（ステップＳ６０７）。例えば、図９のＨＭＤ情報９１０に示すように、ＨＭＤ１０１の識別情報であるＨＭＤ  ＩＤ９１１と、当該ＨＭＤの位置９１２（Ｘ，Ｙ，Ｚ座標）、姿勢９１３（Ｘ，Ｙ，Ｚ座標の値により表現されるＨＭＤ１０１の向いている方向）を記憶する。
【００５３】
ＰＣ１００のＣＰＵ２０１は、外部メモリ２１１から三次元モデルの情報を取得し、ＨＭＤ１０１から受信した現実画像に重畳した複合現実画像を生成する処理を行う（ステップＳ６０８）。その後、生成された複合現実画像をＨＭＤ１０１に送信する（ステップＳ６０９、表示制御手段に相当する）。
【００５４】
ステップＳ６０８の複合現実画像生成処理の詳細な処理の流れを図７のフローチャートを用いて説明する。
【００５５】
図７は複合現実画像生成処理の詳細な処理の流れを説明するフローチャートである。図８が複合画像生成処理の説明と対応づいたイメージ図なので、参照されたい。
【００５６】
ステップＳ７０１では、ＰＣ１００のＣＰＵ２０１は、外部メモリ２１１に記憶されたＨＭＤ情報９１０に示すＨＭＤの位置９１２、姿勢９１３を参照する。
【００５７】
ステップＳ７０２では、ＰＣ１００のＣＰＵ２０１は、ＨＭＤ１０１で表示させる対象となる三次元モデルを特定する。本実施形態では、予めユーザから表示させる三次元モデルの指定を受け付けているものとする。表示させる三次元モデルの指定の受け付け方法については特に限定されず、例えばディスプレイ２１２に表示される三次元モデルのリストから対象の三次元モデルの選択を受け付けるようにしてもよい。
【００５８】
ステップＳ７０３では、ＰＣ１００のＣＰＵ２０１は、外部メモリ２１１に記憶される「設定された距離１０００」を取得する。本実施形態では例えば３メートルとする。設定された距離１０００は自由に設定することができる。設定された距離１０００の設定の方法は何でもよい。
【００５９】
ステップＳ７０４では、ＰＣ１００のＣＰＵ２０１は、ステップＳ７０１で取得した位置９１２と姿勢９１３との座標から求められる、ＨＭＤの視線を示すベクトルを算出する。算出された視線ベクトル１００１は対応するＨＭＤ１０１の視線ベクトル９１４（視線方向）に格納する。
【００６０】
なお、本実施形態では３次元ベクトルを用いて、当該ベクトルの範囲に入るよう三次元モデルの大きさを決定しているが、高さの情報を無視した２次元ベクトルを用いて、当該ベクトルの範囲に入るよう三次元モデルの大きさを決定してもよい。
【００６１】
ステップＳ７０５では、ＰＣ１００のＣＰＵ２０１は、ステップＳ７０２で特定された三次元モデルを表示する中心の位置である表示位置１００２を特定する（位置特定手段に相当する）。本実施形態では、ステップＳ７０１で取得したＨＭＤ１０１の位置９１２から、視線ベクトル９１４に向かってステップＳ７０３で取得した「設定された距離」の値だけ離れた位置を、三次元モデルの表示位置１００２として決定する。なお、三次元モデルの表示位置１００２の特定方法はこれに限らず、右目・左目ビデオカメラ２２１で二次元マーカを撮影することにより、二次元マーカの位置を特定し、特定された位置を三次元モデルの表示位置としても構わない。
【００６２】
ステップＳ７０６では、ＰＣ１００のＣＰＵ２０１は、ステップＳ７０５で特定された表示位置１００２が仮想空間の範囲内か否かを判定する。仮想空間の範囲内であると判定された場合には処理をステップＳ７０８に進め、そうでない場合には処理をステップＳ７０７に進める。仮想空間の範囲内か否かの判断は、例えばステップＳ７０５で特定された表示位置１００２が所定の値の範囲内か否かなどによって判断することができる。
【００６３】
ステップＳ７０７では、ＰＣ１００のＣＰＵ２０１は、ステップＳ７０５で特定された表示位置１００２が仮想空間の範囲内となるように補正を行う。例えば仮想空間の地面を規定している面より下が表示位置１００２となっている場合には、地面を規定している面より上となるように、表示位置１００２を補正する。このように三次元モデルを表示する位置を仮想空間の範囲内となるように補正することにより、ユーザにとって違和感のない複合現実空間を体感させることができるようになるという効果がある。なお、ステップＳ７０６、７０７における表示位置１００２の補正は必須の構成ではなく必要に応じて省略をしても構わないものとする。
【００６４】
ステップＳ７０８では、ＰＣ１００のＣＰＵ２０１は、外部メモリ２１１に記憶されたＨＭＤ１０１の視野角情報を取得する。視野角情報とは、ＨＭＤ１０１の視野の情報を示す情報であり、右目・左目ビデオカメラ２２１の画角の情報である。
【００６５】
ステップＳ７０９では、ＰＣ１００のＣＰＵ２０１は、ステップＳ７０５で特定された三次元モデルの表示位置１００２を通る法線ベクトルであって視線ベクトル１００１に対する法線ベクトル１００４を特定する（ベクトル特定手段に相当する）。図８に示す法線ベクトル１００４である。
【００６６】
ステップＳ７１０では、ＰＣ１００のＣＰＵ２０１は、ステップＳ７０９で特定された法線ベクトル１００４と視野角情報が示す視野の範囲との交点１００５を特定する。
【００６７】
ステップＳ７１１では、ＰＣ１００のＣＰＵ２０１は、ステップＳ７０５で特定された（またはステップＳ７０７で補正された）三次元モデルの表示位置１００２からステップＳ７１０で特定された交点１００５までの距離Ｄを算出する（算出手段に相当する）。算出された距離Ｄはメモリ上に一時記憶しておく。
【００６８】
距離Ｄを補正するための情報である補正情報を外部メモリ２１１から取得し、この補正情報により、例えば距離Ｄを多少小さい値と補正するようにしてもよい。これにより、ＨＭＤ１０１の視野角いっぱいに三次元モデルが表示されてしまうことを避ける効果がある。逆に多少大きい値とするよう補正しても構わないものとする。
【００６９】
ステップＳ７１２では、ＰＣ１００のＣＰＵ２０１は、距離Ｄにより、求められた値と、ステップＳ７０２で特定された三次元モデルの端から端までの長さ（最大長）にもとづいて、三次元モデルの表示倍率を決定する（決定手段に相当する）。例えば、距離Ｄが４メートルで、ステップＳ７０２で特定された三次元モデルの端から端までの長さ（最大長）が８メートルであった場合には、この三次元モデルの端から端までの長さが４メートルとなるように倍率を決定する。この例であれば５０％として三次元モデルの表示倍率を決定する。決定された表示倍率は、表示倍率９２６に格納する。
【００７０】
三次元モデルの情報は、例えば図９のモデル情報９２０に示す情報である。モデル情報９２０は、予めＰＣ１００の外部メモリ２１１に記憶されている情報である。モデルＩＤ９２１は三次元モデルの識別情報である。モデル名９２２は、三次元モデルのファイル名である。ファイルパス９２３は、ファイルが記憶されている場所を示す。位置９２４、姿勢９２５は三次元モデルの位置姿勢を示す。ＰＣ１００のＣＰＵ２０１は、ＨＭＤの位置９１２・姿勢９１３から、ＨＭＤ１０１と同じ画角を持つカメラが、位置９２４・姿勢９２５の三次元モデルを撮像した場合の、当該三次元モデルの画像を描画データ９４０として生成する。
【００７１】
ステップＳ７１３では、ＰＣ１００のＣＰＵ２０１は、描画データ９４０を現実画像９３２と合成することで、図９のＭＲ画像テーブル９５０に示す複合現実画像９５２（ＭＲ画像）を生成する。
【００７２】
ステップＳ７１４では、ＰＣ１００のＣＰＵ２０１は、ステップＳ７１４で生成された複合現実画像９５２を外部メモリ２１１に記憶する。
【００７３】
以上で図７に示す複合現実画像生成処理の詳細な処理の流れの説明を終了し、図６の説明に戻る。
【００７４】
ＨＭＤ１０１は、ＰＣ１００から送信された複合現実画像を受信し（ステップＳ６１０）、表示画面に表示する（ステップＳ６１１）。ユーザから複合現実画像の表示を終了する指示を受け付けたか否かを判断し、ユーザから複合現実画像の表示を終了する指示を受け付けたと判断した場合には処理を終了させ、そうでない場合には処理をステップＳ６０２に戻す。
【００７５】
以上、本発明によれば、ヘッドマウントディスプレイを装着しているユーザに、三次元モデルを見やすい大きさで表示させることが可能となる。
【００７６】
本実施形態では、三次元モデルの表示の大きさを指定する方法として表示倍率により指定を行ったが、これ以外の方法でもよく、三次元モデル自体の大きさを指定するようにしてもよい。
【００７７】
また本実施形態では、三次元モデルを表示する中心を、視線ベクトル９１４上のＨＭＤ１０１から「設定された距離１０００」だけ離れた位置となるように制御していたが、これ以外の方法でもよい。例えば、視線ベクトル９１４と仮想空間を規定する空間の壁（境界）との交点を算出して、その交点とＨＭＤ１０１の位置９１２との間の距離に対する割合（例えば５０％）となる位置を三次元モデルの位置としてもよい。このようにすることで、規程された仮想空間の外側に三次元モデルの表示される中心が設定されることを防止することができ、三次元モデルが例えば地面などに埋もれてしまうことを防止する効果がある。
【００７８】
また、本実施形態では、常に三次元モデルの表示される位置と表示される倍率を計算して表示するように構成しているが、本発明は当然所定のタイミングにおけるＨＭＤ１０１の位置９１２、姿勢９１３に基づいて三次元モデルの表示される中心と表示される倍率を決定して、ＨＭＤ１０１で表示させるようにしてもよい。
【００７９】
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、１つの機器からなる装置に適用してもよい。なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置の情報処理装置が前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【００８０】
したがって、本発明の機能処理を情報処理装置で実現するために、前記情報処理装置にインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００８１】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００８２】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【００８３】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【００８４】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理を情報処理装置で実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００８５】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行して情報処理装置にインストールさせて実現することも可能である。
【００８６】
また、情報処理装置が、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、情報処理装置上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００８７】
さらに、記録媒体から読み出されたプログラムが、情報処理装置に挿入された機能拡張ボードや情報処理装置に接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【００８８】
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００８９】
１００  ＰＣ
２０１  ＣＰＵ
２０２  ＲＡＭ
２０３  ＲＯＭ
２０４  システムバス
２０５  入力コントローラ
２０６  ビデオコントローラ
２０７  メモリコントローラ
２０８  通信Ｉ／Ｆコントローラ
２０９  キーボード
２１０  ＣＲＴディスプレイ
２１１  外部メモリ
【図１】
2018036765.tif 000003
【図２】
2018036765.tif 000004
【図３】
2018036765.tif 000005
【図４】
2018036765.tif 000006
【図５】
2018036765.tif 000007
【図６】
2018036765.tif 000008
【図７】
2018036765.tif 000009
【図８】
2018036765.tif 000010
【図９】
2018036765.tif 000011