(57)【特許請求の範囲】
【請求項１】
ユーザの視点の姿勢を取得する姿勢取得手段と、
前記姿勢取得手段により取得された姿勢に基づいて仮想平面を設定する設定手段と、
前記ユーザが操作する指示具または前記ユーザの規定の部位の位置を取得する第１の取得手段と、
前記第１の取得手段によって取得された位置を前記仮想平面上に投影することにより、前記仮想平面上における投影位置を取得する第２の取得手段と、
前記第２の取得手段によって取得した投影位置に基づいて、仮想物体のデータを生成する生成手段と、
前記生成手段によって生成された仮想物体のデータを出力する出力手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記生成手段は、
前記第２の取得手段によって取得された投影位置の集合を輪郭とした仮想物体のデータを生成することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記設定手段は、
前記姿勢取得手段によって取得された姿勢のベクトルを法線ベクトルとし、前記第１の取得手段によって取得された位置を含む平面を、前記仮想平面として設定することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
ユーザの視点の位置姿勢を取得し、該取得した位置姿勢を用いて該視点から見える仮想物体の画像を生成し、該生成した仮想物体の画像を出力する情報処理装置であって、
前記ユーザが操作する指示具の位置を取得する取得手段と、
仮想空間中の、前記取得手段が取得した位置に、仮想平面を設定する設定手段と、
前記仮想平面の設定後、前記指示具の移動軌跡を記録する第１の記録手段と、
前記移動軌跡を前記仮想平面上に投影した投影移動軌跡を求め、該求めた投影移動軌跡を、生成対象仮想物体の前記仮想平面上における輪郭を表す輪郭データとして記録する第２の記録手段と
を備え、
前記取得手段は更に前記指示具の姿勢ベクトルを取得し、
前記設定手段は、
前記姿勢ベクトルを法線ベクトルとし、前記視点の位置から規定の距離だけ離間した点を含む平面を、前記仮想平面として設定することを特徴とする情報処理装置。
【請求項５】
ユーザの視点の位置姿勢を取得し、該取得した位置姿勢を用いて該視点から見える仮想物体の画像を生成し、該生成した仮想物体の画像を出力する情報処理装置であって、
前記ユーザが操作する指示具の位置を取得する取得手段と、
仮想空間中の、前記取得手段が取得した位置に、仮想平面を設定する設定手段と、
前記仮想平面の設定後、前記指示具の移動軌跡を記録する第１の記録手段と、
前記移動軌跡を前記仮想平面上に投影した投影移動軌跡を求め、該求めた投影移動軌跡を、生成対象仮想物体の前記仮想平面上における輪郭を表す輪郭データとして記録する第２の記録手段と
を備え、
前記設定手段は、
前記視点の位置と前記指示具の位置とを通るベクトルを法線ベクトルとし、前記指示具の位置を含む平面を、前記仮想平面として設定することを特徴とする情報処理装置。
【請求項６】
ユーザの視点の位置姿勢を取得し、該取得した位置姿勢を用いて該視点から見える仮想物体の画像を生成し、該生成した仮想物体の画像を出力する情報処理装置であって、
前記ユーザが操作する指示具の位置を取得する取得手段と、
仮想空間中の、前記取得手段が取得した位置に、仮想平面を設定する設定手段と、
前記仮想平面の設定後、前記指示具の移動軌跡を記録する第１の記録手段と、
前記移動軌跡を前記仮想平面上に投影した投影移動軌跡を求め、該求めた投影移動軌跡を、生成対象仮想物体の前記仮想平面上における輪郭を表す輪郭データとして記録する第２の記録手段と
を備え、
前記取得手段は更に前記指示具の姿勢ベクトルを取得し、
前記設定手段は、
前記姿勢ベクトルを法線ベクトルとし、前記指示具の位置を含む平面を、前記仮想平面として設定することを特徴とする情報処理装置。
【請求項７】
ユーザの視点の位置姿勢を取得し、該取得した位置姿勢を用いて該視点から見える仮想物体の画像を生成し、該生成した仮想物体の画像を出力する情報処理装置であって、
前記ユーザが操作する指示具の位置を取得する取得手段と、
仮想空間中の、前記取得手段が取得した位置に、仮想平面を設定する設定手段と、
前記仮想平面の設定後、前記指示具の移動軌跡を記録する第１の記録手段と、
前記移動軌跡を前記仮想平面上に投影した投影移動軌跡を求め、該求めた投影移動軌跡を、生成対象仮想物体の前記仮想平面上における輪郭を表す輪郭データとして記録する第２の記録手段と
を備え、
前記取得手段は、前記指示具の複数の位置を取得し、
前記設定手段は、
前記複数の位置を含む平面を、前記仮想平面として設定することを特徴とする情報処理装置。
【請求項８】
更に、
規定のタイミングごとに前記第１の取得手段が取得した位置の集合を、前記指示具または前記ユーザの規定の部位の移動軌跡として記録する記録手段を備えることを特徴とする請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項９】
前記規定のタイミングは、前記指示具に備わっているボタンが押下されたことで該指示具において発生するイベントを前記情報処理装置が検知したタイミングであることを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記規定のタイミングは、予め定められた時間間隔毎のタイミングであることを特徴とする請求項８に記載の情報処理装置。
【請求項１１】
更に、
前記視点の位置姿勢を有する撮像装置が撮像した現実空間の画像を取得する手段と、
前記出力手段によって出力されたデータが表す仮想物体の画像と前記現実空間の画像とを合成する手段と
を備えることを特徴とする請求項１乃至３、８乃至１０の何れか１項に記載の情報処理装置。
【請求項１２】
前記指示具は、スタイラスを含むポインティングデバイスを含むことを特徴とする請求項１乃至１１の何れか１項に記載の情報処理装置。
【請求項１３】
情報処理装置が行う情報処理方法であって、
前記情報処理装置の姿勢取得手段が、ユーザの視点の姿勢を取得する姿勢取得工程と、
前記情報処理装置の設定手段が、前記姿勢取得工程で取得された姿勢に基づいて仮想平面を設定する設定工程と、
前記情報処理装置の第１の取得手段が、前記ユーザが操作する指示具または前記ユーザの規定の部位の位置を取得する第１の取得工程と、
前記情報処理装置の第２の取得手段が、前記第１の取得工程で取得された位置を前記仮想平面上に投影することにより、前記仮想平面上における投影位置を取得する第２の取得工程と、
前記情報処理装置の生成手段が、前記第２の取得工程で取得した投影位置に基づいて、仮想物体のデータを生成する生成工程と、
前記情報処理装置の出力手段が、前記生成工程で生成された仮想物体のデータを出力する出力工程と
を備えることを特徴とする情報処理方法。
【請求項１４】
コンピュータを、請求項１乃至１２の何れか１項に記載の情報処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、現実空間と仮想空間との合成空間において仮想物体を作成するための技術に関する。
【背景技術】
【０００２】
従来、製造設計分野では、三次元モデルを設計する際、三次元CADシステムが用いられている。従来の三次元CADシステムでは、作業者はディスプレイ（モニタ）とマウスとを使って三次元モデルを作成する際に、基準となる平面を設定し、平面上に三次元モデルの底面を作成し、高さを与えることによって三次元モデルを作成するのが一般的である。
【０００３】
さらに、HMD（ヘッドマウントディスプレイ、頭部装着型ディスプレイ）を用いて仮想現実空間で三次元CADシステムを用いて設計を行なう事が可能なシステムも研究されている（非特許文献１）。
【０００４】
また、三次元CADのように専門の知識を持たなくても簡易に三次元モデルを作成するために、作業者が作成したい三次元モデルの輪郭を描くだけでモデルの作成が可能なシステムも研究されている（非特許文献２）。
【０００５】
一方、近年では、現実空間と仮想空間との繋ぎ目のない結合を目的とした、複合現実感（ＭＲ：Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ）に関する研究が盛んに行われている。複合現実感の提示を行う画像表示装置は、例えば次のような構成を有する装置である。即ち、ビデオカメラ等の撮像装置が撮像した現実空間の画像上に、撮像装置の位置及び姿勢に応じて生成した仮想空間の画像（例えばコンピュータグラフィックスにより描画された仮想物体や文字情報等）を重畳描画した画像を表示する装置である。このような装置には、例えば、ＨＭＤを用いることができる。
【０００６】
また、係る画像表示装置は、作業者の頭部に装着された光学シースルー型ディスプレイに、作業者の視点の位置及び姿勢に応じて生成した仮想現実空間の画像を表示する方式によっても実現される。
【０００７】
ところで、仮想現実空間または複合現実空間を作業者に提示する画像表示装置に対して、仮想現実空間または複合現実空間に対して操作を行うためのインターフェースが各種提案されている（特許文献１）。このような以上の技術を組み合わせることで、仮想現実空間又は複合現実空間で三次元モデルを作成することが可能となる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特許第０３９４４０１９号公報
【非特許文献】
【０００９】
【非特許文献１】井上智之、西住直樹、鈴木伸明、安福尚文、佐賀聡人、仮想空間中での手書きジェスチャ認識に基づいた3次元モデリングインタフェースBlueGrottoの提案 電子情報通信学会論文誌(D-II) 、J87-D-II、6、 (2004-06)、pp.1309-1318」
【非特許文献２】T. Igarashi、 S. Matsuoka、 and H. Tanaka。 Teddy: A sketching interface for 3D freeform design. In SIGGRAPH ’99 Proceedings、 pp.409-416、 1999
【発明の概要】
【発明が解決しようとする課題】
【００１０】
従来の方法では作業者が、仮想現実空間又は複合現実空間で仮想物体の作成を行う際、事前に決定した任意平面を基準としてモデリングを行なっていた。この方法では、任意の平面上に仮想物体を作成することは出来るが、仮想現実空間または複合現実空間において、作業者が簡易に仮想物体を作成したい場所に作成することが難しかった。この時、作業者が仮想物体の作成を行う際には、作業者の動作によって自動的に任意の平面が決定され仮想物体の作成が可能となる事が求められていた。
【００１１】
本発明は以上の問題に鑑みてなされたものであり、仮想現実空間または複合現実空間においてユーザの意図した場所に仮想物体を作成するための技術を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の目的を達成するために、例えば、本発明の情報処理装置は以下の構成を備える。即ち、ユーザの視点の姿勢を取得する姿勢取得手段と、
前記姿勢取得手段により取得された姿勢に基づいて仮想平面を設定する設定手段と、
前記ユーザが操作する指示具または前記ユーザの規定の部位の位置を取得する第１の取得手段と、
前記第１の取得手段によって取得された位置を前記仮想平面上に投影することにより、前記仮想平面上における投影位置を取得する第２の取得手段と、
前記第２の取得手段によって取得した投影位置に基づいて、仮想物体のデータを生成する生成手段と、
前記生成手段によって生成された仮想物体のデータを出力する出力手段と
を備えることを特徴とする。
【発明の効果】
【００１３】
本発明の構成によれば、仮想現実空間または複合現実空間においてユーザの意図した場所に仮想物体を作成することができる。
【図面の簡単な説明】
【００１４】
【図１】システムの構成例を示すブロック図。
【図２】システムの外観図。
【図３】仮想物体形状記憶部１０８０の構成例を示すブロック図。
【図４】仮想物体形状記憶部１０８０の動作を説明する図。
【図５】仮想物体形状生成部３０４０の構成例を示すブロック図。
【図６】生成対象仮想物体２０１０を生成するための手順を示す図。
【図７】情報処理装置１９００が行う処理のフローチャート。
【図８】システムの構成例を示すブロック図。
【図９】システムの外観図。
【図１０】情報処理装置８９００が行う処理のフローチャート。
【図１１】第１１の実施形態を説明する図。
【図１２】情報処理装置１９００（８９００）に適用可能なコンピュータの構成例を示すブロック図。
【発明を実施するための形態】
【００１５】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の１つである。
【００１６】
［第１の実施形態］
先ず、本実施形態に係るシステムについて、図１のブロック図及び図２の外観図を用いて説明する。図２に示す如く、現実空間中の所定の位置には、磁界を発生する磁界発生装置２０２０が設けられている。この磁界発生装置２０２０の動作制御はセンサコントローラ２０３０が行う。
【００１７】
頭部装着型表示装置としてのＨＭＤ１０００には、磁気センサ（例えばPolhemus社の３D SPACE FASTRAKセンサ）としての頭部位置姿勢計測部１０２０が取り付けられている。頭部位置姿勢計測部１０２０は、磁界発生装置２０２０が発生する磁界中における自身の位置姿勢に応じた磁界の変化を計測し、その計測結果をセンサコントローラ２０３０に対して送出する。センサコントローラ２０３０は、この計測結果から、センサ座標系における頭部位置姿勢計測部１０２０の位置姿勢を示す信号値を生成して情報処理装置１９００に送出する。ここで、センサ座標系とは、磁界発生装置２０２０の位置を原点とし、この原点で互いに直交する３軸をそれぞれ、Ｘ軸、Ｙ軸、Ｚ軸とする座標系である。以下では説明を簡単にするために、仮想空間を規定する座標系の原点及び３軸は何れもセンサ座標系と一致しているものとするが、仮にずれがあってもそのずれが既知であれば、一方の座標系における座標値を他方の座標系における座標値に変換することができる。
【００１８】
また、ＨＭＤ１０００を頭部に装着するユーザが手等に把持して操作する指示具としての操作部１０９０（例えばスタイラス）にも、頭部位置姿勢計測部１０２０と同様の磁気センサである操作部位置姿勢計測部１０７０が取り付けられている。操作部位置姿勢計測部１０７０も頭部位置姿勢計測部１０２０と同様に自身の位置姿勢に応じた磁界の変化を計測し、その計測結果をセンサコントローラ２０３０に対して送出する。センサコントローラ２０３０は、この計測結果から、センサ座標系における操作部位置姿勢計測部１０７０の位置姿勢（操作部１０９０の位置姿勢）を示す信号値を生成して情報処理装置１９００に送出する。
【００１９】
なお、本実施形態では、位置姿勢の計測方法として磁気センサを用いた計測方法を採用している。しかし本実施形態は、位置姿勢の計測方法に依存するものではないため、光学式センサや超音波式センサなど、磁気センサ以外のセンサを用いる位置姿勢計測方法を採用しても良い。また、ＨＭＤ１０００に撮像装置を取り付け、撮像装置による撮像画像から撮像装置の位置姿勢を推定する方法を採用しても良い。また、複数の位置姿勢計測方法を組み合わせて用いても良い。
【００２０】
ＨＭＤ１０００には更に、ＨＭＤ１０００を頭部に装着したユーザの右眼、左眼のそれぞれに画像を提示するための表示部１０３０が設けられている。然るにＨＭＤ１０００を頭部に装着したユーザは右眼で右目用の表示部１０３０を観察し、左眼で左目用の表示部１０３０を観察することになる。もちろん、ＨＭＤ１０００に２つの表示部１０３０を設けることは一例であり、右眼と左眼で共有して観察する１つの表示部１０３０をＨＭＤ１０００に設けても良い。この表示部１０３０には、情報処理装置１９００から送出された画像や文字が表示されることになる。
【００２１】
また、操作部１０９０には、イベントを発生させるためにユーザが操作するイベント入力部１０６０が設けられている。例えば、イベント入力部１０６０は押下可能なボタンであり、ユーザはイベントを発生させたい場合にこのボタンを押下する。このボタンが押下されると、操作部１０９０はイベントを発生させ、情報処理装置１９００に対して出力する。
【００２２】
情報処理装置１９００が有する頭部位置姿勢推定部１０５０は、頭部位置姿勢計測部１０２０からセンサコントローラ２０３０を介して「センサ座標系における頭部位置姿勢計測部１０２０の位置姿勢を示す信号値」を取得する。そして頭部位置姿勢推定部１０５０は、この取得した信号値が示す位置姿勢に、予め測定した「表示部１０３０（視点）と頭部位置姿勢計測部１０２０との位置姿勢関係」を加えることで、「センサ座標系における視点の位置姿勢」を求める。なお、「センサ座標系における視点の位置姿勢」を求める為の処理はこれに限るものではなく、様々な処理が考え得る。例えば、現実空間中の位置が既知である特徴点を用いて求める方法や、頭部位置姿勢計測部１０２０の計測誤差を推定して修正する方法などを適応してもよい。
【００２３】
仮想物体形状記憶部１０８０は、操作部１０９０や視点の位置姿勢等を用いて後述の仮想平面２０００を設定し、仮想平面２０００の設定後における操作部１０９０の移動軌跡を記録する。そして仮想物体形状記憶部１０８０は、この記録した移動軌跡を仮想平面２０００上（仮想平面上）に投影した投影移動軌跡を、生成対象仮想物体２０１０の仮想平面２０００上の輪郭データとして記録する。
【００２４】
仮想物体形状記憶部１０８０の更に詳細な構成について、図３のブロック図を用いて説明する。ここで、図４に示す如く、頭部位置姿勢計測部１０２０の位置を原点とし、この原点で互いに直交する３軸をそれぞれＸ軸４０２０、Ｙ軸４０１０、Ｚ軸４０３０とするローカル座標系を考える。
【００２５】
先ず、ＨＭＤ１０００を頭部に装着しているユーザがイベント入力部１０６０を操作すると、イベント入力部１０６０はイベントを発生させ、発生させたイベントを、仮想物体形状記憶部１０８０内の頂点選択部３０１０に対して出力する。
【００２６】
頂点選択部３０１０は、このイベントを検知すると、この検知のタイミング近傍で操作部位置姿勢計測部１０７０からセンサコントローラ２０３０を介して取得した「センサ座標系における操作部１０９０の位置姿勢」のうち「位置」を抽出する。そして頂点選択部３０１０は、仮想空間において、この抽出した位置に、頂点４０４０を配置する。この頂点４０４０は可視状態でも良いし、不可視の状態でも良い。
【００２７】
基準平面生成部３０２０は、「頂点選択部３０１０がイベントを検知したタイミング」近傍で頭部位置姿勢推定部１０５０が求めた「センサ座標系における視点の位置姿勢」のうち「姿勢」を抽出する。そして基準平面生成部３０２０は、この抽出した姿勢が示す姿勢ベクトル（Ｚ軸４０３０に沿った方向のベクトル）を法線ベクトルとし、上記頂点４０４０を含む平面を仮想平面（基準平面）２０００として求める。例えば、頂点４０４０の座標を（x0、y0、z0）とし、視点の姿勢ベクトルを(a、b、c)とした場合、仮想平面２０００は以下の式で表される。
【００２８】
ａ（ｘ−ｘ０）＋ｂ（ｙ−ｙ０）＋ｃ（ｚ−ｚ０）＝０
そして基準平面生成部３０２０は、このようにして求めた仮想平面２０００を、仮想空間中に配置（設定）する。
【００２９】
仮想物体形状生成部３０４０は、仮想平面２０００の設定後、操作部１０９０の移動軌跡を記録し、この記録した移動軌跡を仮想平面２０００上に投影した投影移動軌跡を、生成対象仮想物体２０１０の仮想平面２０００上の輪郭データとして記録する。仮想物体形状生成部３０４０の更に詳細な構成について、図５のブロック図を用いて説明する。
【００３０】
記憶部３０３０には、操作部位置姿勢計測部１０７０により計測され、センサコントローラ２０３０から送出された「センサ座標系における操作部１０９０の位置姿勢」が順次記録される。
【００３１】
仮想平面２０００の設定後にユーザが操作部１０９０を所望の位置に移動させ、そこでイベント入力部１０６０を操作すると、操作部１０９０はイベントを発生させ、発生させたイベントを、三次元形状輪郭生成部５０１０に対して出力する。三次元形状輪郭生成部５０１０は、このイベントを検出すると、検出したタイミング近傍で記憶部３０３０に格納された「センサ座標系における操作部１０９０の位置姿勢」を読み出す。この読み出した位置姿勢は、ユーザがイベント入力部１０６０を操作したタイミング近傍での操作部１０９０の位置姿勢である。そして三次元形状輪郭生成部５０１０は、この読み出した位置姿勢のうち「位置」を抽出し、仮想空間においてこの抽出した位置に頂点を配置する。三次元形状輪郭生成部５０１０は、イベントを検出するたびにこのような頂点配置処理を行うので、結果として仮想空間中には、イベント入力部１０６０を操作するたびに、その操作の時点における操作部１０９０の位置に頂点が配置されることになる。このようにして配置される頂点の集合が、操作部１０９０の移動軌跡を表す。
【００３２】
ここで、図６（Ａ）に示す如く、仮想平面２０００の設定後に最初にユーザがイベント入力部１０６０を操作したことで三次元形状輪郭生成部５０１０が配置した頂点が、頂点６１００Ａであるとする。そして図６（Ｂ）に示す如く、頂点６１００Ａの配置後、最初にユーザがイベント入力部１０６０を操作したことで三次元形状輪郭生成部５０１０が配置した頂点が、頂点６１００Ｂであるとする。また、図６（Ｂ）に示す如く、頂点６１００Ｂの配置後、最初にユーザがイベント入力部１０６０を操作したことで三次元形状輪郭生成部５０１０が配置した頂点が、頂点６１００Ｃであるとする。また、図６（Ｂ）に示す如く、頂点６１００Ｃの配置後、最初にユーザがイベント入力部１０６０を操作したことで三次元形状輪郭生成部５０１０が配置した頂点が、頂点６１００Ｄであるとする。また、図６（Ｂ）に示す如く、頂点６１００Ｄの配置後、最初にユーザがイベント入力部１０６０を操作したことで三次元形状輪郭生成部５０１０が配置した頂点が、頂点６１００Ｅであるとする。このようにして図６（Ｃ）に示す如く、頂点６１００Ａ、頂点６１００Ｂ、頂点６１００Ｃ、頂点６１００Ｄ、頂点６１００Ｅ、頂点６１００Ｆ、頂点６１００Ｇ、頂点６１００Ｈ、がこの順に配置されたとする。
【００３３】
そして三次元形状輪郭生成部５０１０は、イベント入力部１０６０や、情報処理装置１９００が有する操作入力装置（不図示）などを介して、頂点配置終了を示すイベントが入力されたことを検知するまでは、上記のような頂点の配置処理を行う。
【００３４】
一方、頂点配置終了を示すイベントが入力されたことを検知した場合には、次の処理に進む。以下では説明上、頂点６１００Ａ〜頂点６１００Ｈが配置された時点で、頂点配置終了を示すイベントが入力されたものとして説明する。
【００３５】
三次元形状輪郭生成部５０１０は頂点配置終了を示すイベントを検知すると、頂点６１００Ａを通り、視点の姿勢ベクトルが示す方向（Ｚ軸４０３０に沿った方向）を方向ベクトルとする直線を求め、求めた直線と仮想平面２０００との交点を求める。そして三次元形状輪郭生成部５０１０は、この求めた交点の位置に、頂点６１００Ａに対応する投影頂点６２００Ａを配置する。即ち、図６（Ｃ）に示す如く、三次元形状輪郭生成部５０１０は、頂点６１００Ａを、視点の姿勢ベクトルが示す方向（Ｚ軸４０３０に沿った方向）に沿って仮想平面２０００上に投影した位置（投影位置）に、投影頂点６２００Ａを配置する。そして三次元形状輪郭生成部５０１０は、同様の投影処理を、頂点６１００Ｂ〜６１００Ｈのそれぞれについて行うことで、図６（Ｃ）に示す如く、仮想平面２０００上に投影頂点６２００Ｂ〜６２００Ｈを配置する。
【００３６】
そして三次元形状輪郭生成部５０１０は、投影頂点６２００Ａ、６２００Ｂ、６２００Ｃ、６２００Ｄ、６２００Ｅ、６２００Ｆ、６２００Ｇ、６２００Ｈ、をこの順で並べたもの（投影位置の集合）を、輪郭データとして記録する。
【００３７】
三次元形状生成部５０２０は、三次元形状輪郭生成部５０１０により記録された輪郭データを用いて、例えば、非特許文献１に記載の方法を用いて、図６（Ｄ）に示す如く、生成対象仮想物体２０１０の三次元形状を作成する。この三次元形状の作成については周知の技術であるため、これについての説明は省略する。なお、三次元形状の作成方法はこれに限定するものではなく、輪郭データから作成するのであれば、如何なる方法を用いても良い。
【００３８】
図１に戻って、仮想画像生成部１１１０は、頭部位置姿勢推定部１０５０が求めた位置姿勢を有する視点から見える仮想空間の画像を生成する。この仮想空間に、仮想平面２０００や頂点６１００Ａ〜６１００Ｈ、投影頂点６２００Ａ〜６２００Ｈ、生成対象仮想物体２０１０等を配置したのであれば、仮想空間の画像にも、この配置したものが含まれうる。
【００３９】
そして仮想画像生成部１１１０は、生成した仮想空間の画像を画像出力部１１３０に対して出力する。画像出力部１１３０は、仮想画像生成部１１１０から受けた仮想空間の画像を、ＨＭＤ１０００が有する表示部１０３０に対して出力する。これにより、ＨＭＤ１０００を頭部に装着しているユーザの眼前には、自身の視点の位置姿勢に応じた仮想空間の画像が提示されることになる。
【００４０】
次に、本実施形態に係る情報処理装置１９００が行う処理を、同処理のフローチャートを示す図７を用いて説明する。なお、図７に示した各ステップにおける処理の詳細は上述の通りであるので、ここでは簡単に説明する。
【００４１】
ステップＳ７０２０では、頭部位置姿勢推定部１０５０は、頭部位置姿勢計測部１０２０からセンサコントローラ２０３０を介して「センサ座標系における頭部位置姿勢計測部１０２０の位置姿勢を示す信号値」を取得する。そして頭部位置姿勢推定部１０５０は、この取得した信号値が示す位置姿勢に、予め測定した「表示部１０３０（視点）と頭部位置姿勢計測部１０２０との位置姿勢関係」を加えることで、「センサ座標系における視点の位置姿勢」を求める。
【００４２】
ステップＳ７０３０では仮想物体形状記憶部１０８０は、操作部位置姿勢計測部１０７０により計測され、センサコントローラ２０３０から送出された「センサ座標系における操作部１０９０の位置姿勢」を順次、記憶部３０３０に格納する。
【００４３】
ステップＳ７０４０では頂点選択部３０１０は、既に仮想平面２０００を生成したか否かを判断する。この判断の結果、既に生成しているのであれば処理はステップＳ７０８０に進み、未だ生成していないのであれば処理はステップＳ７０５０に進む。
【００４４】
ステップＳ７０５０では頂点選択部３０１０は、イベント入力部１０６０からイベント（イベントＡ）を受けた否かを判断する。この判断の結果、受けた場合には処理はステップＳ７０６０に進み、受けていない場合には処理はステップＳ７１４０に進む。
【００４５】
ステップＳ７０６０で頂点選択部３０１０は、イベントＡを検知したタイミング近傍でセンサコントローラ２０３０を介して取得した「操作部１０９０の位置姿勢」のうち「位置」を抽出し、抽出した位置に頂点４０４０を配置する。
【００４６】
ステップＳ７０７０では基準平面生成部３０２０は、「頂点選択部３０１０がイベントＡを検知したタイミング」近傍で頭部位置姿勢推定部１０５０が求めた「センサ座標系における視点の位置姿勢」のうち「姿勢」を抽出する。そして基準平面生成部３０２０は、この抽出した姿勢が示す姿勢ベクトルを法線ベクトルとし、頂点４０４０を含む平面を仮想平面（基準平面）２０００として求める。
【００４７】
一方、ステップＳ７０８０では三次元形状輪郭生成部５０１０は、上記の頂点配置終了を示すイベント（イベントＣ）が入力されたのか、それとも頂点配置のイベント（イベントＢ）が入力されたのかを判断する。この判断の結果、イベントＣが入力された場合には処理はステップＳ７１１０に進み、イベントＢが入力された場合には処理はステップＳ７０９０に進む。
【００４８】
ステップＳ７０９０では、三次元形状輪郭生成部５０１０は、イベントＢを検出したタイミング近傍で記憶部３０３０に格納された「センサ座標系における操作部１０９０の位置姿勢」を読み出す。そして三次元形状輪郭生成部５０１０は、この読み出した位置姿勢のうち「位置」を抽出し、仮想空間においてこの抽出した位置に頂点を配置する。ステップＳ７１００では、三次元形状輪郭生成部５０１０は、ステップＳ７０９０で抽出した位置を記録する（第１の記録）。
【００４９】
一方、ステップＳ７１１０では、三次元形状輪郭生成部５０１０は、ステップＳ７１００で記録したそれぞれの頂点の位置を、仮想平面２０００上に投影することで、それぞれの頂点に対応する投影頂点を仮想平面２０００上に配置する。そして三次元形状輪郭生成部５０１０は、それぞれの投影頂点を、輪郭データとして記録する（第２の記録）。
【００５０】
ステップＳ７１２０では、三次元形状生成部５０２０は、三次元形状輪郭生成部５０１０により記録された輪郭データを用いて生成対象仮想物体２０１０の三次元形状を作成する。そしてステップＳ７１３０では、三次元形状生成部５０２０は、作成した三次元形状を有する生成対象仮想物体２０１０のデータを記録する。
【００５１】
ステップＳ７１４０では、仮想画像生成部１１１０は、頭部位置姿勢推定部１０５０が求めた位置姿勢を有する視点から見える仮想空間の画像を生成する。そしてステップＳ７１５０では仮想画像生成部１１１０は、生成した仮想空間の画像を画像出力部１１３０に対して出力し、画像出力部１１３０は、仮想画像生成部１１１０から受けた仮想空間の画像を、ＨＭＤ１０００が有する表示部１０３０に対して出力する。
【００５２】
そして次のフレームについて上記の処理を行うのであれば処理はステップＳ７１６０を介してステップＳ７０２０に戻るし、次のフレームについて上記の処理は行わないのであれば、ステップＳ７１６０を介して本処理を終了する。
【００５３】
＜変形例＞
操作部１０９０の位置姿勢に、何らかの仮想物体を配置しても良いし、その配置の可否を切替可能にしても良い。また、仮想平面２０００は、可視状態で配置しても良いし、不可視状態で配置しても良い。
【００５４】
また、本実施形態では、図１に示す如く、頭部位置姿勢推定部１０５０、仮想画像生成部１１１０、仮想物体形状記憶部１０８０、画像出力部１１３０、は何れも１つの情報処理装置１９００内に収まっているものとして説明した。しかし、これら全ての機能部が同じ装置内に収まっていなくても良く、複数台の装置に分散させても良い。
【００５５】
また、本実施形態では、仮想平面２０００の設定後は、イベントＢが入力される毎に、そのときの操作部１０９０の位置に頂点を配置していたが、操作部位置姿勢計測部１０７０が予め定められた時間間隔毎のタイミングで計測した位置に頂点を配置しても良い。
【００５６】
［第２の実施形態］
図１に示したＨＭＤ１０００は、光学シースルー方式のものであるが、ＨＭＤ１０００の代わりにビデオシースルー型のものを用いても良い。本実施形態に係るシステムについて、図８のブロック図及び図９の外観図を用いて説明する。図８，９において、図１，２と同じ構成要素には同じ参照番号を付けており、その説明は省略する。
【００５７】
ビデオシースルー型のＨＭＤ８０００には、光学シースルー方式のＨＭＤ１０００に加えて撮像部１０１０が備わっている。撮像部１０１０は、現実空間の動画像を撮像するもので、撮像したそれぞれの画像（現実空間の画像）は順次、情報処理装置８９００が有する撮像画像の取得部１０４０に入力される。撮像部１０１０は、ＨＭＤ８０００を頭部に装着するユーザの右目用と左目用の２つが備わっている。右目用の撮像部１０１０が撮像した現実空間の画像は右目用の表示部１０３０に表示され、左目用の撮像部１０１０が撮像した現実空間の画像は左目用の表示部１０３０に表示される。
【００５８】
撮像画像の取得部１０４０は取得した現実空間の画像を画像合成部１１２０に送出する。画像合成部１１２０は、仮想画像生成部１１１０が生成した仮想空間の画像と、撮像画像の取得部１０４０から取得した現実空間の画像との合成画像を生成する。この合成画像は右目用と左目用の２つが作成される。そして画像合成部１１２０は、生成した合成画像をＭＲ画像出力部８１３０に出力するので、ＭＲ画像出力部８１３０は、この合成画像を表示部１０３０に対して出力する。
【００５９】
なお、本実施形態においても第１の実施形態と同様、１つの情報処理装置８９００内に収まっているものとして図７に示した全ての機能部が同じ装置内に収まっていなくても良く、複数台の装置に分散させても良い。
【００６０】
次に、本実施形態に係る情報処理装置８９００が行う処理を、同処理のフローチャートを示す図１０を用いて説明する。なお、図１０に示したフローチャートは、図７のフローチャートにステップＳ７０１０を加えると共に、ステップＳ７１５０の代わりにステップＳ７２６０を加えたものである。然るにここではステップＳ７０１０及びステップＳ７２６０について説明する。
【００６１】
ステップＳ７０１０では、撮像画像の取得部１０４０は、取得した現実空間の画像を画像合成部１１２０に送出する。ステップＳ７２６０では画像合成部１１２０は、仮想画像生成部１１１０が生成した仮想空間の画像と、撮像画像の取得部１０４０から取得した現実空間の画像との合成画像を生成する。そして画像合成部１１２０は、生成した合成画像をＭＲ画像出力部８１３０に出力するので、ＭＲ画像出力部８１３０は、この合成画像を表示部１０３０に対して出力する。
【００６２】
［第３の実施形態］
上記の実施形態において、操作部１０９０の代わりに、ユーザの指など、ユーザの体の所定部位を用いても良い。その場合、その所定部位の位置姿勢を計測するための構成が必要となる。
【００６３】
また、イベント入力は、ユーザの所定部位の動きにより入力しても良い。その場合、所定部位の動きを認識し、認識した動きがどのイベント入力を表しているのかを特定する為の構成が必要となる。何れにせよ、スタイラスのような操作部１０９０及びユーザの体の所定部位の何れも、ユーザが操作する指示具として機能することになる。
【００６４】
［第４の実施形態］
仮想平面２０００を求めるための方法には様々なものが考えられる。例えば、視点の姿勢ベクトルを法線とし、配置した頂点（図６（Ｃ）では頂点６１００Ａ〜６１００Ｈ）のうち１つの位置若しくは複数個の重心位置を含む平面を仮想平面２０００として求めても良い。この場合、仮想平面２０００の設定よりも頂点の配置処理を先に行うことになる。
【００６５】
［第５の実施形態］
仮想平面２０００を求めるための方法には様々なものが考えられる。例えば、上記の頂点４０４０の代わりに３個以上の頂点を指示し、指示したそれらの頂点の位置を含む平面を仮想平面２０００として求めても良い。
【００６６】
［第６の実施形態］
仮想平面２０００を求めるための方法には様々なものが考えられる。例えば、世界座標系のX−Y平面・Y−Z平面・Z−X平面のうち一つの平面に平行で、頂点４０４０を含む平面を仮想平面２０００として設定しても良い。ここで、世界座標系とは、現実空間中の１点を原点とし、この原点で互いに直交する３軸をそれぞれＸ軸、Ｙ軸、Ｚ軸とする座標系である。なお、頂点４０４０の代わりに、事前に定められた頂点を用いても良い。
【００６７】
［第７の実施形態］
仮想平面２０００を求めるための方法には様々なものが考えられる。例えば、第１の実施形態において視点の姿勢ベクトルの代わりに、操作部１０９０の姿勢ベクトルを用いても良い。
【００６８】
［第８の実施形態］
仮想平面２０００を求めるための方法には様々なものが考えられる。例えば、操作部１０９０の姿勢ベクトルを法線ベクトルとし、視点の位置から規定の距離だけ離間した点を含む平面を仮想平面２０００として求めても良い。
【００６９】
［第９の実施形態］
仮想平面２０００を求めるための方法には様々なものが考えられる。例えば、視点の位置と操作部１０９０の位置とを通るベクトルを法線ベクトルとし、操作部１０９０の位置を含む平面を仮想平面２０００として求めても良い。
【００７０】
［第１０の実施形態］
上記の実施形態では、何れかの方法を用いて設定された仮想平面２０００はそのまま固定されたものである。しかし、この仮想平面２０００を新たに他の方法で作成し直すことで、その時々でユーザの要望に応じた仮想平面２０００を設定することができる。即ち、上記の実施形態で説明した複数種類の仮想平面２０００の作成方法から、任意のタイミングで１つを選択し、現在完成している仮想平面２０００を、この新たに選択した作成方法でもって作成した仮想平面２０００に置き換える。なお、この作成方法の切替については、キーボードやマウスなどを用いて行っても良いし、音声入力などでもって行っても良い。
【００７１】
［第１１の実施形態］
第１の実施形態では、非特許文献１の方法を用いて生成対象仮想物体の形状を作成したが、操作部１０９０の移動距離に応じて生成対象仮想物体を変形させても良い。例えば、図１１に示す如く、頂点６１００Ａを含むように仮想平面２０００を作成する。そして、仮想平面２０００から最も遠い頂点６１００Ｈを含み、仮想平面２０００と平行な仮想平面９０００を作成し、その間の距離９１００によって、生成対象仮想物体の仮想平面２０００の法線方向の幅を決定する。
【００７２】
［第１２の実施形態］
上記の実施形態では、一人のユーザに対して仮想空間若しくは複合現実空間を提供するシステムについて説明したが、同様の提供を複数人に対して行うようにしても良い。また、仮想平面２０００の設定に係る操作や、操作部１０９０を用いて頂点群を指定する操作などを、複数人のユーザによって行うようにしても良い。
【００７３】
［第１３の実施形態］
情報処理装置１９００（８９００）を構成する各部はハードウェアで構成しても良い。しかし、仮想物体形状記憶部１０８０、画像出力部１１３０、ＭＲ画像出力部８１３０、撮像画像の取得部１０４０、記憶部３０３０、を除く各部はコンピュータプログラムとして実装しても良い。この場合、このコンピュータプログラムをコンピュータにインストールし、このコンピュータがこのコンピュータプログラムを実行することで、対応する機能部の機能を実現することができる。
【００７４】
情報処理装置１９００（８９００）に適用可能なコンピュータの構成例について、図１２のブロック図を用いて説明する。もちろん、情報処理装置１９００（８９００）に適用可能なコンピュータの構成についてはこれに限るものではなく、必要なデータを取得し、取得したデータを用いて、コンピュータプログラムとして実装されたものを実行可能な構成を有していればよい。
【００７５】
ＣＰＵ１２０１は、ＲＡＭ１２０２やＲＯＭ１２０３に格納されているコンピュータプログラムやデータを用いてコンピュータ全体の動作制御を行うと共に、情報処理装置１９００（８９００）が行うものとして上述した各処理を実行する。
【００７６】
ＲＡＭ１２０２は、外部記憶装置１２０６からロードされたコンピュータプログラムやデータ、Ｉ／Ｆ（インターフェース）１２０７を介して外部から受信したデータ、を一時的に記憶するためのエリアを有する。更にＲＡＭ１２０２は、ＣＰＵ１２０１が各種の処理を実行する際に用いるワークエリアも有する。即ち、ＲＡＭ１２０２は、各種のエリアを適宜提供することができる。ＲＯＭ１２０３には、コンピュータの設定データやブートプログラムなどが格納されている。
【００７７】
操作部１２０４は、キーボードやマウスなどにより構成されており、ユーザが操作することで、各種の指示をＣＰＵ１２０１に対して入力することができる。例えば、上記の頂点配置終了を示すイベントは、この操作部１２０４を用いて入力することができる。
【００７８】
表示装置１２０５は、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ１２０１による処理結果を画像や文字などでもって表示することができる。例えば、画像出力部１１３０が出力する仮想空間の画像や、ＭＲ画像出力部８１３０が出力する合成画像を表示することができる。
【００７９】
外部記憶装置１２０６は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。外部記憶装置１２０６には、ＯＳ（オペレーティングシステム）や、情報処理装置１９００（８９００）が行うものとして上述した各処理をＣＰＵ１２０１に実行させるためのコンピュータプログラムやデータが保存されている。このコンピュータプログラムには、仮想物体形状記憶部１０８０、画像出力部１１３０、ＭＲ画像出力部８１３０、撮像画像の取得部１０４０、記憶部３０３０、を除く各部の機能をＣＰＵ１２０１に実現させるためのコンピュータプログラムが含まれている。また、このデータには、仮想空間に係るデータの他、既知の情報として上述したものが含まれる。外部記憶装置１２０６に保存されているコンピュータプログラムやデータは、ＣＰＵ１２０１による制御に従って適宜ＲＡＭ１２０２にロードされ、ＣＰＵ１２０１による処理対象となる。
【００８０】
なお、仮想物体形状記憶部１０８０や記憶部３０３０は、外部記憶装置１２０６やＲＡＭ１２０２等でもって実装可能である。もちろん、仮想物体形状記憶部１０８０や記憶部３０３０は１つもメモリ構成しても良いし、別個のメモリで構成しても良い。
【００８１】
Ｉ／Ｆ１２０７は、ＨＭＤ１０００（８０００）やセンサコントローラ２０３０等を接続する為のもので、本コンピュータはこのＩ／Ｆ１２０７を介してこれらの装置とのデータ通信を行う。上記の画像出力部１１３０、ＭＲ画像出力部８１３０、撮像画像の取得部１０４０はこのＩ／Ｆ１２０７でもって実装可能である。上記の各部はバス１２０８に接続されている。
【００８２】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005709440.tif 000002
【図２】
0005709440.tif 000003
【図３】
0005709440.tif 000004
【図４】
0005709440.tif 000005
【図５】
0005709440.tif 000006
【図６】
0005709440.tif 000007
【図７】
0005709440.tif 000008
【図８】
0005709440.tif 000009
【図９】
0005709440.tif 000010
【図１０】
0005709440.tif 000011
【図１１】
0005709440.tif 000012
【図１２】
0005709440.tif 000013