(57)【要約】  モデル・コンポーネントを使用してキャラクタ・モデルにポーズを与えて、様々な現実感のある芸術的な効果を生じさせることができる。本発明の実施形態は、モデル・コンポーネントの挙動を分析して、そのモデル・コンポーネントの出力を忠実に近似するモデル・コンポーネントの統計的表現を算出する。モデル・コンポーネントの統計的表現は、元のモデル・コンポーネントよりも高速に実行されるので、キャラクタ・モデルにポーズを与えるのに使用されるモデル・コンポーネントを、モデル・コンポーネントの等価の統計的表現でアニメーション時に置き換えて、アニメーション・パフォーマンスを向上させることができる。モデル・コンポーネントの統計的表現は、一組の代表的な訓練ポーズを介して操作されるキャラクタ・モデルの分析から導出される。モデル・コンポーネントの統計的表現は、アニメーション変数の非線形結合によって制御される一組のポーズ誤差に加算される、ポーズが与えられたフレーム位置の重み付けされた結合から成る。
2007527054.tif 000002
【特許請求の範囲】
【請求項１】
キャラクタ・モデルにポーズを与えるのに使用されるモデル・コンポーネントの挙動を近似するベークされたコンポーネントを作成する方法であって、
前記モデル・コンポーネントに関連する前記キャラクタ・モデルの少なくとも一部分を識別するステップと、
前記キャラクタ・モデルの動きの範囲を表し、一組の入力によって定義される、一組の訓練ポーズの各ポーズを介して、前記キャラクタ・モデルを操作するステップと、
前記キャラクタ・モデルの少なくとも１つのポイントに関して、それぞれが、幾何学的にポーズが与えられた位置から、前記モデル・コンポーネントによって指定された少なくとも１つの位置までの、キャラクタ・モデルの前記ポイントの位置の少なくとも１つの差である前記一組の訓練ポーズから、一組の訓練ポーズ誤差を算出するステップと、
前記一組の訓練ポーズ誤差を分析して、前記一組の入力と前記一組の訓練ポーズ誤差の間の関係を算出するステップとを含む方法。
【請求項２】
前記モデル・コンポーネントに関連する前記キャラクタ・モデルの前記一部分は、前記モデル・コンポーネントに関連し、前記キャラクタ・モデルの前記一部分に影響を与える少なくとも１つの基準フレームによって識別される請求項１に記載の方法。
【請求項３】
前記一組の入力は、一組のアニメーション変数を含む請求項１に記載の方法。
【請求項４】
前記一組のアニメーション変数の一部分は、デフロブレートされた形態で表現された関節回転角度である請求項３に記載の方法。
【請求項５】
前記一組の訓練ポーズ誤差の各誤差は、前記幾何学的にポーズが与えられた位置から、前記モデル・コンポーネントによって指定された時間につれての一組の位置までの、前記キャラクタ・モデルの前記ポイントの、時間につれての一続きの位置の差である請求項１に記載の方法。
【請求項６】
前記一組の訓練ポーズ誤差は、前記訓練セットから算出された一組の基底関数を使用して表現される請求項１に記載の方法。
【請求項７】
分析するステップは、前記一組の入力に対する前記一組の訓練ポーズ誤差の回帰分析を実行するステップを含む請求項１に記載の方法。
【請求項８】
前記一組の入力は、別々の正の値の変数と負の値の変数に分割された一組のアニメーション変数を含む請求項７に記載の方法。
【請求項９】
ベークされたコンポーネントを使用して、キャラクタ・モデルの少なくとも一部分をポーズに操作する方法であって、
前記ポーズに関連する前記キャラクタ・モデルの一部分を識別するステップと、
前記ポーズから、前記キャラクタ・モデルの一組のポイントの一組の幾何学的にポーズが与えられた位置を算出するステップと、
前記ベークされたコンポーネントと前記ポーズから、前記キャラクタ・モデルの前記一組のポイントに関連する、幾何学的にポーズが与えられた位置からのポイントの変位をそれぞれが指定する、一組のポーズ誤差を予測するステップと、
前記一組のポイントの前記一組の幾何学的にポーズが与えられた位置に、前記一組のポーズ誤差を適用するステップとを含む方法。
【請求項１０】
前記ポーズに関連する前記キャラクタ・モデルの前記一部分は、前記キャラクタ・モデルの前記一部分に影響を与える少なくとも１つの基準フレームによって識別される請求項９に記載の方法。
【請求項１１】
前記ポーズは、少なくともある程度、一組のアニメーション変数によって定義される請求項９に記載の方法。
【請求項１２】
前記一組のアニメーション変数の一部分は、デフロブレートされた形態で表現された関節回転角度である請求項１１に記載の方法。
【請求項１３】
前記一組のポーズ誤差の少なくとも１つの誤差は、時間につれての、幾何学的にポーズが与えられた位置からのポイントの一続きの変位を指定する請求項９に記載の方法。
【請求項１４】
前記一組のポーズ誤差を適用するステップは、前記一組のポーズ誤差の各誤差を、一組の基底関数に関連する一組の基準フレームに変換するステップを含む請求項９に記載の方法。
【請求項１５】
前記一組の基底関数は、訓練セットから算出される請求項１４に記載の方法。
【請求項１６】
モデル・コンポーネントを使用して、キャラクタ・モデルの少なくとも一部分をポーズに操作する方法であって、
前記モデル・コンポーネントからベークされたコンポーネントを作成するステップと、
前記ベークされたコンポーネントに関連する前記キャラクタ・モデルの一部分を識別するステップと、
前記ポーズから、前記キャラクタ・モデルの一組のポイントの一組の幾何学的にポーズが与えられた位置を算出するステップと、
前記ベークされたコンポーネントと前記ポーズから、前記キャラクタ・モデルの前記一組のポイントに関連する、幾何学的にポーズが与えられた位置からのポイントの変位をそれぞれが指定する、一組のポーズ誤差を予測するステップと、
前記一組のポイントの前記一組の幾何学的にポーズが与えられた位置に、前記一組のポーズ誤差を適用するステップとを含む方法。
【請求項１７】
前記ポーズに関連する前記キャラクタ・モデルの前記一部分は、前記キャラクタ・モデルの前記一部分に影響を与える少なくとも１つの基準フレームによって識別される請求項１６に記載の方法。
【請求項１８】
前記ポーズは、少なくともある程度、一組のアニメーション変数によって定義される請求項１６に記載の方法。
【請求項１９】
前記一組のアニメーション変数の一部分は、デフロブレートされた形態で表現された関節回転角度である請求項１８に記載の方法。
【請求項２０】
前記一組のポーズ誤差の少なくとも１つの誤差は、時間につれての、幾何学的にポーズが与えられた位置からのポイントの一続きの変位を指定する請求項１６に記載の方法。
【請求項２１】
前記モデル・コンポーネントから前記ベークされたコンポーネントを作成するステップは、
前記モデル・コンポーネントに関連する前記キャラクタ・モデルの少なくとも一部分を識別するステップと、
前記キャラクタ・モデルの動きの範囲を表し、一組の入力によって定義される一組の訓練ポーズの各ポーズを介して、前記キャラクタ・モデルを操作するステップと、
前記キャラクタ・モデルの少なくとも１つのポイントに関して前記一組の訓練ポーズから、一組の訓練ポーズ誤差を算出するステップと、
前記一組の訓練ポーズ誤差を分析して、前記一組の入力と前記一組の訓練ポーズ誤差の間の関係を算出するステップとを含む請求項１６に記載の方法。
【請求項２２】
前記モデル・コンポーネントに関連する前記キャラクタ・モデルの前記一部分は、前記モデル・コンポーネントに関連し、前記キャラクタ・モデルの前記一部分に影響を与える少なくとも１つの基準フレームによって識別される請求項２１に記載の方法。
【請求項２３】
前記一組の入力は、一組のアニメーション変数を含む請求項２１に記載の方法。
【請求項２４】
前記一組のアニメーション変数の一部分は、デフロブレートされた形態で表現された関節回転角度である請求項２３に記載の方法。
【請求項２５】
前記一組の訓練ポーズ誤差の各誤差は、前記幾何学的にポーズが与えられた位置から、前記モデル・コンポーネントによって指定された少なくとも１つの位置までの、キャラクタ・モデルの前記ポイントの位置の少なくとも１つの差である請求項２１に記載の方法。
【請求項２６】
前記一組の訓練ポーズ誤差の各誤差は、前記幾何学的にポーズが与えられた位置から、前記モデル・コンポーネントによって指定された時間につれての一組の位置までの、前記キャラクタ・モデルの前記ポイントの、時間につれての一続きの位置の差である請求項２５に記載の方法。
【請求項２７】
前記一組の訓練ポーズ誤差は、前記訓練セットから算出された一組の基底関数を使用して表現される請求項２１に記載の方法。
【請求項２８】
分析するステップは、前記一組の入力に対する前記一組の訓練ポーズ誤差の回帰分析を実行するステップを含む請求項２１に記載の方法。
【請求項２９】
モデル・コンポーネントからベークされたコンポーネントを作成するステップと、
前記ベークされたコンポーネントに関連するキャラクタ・モデルの一部分を識別するステップと、
ポーズから、前記キャラクタ・モデルの一組のポイントの一組の幾何学的にポーズが与えられた位置を算出するステップと、
前記ベークされたコンポーネントと前記ポーズから、前記キャラクタ・モデルの前記一組のポイントに関連する、幾何学的にポーズが与えられた位置からのポイントの変位をそれぞれが指定する、一組のポーズ誤差を予測するステップと、
前記一組のポイントの前記一組の幾何学的にポーズが与えられた位置に、前記一組のポーズ誤差を適用するステップとを含むオペレーションを実行するよう、情報処理デバイスを導くように適合された複数の命令を有する情報記憶媒体。
【請求項３０】
前記ポーズに関連する前記キャラクタ・モデルの前記一部分は、前記キャラクタ・モデルの前記一部分に影響を与える少なくとも１つの基準フレームによって識別される請求項２９に記載の情報記憶媒体。
【請求項３１】
前記ポーズは、少なくともある程度、一組のアニメーション変数によって定義される請求項２９に記載の情報記憶媒体。
【請求項３２】
前記一組のアニメーション変数の一部分は、デフロブレートされた形態で表現された関節回転角度である請求項３１に記載の情報記憶媒体。
【請求項３３】
前記一組のポーズ誤差の少なくとも１つの誤差は、時間につれての、幾何学的にポーズが与えられた位置からのポイントの一続きの変位を指定する請求項２９に記載の情報記憶媒体。
【請求項３４】
前記モデル・コンポーネントから前記ベークされたコンポーネントを作成するステップは、
前記モデル・コンポーネントに関連する前記キャラクタ・モデルの少なくとも一部分を識別するステップと、
前記キャラクタ・モデルの動きの範囲を表し、一組の入力によって定義される一組の訓練ポーズの各ポーズを介して、前記キャラクタ・モデルを操作するステップと、
前記キャラクタ・モデルの少なくとも１つのポイントに関して前記一組の訓練ポーズから、一組の訓練ポーズ誤差を算出するステップと、
前記一組の訓練ポーズ誤差を分析して、前記一組の入力と前記一組の訓練ポーズ誤差の間の関係を算出するステップとを含む請求項２９に記載の情報記憶媒体。
【請求項３５】
前記モデル・コンポーネントに関連する前記キャラクタ・モデルの前記一部分は、前記モデル・コンポーネントに関連し、前記キャラクタ・モデルの前記一部分に影響を与える少なくとも１つの基準フレームによって識別される請求項３４に記載の情報記憶媒体。
【請求項３６】
前記一組の入力は、一組のアニメーション変数を含む請求項３４に記載の情報記憶媒体。
【請求項３７】
前記一組のアニメーション変数の一部分は、デフロブレートされた形態で表現された関節回転角度である請求項３６に記載の情報記憶媒体。
【請求項３８】
前記一組の訓練ポーズ誤差の各誤差は、前記幾何学的にポーズが与えられた位置から、前記モデル・コンポーネントによって指定された少なくとも１つの位置までの、キャラクタ・モデルの前記ポイントの位置の少なくとも１つの差である請求項３４に記載の情報記憶媒体。
【請求項３９】
前記一組の訓練ポーズ誤差の各誤差は、前記幾何学的にポーズが与えられた位置から、前記モデル・コンポーネントによって指定された時間につれての一組の位置までの、前記キャラクタ・モデルの前記ポイントの、時間につれての一続きの位置の差である請求項３８に記載の情報記憶媒体。
【請求項４０】
前記一組の訓練ポーズ誤差は、前記訓練セットから算出された一組の基底関数を使用して表現される請求項３４に記載の情報記憶媒体。
【請求項４１】
分析するステップは、前記一組の入力に対する前記一組の訓練ポーズ誤差の回帰分析を実行するステップを含む請求項３４に記載の情報記憶媒体。
【発明の詳細な説明】
【関連出願】
【０００１】
関連出願の相互参照
本出願は、ともに２００３年５月１４日に出願された、米国特許仮出願第６０／４７０５９０号、「Ｒｉｇ  Ｂａｋｉｎｇ」、および米国特許仮出願第６０／４７０７６７号、「Ｄｅｆｒｏｂｕｌａｔｉｏｎ」の優先権を主張し、以上の仮出願を参照によって事実上、組み込む。本出願は、          に出願した、弁護士整理番号２１７５１−０００９１０ＵＳの米国特許出願「Ｄｅｆｒｏｂｕｌａｔｅｄ  Ａｎｇｌｅｓ  ｆｏｒ  Ｃｈａｒａｃｔｅｒ  Ｊｏｉｎｔ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ」を参照によって事実上、組み込む。
【技術分野】
【０００２】
本発明は、コンピュータ・グラフィックスの分野に関し、詳細には、コンピュータによって生成されたキャラクタをアニメ化するための方法と装置に関する。本発明は、コンピュータ・グラフィックスの分野に関する。多くのコンピュータ・グラフィックス・イメージは、所与の視点からの３次元シーンとの光の相互作用を数学的にモデル化することによって作成される。レンダリングと呼ばれるこのプロセスは、所与の視点からのシーンの２次元イメージを生成し、現実世界シーンの写真を撮影することに似ている。時間とともにシーンを徐々に変化させて、シーンのイメージのシーケンスをレンダリングすることによってアニメ化されたシーケンスを作成することができる。本物のように見えるレンダリングされたイメージとアニメーションを作成するのに、多大な労力がつぎ込まれている。
【背景技術】
【０００３】
キャラクタのコンピュータによって生成されたアニメーションは、キャラクタの３次元モデルを操作して、フレーム・シーケンスにわたる一続きの身体的位置、つまりポーズを得ることによって達せられる。本物のように見えるキャラクタ・モデルは、しばしば、極めて複雑であり、数百万の表面要素や数百または数千の属性を有する。そのような複雑なモデルをアニメ化することに関わる複雑さに起因して、アニメーション・ツール群は、しばしば、キャラクタ・アニメーションを定義するのにアーマチュアとアニメーション変数に依拠する。
【０００４】
アーマチュアは、キャラクタのポーズ、つまり身体的位置を表現する「ステック・フィギュア」である。「ステック・フィギュア」の「ステック」であるアーマチュア・セグメントを動かすことにより、アーマチュアを操作して、所望のポーズにさせることができる。アーマチュアにアニメ制作者によってポーズが与えられると、アニメーション・ツール群は、キャラクタの身体的姿勢がアーマチュアの身体的ポーズをほぼ反映するように、キャラクタ・モデルを変更する。
【０００５】
アニメーション変数は、複雑なキャラクタ・モデルのキャラクタ・アニメーションを定義する別のやり方である。アニメーション変数は、キャラクタ・モデルの外観を変更する関数のためのパラメータである。アニメーション変数とそれに関連する関数は、キャラクタ・モデルに対する複雑な変更を比較的単純なコントロールに抽象化するのに使用される。アニメーション変数と関連する関数は、アーマチュア・セグメントを操作して、キャラクタ・モデルの外観を間接的に変更すること、あるいはアーマチュアを飛び越して、キャラクタ・モデルを直接に操作することができる。
【０００６】
例えば、単一のアニメーション変数により、キャラクタの口の開きの度合いを定義することが可能である。この例では、アニメーション変数の値により、アーマチュアのいくつかの異なる部分が操作されて、および／またはキャラクタ・モデルの諸部分が直接に変更されて、所望の度合いまで開かれた口を有する、変更されたキャラクタ・モデルを作成することが可能である。
【０００７】
モデル・コンポーネントと呼ばれる、アニメーション変数に関連する関数群を使用して、様々な現実感のある芸術的な効果を生じさせることができる。例えば、モデル・コンポーネントを使用して、キャラクタ・モデルの表面下に骨や、筋肉、脂肪の層を作成して、キャラクタ・モデルにポーズが与えられると、キャラクタ・モデルの表面または皮膚が現実感のある形に変形することができる。また、モデル・コンポーネントを使用して、毛髪や布地などの軟質の特徴の動きをシミュレートすることもできる。具体的な物理的現象を再現することに加えて、モデル・コンポーネントは、スカルプト・シェープ(sculpted shape)、メタボール、物理学シミュレーションなどの、アルゴリズムまたは手続きに従ったキャラクタ・モデルの操作を行うのにも使用することができる。
【０００８】
モデル・コンポーネントは、極めて複雑であり、したがって、実行するのに時間がかかる。芸術的効果の高いキャラクタ・アニメーションを作成するのに、アニメ制作者は、しばしば、シーンの大まかなバージョンを作成し、次に、キャラクタ・アニメーションを繰り返し微調整して、最終的シーンの所望のドラマや表現を作成する。アニメ制作者がキャラクタ・モデルにポーズを与え、ポーズ変更行うにつれ、モデル・コンポーネントを実行するのに必要とされる時間により、アニメ制作者の効率が妨げられる可能性がある。最悪ケースでは、アニメ制作者は、単純化された「スタンドイン」キャラクタ・モデルを使用して、初期アニメーションを作成し、次に、最終的なキャラクタ・モデルで結果のアニメーションがどうなるか見守ることを余儀なくされることがある。その状況では、アニメ制作者は、基本的に、盲目的に作業しており、最終結果を推測することしかできない。反対に、妥当な時間内でモデル・コンポーネントを処理するのに必要とされる追加の計算リソースは、可能であったとしても、アニメーションを作成することの費用を大幅に増加させる。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
したがって、過度の計算リソースを消費することなしに、妥当な時間内でモデル・コンポーネントを実行することができるように、モデル・コンポーネントのパフォーマンスを最適化するシステムと方法が望ましい。また、モデル・コンポーネントの機能または複雑さに関わらず、任意のタイプのモデル・コンポーネントを最適化できることが、さらに望ましい。
【課題を解決するための手段】
【００１０】
モデル・コンポーネントを使用してキャラクタ・モデルにポーズを与えて、様々な現実感のある芸術的な効果を生じさせることができる。本発明の実施態様は、モデル・コンポーネントの挙動を分析して、そのモデル・コンポーネントの出力を忠実に近似するモデル・コンポーネントの統計的表現を算出する。モデル・コンポーネントの統計的表現は、元のモデル・コンポーネントよりも高速に実行されるので、キャラクタ・モデルにポーズを与えるのに使用されるモデル・コンポーネントを、モデル・コンポーネントの等価の統計的表現でアニメーション時に置き換えて、アニメーション・パフォーマンスを向上させることができる。モデル・コンポーネントの統計的表現は、一組の代表的な訓練ポーズを介して操作されるキャラクタ・モデルの分析から導出される。モデル・コンポーネントの統計的表現は、アニメーション変数の非線形結合によって制御される一組のポーズ誤差に加算される、ポーズが与えられたフレーム位置の重み付けされた結合から成る。
【００１１】
本発明の実施態様では、モデル・コンポーネントを使用して、キャラクタ・モデルの少なくとも一部分をあるポーズに操作する方法は、モデル・コンポーネントから、ベークされたコンポーネント(baked component)と呼ばれる統計的表現を作成することを含む。本方法は、ベークされたコンポーネントに関連するキャラクタ・モデルの一部分を識別し、ポーズから、キャラクタ・モデルの一組のポイントの一組の幾何学的にポーズが与えられた位置を算出する。また、本方法は、ベークされたコンポーネントとポーズから、キャラクタ・モデルのその一組のポイントに関連する一組のポーズ誤差を予測することも行う。その一組のポーズ誤差のそれぞれにより、幾何学的にポーズが与えられた位置からのポイントの変位が指定される。操作されたキャラクタ・モデルは、次に、その一組のポーズ誤差を、その一組のポイントのその一組の幾何学的にポーズが与えられた位置に適用することによって形成される。
【００１２】
さらなる実施態様では、ポーズに関連するキャラクタ・モデルの部分は、キャラクタ・モデルのその部分に影響を与える少なくとも１つの基準フレームによって識別される。さらに、ある実施態様は、ポーズを、少なくとも一部は、一組のアニメーション変数によって定義する。さらなる実施態様では、関節回転角度などのアニメーション変数は、デフロブレート（defrobulate）された形態で表現される。さらに、その一組のポーズ誤差により、幾何学的にポーズが与えられた位置からのポイントの単一の変位、あるいは時間にともなうポイントの一続きの変位が指定されることが可能である。
【００１３】
別の実施態様では、ベークされたコンポーネントは、モデル・コンポーネントに関連するキャラクタ・モデルの少なくとも一部分を識別することにより、モデル・コンポーネントから作成される。この実施態様は、次に、一組の訓練ポーズのそれぞれを介してキャラクタ・モデルを操作する。その一組の訓練ポーズは、一組の入力によって定義され、キャラクタ・モデルのある範囲の動きを表す。一組の訓練ポーズから、実施態様は、キャラクタ・モデルの少なくとも１つのポイントに関する一組の訓練ポーズ誤差を算出し、次に、一組の訓練ポーズ誤差を分析して、一組の入力と一組の訓練ポーズ誤差の間の関係を算出する。さらなる実施態様では、一組のポーズ誤差を分析することは、一組の入力に対する一組の訓練ポーズ誤差の回帰分析を実行することを含む。
【００１４】
ベークされたコンポーネントを作成するさらなる実施態様では、一組の入力には、一組のアニメーション変数が含まれる。その一組のアニメーション変数の一部は、ｄｅｆｒｏｂｕａｔｅが行われた形態で表現された関節回転角度である。さらに、一組の訓練ポーズ誤差のそれぞれは、幾何学的にポーズが与えられた位置から、モデル・コンポーネントによって指定された少なくとも１つの位置までの、キャラクタ・モデルのポイントの位置の少なくとも１つの差である。その一組のポーズ誤差のそれぞれにより、ポイントの単一の変位、あるいは幾何学的にポーズが与えられた位置から、モデル・コンポーネントによって指定された、時間につれての一組の位置までの、キャラクタ・モデルのポイントの時間につれての位置の一続きの差が指定されることが可能である。
【発明を実施するための最良の形態】
【００１５】
本発明を、図面を参照して説明する。
【００１６】
図１は、本発明の実施形態を実施するのに適したコンピュータ・システムのブロック図を示す。図１は、本発明の実施形態を実施することができる典型的なコンピュータ・システム１００を示す。コンピュータ・システム１００は、通常、モニタ１１０、コンピュータ１２０、キーボード１３０、ユーザ入力デバイス１４０、ネットワーク・インターフェース１５０を含む。ユーザ入力デバイス１４０には、コンピュータ・マウス、トラックボール、トラックパッド、グラフィックス・タブレット、タッチスクリーン、および／またはモニタ１１０上に現れるグラフィックス、オブジェクト、アイコン、および／またはテキストをユーザが作成する、または選択することを可能にする他の有線または無線の入力デバイス群が含まれる。ネットワーク・インターフェース１５０の諸実施形態は、通常、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、例えば、インターネット、および／または仮想ネットワーク、例えば、仮想プライベート・ネットワーク（ＶＰＮ）などの電子通信ネットワークとの、有線または無線の通信を提供する。
【００１７】
コンピュータ１２０は、通常、１つまたは複数の汎用プロセッサ１６０、ランダム・アクセス・メモリ（ＲＡＭ）１７０などのメモリ記憶装置群、ディスク・ドライブ群１８０、さらに以上のコンポーネントと互いに接続するシステム・バス１９０を含む。ＲＡＭ１７０やディスク・ドライブ１８０は、データ、オーディオ／ビデオ・ファイル、コンピュータ・プログラム、アプレット・インタープリタまたはアプレット・コンパイラ、仮想マシンを格納するための実体のある媒体の例であり、本明細書で説明する発明の諸実施形態は、幾何学的シーン・データ、オブジェクト・データ・ファイル、シェーダ記述子、レンダリング・エンジン、出力イメージ・ファイル、テクスチャ・マップ、変位マップを含む。コンピュータ１２０のさらなる諸実施形態は、オーディオ・データやグラフィックス・データを処理し、出力するための専用のオーディオ・サブシステムとビデオ・サブシステムを含むことが可能である。他のタイプの実体のある媒体には、フロッピー・ディスク、リムーバブルなハード・ディスク、ＤＶＤ−ＲＯＭ、ＣＤ−ＲＯＭ、バーコードなどの光記憶媒体、フラッシュメモリなどの不揮発性メモリ・デバイス、読取り専用メモリ（ＲＯＭ）、バッテリ・バックアップ付き揮発性メモリ、ネットワーク化された記憶装置が含まれる。
【００１８】
図２は、関節キャラクタ・モデル２００上の典型的なポイントのポーズが与えられた位置を算出するモデル・コンポーネントの従来の使用を示す。図２は、キャラクタ・モデル２００の肩と腕の領域の一部分を示す。ある実施形態では、キャラクタ・モデル２００は、オブジェクトの３次元コンピュータ・モデルであるが、図では、明瞭にするため、２次元で示されている。さらに、キャラクタ・モデル２００は、人間型の形状であるように示されているが、キャラクタ・モデル２００は、植物や動物だけでなく、現実感のある属性および／または擬人化された属性を有する無生物のオブジェクトを含め、任意の種類のオブジェクトの形態をとることが可能である。
【００１９】
キャラクタ・モデル２００は、３次元モデリング・ソフトウェア内の手作業の構築、手続きオブジェクト作成、物理的オブジェクトの３次元スキャンを含め、３次元コンピュータ・モデルを作成するのに使用される任意のやり方で作成することができる。キャラクタ・モデル２００は、ベジエ面または非一様有理Ｂスプライン（ＮＵＲＢＳ）、コンストラクティブ・ソリッド・ジオメトリ（ＣＳＧ）、および／または３次元オブジェクトを表現するための他の任意の技術などの、１組のポリゴン、ボクセル、高次曲面から成ることが可能である。さらに、キャラクタ・モデル２００は、色、テクスチャ、材料特性、透明度、反射率、照明・シェーディング属性、変位マップ、バンプ・マップを含め、オブジェクトの外観を定義する属性を含むことが可能である。
【００２０】
キャラクタ・モデル２００は、アーマチュア２０５を介してアニメ化される。アーマチュア２０５は、１つまたは複数のアーマチュア・セグメントを含む。図２では、アーマチュア２０５は、キャラクタ・モデル２００の上腕のポーズを表すのに使用される。アニメ制作者は、アーマチュア２０５のセグメントの位置と向きを操作して、キャラクタ・モデル２００のポーズを定義する。
【００２１】
アーマチュア・セグメントは、サイズ、位置、または向きが制約されか、またはアニメ制作者によって自由に操作される。アーマチュア・セグメントの数は、キャラクタの複雑さに応じて異なり、通常のキャラクタは、数百または数千のセグメントを有するアーマチュアを有することが可能である。一部のケースでは、アーマチュア・セグメントの数と位置は、キャラクタに関する「スケルトン」のものと同様であるが、アーマチュア・セグメントは、微妙な顔の表情、ならびに骨、またはその他の解剖学上の特徴に必ずしも関連しない、その他のキャラクタ詳細も定義することができる。さらに、図２のアーマチュア２０５におけるアーマチュア・セグメントは、一組のライン・セグメントから成るが、本発明の代替の諸実施形態では、アーマチュア・セグメントは、一組の表面、および／または一組のボリュームから成ることが可能である。
【００２２】
キャラクタ・モデル２０５は、キャラクタ・モデル２００が、１つのポーズから別のポーズに漸進的に動かされる、フレームの、つまり静止イメージのシーケンスを作成することにより、アニメ化される。また、キャラクタ・モデル２００は、並進させる、回転させる、拡大縮小することができ、またはフレーム間で全体としてそれ以外の形で操作することもできる。アニメ制作者は、シーケンス内の各フレームに関して、キャラクタ・モデル２００のポーズを手作業で作成することができ、あるいは２つ以上のキー・フレームに関するポーズを作成して、次に、それらのフレームをアニメーション・ソフトウェアによって補間して、各フレームに関するポーズを作成することが可能である。また、関数、手続き、またはアルゴリズムを使用して、ポーズを自動的に作成することも可能である。
【００２３】
ポーズのすべて、または一部が、アニメ制作者によって手作業で作成されるか、または関数、手続き、またはアルゴリズムを使用して自動的に作成されるかに関わらず、キャラクタ・モデル２００のポーズは、一組のアニメーション変数によって定義できる。１つのタイプのアニメーション変数により、関節と呼ばれる原点を中心とするアーマチュア・セグメントの回転角度が指定される。図２では、アーマチュア２０５の上腕セグメントが、関節２１０を中心に回転させられる。関節２１０を中心とするアーマチュア２０５の上腕セグメントの回転は、アニメーション変数２１５、２１７、２１９、２２１で指定される。この例では、アニメーション変数２１５、２１７、２１９、２２１の各々により、座標軸を中心とする回転が指定される。
【００２４】
キャラクタ・モデル２００のポイントの位置は、少なくともある程度、モデル・コンポーネント２３０によって算出される。ある実施形態では、関節２１０に関連するアニメーション変数２１５、２１７、２１９、２２１を含むことが可能なアニメーション変数２２５が、モデル・コンポーネント２３０に入力される。すると、モデル・コンポーネント２３０は、入力されたアニメーション変数群から、キャラクタ・モデル２００の１つまたは複数のポイントの位置を算出する。モデル・コンポーネント２３０は、任意のタイプのデータ処理の関数、手続き、またはアルゴリズムを使用して、皮膚の層、骨の層、脂肪の層、筋肉の層のシミュレーション；動的な布地シミュレーション；スカルプト・シェープ；メタボール；物理学シミュレーションを含むが、以上には限定されない、キャラクタ・モデル２００のポイントの位置を算出することができる。モデル・コンポーネントを使用して、キャラクタ・モデルの表面上のポイント、キャラクタ・モデル２００の内部に含まれるポイント、および／またはキャラクタ・モデル２００の外部のポイントに関して、キャラクタ・モデル２００の形状寸法、または他の属性の構成を算出することができる。
【００２５】
図２では、モデル・コンポーネント２３０は、キャラクタ・モデル２００のポイント２４０、２５０の位置を算出する。モデル・コンポーネント２３０の出力２３５により、ポイント２４０の位置が指定される。同様に、モデル・コンポーネント２３０の出力２４５により、ポイント２５０の位置が指定される。ポイント２４０、２５０の位置は、ベース位置、つまり静止位置におけるキャラクタ・モデル２００からの変位としてモデル・コンポーネント２３０によって指定されることが可能である。
【００２６】
代替として、キャラクタ・モデルの諸部分は、近くのアーマチュア・セグメントに従って回転させられて、幾何学的にポーズが与えられたキャラクタ・モデル２６０を形成することも可能である。幾何学的にポーズが与えられたキャラクタ・モデルは、１つまたは複数の幾何学オペレーションを使用して、静止の向き、つまりポーズが与えられていない向きから、ポーズが与えられた向きに変換される。幾何学オペレーションには、キャラクタ・モデルの諸部分の並進、拡大縮小、回転、その他の類似した操作、さらにはそれらのオペレーションの重み付けされた結合、または重み付けされていない結合が含まれる。また、幾何学オペレーションには、キャラクタ・モデルのポイントをキャラクタ・モデルの表面から射影することも含まれることが可能である。モデル・コンポーネント２３０の出力２３５、２４５により、次に、ポイント２４０、２５０の、幾何学的にポーズが与えられたキャラクタ・モデル２６０上の位置からのさらなる変位が指定される。以下に詳細に説明するとおり、モデル・コンポーネントにより、キャラクタ・モデル上のポイントの位置がどのように指定されるかにかかわらず、ベークされたコンポーネントを、幾何学的にポーズが与えられたキャラクタ・モデルと併せて使用して、モデル・コンポーネントを近似することができる。
【００２７】
多くのタイプのモデル・コンポーネントの複雑さにより、キャラクタ・モデルにポーズを与えることは、時間がかかり、計算リソースを多く使用することになる。前述したとおり、これにより、アニメ制作者の、キャラクタ・アニメーションを微調整して、所望のドラマや表現をもたらす能力が妨げられる。本発明のある実施形態は、キャラクタ・モデルにポーズを与えるのに使用される各モデル・コンポーネントの統計的表現を作成することにより、モデル・コンポーネントのパフォーマンスを最適化する。ベークされたコンポーネントと呼ばれるモデル・コンポーネントの統計的表現は、大幅に短縮された実行時間で、モデル・コンポーネントの挙動を忠実に近似する。さらに、ベークされたコンポーネントは、あらゆるタイプのモデル・コンポーネントの挙動を近似するのに使用することができる。このため、キャラクタ・モデルにポーズを与えるのに使用されるモデル・コンポーネントを等価のベークされたコンポーネントで置き換えて、実行パフォーマンスを向上させ、キャラクタ・モデルにポーズを与える際に必要とされる計算リソースを減らすことができる。
【００２８】
図３は、本発明の実施形態による、関節キャラクタ・モデル上のポイントのポーズが与えられた位置を算出するベークされたコンポーネントの使用を示す。キャラクタ・モデル３００が、図３では、キャラクタ・モデル３００の上腕のポーズを表す、アーマチュア３０５を介してアニメ化される。アニメ制作者が、アーマチュア３０５のセグメントの位置と向きを操作して、キャラクタ・モデル３００のポーズを定義する。
【００２９】
キャラクタ・モデル３００のポーズは、関節３１０を中心とするアーマチュア３０５の上腕セグメントの回転を指定する、アニメーション変数３１５、３１７、３１９、３２１を含む、一組のアニメーション変数で定義されることが可能である。キャラクタ・モデル３００のポイントの位置は、少なくともある程度、モデル・コンポーネント３３３によって算出されることが可能である。しかし、本発明のある実施形態は、モデル・コンポーネント３３３の挙動を近似する、対応する一組のベークされたコンポーネント３３０で、モデル・コンポーネント３３３を置き換えることにより、ポーズが与えられたキャラクタ・モデルを作成するのに必要な実行時間を短縮する。ベークされたコンポーネント３３０は、モデル・コンポーネント３３３から導出される。ベークされたコンポーネント３３０は、任意のタイプのデータ処理の関数、手続き、またはアルゴリズムを近似して、皮膚の層、骨の層、脂肪の層、筋肉の層のシミュレーション；動的な布地シミュレーション；スカルプト・シェープ；メタボール；物理学シミュレーションを含むが、以上には限定されない、キャラクタ・モデル３００のポイントの位置を算出することができる。
【００３０】
ある実施形態では、ベークされたコンポーネント３３０は、キャラクタ・モデル３００にポーズを与えるのに先立って、モデル・コンポーネント３３３から導出することができる。さらに、モデル・コンポーネント３３３から導出されると、ベークされたコンポーネント３３０は、キャラクタ・モデル３００の複数のポーズを算出するのに繰り返し使用することができる。
【００３１】
ある実施形態では、関節３１０に関連するアニメーション変数３１５、３１７、３１９、３２１を含むアニメーション変数３２５が、ベークされたコンポーネント３３０に入力される。すると、ベークされたコンポーネント３３０は、入力されたアニメーション変数３２５から、キャラクタ・モデル２００の１つまたは複数のポイントの位置を算出する。
【００３２】
図３では、ベークされたコンポーネント３３０は、キャラクタ・モデル３００のポイント３４０、３５０の位置を算出する。モデル・コンポーネント３３０の出力３３５により、ポイント３４０の位置が指定される。同様に、モデル・コンポーネント３３０の出力３４５により、ポイント３５０の位置が指定される。ポイント３４０、３５０の位置を、モデル・コンポーネント２３０によって、ベース位置、つまり静止位置におけるキャラクタ・モデル３００からの変位として、または代替として、ポイント３４０、３５０の、幾何学的にポーズが与えられたキャラクタ・モデル３６０上の位置からの変位として指定するることができる。
【００３３】
前述したとおり、ベークされたコンポーネントは、キャラクタ・モデルにポーズを与えるのに先立って、モデル・コンポーネントから導出することができる。さらに、ベークされたコンポーネントが計算されると、そのベークされたコンポーネントを使用して、キャラクタ・モデルに繰り返しポーズを与えることができる。このため、図４は、本発明の実施形態による、ポーズが与えられたキャラクタ・モデルを作成するための方法４００の２つの段階を示す。第１の段階４１０では、ベークされたコンポーネントが、キャラクタ・モデルにポーズを与えるのに先立って、モデル・コンポーネントから導出される。ベークされたコンポーネントの作成に続き、第２の段階４２０で、そのベークされたコンポーネントを使用して、ポーズが与えられたキャラクタ・モデルを作成することができる。本発明のある実施形態は、第２の段階４２０を繰り返して、ベークされたコンポーネントを再作成することなしに、キャラクタ・モデルの追加のポーズを生成することができる。
【００３４】
第１の段階４１０のある実施形態では、ベークされたコンポーネントは、訓練セットと呼ばれるセットの訓練ポーズにおけるキャラクタ・モデルを分析することにより、作成される。図５は、本発明の実施形態による、関節キャラクタ・モデルに関連するモデル・コンポーネントからベークされたコンポーネントを作成するための方法５００を示す。
【００３５】
ステップ５０５は、モデル・コンポーネントに関連するアニメーション変数と一組の基準フレームを識別する。識別されるアニメーション変数は、モデル・コンポーネントに入力される、キャラクタ・モデルにポーズを与えるのに使用される一組のアニメーション変数の部分である。基準フレームは、モデル・コンポーネントの出力による影響を受けるキャラクタ・モデルの諸領域を定義する。ある実施形態では、各基準フレームは、１つまたは複数のアーマチュア・セグメントと、キャラクタ・モデルの隣接する部分に関する局所座標系を定義する。モデル・コンポーネントに関連する一組の基準フレームに関して、１つのフレームが、親フレームとして選択される。
【００３６】
ある実施形態では、座標基準フレームは、次の４つのベクトルから構成される。すなわち、座標基準フレームの原点、つまり位置を定義する第１のベクトルと、座標基準フレームの座標軸を定義する３つのベクトルである。キャラクタ・モデルのポイントのそれぞれは、一組の基準フレーム重みを介して、１つまたは複数の基準フレームに関連付けられる。一組の基準フレーム重みにより、所与のポイント上における１つまたは複数の基準フレームの動きの影響の重み付き平均が定義される。ある実施形態では、関連する基準フレームとアニメーション変数は、手作業で算出される。代替として、モデル・コンポーネントの分析により、入力として使用されるアニメーション変数とモデル・コンポーネントの出力による影響を受ける可能性がある、キャラクタ・モデルの一組のポイントが、したがって、基準フレームが、算出される。
【００３７】
図６Ａ〜図６Ｃは、本発明の実施形態による、典型的な関節キャラクタ・モデルに関連するモデル・コンポーネントからベークされたコンポーネントを作成するための方法の典型的な応用例を示す。図６Ａは、キャラクタ・モデル６０５にポーズを与える際に使用される典型的なキャラクタ・アーマチュア６００を示す。アーマチュア６００は、アーマチュア６００の右下脚に関連する基準フレーム６０７や、アーマチュア６００の右肩に関連する基準フレーム６０９などの、いくつかの基準フレームを含む。各基準フレームは、１つまたは複数のアーマチュア・セグメントとキャラクタ・モデル６０５の隣接する部分に関連する。例えば、基準フレーム６１１は、キャラクタ・モデル６０５の胴の領域に関連し、基準フレーム６１３は、キャラクタ・モデル６０５の左肩部分に関連し、基準フレーム６１５および６１７は、キャラクタ・モデル６０５の左上腕および左下腕にそれぞれ関連する。
【００３８】
ステップ５０５で、モデル・コンポーネントに関連する基準フレームとアニメーション変数が識別される。例えば、キャラクタ・モデル６０５の腕の変形を算出するのに使用される筋肉変形モデル・コンポーネントは、一組の基準フレーム６１１、６１３、６１５、６１７と、それらの基準フレーム内のアーマチュア・セグメントにポーズを与えるのに使用されるアニメーション変数に関連する。
【００３９】
ステップ５１０で、キャラクタ・モデルに、一組の訓練ポーズに従ってポーズが与えられる。各訓練ポーズは、典型的な値に設定された、識別された一組のアニメーション変数の結果である。訓練ポーズのセットは、理想的には、モデル・コンポーネントに関連するキャラクタ・モデルの部分に関する動きの通常の範囲を対象として含む。ある実施形態では、訓練セットの中のポーズの数は、モデル・コンポーネントに関連する、異なる基準フレームの数を超えないにしても、少なくともその数と一致する。実施形態では、通常のキャラクタ・モデルは、数千のポーズを含む訓練セットを有することが可能である。
【００４０】
ある実施形態では、キャラクタ・モデルのポイントには、訓練セットの各ポーズに関して、幾何学的にポーズが与えられる。キャラクタ・アーマチュアの諸部分の動きまたはポーズにより、関連する基準フレームも動かされる。幾何学的ポーズにより、モデル・コンポーネントからの変位なしに、関連する基準フレームのポーズが与えられた位置に従って、キャラクタ・モデルのポイントが動かされる。ステップ５１０は、各訓練ポーズに関して、アニメーション変数の値や、モデル・コンポーネントによって影響される可能性があるキャラクタ・モデルのポイントの対応する位置を記録する。ある実施形態では、キャラクタ・モデル・ポイントのポーズが与えられた位置は、その一組の基準フレームの各フレーム内で表現される。一組のアニメーション変数値とキャラクタ・モデル・ポイントの対応する諸部分は、一組のサンプル・データを含む。
【００４１】
図６Ａの例に続いて、図６Ｂは、ステップ５１０によって要求されるとおり、キャラクタ・モデルの左腕に関連する、一組の基準フレームとアニメーション変数に関する典型的な一組の訓練ポーズ６２０を示す。訓練セット６２０は、モデル・コンポーネントに関連するキャラクタ・モデルの部分をそれぞれが操作して、異なるポーズにさせる、訓練ポーズ６２２、６２４、６２６、６２８、６３０、６３２を含む。ステップ５１０の典型的な応用例では、各訓練ポーズに関する、アニメーション変数の値とキャラクタ・モデルの幾何学的にポーズが与えられたポイントが記録されて、一組のサンプル・データが形成される。
【００４２】
ステップ５１５は、その一組のサンプル・データを分析して、一組の最適なフレーム基底関数を算出する。ポイントのポーズが与えられた位置を表現する一組のサンプル・データの部分が結合されて、行列が形成され、その行列の単一値分解が計算されて、一組のサンプル・データに関する一組のフレーム基底関数が求められる。代替の諸実施形態では、標準相関などの、一組のフレーム基底関数を計算する他の方法も使用することができる。その一組のフレーム基底関数を使用して、一組のサンプルにおけるモデル・ポイントの位置を最小２乗で最適に表現することができる。最適な一組のフレーム基底関数を算出することにより、一組のサンプル・データをより簡潔に表現することが可能になり、方法５００の後続のステップで分析されるデータの量を最小限に抑えられる。ある実施形態では、ステップ５１５は、その一組のフレーム基底関数を使用して、一組のサンプル・データを分解して、最適化された一組のサンプル・データを算出する。しかし、ステップ５１５は、オプションであり、方法５００の代替の実施形態は、ステップ５１５を飛び越して、サンプル・データの最初の組に対して後続のステップを実行する。
【００４３】
ステップ５２０は、サンプル・データの最適化された組からの一組のポーズ誤差を算出する。ある実施形態では、所与のポーズに関するポーズ誤差は、キャラクタ・モデルのポイントの幾何学的にポーズが与えられた位置を、同一の一組のアニメーション変数に関するモデル・コンポーネントからの対応する位置出力と比較することによって算出される。所与のポーズにおけるキャラクタ・モデル・ポイントに関するポーズ誤差は、モデル・コンポーネントによって出力されるポイントの位置と幾何学的にポーズが与えられた位置の間の差である。さらなる実施形態では、モデル・コンポーネントから出力されるポイントの位置は、時間とともに変化する。この実施形態では、所与の訓練ポーズにおけるポイントに関するポーズ誤差は、時間につれてのモデル・コンポーネント出力と、ポイントの幾何学的にポーズが与えられた位置との間における一続きの差である。訓練セットにおける各訓練ポーズについて、モデル・コンポーネントによる影響を受ける可能性があるキャラクタ・モデルの各ポイントに関するポーズ誤差が算出される。
【００４４】
別の実施形態では、幾何学的にポーズが与えられたキャラクタ・モデルは、キャラクタ・モデルの「皮膚」の位置を定義する。モデル・コンポーネントは、その皮膚に対するポイントの位置を定義する。例えば、布地シミュレーション・モデル・コンポーネントは、キャラクタ・モデルの皮膚に対するキャラクタ・モデルの衣服上のポイントの位置を定義することができる。この実施形態では、幾何学的にポーズが与えられたキャラクタ・モデルは、ポーズ誤差の方向または向きを定義し、モデル・コンポーネントの出力は、その向きに沿ったポーズ誤差を定義する。
【００４５】
ある実施形態では、各ポイントに関するポーズ誤差を表す一組のフレーム重みが使用される。各ポイントに関するポーズ誤差は、ステップ５０５で選択された親基準フレームに変換される。親基準フレームから、各ポイントに関するポーズ誤差に、そのポイントに関連する一組の基準フレーム重みに従って重みが付けられ、ステップ５１５で算出されたフレーム基底関数に従って親基準フレームから各基準フレームに変換される。親基準フレームからその別の基準フレーム群にポーズ誤差を変換し、分散させることにより、キャラクタ・モデルの各ポイントに関連するポーズ誤差は、関連する基準フレームと一緒に動く。
【００４６】
図６Ａおよび図６Ｂの例に続いて、図６Ｃは、典型的な訓練ポーズに関するポーズ誤差の算出を示す。アニメーション変数６４０、６４２、６４４、６４６を含む、訓練ポーズを定義するアニメーション変数が、モデル・コンポーネントに入力されて、ポーズが与えられたキャラクタ・モデル６５０が算出される。ポイント６５２、６５４を含むキャラクタ・モデルのポイントの位置が、幾何学的にポーズが与えられたキャラクタ・モデル６４８上の対応する位置と比較される。ポーズ誤差６５６、６５８は、ポーズが与えられたキャラクタ・モデル６５０および幾何学的にポーズが与えられたキャラクタ・モデル６４８のそれぞれの上のポイント６５２とポイント６５４の間における位置の差である。
【００４７】
ステップ５２５は、ポーズ誤差の完全な一組を分析して、モデル・コンポーネントの挙動を忠実に近似するベークされたコンポーネントを算出する。ある実施形態では、統計回帰分析を使用して、キャラクタ・モデルのポイントに関するポーズ誤差が、アニメーション変数の関数として算出される。１つのインプリメンテーションでは、非線形の２次回帰分析が、一組のポーズ誤差に対して実行される。このインプリメンテーションでは、アニメーション変数は、分割アニメーション変数と呼ばれ、別々の回帰ステップと考えられる正の値と負の値に分割される。さらなるインプリメンテーションでは、正の分割アニメーション変数が、０を下回る場合、値は０に固定される。同様に、負の分割アニメーションも、０を超える場合、０に固定される。さらなる実施形態では、分割アニメーション変数と、分割アニメーション変数の平方根と、同一の関節に関連するアニメーション変数である隣接する分割アニメーション変数の積の平方根とがすべて、回帰分析において使用されて、モデル・コンポーネントの出力を近似する関数が算出される。
【００４８】
さらなる実施形態では、関節回転を表すアニメーション変数が、デフロブレートされた形態(defrobulated form)に変換されて、視覚的な不連続の外観が防止される。通常の角度表現とは異なり、デフロブレートされた角度は、関節の動きの通常の範囲内で角の不連続を全く有さない。一部の応用例では、デフロブレートされた角度は、通常、例えば、デフロブレートされた角度にジンバル・ロックがなく、関節の動きの通常の範囲にわたって連続的であることに起因して、モデル・コンポーネントの出力とより高い度合いの統計的相関を示す。４角度の拡張オイラー(four angle extended Euler)形態から、対応するデフロブレートされたフォーマットへの関節角度の変換は、関連する仮出願、「Ｄｅｆｒｏｂｕｌａｔｉｏｎ」、弁護士整理番号２１７５１−０００９００ＵＳ、および出願、「Ｄｅｆｒｏｂｕｌａｔｅｄ  Ａｎｇｌｅｓ  ｆｏｒ  Ｃｈａｒａｃｔｅｒ  Ｊｏｉｎｔ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ」、弁護士整理番号２１７５１−０００９１０ＵＳで説明されている。
【００４９】
デフロブレートされた角度フォーマットを要約すると、右回りの角度回転形態（ｘ，ｙ，ｚ，ｘ）に対応する標準の４つの角度回転（ｔｗ，ａ，ｂ，ｃ）として表される関節回転が、一組の射影、ｘｐ＝ｃｏｓ（ａ）ｃｏｓ（ｂ）、ｙｐ＝ｃｏｓ（ｃ）ｓｉｎ（ａ）＋ｓｉｎ（ｃ）ｓｉｎ（ｂ）ｃｏｓ（ａ）、ｚｐ＝ｓｉｎ（ｃ）ｓｉｎ（ａ）−ｃｏｓ（ｃ）ｓｉｎ（ｂ）ｃｏｓ（ａ）に変換されることである。その一組の射影、ｘｐ、ｙｐ、、ｚｐから、弦角度ｃｈが、ｃｈ＝ａｃｏｓ（ｘｐ）として決まる。弦角度ｃｈを中間値として使用して、デフロブレートされた一組の角度（ｑ，ｒ，ｅｔ）が算出される。ある実施形態では、ｑ＝ｃｈ＊ｙｐかつｒ＝ｃｈ＊ｚｐである。基本ツイスト、ｅｔは、以下のとおり定義される。すなわち、
【数１】
2007527054.tif 000003
【００５０】
本発明のある実施形態への応用では、関節回転を表し、既にデフロブレートされた形態になっていないアニメーション変数は、前述したとおり、デフロブレートされた形態に変換される。次に、デフロブレートされた形態のアニメーション変数を使用して、回帰分析が実行される。さらなる実施形態では、デフロブレートされたアニメーション変数は、正の値と負の値に分割され、別々の回帰ステップと考えられる。さらに、デフロブレートされたアニメーション変数、それらの変数の平方根、隣接するアニメーション変数の積の平方根を回帰分析に含めることができる。
【００５１】
方法５００で算出されたベークされたコンポーネントは、所望のポーズが、訓練セットの中に含まれていたかどうかに関わらず、任意の所望のポーズに関してキャラクタ・モデルにポーズを与える際に、モデル・コンポーネントの代わりに使用することができる。さらに、いくつかのベークされたコンポーネントの出力を結合して、キャラクタ・モデルのすべての部分、または１つまたは複数の部分のポーズを算出することができる。
【００５２】
図７は、本発明の実施形態による、ベークされたコンポーネントから関節キャラクタ・モデル上のポイントのポーズが与えられた位置を算出するための方法７００を示す。ある実施形態では、一組のアニメーション変数によって定義される所望のキャラクタ・モデル・ポーズに関して、ステップ７０５は、ベークされたコンポーネントに関連するその一組のアニメーション変数の一部を算出する。ある実施形態では、関連するアニメーション変数と呼ばれる一組のアニメーション変数のその一部は、ベークされたコンポーネントの出力と統計的相関を有するアニメーション変数である。さらに、ステップ７０５は、ベークされたコンポーネントに関連する基準フレームを算出する。
【００５３】
図８Ａ〜図８Ｃは、本発明の実施形態による、ベークされたコンポーネントから関節キャラクタ・モデル上のポイントのポーズが与えられた位置を算出するための方法の典型的な応用例を示す。図８Ａ〜図８Ｃの例では、ベークされたコンポーネントは、所望のポーズのためにキャラクタ・モデルの左腕の変形を算出するのに使用される、筋肉ディフォーマ(deformer)のオペレーションを表す。図８Ａは、ステップ７０５の実施形態によって要求される、所望のポーズのための典型的なベークされたコンポーネントに関連する一組の基準フレームの選択を示す。キャラクタ・アーマチュア８００が、一組のアニメーション変数に応じて操作されて、所望のポーズにされている。ステップ７０５は、ベークされたコンポーネントに関連する一組のアニメーション変数の一部分を識別する。さらに、ベークされたコンポーネントによる影響を受ける、基準フレーム８０５、８１０、８１５、８２０などの基準フレームも選択される。
【００５４】
ステップ７１０で、キャラクタ・モデル、または代替として、ベークされたコンポーネントによる影響を受ける可能性のあるキャラクタ・モデルの諸部分に、関連するアニメーション変数に応じて、幾何学的にポーズが与えられる。キャラクタ・モデルには、当技術分野で知られている任意のやり方で幾何学的にポーズを与えることができる。
【００５５】
図８Ｂは、ステップ７１０の実施形態によって要求される、キャラクタ・モデルのポイントの幾何学的にポーズが与えられた部分の算出を示す。図８Ｂでは、ステップ７１０は、アニメーション変数８３５、８４０、８４５、および８５０を含む、一組のアニメーション変数の部分に応じて、ベークされたコンポーネントによる影響を受けるキャラクタ・モデル８３０の部分にポーズを与える。一組のアニメーション変数のその部分を適用した結果は、幾何学的にポーズが与えられたキャラクタ・モデル８５５である。幾何学的にポーズが与えられたキャラクタ・モデルは、ポイント８６０、８６５を含む。
【００５６】
さらに、ステップ７１５は、関連するアニメーション変数をベークされたコンポーネントに入力する。関節の角度に対応するアニメーション変数に関して、ある実施形態は、そのアニメーション変数を、ベークされたコンポーネントに入力されるデフロブレートされた形態に変換する。ベークされたコンポーネントの出力は、所望のポーズについての、キャラクタ・モデル上の少なくとも１つポイントに関するポーズ誤差である。ある実施形態では、ベークされたコンポーネントは、キャラクタ・モデル上の少なくとも１つのポイントに関して、ある期間にわたるポーズ誤差を表す、一続きのポーズ誤差値を出力する。
【００５７】
一組の最適なセットのフレーム基底関数が使用されて、ベークされたコンポーネントを作成する際の一組のサンプル・データのサイズが縮小されている場合、ステップ７２０は、キャラクタ・モデルの各ポイントに関連するポーズ誤差に、その一組のフレーム基底関数を適用する。その結果、ポーズ誤差は、関連する基準フレーム群の中のコンポーネント値に分解される。
【００５８】
ステップ７２５は、各ポイントに関するポーズ誤差を、幾何学的にポーズが与えられたキャラクタ・モデル上のポイントの位置に加算し、結果を結合して、ポーズが与えられたキャラクタ・モデルにする。ベークされたコンポーネントの使用からもたらされる、ポーズが与えられたキャラクタ・モデルは、同一の一組のアニメーション変数に関して、元のモデル・コンポーネントから生成される結果を忠実に近似する。
【００５９】
図８Ｃは、ステップ７１５〜７２５の実施形態によって要求される、ベークされたコンポーネントによって出力されるポーズ誤差の、キャラクタ・モデルのポイントの幾何学的にポーズが与えられた位置への適用を示す。一組のアニメーション変数８７０の部分は、ベークされたコンポーネント８７５に入力されて、ポーズ誤差８８０、８８５を含む、一組のポーズ誤差が生成される。その一組のポーズ誤差は、ポイント８６０、８６５を含む、幾何学的にポーズが与えられたキャラクタ・モデルのポイントを、８９５、８９０のような新たな位置にそれぞれ移動させるのに使用される。キャラクタ・モデルのポイントの新たな位置は、元のモデル・コンポーネントの適用からもたらされる位置を忠実に近似する。
【００６０】
前述した実施形態の１つまたは複数を使用して、ポーズが与えられたモデル、つまり変形されたモデルが作成されると、任意のレンダリング技術、例えば、レイ・トレーシングまたはスキャンライン・レンダリングが、照明、シェーディング、テクスチャ・マッピング、他の任意のイメージ処理情報と組み合わせて、モデルから、最終的なイメージまたはフレームを作成することができることに留意されたい。
【００６１】
添付の文書を読んだ後、さらなる諸実施形態が、当業者には思い描かれよう。他の諸実施形態では、以上に開示した発明の組み合わせ、または部分的組み合わせが、有利に実施されることが可能である。アーキテクチャおよび流れ図のブロック図を、理解を容易にするためにグループ化している。しかし、ブロックの組み合わせ、新たなブロックの追加、ブロックの再構成などが、本発明の代替の諸実施形態において企図されることを理解されたい。
【００６２】
本明細書および図面は、したがって、限定的ではなく、例示的であると見なされたい。しかし、特許請求の範囲に記載する本発明のより広い趣旨および範囲を逸脱することなく、様々な改変および変更を行うことができることが明白であろう。
【図面の簡単な説明】
【００６３】
【図１】本発明の実施形態を実施するのに適したコンピュータ・システムを示すブロック図である。
【図２】関節キャラクタ・モデル上のポイントのポーズが与えられた位置を算出するモデル・コンポーネントの従来の使用を示す図である。
【図３】本発明の実施形態による、関節キャラクタ・モデル上のポイントのポーズが与えられた位置を算出する、ベークされたコンポーネントの使用を示す図である。
【図４】本発明の実施形態による、ポーズが与えられたキャラクタ・モデルを作成するための方法の２段階を示す図である。
【図５】本発明の実施形態による、関節キャラクタ・モデルに関連するモデル・コンポーネントからベークされたコンポーネントを作成するための方法を示す図である。
【図６Ａ】本発明の実施形態による、典型的な関節キャラクタ・モデルに関連するモデル・コンポーネントからベークされたコンポーネントを作成するための方法の典型的な応用例を示す図である。
【図６Ｂ】本発明の実施形態による、典型的な関節キャラクタ・モデルに関連するモデル・コンポーネントからベークされたコンポーネントを作成するための方法の典型的な応用例を示す図である。
【図６Ｃ】本発明の実施形態による、典型的な関節キャラクタ・モデルに関連するモデル・コンポーネントからベークされたコンポーネントを作成するための方法の典型的な応用例を示す図である。
【図７】本発明の実施形態による、ベークされたコンポーネントから関節キャラクタ・モデル上のポイントのポーズが与えられた位置を算出するための方法を示す図である。
【図８Ａ】本発明の実施形態による、ベークされたコンポーネントから関節キャラクタ・モデル上のポイントのポーズが与えられた位置を算出するための方法の典型的な応用例を示す図である。
【図８Ｂ】本発明の実施形態による、ベークされたコンポーネントから関節キャラクタ・モデル上のポイントのポーズが与えられた位置を算出するための方法の典型的な応用例を示す図である。
【図８Ｃ】本発明の実施形態による、ベークされたコンポーネントから関節キャラクタ・モデル上のポイントのポーズが与えられた位置を算出するための方法の典型的な応用例を示す図である。
【図１】
2007527054.tif 000004
【図２】
2007527054.tif 000005
【図３】
2007527054.tif 000006
【図４】
2007527054.tif 000007
【図５】
2007527054.tif 000008
【図６Ａ】
2007527054.tif 000009
【図６Ｂ】
2007527054.tif 000010
【図６Ｃ】
2007527054.tif 000011
【図７】
2007527054.tif 000012
【図８Ａ】
2007527054.tif 000013
【図８Ｂ】
2007527054.tif 000014
【図８Ｃ】
2007527054.tif 000015