(57)【要約】【課題】  仮想物体の属性に応じて、当該仮想物体との接触にかかる条件を決定することが可能な仕組みを提供することである【解決手段】  仮想物体を現実に重畳して表示し、仮想物体の接触状態を表示する表示手段を備える情報処理装置であって、前記仮想物体の硬さの属性を取得する取得手段と、前記取得手段により取得された硬さの属性に基づいて、当該属性の仮想物体との接触にかかる条件を決定する決定手段と、を備えることを特徴とする【選択図】  図７
2019028772.tif 000002
【特許請求の範囲】
【請求項１】
仮想物体を現実に重畳して表示し、仮想物体の接触状態を表示する表示手段を備える情報処理装置であって、
前記仮想物体の硬さの属性を取得する取得手段と、
前記取得手段により取得された硬さの属性に基づいて、当該属性の仮想物体との接触にかかる条件を決定する決定手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
仮想物体を現実に重畳して表示し、仮想物体の接触状態を表示する表示手段を備える情報処理装置であって、
前記仮想物体の危険度の属性を取得する取得手段と、
前記取得手段により取得された危険度の属性に基づいて、当該属性の仮想物体との接触にかかる条件を決定する決定手段と、
を備えることを特徴とする情報処理装置。
【請求項３】
前記決定手段は、前記取得手段により取得された属性に基づいて、当該属性を持つ仮想物体の接触の判定に用いる接触判定用の仮想物体を生成することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記決定手段により決定された条件に基づいて判定される接触状態に応じて、前記仮想物体の表示を変更して報知する報知手段と、
をを備えることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記条件は、前記取得手段により取得された属性を持つ仮想物体にかかる接触に用いる仮想物体と、他の仮想物体又はユーザの身体の一部であることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
仮想物体を現実に重畳して表示し、仮想物体の接触状態を表示する表示手段を備える情報処理装置の制御方法であって、
前記仮想物体の硬さの属性を取得する取得工程と、
前記取得工程により取得された硬さの属性に基づいて、当該属性の仮想物体との接触にかかる条件を決定する決定工程と、
を含む制御方法。
【請求項７】
仮想物体を現実に重畳して表示し、仮想物体の接触状態を表示する表示手段を備える情報処理装置を制御するプログラムであって、
前記情報処理装置を、
前記仮想物体の硬さの属性を取得する取得手段と、
前記取得手段により取得された硬さの属性に基づいて、当該属性の仮想物体との接触にかかる条件を決定する決定手段として機能させるためのプログラム。
【請求項８】
仮想物体を現実に重畳して表示し仮想物体の接触状態を表示する表示装置と、情報処理装置と、を含む情報処理システムであって、
前記仮想物体の硬さの属性を取得する取得手段と、
前記取得手段により取得された硬さの属性に基づいて、当該属性の仮想物体との接触にかかる条件を決定する決定手段と、
を備えることを特徴とする情報処理システム。
【請求項９】
仮想物体を現実に重畳して表示し仮想物体の接触状態を表示する表示装置と、情報処理装置と、を含む情報処理システムの制御方法であって、
前記仮想物体の硬さの属性を取得する取得工程と、
前記取得工程により取得された硬さの属性に基づいて、当該属性の仮想物体との接触にかかる条件を決定する決定工程と、
含む制御方法。
【請求項１０】
仮想物体を現実に重畳して表示し仮想物体の接触状態を表示する表示装置と、情報処理装置と、を含む情報処理システムを、
前記仮想物体の硬さの属性を取得する取得手段と、
前記取得手段により取得された硬さの属性に基づいて、当該属性の仮想物体との接触にかかる条件を決定する決定手段として機能させるためのプログラム。
【請求項１１】
仮想物体を現実に重畳して表示し、仮想物体の接触状態を表示する表示手段を備える情報処理装置の制御方法であって、
前記仮想物体の危険度の属性を取得する取得工程と、
前記取得工程により取得された危険度の属性に基づいて、当該属性の仮想物体との接触にかかる条件を決定する決定工程と、
を含む制御方法。
【請求項１２】
仮想物体を現実に重畳して表示し、仮想物体の接触状態を表示する表示手段を備える情報処理装置を制御するプログラムであって、
前記情報処理装置を、
前記仮想物体の危険度の属性を取得する取得手段と、
前記取得手段により取得された危険度の属性に基づいて、当該属性の仮想物体との接触にかかる条件を決定する決定手段として機能させるためのプログラム。
【請求項１３】
仮想物体を現実に重畳して表示し仮想物体の接触状態を表示する表示装置と、情報処理装置と、を含む情報処理システムであって、
前記仮想物体の危険度の属性を取得する取得手段と、
前記取得手段により取得された危険度の属性に基づいて、当該属性の仮想物体との接触にかかる条件を決定する決定手段と、
を備えることを特徴とする情報処理システム。
【請求項１４】
仮想物体を現実に重畳して表示し仮想物体の接触状態を表示する表示装置と、情報処理装置と、を含む情報処理システムの制御方法であって、
前記仮想物体の危険度の属性を取得する取得工程と、
前記取得工程により取得された危険度の属性に基づいて、当該属性の仮想物体との接触にかかる条件を決定する決定工程と、
を含む制御方法。
【請求項１５】
仮想物体を現実に重畳して表示し仮想物体の接触状態を表示する表示装置と、情報処理装置と、を含む情報処理システムを、
前記仮想物体の危険度の属性を取得する取得手段と、
前記取得手段により取得された危険度の属性に基づいて、当該属性の仮想物体との接触にかかる条件を決定する決定手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、その制御方法及びプログラムに関する。
【背景技術】
【０００２】
近年、複合現実（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ／以下、ＭＲと記載）の技術が普及している。複合現実の技術を用いて、ヘッドマウントディスプレイ（ＨＭＤ）を装着したユーザに対し、現実画像にＣＧモデル（仮想物体）を配置した複合現実画像を提供し、現実と仮想を複合した複合現実の世界を体験させることができる。複合現実画像を生成するにあたり、ＨＭＤの位置と仮想物体の位置とを、センサや二次元マーカを用いて特定する手法が取られている。
【０００３】
特許文献１には、ＨＭＤで撮像された画像の中に写る二次元マーカを用いてＨＭＤの位置姿勢を特定し、複合現実画像を提供する技術が記載されている。また、特許文献２には、磁気センサを用いてＨＭＤの位置姿勢を特定し、複合現実画像を提供する技術が記載されている。
【０００４】
また、特許文献３には、工具の仮想物体と他の仮想物体の接触状態をユーザに通知できるように、他の仮想物体と接触している工具の仮想物体の色を変更することが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−３０８５１４号公報
【特許文献２】特開２００３−２４０５３２号公報
【特許文献３】特開２０１７−４９９５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
設計物の仮想物体を複合現実画像として表示し、設計物に関する検証を行う業務がある。例えば、設計物におけるある部品とある部品の間に、工具や手が入るかを確認することで、当該工具や手によるメンテナンス作業が可能な設計となっているか検証する。
【０００７】
部品と手、部品と工具の接触状態を色で識別表示すれば、部品の間に手や工具が入るか確認可能である。
【０００８】
設計物の部品の中には、例えばコード等、かき分けれて変形させれば工具や手を入れるスペースを確保できる部品がある。
【０００９】
また、一見して部品同士の間に工具や手を入れるスペースが無いように見えても、当該部品が緩衝材等の柔らかい部品の場合、手を突っ込めば緩衝材が変形するため、部品の向こう側にある作業空間まで手を通すことが可能であり、部品と手、工具が接触していることを必ずしもユーザに報知する必要はない。ユーザが知りたいのは、あくまで手や工具が入るかどうか、だからである。
【００１０】
一方で、例えば放電している部品や発熱している部品のように危険度が高い部品の場合、危険度の低い部品に比べて、手や工具との距離を長めにとって設計をする必要がある。
【００１１】
本発明は、仮想物体の属性に応じて、当該仮想物体との接触にかかる条件を決定することが可能な仕組みを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、仮想物体を現実に重畳して表示し、仮想物体の接触状態を表示する表示手段を備える情報処理装置であって、前記仮想物体の硬さの属性を取得する取得手段と、前記取得手段により取得された硬さの属性に基づいて、当該属性の仮想物体との接触にかかる条件を決定する決定手段と、を備えることを特徴とする。
【００１３】
また、仮想物体を現実に重畳して表示し、仮想物体の接触状態を表示する表示手段を備える情報処理装置であって、前記仮想物体の危険度の属性を取得する取得手段と、前記取得手段により取得された危険度の属性に基づいて、当該属性の仮想物体との接触にかかる条件を決定する決定手段と、を備えることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、本発明は、仮想物体の属性に応じて、当該仮想物体との接触にかかる条件を決定することが可能な仕組みを提供することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明第１の実施形態における、情報処理システム構成図の一例を示す図である。
【図２】本発明第１の実施形態における、各種装置のハードウェア構成の一例を示す図である。
【図３】本発明第１の実施形態における、各種装置の機能構成の一例を示す図である。
【図４】本発明第１の実施形態における、各種装置のモジュール構成の一例を示す処理図である。
【図５】本発明第１の実施形態における、複合現実画像の生成及び表示処理の一例を示す処理図である。
【図６】本発明第１の実施形態における、各種データ構成の一例を示す図である。
【図７】本発明第１の実施形態における、仮想物体の硬さに応じた接触判定用物体の生成処理の流れを示すフローチャートである。
【図８】本発明第１の実施形態における、接触判定及び識別表示処理の流れを示すフローチャートである。
【図９】本発明第１の実施形態における、接触判定用物体の一例を示す図である。
【図１０】本発明第１の実施形態における、接触判定及び識別表示の一例を示す図である。
【図１１】本発明第２の実施形態における、仮想物体の危険度に応じた接触判定用物体の生成処理の流れを示すフローチャートである。
【図１２】本発明第２の実施形態における、接触判定用物体の一例を示す図である。
【図１３】本発明第２の実施形態における、接触判定及び識別表示の一例を示す図である。
【発明を実施するための形態】
【００１６】
＜第１の実施形態＞
図１を参照して、本発明の実施形態における情報処理システムの構成の一例について説明する。
【００１７】
図１に示すように、本発明における情報処理システムの各種装置はネットワーク１５０を介して通信可能に接続されている。例えばＰＣ１００は、ＨＭＤ１０１（ＨＭＤ１０１Ａ〜ＨＭＤ１０１Ｃの総称）と通信可能に接続されている。
【００１８】
ＰＣ１００には、ＨＭＤ１０１により撮像される現実画像に重畳する３次元モデル（ＣＧモデル／仮想オブジェクト）が記憶されている。
【００１９】
また、ＰＣ１００は、自機の管理するＨＭＤ１０１（図１におけるＨＭＤ１０１Ａ〜１０１Ｃ）より現実画像を取得して、記憶部に記憶する。
【００２０】
また、ＰＣ１００はＨＭＤ１０１の位置姿勢を特定し、記憶する。ＨＭＤ１０１の位置姿勢の特定方法は、特許文献１に記載されている、ＨＭＤ１０１の撮像した現実画像中の二次元マーカを用いて特定可能である。
【００２１】
また、特許文献２に記載されている、センサ（図１における光学式センサ１０４）がＨＭＤ１０１に設置された光学式マーカの位置姿勢をＨＭＤ１０１の位置姿勢として検出し、それをＰＣ１００が取得することで特定可能である。
【００２２】
本実施形態においては、特許文献２に記載されているように、センサ（図１における光学式センサ１０４）がＨＭＤ１０１に設置された光学式マーカの位置姿勢をＨＭＤ１０１の位置姿勢として検出する方法用いてＨＭＤ１０１の位置姿勢を特定するものとする。
【００２３】
ＰＣ１００では、ＨＭＤ１０１の位置姿勢と、記憶部に記憶されている３次元モデル及び３次元モデルの位置姿勢の情報を用いて、現実画像に３次元モデルを重畳した複合現実画像を生成する。
【００２４】
そして、当該複合現実画像をＨＭＤ１０１のディスプレイに表示させるべく、ＨＭＤ１０１に送信する。ＨＭＤ１０１は受信した複合現実画像をディスプレイに表示する。以上が図１の説明である。
【００２５】
次に図２を参照して、本発明の実施形態における、各種装置のハードウェア構成の一例について説明する。
【００２６】
ＣＰＵ２０１は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。
【００２７】
また、ＲＯＭ２０２には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  ＯｕｔｐｕｔＳｙｓｔｅｍ）やオペレーティングシステム（ＯＳ）、その他各種装置の実行する機能を実現するために必要な各種プログラムが記憶されている。
【００２８】
ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＡＭ２０３にロードして、プログラムを実行することで各種動作を実現するものである。
【００２９】
本発明のＰＣ１００が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０３にロードされることによりＣＰＵ２０１によって実行されるものである。
【００３０】
さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ２１１に格納されている。
【００３１】
入力コントローラ（入力Ｃ）２０５は、キーボードやマウス等のポインティングデバイス（入力デバイス２０９）からの入力を制御する。
【００３２】
また、入力デバイス２０９がタッチパネルの場合、ユーザがタッチパネルに表示されたアイコンやカーソルやボタンに合わせて押下（指等でタッチ）することにより、各種の指示を行うことができることとする。
【００３３】
なお、タッチパネルは、マルチタッチスクリーンなどの、複数の指でタッチされた位置を検出することが可能なタッチパネルであってもよいこととする。
【００３４】
ビデオコントローラ（ＶＣ）２０６は、ＨＭＤ１０１が備える右目・左目ディスプレイ２２２等の表示器への表示を制御する。
【００３５】
右目・左目ディスプレイ２２２に対しては、例えば外部出力端子（例えば、Ｄｉｇｉｔａｌ  Ｖｉｓｕａｌ  Ｉｎｔｅｒｆａｃｅ）を用いて出力される。
【００３６】
また、右目・左目ディスプレイ２２２は、右目用のディスプレイと左目用のディスプレイとから構成されている。また、入力コントローラ（入力Ｃ）２０５は、ＰＣ１００の備えるディスプレイ２１０（ＣＲＴディスプレイ等）の表示器への表示を制御する。
【００３７】
なお、図２では、表示器はＣＲＴディスプレイだけでなく、液晶ディスプレイ等の他の表示器であってもよい。
【００３８】
メモリコントローラ（ＭＣ）２０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク（ＨＤ）やフレキシブルディスク（ＦＤ）或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ２１１へのアクセスを制御する。
【００３９】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）２０８は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。
【００４０】
例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。また、通信Ｉ／Ｆコントローラ２０８は、ギガビットイーサネット（登録商標）等を通じて光学式センサ１０４との通信も制御する。
【００４１】
汎用バス２１２は、ＨＭＤ１０１の右目・左目ビデオカメラ２２１からの映像を取り込むために使用される。右目・左目ビデオカメラ２２１からは、外部入力端子（例えば、ＩＥＥＥ１３９４端子）を用いて入力される。
【００４２】
右目・左目ビデオカメラ２２１は、右目用のビデオカメラと左目用のビデオカメラとから構成されている。
【００４３】
尚、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ上での表示を可能としている。
【００４４】
また、ＣＰＵ２０１は、ディスプレイ上の不図示のマウスカーソル等でのユーザ指示を可能とする。以上が図２の説明である。
【００４５】
次に図３を参照して、本発明の実施形態における各種装置の機能構成の一例について説明する。
【００４６】
撮像部３０１は、現実画像を撮像処理により取得する現実画像（撮像画像）の取得部である。
【００４７】
現実画像送信部３０２は、撮像部３０１により取得された現実画像をＰＣ１００に送信（出力）する。
【００４８】
ＭＲ画像受信部３０３は、ＰＣ１００からＭＲ画像（現実画像に仮想物体の画像を重畳した複合現実画像）を受信する受信部である。
【００４９】
ＭＲ画像表示部３０４は、ＭＲ画像受信部３０３が受信したＭＲ画像を表示する表示部である。
【００５０】
現実画像記憶部３１１は、現実画像送信部３０２により送信された現実画像を取得して記憶する記憶部である。
【００５１】
仮想物体記憶部３１２は、仮想物体（例：３ＤＣＧモデル）を記憶する記憶部である。例えば図６のモデル情報６２０を記憶している。６２０の詳細は後述する。
【００５２】
属性取得部３１３は、仮想物体の属性を取得する取得部である。
【００５３】
接触判定用仮想物体生成部３１４は、属性取得部３１３で属性を取得した仮想物体の接触判定用の仮想物体（例：接触判定用仮想物体の大きさ、形状）を、当該属性に応じて決定し、生成する機能部である。
【００５４】
位置決定部３１５は、接触判定用仮想物体の位置を決定する決定部である。
【００５５】
位置特定部部３１６は、ＨＭＤ１０１及びＨＭＤ１０１を装着しているユーザの手（身体の一部）の位置、仮想物体の位置を特定する機能部である。例えば所定時間ごとに位置を特定し、更新・記憶する。
【００５６】
接触判定部３１７は、接触判定用仮想物体の位置及び形状と、ユーザの身体の一部又は他の仮想物体の位置及び形状とに基づいて、接触判定用仮想物体とユーザの身体の一部又は他の仮想物体が接触しているか判定する。
【００５７】
識別表示制御部３１８は、例えば、接触している接触判定用仮想物体に対応する仮想物体を識別表示すべく、当該仮想物体の色設定を変更する。つまり、接触前から色が変更された仮想物体が、ＭＲ画像表示部３０４で表示されるよう制御する。
【００５８】
ＭＲ画像生成部３１９は、仮想物体の画像と現実画像とを重畳した重畳画像であるＭＲ画像（複合現実画像）を生成する。
【００５９】
なお、仮想物体の色設定が変更されている場合、変更後の色設定に従って色を変更した仮想物体の画像を生成し、当該画像を現実画像と重畳してＭＲ画像を生成する。
【００６０】
ＭＲ画像送信部３２０は、ＭＲ画像をＨＭＤ１０１に表示させるべく、ＨＭＤ１０１に送信（出力）する。以上が図３の説明である。
【００６１】
なお、本実施形態においては、３１１〜３２０の機能部をＰＣ１００が備えているが、例えばこれらの構成をＨＭＤ１０１が備えるよう構成してもよいものとする。
【００６２】
次に図４を参照して、本発明の実施形態における、各種装置のモジュール構成の一例について説明する。
【００６３】
ＰＣ１００は、オペレーティングシステム４０１（ＯＳ）、グラフィックエンジン４０２、複合現実感プラットフォーム４０３（ＭＲプラットフォームともいう）、複合現実感アプリケーション４０４（ＭＲアプリケーションやビューアアプリケーションともいう）で構成され、ＣＰＵ２０１により制御されている。
【００６４】
オペレーティングシステム４０１は、ＨＭＤ１０１の入出力を制御しカメラ２２１から入力インターフェースを介して得られた現実画像を複合現実感プラットフォーム４０３へ受け渡す。
【００６５】
またグラフィックエンジン４０２で描画された複合現実画像を、出力インターフェースを介して、ディスプレイ２２２へ出力する。
【００６６】
グラフィックエンジン４０２は、外部メモリ２１１に記憶されている３次元モデル（仮想物体）から描画する画像を生成し、現実画像に重畳し、合成する。
【００６７】
描画に利用するエンジンは、例えば、ＯｐｅｎＧＬやＤｉｒｅｃｔＸなどの広く利用されているグラフィックエンジンでも、独自に開発したグラフィックエンジンでもよい。なお、本実施形態ではグラフィックライブラリとしてＯｐｅｎＧＬを利用するものとする。
【００６８】
複合現実感プラットフォーム４０３は、センサ１０４からＨＭＤ１０１に設置されたマーカ１０３の位置姿勢を取得することで、当該位置姿勢をＨＭＤ１０１の位置姿勢を取得・特定し、現実空間と仮想空間の位置合わせを行う。
【００６９】
なお、位置姿勢や位置合わせの技術は、既知の技術として開示されている、特開２００２−３２７８４、特開２００６−０７２９０３、特開２００７−１６６４２７等を用いて実現することが可能である。
【００７０】
また、二次元マーカを使用せずに、ＨＭＤ１０１に位置センサを備え、この位置センサを用いて三角測量により計測された位置をもとに、ＨＭＤ１０１の位置や姿勢を特定して実現することも可能である。
【００７１】
複合現実感アプリケーション４０４は、複合現実感プラットフォーム４０３からＨＭＤ１０１の位置姿勢、３次元モデルの形状の情報、位置姿勢の情報を受け付け、グラフィックエンジン４０２に対して、３次元モデルの描画命令を発行する。
【００７２】
この時、ＯｐｅｎＧＬのＡＰＩを用いて、描画する３次元モデルの識別情報、位置姿勢の情報を設定した命令を発行する。以上が図４の説明である。
【００７３】
次に図５を参照して、本発明の実施形態における複合現実画像の生成及び表示処理について説明する。
【００７４】
ＨＭＤ１０１は、ステップＳ５０１で起動後、カメラ２２１の機能を用いて現実画像の撮像を開始する（ステップＳ５０２）。
【００７５】
そして、撮像処理によって取得した現実画像をＰＣ１００に送信する（ステップＳ５０３）。
【００７６】
ＰＣ１００のＣＰＵ２０１はＨＭＤ１０１より現実画像を受信し（ステップＳ５０４）、受信した現実画像を外部メモリ２１１に記憶する（ステップＳ５０５）。
【００７７】
例えば、図６の現実画像テーブル６３０に示すように、現実画像の送信元のＨＭＤ１０１の識別情報であるＨＭＤ  ＩＤ６３１と、現実画像６３２とを対応付けて記憶する。
【００７８】
ＰＣ１００のＣＰＵ２０１は、ＨＭＤ１０１の位置姿勢を取得して（ステップＳ５０６）、外部メモリ２１１に記憶する（ステップＳ５０７）。
【００７９】
例えば、図６のＨＭＤ情報６１０に示すように、ＨＭＤ１０１の識別情報であるＨＭＤ  ＩＤ６１１と、当該ＨＭＤの位置６１２（Ｘ，Ｙ，Ｚ座標）、姿勢６１３（Ｘ，Ｙ，Ｚ座標の値により表現されるＨＭＤ１０１の向いている方向及び傾き（角度））を記憶する。
【００８０】
姿勢６１３については、例えば、１つ前の位置姿勢のレコードと現在の位置姿勢のレコードそれぞれの3次元方向の外積から方向（回転方向）を、内積のａｒｃ  ｃｏｓから角度（なす角）を得る。
【００８１】
当該姿勢６１３の取得方法はあくまで一例であり、上記の方法に限定されるものではない。つまり、他の方法を用いてＨＭＤ１０１の姿勢を取得してもよい。
【００８２】
ＰＣ１００のＣＰＵ２０１は、外部メモリ２１１から３Ｄモデルの情報を取得し、ＨＭＤ１０１から受信した現実画像に重畳して複合現実画像を生成して（ステップＳ５０８）、ＨＭＤ１０１に送信する（ステップＳ５０９）。
【００８３】
３Ｄモデル（仮想物体）の情報は、例えば図６のモデル情報６２０に示す情報である。モデル情報６２０は、予めＰＣ１００の外部メモリ２１１に記憶されている情報である。
【００８４】
モデルＩＤ６２１は３Ｄモデルの識別情報である。モデル名６２２は、３Ｄモデルのファイル名である。
【００８５】
ファイルパス６２３は、ファイルが記憶されている場所を示す。位置６２４、姿勢６２５は３Ｄモデルの位置姿勢を示す。
【００８６】
属性６２６は、３Ｄモデル（仮想物体）の属性である。第１の実施形態においては、当該属性６２６には、仮想物体の材質の硬さを示す硬さ属性が記憶されている。硬さ属性には「硬い」と「柔らかい」の２つのレベルがある。
【００８７】
色設定６２７は、３Ｄモデル（仮想物体）の色設定である。色設定６２７に色の識別情報が記憶されている場合は、当該仮想物体の描画データを、当該色設定６２７に記憶された色で生成する（生成した描画データの色を色設定６２７の色に変更する）。
【００８８】
ＰＣ１００のＣＰＵ２０１は、ＨＭＤの位置６１２・姿勢６１３から、ＨＭＤ１０１と同じ画角を持つカメラが、位置６２４・姿勢６２５の３Ｄモデルを撮像した場合の、当該３Ｄモデルの画像を描画データ６４０として生成する。
【００８９】
そして、当該描画データを現実画像と合成することで、図６のＭＲ画像テーブル６５０に示す複合現実画像（ＭＲ画像）を生成する。
【００９０】
また、ＭＲ画像テーブル６５０の、複合現実画像を生成するために用いた現実画像の送信元のＨＭＤ（ＨＭＤ  ＩＤ６５１）と対応付けて記憶する。その後、ＨＭＤ  ＩＤ６５１の示すＨＭＤ１０１に、複合現実画像６５２を送信する。
【００９１】
ＨＭＤ１０１は、ＰＣ１００から複合現実画像を受信し（ステップＳ５１０）、表示画面に表示する（ステップＳ５１１）。以上が図５の説明である。
【００９２】
次に図７を参照して、本発明の実施形態における、仮想物体の硬さに応じた接触判定用物体の生成処理の流れについて説明する。
【００９３】
図７のフローチャートの各処理は、ＰＣ１００のＣＰＵ２０１が所定の制御プログラムを読み出して実行する処理である。
【００９４】
ＰＣ１００は、ＨＭＤ情報６１０から、ＨＭＤ１０１の最新の位置姿勢を読み出す（ステップＳ７０１）。
【００９５】
ＰＣ１００は、仮想物体の位置情報の一覧を取得する（ステップＳ７０２）。そして、ＨＭＤ１０１の位置を基準として、ＨＭＤ１０１の位置から所定の距離内にある仮想物体を接触の候補として特定し、ＲＡＭ２０３にリスト化して記憶する（ステップＳ７０３）。
【００９６】
当該所定距離は、ＨＭＤ１０１の位置から半径２ｍの距離とする。当該所定距離の値は、ＰＣ１００の外部メモリ２１１に予め記憶されており、ユーザ操作により自由に設定変更可能である。
【００９７】
ＰＣ１００は、接触候補の仮想物体のリストから、未処理の仮想物体を１つ取得する。例えばＨＭＤ１０１との距離が最も近い、未処理の仮想物体を取得する（ステップＳ７０４）。
【００９８】
ＰＣ１００は、当該仮想物体の属性６２６（硬さ属性）を特定し、取得する（ステップＳ７０５）。
【００９９】
そして、属性６２６に基づいて、当該仮想物体が硬いか柔らかいか判定する（ステップＳ７０６）。硬い場合は処理をステップＳ７０７に移行する。柔らかい場合は処理をステップＳ７０８に移行する。
【０１００】
ステップＳ７０８で、ＰＣ１００は、実際の仮想物体よりも小さい仮想物体（３Ｄモデル）を生成する。ここで生成する仮想物体は、「柔らかい」属性を持つ仮想物体の接触判定用の仮想物体である。
【０１０１】
なお、ここでは当該「柔らかい」属性を持つ仮想物体（図９の９１０に例示）の８０％の容積量（８割の大きさ）を持つ３Ｄモデル（接触判定用仮想物体：図９の９２０に例示）を生成する。
【０１０２】
生成した仮想物体は、ＲＡＭ２０３上に生成した、接触判定用の仮想物体一覧（図６の接触判定用モデル情報６６０）に記憶する（ステップＳ７０９）。
【０１０３】
モデルＩＤ６６１は、接触判定用仮想物体（例：図９の９２０）の識別情報である。対応モデルＩＤ６６２は、当該接触判定用仮想物体によって他の物体との接触判定を行う仮想物体（例：図９の９１０）である。
【０１０４】
接触判定用仮想物体（例：図９の９２０）は、設計物の仮想物体（例：図９の９１０）の表示を遮らないように、透明とし、ＭＲ画像には表示しないものとする。
【０１０５】
６６３〜６６６の説明は、同図の６２２〜６２５の説明と同じであるため記載は省略する。
【０１０６】
なお、位置６６５と姿勢６６６は、当該接触判定用仮想物体（例：図９の９２０）の基となった仮想物体（例：図９の９１０／対応モデルＩＤ６６２のモデル）の位置６２４と姿勢６２５と同じ値を決定し、挿入・記憶する（ステップＳ７１０）。
【０１０７】
また、ステップＳ７０７で、ＰＣ１００は、「硬い」属性を持つ仮想物体自体（例：図９の９００）を、モデル情報６２０から取得・特定する。
【０１０８】
そして、当該「硬い」属性を持つ仮想物体のモデル情報を、図６の接触判定用モデル情報６６０に記憶する（ステップＳ７０９）。モデルＩＤ６６１は新たなＩＤを付与する。
【０１０９】
位置６６５と姿勢６６６は、位置６２４と姿勢６２５と同じ値とする（ステップＳ７１０）。
【０１１０】
ＰＣ１００は、ステップＳ７０４〜Ｓ７１０の処理を、接触判定の候補である仮想物体一覧内の全仮想物体に対して実行し、図７の処理を終了する。以上が図７の説明である。
【０１１１】
次に図８を参照して、本発明の実施形態における、接触判定及び識別表示処理の流れについて説明する。
【０１１２】
図８のフローチャートの各処理は、ＰＣ１００のＣＰＵ２０１が所定の制御プログラムを読み出して実行する処理である。
【０１１３】
ＰＣ１００は図８の処理を、所定の時間間隔ごとに実行する。例えば０．５秒ごとに、複合現実アプリケーションが終了されるまで繰り返し実行する。
【０１１４】
ＰＣ１００は、接触判定用仮想物体の一覧（接触判定用モデル情報６６０）をＲＡＭ２０３から取得する（ステップＳ８０１）。
【０１１５】
ＰＣ１００は、ユーザの手の位置姿勢を取得する（ステップＳ８０２）。手の位置姿勢は、例えばユーザの装着している不図示の手袋の関節部に設置された光マーカとセンサ１０４により特定する。
【０１１６】
例えば、センサ１０４が手袋に設置された光マーカの位置姿勢を取得し、ＰＣ１００に出力する。ＰＣ１００は当該手の位置姿勢の値を、手の位置から最も近い位置にあるＨＭＤ１０１のユーザの手の位置姿勢として、当該ＨＭＤ１０１のＩＤと対応付けてＲＡＭ２０３に記憶する。
【０１１７】
手の形状は、外部メモリ２１１に記憶されている手の仮想物体により特定可能である。ＰＣ１００は、手袋の関節部に設置された光マーカの位置をリアルタイムに記憶し、当該位置の変化に応じて、当該位置と同じ位置に仮想物体の手の関節がくるように、手の仮想物体の空間上の位置姿勢を決定する。
【０１１８】
つまり、現実空間上の手袋の位置姿勢、関節の曲がり具合に応じて、手の仮想物体の仮想空間上の位置姿勢、関節の曲がり具合を変化させる。手の仮想物体の一例を図９の９０１に示す。
【０１１９】
ＰＣ１００は、当該手の形状、手の位置姿勢と、接触判定用仮想物体の形状、位置姿勢に基づいて、手と接触判定用仮想物体が接触しているか判定する（ステップＳ８０３）。
【０１２０】
接触している場合は処理をステップＳ８０４に移行し、接触していない場合は処理をステップＳ８０６に移行する。
【０１２１】
ステップＳ８０４で、ＰＣ１００は、接触していると判定された接触判定用仮想物体に対応する仮想物体（例：９２０に対応する９１０）を、対応モデルＩＤ６６２を参照して特定する（ステップＳ８０４）。
【０１２２】
そして、当該特定した仮想物体の色設定６２７を、接触中を示す色に変更する（ステップＳ８０５）。例えば赤色に変更する。
【０１２３】
図５のステップＳ５０８において、ＰＣ１００は、当該仮想物体の描画データの色を赤色に変更して描画するため、当該仮想物体の接触判定用仮想物体と手の接触に応じて、当該仮想物体と手が接触しているようにユーザに報知することが可能となる。
【０１２４】
図１０に、「硬い」属性の仮想物体９００と手１００１の接触報知の様子を示す。硬い仮想物体の場合は、オリジナルの仮想物体（オリジナルの仮想物体と同じ大きさ・形状の接触判定用仮想物体）と手が接触したことにより、接触したことを報知する仮想物体９００の色変更、描画が行われる。
【０１２５】
また、「柔らかい」属性の仮想物体９１０に対応する接触判定用仮想物体９２０と手１０１１の接触報知の様子を示す。
【０１２６】
柔らかい仮想物体の場合は、オリジナルの仮想物体９１０より小さい接触判定用仮想物体９２０と手が接触したことにより、仮想物体９１０の色変更、描画が行われる。
【０１２７】
図８の処理によれば、仮想物体の属性に応じて、当該仮想物体との接触を報知可能な仕組みを提供することができる。
【０１２８】
例えば柔らかい物体の場合には、硬い物体に比べて接触判定の条件を緩くすることで、不要な報知を減らしつつ、ユーザへの接触の報知をすることができる。
【０１２９】
また、図７の処理によれば、仮想物体の属性に応じて、当該仮想物体との接触にかかる条件を決定することが可能な仕組みを提供することができる。
【０１３０】
＜第２の実施形態＞
以下図１１〜図１３を参照して、本発明の第２の実施形態について説明する。第１の実施形態と共通する装置、データ、処理等については説明を割愛する。
【０１３１】
第２の実施形態においては、発熱・放熱、放電をしている等、手や工具を近づけると危険な仮想物体について、危険度の属性に応じて、当該仮想物体との接触にかかる条件を決定することが可能な仕組みを提供することを目的とする。
【０１３２】
図１１のステップＳ７０１〜Ｓ７０４の処理は、図７のステップＳ７０１〜Ｓ７０４と同じであるため説明は割愛する。
【０１３３】
なお、第２の実施形態においては、図６の属性６２６に仮想物体の危険度のレベルを示す値（「高」又は「中」又は「低」）が記憶されているものとする。
【０１３４】
ＰＣ１００は、ステップＳ７０４で取得した仮想物体の属性６２６（危険度属性）を特定し、取得する（ステップＳ１１０１）。
【０１３５】
そして、属性６２６に基づいて、当該仮想物体がどの程度危険か判定する（ステップＳ１１０２／危険度を特定する）。
【０１３６】
危険度＝高の場合は処理をステップＳ１１０３に移行する。危険度＝中の場合には処理をステップＳ７０７に移行する。危険度＝低の場合には処理をステップＳ７０８に移行する。
【０１３７】
危険度＝高の仮想物体とは、例えばそれ自体が高温になる部品の仮想物体である。つまり、たとえ接触していなくても、手や工具を接近させてはいけない（例：接触する程度まで近づけたら手をやけどする／熱くて手を接触させることができない）部品の仮想物体であるものとする。
【０１３８】
危険度＝中の仮想物体とは、例えばそれ自体が発熱・放熱しているものの、危険度＝高の部品ほど高温ではなく、部品と手が接触して初めてやけどをする、熱さを感じるような部品の仮想物体である。つまり、触れさえしなければ、安全な部品であるものとする。
【０１３９】
危険度＝低の仮想物体とは、例えば発熱・放熱はしておらず、手を押し付けたとしてもやけどすることがない／特段の熱さを感じることがない部品の仮想物体であるものとする。
【０１４０】
ステップＳ７０７では、ステップＳ７０４で取得した仮想物体の情報をモデル情報６２０から取得し、処理をステップＳ７０９に移行する。
【０１４１】
また、ステップＳ７０８では、ステップＳ７０４で取得した仮想物体を０．８倍に縮小した接触判定用仮想物体を生成し、処理をステップＳ７０９に移行する。
【０１４２】
ステップＳ１１０３で、ＰＣ１００は、属性が「危険度＝高」の仮想物体（例：図１２の１２００）を１．２倍に拡大・拡張した接触判定用仮想物体（例：図１２の１２１０）を生成し、処理をステップＳ７０９に移行する。
【０１４３】
つまり、危険度＝高の仮想物体の接触判定用の条件を、当該仮想物体より大きい仮想物体との接触することを決定する。
【０１４４】
ステップＳ７０９及びステップＳ７１０の処理は図７の説明で前述したため説明は省略する。以上が図１１の説明である。
【０１４５】
各危険度の仮想物体と、各危険度に応じた接触判定用仮想物体の一例を図１２に示す。また、接触時の識別表示の一例を図１３に示す。
【０１４６】
１２００は、危険度＝高の仮想物体であり、１２１０は、危険度＝高の仮想物体に対応する接触判定用仮想物体である。ＰＣ１００は、１２１０と手１３０１が接触することで、仮想物体１２００の色設定を、接触していることを示す色に変更する。
【０１４７】
９００は、危険度＝中の仮想物体であり、接触判定用仮想物体も当該仮想物体と同じ大きさである。ＰＣ１００は、９００と手が接触することで、仮想物体９００の色設定を、接触していることを示す色に変更する。
【０１４８】
９１０は、危険度＝低の仮想物体であり、９２０は、危険度＝低の仮想物体に対応する接触判定用仮想物体である。ＰＣ１００は、９２０と手が接触することで、仮想物体９１０の色設定を、接触していることを示す色に変更する。
【０１４９】
図１１の処理によれば、発熱・放熱、放電をしている等、手や工具を近づけると危険な仮想物体について、危険度の属性に応じて、当該仮想物体との接触にかかる条件を決定することが可能な仕組みを提供することができる。
【０１５０】
以上説明したように、本発明によれば、仮想物体の属性に応じて、当該仮想物体との接触にかかる条件を決定することが可能な仕組みを提供することができる。
【０１５１】
また、仮想物体の属性に応じて、当該仮想物体との接触にかかる報知をする仕組みを提供することができる。
【０１５２】
なお、上述した実施形態においては、硬さや危険度のレベルに応じて、各レベルに応じた接触判定用仮想物体を生成するものとしたが、これ以外の方法を用いてもよい。
【０１５３】
例えば仮想物体の温度を属性情報として記憶しておき、当該温度が４０℃（人間が熱さを感じる温度の一例）を１℃超えるごとに１％ずつ接触判定用仮想物体を大きく生成するようにしてもよい。これにより、より細かな接触判定・接触判定の結果表示の調整が可能となる。
【０１５４】
また、仮想物体の属性として当該仮想物体で表現される部品の材質を記憶しておき、当該材質に応じて接触判定用仮想物体を大きくしたり、小さくしたりするようにしてもよい。
【０１５５】
例えば、熱や電気を帯びやすい材質Ａの仮想物体は、危険度＝高の場合と同様に、接触判定用仮想物体を対仮想物体比１２０％の大きさとする。
【０１５６】
また、表面がざらざらとしていて触れると危険な材質Ｂの仮想物体については危険度＝中の場合と同様に、接触判定用仮想物体を仮想物体と同じ大きさ（１００％の大きさ）とする。
【０１５７】
それ以外の材質Ｃの仮想物体については、接触判定用仮想物体を対仮想物体比８０％の（仮想物体より小さい）大きさとする。
【０１５８】
材質ごとに接触の条件を決定することで、硬さや危険度で接触の条件を決定できない部品についても、接触の条件を容易に変更・設定できる。
【０１５９】
また、仮想物体の属性に応じて接触判定用仮想物体の全体の大きさを変えるのではなく、接触判定用仮想物体の一部だけの大きさを変更したり、幅を変更したりするようにしてもよい。
【０１６０】
例えばコードのような配線の仮想物体の場合、単純に配線の仮想物体全体の大きさを小さくした接触判定用仮想物体を配置すると、等倍の大きさであれば繋がっていた配線及と、配線の接続元及び接続先が分離してしまい、適切な接触判定を行いことが想定される。
【０１６１】
よって、仮想物体の属性６２６に、当該仮想物体の硬さや危険度に加えて、当該仮想物体の中の特定の部品（例えばコード）の識別情報と、当該部品の何の長さ（高さ・幅・奥行）を対象として接触判定用仮想物体の大きさを決定するかを記憶しておくことで、当該硬さや危険度に応じて、当該特定の部品の、特定の長さの値だけを大きく、又は小さくした接触判定用仮想物体を生成するようにしてもよい（例：コードであれば、コードの太さ（幅）を変えるだけとし、コードを短くはしない等）。
【０１６２】
また、上述した実施形態においては、手と接触判定用仮想物体との接触を判定し、接触状態を識別表示するものとしたが、例えば工具の仮想物体等、他の仮想物体との接触判定を行うようにしてもよい。
【０１６３】
また、上述した実施形態においては、手と接触した接触判定用仮想物体に仮想物体の色を変えるものとしたが、例えば、当該仮想物体の輪郭線を太くする等を行うことで、接触状態を識別可能としてもよい。
【０１６４】
また、当該仮想物体だけでなく、手と接触した接触判定用仮想物体のフレームの色を変える等して、どの接触判定用仮想物体と接触したか／どの接触判定用仮想物体と接触したことでどの仮想物体と接触したと報知されたかを識別可能に表示するようにしてもよい。
【０１６５】
また、図７のステップＳ７０４においては、ＨＭＤ１０１との距離が近い順に仮想物体を取得するものとしたが、例えば、当該ＨＭＤ１０１のユーザの手（接触判定を行う物体）との距離が近い順に仮想物体を取得し、ステップＳ７０５以降の処理を行うようにしてもよい。
【０１６６】
また、ＨＭＤ１０１はシースルー型のディスプレイを備える端末であってもよい。この場合、ＭＲ画像は、現実画像に仮想物体の描画データを重畳した画像ではなく、ディスプレイの大きさと同じ透明な画像に仮想物体の描画データを重畳した画像とする。当該ＭＲ画像を表示することで、ディスプレイを通して透けて見える現実と仮想物体が重なって見えるＭＲの世界を体感可能となる。
【０１６７】
以上、本発明の実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１６８】
例えば、図２に示すＰＣ１００の構成を全て備えるＨＭＤ１０１が、自機の機能をＣＰＵ２０１で実行して、上述した実施形態においてＰＣ１００の実行するものとして説明した処理の全てを、実行するようにしてもよい。
【０１６９】
また、本発明におけるプログラムは、図に示す各フローチャートの各処理方法をコンピュータが実行可能なプログラムであり、本発明の記憶媒体は各フローチャートの各ステップの処理方法をコンピュータが実行可能なプログラムが記憶されている。なお、本発明におけるプログラムは図１の各装置の処理方法ごとのプログラムであってもよい。
【０１７０】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読み出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１７１】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記録媒体は本発明を構成することになる。
【０１７２】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＥＥＰＲＯＭ、シリコンディスク、ソリッドステートドライブ等を用いることができる。
【０１７３】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１７４】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１７５】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適用できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１７６】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１７７】
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０１７８】
１００  ＰＣ
１０１  ＨＭＤ
１０３  光学式マーカ
１０４  光学式センサ
１５０  ネットワーク
【図１】
2019028772.tif 000003
【図２】
2019028772.tif 000004
【図３】
2019028772.tif 000005
【図４】
2019028772.tif 000006
【図５】
2019028772.tif 000007
【図６】
2019028772.tif 000008
【図７】
2019028772.tif 000009
【図８】
2019028772.tif 000010
【図９】
2019028772.tif 000011
【図１０】
2019028772.tif 000012
【図１１】
2019028772.tif 000013
【図１２】
2019028772.tif 000014
【図１３】
2019028772.tif 000015