(57)【要約】【課題】  複合現実において、物体同士の干渉をユーザに容易に確認させることができる仕組みを提供することを目的とする。【解決手段】  表示装置の位置姿勢を特定し、当該表示装置の位置姿勢と仮想オブジェクトの位置姿勢とに基づいて仮想オブジェクトの画像を生成し、当該画像を前記表示装置に表示させるべく送信し、他の仮想オブジェクトと干渉している仮想オブジェクトを特定し、前記干渉オブジェクトを除く他の仮想オブジェクトの画像を、干渉オブジェクトを表示装置において確認可能になるように生成し、当該生成した画像を前記表示装置に送信する【選択図】図７
2020187785.tif 000002
【特許請求の範囲】
【請求項１】
仮想オブジェクトを表示する表示部を備える表示装置と接続可能な、仮想オブジェクトの位置姿勢を複数記憶する情報処理装置であって、
前記表示装置の位置姿勢を特定する表示装置位置姿勢特定手段と、
前記表示装置位置姿勢特定手段により特定された表示装置の位置姿勢と、前記仮想オブジェクトの位置姿勢とに基づいて前記仮想オブジェクトの画像を生成する生成手段と、
前記生成手段により生成された画像を前記表示装置に表示させるべく送信する送信手段と、
前記仮想オブジェクトの位置姿勢に基づいて、他の仮想オブジェクトと干渉している仮想オブジェクトを特定する干渉オブジェクト特定手段と、
を備え、
前記生成手段は、前記表示装置位置姿勢特定手段により特定された前記表示装置の位置姿勢と、前記干渉オブジェクト特定手段により特定された前記干渉オブジェクトの位置姿勢とに基づいて、前記干渉オブジェクトを除く他の仮想オブジェクトの画像を、前記干渉オブジェクトを前記表示装置において確認可能になるように生成し、
前記送信手段は、前記生成手段により、前記干渉オブジェクトを除く他の仮想オブジェクトの画像であって、前記干渉オブジェクトを前記表示装置において確認可能になるように生成された画像を前記表示装置に送信することを特徴とする情報処理装置。
【請求項２】
前記表示装置の備える撮像装置で撮像された現実画像を取得する現実画像取得手段と、
を備え、
前記生成手段は、前記現実画像取得手段により取得された前記現実画像に、前記表示装置位置姿勢特定手段により特定された表示装置の位置姿勢と、前記仮想オブジェクトの位置姿勢とに基づいて生成した前記仮想オブジェクトの画像を重畳することで、複合現実画像を生成し、
前記送信手段は、前記生成手段により、前記干渉オブジェクトを除く他の仮想オブジェクトの画像が、前記干渉オブジェクトを前記表示装置において確認可能になるように生成され、前記現実画像に重畳された複合現実画像を前記表示装置に送信することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記生成手段は、前記干渉オブジェクト又は干渉点から所定の距離内にある他の仮想オブジェクトを透明にした画像を生成することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記生成手段は、前記表示装置の位置と、前記干渉オブジェクト又は干渉点との間に位置する他の仮想オブジェクトを透明にした画像を生成することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記送信手段は、前記干渉オブジェクト特定手段により特定された干渉オブジェクトが、他の仮想オブジェクトの内側に位置する仮想オブジェクトである場合に、前記干渉オブジェクトを除く他の仮想オブジェクトの画像であって、前記干渉オブジェクトを前記表示装置において確認可能になるように生成された画像を前記表示装置に送信することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記送信手段は、前記干渉オブジェクト特定手段により特定された干渉オブジェクトが、前記表示装置の位置から見て前記干渉オブジェクトの背面にある仮想オブジェクトである場合に、前記干渉オブジェクトを除く他の仮想オブジェクトの画像であって、前記干渉オブジェクトを前記表示装置において確認可能になるように生成された画像を前記表示装置に送信することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記生成手段は、前記干渉オブジェクトが、他のオブジェクトに対して最も外側に位置する仮想オブジェクトである場合に、当該干渉オブジェクトを識別可能にした画像を生成することを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記送信手段で、前記干渉オブジェクトを除く他の仮想オブジェクトの画像を、前記干渉オブジェクトを前記表示装置において確認可能になるように生成した画像を送信するか否かを示すモードを設定するモード設定手段と、
を備え、
前記送信手段は、前記モード設定手段に設定されているモードが、前記干渉オブジェクトを除く他の仮想オブジェクトの画像であって、前記干渉オブジェクトを前記表示装置において確認可能になるように生成された画像を前記表示装置に送信するモードである場合に、当該干渉オブジェクトを除く他の仮想オブジェクトの画像であって、前記干渉オブジェクトを前記表示装置において確認可能になるように生成された画像を前記表示装置に送信することを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記仮想オブジェクトは設計物を表す設計データであって、
前記設計データに変更があったか判定する設計変更判定手段と、
を備え、
前記干渉オブジェクト特定手段は、前記設計変更判定手段により、設計変更がされていると判定された設計物を表す仮想オブジェクトのうち、他の仮想オブジェクトと干渉している仮想オブジェクトを干渉オブジェクトとして特定することを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１０】
仮想オブジェクトを表示する表示部を備える表示装置と接続可能な、仮想オブジェクトの位置姿勢を複数記憶する情報処理装置の制御方法であって、
前記表示装置の位置姿勢を特定する表示装置位置姿勢特定工程と、
前記表示装置位置姿勢特定工程により特定された表示装置の位置姿勢と、前記仮想オブジェクトの位置姿勢とに基づいて前記仮想オブジェクトの画像を生成する生成工程と、
前記生成工程により生成された画像を前記表示装置に表示させるべく送信する送信工程と、
前記仮想オブジェクトの位置姿勢に基づいて、他の仮想オブジェクトと干渉している仮想オブジェクトを特定する干渉オブジェクト特定工程と、
を含み、
前記生成工程は、前記表示装置位置姿勢特定工程により特定された前記表示装置の位置姿勢と、前記干渉オブジェクト特定工程により特定された前記干渉オブジェクトの位置姿勢とに基づいて、前記干渉オブジェクトを除く他の仮想オブジェクトを、前記干渉オブジェクトを前記表示装置において確認可能になるように生成し、
前記送信工程は、前記生成工程により、前記干渉オブジェクトを除く他の仮想オブジェクトの画像であって、前記干渉オブジェクトを前記表示装置において確認可能になるように生成された画像を前記表示装置に送信することを特徴とする情報処理装置の制御方法。
【請求項１１】
仮想オブジェクトを表示する表示部を備える表示装置と接続可能な、仮想オブジェクトの位置姿勢を複数記憶する情報処理装置を制御するプログラムであって、
前記情報処理装置を、
前記表示装置の位置姿勢を特定する表示装置位置姿勢特定手段と、
前記表示装置位置姿勢特定手段により特定された表示装置の位置姿勢と、前記仮想オブジェクトの位置姿勢とに基づいて前記仮想オブジェクトの画像を生成する生成手段と、
前記生成手段により生成された画像を前記表示装置に表示させるべく送信する送信手段と、
前記仮想オブジェクトの位置姿勢に基づいて、他の仮想オブジェクトと干渉している仮想オブジェクトを特定する干渉オブジェクト特定手段として機能させ、
前記生成手段は、前記表示装置位置姿勢特定手段により特定された前記表示装置の位置姿勢と、前記干渉オブジェクト特定手段により特定された前記干渉オブジェクトの位置姿勢とに基づいて、前記干渉オブジェクトを除く他の仮想オブジェクトを、前記干渉オブジェクトを前記表示装置において確認可能になるように生成し、
前記送信手段は、前記生成手段により、前記干渉オブジェクトを除く他の仮想オブジェクトの画像であって、前記干渉オブジェクトを前記表示装置において確認可能になるように生成された画像を前記表示装置に送信することを特徴とする情報処理装置のプログラム。
【請求項１２】
仮想オブジェクトを表示する表示部を備える表示装置と、仮想オブジェクトの位置姿勢を複数記憶する情報処理装置を含む情報処理システムであって、
前記表示装置の位置姿勢を特定する表示装置位置姿勢特定手段と、
前記表示装置位置姿勢特定手段により特定された表示装置の位置姿勢と、前記仮想オブジェクトの位置姿勢とに基づいて前記仮想オブジェクトの画像を生成する生成手段と、
前記生成手段により生成された画像を前記表示装置に表示させるべく送信する送信手段と、
前記送信手段により送信された画像を表示部に表示する表示手段と、
前記仮想オブジェクトの位置姿勢に基づいて、他の仮想オブジェクトと干渉している仮想オブジェクトを特定する干渉オブジェクト特定手段と、
を備え、
前記生成手段は、前記表示装置位置姿勢特定手段により特定された前記表示装置の位置姿勢と、前記干渉オブジェクト特定手段により特定された前記干渉オブジェクトの位置姿勢とに基づいて、前記干渉オブジェクトを除く他の仮想オブジェクトを、前記干渉オブジェクトを前記表示装置において確認可能になるように生成し、
前記送信手段は、前記生成手段により、前記干渉オブジェクトを除く他の仮想オブジェクトの画像であって、前記干渉オブジェクトを前記表示装置において確認可能になるように生成された画像を前記表示装置に送信することを特徴とする情報処理システム。
【請求項１３】
仮想オブジェクトを表示する表示部を備える表示装置と、仮想オブジェクトの位置姿勢を複数記憶する情報処理装置を含む情報処理システムの制御方法であって、
前記表示装置の位置姿勢を特定する表示装置位置姿勢特定工程と、
前記表示装置位置姿勢特定工程により特定された表示装置の位置姿勢と、前記仮想オブジェクトの位置姿勢とに基づいて前記仮想オブジェクトの画像を生成する生成工程と、
前記生成工程により生成された画像を前記表示装置に表示させるべく送信する送信工程と、
前記送信工程により送信された画像を表示部に表示する表示工程と、
前記仮想オブジェクトの位置姿勢に基づいて、他の仮想オブジェクトと干渉している仮想オブジェクトを特定する干渉オブジェクト特定工程と、
を含み、
前記生成工程は、前記表示装置位置姿勢特定工程により特定された前記表示装置の位置姿勢と、前記干渉オブジェクト特定工程により特定された前記干渉オブジェクトの位置姿勢とに基づいて、前記干渉オブジェクトを除く他の仮想オブジェクトを、前記干渉オブジェクトを前記表示装置において確認可能になるように生成し、
前記送信工程は、前記生成工程により、前記干渉オブジェクトを除く他の仮想オブジェクトの画像であって、前記干渉オブジェクトを前記表示装置において確認可能になるように生成された画像を前記表示装置に送信することを特徴とする情報処理システの制御方法。
【請求項１４】
仮想オブジェクトを表示する表示部を備える表示装置と、仮想オブジェクトの位置姿勢を複数記憶する情報処理装置を含む情報処理システムを制御するプログラムであって、
前記情報処理システムを、
前記表示装置の位置姿勢を特定する表示装置位置姿勢特定手段と、
前記表示装置位置姿勢特定手段により特定された表示装置の位置姿勢と、前記仮想オブジェクトの位置姿勢とに基づいて前記仮想オブジェクトの画像を生成する生成手段と、
前記生成手段により生成された画像を前記表示装置に表示させるべく送信する送信手段と、
前記送信手段により送信された画像を表示部に表示する表示手段と、
前記仮想オブジェクトの位置姿勢に基づいて、他の仮想オブジェクトと干渉している仮想オブジェクトを特定する干渉オブジェクト特定手段として機能させ、
前記生成手段は、前記表示装置位置姿勢特定手段により特定された前記表示装置の位置姿勢と、前記干渉オブジェクト特定手段により特定された前記干渉オブジェクトの位置姿勢とに基づいて、前記干渉オブジェクトを除く他の仮想オブジェクトを、前記干渉オブジェクトを前記表示装置において確認可能になるように生成し、
前記送信手段は、前記生成手段により、前記干渉オブジェクトを除く他の仮想オブジェクトの画像であって、前記干渉オブジェクトを前記表示装置において確認可能になるように生成された画像を前記表示装置に送信することを特徴とする情報処理システムのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、その制御方法及びプログラムに関する。
【背景技術】
【０００２】
近年、複合現実（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ／以下、ＭＲと記載）の技術が普及している。複合現実の技術を用いて、ヘッドマウントディスプレイ（ＨＭＤ）を装着したユーザに対し、現実画像にＣＧモデル（仮想物体）を配置した複合現実画像を提供し、現実と仮想を複合した複合現実の世界を体験させることができる。複合現実画像を生成するにあたり、ＨＭＤの位置とＣＧモデルの位置とを、センサや二次元マーカを用いて特定する手法が取られている。
【０００３】
特許文献１には、ＨＭＤで撮像された画像の中に写る二次元マーカを用いてＨＭＤの位置姿勢を特定し、複合現実画像を提供する技術が記載されている。また、特許文献２には、磁気センサを用いてＨＭＤの位置姿勢を特定し、複合現実画像を提供する技術が記載されている。
【０００４】
また、特許文献３には、仮想物体同士が干渉した場合に、干渉に応じて、干渉した仮想物体の形状を変形させ、干渉の事実をユーザに通知する技術が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−３０８５１４号公報
【特許文献２】特開２００３−２４０５３２号公報
【特許文献３】特開２００７−１７９４８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
例えば引用文献３の技術では、干渉した物体の両方がユーザに見えるように表示されている場合には、物体同士の干渉・衝突を容易に確認できるが、例えば仮想物体が密集している場合や、仮想物体の中に複数の仮想物体が配置されている場合、干渉している部分がユーザから見て仮想物体の裏側である場合等は、どの仮想物体とどの仮想物体が接触しているのかが分かり難い。
【０００７】
そこで、本発明は、複合現実において、物体同士の干渉をユーザに容易に確認させることができる仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、仮想オブジェクトを表示する表示部を備える表示装置と接続可能な、仮想オブジェクトの位置姿勢を複数記憶する情報処理装置であって、前記表示装置の位置姿勢を特定する表示装置位置姿勢特定手段と、前記表示装置位置姿勢特定手段により特定された表示装置の位置姿勢と、前記仮想オブジェクトの位置姿勢とに基づいて前記仮想オブジェクトの画像を生成する生成手段と、前記生成手段により生成された画像を前記表示装置に表示させるべく送信する送信手段と、前記仮想オブジェクトの位置姿勢に基づいて、他の仮想オブジェクトと干渉している仮想オブジェクトを特定する干渉オブジェクト特定手段と、を備え、前記生成手段は、前記表示装置位置姿勢特定手段により特定された前記表示装置の位置姿勢と、前記干渉オブジェクト特定手段により特定された前記干渉オブジェクトの位置姿勢とに基づいて、前記干渉オブジェクトを除く他の仮想オブジェクトの画像を、前記干渉オブジェクトを前記表示装置において確認可能になるように生成し、前記送信手段は、前記生成手段により、前記干渉オブジェクトを除く他の仮想オブジェクトの画像であって、前記干渉オブジェクトを前記表示装置において確認可能になるように生成された画像を前記表示装置に送信することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、複合現実において、物体同士の干渉をユーザに容易に確認させることができる仕組みを提供することが可能になる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態における、情報処理システム構成図の一例を示す図である。
【図２】本発明の実施形態における、各種装置のハードウェア構成の一例を示す図である。
【図３】本発明の実施形態における、各種装置の機能構成の一例を示す図である。
【図４】本発明の実施形態における、各種装置のモジュール構成の一例を示す処理図である。
【図５】本発明の第１の実施形態における、複合現実画像の生成及び表示処理の一例を示すフローチャートである。
【図６】本発明の第１の実施形態における、データ構成の一例を示す図である。
【図７】本発明の第１の実施形態における、複合現実画像の生成処理の詳細を示すフローチャートである。
【図８】本発明の第２の実施形態における、複合現実画像の生成処理の詳細を示すフローチャートである。
【図９】本発明の第３の実施形態における、複合現実画像の生成処理の詳細を示すフローチャートである。
【図１０】本発明の実施形態における、データ構成の一例を示す図である。
【図１１】本発明の実施形態における、３Ｄモデルの一例を示す図である。
【図１２】本発明の第１の実施形態における、複合現実画像の表示の一例を示す図である。
【図１３】本発明の第２の実施形態における、複合現実画像の表示の一例を示す図である。
【図１４】本発明の第３の実施形態における、複合現実画像の表示の一例を示す図である。
【図１５】本発明の実施形態における、複合現実画像の表示の一例を示す図である。
【発明を実施するための形態】
【００１１】
図１を参照して、本発明の実施形態における情報処理システムの構成の一例について説明する。
【００１２】
図１に示すように、本発明における情報処理システムの各種装置はネットワーク１５０を介して通信可能に接続されている（各機器は接続可能な状態にある）。例えばＰＣ１００は、ＨＭＤ１０１（ＨＭＤ１０１Ａ〜ＨＭＤ１０１Ｃの総称）と通信可能に接続されている。
【００１３】
ＰＣ１００には、ＨＭＤ１０１により撮像される現実画像に重畳する３次元モデル（ＣＧモデル／仮想オブジェクト）が記憶されている。
【００１４】
また、ＰＣ１００は、自機の管理するＨＭＤ１０１（図１におけるＨＭＤ１０１Ａ〜１０１Ｃ）より現実画像を取得して、記憶部に記憶する。また、ＰＣ１００はＨＭＤ１０１の位置姿勢を特定し、記憶する。ＨＭＤ１０１の位置姿勢の特定方法は、特許文献１に記載されている、ＨＭＤ１０１の撮像した現実画像中の二次元マーカを用いて特定可能である。
【００１５】
また、特許文献２に記載されている、センサ（例えば図１における光学式センサ１０４（赤外線センサ））がＨＭＤ１０１に設置された光マーカ１０３（赤外線マーカ）の位置姿勢をＨＭＤ１０１の位置姿勢として検出し、それをＰＣ１００が取得することで特定可能である。光マーカ１０３は、例えば図１に示すようにＨＭＤ１０１に３つ設置されている。これら３つの光マーカ１０３の位置を光学式センサ１０４で特定し、ＰＣ１００が、予め自機に記憶されている、ＨＭＤ１０１のどの位置に（ＨＭＤ１０１の位置から見てどの位置に）これら３つの光マーカ１０３が設置されているかを示す情報と、光学式センサ１０４で特定された３つの光マーカ１０３の位置を用いて、ＨＭＤの位置姿勢を特定する。
【００１６】
ＰＣ１００では、ＨＭＤ１０１の位置姿勢と、記憶部に記憶されている３次元モデル及び３次元モデルの位置姿勢の情報を用いて、現実画像に３次元モデルを重畳した複合現実画像を生成する。そして、当該複合現実画像をＨＭＤ１０１のディスプレイに表示させるべく、ＨＭＤ１０１に送信する。ＨＭＤ１０１は受信した複合現実画像をディスプレイに表示する。以上が図１の説明である。
【００１７】
次に図２を参照して、本発明の実施形態における、各種装置のハードウェア構成の一例について説明する。
【００１８】
ＣＰＵ２０１は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。
【００１９】
また、ＲＯＭ２０２には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  ＯｕｔｐｕｔＳｙｓｔｅｍ）やオペレーティングシステム（ＯＳ）、その他各種装置の実行する機能を実現するために必要な各種プログラムが記憶されている。
【００２０】
ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＡＭ２０３にロードして、プログラムを実行することで各種動作を実現するものである。
【００２１】
本発明のＰＣ１００が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０３にロードされることによりＣＰＵ２０１によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ２１１に格納されている。
【００２２】
入力コントローラ（入力Ｃ）２０５は、キーボードやマウス等のポインティングデバイス（入力デバイス２０９）からの入力を制御する。
【００２３】
ビデオコントローラ（ＶＣ）２０６は、ＨＭＤ１０１が備える右目・左目ディスプレイ２２２等の表示器への表示を制御する。右目・左目ディスプレイ２２２に対しては、例えば外部出力端子（例えば、Ｄｉｇｉｔａｌ  Ｖｉｓｕａｌ  Ｉｎｔｅｒｆａｃｅ）を用いて出力される。また、右目・左目ディスプレイ２２２は、右目用のディスプレイと左目用のディスプレイとから構成されている。また、入力コントローラ（入力Ｃ）２０５は、ＰＣ１００の備えるディスプレイ２１０（ＣＲＴディスプレイ等）の表示器への表示を制御する。なお、図２では、表示器はＣＲＴディスプレイだけでなく、液晶ディスプレイ等の他の表示器であってもよい。
【００２４】
メモリコントローラ（ＭＣ）２０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク（ＨＤ）やフレキシブルディスク（ＦＤ）或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ２１１へのアクセスを制御する。
【００２５】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）２０８は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。また、通信Ｉ／Ｆコントローラ２０８は、ギガビットイーサネット（登録商標）等を通じて光学式センサ１０４との通信も制御する。
【００２６】
汎用バス２１２は、ＨＭＤ１０１の右目・左目ビデオカメラ２２１からの映像を取り込むために使用される。右目・左目ビデオカメラ２２１からは、外部入力端子（例えば、ＩＥＥＥ１３９４端子）を用いて入力される。右目・左目ビデオカメラ２２１は、右目用のビデオカメラと左目用のビデオカメラとから構成されている。
【００２７】
尚、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ上での表示を可能としている。また、ＣＰＵ２０１は、ディスプレイ上の不図示のマウスカーソル等でのユーザ指示を可能とする。以上が図２の説明である。
【００２８】
次に図３を参照して、本発明の実施形態における各種装置の機能構成の一例について説明する。
【００２９】
現実画像送信部３０１は、ＨＭＤ１０１の備えるカメラ装置を用いて撮像した現実画像をＰＣ１００に送信する送信部である。
【００３０】
現実画像受信・記憶部３１１は、ＨＭＤ１０１より現実画像を受信して記憶する記憶部である。現実画像受信・記憶部３１１が記憶する現実画像の一例を図６の６３０に示す。ＨＭＤ位置姿勢特定部３１２は、ＨＭＤ１０１の位置姿勢を特定して記憶する。
【００３１】
３Ｄモデル記憶部３１３は、仮想のオブジェクト（仮想オブジェクト）である３Ｄモデルを、当該３Ｄモデルの位置姿勢と対応付けて記憶する記憶部である。当該３Ｄモデル記憶部３１３が記憶する３Ｄモデルの情報の一例を図６の６２０に示す。
【００３２】
干渉モデル特定部３１４は、３Ｄモデル記憶部３１３が記憶する複数の３Ｄモデルの形状と位置姿勢から、他の仮想モデルと干渉（接触・衝突）している３Ｄモデル（干渉モデル／干渉オブジェクトともいう）を特定する特定部である。干渉点特定部３１５は、干渉中の３Ｄモデルの最外面上の点であり、他の３Ｄモデルの最外面と干渉・接触している干渉点を特定する。
【００３３】
透明化対象モデル特定部３１６は、干渉中のモデルがＨＭＤ１０１を装着したユーザによく見えるように、例えば干渉中のモデル周囲のモデルを透明化すべく、透明化の対象とする３Ｄモデルを特定する。透明化画像生成制御部３１７は、透明化対象モデル特定部３１６で特定した３Ｄモデルを、透明化した画像を生成する生成部である。例えば、複合現実の生成に際して現実画像との重畳に用いる、ＨＭＤ１０１の位置姿勢から見た３Ｄモデルの画像であって、透明化した画像（図６の描画データ６４０）を生成する。また、当該透明化した画像をＨＭＤ１０１から取得した現実画像に重畳した複合現実画像を生成する。当該透明化する際の透明度は、不図示の設定画面において任意に設定可能である。
【００３４】
透明化画像送信部３１８は、透明化画像（例：干渉中のモデルの周囲の３Ｄモデルを透明化した複合現実画像）をＨＭＤ１０１に送信する送信部である。
【００３５】
透明化画像受信部３０２は、透明化画像を受信し、透明化画像表示部３０３は、受信した透明化画像を表示する。以上が図３の説明である。
【００３６】
なお、本実施形態においては、３１１〜３１８の処理部（その機能）をＰＣ１００が備えているが、例えばこれらの構成をＨＭＤ１０１自身が単体で備えるよう構成してもよいものとする。
【００３７】
次に図４を参照して、本発明の実施形態における、各種装置のモジュール構成の一例について説明する。
【００３８】
ＰＣ１００は、オペレーティングシステム４０１（ＯＳ）、グラフィックエンジン４０２、複合現実感プラットフォーム４０３（ＭＲプラットフォームともいう）、複合現実感アプリケーション４０４（ＭＲアプリケーションやビューアアプリケーションともいう）で構成され、ＣＰＵ２０１により制御されている。
【００３９】
オペレーティングシステム４０１は、ＨＭＤ１０１の入出力を制御しカメラ２２１から入力インターフェースを介して得られた現実画像を複合現実感プラットフォーム４０３へ受け渡す。またグラフィックエンジン４０２で描画された複合現実画像を、出力インターフェースを介して、ディスプレイ２２２へ出力する。
【００４０】
グラフィックエンジン４０２は、外部メモリ２１１に記憶されている３次元モデルから描画する画像を生成し、現実画像に重畳し、合成する。描画に利用するエンジンは、例えば、ＯｐｅｎＧＬやＤｉｒｅｃｔＸなどの広く利用されているグラフィックエンジンでも、独自に開発したグラフィックエンジンでもよい。なお、本実施形態ではグラフィックライブラリとしてＯｐｅｎＧＬを利用するものとする。
【００４１】
複合現実感プラットフォーム４０３は、光学式センサ１０４から光マーカ１０３の位置を取得することでＨＭＤ１０１の位置姿勢を特定し、現実空間と仮想空間の位置合わせを行う。なお、位置姿勢や位置合わせの技術は、既知の技術として開示されている、特開２００２−３２７８４、特開２００６−０７２９０３、特開２００７−１６６４２７等を用いて実現することが可能である。
【００４２】
なお、二次元マーカを使用せずに、ＨＭＤ１０１に位置センサを備え、この位置センサを用いて三角測量により計測された位置をもとに、ＨＭＤ１０１の位置や姿勢を特定して実現することも可能である。
【００４３】
複合現実感アプリケーション４０４は、複合現実感プラットフォーム４０３からＨＭＤ１０１の位置姿勢、３次元モデルの形状の情報、位置姿勢の情報を受け付け、グラフィックエンジン４０２に対して、３次元モデルの描画命令を発行する。この時、ＯｐｅｎＧＬのＡＰＩを用いて、描画する３次元モデルの識別情報、位置姿勢の情報を設定した命令を発行する。以上が図４の説明である。
【００４４】
＜第１の実施形態＞
次に図５を参照して、本発明の第１の実施形態における複合現実画像の生成及び表示処理について説明する。
【００４５】
ＰＣ１００のＣＰＵ２０１は、複合現実感アプリケーション４０４の起動操作を受け付ける。図５のステップＳ５０４以降の処理は、複合現実感アプリケーション４０４が起動されることで、複合現実感アプリケーション４０４、複合現実感プラットフォーム４０３、グラフィックエンジン４０２、ＯＳ４０１によって開始・実行される。また、複合現実感アプリケーション４０４の終了操作を受け付け、複合現実感アプリケーション４０４が終了する場合に終了される。
【００４６】
ＨＭＤ１０１は、ステップＳ５０１で起動後、カメラ２２１の機能を用いて現実画像の撮像を開始する（ステップＳ５０２）。そして、撮像処理によって取得した現実画像をＰＣ１００に送信する（ステップＳ５０３）。
【００４７】
ＰＣ１００のＣＰＵ２０１はＨＭＤ１０１より現実画像を受信し（ステップＳ５０４／現実画像取得手段に該当）、受信した現実画像を外部メモリ２１１に記憶する（ステップＳ５０５）。例えば、図６の現実画像テーブル６３０に示すように、現実画像の送信元のＨＭＤ１０１の識別情報であるＨＭＤ  ＩＤ６３１と、現実画像６３２とを対応付けて記憶する。
【００４８】
ＰＣ１００のＣＰＵ２０１は、ＨＭＤ１０１の位置姿勢を取得して（ステップＳ５０６）、外部メモリ２１１に記憶する（ステップＳ５０７）。例えば、図６のＨＭＤ情報６１０に示すように、ＨＭＤ１０１の識別情報であるＨＭＤ  ＩＤ６１１と、当該ＨＭＤの位置６１２（Ｘ，Ｙ，Ｚ座標）、姿勢６１３（Ｘ，Ｙ，Ｚ座標の値により表現されるＨＭＤ１０１の向いている方向）を記憶する。
【００４９】
ＰＣ１００のＣＰＵ２０１は、外部メモリ２１１から３Ｄモデルの情報を取得し、ＨＭＤ１０１から受信した現実画像に重畳して複合現実画像を生成して（ステップＳ５０８）、ＨＭＤ１０１に送信する（ステップＳ５０９）。ステップＳ５０８の詳細は図７の説明で後述する。
【００５０】
３Ｄモデルの情報は、例えば図６のモデル情報６２０に示す情報である。モデル情報６２０は、予めＰＣ１００の外部メモリ２１１に記憶されている情報である。モデルＩＤ６２１は３Ｄモデルの識別情報である。モデル名６２２は、３Ｄモデルのファイル名である。ファイルパス６２３は、ファイルが記憶されている場所を示す。位置６２４、姿勢６２５は３Ｄモデルの位置姿勢を示す。
【００５１】
ＰＣ１００のＣＰＵ２０１は、ＨＭＤの位置６１２・姿勢６１３から、ＨＭＤ１０１と同じ画角を持つカメラが、位置６２４・姿勢６２５の３Ｄモデルを撮像した場合の、当該３Ｄモデルの画像を描画データ６４０として生成する。そして、当該描画データを現実画像と合成することで、図６のＭＲ画像テーブル６５０に示す複合現実画像（ＭＲ画像）を生成する。また、ＭＲ画像テーブル６５０の、複合現実画像を生成するために用いた現実画像の送信元のＨＭＤ（ＨＭＤ  ＩＤ６５１）と対応付けて記憶する。その後、ＨＭＤ  ＩＤ６５１の示すＨＭＤ１０１に、複合現実画像６５２を送信する。
【００５２】
ＨＭＤ１０１は、ＰＣ１００から複合現実画像を受信し（ステップＳ５１０）、表示画面に表示する（ステップＳ５１１）。以上が図５の説明である。
【００５３】
次に図７を参照して、本発明の実施形態における、複合現実画像の生成処理の詳細について説明する。
【００５４】
第１の実施形態では、他の３Ｄモデルと干渉中の３Ｄモデル（干渉モデル）の周辺にある他の３Ｄモデルを透明化することで、ユーザに干渉モデルを見え易くする。
【００５５】
ＰＣ１００のＣＰＵ２０１は、自機の外部メモリに記憶されているモデル情報６２０（図６）をメモリ上に読み出して、ＨＭＤ１０１の画角に含まれる３Ｄモデル、つまり、ＨＭＤ１０１から取得した現実画像上に重畳して表示すべき３Ｄモデルのモデル情報を特定してメモリ上にリスト（干渉情報１０１０）として保持する（ステップＳ７０１）。例えば、図１０の干渉情報１０１０のテーブルを生成し、モデルＩＤ１０１１に当該特定したモデルのＩＤを記憶する。なお、干渉先モデル１０１２、干渉点１０１３の値は消去する。
【００５６】
ＰＣ１００のＣＰＵ２０１は、自機の外部メモリに記憶されている図１０の干渉表示モード１０５０の値を参照し、干渉表示モードが設定されているか判定する（ステップＳ７０２）。干渉表示モードとは、干渉モデルが見え易くなるように、干渉モデルを除く他の３Ｄモデルの表示を変化させる（例：透明にする等）モードである（モード設定手段に該当）。干渉表示モード１０５０の値がＯＮである場合に干渉表示モードが設定されていると判定する。干渉表示モード１０５０の値がＯＦＦである場合には干渉表示モードが設定されていないと判定する。
【００５７】
干渉表示モードが設定されている場合（ステップＳ７０２でＹＥＳ）、ＰＣ１００のＣＰＵ２０１は、リスト内の全ての３Ｄモデルに対してステップＳ７０３〜Ｓ７０５の処理を実行する。干渉表示モードが設定されている場合は（ステップＳ７０２でＮＯ）、後述するステップＳ７０９に処理を移行する。ステップＳ７０２からステップＳ７０９に移行した場合には、ＰＣ１００のＣＰＵ２０１はステップＳ７０９で、ＨＭＤ１０１の画角内に入る全ての３Ｄモデルを透明度０％で表示すべく、透明度０％の３Ｄモデルの描画データを生成して、メモリ上に記憶する。そして、ステップＳ７１０で、当該描画データと現実画像とを合成して複合現実画像を生成する。例えば図１２の１２００に現実画像１１０３とモデル１１０１を合成した複合現実画像の一例を示す。実際には図１１の１１００に示すように、１２００で表示されているモデル１１０１の中に別のモデル１１０２が位置しているものとする。
【００５８】
ＰＣ１００のＣＰＵ２０１は、ステップＳ７０２で生成・記憶したリスト内から未処理のモデル情報を１つ取得し（ステップＳ７０３）、当該モデル情報の示す３Ｄモデルが他のモデルと干渉しているか判定する（ステップＳ７０４／干渉オブジェクト特定手段に該当）。３Ｄモデル同士の干渉は、ファイルパス６２３に保存されているモデル名６２２のモデルを読み出して特定するモデルの３Ｄ形状と、当該モデル位置６２４、姿勢６２５（位置姿勢）を用いて特定・判定する。
【００５９】
３Ｄモデル同士が干渉するケースとして、例えば３Ｄモデルの位置６２４がユーザ操作によって変更された場合が想定される。また、図１１の１１１０及び１１２０に示すように、モデル１１１１の形状が１１２１のように更新・変更されたことにより（図１１においてはモデル１１１１にパイプ型の立体形状１１２２が追加されているため）、変更前の時点では接触・干渉していなかったモデル１１１２と干渉するようになってしまうことが考えられる。
【００６０】
他のモデルと干渉していると判定した場合には、干渉している当該他のモデルのモデルＩＤを取得して、ステップＳ７０３で取得して他のモデルと干渉していると判定された３ＤモデルのモデルＩＤに対応付けて記憶する。例えば、干渉情報１０１０の干渉先モデル１０１２に、当該他のモデルのモデルＩＤを挿入して記憶する。また、各干渉モデルの最外面上の位置であって、干渉モデル同士が干渉・接触している点を干渉点（３Ｄモデル同士が干渉している位置）として特定し、干渉点１０１３に記憶する（ステップＳ７０５）。
【００６１】
干渉情報１０１０のモデルＩＤ１０１１に示す３Ｄモデルの全てに対してステップＳ７０３〜Ｓ７０５の処理を行った後、処理をステップＳ７０６に移行する。
【００６２】
ＰＣ１００のＣＰＵ２０１は、干渉モデル（他のモデルと干渉中の３Ｄモデル）の色を、干渉中を示す色（干渉中であることが識別可能な色）に変更する。当該干渉中を示す色とは、例えば赤色であるものとする。具体的には、ＨＭＤ１０１の画角及び位置姿勢と当該干渉モデルの位置姿勢に基づいて、ＨＭＤ１０１の位置姿勢から当該干渉モデルを撮像した場合の赤色の干渉モデルの画像データを、図６に示す描画データ６４０としてメモリ上に生成・記憶する（ステップＳ７０６）。当該干渉モデルの色変更及び描画データの生成を、全ての干渉モデルに対して実行し、処理をステップＳ７０７に移行する。
【００６３】
ＰＣ１００のＣＰＵ２０１は、各干渉モデルの干渉点から所定範囲に位置する、干渉モデル以外の３Ｄモデルを特定して記憶する（ステップＳ７０７）。例えば図１０の範囲内モデル１０３０に示すように、モデルＩＤのリストをメモリ上に生成して記憶する。ここでいう所定範囲とは、ＰＣ１００の外部メモリ上の、任意の範囲１０２０（図１０）に予め記憶されている半径から特定する。
【００６４】
図１０によれば、干渉点から半径２０ｃｍの範囲（領域）を当該所定範囲として特定する。任意の範囲１０２０は、不図示の設定画面を介してユーザ操作を受け付けることで、任意に設定・変更可能である。
【００６５】
ＰＣ１００のＣＰＵ２０１は、干渉点から所定範囲内に位置する３Ｄモデルを外部メモリから取得して、当該３Ｄモデルの色を透明色に変更する。つまり、干渉モデルの周囲にある３Ｄモデルを透明化する（ステップＳ７０８）。例えば、図１２の１２１０における１２１３に示すように、干渉点から距離１２２０（任意の範囲）以内にある３Ｄモデルを透明にする。つまり、干渉点１２２１の周囲にある３Ｄモデルを透明にすることで、干渉モデルであるモデル１１１１とモデル１１１２をユーザに見え易くした複合現実画像を生成して、表示画面に表示することが可能となる。
【００６６】
なお、どの程度透明にするかは、任意に設定・変更可能であるものとする。例えば、図１０の透明度１０４０に示すように、ステップＳ７０８において３Ｄモデルをどの程度透明にするかを示す情報を外部メモリに記憶しておく。透明度１０４０に値が挿入されている場合は、ステップＳ７０８において、干渉点から所定範囲内に位置するモデルを、透明度１０４０に示す値の透明度に変更する。
【００６７】
具体的には、ＨＭＤ１０１の画角及び位置姿勢と範囲内モデル１０３０の３Ｄモデルの位置姿勢に基づいて、ＨＭＤ１０１の位置姿勢から当該所定範囲内の３Ｄモデルを撮像した場合の、透明化した３Ｄモデルの画像データを、図６に示す描画データ６４０としてメモリ上に生成・記憶する。干渉点から所定範囲内に位置する、干渉モデル以外の全ての３Ｄモデル（範囲内モデル１０３０に記憶されている全てのモデル）に対して、当該透明化及び描画データの生成を実行し、処理をステップＳ７０９に移行する。
【００６８】
ＰＣ１００のＣＰＵ２０１は、ＨＭＤ１０１の画面上に表示すべき３Ｄモデルであって、干渉モデルでもなく、範囲内モデル１０３０に記憶されている３Ｄモデルでもない、通常の３Ｄモデルを特定する。具体的には、干渉情報１０１０の中で、干渉先モデルにモデルＩＤが挿入されていない３Ｄモデルであって、範囲内モデル１０３０に含まれていないモデルＩＤの３Ｄモデルを、通常のモデルとして特定する。ＰＣ１００のＣＰＵ２０１は、ＨＭＤ１０１の画角・位置姿勢と、特定した当該通常のモデルの位置姿勢とに基づいて、当該通常のモデルをＨＭＤ１０１の画角・位置姿勢で撮像した場合の当該通常のモデルの画像（描画データ６４０）を透明度＝０％で生成してメモリ上に記憶する（ステップＳ７０９）。
【００６９】
ＰＣ１００のＣＰＵ２０１は、干渉モデルの描画データ、範囲内モデルの描画データ、通常モデルの描画データを、ＨＭＤ１０１から取得してメモリに記憶している現実画像に重畳してＭＲ画像（複合現実画像）を生成する（ステップＳ７１０）。以上が図７の説明である。
【００７０】
以上説明したように、本発明の第１の実施形態によれば、複合現実において、物体同士の干渉をユーザに容易に確認させることができる仕組みを提供することができる。
【００７１】
例えば、他の３Ｄモデルと干渉中の３Ｄモデル（干渉モデル）の周辺にある他の３Ｄモデルを透明化することで、干渉モデルを見え易くした画像を生成し、表示画面においてユーザに確認させることができる。
【００７２】
＜第２の実施形態＞
次に図８を参照して、本発明の第２の実施形態における、複合現実画像の生成処理の詳細について説明する。
【００７３】
第２の実施形態では、他の３Ｄモデルと干渉中の３Ｄモデル（干渉モデル）と、ＨＭＤとの間にある他の３Ｄモデルを透明化することで、ユーザに干渉モデルを見え易くする。
【００７４】
例えば、干渉点とＨＭＤとの間にある他の３Ｄモデルを透明化することで、ユーザに干渉モデルを見え易くする。
【００７５】
図８の処理は、第１の実施形態における図７のステップＳ７０６の処理の直後にＰＣ１００のＣＰＵ２０１が実行する。なお、第１の実施形態と共通する処理については説明を省略する。
【００７６】
ＰＣ１００のＣＰＵ２０１は、干渉モデルを見え易くするために、干渉点から任意の範囲内（所定距離内）にある他の３Ｄモデルを透明化するモードと、干渉点とＨＭＤ１０１との間に位置する他の３Ｄモデルを透明化するモードのどちらが設定されているか判定する（ステップＳ８０１）。当該モードは、ＰＣ１００の外部メモリに記憶されている図１０の透明化モード１０７０に予め設定されているものとする。
【００７７】
干渉点から任意の範囲内にある他の３Ｄモデルを透明化するモードが設定されている場合は処理を図７のステップＳ７０７に移行する。干渉点とＨＭＤ１０１との間に位置する他の３Ｄモデルを透明化するモードが設定されている場合には、処理をステップＳ８０２に移行する。
【００７８】
ＰＣ１００のＣＰＵ２０１は、全ての干渉点に対してステップＳ８０３〜Ｓ８０５の処理を実行する。
【００７９】
ＰＣ１００のＣＰＵ２０１は、干渉情報１０１０から未処理の干渉点１０１３を１つ取得し（ステップＳ８０３）、ＨＭＤ１０１の位置と取得した干渉点１０１３の示す干渉点の位置との間に位置する、干渉モデル以外の３Ｄモデルを、透明化する対象のモデルとして特定し、メモリ上に記憶する（ステップＳ８０４）。例えば、図１３の１３１１に示すようにＨＭＤ１０１の位置から干渉点までの直線を生成する。そして、位置６２４、姿勢６２５に配置した場合に当該直線との交点１３１２を持つ（直線と交わる）３Ｄモデルであって、干渉モデル以外の３Ｄモデルを全て特定し、特定された３ＤモデルのモデルＩＤを、図１０のＨＭＤ・干渉点間モデル１０６０に示す形式でメモリ上に記憶する。図１３においては、ボンネットの３Ｄモデル１３０１が、ＨＭＤ１０１と干渉点との間にある３Ｄモデルとして特定される。
【００８０】
ＰＣ１００のＣＰＵ２０１は、取得した干渉点とＨＭＤ１０１との間にある、干渉モデルを除く全ての他の３Ｄモデル（ＨＭＤ・干渉点間モデル１０６０内の全てのモデル）を透明化する。具体的には、当該他の３Ｄモデルを、透明度１０４０の値で透明化した画像（描画データ）を生成し、メモリ上に記憶する。描画データとは、ＨＭＤ１０１の画角で、ＨＭＤ１０１の位置姿勢から位置６２４・姿勢６２５の３Ｄモデルを撮影した場合の、当該３Ｄモデルの画像である。そして当該描画データをステップＳ７１０で現実画像に合成して複合現実画像を生成する。例えば、図１３の１３１０に示すように、１３００において透明化されていなかったボンネットの３Ｄモデル１３０１を、ＨＭＤ１０１と干渉点との間にあるモデルとして特定して透明化し、複合現実画像を生成する。１３１０においては、透明化したモデル１３０１を点線で記載している。
【００８１】
ＰＣ１００のＣＰＵ２０１は、全ての干渉点１０１３と、その干渉点とＨＭＤ１０１の間にある全ての他の３Ｄモデルに対してステップＳ８０３〜Ｓ８０５の処理を実行した後、処理を図７のステップＳ７０９に移行する。以上が図８の説明である。
【００８２】
以上説明したように、本発明の第２の実施形態によれば、複合現実において、物体同士の干渉をユーザに容易に確認させることができる仕組みを提供することができる。
【００８３】
例えば、他の３Ｄモデルと干渉中の３Ｄモデル（干渉モデル）と、ＨＭＤとの間にある他の３Ｄモデルを透明化することで、ユーザに干渉モデルを見え易くすることができる。
【００８４】
例えば、干渉点とＨＭＤとの間にある他の３Ｄモデルを透明化することで、ユーザに干渉モデルを見え易くすることができる。
【００８５】
なお、上述した第２の実施形態の説明においては、干渉点とＨＭＤとの間にある干渉モデル以外の他の３Ｄモデルを透明化するものとしたが、例えば各干渉モデルとＨＭＤとの間に位置する、干渉モデル以外の他の３Ｄモデルを透明化するようにしてもよい。具体的には、図８のステップＳ８０３〜Ｓ８０５の処理を全ての干渉モデルに対して実行する。ステップＳ８０３では、未処理の干渉モデルを干渉情報１０１０から１つ取得する。ステップＳ８０４において、ステップＳ８０３で取得した干渉モデルの位置６２４とＨＭＤ１０１の位置とを結ぶ直線と交わる（干渉モデルとＨＭＤの間にある）干渉モデル以外の他の３Ｄモデルを特定し、特定した３ＤモデルをステップＳ８０５で透明化する。全ての干渉モデルに対してステップＳ８０３〜Ｓ８０５の処理を適用することで、各干渉モデルとＨＭＤとの間に位置する、干渉モデル以外の他の３Ｄモデルを透明化することができる。
【００８６】
＜第３の実施形態＞
次に図９を参照して、本発明の第３の実施形態における、複合現実画像の生成処理の詳細について説明する。
【００８７】
第３の実施形態では、干渉中の３Ｄモデル（干渉モデル）が、他の３Ｄモデルの内側、又は背面にある場合に、当該干渉モデル以外の他の３Ｄモデルを透明化することで、ユーザに干渉モデルを見え易くする。
【００８８】
図９の処理は、第１の実施形態における図７のステップＳ７０６の処理の直前にＰＣ１００のＣＰＵ２０１が実行する。なお、第１の実施形態及び第２の実施形態と共通する処理については説明を省略する。
【００８９】
ＰＣ１００のＣＰＵ２０１は、干渉モデルの色を干渉中であることを示す色に変更する（ステップＳ９０１）。ステップＳ９０１の処理の詳細は図７のステップＳ７０６の処理と同じであるため、詳細な説明は省略する。ＰＣ１００のＣＰＵ２０１は、干渉モデルのうち、未処理のモデルを１つ取得し（ステップ９０２）、処理をステップＳ９０３に移行する。
【００９０】
ＰＣ１００のＣＰＵ２０１は、ステップＳ９０２で取得した干渉モデルが、当該干渉モデル以外の他の３Ｄモデルの内側に位置する、又は、ＨＭＤ１０１の位置姿勢から見て当該干渉モデル以外の他の３Ｄモデルの背面に位置し、一部又はその全部が当該他の３Ｄモデルによって隠れている干渉モデルかを判定する（ステップＳ９０３）。
【００９１】
例えば、位置６２４に、姿勢６２５の方向で配置された、当該干渉モデル自体よりも大きい（縦横高さの全ての寸法が干渉モデルよりも大きい）他の３Ｄモデルの中に、干渉モデルが包含される場合に、当該干渉モデルが他の３Ｄモデルの内側に位置すると判定する。
【００９２】
また、例えば、描画データを作成して現実画像上に重畳する場合に、干渉モデルの上に重なって描画される他の３Ｄモデルがある場合に、当該干渉モデルが、当該他の３Ｄモデルの背面にあると判定する。
【００９３】
ＰＣ１００のＣＰＵ２０１は、ステップＳ９０２で取得した干渉モデルが、当該干渉モデル以外の他の３Ｄモデルの内側に位置するモデルではない（最も外側のモデルである）、且つ、ＨＭＤ１０１の位置姿勢から見て当該干渉モデル以外の他の３Ｄモデルの背面に位置し、一部又はその全部が当該他の３Ｄモデルによって隠れている干渉モデルでもないと判定された場合に、処理をステップＳ９０６に移行する。
【００９４】
ＰＣ１００のＣＰＵ２０１は、ステップＳ９０２で取得した干渉モデルが、当該干渉モデル以外の他の３Ｄモデルの内側に位置する、又は、ＨＭＤ１０１の位置姿勢から見て当該干渉モデル以外の他の３Ｄモデルの背面に位置し、一部又はその全部が当該他の３Ｄモデルによって隠れている干渉モデルであると判定された場合に、処理をステップＳ９０４に移行する。
【００９５】
ステップＳ９０４でＰＣ１００のＣＰＵ２０１は、ステップＳ９０２で取得した干渉モデルの干渉点から任意の範囲内にある全ての他の３Ｄモデルを特定し（ステップＳ９０４）、特定した全ての他の３Ｄモデルを透明化する（ステップＳ９０５）。ステップＳ９０４とステップＳ９０５の処理の詳細は、それぞれ図７のステップＳ７０７、ステップＳ７０８の処理と同じであるため、詳細な説明は省略する。
【００９６】
ＰＣ１００のＣＰＵ２０１は、全ての干渉モデルに対して、ステップＳ９０３〜Ｓ９０５の処理を適用したか判定し（ステップＳ９０６）、未適用の干渉モデルが存在する場合は処理をステップＳ９０２に移行して、未処理の干渉モデルを１つ取得し、ステップＳ９０３以降の処理を適用する。全ての干渉モデルに対して、ステップＳ９０３〜Ｓ９０５の処理を適用済みの場合は処理を図７のステップＳ７０９に移行する。以上が図９の説明である。
【００９７】
図１４の１４００に、干渉モデルであるモデル１１１１とモデル１１１２がモデル１１０１に内包されている様子を示す（干渉点の周囲のモデルを透明化した様子を示す）。また、１４１０に、干渉モデルであるモデル１４１１と、モデル１１０１が最外面のモデルである様子を示す（干渉モデルを識別表示するに留めた表示の様子を示す）。なお、図１４の１４１０においては、干渉モデル１４１１と、干渉モデル１１０１のうち干渉モデル１４１１と接触した立体形状である１４１２のみを識別表示している。
【００９８】
以上説明したように、本発明の第３の実施形態によれば、複合現実において、物体同士の干渉をユーザに容易に確認させることができる仕組みを提供することができる。
【００９９】
例えば、干渉中の３Ｄモデル（干渉モデル）が、他の３Ｄモデルの内側、又は背面にある場合に、当該干渉モデル以外の他の３Ｄモデルを透明化することで、ユーザに干渉モデルを見え易くする。
【０１００】
干渉モデルが他の３Ｄモデルによって隠れていない場合、他の３Ｄモデルの表示形態を変更しなくてもユーザが干渉モデルを確認可能である場合がある。第３の実施形態においては、他の３Ｄモデルの不要な表示形態・状態の変更を行うことなく、干渉モデルが他の３Ｄモデルによって隠れて見え難くなっている場合に限り、当該干渉モデル以外の他の３Ｄモデルの表示形態・状態を変更することで、ユーザに干渉モデルを見え易くするものである。
【０１０１】
＜第４の実施形態＞
【０１０２】
本発明の第４の実施形態について説明する。第４の実施形態では、設計データ（設計物）である３Ｄモデルに設計変更があったことで、当該３Ｄモデルが他の３Ｄモデルと干渉するようになってしまった場合に、当該干渉するようになってしまった３Ｄモデル（干渉モデル）以外の他の３Ｄモデルを透明化し、干渉モデルをユーザに見え易くする。
【０１０３】
ＰＣ１００のＣＰＵ２０１は、複合現実感アプリケーション４０４の終了操作（複合現実画像の生成及び表示の終了を指示するユーザ操作）を受け付けた場合に、当該終了操作を受け付けた時点のモデル情報を外部メモリに記憶する。当該モデル情報とは、図６の６２０に示す情報に加え、図１０の１０８０に示す、最終更新日時１０８２、設計履歴１０８３を含む。本実施形態においてモデル名６２２の示すファイルはＣＡＤファイルであり、３ＤモデルはＣＡＤデータである。最終更新日時１０８２、設計履歴１０８３は、各ＣＡＤデータの中に記憶されている、ファイルの最終更新日時と、設計履歴の情報である。つまり、ＰＣ１００のＣＰＵ２０１は、複合現実画像の生成及び表示の終了を指示するユーザ操作を受け付けた場合に、モデル情報６２０の示す全てのＣＡＤデータを外部メモリの所定の領域にコピーして記憶する。
【０１０４】
ＰＣ１００のＣＰＵ２０１は、図５の処理を再開すべく、複合現実感アプリケーション４０４の起動操作を受け付けた場合に、外部メモリに記憶された、前回終了時のモデル情報（図６の６２０及び図１０の１０８０）をメモリ上に読み出して保持する。そして、ステップＳ７０１で、描画対象のモデルを特定するためにメモリ上に読み出した最新のモデル情報（図６の６２０及び図１０の１０９０）を取得し、各モデルについて、前回終了時のモデル情報の最終更新日時１０８２と、最新のモデル情報の最終更新日時１０９２が同じか判定する。
【０１０５】
ＰＣ１００のＣＰＵ２０１は、最終更新日時が異なると判定されたモデルを特定し、それらのモデルの設計履歴が異なるか（変更されているか）判定する。例えば図１０によれば、今回起動時のモデルに、前回終了時のモデルには無い「面押し０１」の設計履歴が追加されている。よって、設計履歴が異なる（更新されている）と判定する（設計変更判定手段に該当）。
【０１０６】
なお、設計履歴の数、識別情報が同じ場合であっても、設計履歴の中身のパラメータが更新されている場合がある。ここでは設計履歴の数、識別情報が異なるか否かを判定するに留めるが、各設計履歴のパラメータを参照して、パラメータの変更があった場合に前回終了時と今回起動時の設計履歴が異なると判定してもよい。
【０１０７】
ＰＣ１００のＣＰＵ２０１は、設計履歴の変更があったか否かの情報（図１０の設計変更情報１０００における設計変更１００２）をモデルＩＤ１００１ごとにメモリ上に記憶する。
【０１０８】
ＰＣ１００のＣＰＵ２０１は、図７のステップＳ７０３〜Ｓ７０５の処理を、ＨＭＤ１０１の画角内の３Ｄモデルのうち、設計変更１００２が「設計変更あり」を示す、前回から設計変更がされた３Ｄモデルに限定して、当該前回から設計変更がされた３Ｄモデルに対して実行する。
【０１０９】
設計変更がされた３Ｄモデルに限定して、干渉モデルの特定及び、当該干渉モデルを見え易くすべく、当該干渉モデル以外のモデルの表示形態・状態を変更することで、設計変更がされたことにより他のモデルと干渉するようになった可能性のあるモデルを、ユーザに容易に確認させることができる。以上が第４の実施形態の説明である。
【０１１０】
なお、上述した第４の実施形態の説明においては、３Ｄモデルの設計履歴のデータを比較することで設計変更の有無を判定したが、例えば前回複合現実感アプリケーションが終了した時点での３Ｄモデルの外形形状と、今回起動時の３Ｄモデルの外形形状とを比較して、形状が異なる場合に設計変更があったと判定するようにしてもよい。
【０１１１】
以上説明したように、本発明の第４の実施形態によれば、複合現実において、物体同士の干渉をユーザに容易に確認させることができる。
【０１１２】
例えば、設計変更のあった３Ｄモデルが干渉モデルになった場合に、当該干渉モデルを除く他の干渉モデルの表示形態・状態を変更することで、当該干渉モデルをユーザに見え易く表示することができる。
【０１１３】
以上説明したように、本発明の各実施形態によれば、複合現実において、物体同士の干渉をユーザに容易に確認させることができる。
【０１１４】
なお、上述した実施形態においては、干渉モデル以外のモデルを透明化することで、干渉モデルを確認し易く表示するものとしたが、例えば、干渉モデル以外の他のモデルを、干渉モデルが見え易くなる位置に移動させることで、当該干渉モデルを確認し易く表示するようにしてもよい。
【０１１５】
例えば、図１５に示すように、干渉点から任意の範囲内にあるモデル又は干渉点とＨＭＤ１０１の間にあるモデル１３０１を１５００に示す本来のモデル１３０１の位置から、１５１０に示す干渉点から所定距離離れた位置に移動（位置変更）する。具体的には、図７のステップＳ７０８において、干渉点を中心に球状の３Ｄモデルを配置し、当該球状の３Ｄモデルの法線ベクトルの示す方向に、モデル１３０１の位置を、予めＰＣ１００の外部メモリに記憶されている所定距離分離れた位置に変更する。そして、当該位置変更された３Ｄモデルの描画データを生成し、処理をステップＳ７０９に移行する。
【０１１６】
つまり、干渉モデル以外のモデルを移動させることで、当該干渉モデルを確認し易く表示することができる。
【０１１７】
また、上述した実施形態の説明においては、仮想オブジェクトは３Ｄモデルであるものとしたが、例えば奥行きを持たない平面（２Ｄ）のモデルも仮想オブジェクトとして扱ってもよい。
【０１１８】
また、上述した実施形態の説明においては、現実画像に３Ｄモデルを重畳した複合現実画像を生成し、ＨＭＤ１０１において表示させるものとしたが、例えば透過型ディスプレイを備えるＨＭＤである場合は、現実空間の状態はディスプレイの向こうに透けて見えるため必ずしもディスプレイ上に現実画像を表示する必要はない。よって、透過型ディスプレイを備えるＨＭＤを用いる場合は、例えば現実画像を透明度１００％（全く見えない状態）とし、３Ｄモデル（仮想オブジェクト）の描画データを透明化した現実画像上に重畳した画像を複合現実画像として生成し、透過型ディスプレイを備えるＨＭＤ１０１に送信するようにしてもよい。
【０１１９】
また、上述した第１の実施形態の説明においては、干渉点から任意の範囲内にある他のモデルを特定して透明化するものとしたが、例えば、ステップＳ７０７のタイミングで、各干渉点を中心位置として、干渉点ごとに、任意の範囲を示す球状の３Ｄモデル（図１０によれば半径２０ｃｍの球状の３Ｄモデル）を生成し、これら球状のモデルの内側には３Ｄモデルの描画データを描画・表示しないよう設定し、当該球状のモデルの前面のレイヤに干渉モデルを設定するようにしてもよい。こうすることで、干渉点を中心とした任意の範囲内の３Ｄモデルの画像は描画・表示されず、干渉モデルはユーザに視認可能に表示することのできる複合現実画像を生成できる。
【０１２０】
また、上述した各実施形態は自由に組み合わせて実行可能であるものとする。
【０１２１】
以上、本発明の各実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１２２】
例えば、図２に示すＰＣ１００の構成を全て備えるＨＭＤ１０１が、上述した実施形態においてＰＣ１００の実行するものとして説明した処理の全てを、実行するようにしてもよい。
【０１２３】
また、本発明におけるプログラムは、図５、図７〜図９に示すフローチャートの処理方法をコンピュータが実行可能なプログラムであり、本発明の記憶媒体は図５、図７〜図９の処理方法をコンピュータが実行可能なプログラムが記憶されている。なお、本発明におけるプログラムは図１に示す各装置の処理方法ごとのプログラムであってもよい。
【０１２４】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読み出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１２５】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記録媒体は本発明を構成することになる。
【０１２６】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＥＥＰＲＯＭ、シリコンディスク、ソリッドステートドライブ等を用いることができる。
【０１２７】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１２８】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１２９】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１３０】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１３１】
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０１３２】
１００  ＰＣ
１０１  ＨＭＤ
１０３  光マーカ
１０４  光学式センサ
１５０  ネットワーク
【図１】
2020187785.tif 000003
【図２】
2020187785.tif 000004
【図３】
2020187785.tif 000005
【図４】
2020187785.tif 000006
【図５】
2020187785.tif 000007
【図６】
2020187785.tif 000008
【図７】
2020187785.tif 000009
【図８】
2020187785.tif 000010
【図９】
2020187785.tif 000011
【図１０】
2020187785.tif 000012
【図１１】
2020187785.tif 000013
【図１２】
2020187785.tif 000014
【図１３】
2020187785.tif 000015
【図１４】
2020187785.tif 000016
【図１５】
2020187785.tif 000017