(57)【要約】【課題】  １つ以上のパーツにより構成されている仮想物体を現実空間映像に重畳させて観察者に提示する場合に、パーツに係る情報の表示で他の映像が隠される問題を最小限にすること。【解決手段】  観察者１００の視点の位置姿勢を取得し、スタイラス１２０の位置姿勢を取得し、ＨＭＤ１１０から視点の位置姿勢に応じて見える現実空間の映像を取得し、リスト画像をスタイラス１２０の位置近傍に配置し、リスト画像を配置後の仮想空間を、視点の位置姿勢に応じて見た場合の映像を生成し、生成した映像を現実空間の映像上に重畳させてＨＭＤ１１０の表示画面に出力する。仮想空間の映像の生成の際、現実空間の映像中の手の領域上にリスト画像が重畳される際に、手の領域、リスト画像の何れを手前に描画するのかを指定するための優先度データに基づいて仮想空間の映像を生成する。【選択図】    図１
2005339266.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のパーツから成る仮想物体により構成されている仮想空間の映像を生成し、現実空間の映像に重畳させて観察者に提示する画像処理方法であって、
前記観察者の視点の位置姿勢を取得する第１の取得工程と、
前記観察者の手に装着され、各種の操作を行うための指示具の位置姿勢を取得する第２の取得工程と、
前記視点の位置姿勢に応じて見える現実空間の映像を取得する現実空間映像取得工程と、
前記パーツに係る情報を一覧表示するためのリスト画像を、前記第２の取得工程で取得した位置近傍に配置する配置する配置工程と、
前記リスト画像を配置後の仮想空間を、前記視点の位置姿勢に応じて見た場合の映像を生成する仮想空間映像生成工程と、
前記現実空間映像取得工程で取得した前記現実空間の映像上に、前記仮想空間映像生成工程で生成した映像を重畳させた映像を生成する複合現実空間映像生成工程と、
前記複合現実空間映像生成工程で生成した映像を所定の表示装置に出力する出力工程とを備え、
前記仮想空間映像生成工程では、
前記現実空間映像取得工程で取得した現実空間の映像中の手の領域と前記リスト画像とが重なる場合には、当該手の領域、前記リスト画像の何れを手前に描画するのかを指定するための優先度データに基づいて前記仮想空間の映像を生成することを特徴とする画像処理方法。
【請求項２】
更に、前記手の領域、前記リスト画像の何れを手前に描画するのかを指定する指定工程を備え、
前記指定工程では、指定した内容を前記優先度データに設定することを特徴とする請求項に記載の画像処理方法。
【請求項３】
前記配置工程では、前記リスト画像において前記パーツに係る情報が記載された面が前記視点の位置姿勢から見えるように、前記リスト画像を配置することを特徴とする請求項１又は２に記載の画像処理方法。
【請求項４】
前記配置工程では、第１の取得工程で取得した位置と前記第２の取得工程で取得した位置とを結ぶ線分をｔ：（１−ｔ）に内分する位置に前記リスト画像を配置することを特徴とする請求項１乃至３の何れか１項に記載の画像処理方法。
【請求項５】
更に、前記リスト画像を半透明の画像とする指示に従って、前記リスト画像を半透明の画像に変換する変換工程を備えることを特徴とする請求項１乃至４の何れか１項に記載の画像処理方法。
【請求項６】
更に、
前記第２の取得工程で取得した位置姿勢の変化に基づいて、前記指示具が操作中であるか否かを判断する判断工程と、
前記判断工程で操作中であると判断した場合には、前記リスト画像の配置位置、前記リスト画像の透明度、前記優先度データの何れかを制御する制御工程と
を備えることを特徴とする請求項１乃至５の何れか１項に記載の画像処理方法。
【請求項７】
更に、前記視点の位置姿勢、及び前記仮想物体の位置に基づいて、前記視点の視線方向に前記仮想物体が存在するか否かを判断する判断工程と、
前記判断工程で存在すると判断した場合には、前記判断工程で存在しないと判断したときよりも、前記リスト画像の透明度を上げる透明度制御工程と
を備えることを特徴とする請求項１乃至６の何れか１項に記載の画像処理方法。
【請求項８】
更に、前記指示具の位置と仮想物体の位置との間の距離を計算する距離計算工程と、
前記仮想物体を構成する各パーツの階層構造の内、前記距離計算工程で計算した距離に応じた階層レベルまでの各パーツに係る情報を一覧表示するリスト画像を生成するリスト画像生成工程と
を備えることを特徴とする請求項１乃至７の何れか１項に記載の画像処理方法。
【請求項９】
前記リスト画像は、前記仮想物体を構成する各パーツの内、前記第２の取得工程で取得した前記指示具の位置に最も近い位置のパーツに係る情報を一覧表示するための画像であることを特徴とする請求項１乃至８の何れか１項に記載の画像処理方法。
【請求項１０】
１つ以上のパーツから成る仮想物体により構成されている仮想空間の映像を生成し、現実空間の映像に重畳させて観察者に提示する画像処理装置であって、
前記観察者の視点の位置姿勢を取得する第１の取得手段と、
前記観察者の手に装着され、各種の操作を行うための指示具の位置姿勢を取得する第２の取得手段と、
前記視点の位置姿勢に応じて見える現実空間の映像を取得する現実空間映像取得手段と、
前記パーツに係る情報を一覧表示するためのリスト画像を、前記第２の取得手段が取得した位置近傍に配置する配置する配置手段と、
前記リスト画像を配置後の仮想空間を、前記視点の位置姿勢に応じて見た場合の映像を生成する仮想空間映像生成手段と、
前記現実空間映像取得手段が取得した前記現実空間の映像上に、前記仮想空間映像生成手段が生成した映像を重畳させた映像を生成する複合現実空間映像生成手段と、
前記複合現実空間映像生成手段が生成した映像を所定の表示装置に出力する出力手段とを備え、
前記仮想空間映像生成手段は、
前記現実空間映像取得手段が取得した現実空間の映像中の手の領域と前記リスト画像とが重なる場合には、当該手の領域、前記リスト画像の何れを手前に描画するのかを指定するための優先度データに基づいて前記仮想空間の映像を生成することを特徴とする画像処理装置。
【請求項１１】
コンピュータに請求項１乃至９の何れか１項に記載の画像処理方法を実行させることを特徴とするプログラム。
【請求項１２】
請求項１０に記載のプログラムを格納することを特徴とする、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１つ以上のパーツから成る仮想物体により構成されている仮想空間の映像を生成する為の技術に関するものである。
【背景技術】
【０００２】
現実空間と仮想空間とが融合した周知の複合現実空間を観察者に提示するための複合現実感システムでは、複合現実空間を観察する視点の位置と視線方向を取得するため、米国Polhemus社製FASTRAK（商標）に代表されるような位置姿勢計測装置を使うのが一般的である（例えば特許文献１を参照）。
【０００３】
また撮像・表示装置としては、カメラ付きＨＭＤ（ヘッド・マウント・ディスプレイ）がよく用いられる。ＨＭＤの撮像系および、表示系を左右独立させ、両眼視差による立体視も実現されている。
【０００４】
上記のような複合現実感システムにおいて、本出願人は、ＣＡＤ等のデータを仮想空間における仮想物体として仮想空間中に配置し、これを上記視点の位置、視線方向から見た場合の映像を生成してＨＭＤが有する表示装置に表示することを提案している。現実空間映像の中に仮想のＣＡＤデータに応じた仮想画像を表示する事により、自由で容易な視点移動が可能になり、また現実空間映像と合成されている事により、仮想物体に対するスケール感など、より現実感のある表示を行うことができる。
【０００５】
一方、従来のＣＡＤシステムである、複合現実感システムを使用しないＣＡＤシステムにおいては、重要な機能の一つとしてアセンブリツリーを表示する機能がある。デザインの対象物中の各パーツに対してアセンブリツリーの中から選択して操作を行う。アセンブリツリーを使用する事によって、一体化された複数の部品に対する共通の操作を一度に行う事ができる。
【特許文献１】特開平１１−０８８９１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、複合現実感システムにおいては一般に現実空間映像を利用するという制限により、表示領域の制限が大きく、またステレオ型のＨＭＤ等を用いて立体視をおこなう場合に、ＨＭＤで表示できる視野角には制限があり、アセンブリツリーを表示する事で、他の映像が見えなくなってしまう、操作者の手が見えなくなってしまうといった問題があった。
【０００７】
本発明は以上の問題に鑑みてなされたものであり、１つ以上のパーツにより構成されている仮想物体を現実空間映像に重畳させて観察者に提示する場合に、パーツに係る情報の表示で他の映像が隠される問題を最小限にする為の技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の目的を達成する為に、例えば本発明の画像処理方法は以下の構成を備える。
【０００９】
すなわち、１つ以上のパーツから成る仮想物体により構成されている仮想空間の映像を生成し、現実空間の映像に重畳させて観察者に提示する画像処理方法であって、
前記観察者の視点の位置姿勢を取得する第１の取得工程と、
前記観察者の手に装着され、各種の操作を行うための指示具の位置姿勢を取得する第２の取得工程と、
前記視点の位置姿勢に応じて見える現実空間の映像を取得する現実空間映像取得工程と、
前記パーツに係る情報を一覧表示するためのリスト画像を、前記第２の取得工程で取得した位置近傍に配置する配置する配置工程と、
前記リスト画像を配置後の仮想空間を、前記視点の位置姿勢に応じて見た場合の映像を生成する仮想空間映像生成工程と、
前記現実空間映像取得工程で取得した前記現実空間の映像上に、前記仮想空間映像生成工程で生成した映像を重畳させた映像を生成する複合現実空間映像生成工程と、
前記複合現実空間映像生成工程で生成した映像を所定の表示装置に出力する出力工程とを備え、
前記仮想空間映像生成工程では、
前記現実空間映像取得工程で取得した現実空間の映像中の手の領域と前記リスト画像とが重なる場合には、当該手の領域、前記リスト画像の何れを手前に描画するのかを指定するための優先度データに基づいて前記仮想空間の映像を生成することを特徴とする。
【００１０】
本発明の目的を達成する為に、例えば本発明の画像処理装置は以下の構成を備える。
【００１１】
すなわち、１つ以上のパーツから成る仮想物体により構成されている仮想空間の映像を生成し、現実空間の映像に重畳させて観察者に提示する画像処理装置であって、
前記観察者の視点の位置姿勢を取得する第１の取得手段と、
前記観察者の手に装着され、各種の操作を行うための指示具の位置姿勢を取得する第２の取得手段と、
前記視点の位置姿勢に応じて見える現実空間の映像を取得する現実空間映像取得手段と、
前記パーツに係る情報を一覧表示するためのリスト画像を、前記第２の取得手段が取得した位置近傍に配置する配置する配置手段と、
前記リスト画像を配置後の仮想空間を、前記視点の位置姿勢に応じて見た場合の映像を生成する仮想空間映像生成手段と、
前記現実空間映像取得手段が取得した前記現実空間の映像上に、前記仮想空間映像生成手段が生成した映像を重畳させた映像を生成する複合現実空間映像生成手段と、
前記複合現実空間映像生成手段が生成した映像を所定の表示装置に出力する出力手段とを備え、
前記仮想空間映像生成手段は、
前記現実空間映像取得手段が取得した現実空間の映像中の手の領域と前記リスト画像とが重なる場合には、当該手の領域、前記リスト画像の何れを手前に描画するのかを指定するための優先度データに基づいて前記仮想空間の映像を生成することを特徴とする。
【発明の効果】
【００１２】
本発明の構成により、１つ以上のパーツにより構成されている仮想物体を現実空間映像に重畳させて観察者に提示する場合に、パーツに係る情報の表示で他の映像が隠される問題を最小限にすることができる。
【発明を実施するための最良の形態】
【００１３】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００１４】
［第１の実施形態］
本実施形態では、１つ以上のパーツから成る仮想物体により構成されている仮想空間の映像を、現実空間の映像上に重畳させて観察者に提示する場合に、このパーツに係る情報をも観察者に提示する。以下では、このような提示を行うシステムについて説明する。
【００１５】
図１は、本実施形態に係るシステムの外観図である。
【００１６】
同図において１００は観察者であり、頭部には後述するＨＭＤ（ヘッドマウントディスプレイ）１１０が装着されていると共に、手には後述のスタイラス（指示具）１２０が装着（ここで「装着」とは、「手に持つ」、「手に取り付ける」の何れの意味をも含む）されている。
【００１７】
１３０は磁界を発生する位置姿勢センサ発信器であり、スタイラス１２０に備わっている位置姿勢センサ受信器１２１、ＨＭＤ１１０に備わっている位置姿勢センサ受信器１１３は自身の位置姿勢に応じた磁界の強度を計測する。
【００１８】
１３１は位置姿勢センサ本体で、位置姿勢センサ発信器１３０を制御すると共に、位置姿勢センサ受信器１２１，１１３が計測した磁界の強度を示す信号を受け、それぞれのセンサ受信器のセンサ座標系（位置姿勢センサ発信器１３０の位置を原点とし、この原点で互いに直交する３軸をそれぞれｘ、ｙ、ｚ軸とする座標系）における位置姿勢を、受けた信号が示す磁界の強度に応じて求め、求めた位置姿勢を示すデータを後段のコンピュータ１４０に出力する。なお、これらセンサ系としては例えば米国Polhemus社製FASTRAK（登録商標）などが利用可能である。
【００１９】
１７０は仮想物体で、１つ以上のパーツから成るものである。仮想物体１７０は同図では複写機であるが、１つ以上のパーツから成るものであれば、これに限定されるものではない。また、この仮想物体１７０は同図では便宜上図示しているが、実際には観察者１００、もしくはコンピュータ１４０の表示画面を見ているオペレータにしか見えないものである。１８０は現実物体である。１５０はネットワーク回線で、コンピュータ１４０が外部機器とデータ通信を行う際にはこのネットワーク回線１５０を介して行うものとする。なお、このネットワーク回線１５０は同図では有線であるが、無線でも良いことはいうまでもない。
【００２０】
コンピュータ１４０は、位置姿勢センサ本体１３１からのデータに基づいて後述する処理により観察者１００の視点の位置姿勢を求める処理を行う。またコンピュータ１４０は、観察者１００の視点の位置姿勢に応じて見える仮想空間の映像（仮想物体の映像）を生成するが、この仮想空間の映像には、仮想物体を構成するパーツに係る情報を一覧表示するためのリスト画像が含まれている。このリスト画像については後述する。そしてコンピュータ１４０は生成した仮想空間の映像をＨＭＤ１１０から得られる現実空間の映像上に重畳させ、重畳後の映像をＨＭＤ１１０の表示画面上に出力する処理を行う。
【００２１】
図２は、本実施形態に係るＨＭＤ１１０の概略構成を示す図である。ＨＭＤ１１０は同図に示すように、ビデオカメラ１１１、ＬＣＤ１１２、位置姿勢センサ受信器１１３、光学プリズム１１４、１１５により構成されている。
【００２２】
ビデオカメラ１１１は光学プリズム１１５によって導かれた光を撮像するもので、結果として観察者の視点の位置姿勢に応じて見える現実空間が撮像される。このビデオカメラ１１１は本実施形態ではＨＭＤ１１０内に１つとするが、これに限定されるものではなく、観察者の右目、左目それぞれの位置姿勢に応じて見える現実空間の映像を撮像するために２つ設けても良い。撮像した映像信号はコンピュータ１４０に出力される。
【００２３】
位置姿勢センサ受信器１１３は上述の通りセンサ座標系における自身の位置姿勢を計測するためのものであり、実際には自身の位置姿勢に応じた磁界の強度が位置姿勢センサ受信器１１３によって計測され、位置姿勢センサ本体１３１がこの計測した強度に基づいて、この位置姿勢センサ受信器１１３のセンサ座標系における位置姿勢を求める。求めた位置姿勢を示すデータは後段のコンピュータ１４０に出力され、そこで後述する処理によりセンサ座標系における観察者１００の視点の位置姿勢を求めることができる。
【００２４】
ＬＣＤ１１２はコンピュータ１４０が生成し、出力した映像信号を受け、受けた映像信号に基づいた映像を表示するためのものであり、本実施形態ではビデオカメラ１１１が撮像した現実空間の映像に、コンピュータ１４０が生成した仮想空間の映像を重畳した映像（複合現実空間の映像）が表示される。この表示された映像は光学プリズム１１４によって観察者の瞳に導かれる。
【００２５】
図３は、スタイラス１２０の構成を示す図である。スタイラス１２０は同図に示すように、位置姿勢センサ受信器１２１、スタイラスボタン１２２を備える。位置姿勢センサ受信器１２１は上述の通りセンサ座標系における自身の位置姿勢を計測するためのものであり、実際には自身の位置姿勢に応じた磁界の強度が位置姿勢センサ受信器１２１によって計測され、位置姿勢センサ本体１３１がこの計測した強度に基づいて、この位置姿勢センサ受信器１２１のセンサ座標系における位置姿勢を求める。求めた位置姿勢を示すデータは後段のコンピュータ１４０に出力される。本実施形態では、位置姿勢センサ受信器１２１の位置姿勢をスタイラス１２０の位置姿勢として扱うが、これに限定するものではない。
【００２６】
スタイラスボタン１２２は観察者１００の操作により押下／非押下の状態を取ることができ、それぞれの状態を示す信号は後段のコンピュータ１４０に出力される。
【００２７】
図３１は、コンピュータ１４０の基本構成を示す図である。
【００２８】
３１０１はＣＰＵで、ＲＡＭ３１０２やＲＯＭ３１０３に格納されているプログラムやデータを用いて、コンピュータ１４０全体の制御を行うと共に、後述する各処理を実行する。
【００２９】
３１０２はＲＡＭで、外部記憶装置３１０６からロードされたプログラムやデータを一時的に記憶するためのエリアを備えると共に、ＣＰＵ３１０１が各種の処理を実行する際に必要なワークエリアをも備える。また、Ｉ／Ｆ３１０７を介して外部から受信したデータ（例えば位置姿勢センサ本体１３１から受信する、センサ座標系における位置姿勢センサ受信器自身の位置姿勢を示すデータ、ＨＭＤ１１０のビデオカメラ１１１から受信する、現実空間の映像データ）を一時的に記憶するためのエリアも備える。
【００３０】
３１０３はＲＯＭで、ブートプログラムやコンピュータ１４０の設定に係るデータを格納する。
【００３１】
３１０４は操作部で、キーボードやマウスなどにより構成されており、オペレータが各種の指示をＣＰＵ３１０１に指示するために使用されるものである。
【００３２】
３１０５は表示装置で、ＣＲＴや液晶画面などにより構成されており、ＨＭＤ１１０の表示画面（図２のＬＣＤ１１２）に表示すべき映像を表示したり、オペレータが各種の操作を行うためのＧＵＩなどを表示する。
【００３３】
３１０６は外部記憶装置で、ハードディスクドライブ装置などの大容量情報記憶装置であって、ここにＯＳ（オペレーティングシステム）や、ＣＰＵ３１０１に後述する各処理を実行させるためのプログラムやデータが保存されており、これらの一部もしくは全部はＣＰＵ３１０１の制御によりＲＡＭ３１０２にロードされ、ＣＰＵ３１０１による処理対象となる。なお、外部記憶装置３１０６に保存されているデータには、後述するリスト画像を生成するためのデータ群、仮想空間を構成する各仮想物体（図１では複写機の仮想物体）の画像を生成するためのデータが含まれている。また、仮想物体を構成する各パーツに係る情報は、各パーツの画像を生成するためのデータに関連付けられてい保持されているものとする。また、以下の説明で既知のデータ（情報）として登場するものもまたこの外部記憶装置３１０６に保存されており、使用時にＲＡＭ３１０２にロードされるものとする。
【００３４】
３１０７はＩ／Ｆで、コンピュータ１４０を外部と接続するためのもので、ここにＨＭＤ１１０や位置姿勢センサ本体１３１やネットワーク回線１５０を接続することができる。尚同図ではＩ／Ｆ３１０７については説明を簡単にするために簡略化しているが、実際には接続する機器に応じて複数のＩ／Ｆを設け、それぞれのＩ／Ｆに合致した対象を接続することが好ましい。
【００３５】
３１０８は上述の各部を繋ぐバスである。
【００３６】
次に、以上の構成を備えるコンピュータ１４０でもって、ＨＭＤ１１０の表示画面に複合現実空間の映像を表示するために行う処理について説明する。
【００３７】
ＨＭＤ１１０に備わっているビデオカメラ１１１は常にＨＭＤ１１０の位置姿勢に応じて見える現実空間の映像（動画像）を撮像しており、撮像した各フレームの映像は順次コンピュータ１４０に出力される。
【００３８】
また、位置姿勢センサ発信器１３０は、位置姿勢センサ本体１３１の制御により磁界を発生しており、ＨＭＤ１１０の位置姿勢センサ受信器１１３，位置姿勢センサ受信器１２１は自身の位置姿勢に応じた磁界の強度を計測し、計測した強度を示す信号は位置姿勢センサ本体１３１に出力される。位置姿勢センサ本体１３１は、受けた信号に基づき、それぞれのセンサ受信器のセンサ座標系における位置姿勢を求める。すなわち、センサ受信器のセンサ座標系における位置姿勢は、このセンサ受信器が計測した磁界の強度に応じて決まる。位置姿勢センサ本体１３１は、求めた位置姿勢を示すデータをコンピュータ１４０に出力する。
【００３９】
コンピュータ１４０には、Ｉ／Ｆ３１０７を介してＲＡＭ３１０２に、ＨＭＤ１１０からの現実空間の映像のデータ、位置姿勢センサ本体１３１からのそれぞれのセンサ受信器のセンサ座標系における位置姿勢を示すデータが入力される。
【００４０】
ＣＰＵ３１０１は、予め外部記憶装置３１０６からＲＡＭ３１０２にロードしておいたオフセットデータ（予め計測しておいた位置姿勢センサ受信器１１３とビデオカメラ１１１との位置姿勢関係を示すデータ）を用いて、センサ座標系における位置姿勢センサ受信器１１３の位置姿勢を示すデータを、センサ座標系におけるビデオカメラ１１１の位置姿勢を示すデータに変換する。以下、センサ座標系におけるビデオカメラ１１１の位置姿勢を、観察者１００の視点の位置姿勢として扱う。
【００４１】
一方で、ＣＰＵ３１０１は、仮想空間中に仮想物体１７０を配置する。配置位置、姿勢については既知のデータでもって予め決まっているものとする。この仮想物体１７０は上述の通り１つ以上のパーツにより構成されているので、それぞれのパーツを、予め決められた位置姿勢に配置することにより、仮想物体１７０を仮想空間中に配置することができる。このように、１つ以上のパーツにより構成されている仮想物体を仮想空間中に配置する処理については周知のものであるので、これに関する説明は省略する。
【００４２】
なお、仮想空間における座標系は「原点、３軸」をセンサ座標系と共有しているものとする。すなわち、センサ座標系と仮想空間の座標系とは一致している。従ってＣＰＵ３１０１は、観察者１００の視点の位置姿勢のデータと、外部記憶装置３１０６から予めＲＡＭ３１０２にロードされている仮想空間のデータとを用いて、観察者１００の視点の位置姿勢から見える仮想空間の映像を生成することができる。
【００４３】
この仮想空間のデータは、仮想空間を構成する各仮想物体に係るデータであって、更に仮想物体に係るデータとは、仮想物体を構成するパーツに係るデータであって、例えばパーツの形状データ、テクスチャデータ、位置、姿勢を示すデータ等である。また、リスト画像に係るデータも仮想空間のデータに含まれるが、このデータの使用については後述する。
【００４４】
なお、所定の位置姿勢から見える仮想空間の映像を生成する処理については周知のものであるので、これに関する説明は省略する。
【００４５】
そして生成した仮想空間の映像を先にＲＡＭ３１０２に格納された現実空間の映像上に重畳させ、重畳後の映像を複合現実空間の映像としてＩ／Ｆ３１０７を介してＨＭＤ１１０の表示画面上に出力する。
【００４６】
図５は、この複合現実空間の映像の一例を示す図である。同図の映像には、図１の複写機の仮想物体１７０、そして現実物体としてのスタイラス１２０が含まれている。本実施形態ではこの映像と共に、この複写機を構成する各パーツに係る情報を表示する。
【００４７】
例えば、操作者が仮想物体１７０を構成するパーツの内１つの位置にスタイラス１２０を移動させ、そこでスタイラスボタン１２２を押下すると、押下した旨を示す信号がＩ／Ｆ３１０７を介してＣＰＵ３１０１に通知されるので、ＣＰＵ３１０１は、このときＲＡＭ３１０２に記憶されている位置姿勢センサ受信器１２１のセンサ座標系における位置姿勢を示すデータを参照し、この位置に最も近いパーツを特定する。これは、上述の通り、仮想物体のデータには各パーツの位置のデータが含まれているので、これを参照し、スタイラス１２０の位置に最も近いパーツを特定する。なお、位置姿勢センサ受信器１２１の位置から所定距離以内にどのパーツも存在しない場合には、特定できなかった旨を後段の処理に通知する。
【００４８】
図６は、スタイラス１２０で、複写機の仮想物体１７０においてコンソール部分５００をスタイラス１２０でもって指示した場合に、このコンソール部分５００を構成する各パーツに係る情報をツリー形式（アセンブルツリー）でもって一覧表示している画像（リスト画像）の一例を示す図である。
【００４９】
スタイラス１２０に最も近いパーツを特定し、特定したパーツに関連付けられた、このパーツ係る情報を表示するのに、このパーツのみに係る情報を表示しても良いし、周知の通り、一般に仮想物体を構成する各パーツはパーツ間の位置姿勢関係に基づいて親子構造（階層構造）でもって管理されているので、特定したパーツの子に相当する全ての、もしくは一部のパーツに係る情報を表示するようにしても良い。当然このリスト画像は、情報が記載された面が観察者１００の視点の位置姿勢から見えるように仮想空間中に配置される。当然、位置姿勢センサ受信器１２１に最も近いパーツが特定できなかった場合（位置姿勢センサ受信器１２１の位置から所定距離以内にどのパーツも存在しない場合）には、このリスト画像は表示されない。
【００５０】
表示する情報としては、図６ではコンソール部分５００を構成する各パーツ（コンソール部分５００の子に相当するパーツであって、同図では液晶表示パネル、オンラインボタン、排出ボタン、上ボタン、下ボタン、右ボタン、左ボタン）のマテリアル名、テクスチャ名であるが、これに限定するものではなく、他の情報であっても良い。上述の通り、パーツに係る情報は、このパーツの画像を生成するために必要なデータに関連付けられて仮想空間のデータに含まれているので、スタイラス１２０でもって指示したパーツが特定できれば、仮想空間のデータ内のこのパーツに係る情報を参照することができるので、これにより、リスト画像に記載すべき情報を得ることができる。
【００５１】
このようなリスト画像がＨＭＤ１１０の表示画面に表示され、操作者はこのような情報を参照して、スタイラス１２０でもって指示した部分に関する情報を参照することができるのであるが、表示する情報が増えると、当然リスト画像の面積も大きくなるので、今度は仮想物体１７０や現実空間の映像が見にくくなるという問題が生じる。また立体視を行っている場合には、３次元的に他の仮想および、現実のオブジェクトと重なってしまうと、立体視に違和感を生じさせてしまう。
【００５２】
そこで本実施形態では、このリスト画像を、仮想空間においてスタイラス１２０の位置近傍、且つ、このスタイラス１２０よりも観察者１００の視点の位置に近い位置に配置する。
【００５３】
図７は、このようにしてリスト画像を配置して表示した場合の、複合現実空間映像の表示例を示す図である。同図では、リスト画像は、半透明の形態でもって表示されており、他の映像を見るのに邪魔にならないようにしている。半透明の形態でもって画像を表示する技術については画像を構成する画素のα値を制御する等、いろいろなものが考えられるが、これについては周知の技術であるので、これに関する説明は省略する。
【００５４】
また、このリスト画像の配置に関しては、例えば観察者１００の視点の位置とスタイラス１２０の位置とを結ぶ線分上をｔ：（１−ｔ）に内分する位置にリスト画像を、情報が記載された面が観察者１００の視点の位置姿勢から見えるような向きでもって配置する。例えば、リスト画像の姿勢については、観察者の視点の姿勢と同じにする。このように、観察者の位置姿勢と、スタイラスの位置とを用いて、リスト画像を配置する位置姿勢を求める。
【００５５】
なお、このｔについては、できるだけ１に近い値を設定し、スタイラス１２０の位置近傍にリスト画像を位置されるようにするのが好ましい。よって、ＣＰＵ３１０１は、リスト画像を仮想空間内に配置後、仮想物体、リスト画像を含む仮想空間を観察者１００の視点の位置姿勢に応じて見える映像を生成し、これを仮想空間の映像とする。
【００５６】
このようにリスト画像を表示することで、実用上、リスト画像（アセンブリツリー）が他の映像で隠されることはなく、また手にもったスタイラス１２０とほぼ同じ深度で表示されるため、立体視を行う場合も、極端な立体感の違いにより、両眼視差による立体視に違和感を生じる事も少ない。
【００５７】
図４は、ＣＰＵ３１０１が、本実施形態に係る複合現実空間の映像を生成してＨＭＤ１１０の表示画面に対して出力する処理（メインスレッド）のフローチャートである。なお、同図のフローチャートに従った処理をＣＰＵ３１０１に実行させるためのプログラムは外部記憶装置３１０６に保存されており、ＣＰＵ３１０１の制御によってＲＡＭ３１０２にロードされ、ＣＰＵ３１０１がこれを実行することになる。また以上の説明において既知のデータとして説明したものは事前に外部記憶装置３１０６からＲＡＭ３１０２にロードされているものとする。
【００５８】
先ずＣＰＵ３１０１は、位置姿勢スレッドを起動する（ステップＳ４０１）と共に、映像キャプチャスレッド起動する（ステップＳ４０２）。ここでスレッドとはコンピュータ１４０において並列処理される一連のプログラムである。そのため、動作モードなどの情報はメインスレッドとすべてのスレッドで共有される。
【００５９】
位置姿勢スレッドは、位置姿勢センサ受信器１１３、１２１から位置姿勢センサ本体１３１を介してＩ／Ｆ３１０７から受信する、センサ座標系における位置姿勢センサ受信器１１３、１２１の位置姿勢を取得するので（ステップＳ４１０）、ＣＰＵ３１０１は、位置姿勢センサ受信器１１３のセンサ座標系における位置姿勢を示すデータ、及び上記オフセットデータとを用いて、センサ座標系における観察者１００の視点の位置姿勢を求め、これをデータとしてＲＡＭ３１０２に記憶させる（ステップＳ４０３）。もし先にＲＡＭ３１０２に観察者１００の視点の位置姿勢を示すデータが記憶されていた場合には、これに上書きして更新する。
【００６０】
また、ＣＰＵ３１０１は、位置姿勢センサ受信器１２１のセンサ座標系における位置姿勢を示すデータをＲＡＭ３１０２に記憶させる（ステップＳ４０３）。もし先にＲＡＭ３１０２に位置姿勢センサ受信器１２１のセンサ座標系における位置姿勢を示すデータが記憶されていた場合には、これに上書きして更新する。
【００６１】
次に、仮想空間の更新を行う（ステップＳ４０４）のであるが、具体的には、例えば仮想物体が時間の経過と共にその位置や姿勢、色などを変化させる場合には、位置や姿勢、色のデータの更新を行う。本実施形態では本ステップでは、スタイラス１２０の位置（すなわち位置姿勢センサ受信器１２１のセンサ座標系における位置）に最も近いパーツを特定し、特定できた場合にのみ、特定したパーツに係る情報を、仮想空間のデータから特定する。
【００６２】
図５の例では、スタイラス１２０を複写機の仮想物体１７０のコンソール部分５００の位置に移動させ、そこでスタイラスボタン１２２を押下すると、ＣＰＵ３１０１はこのときの位置姿勢センサ受信器１２１の位置と、複写機の仮想物体１７０を構成する各パーツの位置とを比較し、位置姿勢センサ受信器１２１に最も近いパーツ、すなわち、コンソール部分５００を特定するので、ＣＰＵ３１０１は、このコンソール部分５００の子に相当する全てのパーツに係る情報を複写機の仮想物体１７０のデータから特定する。
【００６３】
よって、パーツに係る情報が得られると、この情報が記載された図６に示すようなリスト画像を生成するのであるが、この画像は、例えば以下のようなものが考えられる。
【００６４】
すなわち、表示すべき各情報毎に１枚のポリゴンを用意し、１枚のポリゴンに１つのパーツに係る情報を文字列画像（予め作成して外部記憶装置３１０６に保存しておく）で表したテクスチャを張り付け、このパーツに係る情報が記載された平面仮想物体を生成する。この平面仮想物体をそれぞれのパーツについて作成し、それぞれのパーツの平面仮想物体をつなげたものをリスト画像（これも当然平面仮想物体）として作成する。当然どのポリゴンにどのパーツに関する情報が記載されているのかは管理しているものとする。
【００６５】
このようにして生成したリスト画像を、位置姿勢センサ受信器１２１の位置と観察者１００の視点の位置とを結ぶ線分上をｔ：（１−ｔ）に内分する位置に、情報が記載された面が観察者１００の視点の位置姿勢から見えるように配置する。
【００６６】
よって、まとめると、ステップＳ４０４では、仮想空間中に仮想物体１７０を配置すると共に、リスト画像を配置する。
【００６７】
次に、映像キャプチャスレッドは、ＨＭＤ１１０のビデオカメラ１１１から得られる現実空間の映像を取得するので（ステップＳ４２０）、これを受け、この映像をＲＡＭ３１０２中の所定のエリアに記憶する（ステップＳ４０５）。
【００６８】
そして、ステップＳ４０４で更新した仮想空間、すなわち、ステップＳ４０４で配置された仮想物体１７０とリスト画像を観察者１００の視点の位置姿勢から見た場合の仮想空間の映像をステップＳ４０５で先にＲＡＭ３１０２中の所定のエリアに記憶された現実空間の映像上に重ねて描画する（ステップＳ４０６）。
【００６９】
これにより、この所定のエリアには、現実空間の映像上に仮想空間の映像が重畳された複合現実空間の映像が生成されることになる。よってＣＰＵ３１０１は得られた複合現実空間の映像をＩ／Ｆ３１０７を介してＨＭＤ１１０の表示画面に出力する（ステップＳ４０７）。なお、この複合現実空間の映像を表示装置３１０５に出力し、オペレータに見せるようにしても良い。
【００７０】
そして操作部３１０４を介して、本処理を終了する旨の指示が入力されたか否かをチェックし、入力されてないと判定した場合には処理をステップＳ４０３に戻し、入力されていれば、本処理を終了する。
【００７１】
図９は、以上の処理によりリスト画像を配置して表示した場合の、複合現実空間映像の表示例を示す図である。
【００７２】
以上の説明により、本実施形態によって、仮想物体を構成するパーツに係る情報を、その他の映像との奥行き感を損ねないように表示することができる。
【００７３】
尚本実施形態では、ＨＭＤ１１０はビデオシースルー型のものであったが、当然光学シースルー型のものを用いても良い。その場合には、ビデオカメラ１１１は必要はなく、それに伴って現実空間の映像を入力する処理も必要はない。従ってＣＰＵ３１０１は、図４のフローチャートにおいて、ステップＳ４０２，Ｓ４０５，Ｓ４２０，Ｓ４０７の処理を省いた処理を行う。
【００７４】
また本実施形態ではリスト画像をＨＭＤ１１０の表示画面上に表示するために、仮想空間において、位置姿勢センサ受信器１２１の位置と観察者１００の視点の位置とを結ぶ線分上を内分する位置にリスト画像を配置していた。すなわち、本実施形態ではリスト画像を３次元仮想物体として扱っていた。しかし、これに限定するものではなく、リスト画像を２次元画像として扱うようにしても良い。その場合、ＨＭＤ１１０の表示画面に画像を表示するための投影面上に位置姿勢センサ受信器１２１の位置を投影し、投影した位置（もしくはその近傍）にリスト画像を表示するようにしても良い。リスト画像の表示は、図４のフローチャートに従った処理において、リスト画像を除く仮想空間の映像を現実空間の映像上に重畳させた後、この複合現実空間の映像上に表示する。
【００７５】
またリスト画像を、ＨＭＤ１１０の表示画面内には３次元仮想物体として、コンピュータ１４０の表示装置３１０５の表示画面内には２次元画像として表示するようにしても良い。
【００７６】
なお、この投影には、仮想空間における物体を表示画面上に表示するために用いられる周知の投影変換行列を用いる。またこのときのリスト画像はウィンドウ内に、パーツに係る情報がテキスト文として列挙されたウィンドウであっても良い。
【００７７】
［第２の実施形態］
本実施形態は、第１の実施形態に加えて、リスト画像の表示位置の変更、表示のオン／オフを切り替える。本実施形態のメインスレッドは第１の実施形態と同じ（図４に示したフローチャートに従ったもの）であるが、ステップＳ４０４において、リスト画像の表示に係る処理が第１の実施形態とは異なる。
【００７８】
図１９は、ステップＳ４０４において行う、本実施形態に係るリスト画像の表示処理のフローチャートである。なお、図１９のフローチャートに従った処理は、仮想物体の映像を生成後、行うべき処理である。
【００７９】
先ず、リスト画像（アセンブリツリー）を表示するモードか否かを判定する（ステップＳ１９０１）。このモードは操作部３１０４により設定可能であり、設定したモードを示すデータはＲＡＭ３１０２に記憶されている。従ってステップＳ１９０１ではこのデータを参照し、表示するモードか非表示のモードであるのかを判定する。以下、各種のモードがあるが、これらについても同様で、それぞれのモードは操作部３１０４により設定可能であり、設定したモードを示すデータはＲＡＭ３１０２に記憶されている。従ってモードの判定時にはこのデータを参照し、そのモードであるか否か判定する。
【００８０】
そして非表示のモードである場合には処理をステップＳ１９０２に進め、リスト画像は非表示のまま本処理を完了する。非表示とは、実際にリスト画像を配置しない場合であっても良いし、仮想空間においてＨＭＤ１１０の表示画面内に入らない部分にリスト画像を移動させる場合であっても良い。
【００８１】
一方、表示モードである場合には処理をステップＳ１９１１に進め、リスト画像をＨＭＤ１１０の表示画面上で固定された位置に表示する為のモードである固定モードであるか否かを判断する（ステップＳ１９１１）。
【００８２】
固定モードである場合、すなわち、リスト画像をＨＭＤ１１０の表示画面上の固定された位置に表示する場合には処理をステップＳ１９１２に進め、ＨＭＤ１１０の表示画面上において予め決められた位置にリスト画像を表示する（ステップ１９１２）。
【００８３】
具体的には、観察者１００の視点の位置から、視線ベクトル（観察者１００の視点の位置から視点の姿勢で定義される方向に向かう無限長のベクトル）の方向に所定距離だけ離間した位置近傍にリスト画像を配置する。
【００８４】
図１１は、観察者１００の視点の位置姿勢を動かした場合に、ＨＭＤ１１０の表示画面上に表示される映像の例を示す図である。同図において１００１は表示画面を示す。同図のように、仮想物体１７０以外のものを見ようと観察者１００の視点の位置姿勢が移動しても、ステップＳ１９１２による処理によれば、リスト画像７０１の表示位置は変更しない。
【００８５】
一方、固定モードではないと判定された場合には、処理をステップＳ１９２１に進め、ＨＭＤ１１０の表示画面上において仮想物体の表示領域を避けてリスト画像を表示するモードであるか否かを判断する（ステップＳ１９２１）。ＨＭＤ１１０の表示画面上において仮想物体の表示領域を避けてリスト画像を表示するモードでは無い場合には処理をステップＳ１９２２に進め、第１の実施形態と同様に、スタイラス１２０の位置近傍にリスト画像を配置する処理を行う（ステップＳ１９２１）。
【００８６】
一方、ＨＭＤ１１０の表示画面上において仮想物体の表示領域を避けてリスト画像を表示するモードである場合には、処理をステップＳ１９２３に進め、ＨＭＤ１１０の表示画面上において仮想物体の表示領域を特定する（ステップＳ１９２３）。そしてＨＭＤ１１０の表示画面上においてステップＳ１９２３で特定した領域以外の領域を特定する（ステップＳ１９２４）。例えば図１０に示すような表示画面の場合、右側の領域が仮想物体が表示されていない領域となる。
【００８７】
そしてステップＳ１９２４で特定した領域、すなわち、ＨＭＤ１１０の表示画面上において仮想物体の表示領域以外の領域において、適当な位置（例えば、リスト画像と仮想物体の表示領域とのオーバーラップ領域が最も小さくなるような位置）にリスト画像が表示されるように、リスト画像を仮想空間内に配置する（ステップＳ１９２５）。例えば、仮想空間中でＨＭＤ１１０の表示画面内の上記適当な位置に投影される位置を、この適当な位置に逆投影変換を行うことで求め、求めた位置（もしくはその近傍）にリスト画像を配置する。この結果、図１２に示すように、リスト画像を仮想物体１７０の表示領域と重なることなく配置することができる。
【００８８】
ステップＳ１９２３〜Ｓ１９２５における具体的な処理の一例としては、例えば仮想物体を表示画面に投影するためのマトリクス（表示の際に用いられている周知のマトリクス）を用いて、表示画面上のどの範囲内にこの仮想物体が描画されるのかを計算し、計算した範囲の外側で直近の視線に垂直な平面上での位置をリスト画像の表示位置として計算する。またその他の例としては、視点位置（ＨＭＤの位置）から仮想物体の中心位置への方向と、仮想物体の大きさに応じて決まるこの中心への方向からどのくらいの角度ずれても仮想物体と表示が重なってしまうかを計算し、その角度の外側で直近の位置をリスト画像の表示位置として計算する。
【００８９】
このリスト画像の表示において、立体視を行っている場合には表示深度によっては立体的に知覚が難しくなる事が考えられる。仮想物体と重なりが無い領域にリスト画像を表示する場合には、仮想物体が表示されているのと同じ範囲内の深度にリスト画像を位置させることでより立体的違和感の少ない見やすい表示を実現できる。
【００９０】
図１９に戻って、次に、リスト画像を、ＨＭＤ１１０の表示画面内に納めるモードであるか否かを、判断する（ステップＳ１９３１）。納めるモードである場合には処理をステップＳ１９３２に進め、ステップＳ１９２５で決定した配置位置にリスト画像を配置した場合に、リスト画像がＨＭＤ１１０の表示画面からはみ出ているか否かをチェックする（ステップＳ１９３２）。このチェックは例えば、リスト画像の４隅の仮想空間における座標値をＨＭＤ１１０の表示画面内に投影した場合に、この表示画面内に収まっているのか否かをチェックすることで成されるものである。
【００９１】
そして収まっていない場合には処理をステップＳ１９３３に進め、リスト画像の４隅の座標値が、ＨＭＤ１１０の表示画面内に収まるように、仮想空間内でリスト画像の配置位置を移動させる（ステップＳ１９３３）。
【００９２】
以上説明した機能により、スタイラスの操作やシステムの操作に不慣れな場合でも、確実にアセンブリツリーの表示を行う事が可能である。
【００９３】
［第３の実施形態］
本実施形態は、第１の実施形態において表示されるリスト画像を半透明で表示する機能を付加したものである。
【００９４】
図８は、背景を完全な透明にし、文字を不透明にしたリスト画像８０１の表示例を示す図である。背景によっては文字が読みにくい可能性もあるが、同図に示したようなリスト画像により、リスト画像以外の映像は図７に示した例より見やすくなる。
【００９５】
図２０は、ステップＳ４０４において行う、本実施形態に係るリスト画像の表示処理のフローチャートである。なお、本実施形態では、リスト画像は、第１の実施形態のように３次元仮想物体とするが、第２の実施形態のように２次元画像としても良い。
【００９６】
まず、観察者１００の視線方向に仮想物体が存在する場合にはリスト画像を半透明表示するモードが設定されているか否かを判定する（ステップＳ２０１０）。このモードは操作部３１０４により設定可能であり、設定したモードを示すデータはＲＡＭ３１０２に記憶されている。従ってステップＳ２０１０ではこのデータを参照し、半透明表示するモードであるのか、半透明表示しないモードであるのかを判定する。以下、各種のモードがあるが、これらについても同様で、それぞれのモードは操作部３１０４により設定可能であり、設定したモードを示すデータはＲＡＭ３１０２に記憶されている。従ってモードの判定時にはこのデータを参照し、そのモードであるか否か判定する。
【００９７】
半透明表示しないモードである場合には処理をステップＳ２０２２に進め、ポリゴンのα値を制御して透明色でないポリゴンを生成し、このポリゴンに、パーツに係る情報が記載されたテクスチャを張り付ける処理を各パーツについて行う（ステップＳ２０２２）。すなわち、第１の実施形態と同様にしてリスト画像を生成する。これは、リスト画像が２次元画像であっても同様で、第１の実施形態と同様にして、リスト画像を生成する。
【００９８】
一方、半透明表示を行う場合には処理をステップＳ２０１２に進め、観察者１００の視点の位置から仮想物体の位置（例えばこの仮想物体を構成する全てのパーツの位置の重心位置）への線分Ａと、視線ベクトルＢ（視点の位置から姿勢で定義される方向に向かう無限長のベクトル）とが成す角度を求める（ステップＳ２０１２）。そしてこの求めた角度が所定値以下である場合（０に近い値が好ましい）、観察者１００の視線方向に仮想物体が存在すると判定できるので、処理をステップＳ２０２１に進め、ポリゴンのα値を制御して透明色のポリゴンを生成し、このポリゴンに、パーツに係る情報が記載されたテクスチャを張り付ける処理を各パーツについて行うことでリスト画像を生成する（ステップＳ２０２１）。このテクスチャは、文字部分以外は透明（文字部分以外を構成する画素のα値を透明に設定する）として予め作成されているものとする。なお、このポリゴンの透明度は、少なくとも、ステップＳ２０２２におけるポリゴンよりも透明度の高いものとする。
【００９９】
これはリスト画像が２次元画像であっても同様で、文字部位外の部分の画素のα値を制御して、文字部分以外を構成する画素を透明に設定する。
【０１００】
これにより、観察者の視線方向に仮想物体が存在する、換言すれば、観察者が仮想物体を注視しているであろうと想定される場合には、リスト画像の表示によっては仮想物体の注視の妨げになる。従って本実施形態のように、観察者の視線方向に仮想物体が存在すると判定した場合にはリスト画像をより透明度を上げて表示することで、仮想物体の注視の妨げになることなく、リスト画像でもって通知すべき情報を観察者に対して見せることができる。
【０１０１】
一方、ステップＳ２０１２で求めた角度が所定値以上である場合には処理をステップＳ２０２２に進める。
【０１０２】
尚、ステップＳ２０１２，Ｓ２０２０における処理は、視線方向に仮想物体が存在するか否かをチェックする目的が達成されればその手法は特に限定するものではない。すなわち、本実施形態では、その一手法として、観察者１００の視点の位置から仮想物体の位置（例えばこの仮想物体を構成する全てのパーツの位置の重心位置）への線分Ａと、上記視線ベクトルＢとが成す角度を求め、その角度が所定値以下である場合には、視線方向に仮想物体が存在すると判定したが、これ以外にも例えば、仮想物体がポリゴンにより構成されている場合には、視線ベクトルと各ポリゴンとの交差判定を行い、交点が存在した場合には、視線方向に仮想物体が存在すると判定するような手法の考えられ、その手法は特に限定するものではない。
【０１０３】
そして以上の処理により生成されたリスト画像を、ＨＭＤ１１０の表示画面や表示装置３１０５に表示する。
【０１０４】
［第４の実施形態］
本実施形態は、上記実施形態におけるリスト画像に表示しているアセンブリツリーに対する操作や表示範囲を制御する。アセンブリツリーに対する操作は、観察者１００が手に装着しているスタイラス１２０を用いて行う。従って、リスト画像はスタイラス１２０の位置に追従せず、固定された位置に表示されていることが必須となる。
【０１０５】
図２１は、リスト画像に表示しているアセンブリツリーに対する操作を行った場合に、ＣＰＵ３１０１が行うべき処理のフローチャートである。なお、同図のフローチャートに従った処理は、上記ステップＳ４０４における全ての処理が完了した後に行われる。
【０１０６】
コンピュータ１４０のオペレータは、表示装置３１０５の表示画面上に表示されたリスト画像を見て、観察者１００が表示された各パーツに係る情報に対して何らかの操作を行う場合には、この操作を可能にするためのモードに移行するために、操作部３１０４に含まれるマウスやキーボードでもって所定の動作（例えば所定のボタンを押下もしくはクリック）を行う。
【０１０７】
このような操作入力が行われた場合には、操作による指示がＣＰＵ３１０１に通知されるので、ＣＰＵ３１０１は常に、この指示を受け付けている（ステップＳ２１０１）。そしてこの操作指示が入力された場合、すなわち、ＣＰＵ３１０１がこの指示を検知した場合（ステップＳ２１１１）、処理をステップＳ２１１２に進め、上記操作を可能にする為のモードを設定する（ステップＳ２１１２）。実際には、このモードを示すデータがＲＡＭ３１０２に記憶されているので、ＣＰＵ３１０１は上記指示を検知すると、このデータに対して「操作可能とするモード」を示す値をセットすることで、上記操作を可能にする為のモードを設定することができる。
【０１０８】
ＣＰＵ３１０１は、このモードを示すデータを参照し、上記操作を可能にするモード（アセンブリツリー操作モード）であるか否かをチェックし（ステップＳ２１２１）、アセンブリツリー操作モードである場合には、処理をステップＳ２１２２に進め、後述する処理を行う。一方、上記操作を可能にしないモード（通常モード）である場合には処理をステップＳ２１２３に進め、以降は第１の実施形態と同様の処理を行う。すなわち、通常モードである場合には、本実施形態は第１の実施形態と同じである。
【０１０９】
このようにすることで、アセンブリツリーが画面に表示されてい無い場合に、誤ってアセンブリツリーへの操作が、意図せずに行われてしまう事を防ぐ事ができる。
【０１１０】
次に、ステップＳ２１２２における処理の詳細について説明する。
【０１１１】
図２２は、ステップＳ２１２２における処理の詳細を示すフローチャートである。
【０１１２】
リスト画像でもって示される各パーツに係る情報、所謂アセンブリツリーに対する操作については、一般のＣＡＤシステムでも行われているように、様々な操作が考えられる。以下では、その様々な操作の内のいくつかについて説明するが、リスト画像でもって示す情報によっては、その操作方法はこれ以外にもあるということはいうまでもない。
【０１１３】
先ず、リスト画像がＨＭＤ１１０の表示画面内に収まっていない場合に、アセンブリツリーに対する操作を禁止するモードであるか否かを判断する（ステップＳ２２４１）。
このモードは操作部３１０４により設定可能であり、設定したモードを示すデータはＲＡＭ３１０２に記憶されている。従ってステップＳ２２４１ではこのデータを参照し、禁止モードか否かを判定する。
【０１１４】
禁止するモードである場合には処理をステップＳ２２４２に進め、リスト画像がＨＭＤ１１０の表示画面内に納まっているのか否かを判断する（ステップＳ２２４２）。この判断は例えば、リスト画像の４隅の仮想空間における座標値をＨＭＤ１１０の表示画面内に投影した場合に、この表示画面内に収まっているのか否かをチェックすることで成されるものである。この投影については、仮想空間における物体を表示画面上に表示するために用いられる周知の投影変換行列を用いる。
【０１１５】
そして収まっていない（リスト画像がＨＭＤ１１０の表示画面からはみ出ている）と判断した場合には、処理をステップＳ２２４３に進め、アセンブリツリーに対する操作を禁止する（ステップＳ２２４３）。すなわち、リスト画像に示した各情報に対する操作を禁止する。従ってＣＰＵ３１０１は、本ステップにおいて、スタイラス１２０からのアセンブリツリーに対する操作を受け付けないようになる。
【０１１６】
一方、ステップＳ２２４１で禁止モードではないと判定した場合、もしくはステップＳ２２４２でリスト画像がＨＭＤ１１０の表示画面内からはみ出ていないと判断したときには処理をステップＳ２２４４に進め、ＣＰＵ３１０１は、アセンブリツリーに対する操作を受け付ける（ステップＳ２２４４）。
【０１１７】
先にスタイラス１２０のセンサ座標系における位置姿勢を示すデータはＲＡＭ３１０２に格納されているので、これを上記投影面に投影変換し、ＨＭＤ１１０の表示画面上におけるスタイラス１２０の位置を求め（ステップＳ２２１１）、更に、リスト画像を構成する各ポリゴンの４隅のＨＭＤ１１０の表示画面内における位置を同様に投影処理により求め、画面上におけるスタイラス１２０の位置がどのポリゴン内に位置するのか、換言すれば、どのパーツに係る情報を指しているのかを特定する（ステップＳ２２１２）。
【０１１８】
次に、ＣＰＵ３１０１は、Ｉ／Ｆ３１０７を介してスタイラスボタン１２２が押下された旨の信号が入力されたか否かをチェックし（ステップＳ２２１３）、入力されていると判断した場合には処理をステップＳ２２１４に進め、スタイラス１２０の位置が示すポリゴン（上記平面仮想物体）に記載された情報に対応するパーツの仮想物体を点滅表示する（ステップＳ２２１４）。すなわち、上述の通りどの平面仮想物体にどのパーツに係る情報が記載されているのかは管理されており、且つ各パーツに係る情報は、パーツの画像を生成するために必要なデータに関連付けられているので、スタイラス１２０の位置がどの平面仮想物体を表示画面上で特定でいれば、これらの関連づけを参照すれば、特定した平面仮想物体に記載された情報に対応するパーツの仮想物体が特定されるので、これを点滅表示させることができる。なお、点滅表示に限定するものではなく、スタイラス１２０の位置でもって指示しているパーツの仮想物体が視覚的に分かるようにする目的であれば、どのような表示を行っても良い。
【０１１９】
図２７は、リスト画像２７０１においてスタイラス１２０の位置でもって「上用紙カセット」の文字が記載された平面仮想物体２７０１を指示した場合に、複写機の仮想物体１７０において対応するパーツ２７１２が点滅表示されている表示例を示す図である。
【０１２０】
リスト画像には「プリンタＸ」なる装置を構成する各パーツ名が一覧表示されており、そのうち平面仮想物体２７１１の表示領域内にスタイラス１２０が位置し、且つスタイラスボタン１２２が押下されているので、対応するパーツ２７１２（「上用紙カセット」）の仮想物体を点滅表示する。
【０１２１】
次に、仮想空間において、スタイラス１２０の位置と仮想物体１７０との距離に基づいて、仮想物体１７０を構成する各パーツの親子構造の内、どの階層レベルまでをリスト画像でもって提示するのかを決定する処理について説明する。
【０１２２】
図２４は、複写機の仮想物体１７０にスタイラス１２０を近づけた場合に表示されるリスト画像の表示例を示す図で、この場合、仮想物体１７０（プリンタＸ）を構成する各パーツの親子構造のうち、最も最上位の階層のパーツの名前のみがリスト画像２４０１内に表示されており、同図では、「コンソールモジュール」、「右サイドパネル」、「上用紙カセット」、「下用紙カセット」、「排紙トレー」が表示されている。
【０１２３】
図２５は、スタイラス１２０の位置を更にコンソールモジュール５００に近づけた場合のリスト画像の表示例を示す図で、リスト画像２５０１には、コンソールモジュール５００の子に相当するパーツ（コンソールモジュール５００が属する階層の１つ下の階層に属するパーツ）の名前のみが表示されており、同図では、「液晶表示パネル」、「オンラインボタン」、「上ボタン」、「下ボタン」、「右ボタン」、「左ボタン」が表示されている。同図では、コンソールモジュール５００を構成する各パーツの名前しか表示していないが、図２４に示した階層を表示した上で、更に、コンソールモジュール５００を構成する各パーツの名前を表示するようにしても良い。
【０１２４】
図２３は、スタイラス１２０の位置と仮想物体との距離に基づいて、仮想物体を構成する各パーツの親子構造の内、どの階層レベルまでをリスト画像でもって提示するのかを決定する処理のフローチャートである。なお、同図のフローチャートに従った処理は、ステップＳ４０４において、リスト画像を生成する際に行われる処理である。
【０１２５】
先ず、リスト画像がＨＭＤ１１０の表示画面内に収まっていない場合に、アセンブリツリーに対する操作を禁止するモードであるか否かを判断する（ステップＳ２２４１）。
このモードは操作部３１０４により設定可能であり、設定したモードを示すデータはＲＡＭ３１０２に記憶されている。従ってステップＳ２２４１ではこのデータを参照し、禁止モードか否かを判定する。
【０１２６】
禁止するモードである場合には処理をステップＳ２２４２に進め、リスト画像がＨＭＤ１１０の表示画面内に納まっているのか否かを判断する（ステップＳ２２４２）。この判断は例えば、リスト画像の４隅の仮想空間における座標値をＨＭＤ１１０の表示画面内に投影した場合に、この表示画面内に収まっているのか否かをチェックすることで成されるものである。この投影については、仮想空間における物体を表示画面上に表示するために用いられる周知の投影変換行列を用いる。
【０１２７】
そして収まっていない（リスト画像がＨＭＤ１１０の表示画面からはみ出ている）と判断した場合には、処理をステップＳ２２４３に進め、アセンブリツリーに対する操作を禁止する（ステップＳ２２４３）。すなわち、リスト画像に示した各情報に対する操作を禁止する。従ってＣＰＵ３１０１は、本ステップにおいて、スタイラス１２０からのアセンブリツリーに対する操作を受け付けないようになる。
【０１２８】
一方、ステップＳ２２４１で禁止モードではないと判定した場合、もしくはステップＳ２２４２でリスト画像がＨＭＤ１１０の表示画面内からはみ出ていないと判断したときには処理をステップＳ２２４４に進め、ＣＰＵ３１０１は、アセンブリツリーに対する操作を受け付ける（ステップＳ２２４４）。
【０１２９】
そして次に、スタイラス１２０の位置（すなわち位置姿勢センサ受信器１２１のセンサ座標系における位置）に最も近いパーツを特定する（ステップＳ２３０１）。これは、例えば、仮想物体を構成する各パーツの親子構造の内、最も最上位の階層内のパーツ、すなわち、最も大まかなパーツ（仮想物体１７０の場合、図２４に示すリスト画像に表示された各パーツ）のうち、スタイラス１２０の位置に最も近いものを特定する。この「最も大まかなパーツ」（親パーツ）には子に相当する１つ以上のパーツ（子パーツ）が存在するので、親パーツの位置としてはこの親パーツを構成する各子パーツの位置の重心位置を用い、この重心位置とスタイラス１２０の位置との距離を求める処理を、全ての親パーツについて行うことで、スタイラス１２０の位置に最も近い親パーツを特定することができる。
【０１３０】
そして特定したパーツとスタイラス１２０との距離を参照し（ステップＳ２３０２）、参照した距離に応じて、表示するのはどの階層までかを決定する（ステップＳ２３０３）。
【０１３１】
図１３は、仮想物体Ａを構成する各パーツのアセンブリツリーを示す図である。このようなアセンブリツリーは、仮想物体Ａを表示するためのデータとして外部記憶装置３１０６に保存されている。ここで、仮想物体Ａは、大まかなパーツとしてはパーツＡ１，パーツＡ２，パーツＡ３により構成されている。このパーツＡ１，パーツＡ２、パーツＡ３が属する階層を階層１と呼称する。
【０１３２】
更にパーツＡ２は、パーツＡ２１，パーツＡ２２により構成されており、パーツＡ３はパーツＡ３１，パーツＡ３２，パーツＡ３３により構成されている。これらパーツＡ２１，パーツＡ２２、パーツＡ３１，パーツＡ３２，パーツＡ３３が属する階層を階層２と呼称する。
【０１３３】
また、パーツＡ２２は更にパーツＡ２２１，パーツＡ２２２２により構成されている。パーツＡ２２１，パーツＡ２２２２が属する階層を階層３と呼称する。
【０１３４】
このように、一般には仮想物体は各パーツの親子関係から、階層構造でもって管理されており、且つ、そのパーツの階層構造における位置づけを、そのパーツがどの階層に属するのかでもって表すことができる。
【０１３５】
従ってステップＳ２３０３では、ステップＳ２３０１で特定したパーツとスタイラス１２０との距離に応じて、階層０から階層１までに属するパーツに係る情報を表示するのか、階層０から階層２までに属するパーツに係る情報を表示するのか、それとも階層０から階層３までに属するパーツに係る情報を表示するのかを決定する。例えばこの距離が５０センチ以上である場合には階層０，階層１のみに属するパーツに係る情報を表示し、この距離が５０センチ以下、２５センチ以上である場合には階層０から階層２までに属するパーツに係る情報を表示し、この距離が２５センチ以下である場合には階層０から階層３までに属するパーツに係る情報を表示する、というように、距離が小さいほど、より下位の階層までに属するパーツに係る情報を表示する。
【０１３６】
よって、アセンブリツリーでは、どの階層までに属するパーツに係る情報を表示対象とするのかを決定するということは、どの階層間のノードを選択するのかに透過である。
【０１３７】
そしてステップＳ２３０３で表示対象の階層が決定するので、次に、表示対象の階層に属するパーツに係る情報を用いて、上述の通り、リスト画像を生成する（ステップＳ２３０４）。
【０１３８】
図２６はジェスチャでもって指示した部分のリスト画像の表示例を示す図である。スタイラス１２０で選択したいノードに対応する仮想のパーツ部分を囲むように動かすと、詳細表示を行うノードが選択される。この例では上用紙カセットが選択されている。その結果アセンブリツリー２６０１のような表示が行われている。
【０１３９】
上記の処理の流れを図２８のフローチャートにもとづいて説明する。図２８は、ジェスチャでもって指示した部分のリスト画像を表示するための処理のフローチャートである。実際にはこの処理は上記ステップＳ４０４において行われるものである。
【０１４０】
先ず、リスト画像がＨＭＤ１１０の表示画面内に収まっていない場合に、アセンブリツリーに対する操作を禁止するモードであるか否かを判断する（ステップＳ２２４１）。
このモードは操作部３１０４により設定可能であり、設定したモードを示すデータはＲＡＭ３１０２に記憶されている。従ってステップＳ２２４１ではこのデータを参照し、禁止モードか否かを判定する。
【０１４１】
禁止するモードである場合には処理をステップＳ２２４２に進め、リスト画像がＨＭＤ１１０の表示画面内に納まっているのか否かを判断する（ステップＳ２２４２）。この判断は例えば、リスト画像の４隅の仮想空間における座標値をＨＭＤ１１０の表示画面内に投影した場合に、この表示画面内に収まっているのか否かをチェックすることで成されるものである。この投影については、仮想空間における物体を表示画面上に表示するために用いられる周知の投影変換行列を用いる。
【０１４２】
そして収まっていない（リスト画像がＨＭＤ１１０の表示画面からはみ出ている）と判断した場合には、処理をステップＳ２２４３に進め、アセンブリツリーに対する操作を禁止する（ステップＳ２２４３）。すなわち、リスト画像に示した各情報に対する操作を禁止する。従ってＣＰＵ３１０１は、本ステップにおいて、スタイラス１２０からのアセンブリツリーに対する操作を受け付けないようになる。
【０１４３】
一方、ステップＳ２２４１で禁止モードではないと判定した場合、もしくはステップＳ２２４２でリスト画像がＨＭＤ１１０の表示画面内からはみ出ていないと判断したときには処理をステップＳ２２４４に進め、ＣＰＵ３１０１は、アセンブリツリーに対する操作を受け付ける（ステップＳ２２４４）。
【０１４４】
次にジェスチャー入力の有り無しを判断する（ステップＳ２８０１）。ジェスチャー入力が無い場合には、詳細表示をするノードの選択は終了となる。ジェスチャの入力の有無、認識については周知の技術であるが、本実施形態の場合には例えば、スタイラスの動きを常に監視して、軌跡を円、三角、四角などとパターンマッチングをし、一致した場合にはジェスチャー入力ありと認識する。また左右の往復、上下の往復などであれば、一定時間内に、一定の距離以上の、逆方向への一定回数以上の動きを認識する事で、ジェスチャの入力の有無を検知することができる。
【０１４５】
ジェスチャー入力がある場合には、詳細表示ノードの選択を行うジェスチャーかを判断する（ステップＳ２８０２）。本実施形態では、円を描くことで、詳細表示ノードの選択を行う（ステップＳ２８０３）。
【０１４６】
詳細表示ノードを選択するジェスチャーが行われた場合には、スタイラス１２０の直近にあるノードを選択する（ステップＳ２８０３）。このとき上述のように、スタイラス１２０の位置とパーツとの距離によってノードの階層を選択することも可能である。
【０１４７】
つぎに選択されたノードに関する詳細表示を行うようにアセンブリツリーの表示内容を更新する（ステップＳ２８０４）。
【０１４８】
以上のような処理により容易にジェスチャーによって詳細表示を行うノードを選択可能である。
【０１４９】
また図２６で説明したようなジェスチャーに加えて図２９に示す如く点線で示されるように奥行き方向に位置を指定することによって、さらに詳細に対象ノードを指定する事ができる。
【０１５０】
またジェスチャーでノードの指定を行う時にＣＡＤデータの表示を半透明にする事によって、表面的には見えていない部品のノードを指定する事ができる。
【０１５１】
上記の半透明の処理は、スタイラスの位置に近い部分から外側に向かって、時間と共に半透明の領域を広げていくこともできる。このようにすることで、ＣＡＤデータを可能なかぎり不透明のよく見える状態を保持しながら、より広い範囲をスタイラスで指定したい場合には同じ位置に長時間スタイラスを位置させる事で、スタイラスでの位置姿勢の指定が可能である。
【０１５２】
またスタイラスからの一定距離以内を半透明に設定する事で、スタイラスによる位置指定を容易にする事も可能である。対象となるＣＡＤデータのサイズに応じて半透明にする距離を調整する事でさらに使いやすいシステムが構築可能である。
【０１５３】
［第５の実施形態］
本実施形態では上記実施形態に加えてリスト画像の表示の調整を行う。
【０１５４】
一般に複合現実感システムでは、人の手のように動いてしまう実物体に関しては、正確な奥行き情報を取得する事が難しいため、基本的には実写画像（現実空間の映像）の上に仮想空間映像を上書きするのみで合成を行っている。
【０１５５】
そのため仮想物体より手前に現実物体がある場合でも仮想物体の映像によって現実物体が覆い隠されてしまう場合が多い、しかしながら、体験者の手は実用上非常に大きな意味を持つため、肌色を認識し、手の部分のみの実写映像には仮想空間映像を重畳しないなどの処理が行われている。
【０１５６】
このような処理を第１の実施形態で行った処理に加えると、図１５に示すような複合現実空間の映像を得ることができる。
【０１５７】
図１６は、現実空間の映像（実写画像）において、手の領域をマスクするための処理のフローチャートである。なお、同図のフローチャートに従った処理は、ステップＳ４０５において、現実空間の映像がＲＡＭ３１０２に取得された以降に行われる処理である。
【０１５８】
先ず、上述の通り、ステップＳ４２０で映像キャプチャスレッドはＨＭＤ１１０のビデオカメラ１１１から得られる現実空間の映像を取得するので、これを受け、この映像をＲＡＭ３１０２中の所定のエリアに記憶する（ステップＳ１６０１）。そして、予め「手の色」として外部記憶装置３１０６に登録しておいた色データをＲＡＭ３１０２にロードし（ロードは事前に行うようにしても良い）、このデータを用いて、ステップＳ１６０１で取得した現実空間の映像において、「手の色」を有する画素を特定し、特定した画素群でもって構成される領域（以下、「手領域」と呼称する）を特定する（ステップＳ１６０２）。
【０１５９】
「手の色」を示すデータが、「手の色を示す画素値」を示す場合には、ステップＳ１６０２ではこの画素値を有する画素群を特定する処理を行うのであるが、「手の色」は外界の光の加減や手と光との角度によっては変化する場合のあり得る。そこで「手の色」を示すデータとして「手の色を示す画素値の範囲」を示す場合もある。その場合にはステップＳ１６０２ではこの範囲内の画素値を有する画素群を特定する処理を行う。
【０１６０】
次に、現実空間の映像において手領域を示す映像（マスク画像）を生成する（ステップＳ１６０３）。そしてＲＡＭ３１０２の所定のエリアに、ステップＳ１６０１で取得した現実空間の映像を描画すると共に（ステップＳ１６０４）、マスク画像をＲＡＭ３１０２中のＺバッファ（深度バッファ）に書き込む（ステップＳ１６０５）。
【０１６１】
ここでステップＳ１６０５における処理は周知の通り、手の領域を構成する各画素に対するＺ値（視点の位置から視線方向にＺ軸を設けた場合に、視線方向にＺ値は増加する）をＺバッファに書き込むのであるが、このＺ値は、例えば、視点の位置近傍にすればよい。これにより、今後この現実空間の映像上に仮想空間の映像を重畳させる場合には、このＺバッファを参照し、Ｚバッファに登録されているＺ値よりも大きいＺ値の部分しか描画されないので、結果として図１５に示す如く、手領域には仮想空間の映像は重畳されなくなる。
【０１６２】
なお、このように、手領域に仮想空間の映像を描画させない手法については様々な手法が考えられ、これに限定するものではない。また、コンピュータ１４０に周知の３Ｄグラフィックスアクセラレータを搭載した場合には、この３ＤグラフィックスアクセラレータがこのようなＺバッファを用いた特定領域のマスクを行うこととなる。
【０１６３】
しかしながら、リスト画像に表示されるアセンブリツリーの表示が手の表示よりも重要な場合も多いと考えられ、その場合はアセンブリツリー表示を手の表示よりも優先させる必要がある。これを実現するための方法について以下説明する。
【０１６４】
図１８は、リスト画像、手の何れを優先させて表示させるのかを切り替えるための処理のフローチャートである。なお、同図のフローチャートに従った処理、すなわち、切り替えるための操作の受付はステップＳ４０１の事前で行うようにしても良いし、処理中に常に受け付けるようにしても良い。
【０１６５】
先ず、ＣＰＵ３１０１は、リスト画像を手領域に優先させて表示する（リスト画像を領域よりも手前に表示する）のか否かを指示するための入力がなされたかを監視している（ステップＳ１８０１）。この入力は操作部３１０４を用いて入力しても良いし、スタイラス１２０に備わっているスタイラスボタン１２２の押下により指示するようにしても良い。
【０１６６】
この入力が成されたことをＣＰＵ３１０１が検知した場合（ステップＳ１８０２）には処理をステップＳ１８０３に進め、手領域をリスト画像に優先して表示することを示すフラグ（ステイタス）が現在オンである場合にはオフに、現在オフである場合にはオンに切り替える（ステップＳ１８０３）。なお、このフラグのデータはＲＡＭ３１０２に記憶されており、本ステップではこのデータを参照して現在のステイタスを得、これをオン／オフ制御する。
【０１６７】
図１７は、このフラグを参照して、リスト画像と手領域の何れを優先して表示するのかを切り替える処理のフローチャートである。なお、同図のフローチャートに従った処理は、ステップＳ４０６において行われる処理である。
【０１６８】
第１の実施形態と同様にして、ステップＳ４０５で先にＲＡＭ３１０２中の所定のエリアに記憶された現実空間の映像上に重ねて描画するのであるが、このとき、リスト画像以外の仮想物体の映像を描画する（ステップＳ１７０１）。
【０１６９】
次に、ステップＳ１８０３で切り替えたフラグを参照し、リスト画像を手領域に対して優先して表示する（描画する）のか否かを判断する（ステップＳ１８０２）。リスト画像を手領域に対して優先して表示する場合には処理をステップＳ１７０４に進め、ステップＳ１７０１で描画した映像上にＺバッファを無視してリスト画像を描画する。これにより、リスト画像は図１４に示す如く、手領域に対して優先して描画される。
【０１７０】
一方、手領域をリスト画像に対して優先して表示する場合には処理をステップＳ１７０３に進め、ステップＳ１７０１で描画した映像上にＺバッファを参照しながらリスト画像を描画する。Ｚバッファには上述の通り、手領域を構成する各画素に対する「視点の位置に最も近い」Ｚ値が記録されているので、このＺ値を参照し、このＺ値よりも奥のＺ値を有する画素は描画されないので、結果として手領域がリスト画像に対して優先して描画されることになる。
【０１７１】
また、このように手領域とリスト画像の表示における優先度を切り替える事は可能であるが、どちらかが優先されてしまうため必ずしも十分ではない。
【０１７２】
そこで、以下ではリスト画像と手領域を同時に表示しながら、必要に応じて手領域の表示をリスト画像より優先するモード、リスト画像をスタイラスや手領域の位置かオフセットしてずらして表示するモード、リスト画像の透明度を上げて、自分の手が透けて見えるモードなどを設ける事によって、自分の手やスタイラスを確認しながら作業できるような処理について説明する。
【０１７３】
図３０は、手領域、リスト画像の表示に係る処理のフローチャートである。なお、同図のフローチャートに従った処理は、ステップＳ４０５においてリスト画像を表示する直前に行うものである。
【０１７４】
コンピュータ１４０のオペレータは、表示装置３１０５の表示画面上に表示されたリスト画像を見て、観察者１００が表示された各パーツに係る情報に対して何らかの操作を行う場合には、この操作を可能にするためのモードに移行するために、操作部３１０４に含まれるマウスやキーボードでもって所定の動作（例えば所定のボタンを押下もしくはクリック）を行う。
【０１７５】
このような操作入力が行われた場合には、操作による指示がＣＰＵ３１０１に通知されるので、ＣＰＵ３１０１は常に、この指示を受け付けている。そしてこの操作指示が入力された場合、すなわち、ＣＰＵ３１０１がこの指示を検知した場合（ステップＳ３００１）、処理をステップＳ３００３に進め、第４の実施形態の如く、ステップＳ２１２２における処理（図２２のフローチャートに従った処理）を実行するように設定する。なお、この表示に関しては第４の実施形態と全く同じでなくてもよく、単に任意の位置にリスト画像を表示するだけでも良い。
【０１７６】
一方、このような指示は入力されていない場合には処理をステップＳ３００２に進め、スタイラス１２０が操作中であるか否かを判断する（ステップＳ３００２）。この判断は、例えば、所定時間内（例えば３秒内）に、スタイラス１２０の位置姿勢が所定の量以上変化しない場合、及び／又はスタイラスボタン１２２が所定時間内に押下されていない場合には、「操作されていない」と判断する。
【０１７７】
スタイラス１２０が操作されていないと判断した場合には処理をステップＳ３００３に進め、上記処理を行う。
【０１７８】
一方、スタイラス１２０が操作されている場合には処理をステップＳ３０１１に進め、上記フラグを参照し、リスト画像を手領域に対して優先して表示する（描画する）のか否かを判断する（ステップＳ３０１１）。
【０１７９】
そして、手領域をリスト画像に対して優先して表示する場合には処理をステップＳ３０１２に進め、先に描画した映像上にＺバッファを参照しながらリスト画像を描画するよう設定する（ステップＳ３０１２）。
【０１８０】
一方、リスト画像を手領域に対して優先して表示する場合には処理をステップＳ３０１３に進め、先に描画した映像上にＺバッファを無視してリスト画像を描画するよう設定する（ステップＳ３０１３）。
【０１８１】
次に、リスト画像を映像上のスタイラス１２０の位置からずれた位置（オフセットされた位置）に配置するモードであるか否かを判断する（ステップＳ３０２１）。このモードはその他のモード同様に設定変更可能であり、設定したモードを示すデータはＲＡＭ３１０２に格納されている。
【０１８２】
リスト画像をオフセットされた位置に配置するモードの場合には処理をステップＳ３０２２に進め、仮想空間においてリスト画像の位置をスタイラス１２０の位置から所定距離だけずれた位置に配置するよう設定する（ステップＳ３０２２）。
【０１８３】
一方、リスト画像をオフセットされた位置に配置しないモードの場合には処理をステップＳ３０２３に進め、第１の実施形態と同様にしてリスト画像を配置するよう設定する（ステップＳ３０２３）。
【０１８４】
次に、リスト画像を半透明表示するモードが設定されているか否かを判定する（ステップＳ３０３１）。このモードは操作部３１０４により設定可能であり、設定したモードを示すデータはＲＡＭ３１０２に記憶されている。従ってステップＳ３０３１ではこのデータを参照し、半透明表示するモードであるのか、半透明表示しないモードであるのかを判定する。
【０１８５】
半透明表示しないモードである場合には処理をステップＳ３０３３に進め、ポリゴンのα値を制御して透明色でないポリゴンを生成し、このポリゴンに、パーツに係る情報が記載されたテクスチャを張り付ける処理を各パーツについて行う（ステップＳ３０３３）。すなわち、第１の実施形態と同様にしてリスト画像を生成する。これは、リスト画像が２次元画像であっても同様で、第１の実施形態と同様にして、リスト画像を生成する。
【０１８６】
一方、半透明表示を行う場合には処理をステップＳ３０３２に進め、ポリゴンのα値を制御して透明色のポリゴンを生成し、このポリゴンに、パーツに係る情報が記載されたテクスチャを張り付ける処理を各パーツについて行うことでリスト画像を生成する（ステップＳ３０３２）。このテクスチャは、文字部分以外は透明（文字部分以外を構成する画素のα値を透明に設定する）として予め作成されているものとする。
【０１８７】
以上でスタイラス操作中にアセンブリツリーを表示しながら、手も確認して操作を行うことができるようになる。
【０１８８】
また、上記実施形態は適宜組み合わせてもよく、その場合、各実施形態における処理を実行する順番は、各実施形態でも説明の通りであって、組み合わせ時に、先に処理されるべき処理は先に行うように適宜変形することは当業者であれば容易であろう。
【０１８９】
［その他の実施形態］
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【０１９０】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１９１】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１９２】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャート（機能構成）に対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１９３】
【図１】本発明の第１の実施形態に係るシステムの外観図である。
【図２】本発明の第１の実施形態に係るＨＭＤ１１０の概略構成を示す図である。
【図３】スタイラス１２０の構成を示す図である。
【図４】ＣＰＵ３１０１が、本発明の第１の実施形態に係る複合現実空間の映像を生成してＨＭＤ１１０の表示画面に対して出力する処理（メインスレッド）のフローチャートである。
【図５】複合現実空間の映像の一例を示す図である。
【図６】スタイラス１２０で、複写機の仮想物体１７０においてコンソール部分５００をスタイラス１２０でもって指示した場合に、このコンソール部分５００を構成する各パーツに係る情報をツリー形式（アセンブルツリー）でもって一覧表示している画像（リスト画像）の一例を示す図である。
【図７】リスト画像を配置して表示した場合の、複合現実空間映像の表示例を示す図である。
【図８】背景を完全な透明にし、文字を不透明にしたリスト画像８０１の表示例を示す図である。
【図９】リスト画像を配置して表示した場合の、複合現実空間映像の表示例を示す図である。
【図１０】仮想物体が表示されていない領域を説明する図である。
【図１１】観察者１００の視点の位置姿勢を動かした場合に、ＨＭＤ１１０の表示画面上に表示される映像の例を示す図である。
【図１２】リスト画像を仮想物体１７０の表示領域と重なることなく配置した表示例を示す図である。
【図１３】仮想物体Ａを構成する各パーツのアセンブリツリーを示す図である。
【図１４】手領域に対して優先して描画されるリスト画像を示す図である。
【図１５】リスト画像の表示の調整を行うことにより得られる複合現実空間の映像の表示例を示す図である。
【図１６】現実空間の映像（実写画像）において、手の領域をマスクするための処理のフローチャートである。
【図１７】フラグを参照して、リスト画像と手領域の何れを優先して表示するのかを切り替える処理のフローチャートである。
【図１８】リスト画像、手の何れを優先させて表示させるのかを切り替えるための処理のフローチャートである。
【図１９】ステップＳ４０４において行う、本発明の第２の実施形態に係るリスト画像の表示処理のフローチャートである。
【図２０】ステップＳ４０４において行う、本発明の第３の実施形態に係るリスト画像の表示処理のフローチャートである。
【図２１】リスト画像に表示しているアセンブリツリーに対する操作を行った場合に、ＣＰＵ３１０１が行うべき処理のフローチャートである。
【図２２】ステップＳ２１２２における処理の詳細を示すフローチャートである。
【図２３】スタイラス１２０の位置と仮想物体との距離に基づいて、仮想物体を構成する各パーツの親子構造の内、どの階層レベルまでをリスト画像でもって提示するのかを決定する処理のフローチャートである。
【図２４】複写機の仮想物体１７０にスタイラス１２０を近づけた場合に表示されるリスト画像の表示例を示す図である。
【図２５】スタイラス１２０の位置を更にコンソールモジュール５００に近づけた場合のリスト画像の表示例を示す図である。
【図２６】ジェスチャでもって指示した部分のリスト画像の表示例を示す図である。
【図２７】リスト画像２７０１においてスタイラス１２０の位置でもって「上用紙カセット」の文字が記載された平面仮想物体２７０１を指示した場合に、複写機の仮想物体１７０において対応するパーツ２７１２が点滅表示されている表示例を示す図である。
【図２８】ジェスチャでもって指示した部分のリスト画像を表示するための処理のフローチャートである。
【図２９】点線で示されるように奥行き方向に位置を指定することによって、さらに詳細に対象ノードを指定する操作を説明する図である。
【図３０】手領域、リスト画像の表示に係る処理のフローチャートである。
【図３１】コンピュータ１４０の基本構成を示す図である。
【図１】
2005339266.tif 000003
【図２】
2005339266.tif 000004
【図３】
2005339266.tif 000005
【図４】
2005339266.tif 000006
【図５】
2005339266.tif 000007
【図６】
2005339266.tif 000008
【図７】
2005339266.tif 000009
【図８】
2005339266.tif 000010
【図９】
2005339266.tif 000011
【図１０】
2005339266.tif 000012
【図１１】
2005339266.tif 000013
【図１２】
2005339266.tif 000014
【図１３】
2005339266.tif 000015
【図１４】
2005339266.tif 000016
【図１５】
2005339266.tif 000017
【図１６】
2005339266.tif 000018
【図１７】
2005339266.tif 000019
【図１８】
2005339266.tif 000020
【図１９】
2005339266.tif 000021
【図２０】
2005339266.tif 000022
【図２１】
2005339266.tif 000023
【図２２】
2005339266.tif 000024
【図２３】
2005339266.tif 000025
【図２４】
2005339266.tif 000026
【図２５】
2005339266.tif 000027
【図２６】
2005339266.tif 000028
【図２７】
2005339266.tif 000029
【図２８】
2005339266.tif 000030
【図２９】
2005339266.tif 000031
【図３０】
2005339266.tif 000032
【図３１】
2005339266.tif 000033