(57)【要約】【課題】  操作対象を視覚的に明瞭にユーザに通知するための技術を提供すること。【解決手段】  指示具の一端、他端を通る直線を設定し（Ｓ２）、直線が干渉領域内で仮想物体と交点を有する場合にはこの交点の位置を記録し（Ｓ３）、記録した交点位置のうち、指示具の他端の位置に最も近い交点位置にポインタを移動させ（Ｓ６）、その形状を変更する（Ｓ７）。【選択図】  図６
2006343954.tif 000002
【特許請求の範囲】
【請求項１】
観察者の視点の位置姿勢を取得する第１の取得工程と、
仮想空間中の仮想物体を操作するために前記観察者が手に保持する指示具の位置姿勢を取得する第２の取得工程と、
前記指示具の、仮想物体を指し示す為の一端の位置にポインタを配置する配置工程と、
前記指示具の近傍に領域を設定する第１の設定工程と、
前記指示具の一端、他端を通る直線を設定する第２の設定工程と、
前記直線が前記領域内で仮想物体と交点を有する場合には、当該交点の位置をメモリに記録する記録工程と、
前記記録工程で記録した交点位置のうち、前記指示具の他端の位置に最も近い交点位置に前記ポインタを移動させる移動工程と、
前記第１の取得工程で取得した位置姿勢を有する視点から見える仮想空間の画像を生成する生成工程と
前記生成工程で生成した画像を外部に出力する出力工程と
を備えることを特徴とする画像処理方法。
【請求項２】
前記記録工程では、前記指示具の一端、他端の間の区間で、前記直線と交点を有する仮想物体が存在する場合には、当該交点の位置を記録する処理をそれぞれの仮想物体について行うことを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記移動工程では更に、前記ポインタの形状を変更させることを特徴とする請求項１又は２に記載の画像処理方法。
【請求項４】
更に、前記視点から見える現実空間の画像を取得する第３の取得工程を備え、
前記出力工程では、前記第３の取得工程で取得した現実空間の画像上に前記生成工程で生成した仮想空間の画像を重畳させてから外部に出力することを特徴とする請求項１乃至３の何れか１項に記載の画像処理方法。
【請求項５】
仮想空間中の仮想物体を操作するために観察者が手に保持する指示具の位置姿勢を取得する取得工程と、
前記指示具の所定の位置にポインタを配置する配置工程と、
前記指示具と仮想物体との干渉を判定する判定工程と、
前記判定工程によって前記指示具が前記仮想物体と干渉していると判定された場合は、前記ポインタの位置を干渉位置に応じて変更する変更工程と、
前記変更工程によって変更されたポインタの位置に応じたポインタ画像を含む仮想画像を生成する生成工程と
を有することを特徴とする画像処理方法。
【請求項６】
観察者の視点の位置姿勢を取得する第１の取得手段と、
仮想空間中の仮想物体を操作するために前記観察者が手に保持する指示具の位置姿勢を取得する第２の取得手段と、
前記指示具の、仮想物体を指し示す為の一端の位置にポインタを配置する配置手段と、
前記指示具の近傍に領域を設定する第１の設定手段と、
前記指示具の一端、他端を通る直線を設定する第２の設定手段と、
前記直線が前記領域内で仮想物体と交点を有する場合には、当該交点の位置を記録する記録手段と、
前記記録手段が記録した交点位置のうち、前記指示具の他端の位置に最も近い交点位置に前記ポインタを移動させる移動手段と、
前記第１の取得手段が取得した位置姿勢を有する視点から見える仮想空間の画像を生成する生成手段と
前記生成手段が生成した画像を外部に出力する出力手段と
を備えることを特徴とする画像処理装置。
【請求項７】
仮想空間中の仮想物体を操作するために観察者が手に保持する指示具の位置姿勢を取得する取得手段と、
前記指示具の所定の位置にポインタを配置する配置手段と、
前記指示具と仮想物体との干渉を判定する判定手段と、
前記判定手段によって前記指示具が前記仮想物体と干渉していると判定された場合は、前記ポインタの位置を干渉位置に応じて変更する変更手段と、
前記変更手段によって変更されたポインタの位置に応じたポインタ画像を含む仮想画像を生成する生成手段と
を有することを特徴とする画像処理装置。
【請求項８】
コンピュータに請求項１乃至５の何れか１項に記載の画像処理方法を実行させることを特徴とするプログラム。
【請求項９】
請求項８に記載のプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想空間中の仮想物体を操作するための技術に関するものである。
【背景技術】
【０００２】
ＶＲ（バーチャルリアリティ）システムは、コンピュータの作り出す三次元仮想物体をユーザに提示することで、仮想の空間をあたかも現実であるかのように感じさせるシステムである。また、近年、現実空間の映像に三次元CGを合成することで、現実空間にはない情報をユーザに提示する技術の開発もなされており、それらはMR（Mixed Reality, 複合現実感）システムと呼ばれている。
【０００３】
MRシステムは、現実空間と切り離された状況でのみ体験可能であったバーチャルリアリティ（ＶＲ）の世界と現実空間との共存を目的とし、ＶＲを増強する技術として注目されている。
【０００４】
MRシステムを実現する装置として代表的なものが、ヘッドマウントディスプレイ（ＨＭＤ）である。MRシステムでは、現実空間と仮想空間とを合成してＨＭＤに表示することにより、このＨＭＤを頭部に装着した観察者に複合現実空間の画像を提供することができ、結果として、複合現実感を観察者に提供することができる。
【０００５】
ＨＭＤを用いたＭＲの方式には半透過型（シースルー型）のヘッドマウントディスプレイ（ＨＭＤ）にCG等の画像を重畳する光学シースルー方式と、ＨＭＤに装着したビデオカメラで撮影した画像にCG等の画像を合成した後、ＨＭＤに表示するビデオシースルー方式がある。
【０００６】
ＭＲシステムの用途としては、患者の体内の様子を透過しているように医師に提示する医療補助の用途や、工場において製品の組み立て手順を実物に重ねて表示する作業補助の用途などが考えられている。
【０００７】
MRシステムにおいては、現実の物体と仮想の物体が共存している。そのため、現実の物体で仮想の物体の操作を行うことができる。たとえば、ユーザがペンを持ち、ペンで仮想物体を指し示し（直接指示）、仮想物体をそのまま動かす（直接操作）ことができる。このような直接指示・直接操作が可能であることがMRシステムの特徴の一つであり、こうした直接指示・直接操作が可能なシステムとしては、他にタッチスクリーンなどがある（非特許文献１を参照）。この直接指示・直接操作という特徴は現実世界における物体の操作のやり方と一致しているため、MRシステムにおいては現実世界に近い自然な操作を行うことができる。
【０００８】
現実世界において人が物体を操作する際、たとえば物を掴んで動かそうとする際、人は視覚からのフィードバックに加えて、触覚によるフィードバックによって操作の対象を認識している。MRシステムにおいては現実世界と同様に直接指示・直接操作が可能であるが、現実世界と異なる点として、触覚をユーザに提示することが難しいという点がある。触覚提示装置と呼ばれる特殊な装置を用いればMRシステムにおいてユーザに触覚を提示することができるが、そうしたシステムは高価であったり動作範囲が狭いなどの制約条件が多かったりするため、限定的な用途でしか用いられていない。この触覚によるフィードバックをMRシステムにおいては用いることができないため、MRシステムでは操作対象を認識しづらいという問題がある。
【０００９】
そのため、MRシステムにおいては、操作対象を認識するためには、視覚によって操作対象が明確に認識できるようにする必要がある。しかしながら、MRシステムでは、通常、現実世界に重ねて仮想物体が描画される。そのため、本来は空間上では現実物体よりも奥にあるべき仮想物体が常に手前に表示されてしまうという問題（オクルージョン）がある。このため、たとえばユーザが操作用のペンで仮想物体を指し示そうとしても、ペンが仮想物体によって隠されてしまうという問題が起こり、そのままでは操作対象を認識することができない。
【００１０】
このオクルージョンの問題を避けるために、従来より、操作用の現実物体に重ねて仮想物体を重ねるという方法が行われている。例えば、図２に示すように、現実物体としてのペン１２に重ねて操作用の仮想物体２１を配置したり、図１に示すように、現実物体としてのペン１２の先端にポインタ１３を配置したりといった方法である。図１，２は共に、オクルージョンの問題を避けるための手段について示した図である。
【非特許文献１】田村博編「ヒューマンインタフェース」オーム社  1998年5月30日、pp246-249
【発明の開示】
【発明が解決しようとする課題】
【００１１】
操作用の現実物体に仮想物体を重ねる方法では、視覚的には操作用の仮想物体と操作対象の仮想物体が交わるため、操作対象の認識が可能である。しかし、このとき、実際に操作対象となるのは操作用の現実物体の指定位置、たとえば、ペンの先端の位置にある仮想物体である。そのため、図１に示すように、操作用のペン１２に仮想のポインタ１３を重ねているとき、図３に示すように、外側の仮想物体３１と内側の仮想物体３２のように、複数の仮想物体が重なって存在している場合には、ポインタ１３は外側の仮想物体３１によって隠されてしまい、ユーザはどの仮想物体が操作対象となっているのかがわからなくなってしまう。なお、ここで、図３中では便宜上、外側の仮想物体３１を半透明として表現したが、ユーザからは実際には図５に示すように仮想物体１１によって操作用のペン１２の仮想のポインタ１３が隠されているように見える。
【００１２】
また、操作用のペン１２に操作用の仮想物体２１を重ねている場合には、図４に示すように、外側の仮想物体３１と操作用の仮想物体２１が重なってユーザに見えるため、ユーザにとっては外側の仮想物体３１が操作対象となっているように認識される。しかし、実際にはペン先は内側の仮想物体３２を指示しているため、視覚からの認識と実際の指示との間に矛盾が生じてしまう。
【００１３】
本発明は以上の問題に鑑みてなされたものであり、操作対象を視覚的に明瞭にユーザに通知するための技術を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
【００１５】
即ち、観察者の視点の位置姿勢を取得する第１の取得工程と、
仮想空間中の仮想物体を操作するために前記観察者が手に保持する指示具の位置姿勢を取得する第２の取得工程と、
前記指示具の、仮想物体を指し示す為の一端の位置にポインタを配置する配置工程と、
前記指示具の近傍に領域を設定する第１の設定工程と、
前記指示具の一端、他端を通る直線を設定する第２の設定工程と、
前記直線が前記領域内で仮想物体と交点を有する場合には、当該交点の位置をメモリに記録する記録工程と、
前記記録工程で記録した交点位置のうち、前記指示具の他端の位置に最も近い交点位置に前記ポインタを移動させる移動工程と、
前記第１の取得工程で取得した位置姿勢を有する視点から見える仮想空間の画像を生成する生成工程と
前記生成工程で生成した画像を外部に出力する出力工程と
を備えることを特徴とする。
【００１６】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
【００１７】
即ち、仮想空間中の仮想物体を操作するために観察者が手に保持する指示具の位置姿勢を取得する取得工程と、
前記指示具の所定の位置にポインタを配置する配置工程と、
前記指示具と仮想物体との干渉を判定する判定工程と、
前記判定工程によって前記指示具が前記仮想物体と干渉していると判定された場合は、前記ポインタの位置を干渉位置に応じて変更する変更工程と、
前記変更工程によって変更されたポインタの位置に応じたポインタ画像を含む仮想画像を生成する生成工程と
を有することを特徴とする。
【００１８】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
【００１９】
即ち、観察者の視点の位置姿勢を取得する第１の取得手段と、
仮想空間中の仮想物体を操作するために前記観察者が手に保持する指示具の位置姿勢を取得する第２の取得手段と、
前記指示具の、仮想物体を指し示す為の一端の位置にポインタを配置する配置手段と、
前記指示具の近傍に領域を設定する第１の設定手段と、
前記指示具の一端、他端を通る直線を設定する第２の設定手段と、
前記直線が前記領域内で仮想物体と交点を有する場合には、当該交点の位置を記録する記録手段と、
前記記録手段が記録した交点位置のうち、前記指示具の他端の位置に最も近い交点位置に前記ポインタを移動させる移動手段と、
前記第１の取得手段が取得した位置姿勢を有する視点から見える仮想空間の画像を生成する生成手段と
前記生成手段が生成した画像を外部に出力する出力手段と
を備えることを特徴とする。
【００２０】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
【００２１】
即ち、仮想空間中の仮想物体を操作するために観察者が手に保持する指示具の位置姿勢を取得する取得手段と、
前記指示具の所定の位置にポインタを配置する配置手段と、
前記指示具と仮想物体との干渉を判定する判定手段と、
前記判定手段によって前記指示具が前記仮想物体と干渉していると判定された場合は、前記ポインタの位置を干渉位置に応じて変更する変更手段と、
前記変更手段によって変更されたポインタの位置に応じたポインタ画像を含む仮想画像を生成する生成手段と
を有することを特徴とする。
【発明の効果】
【００２２】
本発明の構成により、操作対象を視覚的に明瞭にユーザに通知することができる。
【発明を実施するための最良の形態】
【００２３】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００２４】
［第１の実施形態］
＜本実施形態に係るシステムについて＞
以下では、現実物体としての指示具（ペン）でもって仮想物体を指示する場合に、指示した部分（仮想物体）を視覚的にユーザに通知するためのシステムについて説明する。
【００２５】
図１２は、本実施形態に係るシステムの機能構成を示すブロック図である。同図に示す如く、本実施形態に係るシステムは、ＨＭＤ１００、コンピュータ１１０、指示具１２０により構成されている。
【００２６】
先ず、ＨＭＤ１００について説明する。ＨＭＤ１００は周知の如く、現実空間と仮想空間とを合成した複合現実空間を観察する観察者が、その頭部に装着するためのものであり、位置姿勢センサ１０１、カメラ１０２、表示部１０３により構成されている。
【００２７】
位置姿勢センサ１０１は本実施形態では磁気センサとする。よって、現実空間中には不図示の磁界の発生源が設置されているものとする。従って、位置姿勢センサ１０１は、自身の位置姿勢に応じた磁気の変化を検知するので、この検知結果を「センサ座標系（上記発生源の位置を原点とし、この原点で互いに直交する３軸をそれぞれｘ軸、ｙ軸、ｚ軸とする座標系）における位置姿勢センサ１０１の位置姿勢を示す信号」としてコンピュータ１１０に出力する。
【００２８】
カメラ１０２は現実空間の動画像を撮像するものであり、撮像した各フレームの画像は信号としてコンピュータ１１０に出力する。表示部１０３は、例えば液晶画面で構成されており、観察者がＨＭＤ１００を頭部に装着した場合に、この観察者の眼前に位置するようにこのＨＭＤ１００に取り付けられたものであり、コンピュータ１１０から出力される画像信号に基づいた画像を表示する。これにより、ＨＭＤ１００を頭部に装着した観察者は、コンピュータ１１０から出力された画像信号に基づいた画像を観察することができる。
【００２９】
次に、指示具１２０について説明する。指示具１２０は観察者が仮想物体を操作するために手に保持するものであり、図１の１２で示すようなペン型の指示具である。指示具１２０は図１２に示す如く、位置姿勢センサ１２１、決定ボタン１２２により構成される。
【００３０】
位置姿勢センサ１２１は、上記位置姿勢センサ１０１と同様の動作を行うものであり、自身の位置姿勢に応じた磁気の変化を検知するものであり、これを「センサ座標系における位置姿勢センサ１２１の位置姿勢を示す信号」としてコンピュータ１１０に出力する。決定ボタン１２２は、観察者がこれを押下することで、押下されたことを示す信号をコンピュータ１１０に出力する。
【００３１】
次に、コンピュータ１１０について説明する。コンピュータ１１０は同図に示す如く、ＣＧデータ格納部１１１、干渉判定部１１２、動作判定部１１３、ＣＧデータ描画部１１４、画像合成部１１５により構成されている。
【００３２】
ＣＧデータ格納部１１１は、仮想空間を構成する各仮想物体の画像を描画するために必要なデータを格納する。例えば仮想物体がポリゴンでもって構成されている場合には、ＣＧデータ格納部１１１には、仮想物体の配置位置姿勢データ、仮想物体を構成するポリゴンを構成する各頂点の座標データ、ポリゴンの法線ベクトルデータ、ポリゴンカラーデータ、また、この仮想物体にテクスチャマッピングを行う場合には、テクスチャのデータ等が格納されている。
【００３３】
干渉判定部１１２は、指示具１２０に備わっている位置姿勢センサ１２１より得られる情報に基づいて算出される「指示具１２０の位置姿勢」と、各仮想物体の配置位置姿勢とを参照して、指示具１２０が仮想物体と干渉しているか否かを判定する。
【００３４】
動作判定部１１３は、干渉判定部１１２による判定結果と、決定ボタン１２２から送出される「決定ボタン１２２が押下されたことを示す信号」とを用いて、指示具１２０に干渉している仮想物体に対して、観察者が指示具１２０でもって行った操作結果を反映させる。即ち、ＣＧデータ格納部１１１に格納されているこの仮想物体のデータを更新する。例えば、指示具１２０が注目仮想物体と干渉している状態で、決定ボタン１２２から押下されたことを示す信号を受けた場合には、この注目仮想物体が選択されていると判定し、その後、操作者が指示具１２０の位置姿勢を変化させると、ＣＧデータ格納部１１１に格納されているこの注目仮想物体の位置姿勢のデータをこの変化に従って更新する。
【００３５】
ＣＧデータ描画部１１４は、ＣＧデータ描画部１１４に格納されているデータを用いて、仮想空間中に仮想物体を配置すると共に、このような仮想空間を観察者の視点から見た場合に見える画像（仮想空間の画像）を生成する処理を行う。なお本実施形態では、「観察者の視点」とは、カメラ１０２を差すものとする。
【００３６】
画像合成部１１５は、カメラ１０２より得られる現実空間の画像上に、ＣＧデータ描画部１１４が生成した仮想空間の画像を重畳させた画像、即ち、複合現実空間の画像を生成し、これをＨＭＤ１００に備わっている表示部１０３に出力する。これにより、ＨＭＤ１００を頭部に装着した観察者の眼前には自身の視点の位置姿勢に応じた複合現実空間の画像が表示されることになる。
【００３７】
図１３は、以上のような機能構成を有するコンピュータ１１０のハードウェア構成を示すブロック図である。なお、このようなコンピュータ１１０には、一般のＰＣ（パーソナルコンピュータ）やＷＳ（ワークステーション）等が適用可能である。
【００３８】
１３０１はＣＰＵで、ＲＡＭ１３０２やＲＯＭ１３０３に格納されているプログラムやデータを用いてコンピュータ１１０全体の制御を行うと共に、コンピュータ１１０が行う後述の各処理を実行する。
【００３９】
１３０２はＲＡＭで、外部記憶装置１３０６からロードされたプログラムやデータを一時的に記憶するためのエリア、ＣＰＵ１３０１が各種の処理を実行する際に用いるワークエリア、Ｉ／Ｆ１３０７，１３０８を介して外部から受信したデータを一時的に記憶するためのエリアなど、各種のエリアを適宜提供することができる。
【００４０】
１３０３はＲＯＭで、本コンピュータ１１０の設定データやブートプログラム等を格納する。
【００４１】
１３０４は操作部で、キーボードやマウスなどにより構成されており、本コンピュータ１１０の操作者が操作することで、各種の指示をＣＰＵ１３０１に対して入力することができる。
【００４２】
１３０５は表示装置で、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ１３０１による処理結果を画像や文字などでもって表示する。
【００４３】
１３０６は外部記憶装置で、ハードディスクドライブ装置に代表される大容量情報記憶装置で、ここにＯＳ（オペレーティングシステム）や、コンピュータ１１０が行う後述の各処理をＣＰＵ１３０１に実行させるためのプログラムやデータが保存されており、これらはＣＰＵ１３０１による制御に従ってＲＡＭ１３０２にロードされ、ＣＰＵ１３０１による処理対象となる。なお、上記ＣＧデータ格納部１１１はこの外部記憶装置１３０６の一機能に相当する。
【００４４】
１３０７はＩ／Ｆ（インターフェース）で、上記ＨＭＤ１００をコンピュータ１１０に接続するためのものであり、このＩ／Ｆ１３０７を介してコンピュータ１１０はＨＭＤ１００とのデータ通信を行うことができる。
【００４５】
１３０８はＩ／Ｆで、上記指示具１２０をコンピュータ１１０に接続するためのものであり、このＩ／Ｆ１３０８を介してコンピュータ１１０は指示具１２０とのデータ通信を行うことができる。
【００４６】
１３０９は上述の各部を繋ぐバスである。
【００４７】
＜コンピュータ１１０が行うメインの処理＞
次に、ＨＭＤ１００を頭部に装着した観察者に対して複合現実空間の画像を提供するためにコンピュータ１１０が行う処理について、同処理のフローチャートを示す図１４を用いて説明する。なお、同図のフローチャートに従った処理をＣＰＵ１３０１に実行させるためのプログラムやデータは外部記憶装置１３０６に保存されており、これらは適宜ＣＰＵ１３０１による制御に従ってＲＡＭ１３０２にロードされ、ＣＰＵ１３０１がこれを用いて処理を実行することで、コンピュータ１１０は以下説明する各処理を実行することになる。
【００４８】
ＨＭＤ１００に備わっている位置姿勢センサ１０１は上述の通り、センサ座標系における自身の位置姿勢に応じた信号をコンピュータ１１０に出力するので、ＣＰＵ１３０１はこの信号をデータとしてＩ／Ｆ１３０７を介してＲＡＭ１３０２に受信する（ステップＳ１４０１）。
【００４９】
また、ＨＭＤ１００に備わっているカメラ１０２から各フレームの画像（現実空間の画像）が信号としてコンピュータ１１０に入力されるので、ＣＰＵ１３０１はこれをデータとしてＩ／Ｆ１３０７を介してＲＡＭ１３０２に受信する（ステップＳ１４０２）。
【００５０】
次に、位置姿勢センサ１０１から受信した「位置姿勢センサ１０１のセンサ座標系における位置姿勢を示すデータ」を用いて、視点（カメラ１０２）の位置姿勢を計算する（ステップＳ１４０３）。この計算については周知の技術であるが、例えば、予めカメラ１０２と位置姿勢センサ１０１との位置姿勢関係を測定し、測定した結果をバイアスデータとして外部記憶装置１３０６に保存させておく。そして「位置姿勢センサ１０１のセンサ座標系における位置姿勢を示すデータ」が得られると、これにバイアスデータを加算することで、「センサ座標系におけるカメラ１０２の位置姿勢」を求めることができる。
【００５１】
次に、この視点から見える仮想空間の画像を生成する（ステップＳ１４０４）。即ち、仮想空間中に仮想物体を配置し、配置後の仮想空間をステップＳ１４０３で求めた位置姿勢を有する視点から見た場合に見える画像を生成する。なお、本ステップにおける処理の詳細については後述する。
【００５２】
次に、ステップＳ１４０２でＲＡＭ１３０２に取得した現実空間の画像上に、ステップＳ１４０４で生成した仮想空間の画像を重畳させることで複合現実空間の画像を得（ステップＳ１４０５）、これをＩ／Ｆ１３０７を介してＨＭＤ１００に備わっている表示部１０３に出力する（ステップＳ１４０６）。
【００５３】
＜ステップＳ１４０３における処理の詳細＞
次に、ステップＳ１４０３における処理の詳細について説明する。ステップＳ１４０３では先ず、１以上の仮想物体（操作対象仮想物体）を配置する。そして次に、指示具１２０が何れの操作対象仮想物体と干渉しているのかを判断し、干渉している操作対象仮想物体があれば、その操作対象仮想物体に対して指示具１２０を用いた操作を反映させる。
【００５４】
しかし従来では、その際に、指示具１２０がどの仮想物体（若しくは仮想物体のどの部分）を指し示しているのかが不明瞭である。本実施形態ではこのような問題に対処するために、先ず、指示具１２０の先端部分（仮想物体を指し示す部分）には図１の１３に示す如く、球体状のポインタ（仮想物体）を配置する。そして、このポインタの表示形態により、現在指示具１２０でもって指し示している仮想物体を視覚的に観察者に報知する。
【００５５】
図１１は、指示具１２０と操作対象仮想物体との干渉状態に応じたポインタの表示形態の制御処理のフローチャートである。
【００５６】
先ず、指示具１２０に備わっている位置姿勢センサ１２１より「センサ座標系における位置姿勢センサ１２１の位置姿勢を示す信号」がコンピュータ１１０に入力されるので、ＣＰＵ１３０１はこれをデータとしてＩ／Ｆ１３０８を介してＲＡＭ１３０２に受信する（ステップＳ１）。
【００５７】
そして、取得した位置姿勢を用いて、図６の６１で示す如く、指示具１２０の一端、他端を通る直線を求める（ステップＳ２）。次に、先に仮想空間中に配置した各操作対象仮想物体のうち、ステップＳ２で求めた直線と交点を有する仮想物体があった場合には、その交点位置をＲＡＭ１３０２内に設けたリストに追加する（ステップＳ３）。なお、仮想物体と直線との交点を求める処理については周知の技術であるので、これに関する説明は省略する。
【００５８】
次に、ステップＳ３で求めたそれぞれの交点位置が、指示具１２０に対して設定した干渉領域内に存在するのか否かを判定する（ステップＳ４）。ここで、干渉領域について図６を用いて説明する。図６は、指示具１２０に対して設定する項目を示す図である。
【００５９】
同図において６１は上述の直線であり、この直線は指示具１２０の一端（先端）と他端とを通る直線である。６３は干渉領域で、この領域は直線６１上で指示具１２０の両端（先端部分６４と、もう一方の端部６２）の位置の間の区間である。
【００６０】
なお、指示具１２０の両端の位置については、位置姿勢センサ１２１と一端との位置姿勢関係、位置姿勢センサ１２１と他端との位置姿勢関係を予め測定しておき、それぞれを第１のバイアスデータ、第２のバイアスデータとして外部記憶装置１３０６に保存しておく。そして、位置姿勢センサ１２１から「センサ座標系における位置姿勢センサ１２１の位置姿勢を示すデータ」が得られた場合には、このデータに第１のバイアスデータを加算することで「センサ座標系における一端の位置姿勢」が得られるし、「センサ座標系における位置姿勢センサ１２１の位置姿勢を示すデータ」に第２のバイアスデータを加算することで「センサ座標系における他端の位置姿勢」が得られる。このようにして一端、他端のセンサ座標系における位置姿勢が得られるので、これを用いれば、上記直線６１、干渉領域６３は求めることができる。
【００６１】
なお、同図では干渉領域６３は指示具１２０の長さと一致させているが、干渉領域６３は同図のようなものに限定する必要はなく、例えば、先端部６４から１０センチ先（「先」とは同図矢印が指す方向）の間の区間を干渉領域６３として設定しても良いし、先端部６４に所定サイズの直方体を設け、これを干渉領域６３としても良い。いずれにせよ、指示具１２０の近傍には以下の処理のための干渉領域６３を設定する必要がある。
【００６２】
よって、上記ステップＳ４では、リストに追加したそれぞれの交点位置のうち、干渉領域６３内に存在する交点が存在するか否かをチェックし、存在する場合にはその交点位置を順次ＲＡＭ１３０２に記憶させる。
【００６３】
そして、ステップＳ４でリストに追加したそれぞれの交点位置のうち、干渉領域６３内に存在する交点が存在する場合には処理をステップＳ５に進め、干渉領域６３内に存在する交点のうち、指示具１２０の他端（先端部ではない方の端部。図６では６２に相当）の位置に最も近い交点位置を特定する（ステップＳ５）。即ち、干渉領域６３内に存在する交点のうち、指示具１２０の他端（先端部ではない方の端部。図６では６２に相当）の位置に最も近いものを選択することで、観察者にとってより手前にある交点位置を特定することができる。
【００６４】
図７は、仮想物体７１と指示具１２０との干渉状態の一例を示す図である。同図において７１は干渉領域６３内で直線と交点を有する仮想物体（面）、７２はこの交点を示す。よってこの場合には上記ステップＳ５ではこの交点７２の位置が特定されることになる。
【００６５】
図１１に戻って、次に、ステップＳ５で特定した位置に上記ポインタを移動させ（ステップＳ６）、更にポインタの形状を変更する（ステップＳ７）。図８は、ポインタの移動と形状の変化を説明する図で、同図に示す如く、ポインタの配置位置を元の８２で示す位置から交点位置７２で示す位置に移動させると共に、ポインタのモデルを元の球体状のものから８１で示す矢印状のものに変更する。
【００６６】
これにより、観察者は現在指示具１２０によってどの仮想物体を指し示しているのかを視覚的に明瞭に理解することができる。
【００６７】
一方、ステップＳ４で、干渉領域６３内で上記直線６１上に交点が存在しない場合には処理をステップＳ８に進め、この場合にはポインタの移動、及び形状の変化は行わないので、元の状態を保つ。図９は、干渉領域６３内で上記直線６１上に交点が存在しないが故に、ポインタを元の状態に保っている様子を示す図で、同図に示す如く、ポインタは９１で示す如く、指示具１２０の先端部に配置していると共に、その形状は球体状である。これにより、観察者に視覚的に操作対象が存在しないことを示すことができる。
【００６８】
以上の説明により、本実施形態によって、操作対象を認識することが容易となり、なおかつ操作対象の候補となる仮想物体が重なって存在している場合にも所望の操作対象を選び出すことができる。よってこのようなシステムを用いれば、操作対象の仮想物体を変更するだけで、例えば、建築シミュレーションや製品設計シミュレーションなどに適用することが可能となる。
【００６９】
［第２の実施形態］
第１の実施形態では指示具１２０の先端部分にポインタとしての仮想物体を配置していたが、どのような仮想物体を配置しても良いし、ステップＳ５で特定した交点位置にポインタを移動させた場合に変化させる形状についても矢印に限定するものではない。図１０は、指示具１２０の先端部分にＣ字型の仮想物体を配置し、且つこのＣ字型の仮想物体をステップＳ５で求めた交点位置に移動させる様子を示す図である。
【００７０】
なお、ステップＳ５で求めた交点位置にポインタを移動させる場合に、ポインタの形状を変更するという処理については必須なものではなく、省略しても良いし、その代わりにポインタの色（テクスチャの変更、ポリゴン色の変更）を変更すると行った処理を行うようにしても良い。
【００７１】
また、第１の実施形態ではセンサとして全て磁気センサを用いて位置姿勢を計測しているが、センサとしてはこれ以外にも考えられ、例えば超音波センサ、光学式センサなど、その他のセンサを用いるようにしても良い。
【００７２】
また、視点の位置姿勢を求める手段についてはセンサを用いることに限定するものではなく、例えば、現実空間中にマーカを配置し、この配置位置、及びマーカをカメラ１０２でもって撮像した画像上における座標位置を用いてＨＭＤ１００の位置姿勢を取得する方法を用いるようにしても良い。よって、視点の位置姿勢が得られるのであれば、センサを用いることには限定しない。
【００７３】
また、第１の実施形態ではＨＭＤ１００にはビデオシースルータイプのものを用いているが、光学シースルー型のものを用いるようにしても良い。
【００７４】
また、指示具の形状としては棒状のもの以外にも、例えば、かぎ爪状等、様々なものが考えられる。
【００７５】
［その他の実施形態］
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【００７６】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７７】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７８】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【００７９】
【図１】オクルージョンの問題を避けるための手段について示した図である。
【図２】オクルージョンの問題を避けるための手段について示した図である。
【図３】複数の仮想物体が重なって存在している様子を示す図である。
【図４】操作用のペン１２に操作用の仮想物体２１を重ねている様子を示す図である。
【図５】実際にユーザに見える空間を示す図である。
【図６】指示具１２０に対して設定する項目を示す図である。
【図７】仮想物体７１と指示具１２０との干渉状態の一例を示す図である。
【図８】ポインタの移動と形状の変化を説明する図である。
【図９】干渉領域６３内で上記直線６１上に交点が存在しないが故に、ポインタを元の状態に保っている様子を示す図である。
【図１０】指示具１２０の先端部分にＣ字型の仮想物体を配置し、且つこのＣ字型の仮想物体をステップＳ５で求めた交点位置に移動させる様子を示す図である。
【図１１】指示具１２０と操作対象仮想物体との干渉状態に応じたポインタの表示形態の制御処理のフローチャートである。
【図１２】本発明の第１の実施形態に係るシステムの機能構成を示すブロック図である。
【図１３】コンピュータ１１０のハードウェア構成を示すブロック図である。
【図１４】ＨＭＤ１００を頭部に装着した観察者に対して複合現実空間の画像を提供するためにコンピュータ１１０が行う処理のフローチャートである。
【図１】
2006343954.tif 000003
【図２】
2006343954.tif 000004
【図３】
2006343954.tif 000005
【図４】
2006343954.tif 000006
【図５】
2006343954.tif 000007
【図６】
2006343954.tif 000008
【図７】
2006343954.tif 000009
【図８】
2006343954.tif 000010
【図９】
2006343954.tif 000011
【図１０】
2006343954.tif 000012
【図１１】
2006343954.tif 000013
【図１２】
2006343954.tif 000014
【図１３】
2006343954.tif 000015
【図１４】
2006343954.tif 000016