(57)【要約】【課題】  仮想物体を移動させる際に、奥行き方向の移動を精度良く観察者に行わせる為の技術を提供すること。【解決手段】  第１のモードが選択されると、モックアップモデルを指示具３０２の位置姿勢に配置し（Ｓ６０２）。第２のモードが選択されると、タイミングＴにおける視点の姿勢を方向ベクトルとする直線上にモックアップモデルを配置する（Ｓ６０４）。【選択図】  図６
2006252059.tif 000002
【特許請求の範囲】
【請求項１】
観察者の視点の位置姿勢を取得する第１の取得工程と、
前記観察者が操作する指示具の位置姿勢を取得する第２の取得工程と、
第１のモード、第２のモードの何れかを指示する指示手段と、
前記第１のモードが指示された場合には、前記第２の取得工程で取得した位置姿勢に仮想物体を配置する第１の配置工程と、
前記第２のモードが指示された場合には、指示された時点における前記視点の姿勢を方向ベクトルとする直線上に仮想物体を配置する第２の配置工程と、
前記第１の配置工程、若しくは前記第２の配置工程の何れかで配置された仮想物体を含む仮想空間を、前記第１の取得工程で取得した位置姿勢の視点から見える画像を生成する生成工程と、
前記生成工程で生成した画像を外部に出力する出力工程と
を備えることを特徴とする画像処理方法。
【請求項２】
前記第２のモードが指示されたタイミングＴにおいて前記第１の取得工程が取得した前記視点の姿勢を方向ベクトルとする単位ベクトルをｖ（Ｔ）、当該タイミングＴにおいて前記第２の取得工程で取得した位置姿勢によって決まるベクトルをｓ（Ｔ）、時刻ｔ（ｔ＞Ｔ）において前記第２の取得工程で取得した位置姿勢によって決まるベクトルをｓ（ｔ）、平行移動変換行列をＸ、回転行列をＲｓとすると、
仮想物体の物体座標系における構成要素の座標値をｐとし、時刻ｔにおいて仮想空間中に配置した当該構成要素の座標値をｐ’とすると
（ｐ’，１）Ｔ（ｔ）＝Ｃｆ（ｔ，Ｔ）・（ｐ，１）Ｔ
＝Ｘ（（（ｓ（ｔ）−ｓ（Ｔ））・ｖ（Ｔ））・ｖ（Ｔ））・Ｘ（ｓ（Ｔ））・Ｒｓ（Ｔ）・（ｐ，１）Ｔ
であることを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記第２のモードが指示されたタイミングＴにおいて前記第１の取得工程が取得した前記視点の姿勢を方向ベクトルとする単位ベクトルをｖ（Ｔ）、当該タイミングＴにおいて前記第２の取得工程で取得した位置姿勢によって決まるベクトルをｓ（Ｔ）、平行移動変換行列をＸ、回転行列をＲａ、Ｒｂとすると、
仮想物体の物体座標系における構成要素の座標値をｐとし、時刻ｔにおいて仮想空間中に配置した当該構成要素の座標値をｐ’とすると
（ｐ’，１）Ｔ（ｔ）＝Ｃｆ（ｔ，Ｔ）・（ｐ，１）Ｔ
＝Ｘ（（（ｓ（ｔ）−ｓ（Ｔ））・ｖ（Ｔ））・ｖ（Ｔ））・Ｘ（ｓ（Ｔ））・Ｒａ（ｔ）・Ｒｂ（Ｔ）・（ｐ，１）Ｔ
であることを特徴とする請求項１に記載の画像処理方法。
【請求項４】
更に、前記視点から見える現実空間の画像を取得する第３の取得工程を備え、
前記出力工程では、前記生成工程で生成した画像を前記第３の取得工程で取得した画像上に重畳させて外部に出力することを特徴とする請求項１乃至３の何れか１項に記載の画像処理方法。
【請求項５】
観察者の視点の位置姿勢を取得する第１の取得手段と、
前記観察者が操作する指示具の位置姿勢を取得する第２の取得手段と、
第１のモード、第２のモードの何れかを指示する指示手段と、
前記第１のモードが指示された場合には、前記第２の取得手段が取得した位置姿勢に仮想物体を配置する第１の配置手段と、
前記第２のモードが指示された場合には、指示された時点における前記視点の姿勢を方向ベクトルとする直線上に仮想物体を配置する第２の配置手段と、
前記第１の配置手段、若しくは前記第２の配置手段の何れかが配置した仮想物体を含む仮想空間を、前記第１の取得手段が取得した位置姿勢の視点から見える画像を生成する生成手段と、
前記生成手段が生成した画像を外部に出力する出力手段と
を備えることを特徴とする画像処理装置。
【請求項６】
コンピュータに請求項１乃至４の何れか１項に記載の画像処理方法を実行させることを特徴とするプログラム。
【請求項７】
請求項６に記載のプログラムを格納することを特徴とする、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、指示具でもって仮想物体を移動させる為の技術に関するものである。
【背景技術】
【０００２】
複合現実感システムとは、現実空間映像と、ユーザの視点位置、視線方向等に応じて生成される仮想空間映像とを合成することにより得られる合成映像をユーザに提供するものである。複合現実感システムでは、現実空間中に仮想物体が実在しているかのような感覚を観察者に提示することが可能であり、従来の仮想現実感システム（VRシステム）に比べてよりリアルに、実寸感覚を伴った観察が可能である。
【０００３】
複合現実空間内のＣＧオブジェクトを操作するには、現実空間内での位置及び姿勢の６自由度を計測あるいは推定するシステム（ここでは６自由度センサーと呼ぶ）を用いて、この６自由度センサーの位置及び姿勢をＣＧオブジェクトの物体座標系に対応付ける方法がある。例えばＰｏｌｈｅｍｕｓ社のＦａｓｔｒａｋシステムを用いると、数センチ角ほどの大きさのレシーバの位置及び姿勢の６自由度が計測できる。この計測値をＣＧオブジェクトの物体座標系に対応付けることにより、レシーバを移動・回転するとそれにつれてＣＧオブジェクトが移動・回転することになる。
【特許文献１】特開２００４−０６２７５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、従来手法では例えば６自由度センサーに対応付けられたＣＧの蓋を、６自由度センサーに対応付けられていないＣＧの容器にぴったりとかぶせることさえ難しい。
【０００５】
これは蓋と容器との間で物理的干渉がない、というＣＧの特性上、視覚情報のみで合わせなければならないということに起因している。しかし、人間の視覚能力の制約から物体の奥行きを精度良く知覚することは困難である。
【０００６】
本発明は、以上の問題に鑑みてなされたものであり、仮想物体を移動させる際に、奥行き方向の移動を精度良く観察者に行わせる為の技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
【０００８】
即ち、観察者の視点の位置姿勢を取得する第１の取得工程と、
前記観察者が操作する指示具の位置姿勢を取得する第２の取得工程と、
第１のモード、第２のモードの何れかを指示する指示手段と、
前記第１のモードが指示された場合には、前記第２の取得工程で取得した位置姿勢に仮想物体を配置する第１の配置工程と、
前記第２のモードが指示された場合には、指示された時点における前記視点の姿勢を方向ベクトルとする直線上に仮想物体を配置する第２の配置工程と、
前記第１の配置工程、若しくは前記第２の配置工程の何れかで配置された仮想物体を含む仮想空間を、前記第１の取得工程で取得した位置姿勢の視点から見える画像を生成する生成工程と、
前記生成工程で生成した画像を外部に出力する出力工程と
を備えることを特徴とする。
【０００９】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
【００１０】
即ち、観察者の視点の位置姿勢を取得する第１の取得手段と、
前記観察者が操作する指示具の位置姿勢を取得する第２の取得手段と、
第１のモード、第２のモードの何れかを指示する指示手段と、
前記第１のモードが指示された場合には、前記第２の取得手段が取得した位置姿勢に仮想物体を配置する第１の配置手段と、
前記第２のモードが指示された場合には、指示された時点における前記視点の姿勢を方向ベクトルとする直線上に仮想物体を配置する第２の配置手段と、
前記第１の配置手段、若しくは前記第２の配置手段の何れかが配置した仮想物体を含む仮想空間を、前記第１の取得手段が取得した位置姿勢の視点から見える画像を生成する生成手段と、
前記生成手段が生成した画像を外部に出力する出力手段と
を備えることを特徴とする。
【発明の効果】
【００１１】
本発明の構成により、仮想物体を移動させる際に、奥行き方向の移動を精度良く観察者に行わせることができる。
【発明を実施するための最良の形態】
【００１２】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００１３】
［第１の実施形態］
図１は、現実空間に仮想空間を重畳させた複合現実空間を観察者（ユーザ）に提供する処理の過程で、観察者が操作する指示具（物体操作デバイス）でもって仮想物体の配置を可能にするシステムの外観を示す図である。
【００１４】
同図において２００はトランスミッタで、磁場を発生させる。１００は観察者の頭部に装着し、現実空間と仮想空間とを合成した画像を観察者の眼前に提供する為の頭部装着型表示装置（以下、ＨＭＤ：Head Mounted Displayと呼称する）で、カメラ１０２Ｒ、１０２Ｌ、表示装置１０１Ｒ、１０１Ｌ、磁気レシーバ２０１により構成されている。
【００１５】
カメラ１０２Ｒ、１０２ＬはそれぞれＨＭＤ１００を頭部に装着した観察者の右目、左目の位置から見える現実空間の動画像を撮像するものであり、撮像した各フレームの画像は後段のコンピュータ４００に出力される。以下、カメラ１０２Ｒ、１０２Ｌに共通の説明ではこれらをまとめてカメラ１０２とする場合がある。
【００１６】
表示装置１０１Ｒ、１０１Ｌはそれぞれ、観察者がＨＭＤ１００を頭部に装着したときに右目、左目の眼前に位置するようにＨＭＤ１００に装着されたものであり、後段のコンピュータ４００から出力された画像信号に基づいた画像を表示する。従って観察者の右目、左目の眼前にはコンピュータ４００が生成した画像が提供されることになる。以下、表示装置１０１Ｒ、１０１Ｌに共通の説明ではこれらをまとめて表示装置１０１とする場合がある。
【００１７】
磁気レシーバ２０１は、上記トランスミッタ２００が発する磁場の変化を検知し、検知した結果の信号を後段の位置姿勢計測装置２０５に出力するものである。検知した結果の信号は、現実空間中の所定の位置を原点とし、この原点の位置で互いに直交する３軸をそれぞれｘ、ｙ、ｚ軸とする座標系（以下、世界座標系と呼称する）において、磁気レシーバ２０１の位置姿勢に応じて検知される磁場の変化を示す信号である。
【００１８】
位置姿勢計測装置２０５は、この信号に基づいて、世界座標系における磁気レシーバ２０１の位置姿勢を求め、求めた位置姿勢を示すデータは後段のコンピュータ４００に出力される。
【００１９】
図２は、ＨＭＤ１００の具体的な構成を示す図である。
【００２０】
表示装置１０１は、０．５〜数インチ程度の小型の液晶表示デバイス等で構成されるものである。１０３は、表示装置１０１の映像を拡大するレンズの役目を果たす自由曲面プリズムである。このような構成により、表示装置１０１に表示された映像は、観察者にとってはたとえば２ｍ先に９０インチ相当の映像として提示される。
【００２１】
カメラ１０２は、ＣＣＤカメラ、ＣＭＯＳカメラなどの撮像デバイスで構成されるものである。１０４は現実空間の光をカメラ１０２に収束させるためのレンズの役目をはたす撮像系プリズムである。撮像系プリズム１０４は自由曲面プリズム１０３の外側に、光軸を一致させるように配置することで、カメラ１０２で入力した映像と、表示装置１０１に表示した映像の視差をなくし、現実空間の映像を違和感なく再現することが可能である。
【００２２】
図１に戻って、３０２は、観察者が手に保持してその位置や姿勢を変更することが可能な指示具で、その指示具３０２には上記磁気レシーバ２０１と同様の磁気レシーバ２０３が備わっており、自身の位置姿勢に応じて検知される磁場の変化を示す信号を位置姿勢計測装置２０５に出力する。
【００２３】
位置姿勢計測装置２０５は、この信号に基づいて、世界座標系における磁気レシーバ２０３の位置姿勢を求め、求めた位置姿勢を示すデータは後段のコンピュータ４００に出力される。
【００２４】
３０１は置き台である。
【００２５】
４００はコンピュータで、ＨＭＤ１００の表示装置１０１Ｒ、１０１Ｌに出力すべき画像信号を生成したり、位置姿勢計測装置２０５からのデータを受け、これを管理したり等の処理を行う。このコンピュータは一般的には例えばＰＣ（パーソナルコンピュータ）やＷＳ（ワークステーション）等により構成される。図１０は、コンピュータ４００のハードウェア構成を示す図である。
【００２６】
１００１はＣＰＵで、ＲＡＭ１００２やＲＯＭ１００３に格納されているプログラムやデータを用いてコンピュータ４００全体の制御を行うと共に、Ｉ／Ｆ１００７に接続される外部装置とのデータ通信の制御を行う。また、コンピュータ４００が行う後述の各処理を実行する。
【００２７】
１００２はＲＡＭで、外部記憶装置１００５からロードされたプログラムやデータを一時的に記憶するためのエリア、Ｉ／Ｆ１００７を介して外部から受信したデータを一時的に記憶するためのエリア、ＣＰＵ１００１が各種の処理を実行する際に必要なワークエリア等、各種のエリアを適宜提供することができる。
【００２８】
１００３はＲＯＭで、ブートプログラムやコンピュータ４００の設定データなどを格納する。
【００２９】
１００４は操作部で、キーボードやマウス、ジョイスティックなどにより構成されており、各種の指示をＣＰＵ１００１に対して入力することができる。
【００３０】
１００５は外部記憶装置で、ハードディスクドライブ装置などの大容量情報記憶装置として機能するものであり、ここにＯＳ（オペレーティングシステム）や、コンピュータ４００が行う後述の各処理をＣＰＵ１００１に実行させるためのプログラムやデータ等が保存されており、これらの一部、もしくは全部は、ＣＰＵ１００１の制御により、ＲＡＭ１００２にロードされる。また、後述の説明で、既知のデータ（情報）として説明するもの（もしくは以下説明する処理で必要となるべきデータ）もまたこの外部記憶装置１００５に保存されており、必要に応じてＣＰＵ１００１の制御により、ＲＡＭ１００２にロードされる。
【００３１】
１００６は表示部で、ＣＲＴや液晶画面等により構成されており、ＣＰＵ１００１による処理結果を画像や文字等でもって表示する。
【００３２】
１００７はＩ／Ｆで、ここに上記位置姿勢計測装置２０５、ＨＭＤ１００等が接続されており、このＩ／Ｆ１００７を介して、コンピュータ４００は位置姿勢計測装置２０５、ＨＭＤ１００等とのデータ通信を行うことができる。
【００３３】
１００８は上述の各部を繋ぐバスである。
【００３４】
以上の構成を備えるコンピュータ４００は、カメラ１０２Ｒ、１０２Ｌそれぞれから得られる現実空間の画像を取り込むと共に、後述の各処理によって仮想物体（以下、モックアップモデルと呼称する場合がある）を配置し、磁気レシーバ２０１から得られる位置姿勢に基づいて、配置したモックアップモデルを含む仮想空間をカメラ１０２Ｒ、１０２Ｌから見た場合に見える画像（仮想空間の画像）を生成する。そして、生成した画像を、先に取り込んだ現実空間の画像上に重畳させ、重畳させた画像を表示装置１０１Ｒ、１０１Ｌに出力する。これにより、ＨＭＤ１００を頭部に装着した観察者の右目、左目の眼前には、それぞれの目の位置姿勢に対応した複合現実空間画像が表示されることになる。
【００３５】
図３は、このコンピュータ４００の機能構成を示す図である。本実施形態では、同図に示した各部はソフトウェアでもって構成されたものとして説明する。なお、ソフトウェアの実行処理はＣＰＵ１００１によりなされるものである。しかし、図３に示した各部の一部、もしくは全部をハードウェアでもって構成するようにしても良い。
【００３６】
４０１Ｒ、４０１Ｌは映像キャプチャ部であり、それぞれカメラ１０２Ｒ、１０２Ｌより入力した画像をディジタル信号として取り込む。
【００３７】
４０４は位置姿勢情報入力部であり、位置姿勢計測装置２０５から出力されたデータを取り込む。このデータは即ち、磁気レシーバ２０１の世界座標系における位置姿勢を示すデータ、磁気レシーバ２０３の世界座標系における位置姿勢を示すデータである。
【００３８】
４０６は、３ＤＣＧ描画データで、モックアップモデルの画像を生成するためのデータである。３ＤＣＧ描画データには、このモックアップモデルの幾何学形状や色を示すデータ、テクスチャデータなどが含まれる。
【００３９】
４０５は位置姿勢算出部であり、位置姿勢情報入力部４０４から入力される磁気レシーバ２０１、２０３の世界座標系における位置姿勢を示すデータを用いて、世界座標系におけるカメラ１０２Ｒ，１０２Ｌの位置姿勢、および世界座標系における指示具３０２の位置姿勢を求める。
【００４０】
４０７はＣＧレンダリング部で、先ず、後述の処理に従ってモックアップモデルを仮想空間中に配置する。そして、カメラ１０２Ｒ、１０２Ｌの位置姿勢（磁気レシーバ２０１とカメラ１０２Ｒ、１０２Ｌとの位置姿勢関係を予めバイアスとして求めておけば、磁気レシーバ２０１により計測した位置姿勢にこのバイアスを加えることで、カメラ１０２Ｒ、１０２Ｌの位置姿勢は求めることができる）に応じて見える仮想空間の画像（配置したモックアップモデルを含む仮想空間の画像）を生成する。なお、所定の位置姿勢を有する視点から見える仮想空間の画像を生成する処理については周知の技術であるので、これに関する詳細な説明は省略する。また、以下では、カメラ１０２Ｒ、１０２Ｌを総称して「視点」と呼称する場合がある。
【００４１】
４０２Ｒ、４０２Ｌはそれぞれ映像合成部であり、映像キャプチャ部４０１Ｒ、４０１Ｌから入力した現実空間の画像上に、ＣＧレンダリング部４０７が生成したカメラ１０２Ｒの位置姿勢に応じて見える仮想空間の画像、カメラ１０２Ｌの位置姿勢に応じて見える仮想空間の画像を重畳させ、それぞれ、映像生成部４０３Ｒ、４０３Ｌに出力する。これにより、カメラ１０２Ｒの位置姿勢に応じて見える複合現実空間の画像、カメラ１０２Ｌの位置姿勢に応じて見える複合現実空間の画像を生成することができる。
【００４２】
映像生成部４０３Ｒ、４０３Ｌはそれぞれ、映像合成部４０２Ｒ、４０２Ｌから出力された複合現実空間の画像をアナログ信号に変換し、それぞれ表示装置１０１Ｒ、１０１Ｌに映像信号として出力する。これにより、ＨＭＤ１００を頭部に装着した観察者の右目、左目の眼前には、それぞれの目に対応した複合現実空間の画像が表示される。
【００４３】
上記構成による一般的なシステムの処理の流れを、図４を用いて説明する。図４は、観察者に複合現実空間の画像を提供するためにシステムを構成する各装置が行う処理の流れを示す図である。
【００４４】
観察者が自身の手に保持している指示具３０２に備わっている磁気レシーバ２０３は、世界座標系における自身の位置姿勢に応じた磁気を検知するので、その検知結果を信号として位置姿勢計測装置２０５に出力する。位置姿勢計測装置２０５は、受けた信号に基づいて、世界座標系における磁気レシーバ２０３の位置姿勢を示すデータをコンピュータ４００に出力する（２０１０）。
【００４５】
また、観察者の頭部に装着されているＨＭＤ１００に備わっている磁気レシーバ２０１は自身の世界座標系における位置姿勢に応じた磁気を検知するので、その検知結果を信号として位置姿勢計測装置２０５に出力する。位置姿勢計測装置２０５は、受けた信号に基づいて、世界座標系における磁気レシーバ２０１の位置姿勢を示すデータをコンピュータ４００に出力する（２０２０）。
【００４６】
コンピュータ４００側では、Ｉ／Ｆ１００７を介して「世界座標系における磁気レシーバ２０１の位置姿勢を示すデータ」、「世界座標系における磁気レシーバ２０３の位置姿勢を示すデータ」が入力されるので、ＣＰＵ１００１はこれらを一時的にＲＡＭ１００２に格納する。そしてＣＰＵ１００１は位置姿勢算出部４０５として機能し、世界座標系におけるカメラ１０２Ｒ、１０２Ｌの位置姿勢を求める（２０３０）。
【００４７】
ここで、磁気レシーバ２０１とカメラ１０２Ｒとの位置姿勢関係、磁気レシーバ２０１とカメラ１０２Ｌとの位置姿勢関係はそれぞれバイアスとして予め測定しておき、データとして外部記憶装置１０５に保存しておくので、Ｉ／Ｆ１００７を介して世界座標系における磁気レシーバ２０１の位置姿勢を受信すると、これにそれぞれバイアスを加えることで、世界座標系におけるカメラ１０２Ｒ、１０２Ｌの位置姿勢が求まる。
【００４８】
なお、このように、世界座標系における視点の位置姿勢を求める為の処理、及び構成についてはこれに限定するものではないし、またこのような処理は一般に周知のものであるので、これ以上の説明は省略する。
【００４９】
また以下では、世界座標系における磁気レシーバ２０３の位置姿勢を「世界座標系における指示具３０２の位置姿勢」として用いる。
【００５０】
また、世界座標系は現実空間と仮想空間とで共有しているものとする。即ち、現実空間における世界座標系の原点、及び座標軸と、仮想空間における世界座標系の原点、及び座標軸とはそれぞれ一致しているものとする。
【００５１】
そしてＣＰＵ１００１はＣＧレンダリング部４０７として機能するのであるが、先ず、「世界座標系における視点の位置姿勢」、「世界座標系における指示具３０２の位置姿勢」を用いて、カメラ座標系（視点（カメラ１０２Ｒ、１０２Ｌの何れか、若しくはそれぞれの位置の中点）の位置姿勢を基準とする座標系であり、視点の位置を原点とし、この原点位置から視線方向にのびる軸と、この軸で直交する２軸とで構成される座標系）における指示具３０２の位置姿勢を求め、求めた位置姿勢に基づいてモックアップモデルを配置する。そして、配置したモックアップモデルを含む仮想空間を、カメラ１０２Ｒ、１０２Ｌのそれぞれから見た場合に見える画像を生成する（２０４０）。
【００５２】
これにより、カメラ１０２Ｒの位置姿勢に応じて見える仮想空間の画像、カメラ１０２Ｌの位置姿勢に応じて見える仮想空間の画像を生成することができる。
【００５３】
一方で、カメラ１０２Ｒ、１０２Ｌはそれぞれ、現実空間の動画像を撮像するので、各フレームの画像信号はコンピュータ４００に入力される（３０１０）。コンピュータ４００側では、Ｉ／Ｆ１００７を介して各フレームの画像がデータとして入力されるので、ＣＰＵ１００１はこれをＲＡＭ１００２に順次格納する（３０２０）。
【００５４】
そして、ＣＰＵ１００１は、ＲＡＭ１００２に格納した現実空間の画像上に上記処理で生成した仮想空間の画像を重畳させて、複合現実空間の画像を生成する（４０１０）。より詳しくは、カメラ１０２Ｒから入力した現実空間の画像上に、カメラ１０２Ｒから見た仮想空間の画像を重畳させて、カメラ１０２Ｒから見える複合現実空間の画像を生成すると共に、カメラ１０２Ｌから入力した現実空間の画像上に、カメラ１０２Ｌから見た仮想空間の画像を重畳させて、カメラ１０２Ｌから見える複合現実空間の画像を生成する。
【００５５】
そして生成したそれぞれの複合現実空間画像をＩ／Ｆ１００７を介して表示装置１０２Ｒ、１０２Ｌに出力する。これにより、ＨＭＤ１００を頭部に装着した観察者の右目、左目の眼前には、それぞれの目に対応した複合現実空間の画像が表示される。
【００５６】
なお、この画像上には、指示具３０２の位置姿勢に基づいて配置されたモックアップモデルの画像も含まれ得る。
【００５７】
ここで、一般に３ＤＣＧデータは３ＤＣＧオブジェクトという仮想物体の集合で定義される。３ＤＣＧオブジェクトの表現にはいくつか方法があるが、ここでは３ＤＣＧオブジェクトは平面分あるいは３ＤＣＧオブジェクトの集合と定義する。平面分はそれを構成する複数の頂点の座標から構成され、さらに各頂点または平面分の法線や色等を含むこともある。この座標や法線を定義するのに用いた座標系を物体座標系と呼び、各ＣＧオブジェクトに対してひとつ定義される。
【００５８】
座標系にはまた世界座標系、あるいは絶対座標系というものもある。これは仮想空間にひとつ定義されたもので、一般に静止していると考えて差し支えのないものを選ぶ。たとえば部屋のインテリアの配置を行うのであれば、部屋に対して静止している座標系（「部屋」を構成するＣＧオブジェクトの物体座標系でもよい）を選択する。
【００５９】
仮想空間にＣＧオブジェクトを配置するとは、そのＣＧオブジェクトの物体座標系を世界座標系に配置するということである。例えば同一のＣＧデータのインスタンスがふたつあった場合、これらの物体座標系を世界座標系内で１メートル離して配置すれば１メートル離れた位置に同じ形状のふたつの物体があることになる。
【００６０】
観察者が仮想空間内に配置されたＣＧオブジェクトを観察するということは、さらに仮想空間内にカメラを配置し、そのカメラが撮影する映像を観察するということになる。このカメラに対して静止した座標系をカメラ座標系と呼ぶ。すなわち仮想空間内に配置されたＣＧオブジェクトを観察するとは、各ＣＧオブジェクト固有の物体座標系を世界座標系を経由してカメラ座標系に変換することに他ならない。
【００６１】
そこで、上記２０３０の処理において、モックアップモデルやその他の仮想物体を配置する為の処理について、説明する。
【００６２】
図５は、上記処理２０３０において、モックアップモデルやその他の仮想物体を配置するための処理の流れを示す図である。
【００６３】
ここで、モックアップモデルを含む各仮想物体は、ポリゴン（平面分）でもって構成されているものとして説明するが、仮想物体の構成要素がポリゴンでなくても以下の説明の本質は変わらない。
【００６４】
仮想物体を構成する各ポリゴンの各頂点の座標値は、この仮想物体に１つ定義される座標系（物体座標系）に従っている。よって、仮想空間中に所望の位置姿勢でもって仮想物体を配置する場合には、物体座標系が仮想空間中で所望の位置姿勢となるように各ポリゴンの各頂点の座標値を変換する。
【００６５】
また、本実施形態では、モックアップモデルは指示具３０２の位置姿勢に基づいて配置するし、それ以外の仮想物体については予め決められた位置姿勢に配置される。
【００６６】
そこで、図５に示す如く、モックアップモデルについては、指示具３０２の位置姿勢に基づいて仮想空間中のモックアップモデルの配置位置姿勢が決まると、モックアップモデルの物体座標系が仮想空間中でこの配置位置姿勢となるべく、モックアップモデルを構成する各ポリゴンの各頂点の座標値を変換する（５０１）。また、その他の仮想物体については、予め仮想空間中に配置する位置姿勢が決まっているので、その他の仮想物体の物体座標系が仮想空間中でこの配置位置姿勢となるべく、仮想物体を構成する各ポリゴンの各頂点の座標値を変換する（５０２）。
【００６７】
そして、それぞれ求めた配置位置を、カメラ座標系におけるものに変換する。即ち、カメラ座標系におけるそれぞれの仮想物体の位置姿勢を求める（５０３）。
【００６８】
これにより、各仮想物体を仮想空間中に配置することができる。なお、以上の説明、即ち、モックアップモデルを含む各仮想物体を仮想空間中に配置し、仮想物体の配置後の仮想空間を視点から見た画像の生成については周知のものであるのだが、本実施形態では更に、モックアップモデルの配置位置姿勢の自由度を観察者が適宜変更可能とするような構成を有する。
【００６９】
次に、モックアップモデルの配置位置（及び姿勢）の決定方法について説明する。
【００７０】
本実施形態では、コンピュータ４００の操作者（ＨＭＤ１００を頭部に装着した観察者でも良い）は、操作部１００４を用いて２つのモードのうち何れかを設定することができる。一方のモードは、モックアップモデルを指示具３０２の位置姿勢に配置することで、その位置姿勢を自在に変更可能にするモード（第１のモード）、他方のモードは、モードを設定した時点での視線方向のみにモックアップモデルを移動可能にさせるモード（第２のモード）である。
【００７１】
ここで、モックアップモデルを構成する各ポリゴンの各頂点の座標値（３次元行ベクトル）をｐ、モックアップモデルの物体座標系をモックアップモデルの配置位置姿勢でもって仮想空間中に配置するべく、この座標値ｐを変換した座標値（３次元行ベクトル）をｐ’とする。ここで、ｐ、ｐ’は３次元行ベクトルではあるものの、移動変換を行列演算で行うために、同次座標を用いる。よって、ｐの要素３つに４つめの要素１を並べた行ベクトルを（ｐ、１）とすると、以下の式が成り立つ。
【００７２】
（ｐ’，１）Ｔ＝Ｃｓ・（ｐ，１）Ｔ＝Ｘｓ・Ｒｓ・（ｐ，１）Ｔ
ここでＣｓは（ｐ、１）を（ｐ’、１）に変換するための変換行列であり、平行移動行列Ｘｓ、回転行列Ｒｓの積でもって表現される。
【００７３】
ここで、第１のモードが選択されると、ＣＰＵ１００１はこれを検知し、時刻ｔの時点での世界座標系における指示具３０２の位置姿勢によって決まるベクトルｓ（ｔ）を取得し、これを用いて、ｐ’を
（ｐ’，１）Ｔ（ｔ）＝Ｃｓ（ｔ）・（ｐ，１）Ｔ＝Ｘ（ｓ（ｔ））・Ｒｓ（ｔ）・（ｐ，１）Ｔ    （１）
として求められる。ここでＸ（ｓ）はベクトルｓだけ移動させる平行移動行列である。
【００７４】
これにより、指示具３０２の位置姿勢が得られれば、モックアップモデルは、常に指示具３０２の位置姿勢に配置されていることになる。逆に言えばｓ（ｔ）はモックアップモデルが常に指示具３０２の位置姿勢に配置されるように定める。前述の通りｓ（ｔ）は指示具３０２の位置姿勢のみから算出可能である。
【００７５】
一方、第２のモードを選択すると、ＣＰＵ１００１はこれを検知し、先ず、モードが選択されたタイミングＴにおける指示具３０２の位置姿勢によって決まるベクトルｓ（Ｔ）、及びその時点での視線方向ｖ（Ｔ）（単位ベクトル）をＲＡＭ１００２に記憶させる。
【００７６】
そして、ｐ’を以下の式に従って求める。
【００７７】
（ｐ’，１）Ｔ（ｔ）＝Ｃｆ（ｔ，Ｔ）・（ｐ，１）Ｔ      （２）
＝Ｘ（（（ｓ（ｔ）−ｓ（Ｔ））・ｖ（Ｔ））・ｖ（Ｔ））・Ｃｓ（Ｔ）・（ｐ，１）Ｔ
即ち、指示具３０２の位置姿勢をどのように変更させても、モックアップモデルはタイミングＴにおける視線方向に平行な方向のみにしか移動しなくなる（タイミングＴにおける視点の姿勢を方向ベクトルとする直線上に仮想物体を配置。なお視点の姿勢を表す方向ベクトルとは視線方向を表す方向ベクトルのことである。）。
【００７８】
図６は、処理２０３０中の、モックアップモデルの配置処理のフローチャートである。ＣＰＵ１００１は、操作部１００４からのモードの選択指示を受け付け、第１のモードが選択されると、処理をステップＳ６０１を介してステップＳ６０２に進め、上記式（１）に従ってモックアップモデルを仮想空間中に配置する（ステップＳ６０２）。一方、第２のモードが選択されると、処理をステップＳ６０１を介してステップＳ６０３に進め、第２のモードが選択されたタイミングＴにおける指示具３０２の位置姿勢によって決まるベクトルｓ（Ｔ）、視線方向ｖ（Ｔ）をＲＡＭ１００２に格納する（ステップＳ６０３）。そして格納したｓ（Ｔ）、ｖ（Ｔ）を用いて上記式（２）に従ってモックアップモデルを仮想空間中に配置する（ステップＳ６０４）。
【００７９】
即ち、モードを切り替えることで、変換に用いる行列を切り替え得ることになる。なお、この説明では、モードの切り替えは操作部１００４を用いて行うとしたが、指示具３０２にスイッチを設け、このスイッチでもってモードの選択指示を入力するようにしても良いし、その入力形態については限定するものではない。
【００８０】
また、指示具３０２の一連の動きを時刻と共に記録しておき、その記録をもとにビデオ編集における特定フレームの検索のように、再生やコマ送りを行いながら時刻を指定してもよい。すなわち、あるタイミングＴを求めるために最も有用な方式を用いればよく、タイミングＴの求め方については特に限定するものではない。
【００８１】
また、本実施形態では、ＨＭＤにはビデオシースルータイプのものを用いているが、光学シースルータイプのものを用いるようにしても良い。
【００８２】
［第２の実施形態］
第１の実施形態で説明したモックアップモデルの移動制御では、モックアップモデルの形状によっては所望の位置に移動させることが難しい場合もある。その例を図７に示す。  図７（ａ）は、２つの仮想物体７０１，７０２が所望の位置姿勢で合わさっている状態を示す図で、図７（ｂ）は、２つの仮想物体７０１，７０２が所望の位置姿勢で合わさっていない状態を示す図である。
【００８３】
このように、仮想物体７０２の形状によっては、図７（ｂ）に示す如く、仮想物体７０１に合わせることが難しい場合もあり、且つ何れの場合にも視点７００からは図８に示す如く、同じように見える。図８は、仮想物体７０１，７０２を視点７００から見たときに見える画像の例を示す図である。
【００８４】
このような問題を解消するためには、図７の紙面に垂直な方向かつ図８の左右方向に軸を取り、この軸まわりの回転は拘束しないようにする。
【００８５】
こうすることにより、観察者はたとえばこの仮想物体の右側に回り込んで（この場合は観察者からは図７のように見える）仮想物体の位置姿勢を調整することが容易になる。
【００８６】
具体的には第１の実施形態において回転行列Ｒを上記軸回りの回転の変換Ｒａとその他の変換Ｒｂに分解する。
【００８７】
Ｒ＝Ｒａ・Ｒｂ
その結果、以下の式が成り立つ。
【００８８】
（ｐ’，１）Ｔ（ｔ）＝Ｃｆ（ｔ，Ｔ）・（ｐ，１）Ｔ
＝Ｘ（（（ｓ（ｔ）−ｓ（Ｔ））・ｖ（Ｔ））・ｖ（Ｔ））・Ｘ（ｓ（Ｔ））・Ｒａ（ｔ）・Ｒｂ（Ｔ）・（ｐ，１）Ｔ
［第３の実施形態］
第１，２の実施形態では、１つの指示具に対して１つの仮想物体を関連付けて操作する場合を説明したが、複数の指示具のそれぞれに仮想物体を関連付けて操作するようにしても良い。
【００８９】
図７に示すＣＧオブジェクト７０２は世界座標系内で静止しており、これに合わせるようにＣＧオブジェクト７０１を操作するように第２の実施形態では説明を行った。しかしＣＧオブジェクト７０２にも別の物体操作デバイスが関連付けられていれば、例えばＣＧオブジェクト７０１は右手で、ＣＧオブジェクト７０２は左手で操作を行うことができる。こうすることにより物体の操作が容易になり、また観察者から指示を出した後に、観察者自らが回りこまずとも物体操作デバイスを回転させることで先ほどまで見えづらかった方向からＣＧオブジェクトを観察することができる。
【００９０】
但しこの場合は、観察者が指示を出した時点でＣＧオブジェクト７０１の動きを世界座標系に対して制限しても意味がない。ＣＧオブジェクト７０１はＣＧオブジェクト７０２に対して合わせこむ作業を行っているのであるから、ＣＧオブジェクト７０２に対して動きを制限しなければならない。
【００９１】
このためには、図９に示したフローチャートに従った処理を行うことで、モックアップモデル（ここではＣＧオブジェクト７０１に相当）の配置処理を行えばよい。図９は、本実施形態に係るモックアップモデルの配置処理のフローチャートである。
【００９２】
先ず、以下で用いる座標値を全て仮想物体７０２の基準座標系におけるものに変換する（ステップＳ９０１）。この基準座標系とは、仮想物体７０２の位置姿勢を基準とする座標系であり、仮想物体７０２の位置を原点とし、姿勢成分で決まる３軸とで構成される座標系のことである。
【００９３】
そして、この座標系において図６のフローチャートに従った処理を行う（ステップＳ９０２）。そして、ステップＳ９０２による処理により得られる座標値は上記基準座標系に従ったものであるので、これを世界座標系におけるものに変換する（ステップＳ９０３）。
【００９４】
こうすることによりＣＧオブジェクト７０１はＣＧオブジェクト７０２に対して移動が制限されたものになる。なお、当然のことであるが最終的に求める変換Ｃ（ＣｓもしくはＣｆ）はステップＳ９０２で得られるそのものではなく、ＣＧオブジェクト７０２に対する座標変換とその逆変換（世界座標系に対する座標値に戻す変換）の合成変換とする。
【００９５】
以上の説明により、何れの実施形態であっても、観察者が指定するタイミングで、観察者から見て奥行き方向へのＣＧの移動操作のみを許可し、他の方向すなわち観察者の視線に垂直な方向への移動を制限することにより、６自由度センサーに対応付けられたＣＧ物体を他のＣＧ物体、あるいは現実物体との位置関係を所望の通りに合わせることが可能になる。
【００９６】
［その他の実施形態］
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【００９７】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００９８】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００９９】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１００】
【図１】現実空間に仮想空間を重畳させた複合現実空間を観察者（ユーザ）に提供する処理の過程で、観察者が操作する指示具（物体操作デバイス）でもって仮想物体の配置を可能にするシステムの外観を示す図である。
【図２】ＨＭＤ１００の具体的な構成を示す図である。
【図３】コンピュータ４００の機能構成を示す図である。
【図４】観察者に複合現実空間の画像を提供するためにシステムを構成する各装置が行う処理の流れを示す図である。
【図５】処理２０３０において、モックアップモデルやその他の仮想物体を配置するための処理の流れを示す図である。
【図６】処理２０３０中の、モックアップモデルの配置処理のフローチャートである。
【図７】（ａ）は、２つの仮想物体７０１，７０２が所望の位置姿勢で合わさっている状態を示す図、（ｂ）は、２つの仮想物体７０１，７０２が所望の位置姿勢で合わさっていない状態を示す図である。
【図８】仮想物体７０１，７０２を視点７００から見たときに見える画像の例を示す図である。
【図９】本発明の第３の実施形態に係るモックアップモデルの配置処理のフローチャートである。
【図１０】コンピュータ４００のハードウェア構成を示す図である。
【図１】
2006252059.tif 000003
【図２】
2006252059.tif 000004
【図３】
2006252059.tif 000005
【図４】
2006252059.tif 000006
【図５】
2006252059.tif 000007
【図６】
2006252059.tif 000008
【図７】
2006252059.tif 000009
【図８】
2006252059.tif 000010
【図９】
2006252059.tif 000011
【図１０】
2006252059.tif 000012