JP3872469B2 - データ処理方法、データ処理装置 - Google Patents

データ処理方法、データ処理装置 Download PDF

Info

Publication number
JP3872469B2
JP3872469B2 JP2003363445A JP2003363445A JP3872469B2 JP 3872469 B2 JP3872469 B2 JP 3872469B2 JP 2003363445 A JP2003363445 A JP 2003363445A JP 2003363445 A JP2003363445 A JP 2003363445A JP 3872469 B2 JP3872469 B2 JP 3872469B2
Authority
JP
Japan
Prior art keywords
model
data
posture
frame
attitude
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003363445A
Other languages
English (en)
Other versions
JP2005128775A (ja
JP2005128775A5 (ja
Inventor
祐輔 西田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Konami Digital Entertainment Co Ltd
Original Assignee
Konami Digital Entertainment Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Konami Digital Entertainment Co Ltd filed Critical Konami Digital Entertainment Co Ltd
Priority to JP2003363445A priority Critical patent/JP3872469B2/ja
Publication of JP2005128775A publication Critical patent/JP2005128775A/ja
Publication of JP2005128775A5 publication Critical patent/JP2005128775A5/ja
Application granted granted Critical
Publication of JP3872469B2 publication Critical patent/JP3872469B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

本発明は、キーフレームの姿勢データを特定する為の技術に関するものである。
3次元画像空間(ゲーム空間)内に配置するための人間のオブジェクトは、図1に示すように、各部分毎にモデルを作成することが多い。このように作成すると、各モデル毎に姿勢を変更することができ、これにより、この人間のオブジェクトに様々なポーズをとらせることができる。図1は、3次元画像空間(ゲーム空間)内に配置するための人間のオブジェクトの一例を示す図である。
このように、人間のオブジェクトに関わらず、複数のモデルにより構成されているオブジェクトは、各モデルの姿勢を変更させることで、様々なポーズを取らせることができる。
一方、このようなオブジェクトに対して、所定フレーム数で所定のモーションを与えるための「モーションデータ」というものがある。例えば図1に示すようなオブジェクトに対するモーションデータは、図1に示すオブジェクトを構成する各部分のモデルの各フレームにおける姿勢を示すデータである。即ち、各フレームにおける各モデルの姿勢を示すデータがこのオブジェクトに対するモーションデータである。
一方、図1に示すようなオブジェクトの場合、各モデルには親子関係が予め設定されていることが多い。即ち、「子」のモデルの姿勢のデータは、「親」のモデルの姿勢に対する相対的な姿勢を示すデータである。そしてまた、この「親」(第1の親)にとっての「親」(第2の親)が更にある場合、第1の親の姿勢のデータは、第2の親の姿勢に対する相対的な姿勢を示すデータとなる。
このように、各モデルが親子構造を有していると、例えばモデル107を最も最上位の親(この親にとっての親は存在しない)のモデルとする場合、モデル107の姿勢データは、絶対座標系(ゲーム空間中の1点を原点とし、この原点から互いに直交する3軸を夫々x、y、z軸とする座標系)における姿勢を示すものとなる。そしてモデル108,111の姿勢データは、モデル107の姿勢に対して相対的な姿勢を示すデータとなる。
そしてモーション再生のために、例えばモデル108の絶対座標系における姿勢を求めたい場合、モデル107の姿勢を示すマトリクスをM(モデル107の姿勢データが示すマトリクス)、モデル108の姿勢を示すマトリクスをN(モデル108の姿勢データが示すマトリクス)とすると、N・M(X・YはマトリクスXとマトリクスYとの積算を示す)の演算結果が、即ち、モデル108の絶対座標系における姿勢を示すマトリクスとなり、このマトリクスに従った姿勢をモデル108に与えれば良いことになる(特許文献1を参照)
特開平10−021420号公報
オブジェクトのモーションデータ、即ち、オブジェクトを構成する各部分の各フレームにおける姿勢データを全て保存すると、オブジェクトの数、モデルの数、フレーム数などの増加により、保存すべきデータ量は増大する。そこで各モデル毎に、各フレームの内、キーフレームとなるフレームの姿勢データのみを保存することで、保存すべきデータの量を少なくする技術が従来からある。
そして、実際に保存したデータを用いて、モーションを再生する場合、キーフレーム間のフレームにおける姿勢データは、周知の補間技術でデータを補間して生成する。これにより、キーフレームの姿勢データのみを保存しても、再生時にはキーフレーム間の姿勢データは生成できるので、保存すべきデータの量を少なくすることができるし、モーションの再生を行うことができる。
しかし、あくまでキーフレーム間のフレームの姿勢データは補間により生成するので、元々キーフレーム間に存在した姿勢データとは誤差が生じることになる。そもそも「子」の姿勢データは「親」の姿勢データが示す姿勢に対して相対的な姿勢を示すものであるので、キーフレーム間のフレームにおける親の姿勢データに誤差が生じると、「子」のモデルの姿勢データを計算する場合、この誤差を含んだ「親」の姿勢データを参照するので、当然その誤差は「子」に伝搬することになる。また、その誤差は、「「親」の姿勢データを参照して「子」の姿勢データを決定する処理」を繰り返す毎に増大し、末端の「子」のモデルの姿勢は、最初に作成したものとは大きくかけ離れてしまう。
本発明はこのような点を考慮して成されたものであり、親子構造を有するモデル群の内の、親のモデルと子のモデルの相対的な姿勢関係を正確に維持するように、「子」の姿勢データを更新する技術を提供することを目的とする。
本発明の目的を達成するために、例えば本発明のデータ処理装置は以下の構成を備える。
即ち、連続フレームの各フレームにおける第1のモデル、第2のモデルの姿勢を示すデータがメモリに保持されており、且つ前記第2のモデルの姿勢データは絶対座標系における前記第2のモデルの姿勢を示すデータであり、且つ前記第1のモデルの姿勢データは前記第2のモデルの姿勢に対して相対的な姿勢を示すデータであり、且つ連続フレームの各フレームにおける前記第2のモデルの姿勢データのうち、キーフレームにおける姿勢データが決定している場合に、前記第1のモデルのキーフレームを特定する為の処理を行うデータ処理装置であって、
前記第2のモデルのキーフレーム間のフレームの姿勢データを補間により求める補間手段と、
前記補間手段が求めた注目フレームにおける前記第2のモデルの姿勢データが示す姿勢との相対的な姿勢関係が、前記メモリに保持されているデータが示す前記注目フレームにおける前記第1のモデルと前記第2のモデルとの相対的な姿勢関係となるような前記第1のモデルの姿勢を示すデータを、前記メモリに保持されているデータが示す前記注目フレームにおける前記第1のモデルの姿勢データ、前記第2のモデルの姿勢データ、前記補間手段による前記注目フレームにおける前記第2のモデルの姿勢データを用いて求める生成手段と、
前記メモリに保持されている前記第1のモデルの姿勢データのうち、前記注目フレームにおける姿勢データを、前記生成手段が求めた前記注目フレームにおける前記第1のモデルの姿勢データに更新する更新手段とを備え、
前記更新手段がキーフレーム間の各フレームについて前記第1のモデルの姿勢データを更新した後に、前記第1のモデルのキーフレームを特定することを特徴とする。
これにより、補間手段が求めた注目フレームにおける第2のモデルの姿勢データが示す姿勢との相対的な姿勢関係が、メモリに保持されているデータが示す注目フレームにおける第1のモデルと第2のモデルとの相対的な姿勢関係となるような第1のモデルの姿勢を示すデータを求めることができ、親子構造を有するモデル群の内の、親のモデルと子のモデルの相対的な姿勢関係を正確に維持するように、「子」の姿勢データを更新することができる。
このような、第1のモデルの注目フレームにおける姿勢データを生成するためには、生成手段は、補間手段が求めた注目フレームにおける第2のモデルの姿勢データが示す姿勢をマトリクスM2’、メモリに保持されている注目フレームにおける第1のモデルの姿勢データが示す姿勢、第2のモデルの姿勢データに基づく姿勢を夫々マトリクスM1,M2で表すとすると、M1・M2・Inv(M2’)(M・NはマトリクスMとNの積算を表し、Inv(M)はマトリックスMの逆行列を示す)の演算を行い、更新手段は、メモリに保持されている第1のモデルの姿勢データのうち、注目フレームにおける姿勢データを、上記演算により得られるマトリックスが示すデータに更新することを特徴とする。
また、更新手段による更新のタイミングは、生成手段が全てのフレームについて第1のモデルの姿勢データを生成した後に、メモリに保持されている前記第1のモデルの各フレームの姿勢データを、生成手段が生成した前記全てのフレームについての前記第1のモデルの姿勢データに更新することを特徴とする。
また、以上の構成を方法、プログラムに適用しても、同様の効果が得られることは明白である。
本発明の構成によって、親子構造を有するモデル群の内の、親のモデルと子のモデルの相対的な姿勢関係を正確に維持することができる。
以下添付図面を参照して、本発明の好適な実施形態について詳細に説明する。
[第1の実施形態]
本実施形態では、「夫々が親子構造を有するモデル群」により構成され、ゲーム空間中に配置されるオブジェクト(親子構造を有さないモデル群が含まれていても良い)に対してモーションデータが与えられた場合(即ち、連続フレームの各フレームにおける各モデルの姿勢を示すデータが与えられた場合)、且つ親のモデルの姿勢データは絶対座標系(ゲーム空間中の1点を原点とし、この原点から互いに直交する3軸を夫々x、y、z軸とする座標系)における親のモデルの姿勢を示すデータであり、且つ子のモデルの姿勢データは親のモデルの姿勢に対して相対的な姿勢を示すデータであり、且つ連続フレームの各フレームにおける親のモデルの姿勢データのうち、キーフレームにおける姿勢データが決定している場合に、子のモデルについてもキーフレームを求めるために、親子構造を有するモデル群の内の、親のモデルと子のモデルの相対的な姿勢関係を正確に維持するように、「子」の姿勢データを更新する為の処理について説明する。
図5は本実施形態に係る上記「姿勢データの更新処理」を実行するデータ処理装置として機能するコンピュータの基本構成を示すブロック図である。
101はCPUで、RAM102やROM103に記憶されているプログラムやデータを用いて本装置全体の制御を行うと共に、本実施形態に係る上記「姿勢データの更新処理」を実行する。
102はRAMで、外部記憶装置107や記憶媒体ドライブ装置108からロードされたプログラムやデータを一時的に記憶するためのエリアを備えると共に、CPU101が各種の処理を実行するために用いるワークエリアを備える。
103はROMで、ブートプログラムや本装置の設定に係るデータなどが格納されている。
104,105は夫々キーボード、マウスで、CPU101に各種の指示を入力するために使用されるものである。なお、CPU101に各種の指示を入力することができるデバイスとしてはこれ以外にも、例えばジョイスティックやゲームパッドなどの他のデバイスを用いることもできる。
106は表示部で、CRTや液晶画面などにより構成されており、CPU101による処理結果を画像や文字などの情報により表示することができる。
107は外部記憶装置で、ハードディスクドライブ装置などの大容量情報記憶装置として機能するものであり、ここにOS(オペレーティングシステム)や、CPU101に後述する本実施形態に係る上記「姿勢データの更新処理」を実行させるためのプログラムやデータ、姿勢を制御する対象のモデル(夫々が親子構造を有しており、このモデル群により1つのオブジェクトを構成する)のデータ(モデルがポリゴンにより表現されるものである場合には、モデルを構成する各ポリゴンの各頂点座標位置、各ポリゴンの法線ベクトルを示すデータ、そしてこのモデルにテクスチャをマッピングする場合には、このテクスチャのデータ等)、そして上記モーションデータ等が保存されており、これらはCPU101による制御により、必要に応じてRAM102に読み出される。
108は記憶媒体ドライブ装置で、CD−ROMやDVD−ROMなどの記憶媒体に記録されているプログラムやデータを読み出し、RAM102や外部記憶装置107に出力するものである。なおCPU101に後述する本実施形態に係る「姿勢データの更新処理」を実行させるためのプログラムやデータ、上記モデルのデータ、上記モーションデータ等をこの記憶媒体に記録させておいても良く、その場合には、これらプログラムやデータは、CPU101による制御の下、記憶媒体ドライブ装置108によって記憶媒体から読み出され、RAM102に出力される。
また、記憶媒体がCD−RやDVD−RAMなどの書き込み可能なものである場合には、記憶媒体ドライブ装置108はCPU101の制御により、この記憶媒体にプログラムやデータを書き込む処理を行う。
109は上記各部を繋ぐバスである。
次に、以上の構成を備えるコンピュータが行う、本実施形態に係る「姿勢データの更新処理」について説明する。本実施形態では、3次元仮想空間(ゲーム空間)に配置されるオブジェクトを構成する各部のモデル(例えばオブジェクトが人を表す場合、「各部のモデル」とは、図1の101〜113に示す各部の3次元形状を有するモデルを示す)の、各フレームにおける姿勢を示すデータがこのオブジェクトに対するモーションデータとしてRAM502に格納されているものとする。このモーションデータについては上述の通りである。
また、各モデルには親子関係が予め設定されている。即ち上述の通り、「子」のモデルの姿勢のデータは、「親」のモデルの姿勢に対する相対的な姿勢を示すデータとなる。そしてまた、この「親」(第1の親)にとっての「親」(第2の親)が更にある場合、第1の親の姿勢のデータは、第2の親の姿勢に対する相対的な姿勢を示すデータとなる。
従って、オブジェクトに対するモーションデータ、即ち、各フレームにおける各モデルの姿勢を示すデータは、より詳しくは、最上位の親のモデル(即ち、このモデルには親が存在しない)については、各フレームにおける最上位の親のモデルの絶対座標系における姿勢データである。
また、この最上位の親のモデルを親とする子のモデル(第1の子モデル)については、各フレームにおける最上位の親のモデルの姿勢に対する相対的な姿勢を示すデータである。即ち、第1の子モデルのfフレーム目における姿勢データは、fフレーム目における最上位の親のモデルの姿勢に対して相対的な姿勢を示すデータとなる。
また、この第1の子モデルを親とする子のモデル(第2の子モデル)については、各フレームにおける第1の子モデルの姿勢に対する相対的な姿勢を示すデータである。即ち、第2の子モデルのfフレーム目における姿勢データは、fフレーム目における第1の子モデルの姿勢に対して相対的な姿勢を示すデータとなる。
このように、各モデルが階層的になっている(即ち親子構造になっている)場合、一般には、第nの子モデル(n≧1で、n=1の場合、最上位の親のモデルを示す)のfフレーム目における姿勢データは、fフレーム目における第(n−1)の子モデルの姿勢に対して相対的な姿勢を示すデータとなる。
例えば最上位の親のモデルを図1に示した各モデルにおいてモデル107であるとすると、第1の子モデルはモデル108(もしくはモデル111)、第2の子モデルはモデル109(もしくはモデル112)、第3の子モデルはモデル110(もしくはモデル113)に相当する。
また、ゲーム空間中に第nの子モデルを配置する場合、当然、このモデルの絶対座標系における姿勢が必要となるが、例えばfフレーム目における第nの子モデルの絶対座標系における姿勢を得る場合、fフレーム目における第(n−1)の子モデルのfフレーム目における姿勢データが示すマトリックスM(n−1)、fフレーム目における第(n−2)の子モデルのfフレーム目における姿勢データが示すマトリックスM(n−2)、、、fフレーム目における第1の子モデル(即ち最上位の親のモデル)のfフレーム目における姿勢データが示すマトリックスMの全てを積算した結果が、第nの子モデルの絶対座標系における姿勢を示すマトリックスとなり、このマトリクスを示すデータが、第nの子モデルの絶対座標系における姿勢を示すデータとなる。
以上のようにして、本実施形態では、親子構造となった各モデルには各フレームにおける姿勢データが作成されており、夫々のモデルの姿勢データは以上のように、親のモデルの姿勢データが示す姿勢に対して相対的な姿勢を示すデータとなっている。
ここで、最上位の親のモデルに対するモーションデータにはキーフレームが特定されているものとする。キーフレームについては周知のものであるので簡単に説明すると、各モデルについて、各フレームの姿勢データを管理すると、モデル数、フレーム数などの増加に伴い、そのデータ量は膨大なものとなる。そこで、各フレームの姿勢データのうち、主要となるフレームの姿勢データだけを保持しておき、その他のフレームの姿勢データについては破棄する。これにより、管理すべきデータの量は少なくなる。
そして、実際に保存したキーフレームの姿勢データを用いて、モーションを再生する場合、キーフレーム間のフレームにおける姿勢データは、周知の補間技術でデータを補間して生成する。これにより、キーフレームの姿勢データのみを保存しても、再生時にはキーフレーム間の姿勢データは生成できるので、全てのフレームの姿勢データは得られ、モーションの再生を行うことができる。また、これにより、保存すべきデータの量を少なくすることができる。
このように、最上位の親のモデルについては、各フレームのうち、キーフレームにおける姿勢データのみが選択され、管理されているものとする。なお、あるモデルについて所定フレームの姿勢データが与えられた場合に、この各フレームの内、キーフレームの姿勢データを選択する方法については周知の技術であるので、これについての説明は省略する。本実施形態では、最上位の親のモデルのキーフレームは、周知の技術でもって選択されたものであるとする。
図2は、最上位の親のモデルのフレームデータと、この最上位の親のモデルを親とする子のモデルの各フレームにおける姿勢データ(即ち、最上位の親のモデルに対するモーションデータ)を模式的に示す図である。同図において、各「ます」が各フレームにおける姿勢データ部分を示す。よって同図ではモーションデータは、12フレーム分の各フレームにおける姿勢データにより構成されているが、以下の説明はこのフレーム数に限定されるものではない。
同図において201は、最上位の親のモデルに対して作成されたモーションデータで、各ますにおいて、グレーで塗りつぶされた「ます」の部分がキーフレームを示す。202は、最上位の親のモデルを親とする子モデルに対して作成されたモーションデータで、モーションデータ201と同様に、12フレームの各フレームが、各ますで表されている。
また、各モデルの姿勢の表現方法として、本実施形態では、クオータニオンを用いるものとする。ここでクオータニオンについては周知であるので簡単に説明すると、クオータニオンとは3次元仮想空間上において任意の軸周りの回転を記述するためのもので、例えば任意の方向ベクトルA=(X、Y、Z)周りに角度θだけ回転することを表現するクオータニオンQは、
Q=(x、y、z、w)
=(sX,sY,sZ,c)
s=sin(θ/2)
c=cos(θ/2)
として表現される。
クオータニオンの典型的な使用法は、姿勢データを行列で表現する場合に、この行列をクオータニオンとして保持することである。そしてこの行列の演算を行う場合に、この行列の演算をクオータニオンの計算に置き換え、クオータニオンの計算を行った後、計算後のクオータニオンを行列の形式に変換するという処理を行う。
従って本実施形態では、元々行列の形式で格納されていた姿勢データをクオータニオンの形式(もしくは適宜マトリックスの形式)で扱い、以下説明する「子モデルの姿勢データの更新処理」を行う。
このように、クオータニオンを用いれば、所謂ジンバルロックで苦しむことがない。3つの角度(リール、ピッチ、ヨー)でもって姿勢を表現する方法では常に、ある特定の向きにおいて、単純なローカルの回転を3つの値の単純な変更で表すことができなくなってしまう。この種の回転は、ローカルのヨーを左右に動かそうとする際に90度まで「ピッチが上がってしまっている」場合にしばしば見られるものである。
なお、このようなクオータニオンを用いたモデルの姿勢の計算については周知の技術であるので、ここでの説明は省略する。
このように、本実施形態ではx、y、z、wの4変数でもって定義されるクオータニオンによって各フレームのモデルの姿勢を示す姿勢データを表現するものとする。
図3は、図2に示したモーションデータ201の各フレーム(1フレーム目から12フレーム目まで)の姿勢データをプロットすることで得られるグラフを示す図である。
同図において300は、モーションデータ201の各フレーム(1フレーム目から12フレーム目まで)の姿勢データをプロットすることで得られる曲線である。なお、同図のグラフが示す座標系は、モーションデータ201の各フレーム(1フレーム目から12フレーム目まで)の姿勢データの集合を曲線でもって表現することができる座標系である。また、曲線300上の301〜304は、キーフレームにおける姿勢データの位置を示す。
ここで、図3に示す曲線300は、上述の通り、モーションデータ201の各フレーム(1フレーム目から12フレーム目まで)の姿勢データをプロットすることで得られるものであるから、キーフレームの姿勢データだけを保存しておいて、後で、キーフレーム間の姿勢データを補間処理によって生成し、全てのフレームにおける姿勢データが用意された時点でこれらの姿勢データを同図のグラフ上にプロットすると、曲線300とは若干異なる形状を有するものとなる。この形状のずれが、すなわち、補間によるキーフレーム間の姿勢データが示す位置と、モーションデータ201が示すキーフレーム間の姿勢データが示す位置とのずれである。
図4は、モーションデータ201を用いてあるキーフレーム間(例えば図3において、302示す位置のフレームと、302で示す位置のフレームとの間)の各フレームの姿勢データをプロットすることで得られる曲線404と、このキーフレーム間の各フレームの姿勢データを補間して求め、求めた姿勢データをプロットすることで得られる曲線403との誤差の一例を示す図である(従って、補間により、常に同図に示すような形態の誤差が生じるわけではない)。
同図に示すように、曲線404と曲線403とでは、補間により上記誤差が生じ、夫々曲線の形状が異なるので、例えばキーフレーム間の任意のfフレーム目では、本来では405で示す位置を示す姿勢データであるのが、補間では、406で示す位置を示す姿勢データとなる。
ここで、モーションデータ201において最上位の親のモデルのfフレーム目における姿勢を示すマトリックス(モーションデータ201においてfフレーム目における姿勢データにより表現されるマトリックス)をM 、補間により求めた最上位の親のモデルのfフレーム目における姿勢を示すマトリックス(補間により求めた最上位の親のモデルのfフレーム目における姿勢データにより表現されるマトリックス)をM’ 、モーションデータ202において子モデルのfフレーム目における姿勢を示すマトリックス(モーションデータ202においてfフレーム目における姿勢データにより表現されるマトリックス)をM とすると、上記補間により上記誤差が生じなければ、
M’ =M
なる等式が成立する。しかし、上記誤差は生じるので、この等式な成り立たない。そこで本実施形態では、この等式が成り立つように、子モデルの姿勢データを変更する。即ち、最上位の親のモデルの補間によるfフレーム目の姿勢データを用いて子モデルのfフレーム目における絶対座標系における姿勢を求めても、求めた姿勢と最上位の親のモデルの補間によるfフレーム目の姿勢との姿勢関係が、モーションデータ201、モーションデータ202の夫々fフレーム目における姿勢データが示す姿勢の関係と同じになるように、モーションデータ202のfフレーム目の姿勢データ(更新姿勢データ)を求めて更新する。
従って、更新後の子モデルのfフレーム目における姿勢データが示すマトリックスをM’ とすると、
M’ M’ =M
が成り立つようにすることが本実施形態における更新処理の目的である。
この式より、最上位の親のモデルの補間によるfフレーム目の姿勢データを用いても、モーションデータ201、モーションデータ202の夫々fフレーム目における姿勢データが示す姿勢の関係が維持されるような、子モデルのfフレーム目における姿勢データは、以下の式に基づいて求めることができる。
M’ =M Inv(M’
ここでInv(M)はマトリックスMの逆行列を示す。よって、マトリックスM’ が示す姿勢データを求めるためには、モーションデータ201、モーションデータ202のfフレーム目の姿勢データを参照し、夫々の姿勢データが示すマトリックスの積を計算する。
そして、モーションデータ202においてfフレーム目における姿勢データを、求めたマトリックスM’ が示す姿勢データに更新する。
以上の処理をfが取りうる全てのフレーム(全てのキーフレーム間におけるフレーム)について行うことで、子モデルのモーションデータ202のうち、キーフレーム間におけるフレームの姿勢データは更新され、以降、子モデルの絶対座標系における姿勢を求めるために、補間された最上位の親のモデルの姿勢データが示すマトリックスと、更新されたモーションデータ202の姿勢データが示すマトリックスとを積算した結果を用いても、得られた子モデルの姿勢と最上位の親のモデルの姿勢との姿勢関係は、モーションデータ201が示す最上位の親のモデルの姿勢と、更新前のモーションデータ202が示す子モデルの姿勢との姿勢関係とほぼ同じになるので、最上位の親のモデルから子モデルへの補間による誤算伝搬を軽減することができる。
また、保持すべきデータの量を削減するために、子モデルのモーションデータ202についてもキーフレームを選択し、キーフレームの姿勢データのみを保存するようにする。上述のとおり、更新後のモーションデータ202の各フレームの姿勢データが示す姿勢と、補間された最上位の親のモデルの姿勢データが示す姿勢との姿勢関係は、更新前のモーションデータ202の各フレームの姿勢データが示す姿勢と、モーションデータ201が示す最上位の親のモデルの姿勢データが示す姿勢との姿勢関係とほぼ同じであるので、子モデルのモーションデータ202のうちキーフレームの姿勢データのみを保存し、キーフレーム間の姿勢データを補間で生成しても、最上位の親のモデルと子モデルとで同じアルゴリズムの補間処理を行えば、補間後の最上位の親のモデルの姿勢データが示す姿勢と、補間後の子モデルの姿勢データが示す姿勢との姿勢関係は、更新前のモーションデータ202の各フレームの姿勢データが示す姿勢と、モーションデータ201が示す最上位の親のモデルの姿勢データが示す姿勢との姿勢関係とほぼ同じとなる。
なお当然、以上説明した本実施形態に係る「姿勢データの更新処理」は、上記子モデルを親とするモデルが更に存在する場合(即ち、上記子モデルに更に「子」のモデルが存在する場合)には、上記子モデルを上記最上位の親のモデル、上記子モデルを親とするモデルを上記子モデルとして読み替えて、以上説明したモーションデータの更新処理を行えば良く、即ち、上記モーションデータの更新処理は、親子構造を有するオブジェクトにおいて、最上位の親のモデルから順々に最下位の子モデルへと、全ての親子間で行えば、オブジェクトを構成するモデル全体で、子モデルへの誤算伝搬を軽減することができる。
図6は、以上説明した、本実施形態に係る「姿勢データの更新処理」のフローチャートである。なお、図6に示したフローチャートに従ったプログラムは、外部記憶装置507や記憶媒体ドライブ装置508からRAM502に読み出され、CPU501がこれを実行することで、本実施形態に係るデータ処理装置は、以上説明した本実施形態に係る「姿勢データの更新処理」を実行することになる。尚、各ステップにおける処理については以上説明したとおりであるので、ここでは簡単に説明する。
先ずステップS600で、フレーム数をカウントするための変数fを1に初期化する。
次に、ステップS601では、予め作成された最上位の親のモデルのモーションデータ(Fフレーム分の各フレームにおける最上位の親のモデルの姿勢データ)において、f(1≦f≦F)フレーム目(キーフレーム間のフレーム)の姿勢データをRAM502中の所定のエリアに読み出す。
次に、ステップS602では、最上位の親のモデルを親とする子モデルの予め作成されたモーションデータ(Fフレーム分の各フレームにおける子モデルの姿勢データ)において、f(1≦f≦F)フレーム目の姿勢データをRAM502中の所定のエリアに読み出す。
次に、ステップS603では、最上位の親のモデルのfフレーム目の姿勢データを、補間処理により求める。
そしてステップS604では、ステップS601で読み出された姿勢データが示すマトリックスをM 、ステップS602で読み出された姿勢データが示すマトリックスをM 、そしてステップS603で求めた姿勢データが示すマトリックスをM’ 、fフレーム目における、子モデルの更新姿勢データが示すマトリックスがM’ である場合に、
M’ =M Inv(M’
を計算し、計算したマトリックスM’ が示す姿勢データを、fフレーム目における、子モデルの更新姿勢データとして求める。求めた更新姿勢データは、求められた順にRAM502中の所定のエリアに順次記録される。
そしてステップS605では、全てのフレームについて子モデルのFフレーム分の更新姿勢データを求めたか否か(即ち、fがFに達したか否か)を判断し、全てのフレームについて子モデルのFフレーム分の更新姿勢データを求めた場合には、処理をステップS606に進め、予め作成された子モデルの各フレームの姿勢データを、RAM502中の所定のエリアに1フレーム目からFフレーム目まで順番に記録された「子モデルのFフレーム分の更新姿勢データ」に更新する処理を行い、本処理を終了する。
一方、全てのフレームについて子モデルのFフレーム分の更新姿勢データを求めていない場合には、処理をステップS607に進め、変数fの値を1つカウントアップし、ステップS601以降の処理を、(f+1)フレーム目について行う。
[第2の実施形態]
第1の実施形態で説明した、子モデルのモーションデータを更新して保存するという処理、をコンピュータのCPUに実行させるプログラムを、例えばCG作成用ソフトウェアの一機能としてこのソフトウェアに含めても良い。
その場合、このソフトウェアをコンピュータにインストールし、このソフトウェアを用いてオブジェクトにモーションを付け、そしてこのモーションデータを保存する場合に、このプログラムをこのコンピュータのCPUが実行することで、この子モデルのモーションデータを更新して保存するという機能をこのソフトウェアに与えることができる。
これにより、作成したモーションデータを保存する(各モデルについてキーフレームの姿勢データのみを保存する)場合に、親のモデルと子のモデルとの相対的な姿勢関係が正確に維持されたモーションデータを保存するというソフトウェアを実現することができる。
[第3の実施形態]
また、以上の処理(例えば図6に示したフローチャートの一部、もしくは全部に従った処理)をプログラムとしてCD−R、ROMやDVD−ROM、MO、ゲームカートリッジ等の記憶媒体に記憶させ、この記憶媒体に記憶されているプログラムをコンピュータに読み込ませ(インストール、もしくはコピーさせる)、このコンピュータのCPU又はMPUがこれを実行することでこのコンピュータに以上の処理を実現させることができる。従って、このプログラムを記憶した記憶媒体もまた本発明を実施可能なものにするので、この記憶媒体も本発明の範疇にあることは明白である。
また、サーバ装置に以上の処理(例えば図6に示したフローチャートの一部、もしくは全部に従った処理)のプログラムを保持させておき、周知の技術によりネットワークを介してコンピュータにこれらを供給することができる。そしてこれらプログラムやデータを供給されたコンピュータのCPU又はMPUはこれを用いて以上の処理を実現させることができるので、このサーバ装置もまた上記記憶媒体として解釈することができるので、このサーバ装置も本発明の範疇にあることは明白である。
またこの記憶媒体は外部からコンピュータにプログラムやデータを提供するもの以外であっても良く、コンピュータに内蔵されたメモリチップなどであっても良いし、この記憶媒体成る文言の定義はより広く解釈されるべきである。
3次元画像空間(ゲーム空間)内に配置するための人間のオブジェクトの一例を示す図である。 最上位の親のモデルのフレームデータと、この最上位の親のモデルを親とする子のモデルの各フレームにおける姿勢データ(即ち、最上位の親のモデルに対するモーションデータ)を模式的に示す図である。 図2に示したモーションデータ201の各フレーム(1フレーム目から12フレーム目まで)の姿勢データをプロットすることで得られるグラフを示す図である。 モーションデータ201を用いてあるキーフレーム間の各フレームの姿勢データをプロットすることで得られる曲線404と、このキーフレーム間の各フレームの姿勢データを補間して求め、求めた姿勢データをプロットすることで得られる曲線403との誤差の一例を示す図である。 本発明の第1の実施形態に係る「姿勢データの更新処理」を実行するデータ処理装置として機能するコンピュータの基本構成を示すブロック図である。 本発明の第1の実施形態に係る「姿勢データの更新処理」のフローチャートである。

Claims (5)

  1. 連続フレームの各フレームにおける第1のモデル、第2のモデルの姿勢を示すデータがメモリに保持されており、且つ前記第2のモデルの姿勢データは絶対座標系における前記第2のモデルの姿勢を示すデータであり、且つ前記第1のモデルの姿勢データは前記第2のモデルの姿勢に対して相対的な姿勢を示すデータであり、且つ連続フレームの各フレームにおける前記第2のモデルの姿勢データのうち、キーフレームにおける姿勢データが決定している場合に、前記第1のモデルのキーフレームを特定する為の処理を行うデータ処理装置であって、
    前記第2のモデルのキーフレーム間のフレームの姿勢データを補間により求める補間手段と、
    前記補間手段が求めた注目フレームにおける前記第2のモデルの姿勢データが示す姿勢との相対的な姿勢関係が、前記メモリに保持されているデータが示す前記注目フレームにおける前記第1のモデルと前記第2のモデルとの相対的な姿勢関係となるような前記第1のモデルの姿勢を示すデータを、前記メモリに保持されているデータが示す前記注目フレームにおける前記第1のモデルの姿勢データ、前記第2のモデルの姿勢データ、前記補間手段による前記注目フレームにおける前記第2のモデルの姿勢データを用いて求める生成手段と、
    前記メモリに保持されている前記第1のモデルの姿勢データのうち、前記注目フレームにおける姿勢データを、前記生成手段が求めた前記注目フレームにおける前記第1のモデルの姿勢データに更新する更新手段とを備え、
    前記更新手段がキーフレーム間の各フレームについて前記第1のモデルの姿勢データを更新した後に、前記第1のモデルのキーフレームを特定することを特徴とするデータ処理装置。
  2. 前記生成手段は、前記補間手段が求めた前記注目フレームにおける前記第2のモデルの姿勢データが示す姿勢をマトリクスM2’、前記メモリに保持されている前記注目フレームにおける前記第1のモデルの姿勢データが示す姿勢、前記第2のモデルの姿勢データに基づく姿勢を夫々マトリクスM1,M2で表すとすると、M1・M2・Inv(M2’)(M・NはマトリクスMとNの積算を表し、Inv(M)はマトリックスMの逆行列を示す)の演算を行い、
    前記更新手段は、前記メモリに保持されている前記第1のモデルの姿勢データのうち、前記注目フレームにおける姿勢データを、前記演算により得られるマトリックスが示すデータに更新することを特徴とする請求項1に記載のデータ処理装置。
  3. 前記更新手段は、前記生成手段が全てのフレームについて前記第1のモデルの姿勢データを生成した後に、前記メモリに保持されている前記第1のモデルの各フレームの姿勢データを、前記生成手段が生成した前記全てのフレームについての前記第1のモデルの姿勢データに更新することを特徴とする請求項1又は2に記載のデータ処理装置。
  4. 連続フレームの各フレームにおける第1のモデル、第2のモデルの姿勢を示すデータがメモリに保持されており、且つ前記第2のモデルの姿勢データは絶対座標系における前記第2のモデルの姿勢を示すデータであり、且つ前記第1のモデルの姿勢データは前記第2のモデルの姿勢に対して相対的な姿勢を示すデータであり、且つ連続フレームの各フレームにおける前記第2のモデルの姿勢データのうち、キーフレームにおける姿勢データが決定している場合に、前記第1のモデルのキーフレームを特定する為の処理を行うデータ処理方法であって、
    前記第2のモデルのキーフレーム間のフレームの姿勢データを補間により求める補間工程と、
    前記補間工程で求めた注目フレームにおける前記第2のモデルの姿勢データが示す姿勢との相対的な姿勢関係が、前記メモリに保持されているデータが示す前記注目フレームにおける前記第1のモデルと前記第2のモデルとの相対的な姿勢関係となるような前記第1のモデルの姿勢を示すデータを、前記メモリに保持されているデータが示す前記注目フレームにおける前記第1のモデルの姿勢データ、前記第2のモデルの姿勢データ、前記補間工程による前記注目フレームにおける前記第2のモデルの姿勢データを用いて求める生成工程と、
    前記メモリに保持されている前記第1のモデルの姿勢データのうち、前記注目フレームにおける姿勢データを、前記生成工程で求めた前記注目フレームにおける前記第1のモデルの姿勢データに更新する更新工程とを備え、
    前記更新工程でキーフレーム間の各フレームについて前記第1のモデルの姿勢データを更新した後に、前記第1のモデルのキーフレームを特定することを特徴とするデータ処理方法。
  5. コンピュータに請求項4に記載のデータ処理方法を実行させることを特徴とするプログラム。
JP2003363445A 2003-10-23 2003-10-23 データ処理方法、データ処理装置 Expired - Fee Related JP3872469B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003363445A JP3872469B2 (ja) 2003-10-23 2003-10-23 データ処理方法、データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003363445A JP3872469B2 (ja) 2003-10-23 2003-10-23 データ処理方法、データ処理装置

Publications (3)

Publication Number Publication Date
JP2005128775A JP2005128775A (ja) 2005-05-19
JP2005128775A5 JP2005128775A5 (ja) 2006-10-05
JP3872469B2 true JP3872469B2 (ja) 2007-01-24

Family

ID=34642772

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003363445A Expired - Fee Related JP3872469B2 (ja) 2003-10-23 2003-10-23 データ処理方法、データ処理装置

Country Status (1)

Country Link
JP (1) JP3872469B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6322960B2 (ja) 2013-02-01 2018-05-16 株式会社リコー 慣性装置、方法及びプログラム
JP7444646B2 (ja) * 2020-03-11 2024-03-06 株式会社メガチップス ポーズデータ生成装置、cgデータ生成システム、ポーズデータ生成方法、および、プログラム

Also Published As

Publication number Publication date
JP2005128775A (ja) 2005-05-19

Similar Documents

Publication Publication Date Title
US10137646B2 (en) Preparing a polygon mesh for printing
RU2413996C2 (ru) Большая деформация сетки с использованием лапласиана объемного графа
US8698809B2 (en) Creation and rendering of hierarchical digital multimedia data
EP1288867A2 (en) Method for generating motion
US9947124B2 (en) Motion control of active deformable objects
EP1560163B1 (en) Wrap deformation using subdivision surfaces
WO2000002165A1 (fr) Procede permettant de produire des donnees de polygone et afficheur d'images utilisant lesdites donnees
KR20010006824A (ko) 가역의 라운딩 조작에 의한 곡면 모델의 생성방법 및 그곡면 모델로부터 격자 폴리곤 모델을 생성하는 방법과이들 방법을 실행하기 위한 기록 매체 및 곡면 모델의전송/표시방법
JP2001076177A (ja) ポリゴンリダクション処理を用いたモーフィング画像処理装置および方法
KR20180105797A (ko) 3차원 프린팅 데이터 생성 방법 및 장치
JP3872469B2 (ja) データ処理方法、データ処理装置
JP3410079B2 (ja) 3次元スケルトンデータ誤差吸収装置
JP3976200B2 (ja) データ処理方法、データ処理装置
JP4847226B2 (ja) 画像生成装置
JP2004072553A (ja) 映像歪み補正方法及び同方法用プログラム
JP2003006552A (ja) シミュレーションシステム、シミュレーション方法及びシミュレーションプログラム
JP2004246877A (ja) ゲームのキャラクタに画像を投影するプログラム、そのプログラムが組み込まれたゲーム機、及びそのプログラムが格納された記録媒体
US8704828B1 (en) Inverse kinematic melting for posing models
US20230267696A1 (en) Responsive Video Canvas Generation
JP4340397B2 (ja) 三角形メッシュ簡単化装置およびプログラム
US9245379B2 (en) Continuum based model for position based dynamics
JP4479957B2 (ja) 曲面細分割装置
JP3312560B2 (ja) テクスチャマッピング装置
JP5104298B2 (ja) 解析モデル作成装置及び方法並びにプログラム
JP2001184520A (ja) テクスチャマッピング方法及び装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20050428

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20060427

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20060530

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060822

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060922

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061019

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091027

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091027

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101027

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101027

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111027

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121027

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131027

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S802 Written request for registration of partial abandonment of right

Free format text: JAPANESE INTERMEDIATE CODE: R311802

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees