リグ・ベーキング
モデル・コンポーネントを使用してキャラクタ・モデルにポーズを与えて、様々な現実感のある芸術的な効果を生じさせることができる。本発明の実施形態は、モデル・コンポーネントの挙動を分析して、そのモデル・コンポーネントの出力を忠実に近似するモデル・コンポーネントの統計的表現を算出する。モデル・コンポーネントの統計的表現は、元のモデル・コンポーネントよりも高速に実行されるので、キャラクタ・モデルにポーズを与えるのに使用されるモデル・コンポーネントを、モデル・コンポーネントの等価の統計的表現でアニメーション時に置き換えて、アニメーション・パフォーマンスを向上させることができる。モデル・コンポーネントの統計的表現は、一組の代表的な訓練ポーズを介して操作されるキャラクタ・モデルの分析から導出される。モデル・コンポーネントの統計的表現は、アニメーション変数の非線形結合によって制御される一組のポーズ誤差に加算される、ポーズが与えられたフレーム位置の重み付けされた結合から成る。
【発明の詳細な説明】
【関連出願】
【0001】
関連出願の相互参照
本出願は、ともに2003年5月14日に出願された、米国特許仮出願第60/470590号、「Rig Baking」、および米国特許仮出願第60/470767号、「Defrobulation」の優先権を主張し、以上の仮出願を参照によって事実上、組み込む。本出願は、 に出願した、弁護士整理番号21751−000910USの米国特許出願「Defrobulated Angles for Character Joint Representation」を参照によって事実上、組み込む。
【技術分野】
【0002】
本発明は、コンピュータ・グラフィックスの分野に関し、詳細には、コンピュータによって生成されたキャラクタをアニメ化するための方法と装置に関する。本発明は、コンピュータ・グラフィックスの分野に関する。多くのコンピュータ・グラフィックス・イメージは、所与の視点からの3次元シーンとの光の相互作用を数学的にモデル化することによって作成される。レンダリングと呼ばれるこのプロセスは、所与の視点からのシーンの2次元イメージを生成し、現実世界シーンの写真を撮影することに似ている。時間とともにシーンを徐々に変化させて、シーンのイメージのシーケンスをレンダリングすることによってアニメ化されたシーケンスを作成することができる。本物のように見えるレンダリングされたイメージとアニメーションを作成するのに、多大な労力がつぎ込まれている。
【背景技術】
【0003】
キャラクタのコンピュータによって生成されたアニメーションは、キャラクタの3次元モデルを操作して、フレーム・シーケンスにわたる一続きの身体的位置、つまりポーズを得ることによって達せられる。本物のように見えるキャラクタ・モデルは、しばしば、極めて複雑であり、数百万の表面要素や数百または数千の属性を有する。そのような複雑なモデルをアニメ化することに関わる複雑さに起因して、アニメーション・ツール群は、しばしば、キャラクタ・アニメーションを定義するのにアーマチュアとアニメーション変数に依拠する。
【0004】
アーマチュアは、キャラクタのポーズ、つまり身体的位置を表現する「ステック・フィギュア」である。「ステック・フィギュア」の「ステック」であるアーマチュア・セグメントを動かすことにより、アーマチュアを操作して、所望のポーズにさせることができる。アーマチュアにアニメ制作者によってポーズが与えられると、アニメーション・ツール群は、キャラクタの身体的姿勢がアーマチュアの身体的ポーズをほぼ反映するように、キャラクタ・モデルを変更する。
【0005】
アニメーション変数は、複雑なキャラクタ・モデルのキャラクタ・アニメーションを定義する別のやり方である。アニメーション変数は、キャラクタ・モデルの外観を変更する関数のためのパラメータである。アニメーション変数とそれに関連する関数は、キャラクタ・モデルに対する複雑な変更を比較的単純なコントロールに抽象化するのに使用される。アニメーション変数と関連する関数は、アーマチュア・セグメントを操作して、キャラクタ・モデルの外観を間接的に変更すること、あるいはアーマチュアを飛び越して、キャラクタ・モデルを直接に操作することができる。
【0006】
例えば、単一のアニメーション変数により、キャラクタの口の開きの度合いを定義することが可能である。この例では、アニメーション変数の値により、アーマチュアのいくつかの異なる部分が操作されて、および/またはキャラクタ・モデルの諸部分が直接に変更されて、所望の度合いまで開かれた口を有する、変更されたキャラクタ・モデルを作成することが可能である。
【0007】
モデル・コンポーネントと呼ばれる、アニメーション変数に関連する関数群を使用して、様々な現実感のある芸術的な効果を生じさせることができる。例えば、モデル・コンポーネントを使用して、キャラクタ・モデルの表面下に骨や、筋肉、脂肪の層を作成して、キャラクタ・モデルにポーズが与えられると、キャラクタ・モデルの表面または皮膚が現実感のある形に変形することができる。また、モデル・コンポーネントを使用して、毛髪や布地などの軟質の特徴の動きをシミュレートすることもできる。具体的な物理的現象を再現することに加えて、モデル・コンポーネントは、スカルプト・シェープ(sculpted shape)、メタボール、物理学シミュレーションなどの、アルゴリズムまたは手続きに従ったキャラクタ・モデルの操作を行うのにも使用することができる。
【0008】
モデル・コンポーネントは、極めて複雑であり、したがって、実行するのに時間がかかる。芸術的効果の高いキャラクタ・アニメーションを作成するのに、アニメ制作者は、しばしば、シーンの大まかなバージョンを作成し、次に、キャラクタ・アニメーションを繰り返し微調整して、最終的シーンの所望のドラマや表現を作成する。アニメ制作者がキャラクタ・モデルにポーズを与え、ポーズ変更行うにつれ、モデル・コンポーネントを実行するのに必要とされる時間により、アニメ制作者の効率が妨げられる可能性がある。最悪ケースでは、アニメ制作者は、単純化された「スタンドイン」キャラクタ・モデルを使用して、初期アニメーションを作成し、次に、最終的なキャラクタ・モデルで結果のアニメーションがどうなるか見守ることを余儀なくされることがある。その状況では、アニメ制作者は、基本的に、盲目的に作業しており、最終結果を推測することしかできない。反対に、妥当な時間内でモデル・コンポーネントを処理するのに必要とされる追加の計算リソースは、可能であったとしても、アニメーションを作成することの費用を大幅に増加させる。
【発明の開示】
【発明が解決しようとする課題】
【0009】
したがって、過度の計算リソースを消費することなしに、妥当な時間内でモデル・コンポーネントを実行することができるように、モデル・コンポーネントのパフォーマンスを最適化するシステムと方法が望ましい。また、モデル・コンポーネントの機能または複雑さに関わらず、任意のタイプのモデル・コンポーネントを最適化できることが、さらに望ましい。
【課題を解決するための手段】
【0010】
モデル・コンポーネントを使用してキャラクタ・モデルにポーズを与えて、様々な現実感のある芸術的な効果を生じさせることができる。本発明の実施態様は、モデル・コンポーネントの挙動を分析して、そのモデル・コンポーネントの出力を忠実に近似するモデル・コンポーネントの統計的表現を算出する。モデル・コンポーネントの統計的表現は、元のモデル・コンポーネントよりも高速に実行されるので、キャラクタ・モデルにポーズを与えるのに使用されるモデル・コンポーネントを、モデル・コンポーネントの等価の統計的表現でアニメーション時に置き換えて、アニメーション・パフォーマンスを向上させることができる。モデル・コンポーネントの統計的表現は、一組の代表的な訓練ポーズを介して操作されるキャラクタ・モデルの分析から導出される。モデル・コンポーネントの統計的表現は、アニメーション変数の非線形結合によって制御される一組のポーズ誤差に加算される、ポーズが与えられたフレーム位置の重み付けされた結合から成る。
【0011】
本発明の実施態様では、モデル・コンポーネントを使用して、キャラクタ・モデルの少なくとも一部分をあるポーズに操作する方法は、モデル・コンポーネントから、ベークされたコンポーネント(baked component)と呼ばれる統計的表現を作成することを含む。本方法は、ベークされたコンポーネントに関連するキャラクタ・モデルの一部分を識別し、ポーズから、キャラクタ・モデルの一組のポイントの一組の幾何学的にポーズが与えられた位置を算出する。また、本方法は、ベークされたコンポーネントとポーズから、キャラクタ・モデルのその一組のポイントに関連する一組のポーズ誤差を予測することも行う。その一組のポーズ誤差のそれぞれにより、幾何学的にポーズが与えられた位置からのポイントの変位が指定される。操作されたキャラクタ・モデルは、次に、その一組のポーズ誤差を、その一組のポイントのその一組の幾何学的にポーズが与えられた位置に適用することによって形成される。
【0012】
さらなる実施態様では、ポーズに関連するキャラクタ・モデルの部分は、キャラクタ・モデルのその部分に影響を与える少なくとも1つの基準フレームによって識別される。さらに、ある実施態様は、ポーズを、少なくとも一部は、一組のアニメーション変数によって定義する。さらなる実施態様では、関節回転角度などのアニメーション変数は、デフロブレート(defrobulate)された形態で表現される。さらに、その一組のポーズ誤差により、幾何学的にポーズが与えられた位置からのポイントの単一の変位、あるいは時間にともなうポイントの一続きの変位が指定されることが可能である。
【0013】
別の実施態様では、ベークされたコンポーネントは、モデル・コンポーネントに関連するキャラクタ・モデルの少なくとも一部分を識別することにより、モデル・コンポーネントから作成される。この実施態様は、次に、一組の訓練ポーズのそれぞれを介してキャラクタ・モデルを操作する。その一組の訓練ポーズは、一組の入力によって定義され、キャラクタ・モデルのある範囲の動きを表す。一組の訓練ポーズから、実施態様は、キャラクタ・モデルの少なくとも1つのポイントに関する一組の訓練ポーズ誤差を算出し、次に、一組の訓練ポーズ誤差を分析して、一組の入力と一組の訓練ポーズ誤差の間の関係を算出する。さらなる実施態様では、一組のポーズ誤差を分析することは、一組の入力に対する一組の訓練ポーズ誤差の回帰分析を実行することを含む。
【0014】
ベークされたコンポーネントを作成するさらなる実施態様では、一組の入力には、一組のアニメーション変数が含まれる。その一組のアニメーション変数の一部は、defrobuateが行われた形態で表現された関節回転角度である。さらに、一組の訓練ポーズ誤差のそれぞれは、幾何学的にポーズが与えられた位置から、モデル・コンポーネントによって指定された少なくとも1つの位置までの、キャラクタ・モデルのポイントの位置の少なくとも1つの差である。その一組のポーズ誤差のそれぞれにより、ポイントの単一の変位、あるいは幾何学的にポーズが与えられた位置から、モデル・コンポーネントによって指定された、時間につれての一組の位置までの、キャラクタ・モデルのポイントの時間につれての位置の一続きの差が指定されることが可能である。
【発明を実施するための最良の形態】
【0015】
本発明を、図面を参照して説明する。
【0016】
図1は、本発明の実施形態を実施するのに適したコンピュータ・システムのブロック図を示す。図1は、本発明の実施形態を実施することができる典型的なコンピュータ・システム100を示す。コンピュータ・システム100は、通常、モニタ110、コンピュータ120、キーボード130、ユーザ入力デバイス140、ネットワーク・インターフェース150を含む。ユーザ入力デバイス140には、コンピュータ・マウス、トラックボール、トラックパッド、グラフィックス・タブレット、タッチスクリーン、および/またはモニタ110上に現れるグラフィックス、オブジェクト、アイコン、および/またはテキストをユーザが作成する、または選択することを可能にする他の有線または無線の入力デバイス群が含まれる。ネットワーク・インターフェース150の諸実施形態は、通常、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、例えば、インターネット、および/または仮想ネットワーク、例えば、仮想プライベート・ネットワーク(VPN)などの電子通信ネットワークとの、有線または無線の通信を提供する。
【0017】
コンピュータ120は、通常、1つまたは複数の汎用プロセッサ160、ランダム・アクセス・メモリ(RAM)170などのメモリ記憶装置群、ディスク・ドライブ群180、さらに以上のコンポーネントと互いに接続するシステム・バス190を含む。RAM170やディスク・ドライブ180は、データ、オーディオ/ビデオ・ファイル、コンピュータ・プログラム、アプレット・インタープリタまたはアプレット・コンパイラ、仮想マシンを格納するための実体のある媒体の例であり、本明細書で説明する発明の諸実施形態は、幾何学的シーン・データ、オブジェクト・データ・ファイル、シェーダ記述子、レンダリング・エンジン、出力イメージ・ファイル、テクスチャ・マップ、変位マップを含む。コンピュータ120のさらなる諸実施形態は、オーディオ・データやグラフィックス・データを処理し、出力するための専用のオーディオ・サブシステムとビデオ・サブシステムを含むことが可能である。他のタイプの実体のある媒体には、フロッピー・ディスク、リムーバブルなハード・ディスク、DVD−ROM、CD−ROM、バーコードなどの光記憶媒体、フラッシュメモリなどの不揮発性メモリ・デバイス、読取り専用メモリ(ROM)、バッテリ・バックアップ付き揮発性メモリ、ネットワーク化された記憶装置が含まれる。
【0018】
図2は、関節キャラクタ・モデル200上の典型的なポイントのポーズが与えられた位置を算出するモデル・コンポーネントの従来の使用を示す。図2は、キャラクタ・モデル200の肩と腕の領域の一部分を示す。ある実施形態では、キャラクタ・モデル200は、オブジェクトの3次元コンピュータ・モデルであるが、図では、明瞭にするため、2次元で示されている。さらに、キャラクタ・モデル200は、人間型の形状であるように示されているが、キャラクタ・モデル200は、植物や動物だけでなく、現実感のある属性および/または擬人化された属性を有する無生物のオブジェクトを含め、任意の種類のオブジェクトの形態をとることが可能である。
【0019】
キャラクタ・モデル200は、3次元モデリング・ソフトウェア内の手作業の構築、手続きオブジェクト作成、物理的オブジェクトの3次元スキャンを含め、3次元コンピュータ・モデルを作成するのに使用される任意のやり方で作成することができる。キャラクタ・モデル200は、ベジエ面または非一様有理Bスプライン(NURBS)、コンストラクティブ・ソリッド・ジオメトリ(CSG)、および/または3次元オブジェクトを表現するための他の任意の技術などの、1組のポリゴン、ボクセル、高次曲面から成ることが可能である。さらに、キャラクタ・モデル200は、色、テクスチャ、材料特性、透明度、反射率、照明・シェーディング属性、変位マップ、バンプ・マップを含め、オブジェクトの外観を定義する属性を含むことが可能である。
【0020】
キャラクタ・モデル200は、アーマチュア205を介してアニメ化される。アーマチュア205は、1つまたは複数のアーマチュア・セグメントを含む。図2では、アーマチュア205は、キャラクタ・モデル200の上腕のポーズを表すのに使用される。アニメ制作者は、アーマチュア205のセグメントの位置と向きを操作して、キャラクタ・モデル200のポーズを定義する。
【0021】
アーマチュア・セグメントは、サイズ、位置、または向きが制約されか、またはアニメ制作者によって自由に操作される。アーマチュア・セグメントの数は、キャラクタの複雑さに応じて異なり、通常のキャラクタは、数百または数千のセグメントを有するアーマチュアを有することが可能である。一部のケースでは、アーマチュア・セグメントの数と位置は、キャラクタに関する「スケルトン」のものと同様であるが、アーマチュア・セグメントは、微妙な顔の表情、ならびに骨、またはその他の解剖学上の特徴に必ずしも関連しない、その他のキャラクタ詳細も定義することができる。さらに、図2のアーマチュア205におけるアーマチュア・セグメントは、一組のライン・セグメントから成るが、本発明の代替の諸実施形態では、アーマチュア・セグメントは、一組の表面、および/または一組のボリュームから成ることが可能である。
【0022】
キャラクタ・モデル205は、キャラクタ・モデル200が、1つのポーズから別のポーズに漸進的に動かされる、フレームの、つまり静止イメージのシーケンスを作成することにより、アニメ化される。また、キャラクタ・モデル200は、並進させる、回転させる、拡大縮小することができ、またはフレーム間で全体としてそれ以外の形で操作することもできる。アニメ制作者は、シーケンス内の各フレームに関して、キャラクタ・モデル200のポーズを手作業で作成することができ、あるいは2つ以上のキー・フレームに関するポーズを作成して、次に、それらのフレームをアニメーション・ソフトウェアによって補間して、各フレームに関するポーズを作成することが可能である。また、関数、手続き、またはアルゴリズムを使用して、ポーズを自動的に作成することも可能である。
【0023】
ポーズのすべて、または一部が、アニメ制作者によって手作業で作成されるか、または関数、手続き、またはアルゴリズムを使用して自動的に作成されるかに関わらず、キャラクタ・モデル200のポーズは、一組のアニメーション変数によって定義できる。1つのタイプのアニメーション変数により、関節と呼ばれる原点を中心とするアーマチュア・セグメントの回転角度が指定される。図2では、アーマチュア205の上腕セグメントが、関節210を中心に回転させられる。関節210を中心とするアーマチュア205の上腕セグメントの回転は、アニメーション変数215、217、219、221で指定される。この例では、アニメーション変数215、217、219、221の各々により、座標軸を中心とする回転が指定される。
【0024】
キャラクタ・モデル200のポイントの位置は、少なくともある程度、モデル・コンポーネント230によって算出される。ある実施形態では、関節210に関連するアニメーション変数215、217、219、221を含むことが可能なアニメーション変数225が、モデル・コンポーネント230に入力される。すると、モデル・コンポーネント230は、入力されたアニメーション変数群から、キャラクタ・モデル200の1つまたは複数のポイントの位置を算出する。モデル・コンポーネント230は、任意のタイプのデータ処理の関数、手続き、またはアルゴリズムを使用して、皮膚の層、骨の層、脂肪の層、筋肉の層のシミュレーション;動的な布地シミュレーション;スカルプト・シェープ;メタボール;物理学シミュレーションを含むが、以上には限定されない、キャラクタ・モデル200のポイントの位置を算出することができる。モデル・コンポーネントを使用して、キャラクタ・モデルの表面上のポイント、キャラクタ・モデル200の内部に含まれるポイント、および/またはキャラクタ・モデル200の外部のポイントに関して、キャラクタ・モデル200の形状寸法、または他の属性の構成を算出することができる。
【0025】
図2では、モデル・コンポーネント230は、キャラクタ・モデル200のポイント240、250の位置を算出する。モデル・コンポーネント230の出力235により、ポイント240の位置が指定される。同様に、モデル・コンポーネント230の出力245により、ポイント250の位置が指定される。ポイント240、250の位置は、ベース位置、つまり静止位置におけるキャラクタ・モデル200からの変位としてモデル・コンポーネント230によって指定されることが可能である。
【0026】
代替として、キャラクタ・モデルの諸部分は、近くのアーマチュア・セグメントに従って回転させられて、幾何学的にポーズが与えられたキャラクタ・モデル260を形成することも可能である。幾何学的にポーズが与えられたキャラクタ・モデルは、1つまたは複数の幾何学オペレーションを使用して、静止の向き、つまりポーズが与えられていない向きから、ポーズが与えられた向きに変換される。幾何学オペレーションには、キャラクタ・モデルの諸部分の並進、拡大縮小、回転、その他の類似した操作、さらにはそれらのオペレーションの重み付けされた結合、または重み付けされていない結合が含まれる。また、幾何学オペレーションには、キャラクタ・モデルのポイントをキャラクタ・モデルの表面から射影することも含まれることが可能である。モデル・コンポーネント230の出力235、245により、次に、ポイント240、250の、幾何学的にポーズが与えられたキャラクタ・モデル260上の位置からのさらなる変位が指定される。以下に詳細に説明するとおり、モデル・コンポーネントにより、キャラクタ・モデル上のポイントの位置がどのように指定されるかにかかわらず、ベークされたコンポーネントを、幾何学的にポーズが与えられたキャラクタ・モデルと併せて使用して、モデル・コンポーネントを近似することができる。
【0027】
多くのタイプのモデル・コンポーネントの複雑さにより、キャラクタ・モデルにポーズを与えることは、時間がかかり、計算リソースを多く使用することになる。前述したとおり、これにより、アニメ制作者の、キャラクタ・アニメーションを微調整して、所望のドラマや表現をもたらす能力が妨げられる。本発明のある実施形態は、キャラクタ・モデルにポーズを与えるのに使用される各モデル・コンポーネントの統計的表現を作成することにより、モデル・コンポーネントのパフォーマンスを最適化する。ベークされたコンポーネントと呼ばれるモデル・コンポーネントの統計的表現は、大幅に短縮された実行時間で、モデル・コンポーネントの挙動を忠実に近似する。さらに、ベークされたコンポーネントは、あらゆるタイプのモデル・コンポーネントの挙動を近似するのに使用することができる。このため、キャラクタ・モデルにポーズを与えるのに使用されるモデル・コンポーネントを等価のベークされたコンポーネントで置き換えて、実行パフォーマンスを向上させ、キャラクタ・モデルにポーズを与える際に必要とされる計算リソースを減らすことができる。
【0028】
図3は、本発明の実施形態による、関節キャラクタ・モデル上のポイントのポーズが与えられた位置を算出するベークされたコンポーネントの使用を示す。キャラクタ・モデル300が、図3では、キャラクタ・モデル300の上腕のポーズを表す、アーマチュア305を介してアニメ化される。アニメ制作者が、アーマチュア305のセグメントの位置と向きを操作して、キャラクタ・モデル300のポーズを定義する。
【0029】
キャラクタ・モデル300のポーズは、関節310を中心とするアーマチュア305の上腕セグメントの回転を指定する、アニメーション変数315、317、319、321を含む、一組のアニメーション変数で定義されることが可能である。キャラクタ・モデル300のポイントの位置は、少なくともある程度、モデル・コンポーネント333によって算出されることが可能である。しかし、本発明のある実施形態は、モデル・コンポーネント333の挙動を近似する、対応する一組のベークされたコンポーネント330で、モデル・コンポーネント333を置き換えることにより、ポーズが与えられたキャラクタ・モデルを作成するのに必要な実行時間を短縮する。ベークされたコンポーネント330は、モデル・コンポーネント333から導出される。ベークされたコンポーネント330は、任意のタイプのデータ処理の関数、手続き、またはアルゴリズムを近似して、皮膚の層、骨の層、脂肪の層、筋肉の層のシミュレーション;動的な布地シミュレーション;スカルプト・シェープ;メタボール;物理学シミュレーションを含むが、以上には限定されない、キャラクタ・モデル300のポイントの位置を算出することができる。
【0030】
ある実施形態では、ベークされたコンポーネント330は、キャラクタ・モデル300にポーズを与えるのに先立って、モデル・コンポーネント333から導出することができる。さらに、モデル・コンポーネント333から導出されると、ベークされたコンポーネント330は、キャラクタ・モデル300の複数のポーズを算出するのに繰り返し使用することができる。
【0031】
ある実施形態では、関節310に関連するアニメーション変数315、317、319、321を含むアニメーション変数325が、ベークされたコンポーネント330に入力される。すると、ベークされたコンポーネント330は、入力されたアニメーション変数325から、キャラクタ・モデル200の1つまたは複数のポイントの位置を算出する。
【0032】
図3では、ベークされたコンポーネント330は、キャラクタ・モデル300のポイント340、350の位置を算出する。モデル・コンポーネント330の出力335により、ポイント340の位置が指定される。同様に、モデル・コンポーネント330の出力345により、ポイント350の位置が指定される。ポイント340、350の位置を、モデル・コンポーネント230によって、ベース位置、つまり静止位置におけるキャラクタ・モデル300からの変位として、または代替として、ポイント340、350の、幾何学的にポーズが与えられたキャラクタ・モデル360上の位置からの変位として指定するることができる。
【0033】
前述したとおり、ベークされたコンポーネントは、キャラクタ・モデルにポーズを与えるのに先立って、モデル・コンポーネントから導出することができる。さらに、ベークされたコンポーネントが計算されると、そのベークされたコンポーネントを使用して、キャラクタ・モデルに繰り返しポーズを与えることができる。このため、図4は、本発明の実施形態による、ポーズが与えられたキャラクタ・モデルを作成するための方法400の2つの段階を示す。第1の段階410では、ベークされたコンポーネントが、キャラクタ・モデルにポーズを与えるのに先立って、モデル・コンポーネントから導出される。ベークされたコンポーネントの作成に続き、第2の段階420で、そのベークされたコンポーネントを使用して、ポーズが与えられたキャラクタ・モデルを作成することができる。本発明のある実施形態は、第2の段階420を繰り返して、ベークされたコンポーネントを再作成することなしに、キャラクタ・モデルの追加のポーズを生成することができる。
【0034】
第1の段階410のある実施形態では、ベークされたコンポーネントは、訓練セットと呼ばれるセットの訓練ポーズにおけるキャラクタ・モデルを分析することにより、作成される。図5は、本発明の実施形態による、関節キャラクタ・モデルに関連するモデル・コンポーネントからベークされたコンポーネントを作成するための方法500を示す。
【0035】
ステップ505は、モデル・コンポーネントに関連するアニメーション変数と一組の基準フレームを識別する。識別されるアニメーション変数は、モデル・コンポーネントに入力される、キャラクタ・モデルにポーズを与えるのに使用される一組のアニメーション変数の部分である。基準フレームは、モデル・コンポーネントの出力による影響を受けるキャラクタ・モデルの諸領域を定義する。ある実施形態では、各基準フレームは、1つまたは複数のアーマチュア・セグメントと、キャラクタ・モデルの隣接する部分に関する局所座標系を定義する。モデル・コンポーネントに関連する一組の基準フレームに関して、1つのフレームが、親フレームとして選択される。
【0036】
ある実施形態では、座標基準フレームは、次の4つのベクトルから構成される。すなわち、座標基準フレームの原点、つまり位置を定義する第1のベクトルと、座標基準フレームの座標軸を定義する3つのベクトルである。キャラクタ・モデルのポイントのそれぞれは、一組の基準フレーム重みを介して、1つまたは複数の基準フレームに関連付けられる。一組の基準フレーム重みにより、所与のポイント上における1つまたは複数の基準フレームの動きの影響の重み付き平均が定義される。ある実施形態では、関連する基準フレームとアニメーション変数は、手作業で算出される。代替として、モデル・コンポーネントの分析により、入力として使用されるアニメーション変数とモデル・コンポーネントの出力による影響を受ける可能性がある、キャラクタ・モデルの一組のポイントが、したがって、基準フレームが、算出される。
【0037】
図6A〜図6Cは、本発明の実施形態による、典型的な関節キャラクタ・モデルに関連するモデル・コンポーネントからベークされたコンポーネントを作成するための方法の典型的な応用例を示す。図6Aは、キャラクタ・モデル605にポーズを与える際に使用される典型的なキャラクタ・アーマチュア600を示す。アーマチュア600は、アーマチュア600の右下脚に関連する基準フレーム607や、アーマチュア600の右肩に関連する基準フレーム609などの、いくつかの基準フレームを含む。各基準フレームは、1つまたは複数のアーマチュア・セグメントとキャラクタ・モデル605の隣接する部分に関連する。例えば、基準フレーム611は、キャラクタ・モデル605の胴の領域に関連し、基準フレーム613は、キャラクタ・モデル605の左肩部分に関連し、基準フレーム615および617は、キャラクタ・モデル605の左上腕および左下腕にそれぞれ関連する。
【0038】
ステップ505で、モデル・コンポーネントに関連する基準フレームとアニメーション変数が識別される。例えば、キャラクタ・モデル605の腕の変形を算出するのに使用される筋肉変形モデル・コンポーネントは、一組の基準フレーム611、613、615、617と、それらの基準フレーム内のアーマチュア・セグメントにポーズを与えるのに使用されるアニメーション変数に関連する。
【0039】
ステップ510で、キャラクタ・モデルに、一組の訓練ポーズに従ってポーズが与えられる。各訓練ポーズは、典型的な値に設定された、識別された一組のアニメーション変数の結果である。訓練ポーズのセットは、理想的には、モデル・コンポーネントに関連するキャラクタ・モデルの部分に関する動きの通常の範囲を対象として含む。ある実施形態では、訓練セットの中のポーズの数は、モデル・コンポーネントに関連する、異なる基準フレームの数を超えないにしても、少なくともその数と一致する。実施形態では、通常のキャラクタ・モデルは、数千のポーズを含む訓練セットを有することが可能である。
【0040】
ある実施形態では、キャラクタ・モデルのポイントには、訓練セットの各ポーズに関して、幾何学的にポーズが与えられる。キャラクタ・アーマチュアの諸部分の動きまたはポーズにより、関連する基準フレームも動かされる。幾何学的ポーズにより、モデル・コンポーネントからの変位なしに、関連する基準フレームのポーズが与えられた位置に従って、キャラクタ・モデルのポイントが動かされる。ステップ510は、各訓練ポーズに関して、アニメーション変数の値や、モデル・コンポーネントによって影響される可能性があるキャラクタ・モデルのポイントの対応する位置を記録する。ある実施形態では、キャラクタ・モデル・ポイントのポーズが与えられた位置は、その一組の基準フレームの各フレーム内で表現される。一組のアニメーション変数値とキャラクタ・モデル・ポイントの対応する諸部分は、一組のサンプル・データを含む。
【0041】
図6Aの例に続いて、図6Bは、ステップ510によって要求されるとおり、キャラクタ・モデルの左腕に関連する、一組の基準フレームとアニメーション変数に関する典型的な一組の訓練ポーズ620を示す。訓練セット620は、モデル・コンポーネントに関連するキャラクタ・モデルの部分をそれぞれが操作して、異なるポーズにさせる、訓練ポーズ622、624、626、628、630、632を含む。ステップ510の典型的な応用例では、各訓練ポーズに関する、アニメーション変数の値とキャラクタ・モデルの幾何学的にポーズが与えられたポイントが記録されて、一組のサンプル・データが形成される。
【0042】
ステップ515は、その一組のサンプル・データを分析して、一組の最適なフレーム基底関数を算出する。ポイントのポーズが与えられた位置を表現する一組のサンプル・データの部分が結合されて、行列が形成され、その行列の単一値分解が計算されて、一組のサンプル・データに関する一組のフレーム基底関数が求められる。代替の諸実施形態では、標準相関などの、一組のフレーム基底関数を計算する他の方法も使用することができる。その一組のフレーム基底関数を使用して、一組のサンプルにおけるモデル・ポイントの位置を最小2乗で最適に表現することができる。最適な一組のフレーム基底関数を算出することにより、一組のサンプル・データをより簡潔に表現することが可能になり、方法500の後続のステップで分析されるデータの量を最小限に抑えられる。ある実施形態では、ステップ515は、その一組のフレーム基底関数を使用して、一組のサンプル・データを分解して、最適化された一組のサンプル・データを算出する。しかし、ステップ515は、オプションであり、方法500の代替の実施形態は、ステップ515を飛び越して、サンプル・データの最初の組に対して後続のステップを実行する。
【0043】
ステップ520は、サンプル・データの最適化された組からの一組のポーズ誤差を算出する。ある実施形態では、所与のポーズに関するポーズ誤差は、キャラクタ・モデルのポイントの幾何学的にポーズが与えられた位置を、同一の一組のアニメーション変数に関するモデル・コンポーネントからの対応する位置出力と比較することによって算出される。所与のポーズにおけるキャラクタ・モデル・ポイントに関するポーズ誤差は、モデル・コンポーネントによって出力されるポイントの位置と幾何学的にポーズが与えられた位置の間の差である。さらなる実施形態では、モデル・コンポーネントから出力されるポイントの位置は、時間とともに変化する。この実施形態では、所与の訓練ポーズにおけるポイントに関するポーズ誤差は、時間につれてのモデル・コンポーネント出力と、ポイントの幾何学的にポーズが与えられた位置との間における一続きの差である。訓練セットにおける各訓練ポーズについて、モデル・コンポーネントによる影響を受ける可能性があるキャラクタ・モデルの各ポイントに関するポーズ誤差が算出される。
【0044】
別の実施形態では、幾何学的にポーズが与えられたキャラクタ・モデルは、キャラクタ・モデルの「皮膚」の位置を定義する。モデル・コンポーネントは、その皮膚に対するポイントの位置を定義する。例えば、布地シミュレーション・モデル・コンポーネントは、キャラクタ・モデルの皮膚に対するキャラクタ・モデルの衣服上のポイントの位置を定義することができる。この実施形態では、幾何学的にポーズが与えられたキャラクタ・モデルは、ポーズ誤差の方向または向きを定義し、モデル・コンポーネントの出力は、その向きに沿ったポーズ誤差を定義する。
【0045】
ある実施形態では、各ポイントに関するポーズ誤差を表す一組のフレーム重みが使用される。各ポイントに関するポーズ誤差は、ステップ505で選択された親基準フレームに変換される。親基準フレームから、各ポイントに関するポーズ誤差に、そのポイントに関連する一組の基準フレーム重みに従って重みが付けられ、ステップ515で算出されたフレーム基底関数に従って親基準フレームから各基準フレームに変換される。親基準フレームからその別の基準フレーム群にポーズ誤差を変換し、分散させることにより、キャラクタ・モデルの各ポイントに関連するポーズ誤差は、関連する基準フレームと一緒に動く。
【0046】
図6Aおよび図6Bの例に続いて、図6Cは、典型的な訓練ポーズに関するポーズ誤差の算出を示す。アニメーション変数640、642、644、646を含む、訓練ポーズを定義するアニメーション変数が、モデル・コンポーネントに入力されて、ポーズが与えられたキャラクタ・モデル650が算出される。ポイント652、654を含むキャラクタ・モデルのポイントの位置が、幾何学的にポーズが与えられたキャラクタ・モデル648上の対応する位置と比較される。ポーズ誤差656、658は、ポーズが与えられたキャラクタ・モデル650および幾何学的にポーズが与えられたキャラクタ・モデル648のそれぞれの上のポイント652とポイント654の間における位置の差である。
【0047】
ステップ525は、ポーズ誤差の完全な一組を分析して、モデル・コンポーネントの挙動を忠実に近似するベークされたコンポーネントを算出する。ある実施形態では、統計回帰分析を使用して、キャラクタ・モデルのポイントに関するポーズ誤差が、アニメーション変数の関数として算出される。1つのインプリメンテーションでは、非線形の2次回帰分析が、一組のポーズ誤差に対して実行される。このインプリメンテーションでは、アニメーション変数は、分割アニメーション変数と呼ばれ、別々の回帰ステップと考えられる正の値と負の値に分割される。さらなるインプリメンテーションでは、正の分割アニメーション変数が、0を下回る場合、値は0に固定される。同様に、負の分割アニメーションも、0を超える場合、0に固定される。さらなる実施形態では、分割アニメーション変数と、分割アニメーション変数の平方根と、同一の関節に関連するアニメーション変数である隣接する分割アニメーション変数の積の平方根とがすべて、回帰分析において使用されて、モデル・コンポーネントの出力を近似する関数が算出される。
【0048】
さらなる実施形態では、関節回転を表すアニメーション変数が、デフロブレートされた形態(defrobulated form)に変換されて、視覚的な不連続の外観が防止される。通常の角度表現とは異なり、デフロブレートされた角度は、関節の動きの通常の範囲内で角の不連続を全く有さない。一部の応用例では、デフロブレートされた角度は、通常、例えば、デフロブレートされた角度にジンバル・ロックがなく、関節の動きの通常の範囲にわたって連続的であることに起因して、モデル・コンポーネントの出力とより高い度合いの統計的相関を示す。4角度の拡張オイラー(four angle extended Euler)形態から、対応するデフロブレートされたフォーマットへの関節角度の変換は、関連する仮出願、「Defrobulation」、弁護士整理番号21751−000900US、および出願、「Defrobulated Angles for Character Joint Representation」、弁護士整理番号21751−000910USで説明されている。
【0049】
デフロブレートされた角度フォーマットを要約すると、右回りの角度回転形態(x,y,z,x)に対応する標準の4つの角度回転(tw,a,b,c)として表される関節回転が、一組の射影、xp=cos(a)cos(b)、yp=cos(c)sin(a)+sin(c)sin(b)cos(a)、zp=sin(c)sin(a)−cos(c)sin(b)cos(a)に変換されることである。その一組の射影、xp、yp、、zpから、弦角度chが、ch=acos(xp)として決まる。弦角度chを中間値として使用して、デフロブレートされた一組の角度(q,r,et)が算出される。ある実施形態では、q=ch*ypかつr=ch*zpである。基本ツイスト、etは、以下のとおり定義される。すなわち、
【数1】
【0050】
本発明のある実施形態への応用では、関節回転を表し、既にデフロブレートされた形態になっていないアニメーション変数は、前述したとおり、デフロブレートされた形態に変換される。次に、デフロブレートされた形態のアニメーション変数を使用して、回帰分析が実行される。さらなる実施形態では、デフロブレートされたアニメーション変数は、正の値と負の値に分割され、別々の回帰ステップと考えられる。さらに、デフロブレートされたアニメーション変数、それらの変数の平方根、隣接するアニメーション変数の積の平方根を回帰分析に含めることができる。
【0051】
方法500で算出されたベークされたコンポーネントは、所望のポーズが、訓練セットの中に含まれていたかどうかに関わらず、任意の所望のポーズに関してキャラクタ・モデルにポーズを与える際に、モデル・コンポーネントの代わりに使用することができる。さらに、いくつかのベークされたコンポーネントの出力を結合して、キャラクタ・モデルのすべての部分、または1つまたは複数の部分のポーズを算出することができる。
【0052】
図7は、本発明の実施形態による、ベークされたコンポーネントから関節キャラクタ・モデル上のポイントのポーズが与えられた位置を算出するための方法700を示す。ある実施形態では、一組のアニメーション変数によって定義される所望のキャラクタ・モデル・ポーズに関して、ステップ705は、ベークされたコンポーネントに関連するその一組のアニメーション変数の一部を算出する。ある実施形態では、関連するアニメーション変数と呼ばれる一組のアニメーション変数のその一部は、ベークされたコンポーネントの出力と統計的相関を有するアニメーション変数である。さらに、ステップ705は、ベークされたコンポーネントに関連する基準フレームを算出する。
【0053】
図8A〜図8Cは、本発明の実施形態による、ベークされたコンポーネントから関節キャラクタ・モデル上のポイントのポーズが与えられた位置を算出するための方法の典型的な応用例を示す。図8A〜図8Cの例では、ベークされたコンポーネントは、所望のポーズのためにキャラクタ・モデルの左腕の変形を算出するのに使用される、筋肉ディフォーマ(deformer)のオペレーションを表す。図8Aは、ステップ705の実施形態によって要求される、所望のポーズのための典型的なベークされたコンポーネントに関連する一組の基準フレームの選択を示す。キャラクタ・アーマチュア800が、一組のアニメーション変数に応じて操作されて、所望のポーズにされている。ステップ705は、ベークされたコンポーネントに関連する一組のアニメーション変数の一部分を識別する。さらに、ベークされたコンポーネントによる影響を受ける、基準フレーム805、810、815、820などの基準フレームも選択される。
【0054】
ステップ710で、キャラクタ・モデル、または代替として、ベークされたコンポーネントによる影響を受ける可能性のあるキャラクタ・モデルの諸部分に、関連するアニメーション変数に応じて、幾何学的にポーズが与えられる。キャラクタ・モデルには、当技術分野で知られている任意のやり方で幾何学的にポーズを与えることができる。
【0055】
図8Bは、ステップ710の実施形態によって要求される、キャラクタ・モデルのポイントの幾何学的にポーズが与えられた部分の算出を示す。図8Bでは、ステップ710は、アニメーション変数835、840、845、および850を含む、一組のアニメーション変数の部分に応じて、ベークされたコンポーネントによる影響を受けるキャラクタ・モデル830の部分にポーズを与える。一組のアニメーション変数のその部分を適用した結果は、幾何学的にポーズが与えられたキャラクタ・モデル855である。幾何学的にポーズが与えられたキャラクタ・モデルは、ポイント860、865を含む。
【0056】
さらに、ステップ715は、関連するアニメーション変数をベークされたコンポーネントに入力する。関節の角度に対応するアニメーション変数に関して、ある実施形態は、そのアニメーション変数を、ベークされたコンポーネントに入力されるデフロブレートされた形態に変換する。ベークされたコンポーネントの出力は、所望のポーズについての、キャラクタ・モデル上の少なくとも1つポイントに関するポーズ誤差である。ある実施形態では、ベークされたコンポーネントは、キャラクタ・モデル上の少なくとも1つのポイントに関して、ある期間にわたるポーズ誤差を表す、一続きのポーズ誤差値を出力する。
【0057】
一組の最適なセットのフレーム基底関数が使用されて、ベークされたコンポーネントを作成する際の一組のサンプル・データのサイズが縮小されている場合、ステップ720は、キャラクタ・モデルの各ポイントに関連するポーズ誤差に、その一組のフレーム基底関数を適用する。その結果、ポーズ誤差は、関連する基準フレーム群の中のコンポーネント値に分解される。
【0058】
ステップ725は、各ポイントに関するポーズ誤差を、幾何学的にポーズが与えられたキャラクタ・モデル上のポイントの位置に加算し、結果を結合して、ポーズが与えられたキャラクタ・モデルにする。ベークされたコンポーネントの使用からもたらされる、ポーズが与えられたキャラクタ・モデルは、同一の一組のアニメーション変数に関して、元のモデル・コンポーネントから生成される結果を忠実に近似する。
【0059】
図8Cは、ステップ715〜725の実施形態によって要求される、ベークされたコンポーネントによって出力されるポーズ誤差の、キャラクタ・モデルのポイントの幾何学的にポーズが与えられた位置への適用を示す。一組のアニメーション変数870の部分は、ベークされたコンポーネント875に入力されて、ポーズ誤差880、885を含む、一組のポーズ誤差が生成される。その一組のポーズ誤差は、ポイント860、865を含む、幾何学的にポーズが与えられたキャラクタ・モデルのポイントを、895、890のような新たな位置にそれぞれ移動させるのに使用される。キャラクタ・モデルのポイントの新たな位置は、元のモデル・コンポーネントの適用からもたらされる位置を忠実に近似する。
【0060】
前述した実施形態の1つまたは複数を使用して、ポーズが与えられたモデル、つまり変形されたモデルが作成されると、任意のレンダリング技術、例えば、レイ・トレーシングまたはスキャンライン・レンダリングが、照明、シェーディング、テクスチャ・マッピング、他の任意のイメージ処理情報と組み合わせて、モデルから、最終的なイメージまたはフレームを作成することができることに留意されたい。
【0061】
添付の文書を読んだ後、さらなる諸実施形態が、当業者には思い描かれよう。他の諸実施形態では、以上に開示した発明の組み合わせ、または部分的組み合わせが、有利に実施されることが可能である。アーキテクチャおよび流れ図のブロック図を、理解を容易にするためにグループ化している。しかし、ブロックの組み合わせ、新たなブロックの追加、ブロックの再構成などが、本発明の代替の諸実施形態において企図されることを理解されたい。
【0062】
本明細書および図面は、したがって、限定的ではなく、例示的であると見なされたい。しかし、特許請求の範囲に記載する本発明のより広い趣旨および範囲を逸脱することなく、様々な改変および変更を行うことができることが明白であろう。
【図面の簡単な説明】
【0063】
【図1】本発明の実施形態を実施するのに適したコンピュータ・システムを示すブロック図である。
【図2】関節キャラクタ・モデル上のポイントのポーズが与えられた位置を算出するモデル・コンポーネントの従来の使用を示す図である。
【図3】本発明の実施形態による、関節キャラクタ・モデル上のポイントのポーズが与えられた位置を算出する、ベークされたコンポーネントの使用を示す図である。
【図4】本発明の実施形態による、ポーズが与えられたキャラクタ・モデルを作成するための方法の2段階を示す図である。
【図5】本発明の実施形態による、関節キャラクタ・モデルに関連するモデル・コンポーネントからベークされたコンポーネントを作成するための方法を示す図である。
【図6A】本発明の実施形態による、典型的な関節キャラクタ・モデルに関連するモデル・コンポーネントからベークされたコンポーネントを作成するための方法の典型的な応用例を示す図である。
【図6B】本発明の実施形態による、典型的な関節キャラクタ・モデルに関連するモデル・コンポーネントからベークされたコンポーネントを作成するための方法の典型的な応用例を示す図である。
【図6C】本発明の実施形態による、典型的な関節キャラクタ・モデルに関連するモデル・コンポーネントからベークされたコンポーネントを作成するための方法の典型的な応用例を示す図である。
【図7】本発明の実施形態による、ベークされたコンポーネントから関節キャラクタ・モデル上のポイントのポーズが与えられた位置を算出するための方法を示す図である。
【図8A】本発明の実施形態による、ベークされたコンポーネントから関節キャラクタ・モデル上のポイントのポーズが与えられた位置を算出するための方法の典型的な応用例を示す図である。
【図8B】本発明の実施形態による、ベークされたコンポーネントから関節キャラクタ・モデル上のポイントのポーズが与えられた位置を算出するための方法の典型的な応用例を示す図である。
【図8C】本発明の実施形態による、ベークされたコンポーネントから関節キャラクタ・モデル上のポイントのポーズが与えられた位置を算出するための方法の典型的な応用例を示す図である。
【関連出願】
【0001】
関連出願の相互参照
本出願は、ともに2003年5月14日に出願された、米国特許仮出願第60/470590号、「Rig Baking」、および米国特許仮出願第60/470767号、「Defrobulation」の優先権を主張し、以上の仮出願を参照によって事実上、組み込む。本出願は、 に出願した、弁護士整理番号21751−000910USの米国特許出願「Defrobulated Angles for Character Joint Representation」を参照によって事実上、組み込む。
【技術分野】
【0002】
本発明は、コンピュータ・グラフィックスの分野に関し、詳細には、コンピュータによって生成されたキャラクタをアニメ化するための方法と装置に関する。本発明は、コンピュータ・グラフィックスの分野に関する。多くのコンピュータ・グラフィックス・イメージは、所与の視点からの3次元シーンとの光の相互作用を数学的にモデル化することによって作成される。レンダリングと呼ばれるこのプロセスは、所与の視点からのシーンの2次元イメージを生成し、現実世界シーンの写真を撮影することに似ている。時間とともにシーンを徐々に変化させて、シーンのイメージのシーケンスをレンダリングすることによってアニメ化されたシーケンスを作成することができる。本物のように見えるレンダリングされたイメージとアニメーションを作成するのに、多大な労力がつぎ込まれている。
【背景技術】
【0003】
キャラクタのコンピュータによって生成されたアニメーションは、キャラクタの3次元モデルを操作して、フレーム・シーケンスにわたる一続きの身体的位置、つまりポーズを得ることによって達せられる。本物のように見えるキャラクタ・モデルは、しばしば、極めて複雑であり、数百万の表面要素や数百または数千の属性を有する。そのような複雑なモデルをアニメ化することに関わる複雑さに起因して、アニメーション・ツール群は、しばしば、キャラクタ・アニメーションを定義するのにアーマチュアとアニメーション変数に依拠する。
【0004】
アーマチュアは、キャラクタのポーズ、つまり身体的位置を表現する「ステック・フィギュア」である。「ステック・フィギュア」の「ステック」であるアーマチュア・セグメントを動かすことにより、アーマチュアを操作して、所望のポーズにさせることができる。アーマチュアにアニメ制作者によってポーズが与えられると、アニメーション・ツール群は、キャラクタの身体的姿勢がアーマチュアの身体的ポーズをほぼ反映するように、キャラクタ・モデルを変更する。
【0005】
アニメーション変数は、複雑なキャラクタ・モデルのキャラクタ・アニメーションを定義する別のやり方である。アニメーション変数は、キャラクタ・モデルの外観を変更する関数のためのパラメータである。アニメーション変数とそれに関連する関数は、キャラクタ・モデルに対する複雑な変更を比較的単純なコントロールに抽象化するのに使用される。アニメーション変数と関連する関数は、アーマチュア・セグメントを操作して、キャラクタ・モデルの外観を間接的に変更すること、あるいはアーマチュアを飛び越して、キャラクタ・モデルを直接に操作することができる。
【0006】
例えば、単一のアニメーション変数により、キャラクタの口の開きの度合いを定義することが可能である。この例では、アニメーション変数の値により、アーマチュアのいくつかの異なる部分が操作されて、および/またはキャラクタ・モデルの諸部分が直接に変更されて、所望の度合いまで開かれた口を有する、変更されたキャラクタ・モデルを作成することが可能である。
【0007】
モデル・コンポーネントと呼ばれる、アニメーション変数に関連する関数群を使用して、様々な現実感のある芸術的な効果を生じさせることができる。例えば、モデル・コンポーネントを使用して、キャラクタ・モデルの表面下に骨や、筋肉、脂肪の層を作成して、キャラクタ・モデルにポーズが与えられると、キャラクタ・モデルの表面または皮膚が現実感のある形に変形することができる。また、モデル・コンポーネントを使用して、毛髪や布地などの軟質の特徴の動きをシミュレートすることもできる。具体的な物理的現象を再現することに加えて、モデル・コンポーネントは、スカルプト・シェープ(sculpted shape)、メタボール、物理学シミュレーションなどの、アルゴリズムまたは手続きに従ったキャラクタ・モデルの操作を行うのにも使用することができる。
【0008】
モデル・コンポーネントは、極めて複雑であり、したがって、実行するのに時間がかかる。芸術的効果の高いキャラクタ・アニメーションを作成するのに、アニメ制作者は、しばしば、シーンの大まかなバージョンを作成し、次に、キャラクタ・アニメーションを繰り返し微調整して、最終的シーンの所望のドラマや表現を作成する。アニメ制作者がキャラクタ・モデルにポーズを与え、ポーズ変更行うにつれ、モデル・コンポーネントを実行するのに必要とされる時間により、アニメ制作者の効率が妨げられる可能性がある。最悪ケースでは、アニメ制作者は、単純化された「スタンドイン」キャラクタ・モデルを使用して、初期アニメーションを作成し、次に、最終的なキャラクタ・モデルで結果のアニメーションがどうなるか見守ることを余儀なくされることがある。その状況では、アニメ制作者は、基本的に、盲目的に作業しており、最終結果を推測することしかできない。反対に、妥当な時間内でモデル・コンポーネントを処理するのに必要とされる追加の計算リソースは、可能であったとしても、アニメーションを作成することの費用を大幅に増加させる。
【発明の開示】
【発明が解決しようとする課題】
【0009】
したがって、過度の計算リソースを消費することなしに、妥当な時間内でモデル・コンポーネントを実行することができるように、モデル・コンポーネントのパフォーマンスを最適化するシステムと方法が望ましい。また、モデル・コンポーネントの機能または複雑さに関わらず、任意のタイプのモデル・コンポーネントを最適化できることが、さらに望ましい。
【課題を解決するための手段】
【0010】
モデル・コンポーネントを使用してキャラクタ・モデルにポーズを与えて、様々な現実感のある芸術的な効果を生じさせることができる。本発明の実施態様は、モデル・コンポーネントの挙動を分析して、そのモデル・コンポーネントの出力を忠実に近似するモデル・コンポーネントの統計的表現を算出する。モデル・コンポーネントの統計的表現は、元のモデル・コンポーネントよりも高速に実行されるので、キャラクタ・モデルにポーズを与えるのに使用されるモデル・コンポーネントを、モデル・コンポーネントの等価の統計的表現でアニメーション時に置き換えて、アニメーション・パフォーマンスを向上させることができる。モデル・コンポーネントの統計的表現は、一組の代表的な訓練ポーズを介して操作されるキャラクタ・モデルの分析から導出される。モデル・コンポーネントの統計的表現は、アニメーション変数の非線形結合によって制御される一組のポーズ誤差に加算される、ポーズが与えられたフレーム位置の重み付けされた結合から成る。
【0011】
本発明の実施態様では、モデル・コンポーネントを使用して、キャラクタ・モデルの少なくとも一部分をあるポーズに操作する方法は、モデル・コンポーネントから、ベークされたコンポーネント(baked component)と呼ばれる統計的表現を作成することを含む。本方法は、ベークされたコンポーネントに関連するキャラクタ・モデルの一部分を識別し、ポーズから、キャラクタ・モデルの一組のポイントの一組の幾何学的にポーズが与えられた位置を算出する。また、本方法は、ベークされたコンポーネントとポーズから、キャラクタ・モデルのその一組のポイントに関連する一組のポーズ誤差を予測することも行う。その一組のポーズ誤差のそれぞれにより、幾何学的にポーズが与えられた位置からのポイントの変位が指定される。操作されたキャラクタ・モデルは、次に、その一組のポーズ誤差を、その一組のポイントのその一組の幾何学的にポーズが与えられた位置に適用することによって形成される。
【0012】
さらなる実施態様では、ポーズに関連するキャラクタ・モデルの部分は、キャラクタ・モデルのその部分に影響を与える少なくとも1つの基準フレームによって識別される。さらに、ある実施態様は、ポーズを、少なくとも一部は、一組のアニメーション変数によって定義する。さらなる実施態様では、関節回転角度などのアニメーション変数は、デフロブレート(defrobulate)された形態で表現される。さらに、その一組のポーズ誤差により、幾何学的にポーズが与えられた位置からのポイントの単一の変位、あるいは時間にともなうポイントの一続きの変位が指定されることが可能である。
【0013】
別の実施態様では、ベークされたコンポーネントは、モデル・コンポーネントに関連するキャラクタ・モデルの少なくとも一部分を識別することにより、モデル・コンポーネントから作成される。この実施態様は、次に、一組の訓練ポーズのそれぞれを介してキャラクタ・モデルを操作する。その一組の訓練ポーズは、一組の入力によって定義され、キャラクタ・モデルのある範囲の動きを表す。一組の訓練ポーズから、実施態様は、キャラクタ・モデルの少なくとも1つのポイントに関する一組の訓練ポーズ誤差を算出し、次に、一組の訓練ポーズ誤差を分析して、一組の入力と一組の訓練ポーズ誤差の間の関係を算出する。さらなる実施態様では、一組のポーズ誤差を分析することは、一組の入力に対する一組の訓練ポーズ誤差の回帰分析を実行することを含む。
【0014】
ベークされたコンポーネントを作成するさらなる実施態様では、一組の入力には、一組のアニメーション変数が含まれる。その一組のアニメーション変数の一部は、defrobuateが行われた形態で表現された関節回転角度である。さらに、一組の訓練ポーズ誤差のそれぞれは、幾何学的にポーズが与えられた位置から、モデル・コンポーネントによって指定された少なくとも1つの位置までの、キャラクタ・モデルのポイントの位置の少なくとも1つの差である。その一組のポーズ誤差のそれぞれにより、ポイントの単一の変位、あるいは幾何学的にポーズが与えられた位置から、モデル・コンポーネントによって指定された、時間につれての一組の位置までの、キャラクタ・モデルのポイントの時間につれての位置の一続きの差が指定されることが可能である。
【発明を実施するための最良の形態】
【0015】
本発明を、図面を参照して説明する。
【0016】
図1は、本発明の実施形態を実施するのに適したコンピュータ・システムのブロック図を示す。図1は、本発明の実施形態を実施することができる典型的なコンピュータ・システム100を示す。コンピュータ・システム100は、通常、モニタ110、コンピュータ120、キーボード130、ユーザ入力デバイス140、ネットワーク・インターフェース150を含む。ユーザ入力デバイス140には、コンピュータ・マウス、トラックボール、トラックパッド、グラフィックス・タブレット、タッチスクリーン、および/またはモニタ110上に現れるグラフィックス、オブジェクト、アイコン、および/またはテキストをユーザが作成する、または選択することを可能にする他の有線または無線の入力デバイス群が含まれる。ネットワーク・インターフェース150の諸実施形態は、通常、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、例えば、インターネット、および/または仮想ネットワーク、例えば、仮想プライベート・ネットワーク(VPN)などの電子通信ネットワークとの、有線または無線の通信を提供する。
【0017】
コンピュータ120は、通常、1つまたは複数の汎用プロセッサ160、ランダム・アクセス・メモリ(RAM)170などのメモリ記憶装置群、ディスク・ドライブ群180、さらに以上のコンポーネントと互いに接続するシステム・バス190を含む。RAM170やディスク・ドライブ180は、データ、オーディオ/ビデオ・ファイル、コンピュータ・プログラム、アプレット・インタープリタまたはアプレット・コンパイラ、仮想マシンを格納するための実体のある媒体の例であり、本明細書で説明する発明の諸実施形態は、幾何学的シーン・データ、オブジェクト・データ・ファイル、シェーダ記述子、レンダリング・エンジン、出力イメージ・ファイル、テクスチャ・マップ、変位マップを含む。コンピュータ120のさらなる諸実施形態は、オーディオ・データやグラフィックス・データを処理し、出力するための専用のオーディオ・サブシステムとビデオ・サブシステムを含むことが可能である。他のタイプの実体のある媒体には、フロッピー・ディスク、リムーバブルなハード・ディスク、DVD−ROM、CD−ROM、バーコードなどの光記憶媒体、フラッシュメモリなどの不揮発性メモリ・デバイス、読取り専用メモリ(ROM)、バッテリ・バックアップ付き揮発性メモリ、ネットワーク化された記憶装置が含まれる。
【0018】
図2は、関節キャラクタ・モデル200上の典型的なポイントのポーズが与えられた位置を算出するモデル・コンポーネントの従来の使用を示す。図2は、キャラクタ・モデル200の肩と腕の領域の一部分を示す。ある実施形態では、キャラクタ・モデル200は、オブジェクトの3次元コンピュータ・モデルであるが、図では、明瞭にするため、2次元で示されている。さらに、キャラクタ・モデル200は、人間型の形状であるように示されているが、キャラクタ・モデル200は、植物や動物だけでなく、現実感のある属性および/または擬人化された属性を有する無生物のオブジェクトを含め、任意の種類のオブジェクトの形態をとることが可能である。
【0019】
キャラクタ・モデル200は、3次元モデリング・ソフトウェア内の手作業の構築、手続きオブジェクト作成、物理的オブジェクトの3次元スキャンを含め、3次元コンピュータ・モデルを作成するのに使用される任意のやり方で作成することができる。キャラクタ・モデル200は、ベジエ面または非一様有理Bスプライン(NURBS)、コンストラクティブ・ソリッド・ジオメトリ(CSG)、および/または3次元オブジェクトを表現するための他の任意の技術などの、1組のポリゴン、ボクセル、高次曲面から成ることが可能である。さらに、キャラクタ・モデル200は、色、テクスチャ、材料特性、透明度、反射率、照明・シェーディング属性、変位マップ、バンプ・マップを含め、オブジェクトの外観を定義する属性を含むことが可能である。
【0020】
キャラクタ・モデル200は、アーマチュア205を介してアニメ化される。アーマチュア205は、1つまたは複数のアーマチュア・セグメントを含む。図2では、アーマチュア205は、キャラクタ・モデル200の上腕のポーズを表すのに使用される。アニメ制作者は、アーマチュア205のセグメントの位置と向きを操作して、キャラクタ・モデル200のポーズを定義する。
【0021】
アーマチュア・セグメントは、サイズ、位置、または向きが制約されか、またはアニメ制作者によって自由に操作される。アーマチュア・セグメントの数は、キャラクタの複雑さに応じて異なり、通常のキャラクタは、数百または数千のセグメントを有するアーマチュアを有することが可能である。一部のケースでは、アーマチュア・セグメントの数と位置は、キャラクタに関する「スケルトン」のものと同様であるが、アーマチュア・セグメントは、微妙な顔の表情、ならびに骨、またはその他の解剖学上の特徴に必ずしも関連しない、その他のキャラクタ詳細も定義することができる。さらに、図2のアーマチュア205におけるアーマチュア・セグメントは、一組のライン・セグメントから成るが、本発明の代替の諸実施形態では、アーマチュア・セグメントは、一組の表面、および/または一組のボリュームから成ることが可能である。
【0022】
キャラクタ・モデル205は、キャラクタ・モデル200が、1つのポーズから別のポーズに漸進的に動かされる、フレームの、つまり静止イメージのシーケンスを作成することにより、アニメ化される。また、キャラクタ・モデル200は、並進させる、回転させる、拡大縮小することができ、またはフレーム間で全体としてそれ以外の形で操作することもできる。アニメ制作者は、シーケンス内の各フレームに関して、キャラクタ・モデル200のポーズを手作業で作成することができ、あるいは2つ以上のキー・フレームに関するポーズを作成して、次に、それらのフレームをアニメーション・ソフトウェアによって補間して、各フレームに関するポーズを作成することが可能である。また、関数、手続き、またはアルゴリズムを使用して、ポーズを自動的に作成することも可能である。
【0023】
ポーズのすべて、または一部が、アニメ制作者によって手作業で作成されるか、または関数、手続き、またはアルゴリズムを使用して自動的に作成されるかに関わらず、キャラクタ・モデル200のポーズは、一組のアニメーション変数によって定義できる。1つのタイプのアニメーション変数により、関節と呼ばれる原点を中心とするアーマチュア・セグメントの回転角度が指定される。図2では、アーマチュア205の上腕セグメントが、関節210を中心に回転させられる。関節210を中心とするアーマチュア205の上腕セグメントの回転は、アニメーション変数215、217、219、221で指定される。この例では、アニメーション変数215、217、219、221の各々により、座標軸を中心とする回転が指定される。
【0024】
キャラクタ・モデル200のポイントの位置は、少なくともある程度、モデル・コンポーネント230によって算出される。ある実施形態では、関節210に関連するアニメーション変数215、217、219、221を含むことが可能なアニメーション変数225が、モデル・コンポーネント230に入力される。すると、モデル・コンポーネント230は、入力されたアニメーション変数群から、キャラクタ・モデル200の1つまたは複数のポイントの位置を算出する。モデル・コンポーネント230は、任意のタイプのデータ処理の関数、手続き、またはアルゴリズムを使用して、皮膚の層、骨の層、脂肪の層、筋肉の層のシミュレーション;動的な布地シミュレーション;スカルプト・シェープ;メタボール;物理学シミュレーションを含むが、以上には限定されない、キャラクタ・モデル200のポイントの位置を算出することができる。モデル・コンポーネントを使用して、キャラクタ・モデルの表面上のポイント、キャラクタ・モデル200の内部に含まれるポイント、および/またはキャラクタ・モデル200の外部のポイントに関して、キャラクタ・モデル200の形状寸法、または他の属性の構成を算出することができる。
【0025】
図2では、モデル・コンポーネント230は、キャラクタ・モデル200のポイント240、250の位置を算出する。モデル・コンポーネント230の出力235により、ポイント240の位置が指定される。同様に、モデル・コンポーネント230の出力245により、ポイント250の位置が指定される。ポイント240、250の位置は、ベース位置、つまり静止位置におけるキャラクタ・モデル200からの変位としてモデル・コンポーネント230によって指定されることが可能である。
【0026】
代替として、キャラクタ・モデルの諸部分は、近くのアーマチュア・セグメントに従って回転させられて、幾何学的にポーズが与えられたキャラクタ・モデル260を形成することも可能である。幾何学的にポーズが与えられたキャラクタ・モデルは、1つまたは複数の幾何学オペレーションを使用して、静止の向き、つまりポーズが与えられていない向きから、ポーズが与えられた向きに変換される。幾何学オペレーションには、キャラクタ・モデルの諸部分の並進、拡大縮小、回転、その他の類似した操作、さらにはそれらのオペレーションの重み付けされた結合、または重み付けされていない結合が含まれる。また、幾何学オペレーションには、キャラクタ・モデルのポイントをキャラクタ・モデルの表面から射影することも含まれることが可能である。モデル・コンポーネント230の出力235、245により、次に、ポイント240、250の、幾何学的にポーズが与えられたキャラクタ・モデル260上の位置からのさらなる変位が指定される。以下に詳細に説明するとおり、モデル・コンポーネントにより、キャラクタ・モデル上のポイントの位置がどのように指定されるかにかかわらず、ベークされたコンポーネントを、幾何学的にポーズが与えられたキャラクタ・モデルと併せて使用して、モデル・コンポーネントを近似することができる。
【0027】
多くのタイプのモデル・コンポーネントの複雑さにより、キャラクタ・モデルにポーズを与えることは、時間がかかり、計算リソースを多く使用することになる。前述したとおり、これにより、アニメ制作者の、キャラクタ・アニメーションを微調整して、所望のドラマや表現をもたらす能力が妨げられる。本発明のある実施形態は、キャラクタ・モデルにポーズを与えるのに使用される各モデル・コンポーネントの統計的表現を作成することにより、モデル・コンポーネントのパフォーマンスを最適化する。ベークされたコンポーネントと呼ばれるモデル・コンポーネントの統計的表現は、大幅に短縮された実行時間で、モデル・コンポーネントの挙動を忠実に近似する。さらに、ベークされたコンポーネントは、あらゆるタイプのモデル・コンポーネントの挙動を近似するのに使用することができる。このため、キャラクタ・モデルにポーズを与えるのに使用されるモデル・コンポーネントを等価のベークされたコンポーネントで置き換えて、実行パフォーマンスを向上させ、キャラクタ・モデルにポーズを与える際に必要とされる計算リソースを減らすことができる。
【0028】
図3は、本発明の実施形態による、関節キャラクタ・モデル上のポイントのポーズが与えられた位置を算出するベークされたコンポーネントの使用を示す。キャラクタ・モデル300が、図3では、キャラクタ・モデル300の上腕のポーズを表す、アーマチュア305を介してアニメ化される。アニメ制作者が、アーマチュア305のセグメントの位置と向きを操作して、キャラクタ・モデル300のポーズを定義する。
【0029】
キャラクタ・モデル300のポーズは、関節310を中心とするアーマチュア305の上腕セグメントの回転を指定する、アニメーション変数315、317、319、321を含む、一組のアニメーション変数で定義されることが可能である。キャラクタ・モデル300のポイントの位置は、少なくともある程度、モデル・コンポーネント333によって算出されることが可能である。しかし、本発明のある実施形態は、モデル・コンポーネント333の挙動を近似する、対応する一組のベークされたコンポーネント330で、モデル・コンポーネント333を置き換えることにより、ポーズが与えられたキャラクタ・モデルを作成するのに必要な実行時間を短縮する。ベークされたコンポーネント330は、モデル・コンポーネント333から導出される。ベークされたコンポーネント330は、任意のタイプのデータ処理の関数、手続き、またはアルゴリズムを近似して、皮膚の層、骨の層、脂肪の層、筋肉の層のシミュレーション;動的な布地シミュレーション;スカルプト・シェープ;メタボール;物理学シミュレーションを含むが、以上には限定されない、キャラクタ・モデル300のポイントの位置を算出することができる。
【0030】
ある実施形態では、ベークされたコンポーネント330は、キャラクタ・モデル300にポーズを与えるのに先立って、モデル・コンポーネント333から導出することができる。さらに、モデル・コンポーネント333から導出されると、ベークされたコンポーネント330は、キャラクタ・モデル300の複数のポーズを算出するのに繰り返し使用することができる。
【0031】
ある実施形態では、関節310に関連するアニメーション変数315、317、319、321を含むアニメーション変数325が、ベークされたコンポーネント330に入力される。すると、ベークされたコンポーネント330は、入力されたアニメーション変数325から、キャラクタ・モデル200の1つまたは複数のポイントの位置を算出する。
【0032】
図3では、ベークされたコンポーネント330は、キャラクタ・モデル300のポイント340、350の位置を算出する。モデル・コンポーネント330の出力335により、ポイント340の位置が指定される。同様に、モデル・コンポーネント330の出力345により、ポイント350の位置が指定される。ポイント340、350の位置を、モデル・コンポーネント230によって、ベース位置、つまり静止位置におけるキャラクタ・モデル300からの変位として、または代替として、ポイント340、350の、幾何学的にポーズが与えられたキャラクタ・モデル360上の位置からの変位として指定するることができる。
【0033】
前述したとおり、ベークされたコンポーネントは、キャラクタ・モデルにポーズを与えるのに先立って、モデル・コンポーネントから導出することができる。さらに、ベークされたコンポーネントが計算されると、そのベークされたコンポーネントを使用して、キャラクタ・モデルに繰り返しポーズを与えることができる。このため、図4は、本発明の実施形態による、ポーズが与えられたキャラクタ・モデルを作成するための方法400の2つの段階を示す。第1の段階410では、ベークされたコンポーネントが、キャラクタ・モデルにポーズを与えるのに先立って、モデル・コンポーネントから導出される。ベークされたコンポーネントの作成に続き、第2の段階420で、そのベークされたコンポーネントを使用して、ポーズが与えられたキャラクタ・モデルを作成することができる。本発明のある実施形態は、第2の段階420を繰り返して、ベークされたコンポーネントを再作成することなしに、キャラクタ・モデルの追加のポーズを生成することができる。
【0034】
第1の段階410のある実施形態では、ベークされたコンポーネントは、訓練セットと呼ばれるセットの訓練ポーズにおけるキャラクタ・モデルを分析することにより、作成される。図5は、本発明の実施形態による、関節キャラクタ・モデルに関連するモデル・コンポーネントからベークされたコンポーネントを作成するための方法500を示す。
【0035】
ステップ505は、モデル・コンポーネントに関連するアニメーション変数と一組の基準フレームを識別する。識別されるアニメーション変数は、モデル・コンポーネントに入力される、キャラクタ・モデルにポーズを与えるのに使用される一組のアニメーション変数の部分である。基準フレームは、モデル・コンポーネントの出力による影響を受けるキャラクタ・モデルの諸領域を定義する。ある実施形態では、各基準フレームは、1つまたは複数のアーマチュア・セグメントと、キャラクタ・モデルの隣接する部分に関する局所座標系を定義する。モデル・コンポーネントに関連する一組の基準フレームに関して、1つのフレームが、親フレームとして選択される。
【0036】
ある実施形態では、座標基準フレームは、次の4つのベクトルから構成される。すなわち、座標基準フレームの原点、つまり位置を定義する第1のベクトルと、座標基準フレームの座標軸を定義する3つのベクトルである。キャラクタ・モデルのポイントのそれぞれは、一組の基準フレーム重みを介して、1つまたは複数の基準フレームに関連付けられる。一組の基準フレーム重みにより、所与のポイント上における1つまたは複数の基準フレームの動きの影響の重み付き平均が定義される。ある実施形態では、関連する基準フレームとアニメーション変数は、手作業で算出される。代替として、モデル・コンポーネントの分析により、入力として使用されるアニメーション変数とモデル・コンポーネントの出力による影響を受ける可能性がある、キャラクタ・モデルの一組のポイントが、したがって、基準フレームが、算出される。
【0037】
図6A〜図6Cは、本発明の実施形態による、典型的な関節キャラクタ・モデルに関連するモデル・コンポーネントからベークされたコンポーネントを作成するための方法の典型的な応用例を示す。図6Aは、キャラクタ・モデル605にポーズを与える際に使用される典型的なキャラクタ・アーマチュア600を示す。アーマチュア600は、アーマチュア600の右下脚に関連する基準フレーム607や、アーマチュア600の右肩に関連する基準フレーム609などの、いくつかの基準フレームを含む。各基準フレームは、1つまたは複数のアーマチュア・セグメントとキャラクタ・モデル605の隣接する部分に関連する。例えば、基準フレーム611は、キャラクタ・モデル605の胴の領域に関連し、基準フレーム613は、キャラクタ・モデル605の左肩部分に関連し、基準フレーム615および617は、キャラクタ・モデル605の左上腕および左下腕にそれぞれ関連する。
【0038】
ステップ505で、モデル・コンポーネントに関連する基準フレームとアニメーション変数が識別される。例えば、キャラクタ・モデル605の腕の変形を算出するのに使用される筋肉変形モデル・コンポーネントは、一組の基準フレーム611、613、615、617と、それらの基準フレーム内のアーマチュア・セグメントにポーズを与えるのに使用されるアニメーション変数に関連する。
【0039】
ステップ510で、キャラクタ・モデルに、一組の訓練ポーズに従ってポーズが与えられる。各訓練ポーズは、典型的な値に設定された、識別された一組のアニメーション変数の結果である。訓練ポーズのセットは、理想的には、モデル・コンポーネントに関連するキャラクタ・モデルの部分に関する動きの通常の範囲を対象として含む。ある実施形態では、訓練セットの中のポーズの数は、モデル・コンポーネントに関連する、異なる基準フレームの数を超えないにしても、少なくともその数と一致する。実施形態では、通常のキャラクタ・モデルは、数千のポーズを含む訓練セットを有することが可能である。
【0040】
ある実施形態では、キャラクタ・モデルのポイントには、訓練セットの各ポーズに関して、幾何学的にポーズが与えられる。キャラクタ・アーマチュアの諸部分の動きまたはポーズにより、関連する基準フレームも動かされる。幾何学的ポーズにより、モデル・コンポーネントからの変位なしに、関連する基準フレームのポーズが与えられた位置に従って、キャラクタ・モデルのポイントが動かされる。ステップ510は、各訓練ポーズに関して、アニメーション変数の値や、モデル・コンポーネントによって影響される可能性があるキャラクタ・モデルのポイントの対応する位置を記録する。ある実施形態では、キャラクタ・モデル・ポイントのポーズが与えられた位置は、その一組の基準フレームの各フレーム内で表現される。一組のアニメーション変数値とキャラクタ・モデル・ポイントの対応する諸部分は、一組のサンプル・データを含む。
【0041】
図6Aの例に続いて、図6Bは、ステップ510によって要求されるとおり、キャラクタ・モデルの左腕に関連する、一組の基準フレームとアニメーション変数に関する典型的な一組の訓練ポーズ620を示す。訓練セット620は、モデル・コンポーネントに関連するキャラクタ・モデルの部分をそれぞれが操作して、異なるポーズにさせる、訓練ポーズ622、624、626、628、630、632を含む。ステップ510の典型的な応用例では、各訓練ポーズに関する、アニメーション変数の値とキャラクタ・モデルの幾何学的にポーズが与えられたポイントが記録されて、一組のサンプル・データが形成される。
【0042】
ステップ515は、その一組のサンプル・データを分析して、一組の最適なフレーム基底関数を算出する。ポイントのポーズが与えられた位置を表現する一組のサンプル・データの部分が結合されて、行列が形成され、その行列の単一値分解が計算されて、一組のサンプル・データに関する一組のフレーム基底関数が求められる。代替の諸実施形態では、標準相関などの、一組のフレーム基底関数を計算する他の方法も使用することができる。その一組のフレーム基底関数を使用して、一組のサンプルにおけるモデル・ポイントの位置を最小2乗で最適に表現することができる。最適な一組のフレーム基底関数を算出することにより、一組のサンプル・データをより簡潔に表現することが可能になり、方法500の後続のステップで分析されるデータの量を最小限に抑えられる。ある実施形態では、ステップ515は、その一組のフレーム基底関数を使用して、一組のサンプル・データを分解して、最適化された一組のサンプル・データを算出する。しかし、ステップ515は、オプションであり、方法500の代替の実施形態は、ステップ515を飛び越して、サンプル・データの最初の組に対して後続のステップを実行する。
【0043】
ステップ520は、サンプル・データの最適化された組からの一組のポーズ誤差を算出する。ある実施形態では、所与のポーズに関するポーズ誤差は、キャラクタ・モデルのポイントの幾何学的にポーズが与えられた位置を、同一の一組のアニメーション変数に関するモデル・コンポーネントからの対応する位置出力と比較することによって算出される。所与のポーズにおけるキャラクタ・モデル・ポイントに関するポーズ誤差は、モデル・コンポーネントによって出力されるポイントの位置と幾何学的にポーズが与えられた位置の間の差である。さらなる実施形態では、モデル・コンポーネントから出力されるポイントの位置は、時間とともに変化する。この実施形態では、所与の訓練ポーズにおけるポイントに関するポーズ誤差は、時間につれてのモデル・コンポーネント出力と、ポイントの幾何学的にポーズが与えられた位置との間における一続きの差である。訓練セットにおける各訓練ポーズについて、モデル・コンポーネントによる影響を受ける可能性があるキャラクタ・モデルの各ポイントに関するポーズ誤差が算出される。
【0044】
別の実施形態では、幾何学的にポーズが与えられたキャラクタ・モデルは、キャラクタ・モデルの「皮膚」の位置を定義する。モデル・コンポーネントは、その皮膚に対するポイントの位置を定義する。例えば、布地シミュレーション・モデル・コンポーネントは、キャラクタ・モデルの皮膚に対するキャラクタ・モデルの衣服上のポイントの位置を定義することができる。この実施形態では、幾何学的にポーズが与えられたキャラクタ・モデルは、ポーズ誤差の方向または向きを定義し、モデル・コンポーネントの出力は、その向きに沿ったポーズ誤差を定義する。
【0045】
ある実施形態では、各ポイントに関するポーズ誤差を表す一組のフレーム重みが使用される。各ポイントに関するポーズ誤差は、ステップ505で選択された親基準フレームに変換される。親基準フレームから、各ポイントに関するポーズ誤差に、そのポイントに関連する一組の基準フレーム重みに従って重みが付けられ、ステップ515で算出されたフレーム基底関数に従って親基準フレームから各基準フレームに変換される。親基準フレームからその別の基準フレーム群にポーズ誤差を変換し、分散させることにより、キャラクタ・モデルの各ポイントに関連するポーズ誤差は、関連する基準フレームと一緒に動く。
【0046】
図6Aおよび図6Bの例に続いて、図6Cは、典型的な訓練ポーズに関するポーズ誤差の算出を示す。アニメーション変数640、642、644、646を含む、訓練ポーズを定義するアニメーション変数が、モデル・コンポーネントに入力されて、ポーズが与えられたキャラクタ・モデル650が算出される。ポイント652、654を含むキャラクタ・モデルのポイントの位置が、幾何学的にポーズが与えられたキャラクタ・モデル648上の対応する位置と比較される。ポーズ誤差656、658は、ポーズが与えられたキャラクタ・モデル650および幾何学的にポーズが与えられたキャラクタ・モデル648のそれぞれの上のポイント652とポイント654の間における位置の差である。
【0047】
ステップ525は、ポーズ誤差の完全な一組を分析して、モデル・コンポーネントの挙動を忠実に近似するベークされたコンポーネントを算出する。ある実施形態では、統計回帰分析を使用して、キャラクタ・モデルのポイントに関するポーズ誤差が、アニメーション変数の関数として算出される。1つのインプリメンテーションでは、非線形の2次回帰分析が、一組のポーズ誤差に対して実行される。このインプリメンテーションでは、アニメーション変数は、分割アニメーション変数と呼ばれ、別々の回帰ステップと考えられる正の値と負の値に分割される。さらなるインプリメンテーションでは、正の分割アニメーション変数が、0を下回る場合、値は0に固定される。同様に、負の分割アニメーションも、0を超える場合、0に固定される。さらなる実施形態では、分割アニメーション変数と、分割アニメーション変数の平方根と、同一の関節に関連するアニメーション変数である隣接する分割アニメーション変数の積の平方根とがすべて、回帰分析において使用されて、モデル・コンポーネントの出力を近似する関数が算出される。
【0048】
さらなる実施形態では、関節回転を表すアニメーション変数が、デフロブレートされた形態(defrobulated form)に変換されて、視覚的な不連続の外観が防止される。通常の角度表現とは異なり、デフロブレートされた角度は、関節の動きの通常の範囲内で角の不連続を全く有さない。一部の応用例では、デフロブレートされた角度は、通常、例えば、デフロブレートされた角度にジンバル・ロックがなく、関節の動きの通常の範囲にわたって連続的であることに起因して、モデル・コンポーネントの出力とより高い度合いの統計的相関を示す。4角度の拡張オイラー(four angle extended Euler)形態から、対応するデフロブレートされたフォーマットへの関節角度の変換は、関連する仮出願、「Defrobulation」、弁護士整理番号21751−000900US、および出願、「Defrobulated Angles for Character Joint Representation」、弁護士整理番号21751−000910USで説明されている。
【0049】
デフロブレートされた角度フォーマットを要約すると、右回りの角度回転形態(x,y,z,x)に対応する標準の4つの角度回転(tw,a,b,c)として表される関節回転が、一組の射影、xp=cos(a)cos(b)、yp=cos(c)sin(a)+sin(c)sin(b)cos(a)、zp=sin(c)sin(a)−cos(c)sin(b)cos(a)に変換されることである。その一組の射影、xp、yp、、zpから、弦角度chが、ch=acos(xp)として決まる。弦角度chを中間値として使用して、デフロブレートされた一組の角度(q,r,et)が算出される。ある実施形態では、q=ch*ypかつr=ch*zpである。基本ツイスト、etは、以下のとおり定義される。すなわち、
【数1】
【0050】
本発明のある実施形態への応用では、関節回転を表し、既にデフロブレートされた形態になっていないアニメーション変数は、前述したとおり、デフロブレートされた形態に変換される。次に、デフロブレートされた形態のアニメーション変数を使用して、回帰分析が実行される。さらなる実施形態では、デフロブレートされたアニメーション変数は、正の値と負の値に分割され、別々の回帰ステップと考えられる。さらに、デフロブレートされたアニメーション変数、それらの変数の平方根、隣接するアニメーション変数の積の平方根を回帰分析に含めることができる。
【0051】
方法500で算出されたベークされたコンポーネントは、所望のポーズが、訓練セットの中に含まれていたかどうかに関わらず、任意の所望のポーズに関してキャラクタ・モデルにポーズを与える際に、モデル・コンポーネントの代わりに使用することができる。さらに、いくつかのベークされたコンポーネントの出力を結合して、キャラクタ・モデルのすべての部分、または1つまたは複数の部分のポーズを算出することができる。
【0052】
図7は、本発明の実施形態による、ベークされたコンポーネントから関節キャラクタ・モデル上のポイントのポーズが与えられた位置を算出するための方法700を示す。ある実施形態では、一組のアニメーション変数によって定義される所望のキャラクタ・モデル・ポーズに関して、ステップ705は、ベークされたコンポーネントに関連するその一組のアニメーション変数の一部を算出する。ある実施形態では、関連するアニメーション変数と呼ばれる一組のアニメーション変数のその一部は、ベークされたコンポーネントの出力と統計的相関を有するアニメーション変数である。さらに、ステップ705は、ベークされたコンポーネントに関連する基準フレームを算出する。
【0053】
図8A〜図8Cは、本発明の実施形態による、ベークされたコンポーネントから関節キャラクタ・モデル上のポイントのポーズが与えられた位置を算出するための方法の典型的な応用例を示す。図8A〜図8Cの例では、ベークされたコンポーネントは、所望のポーズのためにキャラクタ・モデルの左腕の変形を算出するのに使用される、筋肉ディフォーマ(deformer)のオペレーションを表す。図8Aは、ステップ705の実施形態によって要求される、所望のポーズのための典型的なベークされたコンポーネントに関連する一組の基準フレームの選択を示す。キャラクタ・アーマチュア800が、一組のアニメーション変数に応じて操作されて、所望のポーズにされている。ステップ705は、ベークされたコンポーネントに関連する一組のアニメーション変数の一部分を識別する。さらに、ベークされたコンポーネントによる影響を受ける、基準フレーム805、810、815、820などの基準フレームも選択される。
【0054】
ステップ710で、キャラクタ・モデル、または代替として、ベークされたコンポーネントによる影響を受ける可能性のあるキャラクタ・モデルの諸部分に、関連するアニメーション変数に応じて、幾何学的にポーズが与えられる。キャラクタ・モデルには、当技術分野で知られている任意のやり方で幾何学的にポーズを与えることができる。
【0055】
図8Bは、ステップ710の実施形態によって要求される、キャラクタ・モデルのポイントの幾何学的にポーズが与えられた部分の算出を示す。図8Bでは、ステップ710は、アニメーション変数835、840、845、および850を含む、一組のアニメーション変数の部分に応じて、ベークされたコンポーネントによる影響を受けるキャラクタ・モデル830の部分にポーズを与える。一組のアニメーション変数のその部分を適用した結果は、幾何学的にポーズが与えられたキャラクタ・モデル855である。幾何学的にポーズが与えられたキャラクタ・モデルは、ポイント860、865を含む。
【0056】
さらに、ステップ715は、関連するアニメーション変数をベークされたコンポーネントに入力する。関節の角度に対応するアニメーション変数に関して、ある実施形態は、そのアニメーション変数を、ベークされたコンポーネントに入力されるデフロブレートされた形態に変換する。ベークされたコンポーネントの出力は、所望のポーズについての、キャラクタ・モデル上の少なくとも1つポイントに関するポーズ誤差である。ある実施形態では、ベークされたコンポーネントは、キャラクタ・モデル上の少なくとも1つのポイントに関して、ある期間にわたるポーズ誤差を表す、一続きのポーズ誤差値を出力する。
【0057】
一組の最適なセットのフレーム基底関数が使用されて、ベークされたコンポーネントを作成する際の一組のサンプル・データのサイズが縮小されている場合、ステップ720は、キャラクタ・モデルの各ポイントに関連するポーズ誤差に、その一組のフレーム基底関数を適用する。その結果、ポーズ誤差は、関連する基準フレーム群の中のコンポーネント値に分解される。
【0058】
ステップ725は、各ポイントに関するポーズ誤差を、幾何学的にポーズが与えられたキャラクタ・モデル上のポイントの位置に加算し、結果を結合して、ポーズが与えられたキャラクタ・モデルにする。ベークされたコンポーネントの使用からもたらされる、ポーズが与えられたキャラクタ・モデルは、同一の一組のアニメーション変数に関して、元のモデル・コンポーネントから生成される結果を忠実に近似する。
【0059】
図8Cは、ステップ715〜725の実施形態によって要求される、ベークされたコンポーネントによって出力されるポーズ誤差の、キャラクタ・モデルのポイントの幾何学的にポーズが与えられた位置への適用を示す。一組のアニメーション変数870の部分は、ベークされたコンポーネント875に入力されて、ポーズ誤差880、885を含む、一組のポーズ誤差が生成される。その一組のポーズ誤差は、ポイント860、865を含む、幾何学的にポーズが与えられたキャラクタ・モデルのポイントを、895、890のような新たな位置にそれぞれ移動させるのに使用される。キャラクタ・モデルのポイントの新たな位置は、元のモデル・コンポーネントの適用からもたらされる位置を忠実に近似する。
【0060】
前述した実施形態の1つまたは複数を使用して、ポーズが与えられたモデル、つまり変形されたモデルが作成されると、任意のレンダリング技術、例えば、レイ・トレーシングまたはスキャンライン・レンダリングが、照明、シェーディング、テクスチャ・マッピング、他の任意のイメージ処理情報と組み合わせて、モデルから、最終的なイメージまたはフレームを作成することができることに留意されたい。
【0061】
添付の文書を読んだ後、さらなる諸実施形態が、当業者には思い描かれよう。他の諸実施形態では、以上に開示した発明の組み合わせ、または部分的組み合わせが、有利に実施されることが可能である。アーキテクチャおよび流れ図のブロック図を、理解を容易にするためにグループ化している。しかし、ブロックの組み合わせ、新たなブロックの追加、ブロックの再構成などが、本発明の代替の諸実施形態において企図されることを理解されたい。
【0062】
本明細書および図面は、したがって、限定的ではなく、例示的であると見なされたい。しかし、特許請求の範囲に記載する本発明のより広い趣旨および範囲を逸脱することなく、様々な改変および変更を行うことができることが明白であろう。
【図面の簡単な説明】
【0063】
【図1】本発明の実施形態を実施するのに適したコンピュータ・システムを示すブロック図である。
【図2】関節キャラクタ・モデル上のポイントのポーズが与えられた位置を算出するモデル・コンポーネントの従来の使用を示す図である。
【図3】本発明の実施形態による、関節キャラクタ・モデル上のポイントのポーズが与えられた位置を算出する、ベークされたコンポーネントの使用を示す図である。
【図4】本発明の実施形態による、ポーズが与えられたキャラクタ・モデルを作成するための方法の2段階を示す図である。
【図5】本発明の実施形態による、関節キャラクタ・モデルに関連するモデル・コンポーネントからベークされたコンポーネントを作成するための方法を示す図である。
【図6A】本発明の実施形態による、典型的な関節キャラクタ・モデルに関連するモデル・コンポーネントからベークされたコンポーネントを作成するための方法の典型的な応用例を示す図である。
【図6B】本発明の実施形態による、典型的な関節キャラクタ・モデルに関連するモデル・コンポーネントからベークされたコンポーネントを作成するための方法の典型的な応用例を示す図である。
【図6C】本発明の実施形態による、典型的な関節キャラクタ・モデルに関連するモデル・コンポーネントからベークされたコンポーネントを作成するための方法の典型的な応用例を示す図である。
【図7】本発明の実施形態による、ベークされたコンポーネントから関節キャラクタ・モデル上のポイントのポーズが与えられた位置を算出するための方法を示す図である。
【図8A】本発明の実施形態による、ベークされたコンポーネントから関節キャラクタ・モデル上のポイントのポーズが与えられた位置を算出するための方法の典型的な応用例を示す図である。
【図8B】本発明の実施形態による、ベークされたコンポーネントから関節キャラクタ・モデル上のポイントのポーズが与えられた位置を算出するための方法の典型的な応用例を示す図である。
【図8C】本発明の実施形態による、ベークされたコンポーネントから関節キャラクタ・モデル上のポイントのポーズが与えられた位置を算出するための方法の典型的な応用例を示す図である。
【特許請求の範囲】
【請求項1】
キャラクタ・モデルにポーズを与えるのに使用されるモデル・コンポーネントの挙動を近似するベークされたコンポーネントを作成する方法であって、
前記モデル・コンポーネントに関連する前記キャラクタ・モデルの少なくとも一部分を識別するステップと、
前記キャラクタ・モデルの動きの範囲を表し、一組の入力によって定義される、一組の訓練ポーズの各ポーズを介して、前記キャラクタ・モデルを操作するステップと、
前記キャラクタ・モデルの少なくとも1つのポイントに関して、それぞれが、幾何学的にポーズが与えられた位置から、前記モデル・コンポーネントによって指定された少なくとも1つの位置までの、キャラクタ・モデルの前記ポイントの位置の少なくとも1つの差である前記一組の訓練ポーズから、一組の訓練ポーズ誤差を算出するステップと、
前記一組の訓練ポーズ誤差を分析して、前記一組の入力と前記一組の訓練ポーズ誤差の間の関係を算出するステップとを含む方法。
【請求項2】
前記モデル・コンポーネントに関連する前記キャラクタ・モデルの前記一部分は、前記モデル・コンポーネントに関連し、前記キャラクタ・モデルの前記一部分に影響を与える少なくとも1つの基準フレームによって識別される請求項1に記載の方法。
【請求項3】
前記一組の入力は、一組のアニメーション変数を含む請求項1に記載の方法。
【請求項4】
前記一組のアニメーション変数の一部分は、デフロブレートされた形態で表現された関節回転角度である請求項3に記載の方法。
【請求項5】
前記一組の訓練ポーズ誤差の各誤差は、前記幾何学的にポーズが与えられた位置から、前記モデル・コンポーネントによって指定された時間につれての一組の位置までの、前記キャラクタ・モデルの前記ポイントの、時間につれての一続きの位置の差である請求項1に記載の方法。
【請求項6】
前記一組の訓練ポーズ誤差は、前記訓練セットから算出された一組の基底関数を使用して表現される請求項1に記載の方法。
【請求項7】
分析するステップは、前記一組の入力に対する前記一組の訓練ポーズ誤差の回帰分析を実行するステップを含む請求項1に記載の方法。
【請求項8】
前記一組の入力は、別々の正の値の変数と負の値の変数に分割された一組のアニメーション変数を含む請求項7に記載の方法。
【請求項9】
ベークされたコンポーネントを使用して、キャラクタ・モデルの少なくとも一部分をポーズに操作する方法であって、
前記ポーズに関連する前記キャラクタ・モデルの一部分を識別するステップと、
前記ポーズから、前記キャラクタ・モデルの一組のポイントの一組の幾何学的にポーズが与えられた位置を算出するステップと、
前記ベークされたコンポーネントと前記ポーズから、前記キャラクタ・モデルの前記一組のポイントに関連する、幾何学的にポーズが与えられた位置からのポイントの変位をそれぞれが指定する、一組のポーズ誤差を予測するステップと、
前記一組のポイントの前記一組の幾何学的にポーズが与えられた位置に、前記一組のポーズ誤差を適用するステップとを含む方法。
【請求項10】
前記ポーズに関連する前記キャラクタ・モデルの前記一部分は、前記キャラクタ・モデルの前記一部分に影響を与える少なくとも1つの基準フレームによって識別される請求項9に記載の方法。
【請求項11】
前記ポーズは、少なくともある程度、一組のアニメーション変数によって定義される請求項9に記載の方法。
【請求項12】
前記一組のアニメーション変数の一部分は、デフロブレートされた形態で表現された関節回転角度である請求項11に記載の方法。
【請求項13】
前記一組のポーズ誤差の少なくとも1つの誤差は、時間につれての、幾何学的にポーズが与えられた位置からのポイントの一続きの変位を指定する請求項9に記載の方法。
【請求項14】
前記一組のポーズ誤差を適用するステップは、前記一組のポーズ誤差の各誤差を、一組の基底関数に関連する一組の基準フレームに変換するステップを含む請求項9に記載の方法。
【請求項15】
前記一組の基底関数は、訓練セットから算出される請求項14に記載の方法。
【請求項16】
モデル・コンポーネントを使用して、キャラクタ・モデルの少なくとも一部分をポーズに操作する方法であって、
前記モデル・コンポーネントからベークされたコンポーネントを作成するステップと、
前記ベークされたコンポーネントに関連する前記キャラクタ・モデルの一部分を識別するステップと、
前記ポーズから、前記キャラクタ・モデルの一組のポイントの一組の幾何学的にポーズが与えられた位置を算出するステップと、
前記ベークされたコンポーネントと前記ポーズから、前記キャラクタ・モデルの前記一組のポイントに関連する、幾何学的にポーズが与えられた位置からのポイントの変位をそれぞれが指定する、一組のポーズ誤差を予測するステップと、
前記一組のポイントの前記一組の幾何学的にポーズが与えられた位置に、前記一組のポーズ誤差を適用するステップとを含む方法。
【請求項17】
前記ポーズに関連する前記キャラクタ・モデルの前記一部分は、前記キャラクタ・モデルの前記一部分に影響を与える少なくとも1つの基準フレームによって識別される請求項16に記載の方法。
【請求項18】
前記ポーズは、少なくともある程度、一組のアニメーション変数によって定義される請求項16に記載の方法。
【請求項19】
前記一組のアニメーション変数の一部分は、デフロブレートされた形態で表現された関節回転角度である請求項18に記載の方法。
【請求項20】
前記一組のポーズ誤差の少なくとも1つの誤差は、時間につれての、幾何学的にポーズが与えられた位置からのポイントの一続きの変位を指定する請求項16に記載の方法。
【請求項21】
前記モデル・コンポーネントから前記ベークされたコンポーネントを作成するステップは、
前記モデル・コンポーネントに関連する前記キャラクタ・モデルの少なくとも一部分を識別するステップと、
前記キャラクタ・モデルの動きの範囲を表し、一組の入力によって定義される一組の訓練ポーズの各ポーズを介して、前記キャラクタ・モデルを操作するステップと、
前記キャラクタ・モデルの少なくとも1つのポイントに関して前記一組の訓練ポーズから、一組の訓練ポーズ誤差を算出するステップと、
前記一組の訓練ポーズ誤差を分析して、前記一組の入力と前記一組の訓練ポーズ誤差の間の関係を算出するステップとを含む請求項16に記載の方法。
【請求項22】
前記モデル・コンポーネントに関連する前記キャラクタ・モデルの前記一部分は、前記モデル・コンポーネントに関連し、前記キャラクタ・モデルの前記一部分に影響を与える少なくとも1つの基準フレームによって識別される請求項21に記載の方法。
【請求項23】
前記一組の入力は、一組のアニメーション変数を含む請求項21に記載の方法。
【請求項24】
前記一組のアニメーション変数の一部分は、デフロブレートされた形態で表現された関節回転角度である請求項23に記載の方法。
【請求項25】
前記一組の訓練ポーズ誤差の各誤差は、前記幾何学的にポーズが与えられた位置から、前記モデル・コンポーネントによって指定された少なくとも1つの位置までの、キャラクタ・モデルの前記ポイントの位置の少なくとも1つの差である請求項21に記載の方法。
【請求項26】
前記一組の訓練ポーズ誤差の各誤差は、前記幾何学的にポーズが与えられた位置から、前記モデル・コンポーネントによって指定された時間につれての一組の位置までの、前記キャラクタ・モデルの前記ポイントの、時間につれての一続きの位置の差である請求項25に記載の方法。
【請求項27】
前記一組の訓練ポーズ誤差は、前記訓練セットから算出された一組の基底関数を使用して表現される請求項21に記載の方法。
【請求項28】
分析するステップは、前記一組の入力に対する前記一組の訓練ポーズ誤差の回帰分析を実行するステップを含む請求項21に記載の方法。
【請求項29】
モデル・コンポーネントからベークされたコンポーネントを作成するステップと、
前記ベークされたコンポーネントに関連するキャラクタ・モデルの一部分を識別するステップと、
ポーズから、前記キャラクタ・モデルの一組のポイントの一組の幾何学的にポーズが与えられた位置を算出するステップと、
前記ベークされたコンポーネントと前記ポーズから、前記キャラクタ・モデルの前記一組のポイントに関連する、幾何学的にポーズが与えられた位置からのポイントの変位をそれぞれが指定する、一組のポーズ誤差を予測するステップと、
前記一組のポイントの前記一組の幾何学的にポーズが与えられた位置に、前記一組のポーズ誤差を適用するステップとを含むオペレーションを実行するよう、情報処理デバイスを導くように適合された複数の命令を有する情報記憶媒体。
【請求項30】
前記ポーズに関連する前記キャラクタ・モデルの前記一部分は、前記キャラクタ・モデルの前記一部分に影響を与える少なくとも1つの基準フレームによって識別される請求項29に記載の情報記憶媒体。
【請求項31】
前記ポーズは、少なくともある程度、一組のアニメーション変数によって定義される請求項29に記載の情報記憶媒体。
【請求項32】
前記一組のアニメーション変数の一部分は、デフロブレートされた形態で表現された関節回転角度である請求項31に記載の情報記憶媒体。
【請求項33】
前記一組のポーズ誤差の少なくとも1つの誤差は、時間につれての、幾何学的にポーズが与えられた位置からのポイントの一続きの変位を指定する請求項29に記載の情報記憶媒体。
【請求項34】
前記モデル・コンポーネントから前記ベークされたコンポーネントを作成するステップは、
前記モデル・コンポーネントに関連する前記キャラクタ・モデルの少なくとも一部分を識別するステップと、
前記キャラクタ・モデルの動きの範囲を表し、一組の入力によって定義される一組の訓練ポーズの各ポーズを介して、前記キャラクタ・モデルを操作するステップと、
前記キャラクタ・モデルの少なくとも1つのポイントに関して前記一組の訓練ポーズから、一組の訓練ポーズ誤差を算出するステップと、
前記一組の訓練ポーズ誤差を分析して、前記一組の入力と前記一組の訓練ポーズ誤差の間の関係を算出するステップとを含む請求項29に記載の情報記憶媒体。
【請求項35】
前記モデル・コンポーネントに関連する前記キャラクタ・モデルの前記一部分は、前記モデル・コンポーネントに関連し、前記キャラクタ・モデルの前記一部分に影響を与える少なくとも1つの基準フレームによって識別される請求項34に記載の情報記憶媒体。
【請求項36】
前記一組の入力は、一組のアニメーション変数を含む請求項34に記載の情報記憶媒体。
【請求項37】
前記一組のアニメーション変数の一部分は、デフロブレートされた形態で表現された関節回転角度である請求項36に記載の情報記憶媒体。
【請求項38】
前記一組の訓練ポーズ誤差の各誤差は、前記幾何学的にポーズが与えられた位置から、前記モデル・コンポーネントによって指定された少なくとも1つの位置までの、キャラクタ・モデルの前記ポイントの位置の少なくとも1つの差である請求項34に記載の情報記憶媒体。
【請求項39】
前記一組の訓練ポーズ誤差の各誤差は、前記幾何学的にポーズが与えられた位置から、前記モデル・コンポーネントによって指定された時間につれての一組の位置までの、前記キャラクタ・モデルの前記ポイントの、時間につれての一続きの位置の差である請求項38に記載の情報記憶媒体。
【請求項40】
前記一組の訓練ポーズ誤差は、前記訓練セットから算出された一組の基底関数を使用して表現される請求項34に記載の情報記憶媒体。
【請求項41】
分析するステップは、前記一組の入力に対する前記一組の訓練ポーズ誤差の回帰分析を実行するステップを含む請求項34に記載の情報記憶媒体。
【請求項1】
キャラクタ・モデルにポーズを与えるのに使用されるモデル・コンポーネントの挙動を近似するベークされたコンポーネントを作成する方法であって、
前記モデル・コンポーネントに関連する前記キャラクタ・モデルの少なくとも一部分を識別するステップと、
前記キャラクタ・モデルの動きの範囲を表し、一組の入力によって定義される、一組の訓練ポーズの各ポーズを介して、前記キャラクタ・モデルを操作するステップと、
前記キャラクタ・モデルの少なくとも1つのポイントに関して、それぞれが、幾何学的にポーズが与えられた位置から、前記モデル・コンポーネントによって指定された少なくとも1つの位置までの、キャラクタ・モデルの前記ポイントの位置の少なくとも1つの差である前記一組の訓練ポーズから、一組の訓練ポーズ誤差を算出するステップと、
前記一組の訓練ポーズ誤差を分析して、前記一組の入力と前記一組の訓練ポーズ誤差の間の関係を算出するステップとを含む方法。
【請求項2】
前記モデル・コンポーネントに関連する前記キャラクタ・モデルの前記一部分は、前記モデル・コンポーネントに関連し、前記キャラクタ・モデルの前記一部分に影響を与える少なくとも1つの基準フレームによって識別される請求項1に記載の方法。
【請求項3】
前記一組の入力は、一組のアニメーション変数を含む請求項1に記載の方法。
【請求項4】
前記一組のアニメーション変数の一部分は、デフロブレートされた形態で表現された関節回転角度である請求項3に記載の方法。
【請求項5】
前記一組の訓練ポーズ誤差の各誤差は、前記幾何学的にポーズが与えられた位置から、前記モデル・コンポーネントによって指定された時間につれての一組の位置までの、前記キャラクタ・モデルの前記ポイントの、時間につれての一続きの位置の差である請求項1に記載の方法。
【請求項6】
前記一組の訓練ポーズ誤差は、前記訓練セットから算出された一組の基底関数を使用して表現される請求項1に記載の方法。
【請求項7】
分析するステップは、前記一組の入力に対する前記一組の訓練ポーズ誤差の回帰分析を実行するステップを含む請求項1に記載の方法。
【請求項8】
前記一組の入力は、別々の正の値の変数と負の値の変数に分割された一組のアニメーション変数を含む請求項7に記載の方法。
【請求項9】
ベークされたコンポーネントを使用して、キャラクタ・モデルの少なくとも一部分をポーズに操作する方法であって、
前記ポーズに関連する前記キャラクタ・モデルの一部分を識別するステップと、
前記ポーズから、前記キャラクタ・モデルの一組のポイントの一組の幾何学的にポーズが与えられた位置を算出するステップと、
前記ベークされたコンポーネントと前記ポーズから、前記キャラクタ・モデルの前記一組のポイントに関連する、幾何学的にポーズが与えられた位置からのポイントの変位をそれぞれが指定する、一組のポーズ誤差を予測するステップと、
前記一組のポイントの前記一組の幾何学的にポーズが与えられた位置に、前記一組のポーズ誤差を適用するステップとを含む方法。
【請求項10】
前記ポーズに関連する前記キャラクタ・モデルの前記一部分は、前記キャラクタ・モデルの前記一部分に影響を与える少なくとも1つの基準フレームによって識別される請求項9に記載の方法。
【請求項11】
前記ポーズは、少なくともある程度、一組のアニメーション変数によって定義される請求項9に記載の方法。
【請求項12】
前記一組のアニメーション変数の一部分は、デフロブレートされた形態で表現された関節回転角度である請求項11に記載の方法。
【請求項13】
前記一組のポーズ誤差の少なくとも1つの誤差は、時間につれての、幾何学的にポーズが与えられた位置からのポイントの一続きの変位を指定する請求項9に記載の方法。
【請求項14】
前記一組のポーズ誤差を適用するステップは、前記一組のポーズ誤差の各誤差を、一組の基底関数に関連する一組の基準フレームに変換するステップを含む請求項9に記載の方法。
【請求項15】
前記一組の基底関数は、訓練セットから算出される請求項14に記載の方法。
【請求項16】
モデル・コンポーネントを使用して、キャラクタ・モデルの少なくとも一部分をポーズに操作する方法であって、
前記モデル・コンポーネントからベークされたコンポーネントを作成するステップと、
前記ベークされたコンポーネントに関連する前記キャラクタ・モデルの一部分を識別するステップと、
前記ポーズから、前記キャラクタ・モデルの一組のポイントの一組の幾何学的にポーズが与えられた位置を算出するステップと、
前記ベークされたコンポーネントと前記ポーズから、前記キャラクタ・モデルの前記一組のポイントに関連する、幾何学的にポーズが与えられた位置からのポイントの変位をそれぞれが指定する、一組のポーズ誤差を予測するステップと、
前記一組のポイントの前記一組の幾何学的にポーズが与えられた位置に、前記一組のポーズ誤差を適用するステップとを含む方法。
【請求項17】
前記ポーズに関連する前記キャラクタ・モデルの前記一部分は、前記キャラクタ・モデルの前記一部分に影響を与える少なくとも1つの基準フレームによって識別される請求項16に記載の方法。
【請求項18】
前記ポーズは、少なくともある程度、一組のアニメーション変数によって定義される請求項16に記載の方法。
【請求項19】
前記一組のアニメーション変数の一部分は、デフロブレートされた形態で表現された関節回転角度である請求項18に記載の方法。
【請求項20】
前記一組のポーズ誤差の少なくとも1つの誤差は、時間につれての、幾何学的にポーズが与えられた位置からのポイントの一続きの変位を指定する請求項16に記載の方法。
【請求項21】
前記モデル・コンポーネントから前記ベークされたコンポーネントを作成するステップは、
前記モデル・コンポーネントに関連する前記キャラクタ・モデルの少なくとも一部分を識別するステップと、
前記キャラクタ・モデルの動きの範囲を表し、一組の入力によって定義される一組の訓練ポーズの各ポーズを介して、前記キャラクタ・モデルを操作するステップと、
前記キャラクタ・モデルの少なくとも1つのポイントに関して前記一組の訓練ポーズから、一組の訓練ポーズ誤差を算出するステップと、
前記一組の訓練ポーズ誤差を分析して、前記一組の入力と前記一組の訓練ポーズ誤差の間の関係を算出するステップとを含む請求項16に記載の方法。
【請求項22】
前記モデル・コンポーネントに関連する前記キャラクタ・モデルの前記一部分は、前記モデル・コンポーネントに関連し、前記キャラクタ・モデルの前記一部分に影響を与える少なくとも1つの基準フレームによって識別される請求項21に記載の方法。
【請求項23】
前記一組の入力は、一組のアニメーション変数を含む請求項21に記載の方法。
【請求項24】
前記一組のアニメーション変数の一部分は、デフロブレートされた形態で表現された関節回転角度である請求項23に記載の方法。
【請求項25】
前記一組の訓練ポーズ誤差の各誤差は、前記幾何学的にポーズが与えられた位置から、前記モデル・コンポーネントによって指定された少なくとも1つの位置までの、キャラクタ・モデルの前記ポイントの位置の少なくとも1つの差である請求項21に記載の方法。
【請求項26】
前記一組の訓練ポーズ誤差の各誤差は、前記幾何学的にポーズが与えられた位置から、前記モデル・コンポーネントによって指定された時間につれての一組の位置までの、前記キャラクタ・モデルの前記ポイントの、時間につれての一続きの位置の差である請求項25に記載の方法。
【請求項27】
前記一組の訓練ポーズ誤差は、前記訓練セットから算出された一組の基底関数を使用して表現される請求項21に記載の方法。
【請求項28】
分析するステップは、前記一組の入力に対する前記一組の訓練ポーズ誤差の回帰分析を実行するステップを含む請求項21に記載の方法。
【請求項29】
モデル・コンポーネントからベークされたコンポーネントを作成するステップと、
前記ベークされたコンポーネントに関連するキャラクタ・モデルの一部分を識別するステップと、
ポーズから、前記キャラクタ・モデルの一組のポイントの一組の幾何学的にポーズが与えられた位置を算出するステップと、
前記ベークされたコンポーネントと前記ポーズから、前記キャラクタ・モデルの前記一組のポイントに関連する、幾何学的にポーズが与えられた位置からのポイントの変位をそれぞれが指定する、一組のポーズ誤差を予測するステップと、
前記一組のポイントの前記一組の幾何学的にポーズが与えられた位置に、前記一組のポーズ誤差を適用するステップとを含むオペレーションを実行するよう、情報処理デバイスを導くように適合された複数の命令を有する情報記憶媒体。
【請求項30】
前記ポーズに関連する前記キャラクタ・モデルの前記一部分は、前記キャラクタ・モデルの前記一部分に影響を与える少なくとも1つの基準フレームによって識別される請求項29に記載の情報記憶媒体。
【請求項31】
前記ポーズは、少なくともある程度、一組のアニメーション変数によって定義される請求項29に記載の情報記憶媒体。
【請求項32】
前記一組のアニメーション変数の一部分は、デフロブレートされた形態で表現された関節回転角度である請求項31に記載の情報記憶媒体。
【請求項33】
前記一組のポーズ誤差の少なくとも1つの誤差は、時間につれての、幾何学的にポーズが与えられた位置からのポイントの一続きの変位を指定する請求項29に記載の情報記憶媒体。
【請求項34】
前記モデル・コンポーネントから前記ベークされたコンポーネントを作成するステップは、
前記モデル・コンポーネントに関連する前記キャラクタ・モデルの少なくとも一部分を識別するステップと、
前記キャラクタ・モデルの動きの範囲を表し、一組の入力によって定義される一組の訓練ポーズの各ポーズを介して、前記キャラクタ・モデルを操作するステップと、
前記キャラクタ・モデルの少なくとも1つのポイントに関して前記一組の訓練ポーズから、一組の訓練ポーズ誤差を算出するステップと、
前記一組の訓練ポーズ誤差を分析して、前記一組の入力と前記一組の訓練ポーズ誤差の間の関係を算出するステップとを含む請求項29に記載の情報記憶媒体。
【請求項35】
前記モデル・コンポーネントに関連する前記キャラクタ・モデルの前記一部分は、前記モデル・コンポーネントに関連し、前記キャラクタ・モデルの前記一部分に影響を与える少なくとも1つの基準フレームによって識別される請求項34に記載の情報記憶媒体。
【請求項36】
前記一組の入力は、一組のアニメーション変数を含む請求項34に記載の情報記憶媒体。
【請求項37】
前記一組のアニメーション変数の一部分は、デフロブレートされた形態で表現された関節回転角度である請求項36に記載の情報記憶媒体。
【請求項38】
前記一組の訓練ポーズ誤差の各誤差は、前記幾何学的にポーズが与えられた位置から、前記モデル・コンポーネントによって指定された少なくとも1つの位置までの、キャラクタ・モデルの前記ポイントの位置の少なくとも1つの差である請求項34に記載の情報記憶媒体。
【請求項39】
前記一組の訓練ポーズ誤差の各誤差は、前記幾何学的にポーズが与えられた位置から、前記モデル・コンポーネントによって指定された時間につれての一組の位置までの、前記キャラクタ・モデルの前記ポイントの、時間につれての一続きの位置の差である請求項38に記載の情報記憶媒体。
【請求項40】
前記一組の訓練ポーズ誤差は、前記訓練セットから算出された一組の基底関数を使用して表現される請求項34に記載の情報記憶媒体。
【請求項41】
分析するステップは、前記一組の入力に対する前記一組の訓練ポーズ誤差の回帰分析を実行するステップを含む請求項34に記載の情報記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6A】
【図6B】
【図6C】
【図7】
【図8A】
【図8B】
【図8C】
【図2】
【図3】
【図4】
【図5】
【図6A】
【図6B】
【図6C】
【図7】
【図8A】
【図8B】
【図8C】
【公表番号】特表2007−527054(P2007−527054A)
【公表日】平成19年9月20日(2007.9.20)
【国際特許分類】
【出願番号】特願2006−533062(P2006−533062)
【出願日】平成16年5月12日(2004.5.12)
【国際出願番号】PCT/US2004/015119
【国際公開番号】WO2004/104749
【国際公開日】平成16年12月2日(2004.12.2)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.フロッピー
【出願人】(501310929)
【Fターム(参考)】
【公表日】平成19年9月20日(2007.9.20)
【国際特許分類】
【出願日】平成16年5月12日(2004.5.12)
【国際出願番号】PCT/US2004/015119
【国際公開番号】WO2004/104749
【国際公開日】平成16年12月2日(2004.12.2)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.フロッピー
【出願人】(501310929)
【Fターム(参考)】
[ Back to top ]