説明

3次元オブジェクト処理装置、3次元オブジェクト処理方法、プログラム、及び情報記憶媒体

【課題】比較的簡易な処理で3次元オブジェクトを変形することのできる3次元オブジェクト処理装置を提供する。
【解決手段】仮想3次元空間内に配置された3次元オブジェクトを、当該仮想3次元空間内に設定された複数の射影面のそれぞれに射影して得られる射影オブジェクトを、当該射影面内において変形し、各射影面内において変形された射影オブジェクトに基づいて、仮想3次元空間内の3次元オブジェクトを変形する3次元オブジェクト処理装置である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想3次元空間に配置された3次元オブジェクトの変形処理を行う3次元オブジェクト処理装置、3次元オブジェクト処理方法、プログラム、及び情報記憶媒体に関する。
【背景技術】
【0002】
コンピュータゲームなどでは、2次元や3次元の仮想空間内にゲームキャラクタ等のオブジェクトを配置し、配置したオブジェクトを仮想空間内で移動させたり変形したりすることで、仮想空間内の様子が表現される。このように仮想空間内のオブジェクトを変形する方法として、各種の技術が提案されている。具体的に、例えば非特許文献1には、2次元平面に配置された2次元オブジェクトを変形する技術が開示されている。
【0003】
ここで、仮想3次元空間内に配置された3次元オブジェクトを変形する場合、その内部構造まで考慮しないと自然な形状に変形することが難しい。そのため、3次元オブジェクトを変形する際には、骨格や関節などの構造を表す骨格モデルを予め生成し、当該骨格モデルに沿って全体の形状を変化させたり、物体内部まで含めた物理シミュレーションを実行して変形後の形状を決定したりするなどの方法が採られている。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Takeo Igarashi, Tomer Moscovich, John F. Hughes,”As-Rigid-As-Possible Shape Manipulation”, ACM Transactions on Computer Graphics, Vol.24,No.3, ACM SIGGRAPH, 2005年
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述したように、3次元オブジェクトを変形する場合、その表面形状だけでなく、内部構造まで考慮した変形処理を実行する必要がある。そのため、平面上の2次元オブジェクトを変形する場合と比較して、人手による骨格モデル作成等の作業が必要となったり、演算処理量が増えたりする傾向にある。
【0006】
本発明は上記実情を考慮してなされたものであって、その目的の一つは、比較的簡易な処理で3次元オブジェクトを変形することのできる3次元オブジェクト処理装置、3次元オブジェクト処理方法、プログラム、及び情報記憶媒体を提供することにある。
【課題を解決するための手段】
【0007】
本発明に係る3次元オブジェクト処理装置は、仮想3次元空間内に配置された3次元オブジェクトの変形処理を実行する3次元オブジェクト処理装置であって、前記3次元オブジェクトを、前記仮想3次元空間内に設定された複数の射影面のそれぞれに射影する射影手段と、前記3次元オブジェクトを前記各射影面に射影して得られる射影オブジェクトを、当該射影面内において変形する射影オブジェクト変形手段と、前記各射影面内において変形された前記射影オブジェクトに基づいて、前記仮想3次元空間内の前記3次元オブジェクトを変形する3次元オブジェクト変形手段と、を含むことを特徴とする。
【0008】
上記3次元オブジェクト処理装置において、前記3次元オブジェクトは複数の面要素を含んでなる表面形状によって構成され、前記射影手段は、前記複数の面要素のそれぞれを前記各射影面に射影し、前記射影オブジェクト変形手段は、前記射影された複数の面要素のそれぞれを、当該面要素同士の接続関係を保ったまま変形することにより、前記射影オブジェクトを変形することとしてもよい。
【0009】
また、上記3次元オブジェクト処理装置において、前記複数の射影面は、互いに直交する3つの射影面であって、当該3つの射影面のそれぞれは、前記仮想3次元空間に設定された3つの基準軸のうちの2つを包含することとしてもよい。
【0010】
また、上記3次元オブジェクト処理装置は、ユーザから、前記仮想3次元空間内における変化方向の指定を含む前記3次元オブジェクトの変形指示を受け付ける指示受付手段をさらに含み、前記射影手段は、前記変形指示に含まれる変化方向に基づいて、前記複数の射影面の少なくとも一つの向きを決定することとしてもよい。
【0011】
さらに上記3次元オブジェクト処理装置は、前記仮想3次元空間内の様子を示す画像を表示する表示部と、前記表示部の表示画面と平行に配置され、物体の接触位置を検知するタッチセンサと、をさらに含み、前記指示受付手段は、前記タッチセンサによって検知される接触位置の移動方向に応じて、前記仮想3次元空間内における前記画像の投影面に平行な変化方向の指定を含む変形指示を受け付け、前記射影手段は、前記変化方向に基づいて、前記複数の射影面の少なくとも一つの向きを、前記画像の投影面に平行な向きに決定することとしてもよい。
【0012】
また、本発明に係る別の3次元オブジェクト処理装置は、仮想3次元空間内に配置され、互いに接続される複数の頂点によって形成される表面形状を備える3次元オブジェクトの変形処理を実行する3次元オブジェクト処理装置であって、前記複数の頂点のそれぞれを、前記仮想3次元空間内に設定された複数の射影面のそれぞれに射影する射影手段と、前記各射影面内において、当該射影面に射影された複数の頂点によって構成される射影オブジェクトを変形する射影オブジェクト変形手段と、前記各射影面内において変形された前記射影オブジェクトに基づいて、前記仮想3次元空間内の前記3次元オブジェクトを変形する3次元オブジェクト変形手段と、を含むことを特徴とする。
【0013】
また、本発明に係る3次元オブジェクト処理方法は、仮想3次元空間内に配置された3次元オブジェクトを変形する3次元オブジェクト処理方法であって、前記3次元オブジェクトを、前記仮想3次元空間内に設定された複数の射影面のそれぞれに射影するステップと、前記3次元オブジェクトを前記各射影面に射影して得られる射影オブジェクトを、当該射影面内において変形するステップと、前記各射影面内において変形された前記射影オブジェクトに基づいて、前記仮想3次元空間内の前記3次元オブジェクトを変形するステップと、を含むことを特徴とする。
【0014】
また、本発明に係るプログラムは、仮想3次元空間内に配置された3次元オブジェクトの変形処理を実行するためのプログラムであって、前記3次元オブジェクトを、前記仮想3次元空間内に設定された複数の射影面のそれぞれに射影する射影手段、前記3次元オブジェクトを前記各射影面に射影して得られる射影オブジェクトを、当該射影面内において変形する射影オブジェクト変形手段、及び前記各射影面内において変形された前記射影オブジェクトに基づいて、前記仮想3次元空間内の前記3次元オブジェクトを変形する3次元オブジェクト変形手段、としてコンピュータを機能させるためのプログラムである。このプログラムは、コンピュータ読み取り可能な情報記憶媒体に記憶されてよい。
【図面の簡単な説明】
【0015】
【図1】本発明の実施の形態に係る3次元オブジェクト処理装置の構成図である。
【図2】本発明の実施の形態に係る3次元オブジェクト処理装置が実現する機能を示す機能ブロック図である。
【図3】本発明の実施の形態に係る3次元オブジェクト処理装置の処理対象となる3次元オブジェクトの一例を示す図である。
【図4A】図3に示す3次元オブジェクトを射影面に射影してなる射影オブジェクトの一例を示す図である。
【図4B】図3に示す3次元オブジェクトを別の射影面に射影してなる射影オブジェクトの一例を示す図である。
【図4C】図3に示す3次元オブジェクトをさらに別の射影面に射影してなる射影オブジェクトの一例を示す図である。
【図5A】図4Aに示す射影オブジェクトを変形した様子を示す図である。
【図5B】図4Bに示す射影オブジェクトを変形した様子を示す図である。
【図5C】図4Cに示す射影オブジェクトを変形した様子を示す図である。
【図6】図3に示す3次元オブジェクトを変形した様子を示す図である。
【発明を実施するための形態】
【0016】
以下、本発明の実施の形態について、図面に基づき詳細に説明する。
【0017】
図1は、本発明の一実施形態に係る3次元オブジェクト処理装置1の構成図である。3次元オブジェクト処理装置1は、例えばパーソナルコンピュータや家庭用ゲーム機等であって、仮想3次元空間に配置された3次元オブジェクトに対する変形処理を実行する。図1に示すように、3次元オブジェクト処理装置1は、制御部11と、記憶部12と、操作部13と、表示部14と、を含んで構成される。
【0018】
制御部11は、CPU等を含んで構成され、記憶部12に記憶されたプログラムに従って各種の情報処理を実行する。本実施形態において制御部11が実行する処理の内容については、後述する。
【0019】
記憶部12は、RAMやROM等のメモリ素子を含んで構成され、制御部11によって実行されるプログラムや各種のデータを記憶する。また、記憶部12は制御部11のワークメモリとしても機能する。本実施形態では、この記憶部12内に仮想3次元空間に関する各種の情報が記憶されることによって、3次元オブジェクト処理装置1内に仮想3次元空間が構築される。
【0020】
操作部13は、キーボードやマウス、あるいは家庭用ゲーム機のコントローラ等であって、ユーザの操作入力を受け付けて、その内容を示す信号を制御部11に出力する。表示部14は、液晶ディスプレイ装置等であって、制御部11の指示に従って各種の画像を表示する。本実施形態では、表示部14は、仮想3次元空間内に配置される3次元オブジェクトの様子を示す画像を表示する。なお、操作部13は、ユーザの指やスタイラス等の物体の接触位置を検知するタッチセンサを含んでもよい。このタッチセンサは、表示部14の表示画面に対する操作入力に使用するために、表示画面と平行に配置されることが望ましい。具体的に、このタッチセンサは、表示部14の表示画面と重畳して配置されてもよいし、3次元オブジェクト処理装置1の筐体裏面に、表示部14の表示画面と対向するように配置されてもよい。また、このタッチセンサは、例えば静電容量式や感圧式、光学式など、物体の接触位置を検出可能なデバイスであれば、どのような方式のものであってもよい。
【0021】
図2は、本実施形態に係る3次元オブジェクト処理装置1が実現する機能を示す機能ブロック図である。同図に示されるように、3次元オブジェクト処理装置1は、機能的に、仮想空間管理部21と、オブジェクト射影部22と、射影オブジェクト変形部23と、3次元オブジェクト変形部24と、を含んで構成される。これらの機能は、制御部11が記憶部12に記憶されたプログラムを実行することにより、実現される。このプログラムは、光ディスク媒体等の各種のコンピュータ読み取り可能な情報記憶媒体に格納されて提供されてもよいし、インターネット等の通信ネットワーク経由で提供されてもよい。
【0022】
仮想空間管理部21は、記憶部12内に構築される仮想3次元空間Sに関する情報を管理する。具体的に、仮想空間管理部21は、3次元オブジェクトOを仮想3次元空間S内に配置する。また、仮想空間管理部21は、ユーザが操作部13を介して入力する3次元オブジェクトOに対する操作指示を受け付ける指示受付手段として機能する。さらに仮想空間管理部21は、仮想3次元空間S内に設定された視点位置VP及び視線方向VDに関する情報を管理しており、これらの情報を用いて視点位置VPから視線方向VDに向かって仮想3次元空間S内を見た様子を示す画像を描画する。仮想空間管理部21が描画した画像を表示部14が表示することによって、ユーザは、仮想3次元空間S内に配置された3次元オブジェクトOを閲覧できる。
【0023】
以下では具体例として、本実施形態で処理対象となる3次元オブジェクトOは略円柱形のオブジェクトであって、その表面は2つの略円形の底面と略円筒状の側面とから構成されることとする。図3は、この3次元オブジェクトOが配置された仮想3次元空間Sの様子を示す図である。3次元オブジェクトOは、表面(外面)形状だけで構成されてよく、内部構造に関する情報を持っていなくともよい。この3次元オブジェクトOの表面形状は、図3に示されるように、複数の面要素によって構成されている。ここでは各面要素は、三角形の平板状の構造をしたポリゴンであるものとし、このような平板状の面要素が多数集まることによって、近似的に3次元オブジェクトOの表面を構成する曲面が表現されている。すなわち、3次元オブジェクトOの表面形状は、当該3次元オブジェクトOを構成する各面要素の頂点の位置座標と、各面要素の接続関係に関する情報と、によって決定されている。ここで、各面要素の接続関係に関する情報は、3次元オブジェクトOの表面において、各頂点が他の頂点とどのように接続されているかを示す情報である。この情報によって、各面要素同士がどの頂点や辺を共有して隣接しているかが規定される。換言すると、図3に例示する3次元オブジェクトOは、互いに接続される複数の頂点によって形成される表面形状を備えていることになる。
【0024】
また、仮想3次元空間Sには、互いに直交する3つの基準軸(X軸、Y軸及びZ軸)が設定されている。各面要素の頂点の位置座標は、この3つの基準軸を基準として表される。
【0025】
オブジェクト射影部22は、この3次元オブジェクトOを、仮想3次元空間S内に設定された複数の射影面のそれぞれに射影する。ここではオブジェクト射影部22は、3次元オブジェクトOの表面形状を構成する各頂点を、仮想3次元空間S内に設定された互いに直交する3つの射影面P1,P2及びP3のそれぞれに射影することとする。すなわち、オブジェクト射影部22は、各面要素の頂点を、当該頂点を通り各射影面と直交する垂線と、各射影面と、の交点に射影することによって、3次元オブジェクトOの表面を構成する各面要素を3つの射影面のそれぞれに射影する。なお、以下では、射影面P1はZ軸及びX軸を含むZX平面、射影面P2はX軸及びY軸を含むXY平面、射影面P3はY軸及びZ軸を含むYZ平面であることとする。また、3次元オブジェクトOを射影面P1,P2及びP3のそれぞれに射影して得られる2次元オブジェクトを、それぞれ射影オブジェクトOp1,Op2及びOp3と表記する。また、ここではオブジェクト射影部22は、3次元オブジェクトOを射影面P1,P2及びP3のそれぞれに対して直交射影することとしたが、射影の方法はこのようなものに限られない。例えばオブジェクト射影部22は、各面要素の頂点と射影点とを結ぶ直線の各射影面に対する角度が90°以外の予め定められた角度になるように、3次元オブジェクトOを各射影面に対して斜めに射影してもよい。あるいは、予め定められた仮想3次元空間内の基準点(例えば視点位置VPや仮想3次元空間内に設定された光源の位置)と各頂点とを結ぶ直線を各射影面まで延長することによって、3次元オブジェクトOを各射影面に対して放射状に射影してもよい。
【0026】
図4A、図4B及び図4Cは、図3に示す円柱状の3次元オブジェクトOを射影面P1,P2及びP3のそれぞれに射影して得られる射影オブジェクトOp1,Op2及びOp3を示す図である。ここで、例えば図4Cにおいては、円柱の一つの底面だけが射影面P3上に現れているように見えるが、実際には2つの底面のそれぞれを構成する面要素が重なって射影されている。また、円柱の側面を構成する各面要素も、底面の外周に重なるように略直線状に射影されている。同様に、図4A及び図4Bにおいても、側面の手前側だけでなく、奥側の面要素も重なって射影されており、さらに円柱の底面を構成する各面要素も側面の端部に重なって射影されている。すなわち、各射影オブジェクトOp1,Op2及びOp3は、いずれも3次元オブジェクトOの表面形状を構成する全ての面要素を含んで構成されている。
【0027】
さらに、これらの各面要素は、その接続関係を保ったまま各射影面に射影される。すなわち、仮想3次元空間S内において互いに隣接していた面要素同士は、各射影面内においても同じ頂点又は辺を共有して隣接している。
【0028】
射影オブジェクト変形部23は、オブジェクト射影部22によって各射影面に射影された射影オブジェクトOp1,Op2及びOp3のそれぞれを、当該射影オブジェクトが射影された射影面内において変形する。具体的に、射影オブジェクト変形部23は、3次元オブジェクトOの表面形状を形成する複数の頂点を各射影面に射影して得られる複数の射影点のそれぞれを、射影点同士の接続関係を保ったまま、当該射影面内で移動させる。これに応じて、射影された各面要素は、お互いの接続関係を保ったまま変形され、これによって互いに接続される複数の射影点によって構成される射影オブジェクトの全体が変形される。
【0029】
ここで、射影オブジェクト変形部23は、予め定められた変形アルゴリズム及び入力条件に従って、各射影オブジェクトに対する変形処理を行う。射影オブジェクト変形部23が実行する変形処理は、各射影面内において、各射影点同士の接続関係を保ったまま射影オブジェクトを変形させる処理であれば、どのようなものであってもよい。なお、射影オブジェクトは2次元平面上のオブジェクトであって、当該射影オブジェクトの変形も射影面内で行われるので、ここで用いられる変形アルゴリズムは、2次元オブジェクト用の変形アルゴリズムであってもよい。つまり、本実施形態に係る3次元オブジェクト処理装置1は、3次元オブジェクトOの変形を行うために、立体的な形状を持つオブジェクトにはそのまま適用できないような変形アルゴリズムを利用することもできる。また、射影オブジェクト変形部23は、各射影オブジェクトの変形処理を互いに独立に実行すればよい。すなわち、各射影オブジェクトの変形処理は、他の射影面に射影された射影オブジェクトの変形処理の結果とは無関係に実行される。
【0030】
以下、射影オブジェクト変形部23が各射影オブジェクトに対して実行する変形処理の具体例について、説明する。なお、ここでは射影オブジェクト変形部23は、ユーザが操作部13を介して入力する操作指示に従って、各射影オブジェクトを変形することとする。具体的に、ユーザは、3次元オブジェクトOが表示部14の画面に表示された状態で、3次元オブジェクトOの表面を構成する複数の面要素の頂点のうち、その位置を固定する固定点(動かさない点)及び位置を変化させる変形点(動かす点)を指定することとする。また、変形点に対する変形指示として、仮想3次元空間S内における当該変形点の位置の変化方向及び変化量も指定する。これらの指示情報は、仮想空間管理部21によって受け付けられ、射影オブジェクト変形部23に入力される。
【0031】
図3には、このようなユーザの指示内容の具体例が示されている。この図の例では、三角形の印が付された3つの頂点が固定点であって、丸印が付された3つの頂点が変形点である。また、各変形点の変化方向及び変化量を表す変形ベクトルは、各変形点を起点とした矢印によって示されている。すなわち、この図の例では、3つの変形点を図の上方(すなわち、Z軸正方向)に移動させる変形指示をユーザが行ったことが示されている。なお、ユーザは、このような変形点の移動指示を、複数の変形点に対して共通に実行してもよい。この場合、各変形点の変化方向及び変化量は、いずれも同じになる。あるいは、ユーザは、変形点の移動指示を、複数の変形点のそれぞれに対して個別に実行してもよい。この場合、各変形点の変化方向及び変化量は、互いに異なって構わない。
【0032】
また、操作部13がタッチセンサを含む場合、ユーザは、表示部14に3次元オブジェクトOが表示された状態で、この表示された3次元オブジェクトO内の位置に対応するタッチセンサの位置に指やスタイラスを接触させ、そのままタッチセンサ上において指やスタイラスを動かすことで、変形指示を入力してもよい。この場合、タッチセンサ上の接触位置に対応する3次元オブジェクトOの表面上の位置(例えば3次元オブジェクトOの表面形状を構成する各頂点のうち、接触位置に一致又は最も近接する頂点)が変形点となり、接触位置の移動方向及び移動量に対応する方向及び距離が、当該変形点に対する変形方向及び変形量の指示となる。この場合の変形方向は、例えば視線方向VDに垂直な方向(すなわち、画像の投影面に平行な方向)であってよい。
【0033】
射影オブジェクト変形部23は、この変形ベクトルを各射影面に射影することによって、各射影面に射影された変形点の変化方向及び変化量を決定する。図4A、図4B及び図4Cには、図3に例示する操作指示があった場合の、射影オブジェクトOp1,Op2及びOp3それぞれにおける固定点及び変形点の位置、並びに射影された変形ベクトルが示されている。なお、この例では各変形点に対する変形ベクトルは射影面P2と直交しているので、射影面P2の射影された変形ベクトルの大きさは0になり、図4B中には現れない。
【0034】
射影オブジェクト変形部23は、この固定点、変形点、及び射影された変形ベクトルに応じて、射影オブジェクトOp1,Op2及びOp3のそれぞれを、その平面形状をなるべく保つようにして変形する。すなわち、射影オブジェクト変形部23は、固定点については移動させず、かつ、変形点については、射影された変形ベクトルが示す方向及び移動量で射影面内を移動させるという条件の下で、固定点及び変形点を除くその他の頂点については、変形点の移動に伴う各面要素の形状の変化が最小限に抑えられるように、射影面内を移動させる。具体的に、射影オブジェクト変形部23は、射影された変形ベクトルが示す方向及び移動量で移動した後の変形点の位置を算出し、固定点の位置、及び移動後の変形点の位置を基準として、他の各頂点の位置を算出する。これによって、各射影オブジェクトは、射影面内においてユーザの変形指示を反映した態様で変形される。このような変形処理は、例えば非特許文献1に開示される方法で実現されてよい。
【0035】
図5A、図5B及び図5Cのそれぞれは、図4A、図4B及び図4Cのそれぞれに示される射影オブジェクトを、同図に示される操作指示に従って変形した様子を示す図である。前述の通り、射影面P2内においては射影された変形ベクトルの大きさが0になるので、図5Bに示されるように、射影オブジェクトOp2は実質的に変形されずそのままの形状を保っている。一方、図5Aに示されるように、射影オブジェクトOp1は、その一方端が上方に持ち上げられるように変形している。また、図5Cに示されるように、射影オブジェクトOp3は、重なっていた2つの円の一方が上方に持ち上げられるように変形している。なお、これに伴って円の外周と重なっていた円柱の側面に対応する面要素が射影面P2上に現れるが、図の簡略化のために、図5Cにおいては円柱の側面に対応する面要素は省略されている。
【0036】
射影オブジェクト変形部23は、上述した方法以外の他の変形アルゴリズムに従って各射影オブジェクトの変形処理を実行してもよい。例えば射影オブジェクト変形部23は、2次元バネ−質点系モデルに基づいて、各射影オブジェクトを変形してもよい。この場合、例えば各面要素の頂点を質点、各頂点を結ぶ面要素の辺をバネとみなすことによって、各射影オブジェクトは互いにバネで接続された質点の集合として表される。ユーザの操作指示を表す変形ベクトルに応じて変形点が各射影面内を移動すると、その移動に応じて各バネに弾性力が生じ、この弾性力が各質点に作用することになる。射影オブジェクト変形部23は、この各質点に作用する力の大きさを演算することによって、各質点の移動方向及び移動量を決定する。このようにして決定された移動方向及び移動量に応じて各頂点を移動させることで、射影オブジェクト全体をユーザの操作指示に応じて変形することができる。なお、このような変形アルゴリズムを3次元オブジェクトOにそのまま適用する場合、通常、3次元オブジェクトOの内部構造を規定するための質点及びバネが3次元オブジェクトOの内部に配置されるが、本実施形態では、各射影面上に射影された2次元オブジェクトに対して変形を行うので、必ずしもこのような内部構造を規定する質点及びバネを用意する必要はない。
【0037】
あるいは射影オブジェクト変形部23は、FFD(Free Form Deformation)と呼ばれる手法によって射影オブジェクトを変形してもよい。この場合、射影オブジェクト変形部23は、射影オブジェクトが配置された射影面の一部又は全部を歪ませる変形を行うことにより、射影面内の射影オブジェクトを変形する。この場合も、平面上の変形を行うだけなので、3次元オブジェクトOが配置された仮想3次元空間S自体を変形する場合と比較して、より軽い処理負荷で各射影オブジェクトを変形する演算を行うことができる。
【0038】
3次元オブジェクト変形部24は、射影オブジェクト変形部23によって各射影面内で変形された射影オブジェクトの形状に基づいて、仮想3次元空間S内の3次元オブジェクトOを変形する。具体的に、3次元オブジェクト変形部24は、各射影面で変形された3つの射影オブジェクトOp1,Op2及びOp3の形状を合成することによって、変形後の3次元オブジェクトOの形状を決定する。
【0039】
ここで、3次元オブジェクト変形部24が実行する処理の具体例について、説明する。3次元オブジェクトOの表面形状を構成する各面要素の頂点の一つを頂点Vとすると、当該頂点Vは、オブジェクト射影部22によって3つの射影面P1,P2及びP3のそれぞれに射影されている。ここで頂点Vを3つの射影面P1,P2及びP3のそれぞれに射影して得られる点をそれぞれ射影点Vp1,Vp2及びVp3と表記すると、射影オブジェクト変形部23によって、射影オブジェクト変形後の射影点Vp1,Vp2及びVp3それぞれの射影面内における位置が決定される。この変形後の射影点Vp1,Vp2及びVp3それぞれの射影面内の位置に基づいて、仮想3次元空間S内における変形後の頂点Vの位置が決定される。すなわち、射影面P1内における点Vp1のX座標値と射影面P2内における点Vp2のX座標値の平均値を、頂点VのX座標値として算出する。同様に、射影面P2内における点Vp2のY座標値と射影面P3内における点Vp3のY座標値を用いて頂点VのY座標値を、射影面P3内における点Vp3のZ座標値と射影面P1内における点Vp1のZ座標値を用いて頂点VのZ座標値を、それぞれ算出する。これによって、3次元オブジェクトOが変形した後の頂点Vの位置座標が決定される。同様の処理を3次元オブジェクトOの表面形状を構成する各頂点について実行することで、各射影オブジェクトの変形を反映した仮想3次元空間S内における各頂点の位置座標が決定される。この各頂点は、3次元オブジェクトOを各射影面に射影する前の接続関係を保っているので、この接続関係に従って各頂点を接続することで、3次元オブジェクトO全体の変形後の表面形状が決定される。図6は、図5A、図5B及び図5Cに示される射影オブジェクトOp1,Op2及びOp3をこのようにして合成して得られる、変形後の3次元オブジェクトOの一例を示す図である。
【0040】
3次元オブジェクト変形部24によって変形された3次元オブジェクトOは、仮想空間管理部21によって表示部14に表示され、ユーザに提示される。なお、以上説明したオブジェクト射影部22による射影処理、射影オブジェクト変形部23による射影オブジェクトの変形処理、3次元オブジェクト変形部24が各射影オブジェクトを合成して3次元オブジェクトOを変形する処理、及び仮想空間管理部21が変形後の3次元オブジェクトOを表示する処理は、所定時間おきに繰り返し実行されてよい。これによって、ユーザは、自分が操作部13に対して入力した操作指示に応じて3次元オブジェクトOが変形していく様子を閲覧できる。
【0041】
以上説明した本実施形態に係る3次元オブジェクト処理装置1によれば、3次元オブジェクトOを複数の射影面に射影して得られる射影オブジェクトのそれぞれに対して変形処理を実行し、その結果を合成して3次元オブジェクトOの変形後の形状を決定する。すなわち、変形処理自体は平面上のオブジェクトに対して実行されるので、3次元オブジェクトOそのものを直接変形する場合と比較して、内部構造を考慮せずに変形処理を行うことができ、処理負荷を軽減できる。また、平面上のオブジェクトのみを対象とした変形アルゴリズムを利用して3次元オブジェクトOを変形することもできる。
【0042】
なお、本発明の実施の形態は以上説明したものに限られない。例えば以上の説明においては、射影面P1,P2及びP3が互いに直交し、かつ、位置座標決定に用いられる3つの基準軸に平行であることとしたが、射影面はこのようなものに限られない。すなわち、仮想3次元空間S内に設定される射影面は、必ずしも3つである必要はなく、2つでも、また4つ以上でもよい。さらに、各射影面は基準軸に平行でなくともよく、また互いに直交しておらずともよい。
【0043】
ここで、射影面の数及び向きは、3次元オブジェクトOの形状及びその変化の特徴がより顕著に表れるように選択することが望ましい。そのため、オブジェクト射影部22は、3次元オブジェクトOの外形に応じて射影面を設定してもよい。具体例として、オブジェクト射影部22は、3次元オブジェクトOの長手方向(最も両端間の距離が長くなる方向)に平行な面を少なくとも射影面として選択する。例えば図3に示す円柱形のオブジェクトであれば、当該オブジェクトを底面から見た形状よりも、側面から見た形状の方が、変形の自由度が大きい。そこで、この側面から見た向きに3次元オブジェクトOを射影するような面を優先的に射影面として設定することで、3次元オブジェクトOの特徴的な変形を表現することができる。あるいは、オブジェクト射影部22は、射影オブジェクトが射影面に占める面積が最も大きくなるような面を、射影面の一つとして選択してもよい。
【0044】
また、オブジェクト射影部22は、変形点に対する変形指示の方向(すなわち、変形ベクトルの方向)に応じて射影面を決定してもよい。ユーザが変形指示を行う場合、少なくとも変形ベクトルの方向に対する3次元オブジェクトOの変形は、明確にユーザに提示されることが望ましい。そこで、この変形ベクトルの方向に平行な平面を射影面として選択することで、当該変形ベクトルにより示される変形指示がより反映されるように3次元オブジェクトOを変形することができる。なお、複数の変形点に対して変形指示がなされている場合、これら複数の変形ベクトルを合成して得られる合成ベクトルの向きに応じて射影面を決定してもよい。また、複数の変形ベクトルそれぞれの向きに応じて、複数の射影面それぞれの向きを決定してもよい。
【0045】
また、オブジェクト射影部22は、視線方向VDに応じて射影面を決定してもよい。3次元オブジェクト処理装置1が視線方向VDに沿って仮想3次元空間Sを見た様子を表示部14に表示する場合、この視線方向VDに垂直な向きの形状の変化はユーザに分かり易く提示され、一方で視線方向VDに平行な向きの変化は画面上に明確に現れにくい。そこで、例えばオブジェクト射影部22は、少なくとも視線方向VDに垂直な平面を射影面の一つとして選択することで、画面上に現れやすい形状の変化を3次元オブジェクトO全体の変形に反映させることができる。
【0046】
なお、以上説明した射影面の向きを決定する複数の基準は、互いに組み合わせて用いられてもよい。例えばオブジェクト射影部22は、複数の射影面の一つを3次元オブジェクトOの長手方向に平行な平面とし、他の一つを視線方向VDに直交する平面としてもよい。あるいは、3次元オブジェクトOの長手方向に対する傾きが小さく、かつ、視線方向VDに対する傾きが大きな平面を射影面の一つとして選択することとしてもよい。
【0047】
さらに、オブジェクト射影部22は、3次元オブジェクトOを射影して得られる射影オブジェクトの形状によっては、射影面の向きを変化させて、3次元オブジェクトOの射影処理を再実行してもよい。例えば3次元オブジェクトOの表面形状を構成する面要素の多くが射影面に対して直交している場合、このような面要素は射影面に射影された際に大きさ(面積)を持たない直線形状になってしまう。ところが、変形アルゴリズムの種類によっては、各面要素の形状を変化させて射影オブジェクトを変形するので、多数の面要素が直線状に射影されてしまうと、正常に変形処理を実行することが難しくなってしまう場合がある。そこで、このような場合には、射影面の向きを所定量だけ変化させて、再度射影処理を実行することで、直線状に射影される面要素の数を減らすことができる。
【0048】
ここで、前述したように射影面が互いに直交し、かつ基準軸に平行な場合には、単純に各射影面内における射影点の位置座標値の平均を算出することで、各射影面内における射影点の位置を合成して、仮想3次元空間S内における頂点の位置を決定することができる。しかしながら、一部又は全部の射影面が位置座標を規定する基準軸に対して斜交している場合、3次元オブジェクト変形部24は、各射影面に射影された射影点の位置を合成する際に、各射影面の基準軸に対する傾きを考慮して、当該射影面内の位置座標値に対して補正を行ってから、他の射影面の位置座標値との平均を算出する必要がある。
【0049】
具体例として、仮想3次元空間S内に2つの射影面P1及びP2が設定され、射影面P1は前述の例と同様にZX平面であり、射影面P2はX軸を含みY軸及びZ軸のそれぞれに対して45°傾いた平面である場合について、説明する。ここで、ある頂点V1を射影面P1上に射影して得られる射影点の変形処理後の位置座標が(u1,v1)で、当該頂点V1を射影面P2上に射影して得られる射影点の変形処理後の位置座標が(u2,v2)だったとする。なお、射影面P1上の位置座標は、仮想3次元空間SのX軸に沿った位置を第1成分、Z軸に沿った位置を第2成分として表されている。また、射影面P2上の位置座標は、仮想3次元空間SのX軸に沿った位置を第1成分、X軸と直交する軸に沿った位置を第2成分として表されている。この場合、2つの射影点の位置から、仮想3次元空間S内における3次元オブジェクトO変形後の頂点V1の位置は、
X座標値:(u1+u2)/2
Y座標値:v2・sin45°
Z座標値:(v1+v2・cos45°)/2
と算出されることになる。
【0050】
また、オブジェクト射影部22が、3次元オブジェクトOを構成する頂点を各射影面に対して斜めに射影している場合(すなわち、各頂点の射影方向が射影面に対して斜交している場合)も、3次元オブジェクト変形部24は、この射影方向の射影面に対する傾きを考慮して、当該射影面内における射影点の位置座標値に対して補正を行ってから、他の射影面内における射影点の位置座標値との平均を算出する。この場合の補正処理は、上述した射影面が基準軸に対して傾いている場合と同様の補正処理であってよい。また、オブジェクト射影部22が各頂点を放射状に射影した場合には、当該射影の態様(例えば各頂点の射影方向の射影面に対する角度や、射影の基準点から当該頂点までの距離、基準点から当該頂点に対応する射影点までの距離など)を考慮して、各頂点に対応する複数の射影点を合成する処理を実行してもよい。
【0051】
なお、各射影面上の射影点を合成して仮想3次元空間S内における変形後の頂点位置を算出する際には、各射影面について重み付けを行ってから、各射影面の座標値の平均を算出することとしてもよい。この場合の重み付け係数は、どの射影面における射影オブジェクトの変形を重視するかによって決定される。例えば3次元オブジェクト変形部24は、前述したように3次元オブジェクトOの外形や視線方向VDの向き、変形ベクトルの向きなどに応じて複数の射影面のうちの一部の射影面の向きを決定した場合、当該一部の射影面に対する重み付け係数を他の射影面に対する重み付け係数より大きくしてもよい。また、射影面自体はこれらの情報と無関係に決定される場合であっても、3次元オブジェクト変形部24は、3次元オブジェクトOの外形や視線方向VDの向き、変形ベクトルの向きなどに応じて各射影面の重み付け係数を決定してもよい。例えば3次元オブジェクト変形部24は、3次元オブジェクトOの長手方向に対する傾きが小さな射影面や、視線方向VDに対する傾きが大きな射影面、あるいは変形ベクトルの向きに対する傾きが小さな射影面ほど、重み付け係数が大きくなるように、各射影面の重み付け係数を決定する。このような制御を行うことにより、3次元オブジェクトOの長手方向に沿った向きの変形や、視線方向VDと交差する方向の変形、操作方向に沿った向きの変形が強調されるように、3次元オブジェクトOの変形を行うことができる。
【0052】
なお、このような各射影面の重み付け係数を決定する基準も、複数種類組み合わせて用いられてよい。例えば3次元オブジェクト変形部24は、各射影面の視線方向VD及び変形ベクトル双方に対する傾きに応じて、各射影面の重み付け係数を決定してもよい。
【0053】
また、以上の説明においては、3次元オブジェクトOの表面形状は面要素によって構成されることとしたが、これに限らず、例えば複数の頂点位置とその接続関係を規定する情報によって構成されてもよい。質点−バネモデルを用いる場合であれば、このような情報だけで射影オブジェクトの変形処理が可能である。また、これまでの説明では、3次元オブジェクトOは内部構造に関する情報を持たないこととしたが、3次元オブジェクトOは内部構造に関する情報を含んで構成されてもよい。具体的に、例えば3次元オブジェクトOは、その内部構造を規定する骨格モデル(スケルトン)と、この骨格モデルを取り囲む外皮とに基づいて構成されてもよい。この場合、オブジェクト射影部22は骨格モデルを各射影面に射影することとし、各射影面に射影された骨格モデルが、射影オブジェクト変形部23による変形の対象となる射影オブジェクトとなる。すなわち、射影オブジェクト変形部23は、ユーザの操作指示に基づいて、各射影面上の骨格モデルを変形し、3次元オブジェクト変形部24は、この変形された各射影面上の骨格モデルの情報に基づいて、仮想3次元空間S内の骨格モデルを変形する。これによって、仮想3次元空間S内の3次元オブジェクトOが変形する。この場合も、変形処理を2次元空間内のオブジェクトに対して行うので、3次元オブジェクトOを直接変形する場合と比較して、処理負荷を軽減できる。
【0054】
また、以上の説明においては3次元オブジェクト処理装置1自身が仮想3次元空間S内の様子を示す画像の描画を行い、3次元オブジェクトOを表す画像を表示部14に表示することとしたが、3次元オブジェクト処理装置1は外部のクライアント装置からの要求に応じて3次元オブジェクトOの変形処理を実行することとし、描画処理自体は行わないこととしてもよい。この場合、3次元オブジェクト処理装置1はクライアント装置から入力される変形指示に関する情報に基づいて3次元オブジェクトOを変形させる処理を実行し、その結果得られる変形後の3次元オブジェクトOの形状を示す情報を、クライアント装置に対して返信する。
【0055】
また、以上の説明においては、ユーザが操作部13に対して入力する変形指示に応じて、各射影オブジェクトの変形が行われることとしたが、変形の内容は、例えば3次元オブジェクトOの形状を定義するアプリケーションプログラムの処理内容に応じて決定されてもよい。
【符号の説明】
【0056】
1 3次元オブジェクト処理装置、11 制御部、12 記憶部、13 操作部、14 表示部、21 仮想空間管理部、22 オブジェクト射影部、23 射影オブジェクト変形部、24 3次元オブジェクト変形部。

【特許請求の範囲】
【請求項1】
仮想3次元空間内に配置された3次元オブジェクトの変形処理を実行する3次元オブジェクト処理装置であって、
前記3次元オブジェクトを、前記仮想3次元空間内に設定された複数の射影面のそれぞれに射影する射影手段と、
前記3次元オブジェクトを前記各射影面に射影して得られる射影オブジェクトを、当該射影面内において変形する射影オブジェクト変形手段と、
前記各射影面内において変形された前記射影オブジェクトに基づいて、前記仮想3次元空間内の前記3次元オブジェクトを変形する3次元オブジェクト変形手段と、
を含むことを特徴とする3次元オブジェクト処理装置。
【請求項2】
請求項1記載の3次元オブジェクト処理装置において、
前記3次元オブジェクトは複数の面要素を含んでなる表面形状によって構成され、
前記射影手段は、前記複数の面要素のそれぞれを前記各射影面に射影し、
前記射影オブジェクト変形手段は、前記射影された複数の面要素のそれぞれを、当該面要素同士の接続関係を保ったまま変形することにより、前記射影オブジェクトを変形する
ことを特徴とする3次元オブジェクト処理装置。
【請求項3】
請求項1又は2記載の3次元オブジェクト処理装置において、
前記複数の射影面は、互いに直交する3つの射影面であって、当該3つの射影面のそれぞれは、前記仮想3次元空間に設定された3つの基準軸のうちの2つを包含する
ことを特徴とする3次元オブジェクト処理装置。
【請求項4】
請求項1から3のいずれか一項記載の3次元オブジェクト処理装置において、
ユーザから、前記仮想3次元空間内における変化方向の指定を含む前記3次元オブジェクトの変形指示を受け付ける指示受付手段をさらに含み、
前記射影手段は、前記変形指示に含まれる変化方向に基づいて、前記複数の射影面の少なくとも一つの向きを決定する
ことを特徴とする3次元オブジェクト処理装置。
【請求項5】
請求項4記載の3次元オブジェクト処理装置において、
前記仮想3次元空間内の様子を示す画像を表示する表示部と、
前記表示部の表示画面と平行に配置され、物体の接触位置を検知するタッチセンサと、をさらに含み、
前記指示受付手段は、前記タッチセンサによって検知される接触位置の移動方向に応じて、前記仮想3次元空間内における前記画像の投影面に平行な変化方向の指定を含む変形指示を受け付け、
前記射影手段は、前記変化方向に基づいて、前記複数の射影面の少なくとも一つの向きを、前記画像の投影面に平行な向きに決定する
ことを特徴とする3次元オブジェクト処理装置。
【請求項6】
仮想3次元空間内に配置され、互いに接続される複数の頂点によって形成される表面形状を備える3次元オブジェクトの変形処理を実行する3次元オブジェクト処理装置であって、
前記複数の頂点のそれぞれを、前記仮想3次元空間内に設定された複数の射影面のそれぞれに射影する射影手段と、
前記各射影面内において、当該射影面に射影された複数の頂点によって構成される射影オブジェクトを変形する射影オブジェクト変形手段と、
前記各射影面内において変形された前記射影オブジェクトに基づいて、前記仮想3次元空間内の前記3次元オブジェクトを変形する3次元オブジェクト変形手段と、
を含むことを特徴とする3次元オブジェクト処理装置。
【請求項7】
仮想3次元空間内に配置された3次元オブジェクトを変形する3次元オブジェクト処理方法であって、
前記3次元オブジェクトを、前記仮想3次元空間内に設定された複数の射影面のそれぞれに射影するステップと、
前記3次元オブジェクトを前記各射影面に射影して得られる射影オブジェクトを、当該射影面内において変形するステップと、
前記各射影面内において変形された前記射影オブジェクトに基づいて、前記仮想3次元空間内の前記3次元オブジェクトを変形するステップと、
を含むことを特徴とする3次元オブジェクト処理方法。
【請求項8】
仮想3次元空間内に配置された3次元オブジェクトの変形処理を実行するためのプログラムであって、
前記3次元オブジェクトを、前記仮想3次元空間内に設定された複数の射影面のそれぞれに射影する射影手段、
前記3次元オブジェクトを前記各射影面に射影して得られる射影オブジェクトを、当該射影面内において変形する射影オブジェクト変形手段、及び
前記各射影面内において変形された前記射影オブジェクトに基づいて、前記仮想3次元空間内の前記3次元オブジェクトを変形する3次元オブジェクト変形手段、
としてコンピュータを機能させるためのプログラム。
【請求項9】
請求項8記載のプログラムが記憶されたコンピュータ読み取り可能な情報記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図4C】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図5C】
image rotate

【図6】
image rotate


【公開番号】特開2011−70605(P2011−70605A)
【公開日】平成23年4月7日(2011.4.7)
【国際特許分類】
【出願番号】特願2009−223500(P2009−223500)
【出願日】平成21年9月28日(2009.9.28)
【出願人】(310021766)株式会社ソニー・コンピュータエンタテインメント (417)
【Fターム(参考)】