(57)【特許請求の範囲】
【請求項１】
三次元空間を二次元映像に変換して表示する三次元空間表示システムで、三次元空間で表示される物体をドラッグ・アンド・ドロップにより移動して配置する物体移動配置装置であって、
該三次元空間により表示される物体Ａを取得する手段と、
該三次元空間により表示される物体Ｂ上の任意点ｂを指定し、視点Ｅから任意点ｂを通る直線を生成し、該直線と物体Ｂの構成面との交点ｇiを演算して、交点ｇiを含む物体Ｂの構成面Ｇiを取得する手段と、
物体Ａが予め有する特徴点を利用して物体Ａを構成面Ｇi上に移動して配置する手段と、
物体Ａを構成面Ｇi上に移動して配置する際、構成面Ｇiの法線上方向と三次元空間の所望方向を認識し、物体Ａが有する方向をこれに合わせて配置する手段と、
を有することを特徴とする物体移動配置装置。
【請求項２】
三次元空間を二次元映像に変換して表示する三次元空間表示システムで、三次元空間で表示される物体をドラッグ・アンド・ドロップにより移動して配置する物体移動配置装置であって、
該三次元空間により表示される物体Ａ上の任意点ａを指定し、予め決められた視点Ｅから任意点ａを通る直線を生成し、該直線と物体Ａの構成面との交点ｆiを演算することで物体Ａを取得する手段と、
該三次元空間により表示される物体Ｂ上の任意点ｂを指定し、視点Ｅから任意点ｂを通る直線を生成し、該直線と物体Ｂの構成面との交点ｇiを演算して、交点ｇiを含む物体Ｂの構成面Ｇiを取得する手段と、
物体Ａが予め有する特徴点を利用して物体Ａを構成面Ｇi上に移動して配置する手段と、
物体Ａを構成面Ｇi上に移動して配置する際、構成面Ｇiの法線上方向と三次元空間の所望方向を認識し、物体Ａが有する方向をこれに合わせて配置する手段と、
を有することを特徴とする物体移動配置装置。
【請求項３】
三次元空間を二次元映像に変換して表示する三次元空間表示システムで、三次元空間で表示される物体をドラッグ・アンド・ドロップにより移動して配置する物体移動配置装置であって、
ワールド座標系で規定される該三次元空間の絶対的上方向を示すベクトルＵを記憶する手段と、
ローカル座標系で規定される該三次元空間で表示される物体の特徴点と、該物体の法線上方向を規定するベクトルαと、該物体の上方向を規定するベクトルβとを記憶すると共に、該物体をその構成点と構成面に対応させて記憶する手段と、
該三次元空間で表示される物体Ａ上の任意点ａを指定し、且つ該三次元空間に存在する任意物体の面を構成する一連の記憶された三次元座標を二次元座標に変換して変換点を取得し、該任意点ａと該変換点を比較して該任意点ａを表す変換点群ａ１〜ａｎを決定すると共に、該変換点群ａ１〜ａｎに対応する面群Ｆ１〜Ｆｎを取得する手段と、
予め決められた視点Ｅから任意点ａを通る指示ベクトルＬを演算生成し、該指示ベクトルＬと前記面群Ｆ１〜Ｆｎとの交点演算を行って交点群ｆ１〜ｆｎを取得し、該交点群ｆ１〜ｆｎと視点Ｅとの直線距離を計算して最短距離の交点ｆｘを求め、該交点ｆｘに対応する物体Ａを取得する手段と、
該三次元空間で表示され、該物体Ａが移動後に配置される物体Ｂ上の任意点ｂを指定し、且つ該三次元空間で任意物体の面を構成する一連の記憶された三次元座標を二次元座標に変換して変換点を取得し、該任意点ｂと該変換点を比較して該任意点ｂを表す変換点群ｂ１〜ｂｎを決定すると共に、該変換点群ｂ１〜ｂｎに対応する面群Ｇ１〜Ｇｎを取得する手段と、
予め決められた視点Ｅから任意点ｂを通る指示ベクトルＬ’を演算生成し、該指示ベクトルＬ’と前記面群Ｇ１〜Ｇｎとの交点演算を行って交点群ｇ１〜ｇｎを取得し、該交点群ｇ１〜ｇｎと視点Ｅとの直線距離を計算して最短距離の交点ｇｘを取得すると共に交点ｇｘに対応する面ＧＸを取得する手段と、
物体Ａの特徴点のワールド座標系における座標値を交点ｇｘに変更する手段と、
交点ｇｘにおいて面ＧＸに対する法線上方向にベクトルγを演算生成して保持し、物体Ａが保持するベクトルαの方向をベクトルγの方向と合わせる手段と、
物体Ａが保持するベクトルβとベクトルＵの間の角度を連続的に演算し、該角度が最小となるベクトルβを求めて確定することで物体Ａを配置する手段と、
を有することを特徴とする物体移動配置装置。
【請求項４】
三次元空間を二次元映像に変換して表示する三次元空間表示システムで、三次元空間で表示される物体をドラッグ・アンド・ドロップにより移動して配置する物体移動配置プログラムを記録したコンピュータに読み取り可能な記録媒体であって、
該三次元空間により表示される物体Ａを取得する手段と、
該三次元空間により表示される物体Ｂ上の任意点ｂを指定し、視点Ｅから任意点ｂを通る直線を生成し、該直線と物体Ｂの構成面との交点ｇiを演算して、交点ｇiを含む物体Ｂの構成面Ｇiを取得する手段と、
物体Ａが予め有する特徴点を利用して物体Ａを構成面Ｇi上に移動して配置する手段と、
物体Ａを構成面Ｇi上に移動して配置する際、構成面Ｇiの法線上方向と三次元空間の所望方向を認識し、物体Ａが有する方向をこれに合わせて配置する手段と、
をコンピュータに実行させる物体移動配置プログラム記録したことを特徴とするコンピュータに読み取り可能な記録媒体。
【請求項５】
三次元空間を二次元映像に変換して表示する三次元空間表示システムで、三次元空間で表示される物体をドラッグ・アンド・ドロップにより移動して配置する物体移動配置プログラムを記録したコンピュータに読み取り可能な記録媒体であって、
該三次元空間により表示される物体Ａ上の任意点ａを指定し、予め決められた視点Ｅから任意点ａを通る直線を生成し、該直線と物体Ａの構成面との交点ｆiを演算することで物体Ａを取得する手段と、
該三次元空間により表示される物体Ｂ上の任意点ｂを指定し、視点Ｅから任意点ｂを通る直線を生成し、該直線と物体Ｂの構成面との交点ｇiを演算して、交点ｇiを含む物体Ｂの構成面Ｇiを取得する手段と、
物体Ａが予め有する特徴点を利用して物体Ａを構成面Ｇi上に移動して配置する手段と、
物体Ａを構成面Ｇi上に移動して配置する際、構成面Ｇiの法線上方向と三次元空間の所望方向を認識し、物体Ａが有する方向をこれに合わせて配置する手段と、
をコンピュータに実行させる物体移動配置プログラム記録したことを特徴とするコンピュータに読み取り可能な記録媒体。
【請求項６】
三次元空間を二次元映像に変換して表示する三次元空間表示システムで、三次元空間で表示される物体をドラッグ・アンド・ドロップにより移動して配置する物体移動配置プログラムを記録したコンピュータに読み取り可能な記録媒体であって、
ワールド座標系で規定される該三次元空間の絶対的上方向を示すベクトルＵを記憶する手段と、
ローカル座標系で規定される該三次元空間で表示される物体の特徴点と、該物体の法線上方向を規定するベクトルαと、該物体の上方向を規定するベクトルβとを記憶すると共に、該物体をその構成点と構成面に対応させて記憶する手段と、
該三次元空間で表示される物体Ａ上の任意点ａを指定し、且つ該三次元空間に存在する任意物体の面を構成する一連の記憶された三次元座標を二次元座標に変換して変換点を取得し、該任意点ａと該変換点を比較して該任意点ａを表す変換点群ａ１〜ａｎを決定すると共に、該変換点群ａ１〜ａｎに対応する面群Ｆ１〜Ｆｎを取得する手段と、
予め決められた視点Ｅから任意点ａを通る指示ベクトルＬを演算生成し、該指示ベクトルＬと前記面群Ｆ１〜Ｆｎとの交点演算を行って交点群ｆ１〜ｆｎを取得し、該交点群ｆ１〜ｆｎと視点Ｅとの直線距離を計算して最短距離の交点ｆｘを求め、該交点ｆｘに対応する物体Ａを取得する手段と、
該三次元空間で表示され、該物体Ａが移動後に配置される物体Ｂ上の任意点ｂを指定し、且つ該三次元空間で任意物体の面を構成する一連の記憶された三次元座標を二次元座標に変換して変換点を取得し、該任意点ｂと該変換点を比較して該任意点ｂを表す変換点群ｂ１〜ｂｎを決定すると共に、該変換点群ｂ１〜ｂｎに対応する面群Ｇ１〜Ｇｎを取得する手段と、
予め決められた視点Ｅから任意点ｂを通る指示ベクトルＬ’を演算生成し、該指示ベクトルＬ’と前記面群Ｇ１〜Ｇｎとの交点演算を行って交点群ｇ１〜ｇｎを取得し、該交点群ｇ１〜ｇｎと視点Ｅとの直線距離を計算して最短距離の交点ｇｘを取得すると共に交点ｇｘに対応する面ＧＸを取得する手段と、
物体Ａの特徴点のワールド座標系における座標値を交点ｇｘに変更する手段と、
交点ｇｘにおいて面ＧＸに対する法線上方向にベクトルγを演算生成して保持し、物体Ａが保持するベクトルαの方向をベクトルγの方向と合わせる手段と、
物体Ａが保持するベクトルβとベクトルＵの間の角度を連続的に演算し、該角度が最小となるベクトルβを求めて確定することで物体Ａを配置する手段と、
をコンピュータに実行させる物体移動配置プログラム記録したことを特徴とするコンピュータに読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、設計やバーチャルリアリティ等に用いる表示映像上で仮想物体を取り扱う三次元表示システムにおいて、表示映像上における三次元空間で物体を所望の位置に移動させる装置に関する。
【０００２】
【従来の技術】
従来、三次元物体を扱う分野でのシステム技術として、設計に用いる三次元ＣＡＤシステム、バーチャルリアリティ（以下、ＶＲという。）空間の設計デザインに用いるＶＲオーサリングツールなどがある。
【０００３】
上記のシステム技術はいずれの場合も、三次元物体の位置を規定する際に、位置について三軸（ｘ位置、ｙ位置、ｚ位置）、回転について三軸（ｘ回転、ｙ回転、ｚ回転）、即ち、六軸の変数を与える必要がある。
【０００４】
そして、マウスなどの二次元デバイスを利用して三次元物体を移動させようとする場合、従来の方法では一度に最大２つの変数しか与えることができず、そのため、一度の操作では２変数以内で対象変数を指定、変更していた。つまり、三次元物体を移動させるためには、移動方向や回転方向を順番に指定していく必要がある。
【０００５】
具体的には、表示映像上の三次元物体を任意の位置に移動して、向きを変えて配置する際、例えば水平を表すＸ軸−Ｚ軸方向への移動と、垂直を表すＹ軸方向への移動と、Ｙ軸方向への回転という、少なくとも３つの操作を順番に行わなければならない。
【０００６】
この操作は手順として煩雑であるだけでなく、操作方法を論理的に把握し、その過程を考慮しながら作業を行う必要があり、感覚的な操作ではない。このため、当該技術に熟練した技術者でなければ操作を行うことは不可能で、空間デザイナーなどのクリエイターをはじめ、一般の利用者に対して広く利用させることは困難であった。
【０００７】
また、別の従来技術として、ＶＲを体験する環境でポヒマスセンサなどのリアルタイム３次元センサにより、三次元位置を取得する方法がある。これは、手などの身体や道具に取り付けられた三次元センサによる操作用装置で、三次元位置と三次元方向を取得し、この情報をもとに三次元物体の位置を決定するものである。
【０００８】
しかし、上記の方法で仮想三次元物体を移動させたい位置まで移動させるためには、試行錯誤的動作が必要である。具体的には、まず、操作用装置を動かして、表示映像上の現在の位置を視覚的に確認する。そして、移動させたい物体の位置が目的とする位置であるかどうかを判断する。そうでなければ、操作用装置を動かし目的の位置に近づける。この操作を繰り返して移動させたい位置に近づくように調整する。
【０００９】
動作をシミュレーションする場合には上記操作は有効であるが、三次元物体を所望位置に移動させることが目的の場合は、センサ操作を伴った動作を実際に行って位置の調整を行う必要があり、作業が煩雑になる。換言すれば、上記方法では移動目標の指定を行うことが不可能で、センサによる変更された状態を観測しながら目標位置までオペレータが介在して制御しながら移動する、という方法を採ることになり、オペレータに対する負担が大きくなる。
【００１０】
さらに、上記方法では、三次元センサで取得したデータで移動するため、移動させたい位置まで三次元センサを移動しなければならない。例えば、目の前の物体を１００ｍ前方まで移動する必要がある場合、１００ｍ前方まで実際にセンサを移動させる必要がある。センサの能力を含めてそのような範囲まで移動させることは現実的に困難である。
【００１１】
一方、二次元情報を二次元映像で表示する場合、従来からドラッグ・アンド・ドロップ技術が用いられている。このドラッグ・アンド・ドロップ技術は、アイコンと呼ぶ情報を現す部分画像をマウスで指定して保持し、保持状態のまま移動して位置を変更するものである。
【００１２】
かかる位置変更で情報と情報の新しい関係を規定することが可能となり、例えば、パソコン上のＯＳでは、情報の分類整理のためのユーザーインターフェイスとして利用されたり、データの属性を与えるユーザーインターフェイスとして利用されている。
【００１３】
ところが、従来のドラッグ・アンド・ドロップ技術はすべて二次元情報に対するものであり、ＯＳやアプリケーションソフトで実現しているドラッグ・アンド・ドロップは、二次元の制御画面の中でアイコンを二次元的に移動させるだけである。即ち、三次元を表示する表示装置で、ドラッグ・アンド・ドロップにより三次元物体を移動させる機能を持つものはない。
【００１４】
【発明が解決しようとする課題】
本発明は上記問題点に鑑みなされたものであって、表示映像上において物体を選択決定し、この物体を三次元座標で示された指定位置に移動して再配置する方法及び装置を提供することにより、表示映像上で物体を移動する際の余分な作業を省いて、操作を容易化することを目的とする。
【００１５】
【課題を解決するための手段】
本発明よる三次元空間表示システムにおける物体移動配置装置は、三次元空間を二次元映像に変換して表示する三次元空間表示システムで、三次元映像における物体Ａを取得する手段、物体Ｂ上の任意点ｂを指定し、視点Ｅから任意点ｂを通る直線を生成し、該直線と物体Ｂの構成面との交点ｇiを演算して、交点ｇiを含む物体Ｂの構成面Ｇiを取得する手段、物体Ａが予め有する特徴点を利用して物体Ａを構成面Ｇi上に移動して配置する手段、を有することを特徴とする。
【００１６】
そして、上記物体移動装置は、三次元空間を二次元映像に変換して表示する三次元空間表示システムで、三次元映像における物体Ａ上の任意点ａを指定し、予め決められた視点Ｅから任意点ａを通る直線を生成し、該直線と物体Ａの構成面との交点ｆiを演算することで物体Ａを取得する手段、物体Ｂ上の任意点ｂを指定し、視点Ｅから任意点ｂを通る直線を生成し、該直線と物体Ｂの構成面との交点ｇiを演算して、交点ｇiを含む物体Ｂの構成面Ｇiを取得する手段、物体Ａが予め有する特徴点を利用して物体Ａを構成面Ｇi上に移動して配置する手段、を有することを特徴とする。
【００１７】
上記物体移動装置で、物体Ａを構成面Ｇi上に移動して配置する際、構成面Ｇiの法線上方向と三次元空間の所望方向を認識し、物体Ａが有する方向をこれに合わせて配置する手段、を有することとすると好適である。
【００１８】
また、本発明よる三次元空間表示システムにおける物体移動方法は、三次元空間を二次元映像に変換して表示する三次元空間表示システムで、三次元映像における物体Ａ上の任意点ａを指定し、予め決められた視点Ｅから任意点ａを通る直線を生成し、該直線と物体Ａの構成面との交点ｆiを演算することで物体Ａを取得する過程、物体Ｂ上の任意点ｂを指定し、視点Ｅから任意点ｂを通る直線を生成し、該直線と物体Ｂの構成面との交点ｇiを演算して、交点ｇiを含む物体Ｂの構成面Ｇiを取得する過程、物体Ａが予め有する特徴点を利用して物体Ａを構成面Ｇi上に移動して配置する過程、を有することを特徴とする。
【００１９】
上記物体移動方法で、物体Ａを構成面Ｇi上に移動して配置する際、構成面Ｇiの法線上方向と三次元空間の所望方向を認識し、物体Ａが有する方向をこれに合わせて配置する過程、を有することとすると好適である。
【００２０】
また、本発明は、三次元空間を二次元映像に変換して表示する三次元空間表示システムで、三次元空間で表示される物体をドラッグ・アンド・ドロップにより移動して配置する物体移動配置装置、或いは物体移動配置プログラムを記録したコンピュータに読み取り可能な記録媒体であって、該三次元空間により表示される物体Ａを取得する手段と、該三次元空間により表示される物体Ｂ上の任意点ｂを指定し、視点Ｅから任意点ｂを通る直線を生成し、該直線と物体Ｂの構成面との交点ｇiを演算して、交点ｇiを含む物体Ｂの構成面Ｇiを取得する手段と、物体Ａが予め有する特徴点を利用して物体Ａを構成面Ｇi上に移動して配置する手段と、物体Ａを構成面Ｇi上に移動して配置する際、構成面Ｇiの法線上方向と三次元空間の所望方向を認識し、物体Ａが有する方向をこれに合わせて配置する手段と、を有する物体移動配置装置、或いはこれらの手段をコンピュータに実行させる物体移動配置プログラム記録したコンピュータに読み取り可能な記録媒体である。
【００２１】
また、本発明は、三次元空間を二次元映像に変換して表示する三次元空間表示システムで、三次元空間で表示される物体をドラッグ・アンド・ドロップにより移動して配置する物体移動配置装置、或いは物体移動配置プログラムを記録したコンピュータに読み取り可能な記録媒体であって、該三次元空間により表示される物体Ａ上の任意点ａを指定し、予め決められた視点Ｅから任意点ａを通る直線を生成し、該直線と物体Ａの構成面との交点ｆiを演算することで物体Ａを取得する手段と、該三次元空間により表示される物体Ｂ上の任意点ｂを指定し、視点Ｅから任意点ｂを通る直線を生成し、該直線と物体Ｂの構成面との交点ｇiを演算して、交点ｇiを含む物体Ｂの構成面Ｇiを取得する手段と、物体Ａが予め有する特徴点を利用して物体Ａを構成面Ｇi上に移動して配置する手段と、物体Ａを構成面Ｇi上に移動して配置する際、構成面Ｇiの法線上方向と三次元空間の所望方向を認識し、物体Ａが有する方向をこれに合わせて配置する手段と、を有する物体移動配置装置、或いはこれらの手段をコンピュータに実行させる物体移動配置プログラム記録したコンピュータに読み取り可能な記録媒体である。
【００２２】
また、本発明は、三次元空間を二次元映像に変換して表示する三次元空間表示システムで、三次元空間で表示される物体をドラッグ・アンド・ドロップにより移動して配置する物体移動配置装置、或いは物体移動配置プログラムを記録したコンピュータに読み取り可能な記録媒体であって、ワールド座標系で規定される該三次元空間の絶対的上方向を示すベクトルＵを記憶する手段と、ローカル座標系で規定される該三次元空間で表示される物体の特徴点と、該物体の法線上方向を規定するベクトルαと、該物体の上方向を規定するベクトルβとを記憶すると共に、該物体をその構成点と構成面に対応させて記憶する手段と、該三次元空間で表示される物体Ａ上の任意点ａを指定し、且つ該三次元空間に存在する任意物体の面を構成する一連の記憶された三次元座標を二次元座標に変換して変換点を取得し、該任意点ａと該変換点を比較して該任意点ａを表す変換点群ａ１〜ａｎを決定すると共に、該変換点群ａ１〜ａｎに対応する面群Ｆ１〜Ｆｎを取得する手段と、予め決められた視点Ｅから任意点ａを通る指示ベクトルＬを演算生成し、該指示ベクトルＬと前記面群Ｆ１〜Ｆｎとの交点演算を行って交点群ｆ１〜ｆｎを取得し、該交点群ｆ１〜ｆｎと視点Ｅとの直線距離を計算して最短距離の交点ｆｘを求め、該交点ｆｘに対応する物体Ａを取得する手段と、該三次元空間で表示され、該物体Ａが移動後に配置される物体Ｂ上の任意点ｂを指定し、且つ該三次元空間で任意物体の面を構成する一連の記憶された三次元座標を二次元座標に変換して変換点を取得し、該任意点ｂと該変換点を比較して該任意点ｂを表す変換点群ｂ１〜ｂｎを決定すると共に、該変換点群ｂ１〜ｂｎに対応する面群Ｇ１〜Ｇｎを取得する手段と、予め決められた視点Ｅから任意点ｂを通る指示ベクトルＬ’を演算生成し、該指示ベクトルＬ’と前記面群Ｇ１〜Ｇｎとの交点演算を行って交点群ｇ１〜ｇｎを取得し、該交点群ｇ１〜ｇｎと視点Ｅとの直線距離を計算して最短距離の交点ｇｘを取得すると共に交点ｇｘに対応する面ＧＸを取得する手段と、物体Ａの特徴点のワールド座標系における座標値を交点ｇｘに変更する手段と、交点ｇｘにおいて面ＧＸに対する法線上方向にベクトルγを演算生成して保持し、物体Ａが保持するベクトルαの方向をベクトルγの方向と合わせる手段と、物体Ａが保持するベクトルβとベクトルＵの間の角度を連続的に演算し、該角度が最小となるベクトルβを求めて確定することで物体Ａを配置する手段と、を有する物体移動配置装置、或いはこれらの手段をコンピュータに実行させる物体移動配置プログラム記録したコンピュータに読み取り可能な記録媒体である。
【００２３】
【作用】
本発明は上記の如くであるから、表示映像上で仮想物体の表面座標値を確定的に決定して仮想物体を取得できるとともに、仮想物体を再配置する三次元空間中の所望の点座標をオペレータは直接認識し、当該点座標を三次元座標値として指定することができる。
【００２４】
【発明の実施の形態】
以下、具体的な実施形態に基づいて説明するが、本発明はかかる実施形態に限定されるものではない。
【００２５】
まず、物体移動装置を有する三次元空間表示システムのハードウェア構成を説明する。
【００２６】
三次元空間表示システム自体は、三次元グラフィックスという考え方でコンピュータ・システム技術としてすでに確立されており、その装置構成は、例えば、図１に示すようにＣＰＵ等の演算処理装置１、内蔵若しくは外部メモリ或いはディスク等の記憶装置２、ＣＲＴディスプレイや液晶表示パネル等の表示装置３、キーボードやマウス等の入力装置４などで構成される。
【００２７】
上記三次元空間表示システムで三次元物体等を表示する場合、予め三次元空間をワールド座標系で規定して物体の数値データを記憶装置２に記憶させる。具体的には三次元の数値データとして、物体形状データやどこからどの方向へ向かって物体を観測しているかという視点データ・視線データ・観測画角データ、さらには必要に応じて光源データや物体の質感データなどを記憶させる（図２）。また、物体の構成面の頂点はその順番を追って定義されており、これにより構成面やその物体の表裏を認識して、記憶されることになる。そして、上記数値データに基づいて演算処理装置１で投影変換（射影投影もしくは平行投影）等の演算処理を行い、三次元空間にある物体の観測映像として面、線などの表現で表示装置３の画面（スクリーン）上に二次元の可視映像として表示するものである。
【００２８】
本発明では表示映像上の物体を移動させるために、所定のプログラムが記憶装置２に記憶設定され、これに基づき演算処理装置１が演算を行い、表示映像上の物体の移動を制御する。プログラムの具体例としては、後述する空間及び物体規定プログラム、物体取得プログラム、移動位置指定プログラム、物体移動プログラム、自己方向調整プログラム、空間方向調整プログラム等である。
【００２９】
次に、上記プログラムについて説明する。
▲１▼  まず、三次元空間表示システムにおいて表示映像上の物体移動を可能にするため、予め空間及び物体規定プログラムが記憶設定されている（図３）。
【００３０】
このプログラムでは、視点データ等をふまえて、三次元空間の全体をワールド座標系（Ｘ，Ｙ，Ｚ）で規定すると同時に、三次元空間の任意方向、例えば絶対的上方向を指向するベクトルＵを保持する。また、スクリーンには、注視点ｔを原点として二次元座標系が設定されている（図６参照）。
【００３１】
そして、三次元空間における個々の物体をローカル座標系（ｘ，ｙ，ｚ）で規定して、当該物体の特徴点を定める。特徴点は例えば、ローカル座標の原点、物体の頂点、ローカル座標系の座標軸の中点など任意に定めることが可能である。かかる特徴点に対してはワールド座標系の原点から指定ベクトルＱが生成されており、例えば任意の物体Ａを取得することは、物体Ａを規定するローカル座標系とその指定ベクトルＱａを取得することと同値である。
【００３２】
さらに、物体自体の法線方向で上下を規定するベクトルαと三次元空間の上方向を指向するよう物体の上方向を規定するベクトルβを、ローカル座標系で規定し当該物体に保持させる。このベクトルα、βは、例えばローカル座標系のｚ軸方向をベクトルα、ｙ軸方向をベクトルβとして定める。
【００３３】
また、三次元空間を表すワールド座標系において、それぞれの物体は一つ又は複数個の構成面で形成され、この構成面は複数の構成点で形成される。この各構成点は、それぞれ構成点が包含される構成面及びかかる構成面によって形成される物体に対応して記憶されている。
【００３４】
▲２▼  物体取得プログラムは、三次元空間で物体を取得する際に起動するもので、以下のようなものである。
【００３５】
まず、マウスのポインタなどで二次元映像上で指定された物体Ａ上の任意点ａを認識し、その表示スクリーンに設定された二次元座標を決定して保持する。
【００３６】
ここで任意ではあるが、いわゆるピッキング処理を行うようプログラムすると、既存の高速演算処理装置の利用が可能となり効率的である。ピッキング処理では、三次元空間における任意物体の構成面上にある構成点の三次元座標を、二次元座標に連続的に変換して変換点の二次元座標を取得して記憶保持し、これを上記任意点ａの二次元座標を比較して、同一の二次元座標値となる点の三次元座標値を記憶保持することで、任意点ａが示す変換点群ａ１〜ａｎ（三次元座標値）を決定する。かかる変換点群ａ１〜ａｎは、任意物体の構成面に包含される構成点であるから、変換点群ａ１〜ａｎの取得によって、変換点群ａ１〜ａｎに対応する構成面群Ｆ１〜Ｆｎが認識され、この構成面群が記憶保持される。ピッキング処理では、例えば特開平７−７３３４４号の技術を応用できる。尚、ピッキング処理を行わない場合は、任意物体の全ての構成面について後述の交点演算を行うこととなる。
【００３７】
その後、予め決められた視点Ｅから任意点ａを通る指示ベクトルＬを演算生成して記憶保持する（図４、図５）。具体的な演算プログラムは以下の如くである。
【００３８】
前提として表示装置４のスクリーンは、基準となる視点座標Ｐe、注視点座標Ｐｔ、鉛直ベクトルＳh（ワールド座標系の座標）で表し、視点とスクリーンの距離を単位長さと仮定して処理する。また、注視点座標Ｐｔを原点として、スクリーンには二次元座標が設定されている。尚、視点座標Ｐe、注視点座標Ｐｔ、鉛直ベクトルＳhは予め記憶装置２に記憶設定されている（図５）。
【００３９】
視点からスクリーン中心への視線ベクトルＬvは、視点ベクトルＰe、注視点ベクトルＰｔによりＬv＝Ｐｔ−Ｐeで表すことができ、Ｌvの単位ベクトルＬvuは、Ｌvu＝Ｌv／│Ｌv│で表せる。このＬvuを用いて、スクリーン中心からスクリーン右端部、上端部へのベクトルＬr、Ｌuを計算する。Ｌrは長さＨ・tan（横画角／２）で鉛直ベクトルＳhと垂直なベクトルであり（Ｈは視点Ｅと注視点ｔ間の距離）、Ｌuは長さＨ・tan（縦画角／２）で鉛直ベクトルと平行なベクトルである。ＬrおよびＬuは以下の式で表される。
【００４０】
【数１】
0004109745.tif 000002
【００４１】
そして、マウスが指示する任意点ａをスクリーンの二次元座標（ｍｘ，ｍｙ）とすると、任意点ａのスクリーンの原点からの三次元位置ベクトルＭは以下のように表される。
【００４２】
【数２】
0004109745.tif 000003
【００４３】
従って、視点Ｅからスクリーン上の任意点ａまでの指示ベクトルＬは、以下の式で表せる。
Ｌ＝Ｌvu＋Ｍ  ‥‥‥‥‥（１）
【００４４】
尚、上述の三次元空間表示システムは、基準となる視点データ等により二次元映像を射影変換することで表示されており、この射影変換過程の逆の過程を求め任意点aの逆射影変換を行い、指示ベクトルＬを得ることが可能である。即ち、三次元から二次元への変換関数の逆変換関数を用いて、視点からの奥行き方向のみが変数成分となる三次元の指示ベクトルＬを得てもよい。
【００４５】
その後、ピッキング処理により取得した構成面群Ｆ１〜Ｆｎと指示ベクトルＬとの交点演算を行って、その交点群ｆ１〜ｆｎを取得して保持する。これは、以下のプログラムで行う。
【００４６】
まず、三次元空間に存在する面番号Ｆ(i):ｉ＝１〜ｎの構成面の、それぞれの面方程式を演算して作成する。そのため、面番号Ｆ(i)を構成する３点のワールド座標系の座標値Ｐfa，Ｐfb，Ｐfcを利用して、以下のベクトルを得る。
Ｖfa＝Ｐfa−Ｐfb
Ｖfb＝Ｐfb−Ｐfc
【００４７】
上記２式のベクトルを用いて、外積（Ｖfa・Ｖfb）により面法線ベクトルＶfnを計算すると、Ｖfn＝Ｖfa・Ｖfb  となる。尚、前記座標値は順番を設定されており、面Ｆ(i)の表裏を区別して面法線ベクトルＶfnは得られる。これを用いて、三次元中の平面を表す方程式を決定する。例えば下記のヘッセの標準形で表す。
ＦＮＸ・ｘ＋ＦＮＹ・ｙ＋ＦＮＺ・ｚ＋Ｃ＝０
【００４８】
ここで、ＦＮＸ、ＦＮＹ、ＦＮＺは先ほど求めた面法線ベクトルＶfnの方向余弦であり、Ｃはワールド座標系の原点から平面へ降ろした垂線の長さである。ここでＣは、面番号Ｆ(i)を構成する３点の座標のうちの任意の１点を利用して上式に代入することにより求めることができる。
【００４９】
一方、視点Ｅからマウスが指し示す三次元物体上の任意点ａへの直線Ｌm、即ち、視点Ｅを通って指示ベクトルＬに沿う直線方程式Ｌmは、
【００５０】
【数３】
0004109745.tif 000004
【００５１】
と表される。ここで、Ｌx、Ｌy、Ｌzは指示ベクトルＬのベクトル要素（方向余弦）であり、Ｐex、Ｐey、Ｐezは直線Ｌmが通過する視点座標ＰeのＸ方向、Ｙ方向、Ｚ方向の座標値である。
【００５２】
そして、上記の平面方程式と直線方程式を連立して演算し、面番号Ｆ(i)の表現する平面と指示ベクトルＬに沿う直線Ｌmの交点を求める。即ち、上記２式の連立方程式の解  IS(i)＝fｉ（ｉ＝１〜ｎ）を得て、交点群ｆ１〜ｆ２を取得する（図４）。
【００５３】
最後に、交点群ｆ１〜ｆｎと視点Ｅとの直線距離をそれぞれ計算して最短距離の最適な交点ｆ１を求め、最適点ｆ１に対応する物体Ａを取得して保持する。具体的には、以下のプログラムで行う。
【００５４】
ＩＳ(i)と視点Ｐeとの直線距離を以下の演算で求める。
Length(i)＝｜IS(i)−Ｐe｜
ｉ＝１〜ｎ
【００５５】
最適点ｆ１はLength(i)のうち、利用するのに最適の点を選ぶが、一般的には視点Ｅに最も近い点を選択する。このためには、min(Length(i))を表すｆ１を最適点とすればよい。図５の例では、交点ｆ１とｆ２の直線距離Ｋ１、Ｋ２の内、短い距離Ｋ１を有するｆ１が最適点となる。尚、必要に応じてmin(Length(i))以外の点を選択し、これを最適点とすることも可能である。このような場合は、これら最適点に対応して任意物体の構成面や任意物体が選択される。
【００５６】
尚、物体Ａを取得する方法は上記に限定されず、予め決まっている物体Ａを後述の指定位置に移動する等してもよく、適宜である。
【００５７】
▲３▼  移動位置指定プログラムは、物体Ａの移動する位置を指定するものであり、以下の如くである。
【００５８】
まず、ここでも上述のピッキング処理を行うと好適である。即ち、物体Ａを再配置する物体Ｂ上の任意点ｂを指定して決定し、三次元空間における任意物体の構成面上にある構成点の三次元座標を、二次元座標に連続的に変換して変換点の二次元座標を取得して記憶保持し、これを上記任意点ｂの二次元座標を比較して、同一の座標値となる点の三次元座標値を記憶保持することで、任意点ｂが示す変換点群ｂ１〜ｂｎ（三次元座標値）を決定する。該変換点群ｂ１〜ｂｎの取得によって、対応する構成面Ｇ１〜Ｇｎが認識され、この構成面群が記憶保持される。尚、ピッキング処理を行わない場合は、任意物体の全ての構成面について後述の交点演算を行う。
【００５９】
その後、上述の物体取得プログラムと同様に、予め決められた視点Ｅから任意点ｂを通る指示ベクトルＬ’を演算生成し、該指示ベクトルＬ’と前記構成面群Ｇ１〜Ｇｎとの交点演算を行って交点群ｇ１〜ｇｎを取得し、該交点群ｇ１〜ｇｎと視点Ｅとの直線距離を計算して最短距離の交点ｇ１を取得する。この最適な交点ｇ１は、点ｇ１を構成点とする面Ｇ１に対応していることから直ちにＧ１を取得することができる。上記交点ｇ１、構成面Ｇ１は記憶保持され、物体Ｂ上の物体Ａの移動する位置が決定する。
【００６０】
▲４▼  物体Ｂ上の位置を指定した後、物体移動プログラムによって物体Ａを指定位置の任意点ｂに移動させる。
【００６１】
即ち、ワールド座標系における物体Ａの特徴点の座標値を上記の最適点ｇ１に変更し、物体Ａを規定するローカル座標系に対する初期の指定ベクトルＱを、指定ベクトルＱ’とする。指定ベクトルをＱ’とすることにより、物体Ａを規定するローカル座標系、即ち物体Ａは最適点ｇ１の位置に移動する（図３参照）。
【００６２】
▲５▼  物体Ａの移動後は、物体Ａの自己方向調整プログラムで物体Ａ自体の方向調整を行う。これは、物体Ａの配置に際して物体Ｂの向きに合わせるもので、通常の機能的目的を達成するために必要である。具体的には以下の処理を行う（図７）。
【００６３】
まず、物体Ｂの構成面Ｇ１において最適点ｇ１から法線方向の法線ベクトルγを生成する。即ち、最適点ｇ１を算出する際に用いた三次元空間における平面方程式から、上下方向を規定した最適点ｇ１における法線ベクトルγを演算して保持する。法線ベクトルγの方向は、構成面Ｇ１において物体Ｂの内側から外方向に向くようにする。これは、上記の面法線ベクトルＶfnの決定と同様に定まる。
【００６４】
一方、ローカル座標系で規定される物体Ａは、物体Ａ自体の法線方向でその上下を規定するベクトルαを有することから、このベクトルαと法線ベクトルγの数値情報を比較して、ベクトルαの方向を法線ベクトルγに変換する。これにより、物体Ａは構成面Ｇ１上で法線方向で上下正しく配置される。
【００６５】
上記処理により、例えば映像上の机の上面に対する灰皿の配置、天井に対する照明装置の配置、壁に対する時計の配置など、三次元物体の方向を機能目的に合わせることが可能となる。
【００６６】
▲６▼  空間方向調整プログラムは、例えば時計の文字盤の１２時方向を合わせて壁、立面、斜面に取り付ける場合や、花を日光の方向に向かせるなど、物体を所望方向に向かせて配置することに意味がある場合、所望方向と物体Ａの方向を合致させるものである。ここでは、「所望方向」の例として、三次元空間の絶対的上方向と物体Ａの上方向を合致させる場合について説明する。
【００６７】
この処理は、物体Ａを構成面Ｇ１の法線方向に合わせて配置する際、物体Ａは法線軸（法線ベクトルγ＝ベクトルα方向）に対して回転の自由度を有するから、物体Ａの「上」が三次元空間の「上」を向くように前記自由度を確定することにより行う。これは以下の如く行う（図７）。
【００６８】
前提として、ローカル座標系で規定される物体Ａは、法線方向（法線ベクトルγ＝ベクトルα方向）を回転軸とし、回転の自由度は任意に設定されている。そして、物体Ａは上述の如く、三次元空間における上方向を指向するよう規定されるベクトルβを保持している。一方、ワールド座標系で規定される三次元空間で絶対的上方向を指向するベクトルＵが、予め記憶保持されている。
【００６９】
そして、ベクトルＵをローカル座標系へ変換後に物体Ａの回転面へ射影し、射影ベクトルＵljとベクトルβのなす角度を比較して、当該角度が最小となるベクトルβとその角度を決定して、ベクトルβの回転方向の自由度を確定する。これにより、物体Ａの回転方向の自由度が確定する。
【００７０】
具体的な演算処理は以下のようになる。一般にローカル座標系からワールド座標系への変換関数Ｗを以下のようになる。
Ｗ＝Ｗ（Ｌ，Ｐx，Ｐy，Ｐz，Ｒx，Ｒy，Ｒz）
【００７１】
上式でＬはローカル座標系の指定ベクトル、Ｐx，Ｐy，Ｐzはローカル座標系の座標値、Ｒx，Ｒy，Ｒzはローカル座標系での回転角を表す。予め配置する位置と法線方向が決定されている場合は、変換関数ＷのパラメータＰx，Ｐy，Ｐz，Ｒx，Ｒy，Ｒzのうち、法線に対する回転角を表すＲx，Ｒy，Ｒzのいずれか一つは任意となり、他の５つの変数は確定する。即ち、一つの回転変数以外は定数化されるので、例えばＷ＝Ｗ（Ｒz）のように表せる。
【００７２】
そこで、変換関数Ｗの逆変換関数Ｗ-1を予め保持し、ワールド座標系の上方向ベクトルＵを逆変換関数Ｗ-1によりローカル座標系へと変換する。即ち、変換ベクトルＵl＝Ｗ-1（Ｕ）となる。さらに、変換ベクトルＵlを、物体Ａがベクトルαで規定される唯一回転を許された回転面に対して射影変換を行う。即ち、射影変換関数Ｊにより、射影ベクトルＵljはＵlj＝Ｊ（Ｕl）となる。
【００７３】
一方、ベクトルβは回転面に対する回転角度のみを変数として表せるから、かかる変数をθとすると、ベクトルβはβ＝β（θ）となる。変数θは、０度から３６０度の間で予め決められた角度毎に数値設定され、後述の角度演算ではかかる数値毎に連続して変数θが代入され、角度演算を行う。
【００７４】
そして、射影ベクトルＵljと物体Ａのベクトルβのなす角度を次式の角度演算関数Angleで演算する。
Angle(up)＝Angle（Ｕlj，β（θ））
【００７５】
上記の角度Angle(up)をそれぞれ比較して、最小値  min（Angle(up)）を取得し、変数θは最小値  min（Angle(up)）の数値に決定される。そして、これにより、物体Ａの回転方向の自由度が確定する。
【００７６】
尚、上記Angle(up)、θの結果は、ワールド座標系に変換して演算処理して求めてもよく、この場合はベクトルβをワールド座標系に変換したβ’（法線回転角度が変数）と、ワールド座標系の上方向ベクトルＵのなす角度を最小にする関数で、以下のように示すことができる。ANGLE(up)は定数である。
ANGLE(up)＝MIN・ANGLE（Ｕ，β’）
【００７７】
次に、三次元空間表示システムにおける物体移動装置を、実際に使用する場合の一例について説明する（図６、図７）。
【００７８】
前提として、三次元空間表示システムのハードウェア構成は、ＣＰＵ、ＲＯＭ、ＣＲＴディスプレイ、マウス等からなり、ＲＯＭには上記のプログラムが記憶されている場合を想定する。ＣＲＴには仮想三次元空間と仮想三次元物体が表示されている。
【００７９】
まず、マウスを使用して検出しようとする物体Ａ上の任意点ａ、例えば時計上の任意点にポインタを合わせ、マウスのボタンを押し下げる。マウスの押し下げで任意点ａの二次元座標が取得され、上述の物体取得プログラムにより物体Ａを検出する。このとき、対象物体Ａをハイライト表示するようにすると、操作が容易になる。
【００８０】
その後、マウスを押し下げた状態を維持したまま、マウスを移動させてポインタを移動させる。ポインタの移動で移動前後のポインタ位置の差異を認識し、移動後のポインタ位置の二次元座標に対応する三次元座標を取得する。三次元座標の取得は上記移動位置指定プログラム、物体移動プログラムで行う。即ち、ポインタ位置の差異を認識する毎に上述の交点演算を行い、ポインタ位置の二次元座標に対応する三次元座標を取得する。尚、ポインタ位置の差異の認識は、ＣＰＵの能力が許せばＣＲＴディスプレイの画素毎等で行うこともできる。
【００８１】
このとき、三次元座標を取得する毎に物体Ａを移動させ、好ましくは三次元座標を取得したポインタ位置毎に物体Ａを一時的に表示できるようにし、物体Ａの移動の軌跡を認識可能とする。
【００８２】
そして、物体Ａを配置しようとする物体Ｂの任意点ｂに、ポインタ位置が到達した際にマウスボタンを開放し、物体Ａを確定的に配置する。このとき、物体Ａは法線方向の上下と三次元空間の上方向を指向して、任意点ｂを構成点とする物体Ｂの任意面に配置される。これは上記自己方向調整プログラムと空間方向調整プログラムで行われる。物体Ａの配置が確定したときは物体Ａの表示が確定する。図８には、時計を壁面に配置する例を示す。
【００８３】
尚、上述の三次元空間表示システムにおける物体移動の手順はいずれも、ハードウェア、ソフトウェアのどちらで行わせてもよく、また、複数のコンピュータを利用してもよく、上記手順を実行させる機器の形態で限定されるものではない。
【００８４】
【発明の効果】
本発明は上述の如くであるから、表示映像上で仮想物体を移動し所望位置に配置する際の余分な作業を省いて、操作を容易化することができる効果がある。これにより、かかる技術分野に精通していない一般のユーザーにも利用させることが可能となる。
【図面の簡単な説明】
【図１】三次元空間表示システムのハードウェア構成図。
【図２】三次元空間の物体を規定する各種データの概略図。
【図３】三次元空間における規定関係を示す概念図。
【図４】指示ベクトルの概念図。
【図５】指示ベクトルの生成過程図。
【図６】オペレーション、演算処理、表示の概略相関図。
【図７】表示映像上の三次元空間で時計を移動させる場合の概念図。
【符号の説明】
１  演算処理装置
２  記憶装置
３  表示装置
４  入力装置
【図１】
0004109745.tif 000005
【図２】
0004109745.tif 000006
【図３】
0004109745.tif 000007
【図４】
0004109745.tif 000008
【図５】
0004109745.tif 000009
【図６】
0004109745.tif 000010
【図７】
0004109745.tif 000011