(57)【要約】【課題】  仮想物体の画像が現実物体を隠蔽してしまうような状況下においても、複合現実空間への没入間を損ねることなく、係る現実物体の存在をユーザに知らしめるための為の技術を提供すること。【解決手段】  ＣＰＵ１００１は、特定部位の位置姿勢情報に基づいて動作部位面を配置し、特定部位を接触させる対象の動作補助物体を配置する。そしてＣＰＵ１００１は、動作部位面、動作補助物体が配されている仮想空間の画像を生成し、ＨＭＤ１００に送出する。その際、ＣＰＵ１００１は、動作部位面と動作補助物体との位置姿勢関係情報を求める。そして求めた位置姿勢関係情報が、動作部位面が動作補助物体に接触する直前の状態におけるそれぞれの位置姿勢関係を示している場合、動作補助物体の表示形態を切り替える為に、動作補助物体のデータを操作する。【選択図】  図１
2009169622.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの視点の位置姿勢情報を取得する手段と、
前記ユーザの体における特定部位の位置姿勢情報を取得する手段と、
前記特定部位の位置姿勢情報に基づいて、第１の仮想物体を配置する手段と、
前記ユーザが前記特定部位を接触させる対象の第２の仮想物体を配置する手段と、
前記第１の仮想物体、前記第２の仮想物体が配されている仮想空間の画像を、前記視点の位置姿勢情報に基づいて生成する生成手段と、
前記生成手段により生成された仮想空間の画像を出力する出力手段とを備え、
更に、
前記第１の仮想物体と前記第２の仮想物体との位置姿勢関係情報を求める手段と、
前記位置姿勢関係情報が、前記第１の仮想物体が第２の仮想物体に接触する直前の状態におけるそれぞれの位置姿勢関係を示していると判断した場合には、前記第２の仮想物体の表示形態を切り替える為に、前記第２の仮想物体のデータを操作する制御手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記制御手段は、
前記第１の仮想物体と前記第２の仮想物体との間の距離を求める手段と、
前記第１の仮想物体に対して予め設定された向きを示す方向ベクトルと、前記第２の仮想物体に対して予め定められた向きを示す方向ベクトルとの内積値を求める手段と、
前記第２の仮想物体の表側に前記第１の仮想物体が位置しているか否かを判断する手段とを備え、
前記距離が予め定められた閾値以下であり、前記内積値が負の一定値以下であり、前記第２の仮想物体の表側に前記第１の仮想物体が位置している場合には、前記位置姿勢関係情報が、前記第１の仮想物体が第２の仮想物体に接触する直前の状態におけるそれぞれの位置姿勢関係を示していると判断し、前記第２の仮想物体の表示形態を切り替える為に、前記第２の仮想物体のデータを操作する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記制御手段は、
前記距離が前記閾値よりも大きい値である場合、前記内積値が負の一定値よりも大きい場合、前記第２の仮想物体の表側には前記第１の仮想物体は位置していない場合、の何れかに該当する場合には、表示形態が切り替えられている仮想物体を通常表示の表示形態で表示する為に、前記第２の仮想物体のデータを操作することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記制御手段は、
前記第２の仮想物体の一部若しくは全部を半透明表示する表示形態、前記第２の仮想物体において前記特定部位が接触可能な範囲を半透明表示する表示形態、当該重なる領域を非表示とする表示形態、前記重なる領域の枠を示す表示を行う表示形態、前記重なる領域に線画パターンを表示する表示形態、のうち何れか１つを実現する為に、前記第２の仮想物体のデータを操作することを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項５】
前記制御手段は、前記第２の仮想物体のアルファ値を操作することで、前記第２の仮想物体の一部若しくは全部の透明度を制御することを特徴とする請求項１乃至４の何れか１項に記載の画像処理装置。
【請求項６】
更に、前記視点から撮像された現実空間の画像を取得する手段を備え、
前記出力手段は、
前記現実空間の画像において前記ユーザの手の領域については前記仮想空間の画像の重畳対象外として、前記現実空間の画像上に前記仮想空間の画像を重畳させた合成画像を生成し、生成した当該合成画像を出力することを特徴とする請求項１乃至５の何れか１項に記載の画像処理装置。
【請求項７】
前記出力手段は、前記ユーザの頭部に装着された頭部装着型表示装置に対して仮想空間の画像を出力することを特徴とする請求項１乃至６の何れか１項に記載の画像処理装置。
【請求項８】
ユーザの視点の位置姿勢情報を取得する工程と、
前記ユーザの体における特定部位の位置姿勢情報を取得する工程と、
前記特定部位の位置姿勢情報に基づいて、第１の仮想物体を配置する工程と、
前記ユーザが前記特定部位を接触させる対象の第２の仮想物体を配置する工程と、
前記第１の仮想物体、前記第２の仮想物体が配されている仮想空間の画像を、前記視点の位置姿勢情報に基づいて生成する生成工程と、
前記生成工程で生成された仮想空間の画像を出力する出力工程とを備え、
更に、
前記第１の仮想物体と前記第２の仮想物体との位置姿勢関係情報を求める工程と、
前記位置姿勢関係情報が、前記第１の仮想物体が第２の仮想物体に接触する直前の状態におけるそれぞれの位置姿勢関係を示していると判断した場合には、前記第２の仮想物体の表示形態を切り替える為に、前記第２の仮想物体のデータを操作する制御工程と
を備えることを特徴とする画像処理方法。
【請求項９】
コンピュータを、請求項１乃至７の何れか１項に記載の画像処理装置が有する各手段として機能させるためのプログラム。
【請求項１０】
請求項９に記載のプログラムを格納した、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、現実空間中に仮想空間の画像を重畳してユーザに提示する為の技術に関するものである。
【背景技術】
【０００２】
複合現実感システムとは、現実空間映像と、ユーザの視点位置、視線方向等に応じて生成される仮想空間映像とを合成することにより得られる合成映像をユーザに提供するものである。複合現実感システムでは、現実空間中に仮想物体が実在しているかのような感覚を観察者に提示することが可能であり、従来の仮想現実感システム（VRシステム）に比べてよりリアルに、実寸感覚を伴った観察を可能にする。
【０００３】
複合現実空間内の観察は、次のような動作処理を行うことで実現される。即ち、ユーザの視点位置、視線方向等をリアルタイムで計測し、その視点位置、視線方向から現実空間内を観察した映像をビデオカメラ等で取得し、さらにその映像に対して、ユーザの視点位置、視線方向等から観測した仮想物体（ＣＧ物体）を重畳表示する。
【０００４】
ここで、ユーザの視点位置、視線方向をリアルタイムに計測する為には、位置及び姿勢の６自由度を計測あるいは推定するシステム（ここでは６自由度センサと呼ぶ）を用いる。例えばＰｏｌｈｅｍｕｓ社のＦａｓｔｒａｋシステムを用いると、数センチ角ほどの大きさ有するレシーバの位置及び姿勢の６自由度が計測できる。
【０００５】
この計測した６自由度を、仮想空間内での仮想カメラの位置および方向（カメラ座標系）と結びつけることにより、複合現実空間内を観察することができる。
【０００６】
仮想現実感システムにはない、複合現実感システムに特徴的な応用として、複合現実空間内に実物体を配置し、実物体の表面にCGを表示することにより、「触れるCG」を実現することが挙げられる。特許文献１によれば、例えばカメラの設計CADデータを元に簡易試作物を作成し、その簡易試作物上に設計CADデータを重畳して表示することにより、カメラのCGを手にとって触ることができる。
【特許文献１】特開２００５−１０７９６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
「触れるCG」を「台」に利用し、係る台に手をついてその向こうにあるボタンを押す、ということを考える。こうした状況は作業支援システムとして複合現実感システムを用いるときにはよくあることである。手をつく場所は、作業内容が定まれば、だいたい定まるので、実際に手をつく部分（台）は、CGの台の全面にわたっている必要はなく、手を突きそうな一部分にだけあれば十分である。
【０００８】
ところで、こうした手をつくような作業では、手をつく場所に体重をかけることになるため、確実に実物体があることを観察者が認識できるか否かが作業効率や疲労度、安全の面で大きな問題となる。
【０００９】
従来技術によれば、実物体をCGによって隠してしまうため、観察者は実物体があると予想される箇所を手探りで探すようになってしまい、作業効率や疲労度、安全面で悪影響を及ぼす。「手をつく場所がわからない」。これが大きな問題である。かといって、実物体が見えるように一部のCGを非表示にしたり、半透明にしたりすると、没入感が損なわれ、複合現実感システムのメリットが失われてしまう。
【００１０】
本発明は以上の問題に鑑みてなされたものであり、仮想物体の画像が現実物体を隠蔽してしまうような状況下においても、複合現実空間への没入間を損ねることなく、係る現実物体の存在をユーザに知らしめるための為の技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
【００１２】
即ち、ユーザの視点の位置姿勢情報を取得する手段と、
前記ユーザの体における特定部位の位置姿勢情報を取得する手段と、
前記特定部位の位置姿勢情報に基づいて、第１の仮想物体を配置する手段と、
前記ユーザが前記特定部位を接触させる対象の第２の仮想物体を配置する手段と、
前記第１の仮想物体、前記第２の仮想物体が配されている仮想空間の画像を、前記視点の位置姿勢情報に基づいて生成する生成手段と、
前記生成手段により生成された仮想空間の画像を出力する出力手段とを備え、
更に、
前記第１の仮想物体と前記第２の仮想物体との位置姿勢関係情報を求める手段と、
前記位置姿勢関係情報が、前記第１の仮想物体が第２の仮想物体に接触する直前の状態におけるそれぞれの位置姿勢関係を示していると判断した場合には、前記第２の仮想物体の表示形態を切り替える為に、前記第２の仮想物体のデータを操作する制御手段と
を備えることを特徴とする。
【００１３】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
【００１４】
即ち、ユーザの視点の位置姿勢情報を取得する工程と、
前記ユーザの体における特定部位の位置姿勢情報を取得する工程と、
前記特定部位の位置姿勢情報に基づいて、第１の仮想物体を配置する工程と、
前記ユーザが前記特定部位を接触させる対象の第２の仮想物体を配置する工程と、
前記第１の仮想物体、前記第２の仮想物体が配されている仮想空間の画像を、前記視点の位置姿勢情報に基づいて生成する生成工程と、
前記生成工程で生成された仮想空間の画像を出力する出力工程とを備え、
更に、
前記第１の仮想物体と前記第２の仮想物体との位置姿勢関係情報を求める工程と、
前記位置姿勢関係情報が、前記第１の仮想物体が第２の仮想物体に接触する直前の状態におけるそれぞれの位置姿勢関係を示していると判断した場合には、前記第２の仮想物体の表示形態を切り替える為に、前記第２の仮想物体のデータを操作する制御工程と
を備えることを特徴とする。
【発明の効果】
【００１５】
本発明の構成によれば、仮想物体の画像が現実物体を隠蔽してしまうような状況下においても、複合現実空間への没入間を損ねることなく、係る現実物体の存在をユーザに知らしめることができる。
【発明を実施するための最良の形態】
【００１６】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の１つである。
【００１７】
［第１の実施形態］
図１は、現実空間に仮想空間を重畳させた複合現実空間をユーザに提供する処理の過程で、ユーザが複合現実空間とのインタラクションを体験することを可能にする為のシステムの外観を示す図である。
【００１８】
同図において２００はトランスミッタで、自身の周囲に磁場を発生させる。１００はユーザの頭部に装着し、現実空間と仮想空間とを合成した画像をユーザの眼前に提供する為の頭部装着型表示装置（以下、ＨＭＤ：Head Mounted Displayと呼称する）である。ＨＭＤ１００は、カメラ１０２Ｒ、１０２Ｌ、表示装置１０１Ｒ、１０１Ｌ、磁気レシーバ２０１により構成されている。
【００１９】
カメラ１０２Ｒ、１０２Ｌはそれぞれ、ＨＭＤ１００を頭部に装着したユーザの右目、左目の位置から見える現実空間の動画像を撮像するものであり、撮像した各フレームの画像（現実空間画像）は後段のコンピュータ（画像処理装置）４００に出力される。以下、カメラ１０２Ｒ、１０２Ｌに共通の説明ではこれらをまとめてカメラ１０２と呼称する場合がある。
【００２０】
表示装置１０１Ｒ、１０１Ｌはそれぞれ、ユーザがＨＭＤ１００を頭部に装着したときに右目、左目の眼前に位置するようにＨＭＤ１００に搭載されたものであり、後段のコンピュータ４００から出力された画像信号に基づいた画像を表示する。従ってユーザの右目、左目の眼前にはコンピュータ４００が生成した画像が提供されることになる。以下、表示装置１０１Ｒ、１０１Ｌに共通の説明ではこれらをまとめて表示装置１０１と呼称する場合がある。
【００２１】
磁気レシーバ２０１は、上記トランスミッタ２００が発する磁場において、磁気レシーバ２０１自身の位置姿勢に応じた磁気の変化を検知し、検知した結果を示す信号を後段の位置姿勢計測装置２０５に出力する。
【００２２】
位置姿勢計測装置２０５は、磁気レシーバ２０１からの信号を受けると、係る信号に基づいて、世界座標系における磁気レシーバ２０１の位置姿勢を求め、求めた位置姿勢を示すデータを後段のコンピュータ４００に送出する。ここで、世界座標系とは、現実空間中の所定の位置を原点とし、この原点の位置で互いに直交する３軸をそれぞれｘ軸、ｙ軸、ｚ軸とする座標系のことである。
【００２３】
図２は、ＨＭＤ１００の具体的な構成を示す図である。
【００２４】
表示装置１０１は、０．５〜数インチ程度の小型の液晶表示デバイス等で構成されるものである。１０３は、表示装置１０１の映像を拡大するレンズの役目を果たす自由曲面プリズムである。このような構成により、表示装置１０１に表示された映像は、ユーザにとってはたとえば２ｍ先に９０インチ相当の映像として提示される。
【００２５】
カメラ１０２は、ＣＣＤカメラ、ＣＭＯＳカメラなどの撮像デバイスで構成されるものである。１０４は現実空間の光をカメラ１０２に収束させるためのレンズの役目をはたす撮像系プリズムである。撮像系プリズム１０４は自由曲面プリズム１０３の外側に、光軸を一致させるように配置することで、カメラ１０２で入力した映像と、表示装置１０１に表示した映像の視差をなくし、現実空間の映像を違和感なく再現することが可能である。
【００２６】
図１に戻って、２０２は、ユーザの手や足など、予め定められた目的を達成するためにユーザが現実空間中の物体と接触させる部位（特定部位）に装着する磁気レシーバである。係る磁気レシーバ２０２は、上記磁気レシーバ２０１と同様の動作を行うもので、自身の位置姿勢に応じて検知される磁気の変化を示す信号を位置姿勢計測装置２０５に出力する。なお、図１では、磁気レシーバ２０２は１つのみしか示していないので、１つの部位の位置姿勢しか計測できない。しかし、複数個の磁気レシーバ２０２を位置姿勢計測装置２０５に接続し、それぞれの磁気レシーバ２０２を、ユーザのそれぞれの部位に装着すれば、それぞれの部位の位置姿勢を計測することができる。
【００２７】
位置姿勢計測装置２０５は、磁気レシーバ２０２から信号を受け取ると、係る信号に基づいて、世界座標系における磁気レシーバ２０２の位置姿勢を求め、求めた位置姿勢を示すデータを後段のコンピュータ４００に出力する。
【００２８】
４００はコンピュータで、ＨＭＤ１００の表示装置１０１Ｒ、１０１Ｌに出力すべき画像信号を生成したり、位置姿勢計測装置２０５からのデータを受け、これを管理したり等の処理を行う。係るコンピュータ４００は一般的にはＰＣ（パーソナルコンピュータ）やＷＳ（ワークステーション）等により構成される。図７は、コンピュータ４００のハードウェア構成を示すブロック図である。
【００２９】
１００１はＣＰＵで、ＲＡＭ１００２やＲＯＭ１００３に格納されているプログラムやデータを用いてコンピュータ４００全体の制御を行うと共に、Ｉ／Ｆ１００７に接続される外部装置とのデータ通信の制御を行う。また、コンピュータ４００が行うものとして後述する各処理を実行する。
【００３０】
１００２はＲＡＭで、外部記憶装置１００５からロードされたプログラムやデータを一時的に記憶するためのエリア、Ｉ／Ｆ１００７を介して外部から受信したデータを一時的に記憶するためのエリアを有する。更に、ＲＡＭ１００２は、ＣＰＵ１００１が各種の処理を実行する際に必要なワークエリアも有する。即ち、ＲＡＭ１００２は、各種のエリアを適宜提供することができる。
【００３１】
１００３はＲＯＭで、ブートプログラムやコンピュータ４００の設定データなどを格納する。
【００３２】
１００４は操作部で、キーボードやマウス、ジョイスティックなどにより構成されており、コンピュータ４００の操作者が操作することで、各種の指示をＣＰＵ１００１に対して入力することができる。
【００３３】
１００５は外部記憶装置で、ハードディスクドライブ装置に代表される大容量情報記憶装置である。外部記憶装置１００５には、ＯＳ（オペレーティングシステム）や、コンピュータ４００が行うものとして後述する各処理をＣＰＵ１００１に実行させるためのプログラムやデータ等が保存されている。また、外部記憶装置１００５には、後述の説明で既知のものとして説明する情報や、当業者であれば当然の如く用いるであろう情報についても、保存されている。外部記憶装置１００５に保存されているプログラムやデータは、ＣＰＵ１００１による制御に従って、適宜ＲＡＭ１００２にロードされる。そして、ＲＡＭ１００２にロードされたプログラムやデータは、ＣＰＵ１００１による処理（実行）対象となる。
【００３４】
１００６は表示部で、ＣＲＴや液晶画面等により構成されており、ＣＰＵ１００１による処理結果を画像や文字等でもって表示する。
【００３５】
１００７はＩ／Ｆで、上述の位置姿勢計測装置２０５やＨＭＤ１００等をコンピュータ４００に接続する為のインターフェースとして機能するものである。このＩ／Ｆ１００７を介して、コンピュータ４００は位置姿勢計測装置２０５、ＨＭＤ１００等とのデータ通信を行うことができる。
【００３６】
１００８は上述の各部を繋ぐバスである。
【００３７】
以上の構成を備えるコンピュータ４００は、カメラ１０２Ｒ、１０２Ｌのそれぞれから得られる現実空間の画像を取り込む。そして更に、コンピュータ４００は、後述の各処理によって仮想物体を配置し、磁気レシーバ２０１から得られる位置姿勢情報に基づいて、配置した仮想物体を含む仮想空間をカメラ１０２Ｒ、１０２Ｌから見た場合に見える画像（仮想空間の画像）を生成する。そして、生成した画像を、先に取り込んだ現実空間の画像上に重畳させ、重畳させた画像を表示装置１０１Ｒ、１０１Ｌに出力する。これにより、ＨＭＤ１００を頭部に装着したユーザの右目、左目の眼前には、それぞれの目の位置姿勢に対応した複合現実空間画像が表示されることになる。
【００３８】
なお、本実施形態では、磁気レシーバ２０１を用いてカメラ１０２の位置姿勢を取得するものとして説明するが、視点の位置姿勢を取得するためにこれ以外の方法を用いることもできる。例えば、現実空間中にその配置位置が既知のマーカを配置しておき、カメラ１０２による現実空間の画像中におけるマーカの座標位置と、現実空間中におけるマーカの配置位置とに基づいて、カメラ１０２の位置姿勢を求めても良い。また、本実施形態では、磁気レシーバ２０１、２０２、位置姿勢計測装置２０５で構成されるセンサシステムとして、磁気センサシステムを用いている。しかし、これ以外の方式によるセンサシステムを用いてもよい。例えば、光学式センサ、超音波式センサなどを用いても良い。
【００３９】
このように、本実施形態の基本は、位置姿勢の計測対象が何であれ、その計測のための方法については特に限定するものではないが、以下の説明では、上述したように、磁気センサを例に取り説明する。
【００４０】
次に、本実施形態でユーザに体験させる複合現実空間について説明する。図３は、本実施形態でユーザに体験させる複合現実空間を説明する図である。なお、係る複合現実空間は当然、図１に示した構成を有するシステムによって構築され、ＨＭＤ１００を介してユーザに提示されるものである。
【００４１】
図３（ａ）は、ＨＭＤ１００を頭部に装着したユーザ３９０が観察する複合現実空間を示す図で、図３（ａ）に示す如く、ユーザ３９０は、台３００ｃの上面３０１の上に自身の手をついて、壁３００ａに設けられたボタン３００ｂを押下しようとしている。ここで、壁３００ａ、ボタン３００ｂ、台３００ｃは何れも仮想物体である。すなわち、ユーザ３９０は、仮想物体としての台３００ｃの上面３０１に手をついて、仮想物体としてのボタン３００ｂを押下しようとしている。
【００４２】
しかし、台３００ｃは仮想物体であり、当然の如く手では触れることはできないため、係る台３００ｃに手をつくことはできない。そこで、図３（ｂ）に示す如く、現実物体としての台５００の上面５０１が、台３００ｃの上面３０１においてユーザ３９０が手をつきそうな部分（手が接触可能な範囲）に位置するように、台５００を配置させる。台５００は現実物体であるので、係る台５００の上面５０１（動作補助実物体）には手をつくことができる。従ってユーザは、仮想物体としての台３００ｃの上面３０１を見ながら係る上面３０１に手をつくと、実際には現実物体としての台５００の上面５０１に手をついていることになる。これによりユーザ３９０は、あたかも仮想物体としての台３００ｃの上面３０１に手をついているかのような感覚を覚えることになる。従って、現実物体としての台５００の上面５０１と、仮想物体としての台３００ｃの上面３０１とは、できるだけ等しい位置姿勢を有することが好ましい、
そして、本実施形態に係るシステムは、図３を例に取れば、ユーザ３９０の手が仮想物体としての台３００ｃの上面３０１に近づくと、台３００ｃの一部若しくは全部の表示形態を制御する。係る処理を行うためには、ユーザ３９０の手と、台３００ｃの上面３０１との位置関係を取得することが必要になる。そこで、本実施形態では、表示対象ではない第１の仮想物体（動作部位面）を、ユーザ３９０の掌の位置姿勢でもって（掌に沿って）配置する。係る仮想物体は、現実物体としての掌の位置姿勢を、仮想空間に反映させるためのものである。
【００４３】
従って、本実施形態では、上記磁気レシーバ２０２を、ユーザの掌に装着し、係る磁気レシーバ２０２による計測結果を、掌の位置姿勢として用いることが好ましい。しかし、例え他の部位に磁気レシーバ２０２を装着したとしても、装着部位と掌との位置姿勢関係が得られるのであれば、磁気レシーバ２０２による計測結果に、係る位置姿勢関係を加えることで、掌の位置姿勢を求めることができる。
【００４４】
図４は、コンピュータ４００の機能構成を示すブロック図である。
【００４５】
カメラ画像取得部４０１は、カメラ１０２から順次送出される各フレームの画像（現実空間画像）を取得し、これを後段のマスク画像生成部４０６、画像合成部４０２に送出する。
【００４６】
カメラ位置姿勢取得部４０３は、磁気レシーバ２０１から位置姿勢計測装置２０５を介して得られる、磁気レシーバ２０１の位置姿勢情報を取得する。図４では、説明上、位置姿勢計測装置２０５は省略している。そしてカメラ位置姿勢取得部４０３は、取得した位置姿勢情報に、磁気レシーバ２０１とカメラ１０２との位置姿勢関係を示す関係情報を加えることで、カメラ１０２の位置姿勢情報（視点の位置姿勢情報）を求める。係る関係情報は、予め求めておく。なお、このようにして視点の位置姿勢情報を求めるための技術については周知の技術であるので、これについての詳細な説明は省略する。そしてカメラ位置姿勢取得部４０３は、求めた視点の位置姿勢情報を、データストア部４０７内のＣＧデータ４１０に反映させる。なお、データストア部４０７とは、ＲＡＭ１００２と外部記憶装置１００５とで構成されているものである。
【００４７】
ＣＧデータ４１０には、次のようなものが含まれている。即ち、仮想空間を構成する各仮想物体（図３の場合、壁３００ａ、ボタン３００ｂ、台３００ｃ）に係るデータ（仮想物体データ）、仮想空間中に配置する光源に係るデータ（光源データ）、カメラ１０２に係るデータ（カメラパラメータ）等が含まれている。仮想物体データには、仮想物体の配置位置姿勢データ、仮想物体の幾何形状データ、テクスチャデータ等が含まれており、光源データには、光源の種類、色、光源の配置位置姿勢等、のデータが含まれている。また、カメラパラメータには、カメラ１０２の位置姿勢（視点の位置姿勢）データ（情報）、画角データ等、仮想空間中に配置する視点に必要な情報が含まれている。なお、カメラパラメータに含まれている「カメラ１０２の位置姿勢（視点の位置姿勢）データ（情報）」は、カメラ位置姿勢取得部４０３からデータストア部４０７に対して送出された視点の位置姿勢情報で常に更新される。
【００４８】
即ち、ＣＧデータ４１０には、仮想空間を構成する各要素を仮想空間中に設定するために使用する全てのデータ、係る仮想空間の画像を生成するために仮想空間中に設定する視点に与える全てのカメラパラメータが含まれている。なお、ＣＧデータ４１０に含まれるものとして上述したようなデータは、周知のものであるので、これ以上の説明は省略する。
【００４９】
ＣＧデータ４１０のうち、予め定められた目的を達成する為に磁気レシーバ２０２を取り付けた部位（特定部位）を接触させる対象の第２の仮想物体（動作補助物体）の仮想物体データは動作補助ＣＧデータ４１１としてデータストア部４０７に保持されている。図３の場合、台３００ｃの上面３０１が動作補助物体であり、係る上面３０１の仮想物体データが、動作補助ＣＧデータ４１１としてデータストア部４０７に保持されていることになる。
【００５０】
また、データストア部４０７内に保存されている動作部位面形状データ４０８は、上記動作部位面、即ち、ユーザの掌の位置姿勢でもって配置される、表示対象ではない仮想物体の仮想物体データである。従って、動作部位面の仮想物体データには、テクスチャデータなどは必要なく、動作部位面の幾何形状データが少なくとも含まれていればよい。
【００５１】
またデータストア部４０７には、ユーザが動作補助物体に触れたときに触れるであろう上記動作補助実物体を特定するデータが、動作補助実物体形状データ４０９として保存されている。図３の場合、世界座標系において、台５００の上面５０１の四隅の座標位置を示すデータが、動作補助実物体形状データ４０９としてデータストア部４０７に保存されていることになる。
【００５２】
ここで、動作補助実物体とは、上述の通り、ユーザが動作補助物体に触れた場合に、「触れた」という感覚を与える為に、現実空間中に設けられる現実物体である。従って、動作補助物体の形状と、動作補助実物体の形状とは同じ若しくはほぼ同じであることが好ましい。ユーザは動作補助物体を見て手をつくのであるが、手をついたときに手に与える感触は動作補助実物体である。従って、それぞれの形状が異なっていたり、互いに位置姿勢が大きく異なっていると、ユーザに違和感を与えることになる。そこで、動作補助実物体と動作補助物体のそれぞれの位置姿勢関係や形状がほぼ同じであれば、見た目と手の感触とがほぼ一致することになり、上記違和感は与えない。
【００５３】
なお、動作補助ＣＧデータ４１１と、動作補助実物体形状データ４０９とは、互いに関連付けられてデータストア部４０７内に保存されているものとする。
【００５４】
一方、マスク画像生成部４０６は、カメラ画像取得部４０１から取得した現実空間画像において、手が映っている領域を特定する。本実施形態では、現実空間画像上に仮想空間画像を合成する場合、現実空間画像において手の領域には仮想空間画像は合成させないようにする（重畳対象外）。手の領域に仮想空間画像を合成してしまうと、手と仮想物体との奥行き関係が逆転してしまうばかりか、「手をつく」という作業が困難になる。
【００５５】
マスク画像生成部４０６は、例えば、現実空間画像を構成する各画素のうち、「手の色として予め登録しておいた色」を有する画素を特定し、特定した画素で構成される領域を手の領域として求める。そして、現実空間画像を構成する各画素に対して、１若しくは０を割り当てる。すなわち、手の領域に含まれている画素については１を割り当て、手の領域に含まれていない画素については０を割り当てる。これにより、手の領域には１、手の領域以外の領域には０が設定された２次元画像を生成することができる。係る２次元画像がマスク画像である。
【００５６】
マスク画像生成部４０６は、生成したマスク画像を、後段の画像合成部４０２に送出する。
【００５７】
ＣＧレンダリング部４１７は、ＣＧデータ４１０を用いて、仮想空間を構築する。そして、係る仮想空間を、カメラパラメータに従った視点から見た画像を、仮想空間画像として生成する。なお、所定の位置姿勢を有する視点から見た仮想空間の画像を生成するための処理については周知の技術であるので、これについての詳細な説明は省略する。ＣＧレンダリング部４１７は、生成した仮想空間画像を、後段の画像合成部４０２に対して送出する。
【００５８】
画像合成部４０２には上述の通り、カメラ画像取得部４０１から現実空間画像が入力されると共に、ＣＧレンダリング部４１７から仮想空間画像が入力される。そして、画像合成部４０２は、現実空間画像上に、仮想空間画像を合成する。ここで、画像合成部４０２は、係る合成時に、マスク画像生成部４０６から受けたマスク画像を参照する。
【００５９】
現実空間画像中の画素位置（ｘ、ｙ）における画素上に、仮想空間画像中の画素位置（ｘ、ｙ）における画素を合成する前に、マスク画像中の画素位置（ｘ、ｙ）における画素値ｑを参照する。そして、ｑ＝０であれば、現実空間画像中の画素位置（ｘ、ｙ）における画素の画素値を、仮想空間画像中の画素位置（ｘ、ｙ）における画素の画素値に更新する。一方、ｑ＝１であれば、現実空間画像中の画素位置（ｘ、ｙ）における画素の画素値はそのままにする。係る処理は、ハンドマスキングとも言われ、詳細は特開２００３−２９６７５９号公報等に開示があるため、ここでは、係る技術についてのより詳細な説明は省略する。
【００６０】
以上の処理により、画像合成部４０２が生成する合成画像は、現実空間画像上に仮想空間画像を合成した画像であるが、現実空間画像において手の領域には仮想空間画像は合成させていない画像となっている。そして画像合成部４０２は、生成した合成画像を、ＨＭＤ１００が有する表示装置１０１に対して送出する。これにより、ＨＭＤ１００を頭部に装着したユーザの眼前には、視点の位置姿勢に応じた複合現実空間の画像が表示されることになる。
【００６１】
係る構成において、本実施形態では、ユーザが仮想物体上に手をつく場合に、係る仮想物体の表示形態を適宜切り替える、所謂、表示切り替え制御を行う。以下では、係る表示切り替え制御について説明する。以下説明する構成は、係る表示切り替え制御の為の構成である。
【００６２】
動作部位位置姿勢取得部４０４は、磁気レシーバ２０２から位置姿勢計測装置２０５を介して得られる、磁気レシーバ２０２の位置姿勢情報を取得する。上述のように、係る位置姿勢情報は、ユーザの掌の位置姿勢を示すものであるとする。そして動作部位位置姿勢取得部４０４は、取得した位置姿勢情報を、データストア部４０７内の上記動作部位面形状データ４０８に反映させる。
【００６３】
ここで、図４には、押しボタンスイッチ２０６、動作部位・動作部位面関係登録部４１２が記されているが、係る構成は必須なものではなく、付加的なものである。そこで、本実施形態では、主要な構成について説明すべく、これらの構成は用いないものとして説明する。そして、第２の実施形態で、これらの構成が備わっている場合について説明する。従って、本実施形態では、押しボタンスイッチ２０６、動作部位・動作部位面関係登録部４１２を図４に示した構成から省いてもよい。
【００６４】
動作検知部４１４は常に、動作部位面形状データ４０８と、動作補助ＣＧデータ４１１とを監視しており、動作部位面と動作補助物体との位置姿勢関係（位置姿勢関係情報）を監視している。そして、係る位置姿勢関係に基づいて、ユーザの掌が、上面３０１に接触しようとしているか否かを判断する。即ち、位置姿勢関係情報が、動作部位面が動作補助物体に接触する直前の状態におけるそれぞれの位置姿勢関係を示しているか否かを判断する。
【００６５】
本実施形態では、動作検知部４１４は、下記の３つの条件がすべて満たされたことを検知した場合に、「ユーザの掌が上面３０１に接触しようとしている」と判断する。
【００６６】
条件１  動作部位面と動作補助物体との間の距離が閾値以下
条件２  動作部位面の向きと動作補助物体の向きとが略逆方向である
条件３  動作補助物体の表側に動作部位面が位置している
ここで、条件１で用いている「距離」とは、例えば、次のようなものである。即ち、面分Aと面分Bとの間の「距離」は、面分A上の任意の点ａと、面分Ｂ上の任意の点ｂとの間のユークリッド距離の最小値である。この距離の計算方法は幾何学の分野で広く知られている手法であるので、詳細は省略する。この距離計算法を本実施形態で用いる場合、例えば、動作部位面、動作補助物体のそれぞれの表面上における１センチ間隔の格子点を代表点として用いる等、実施される状況に合わせて計算を簡略化した近似値を用いて構わない。換言すれば、動作部位面の表面と、動作補助物体の表面との間の距離の最小値を、それぞれの間の距離として求める。
【００６７】
次に、条件２が満たされているか否かを判定するためには、例えば、次のような方法を用いればよい。即ち、動作部位面について予め定めた向き（方向ベクトル）と、動作補助物体について予め定めた向き（方向ベクトル）とをそれぞれ単位ベクトルに変換した後、それぞれの単位ベクトルの内積値を計算する。そして、計算した内積値が、負の一定値以下である場合には、「動作部位面の向きと動作補助物体の向きとが略逆方向」であると判定する。図３の場合、動作補助物体としての上面３０１について予め定めた向きとは「上向き」であり、動作部位面について予め定めた向きとは「動作部位面を挟んで掌とは逆の側の面における法線ベクトルが示す方向」である。
【００６８】
次に、条件３が満たされているか否かを判定するためには、例えば、次のような方法を用いればよい。即ち、条件１で「距離」を求めるために動作補助物体上に設けた点ａと、動作部位面上に設けた点ｂと、を用い、点ａから点ｂへ向かう単位方向ベクトルと、動作補助物体の単位法線ベクトルと、の内積値が正であれば表側、負であれば裏側と判定する。
【００６９】
なお、本実施形態では、動作補助物体は面分であるとしているが、棒状のものや、握り状のものを動作補助物体として用いることもできる。しかし、何れの形状であっても、それぞれの形状の仮想物体は、例えばポリゴンなどにより、複数の面でその形状が構成される。
【００７０】
図５は、表面が複数の面で構成されている棒状の動作補助物体、握り状の動作補助物体のそれぞれを示す図である。図５（ａ）には、表面が複数の面で構成されている棒状の動作補助物体が示されており、図５（ｂ）には、表面が複数の面で構成されている握り状の動作補助物体が示されている。
【００７１】
このように、動作補助物体が何れの形状を有していても、その表面は複数の面から構成されていることになる。従って、それぞれの面を上面３０１と見なして上記説明の処理を行い、何れか１つの面について上記条件１〜３を満たせば、「ユーザの掌が動作補助物体に接触しようとしている」と判断することができる。
【００７２】
また、上記３つの条件に、「手が開いている状態であること」という条件４を加え、条件１〜条件４を満たせば（該当すれば）、「ユーザの掌が動作補助物体に接触しようとしている」と判断するようにしても良い。条件４を設ける場合、コンピュータ４００には、ユーザの手の開閉を検知するための装置を取り付ける必要があり、係る装置より、「手を開いている」ことを示す信号を受けると、コンピュータ４００は、条件４が満たされたと判断する。
【００７３】
ユーザの手の開閉を検知する為の仕組みとしては、例えば次のようなものがある。即ち、ユーザの指先にもうひとつ磁気レシーバを取り付け、係る磁気レシーバにより計測される位置姿勢と、磁気レシーバ２０２により計測される位置姿勢と、の位置姿勢関係を用いて、手の開閉を検知する。例えば、それぞれの位置間が閾値以上離れていれば、手は開いていると判断し、閾値よりも小さければ、手は閉じていると判断する。
【００７４】
また、手の甲側で指に沿ってひも状の長さセンサを取り付け、一定の長さ以上を検知すれば手は閉じていると判断し、一定の長さ以下を検知すれば手は開いていると判断してもよい。
【００７５】
次に、図４に戻って、ＣＧ効果決定部４１５は、動作検知部４１４が、「ユーザの掌が、上面３０１に接触しようとしている」と判定した場合には、後述するＣＧ効果を生成する、と判断する。一方、ＣＧ効果決定部４１５は、動作検知部４１４が、「ユーザの掌が、上面３０１に接触しようとしている」とは判定していない場合には、後述するＣＧ効果を破棄する、と判断する。ＣＧ効果決定部４１５による判定結果は、後段のＣＧ効果生成部４１６に送出される。
【００７６】
なお、ＣＧ効果決定部４１５の動作として、次のような動作も考えられる。即ち、動作検知部４１４が「接触しようとしている」とは判定していない状態から「接触しようとしている」と判定した状態に遷移した時点から一定時間内は、動作検知部４１４は常に、「接触しようとしている」という判定を行う。即ち、係る一定時間内では、常にＣＧ効果を生成し、破棄することはない。これにより、ＣＧ効果の生成と破棄が短い時間内で煩雑に繰り返されることを防ぐことができる。
【００７７】
ところで、「手をついている」状態では、ＣＧ効果を加えない方が本来の複合現実感の利点である没入感が得られるという効果があるため、ＣＧ効果決定部４１５の動作として、次のような動作（動作Ｂ）も考えられる。即ち、動作補助物体を構成する複数の面のうち少なくとも１つと、動作部位面との距離がほぼゼロになっている場合は、ＣＧ効果の破棄を決定する。
【００７８】
また、「手をついている」状態では手は静止していると考えられる。そこで、ＣＧ効果決定部４１５の動作として、上記動作Ｂに次のような動作（動作Ｂ’）を加えても良い。即ち、手が複合現実空間内でほぼ静止している場合は、ＣＧ効果の破棄を決定する。動作Ｂ’により、ついた手を、動作補助物体の上でより作業し易い場所に動かしている最中は、ＣＧ効果が得られることになる。
【００７９】
次に、ＣＧ効果生成部４１６は、ＣＧ効果決定部４１５が「ＣＧ効果を生成する」と判定した場合にはＣＧデータ４１０等に対してＣＧ効果を生成し、「ＣＧ効果を破棄する」と判定した場合には、現在生成済みのＣＧ効果をＣＧデータ４１０等から破棄する。
【００８０】
ここで、ＣＧ効果とは、本実施形態では、それまで仮想物体によって見えなかった現実空間をユーザに視認可能に提示すべく行う、仮想物体の表示形態制御である。従って、ＣＧ効果を生成する、ということは、下記の制御１〜制御６に示す如く、通常表示している仮想物体の表示形態を、他の表示形態に切り替える、ということである。また、ＣＧ効果を破棄するということは、通常表示していない（下記の制御１〜制御６のうち何れかによる表示を行っている）仮想物体の表示形態を通常表示に切り替える、ということである。
【００８１】
本実施形態で想定している表示形態の制御には、例えば、次のようなものがあり、何れか１つを採用する。
【００８２】
制御１  台３００全体を半透明表示する
制御２  上面３０１のみを半透明表示する
制御３  上面３０１のうち、上面５０１と重なる領域のみ、描画を行わない
制御４  上面３０１のうち、上面５０１と重なる領域のみ、半透明表示を行う
制御５  制御３または制御４に加え、上面３０１のうち上面５０１と重なる領域の周囲に枠を描画する
制御６  制御３または制御４または制御５に加え、上面３０１のうち上面５０１と重なる領域に縞模様や網模様といった線画パターンを描く
上記何れの制御も、ＣＧデータ４１０や動作補助ＣＧデータ４１１を加工すればよい。例えば、ＣＧデータ４１０に含まれている台３００のアルファ値を操作すれば、台３００の透明度を制御することができ、結果として、台３００を半透明表示することができる。また、動作補助ＣＧデータ４１１に含まれているアルファ値を操作すれば、上面３０１を半透明表示することができる。また、動作補助実物体形状データ４０９と動作補助ＣＧデータ４１１とを用いて、上面３０１のうち上面５０１と重なる領域を求め、求めた領域内のアルファ値を操作すれば、係る領域を非表示対象とすることもできるし、半透明表示することもできる。
【００８３】
このように、仮想物体の一部若しくは全部を半透明表示したり、非表示としたりするために、係る仮想物体のデータに含まれているアルファ値を制御する、という処理については周知であるので、これ以上の説明は省略する。
【００８４】
また、仮想物体の表示形態を通常表示に戻す場合も同様であり、操作したアルファ値を元に戻せばよい。これについても周知の技術であるので、これについての説明は省略する。
【００８５】
図６は、ユーザ３９０が上面３０１に手をつこうとした場合における上面３０１の表示形態を説明する図である。図６では、手をつこうとした箇所６００には、縞模様の線画パターンが描画されており、係る線画パターン越しに現実物体としての台５００が見えている。これによりユーザは、自分が「手を突こう」としている箇所を視認することができ、容易に把握できる。
【００８６】
図８は、現実空間画像と仮想空間画像とを合成してＨＭＤ１００に出力する処理に加えて、ユーザの手が動作補助物体につきそうな場合には、係る動作補助物体の表示形態を制御する処理のフローチャートである。なお、図８のフローチャートに従った処理をＣＰＵ１００１に実行させるためのプログラムやデータは、外部記憶装置１００５に保存されている。係るプログラムには、図４に示した以下の各部の機能をＣＰＵ１００１に実行させるためのプログラムが含まれている。
【００８７】
・  カメラ画像取得部４０１
・  カメラ位置姿勢取得部４０３
・  動作部位位置姿勢取得部４０４
・  マスク画像生成部４０６
・  画像合成部４０２
・  ＣＧレンダリング部４１７
・  ＣＧ効果決定部４１５
・  ＣＧ効果生成部４１６
・  動作検知部４１４
また、係るデータには、図４に示したＣＧデータ４１０、動作補助ＣＧデータ４１１、動作部位面形状データ４０８、動作補助実物体形状データ４０９が含まれている。そして係るプログラムは、ＲＡＭ１００２にロードされ、ＣＰＵ１００１による実行対象となる。
【００８８】
先ず、ステップＳ８０１では、ＣＰＵ１００１はカメラ画像取得部４０１として機能し、カメラ１０２から順次送出される各フレームの画像（現実空間画像）を取得し、これをＲＡＭ１００２に送出する。
【００８９】
次に、ステップＳ８０２では、ＣＰＵ１００１はカメラ位置姿勢取得部４０３として機能し、磁気レシーバ２０１から位置姿勢計測装置２０５を介して得られる、磁気レシーバ２０１の位置姿勢情報を取得する。そしてＣＰＵ１００１は、取得した位置姿勢情報に、磁気レシーバ２０１とカメラ１０２との位置姿勢関係を示す関係情報を加えることで、カメラ１０２の位置姿勢情報（視点の位置姿勢情報）を求める。そしてＣＰＵ１００１は、求めた視点の位置姿勢情報を、ＲＡＭ１００２内のＣＧデータ４１０に反映させる。
【００９０】
次に、ステップＳ８０３では、ＣＰＵ１００１は動作部位位置姿勢取得部４０４として機能し、磁気レシーバ２０２から位置姿勢計測装置２０５を介して得られる、磁気レシーバ２０２の位置姿勢情報を取得する。そしてＣＰＵ１００１は、取得した位置姿勢情報を、ＲＡＭ１００２内の上記動作部位面形状データ４０８に反映させる。
【００９１】
次に、ステップＳ８０４では、ＣＰＵ１００１は動作検知部４１４として機能し、動作部位面形状データ４０８と、動作補助ＣＧデータ４１１とを監視することで、動作部位面と動作補助物体との位置姿勢関係（位置姿勢関係情報）を監視している。そして、上記３つの条件がすべて満たされたことを検知した場合には、「ユーザの掌が上面３０１に接触しようとしている」と判断し、処理をステップＳ８０５に進める。一方、上記３つの条件のうち１つでも満たされていない場合には、「ユーザの掌が上面３０１に接触しようとしている」とは判断せず、処理をステップＳ８０６に進める。
【００９２】
ステップＳ８０５では、ＣＰＵ１００１は、ＣＧ効果決定部４１５、ＣＧ効果生成部４１６として機能する。即ち、ＣＰＵ１００１は、上記の制御１〜制御６に示す如く、通常表示している仮想物体の表示形態を、通常表示から他の表示形態に切り替える為に、ＣＧデータ４１０や動作補助ＣＧデータ４１１を加工する。即ち、ＣＧデータ４１０に含まれている台３００のアルファ値を操作すれば、台３００を半透明表示することができる。また、動作補助ＣＧデータ４１１に含まれているアルファ値を操作すれば、上面３０１を半透明表示することができる。また、動作補助実物体形状データ４０９と動作補助ＣＧデータ４１１とを用いて、上面３０１のうち上面５０１と重なる領域を求め、求めた領域内のアルファ値を操作すれば、係る領域を非表示対象とすることもできるし、半透明表示することもできる。
【００９３】
一方、ステップＳ８０６では、ＣＰＵ１００１は、ＣＧ効果決定部４１５、ＣＧ効果生成部４１６として機能する。即ち、ＣＰＵ１００１は、通常表示していない動作補助物体の表示形態を通常表示に切り替えるべく、上述の通り、操作したアルファ値を元に戻す。
【００９４】
次に、ステップＳ８０７では、ＣＰＵ１００１はＣＧレンダリング部４１７として機能し、ＣＧデータ４１０（動作補助ＣＧデータ４１１）を用いて、仮想空間を構築する。そして、係る仮想空間を、カメラパラメータに従った視点から見た画像を、仮想空間画像として生成する。
【００９５】
次に、ステップＳ８０８では、ＣＰＵ１００１はマスク画像生成部４０６として機能し、上述のマスク画像を生成する。そして次に、ＣＰＵ１００１は画像合成部４０２として機能し、現実空間画像上に、仮想空間画像を合成する。係る合成時には、マスク画像を用いてハンドマスキングを行う。これにより、現実空間画像上に仮想空間画像を合成した合成画像であって、現実空間画像において手の領域には仮想空間画像は合成させていない合成画像が得られる。もちろん、「ユーザの掌が上面３０１に接触しようとしている」場合には、動作補助物体の表示形態が切り替えられている。
【００９６】
そして最後に、ステップＳ８０９では、ＣＰＵ１００１は、ステップＳ８０８における処理で生成した合成画像を、ＨＭＤ１００が有する表示装置１０１に対して送出する。これにより、ＨＭＤ１００を頭部に装着したユーザの眼前には、視点の位置姿勢に応じた複合現実空間の画像が表示されることになる。
【００９７】
以上説明した処理（図８のフローチャートに従った処理）は、１フレーム分の画像を生成してＨＭＤ１００に送出するための処理であるので、実際には、係る処理を繰り返して行うことで、複数フレームの画像を生成してＨＭＤ１００に送出することになる。
【００９８】
なお、本実施形態では、ユーザの特定部位として「手」を取り上げ、「手をつく」という動作がなされようとしているか否かで、手をつく対象の仮想物体の表示形態を制御していたが、特定部位を「足」としても良い。その場合、上記説明で手に対して行ったことと同じことを足に対して行う。その場合、動作部位面は、足の裏なので、足の裏に略並行に動作部位面を設ける。
【００９９】
そして例えば、「足を台に乗せる」という動作がなされようとしているか否かで、足を乗せる対象の仮想物体の表示形態を制御する場合、上記説明で手と台との間で行っていたことを、足と台との間で行えばよい。
【０１００】
なお、ユーザがステップを上り下りするような場合、通常、ステップである動作補助物体は水平であり、動作部位面である「足の裏」も水平であると仮定して構わない場合がある。このような場合、磁気レシーバ２０２は必ずしも姿勢情報を取得しなくても良く、位置情報のみでも良い。動作部位位置姿勢取得部４０４は、磁気レシーバ２０２から位置情報を取得すると、これに、水平姿勢を示す姿勢情報を付加し、位置姿勢情報を生成する。以降の動作については上記説明と同じである。
【０１０１】
また、位置情報のみ取得する手法としては光学式マーカを複数台のカメラで撮影し、三角測量の要領で位置情報を求める手法が知られている。応用によって複数の位置・姿勢取得方法を使い分けることにより、以上説明した技術を適用することができる作業の範囲を広めることが期待できる。
【０１０２】
また、ユーザの特定部位については手、足の他に、様々なものが考え得る。例えば、ユーザの背中に位置姿勢センサを取り付け、動作部位面を腹部とすれば、うつ伏せになって体重を現実物体にかける、という作業に用いることができる。
【０１０３】
以上の説明により、本実施形態によれば、複合現実感のメリットである没入感を損なうことなく、「手をつくべき場所」や「足を踏み出すべき場所」等、仮想物体で隠蔽されている現実物体を把握することができる。
【０１０４】
［第２の実施形態］
本実施形態では、図４に示したスイッチ押しボタン２０６、動作部位・動作部位面関係登録部４１２について説明する。
【０１０５】
ユーザは所定の場所に手を置き、スイッチ押しボタン２０６を押下することにより、上記位置姿勢関係を登録する。所定の場所に手を置くことにより、動作部位面の位置が既知となるため、磁気レシーバ２０２により計測された位置姿勢情報を、動作部位面の位置姿勢情報に変換できるような関係を導出することができる。この導出は３ＤＣＧの基本的手法として広く知られているので、詳細は省略する。
【０１０６】
また、磁気レシーバ２０２と動作部位面との位置姿勢関係は、ユーザ毎に異なる可能性がある。そこで、係る位置姿勢関係を予めユーザ毎に動作部位面形状データ４０８に登録しておく。そしてユーザがコンピュータ４００を使用して複合現実空間を観察する場合、自身の位置姿勢関係を、スイッチ押しボタン２０６を用いて選択し、選択した位置姿勢関係を用いて、動作部位面を設定する。位置姿勢関係の登録については先の段落で説明した通りである。
【０１０７】
［その他の実施形態］
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給する。係る記憶媒体は言うまでもなく、コンピュータ読み取り可能な記憶媒体である。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【０１０８】
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１０９】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１１０】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１１１】
【図１】現実空間に仮想空間を重畳させた複合現実空間をユーザに提供する処理の過程で、ユーザが複合現実空間とのインタラクションを体験することを可能にする為のシステムの外観を示す図である。
【図２】ＨＭＤ１００の具体的な構成を示す図である。
【図３】本発明の第１の実施形態でユーザに体験させる複合現実空間を説明する図である。
【図４】コンピュータ４００の機能構成を示すブロック図である。
【図５】表面が複数の面で構成されている棒状の動作補助物体、握り状の動作補助物体のそれぞれを示す図である。
【図６】ユーザ３９０が上面３０１に手をつこうとした場合における上面３０１の表示形態を説明する図である。
【図７】コンピュータ４００のハードウェア構成を示すブロック図である。
【図８】現実空間画像と仮想空間画像とを合成してＨＭＤ１００に出力する処理に加えて、ユーザの手が動作補助物体につきそうな場合には、係る動作補助物体の表示形態を制御する処理のフローチャートである。
【図１】
2009169622.tif 000003
【図２】
2009169622.tif 000004
【図３】
2009169622.tif 000005
【図４】
2009169622.tif 000006
【図５】
2009169622.tif 000007
【図６】
2009169622.tif 000008
【図７】
2009169622.tif 000009
【図８】
2009169622.tif 000010