(57)【要約】ソフト・ボディ・キャラクター（図９）をアニメーション化する方法は、準備フェーズ（３０５）とその後のアニメーション作成フェーズ（３１０）を含む。準備フェーズでは、キャラクター・モデルの皮膚変形が、基底ポーズの集合に対して決定される。ポーズ設定からの皮膚変形は、基底ポーズの集合に関してコンパクトに表現される。アニメーション作成フェーズでは、最終ポーズ設定キャラクターを作成するために基底ポーズの集合と皮膚モード応答が使用される。所望のキャラクター・ポーズが基底集合上に射影され、基底重みの集合が決定される。基底重みが皮膚応答の集合に適用され、皮膚ポーズ応答が作成され、皮膚ポーズ応答が基底集合上に射影されてポーズ設定キャラクター・モデルが作成される。
2006514380.tif 000002
【特許請求の範囲】
【請求項１】
ポーズ設定キャラクター・モデルを作成する方法であって、
サンプル・キャラクター位置の集合から基底集合を決定することと、
それぞれの皮膚応答が前記規定集合の１つに対応しているその皮膚応答の集合を、前記キャラクター・モデルに対して決定することと、
第１のキャラクター・ポーズを前記基底集合上に射影し、第１の参照フレームにおいて基底重みの集合を決定することと、
前記基底重みの集合を前記皮膚応答の集合に適用し、第１の皮膚ポーズ応答を作成することと、
前記第１の皮膚ポーズ応答と前記基底集合からポーズ設定キャラクター・モデルを構成することとを含む方法。
【請求項２】
さらに、
第２の参照フレームについて、キャラクター・ポーズを射影するステップと前記基底重みの集合を適用して第２の皮膚ポーズ応答を作成するステップとを繰り返すことと、
前記第１の皮膚ポーズ応答、前記第２の皮膚ポーズ応答、前記基底集合から前記ポーズ設定キャラクター・モデルを構成することとを含む請求項１に記載の方法。
【請求項３】
前記構成することは、前記第１と第２の参照フレームに関連付けられたフレーム重みの集合に従って前記第１と第２の皮膚ポーズ応答を組み合わせること含む請求項２に記載の方法。
【請求項４】
さらに、前記キャラクター・モデルを通してフレーム重み値の初期集合を拡散することによりフレーム重みの集合を決定することを含む請求項３に記載の方法。
【請求項５】
さらに、前記皮膚応答の集合を非線形解の対応する集合と比較することによりフレーム重みの集合を決定することを含む請求項３に記載の方法。
【請求項６】
さらに、前記フレーム重みの集合の少なくとも一部を、ユーザから受け取った値に設定すること含む請求項３に記載の方法。
【請求項７】
さらに、
第２のキャラクター・ポーズについて、キャラクター・ポーズを射影するステップと、前記基底重みの集合を適用するステップと、前記皮膚応答の集合を射影して第２の皮膚ポーズ設定キャラクター・モデルを作成するステップとを繰り返すことを含む請求項１に記載の方法。
【請求項８】
前記サンプル・キャラクター位置の集合は、キャラクター・ポーズの学習集合を含む請求項１に記載の方法。
【請求項９】
前記サンプル・キャラクター位置の集合は、少なくとも１つの動的に作成されたポーズを含む請求項１に記載の方法。
【請求項１０】
アーマチュアが、前記サンプル・キャラクター位置の集合と前記第１のキャラクター・ポーズを定義するために使用される請求項１に記載の方法。
【請求項１１】
前記第１のキャラクター・ポーズが、アニメーション変数に従って少なくとも部分的に定義される請求項１に記載の方法。
【請求項１２】
皮膚応答の集合を決定することが、前記基底集合の基底毎に、前記基底集合のうちの１つからの変位の集合を前記キャラクター・モデルの一部に適用することと、前記キャラクター・モデル全体にわたって前記変位の関数を最小にすることを含む請求項１に記載の方法。
【請求項１３】
前記関数は、物質エネルギー関数であることを特徴とする請求項１２に記載の方法。
【請求項１４】
さらに、
前記キャラクター・モデルをサンプル点の三次元場に離散化することと、前記変位の集合を前記サンプル点の一部に適用することと、前記キャラクター・モデルに関連付けられているすべてのサンプル点で前記関数を最小にすることとを含む請求項１２に記載の方法。
【請求項１５】
前記場は、デカルト座標グリッドである請求項１４に記載の方法。
【請求項１６】
前記場は、四面体体積要素の頂点の集合である請求項１４に記載の方法。
【請求項１７】
前記皮膚応答の集合のそれぞれは、前記基底集合の前記要素の前記一次結合として定義される請求項１に記載の方法。
【請求項１８】
ポーズ設定キャラクター・モデルを作成する方法であって、
キャラクター・ポーズをキャラクター・モデルに関連付けられた参照フレームの集合に変換することと、
参照フレーム毎に、前記キャラクター・ポーズに対する応答として前記キャラクター・モデルの皮膚ポーズ応答を作成することと、
それぞれの参照フレームの前記皮膚ポーズ応答から前記キャラクター・モデルの複合皮膚応答を構成することとを含む方法。
【請求項１９】
複合皮膚応答を構成することは、第１の参照フレームの前記皮膚応答の一部を第２の参照フレームの前記皮膚応答の一部と組み合わせることを含む請求項１８に記載の方法。
【請求項２０】
前記第１の参照フレームの前記皮膚応答の前記部分と前記第２の参照フレームの前記皮膚応答の前記部分は、前記キャラクター・モデルの２つの、少なくとも一部重なり合う領域に対応する請求項１９に記載の方法。
【請求項２１】
前記第１の参照フレームの前記皮膚応答の前記部分と前記第２の参照フレームの前記皮膚応答の前記部分は、前記キャラクター・モデルの２つの同じ領域に対応する請求項２０に記載の方法。
【請求項２２】
前記第１の参照フレームの前記皮膚応答の前記部分と前記第２の参照フレームの前記皮膚応答の前記部分は、前記キャラクター・モデルの２つの異なる領域に対応する請求項１９に記載の方法。
【請求項２３】
第１の参照フレームの前記皮膚応答の前記部分と前記第２の参照フレームの前記皮膚応答の前記部分は、前記第１と第２の参照フレームの前記皮膚応答の前記複合皮膚応答への影響を定義するフレーム重みの集合に従って組み合わされる請求項１９に記載の方法。
【請求項２４】
さらに、
それぞれの参照フレームの前記複合皮膚応答に対する前記影響を定義する、前記参照フレームの集合に関連付けられたフレーム重みの集合を決定することを含む請求項１８に記載の方法。
【請求項２５】
フレーム重みの集合を決定することは、前記キャラクター・モデルを通してフレーム重み値の初期集合を拡散することを含む請求項２４に記載の方法。
【請求項２６】
拡散することは、
キャラクター・モデルを複数の三次元サンプル点からなる場に離散化することと、
初期フレーム重み値を、それぞれの参照フレームの原点に隣接するサンプル点に割り当てることと、
前記初期フレーム重み値の拡散から複数のサンプル点についてフレーム重み値の集合を決定することとを含む請求項２５に記載の方法。
【請求項２７】
さらに、前記皮膚応答の集合を非線形解の対応する集合と比較することによりフレーム重みの集合を決定することを含む請求項２４に記載の方法。
【請求項２８】
さらに、前記フレーム重みの集合の少なくとも一部を、ユーザから受け取った値に設定することを含む請求項２４に記載の方法。
【請求項２９】
サンプル・キャラクター位置の集合から基底集合を決定するステップと、
それぞれの皮膚応答が前記規定集合の１つに対応しているその皮膚応答の集合を、前記キャラクター・モデルに対して決定するステップと、
第１のキャラクター・ポーズを前記基底集合上に射影し、第１の参照フレームにおいて基底重みの集合を決定するステップと、
前記基底重みの集合を前記皮膚応答の集合に適用し、第１の皮膚ポーズ応答を作成するステップと、
前記第１の皮膚ポーズ応答と前記基底集合からポーズ設定キャラクター・モデルを構成するステップと
を含むオペレーションを実行することを情報処理デバイスに指令する複数の命令を格納する情報記憶媒体。
【請求項３０】
さらに、
第２の参照フレームについて、キャラクター・ポーズを射影するステップと前記基底重みの集合を適用して第２の皮膚ポーズ応答を作成するステップとを繰り返すことと、
前記第１の皮膚ポーズ応答、前記第２の皮膚ポーズ応答、前記基底集合から前記ポーズ設定キャラクター・モデルを構成することとを含む請求項２９に記載の情報記憶媒体。
【請求項３１】
前記第１のキャラクター・ポーズは、アニメーション変数に従って少なくとも部分的に定義される請求項２９に記載の情報記憶媒体。
【請求項３２】
皮膚応答の集合を決定することは、前記基底集合の基底毎に、前記基底集合のうちの１つからの変位の集合を前記キャラクター・モデルの一部に適用することと、前記キャラクター・モデル全体にわたって前記変位の関数を最小にすることを含む請求項２９に記載の情報記憶媒体。
【請求項３３】
キャラクター・ポーズをキャラクター・モデルに関連付けられた参照フレームの集合に変換するステップと、
参照フレーム毎に、前記キャラクター・ポーズに対する応答として前記キャラクター・モデルの皮膚ポーズ応答を作成するステップと、
それぞれの参照フレームの前記皮膚ポーズ応答から複合皮膚応答を構成するステップとを含むオペレーションを実行することを情報処理デバイスに指令する複数の命令を格納する情報記憶媒体。
【請求項３４】
複合皮膚応答を構成することが、第１の参照フレームの前記皮膚応答の一部を第２の参照フレームの前記皮膚応答の一部と組み合わせることを含む請求項３３に記載の情報記憶媒体。
【請求項３５】
第１の参照フレームの前記皮膚応答の前記部分と前記第２の参照フレームの前記皮膚応答の前記部分は、前記第１と第２の参照フレームの前記皮膚応答の前記複合皮膚応答への影響を定義するフレーム重みの集合に従って組み合わされる請求項３４に記載の情報記憶媒体。
【請求項３６】
前記オペレーションは、さらに、それぞれの参照フレームの前記複合皮膚応答に対する前記影響を定義する、前記参照フレームの集合に関連付けられたフレーム重みの集合を決定するステップを含む請求項３５に記載の情報記憶媒体。
【請求項３７】
第１のポーズのキャラクター・モデルが含まれる第１のイメージと第２のポーズのキャラクター・モデルが含まれる連続するイメージとを格納する有形な媒体であって、前記第２のポーズの前記キャラクター・モデルの外観は、前記第１のポーズの前記キャラクター・モデルの外観とは無関係であり、前記第１と第２のポーズの前記キャラクターは、請求項１に記載の方法に基づいて作成される有形の媒体。
【請求項３８】
第１のポーズのキャラクター・モデルが含まれる第１のイメージと第２のポーズのキャラクター・モデルが含まれる連続するイメージとを格納する有形な媒体であって、前記第２のポーズの前記キャラクター・モデルの外観は、前記第１のポーズの前記キャラクター・モデルの外観とは無関係であり、前記第１と第２のポーズの前記キャラクターが、請求項１８に記載の方法に基づいて作成される有形の媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・グラフィックスの分野に関するものであり、具体的には、コンピュータ生成キャラクターをアニメーション化するための方法と装置に関するものである。本発明は、コンピュータ・グラフィックスの分野に関する。多くのコンピュータ・グラフィック・イメージは、与えられた視点から光と三次元シーンとの相互作用を数学的にモデル化することにより作成される。このプロセスは、レンダリングと呼ばれ、与えられた視点からシーンの二次元イメージを生成するものであり、現実世界の風景を写真に撮るのと似ている。アニメーション・シーケンスは、時間の経過とともにシーンが徐々に変化するときにシーンのイメージのシーケンスをレンダリングすることにより作成することができる。リアルなレンダリング・イメージとアニメーションを作成することに多大な労力が費やされている。
【背景技術】
【０００２】
アニメーションは、手描きであろうとコンピュータ生成であろうと、科学技術であるのと同時に芸術でもある。アニメーションは、シーンをリアルに見せるだけでなく、物語で要求される適切なドラマ進行状況と情緒的インパクトも伝えなければならない。このことは、特に、キャラクターのアニメーション化の際に当てはまる。キャラクターは、物語のドラマ進行の機動力であり、視聴者との感情面の結び付きを確立する。
【０００３】
芸術的効果のあるキャラクター・アニメーションを作成するために、アニメーターは、ラフ・バージョンのシーンを作成し、その後、キャラクター・アニメーションを微調整して、最終的なシーンの所望のドラマと表現を作成することが多い。これは、映画監督がシーンの完全なムードを捕らえるために俳優達とシーンのリハーサルをするのと似ている。アニメーターは、キャラクター・アニメーションの表現力に対し責任があるため、アニメーターは、アニメーション・ツールを使用して、キャラクター・アニメーションを効率よく微調整し、アニメーションの最終的態様を正確にプレビューすることが重要である。
【０００４】
コンピュータ生成アニメーションでは、キャラクターの外観は、三次元コンピュータ・モデルにより定義される。リアルに見えるようにするため、キャラクターのコンピュータ・モデルは、極めて複雑であり、数百万個のサーフェスと数百あるいは数千個の属性を持つことが多い。このような複雑なモデルをアニメーション化する作業には複雑さが伴うので、アニメーション・ツールは、多くの場合、キャラクター・アニメーションを定義するためにアーマチュアとアニメーション変数に依存する。アーマチュアは、キャラクターのポーズ、つまり姿勢を表す「スティック・フィギュア」である。「スティック・フィギュア」の「スティック」であるアーマチュア・セグメントを移動することにより、アーマチュアを操作して望むポーズにできる。アニメーターによってアーマチュアのポーズが決められたら、アニメーション・ツールにより、キャラクターの姿勢がアーマチュアの姿勢をおおよそ反映するようにキャラクター・モデルを修正する。
【０００５】
アニメーション変数は、複雑なキャラクター・モデルのキャラクター・アニメーションを定義するもう１つの手段である。アニメーション変数は、キャラクター・モデルを修正する機能によって使用されるパラメータである。アニメーション変数とその関連する機能を使用して、入り組んだ修正を比較的単純なコントロールに対するキャラクター・モデルに抽象化する。例えば、アニメーション変数により、キャラクターの口の開度を定義することができる。この例では、アニメーション変数の値は、キャラクターの口を所望の開度で開くのに必要なキャラクターのアーマチュアのさまざまな部分の位置を決定するために使用される。その後、アニメーション・ツールで、最終ポーズ設定アーマチュアに従ってキャラクター・モデルを修正し、口を開いたキャラクター・モデルを作成する。
【０００６】
１つのアーマチュアから最終ポーズ設定キャラクター・モデルを作成するさまざまなアプローチがある。従来のアプローチの１つは、キャラクター・モデル上の複数の点を１つまたは複数のアーマチュア・セグメントに関連付けることである。アーマチュアがあるポーズに移るときに、それぞれのアーマチュア・セグメントに関連付けられている複数の点が、関連付けられたポーズ設定されたアーマチュア・セグメントの位置に基づき新しい位置に運動学的に変換される。この運動学的変換は高速実行できるため、アニメーターは、リアルタイムで、またはリアルタイムに近い速さで、対話方式によりアニメーションをプレビューし、微調整することができる。しかし、運動学的変換から生じるアニメーションは、多くの場合、硬直しているように見え、いかにも「人形」のようである。
【０００７】
さらに、人間や動物などの多数のキャラクターは、変形可能なやわらかいオブジェクトである。運動学的変換では、「ソフト・ボディ」オブジェクトの場合に特にパフォーマンスが悪いが、それは、キャラクターの変形を正確にシミュレートできないからである。このため、ポーズをとるときにキャラクターがリアルに曲がり、膨らむことが困難である。さらに、運動学的変換は、やわらかいボディ・オブジェクトに適用された場合、ひび割れや継ぎ目が、モデル・サーフェスのキャラクター接合部に生じる。追加アーマチュア・セグメントを追加して、サーフェスの曲がりや膨れをシミュレートし、モデル・サーフェスの接合部を滑らかにすることができるが、そのような追加アーマチュア・セグメントを作成するのは時間を要し、最終ポーズ設定キャラクターは、曲がりと膨れをリアルに見せるために広範にわたって手作業による微調整を必要とすることが多い。
【０００８】
運動学的変換を使用してソフト・ボディ・キャラクターをアニメーション化する代わりに、物理的シミュレーション・アプローチを使用してソフト・ボディ・キャラクターをアニメーション化することができる。物理的シミュレーション・アプローチでは、キャラクター・モデルは材料物理学シミュレーションにより処理され、物理的にリアルに見えるソフト・ボディ・オブジェクトを作成する。このアプローチは、セットアップに非常に時間のかかる方法であり、多くの場合、モデラーでは皮膚などのキャラクターの外側だけでなく、その下の筋肉や骨格をも定義する必要がある。さらに、アニメーターによって作成されたポーズ毎にキャラクター・モデルを処理する作業は、極めて多量の計算を必要とし、多くの場合、短いアニメーション・シーケンスであってもキャラクター・モデルの変形を計算するのに数時間、ときには数日かかることさえある。
【０００９】
アニメーション・プロセスはその性質上時間がかかるため、たいてい、アニメーターは、簡略化された「スタンドイン」モデルを使用してシーンを作成し、その後、その結果として得られるアニメーションを最終的なキャラクター・モデルで見るのを待つ必要がある。アニメーターはそのアニメーションの最終結果を直ぐに見ることはできないため、キャラクターの表現力を微調整することは非常に困難であり、また不効率である。この手法を利用した場合、アニメーターは本質的に手探り状態で作業することになり、最終結果を推測することしかできない。
【００１０】
アニメーション化されたキャラクターは、さらに、シーン内の他のオブジェクトまたはキャラクターと衝突または相互作用することが多い。衝突をリアルに見せるために、アニメーション化されたキャラクターは、衝突オブジェクトの周りで変形させる必要がある。衝突に対する応答としてのリアルなキャラクター変形は、衝突をアニメーション化するうえで、特にキャラクターがソフト・ボディ・オブジェクトである場合に、本質的である。運動学的変換などの従来のキャラクター・ポーズ設定手法では、衝突に対する応答としてキャラクター・モデルのリアルな変形を実行することはできない。その代わりに、アニメーターは、手作業で、キャラクター・モデルの形状を変更しなければならない。物理的シミュレーション手法を使用すれば、衝突に対する応答としてキャラクター・モデルを変形することができるが、上述のように、物理的シミュレーション手法は、セットアップと計算に非常に時間がかかる。物理的シミュレーション手法の時間的要件はかなり高いので、アニメーターが適切な劇的衝撃を伝えるように衝突アニメーションを微調整することは困難である。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ソフト・ボディ・キャラクターのアニメーション化のために、１）アーマチュア・ポーズに対する応答としてソフト・ボディ・キャラクターをリアルに変形し、２）アニメーターが操作しやすく、３）アニメーターがアニメーションを効率よく微調整することができるように素早く評価できる、４）アニメーターがキャラクター・モデルの最終的外観をプレビューできる方法とシステムを用意することが望ましい。さらに、ソフト・ボディ・キャラクターは、自己衝突または外部オブジェクトとの衝突からリアルに変形することも望ましい。
【課題を解決するための手段】
【００１２】
ソフト・ボディ・キャラクターをアニメーション化する方法は、第１のキャラクター準備フェーズとその後の第２のキャラクター・アニメーション作成フェーズを含む。キャラクター準備フェーズでは、キャラクター・モデルの皮膚変形が、基底ポーズの集合のそれぞれについて決定される。キャラクター変形フェーズでは、さらに、衝撃衝突に対する応答として多数の皮膚接触点でキャラクター・モデルの皮膚変形を決定する。本発明の一実施態様では、皮膚モード応答と呼ばれるポーズ決定からの皮膚変形および皮膚衝撃応答と呼ばれる衝撃衝突からの皮膚変形は、この基底ポーズの集合に関してコンパクトに表現される。
【００１３】
キャラクター・アニメーション作成フェーズでは、基底ポーズの集合、皮膚モード応答と皮膚衝撃応答を使用して、最終ポーズ設定キャラクターを作成する。所望されるキャラクター・ポーズに関係なく、キャラクター・アニメーション作成フェーズでは、同じ基底ポーズの集合、皮膚モード応答と皮膚衝撃応答を使用する。したがって、この基底ポーズの集合、皮膚モード応答と皮膚衝撃応答は、キャラクター・モデルに対し１回だけ決定される必要がある。
【００１４】
一実施態様では、キャラクター・モデルをアニメーション化する方法は、キャラクター・ポーズの集合から基底集合を決定し、その基底集合に対応するキャラクター・モデルの皮膚応答の集合を決定することを含む。所望のキャラクター・ポーズは基底集合上に射影され、基底重みの集合が決定される。基底重みが皮膚応答の集合に適用されて皮膚ポーズ応答が作成され、皮膚ポーズ応答が基底集合上に射影されてポーズ設定キャラクター・モデルが作成される。他の実施態様では、キャラクター・ポーズを射影するステップ、基底重みの集合を適用するステップ、皮膚応答の集合を射影するステップが、第２の所望のキャラクター・ポーズについて繰り返され、第２のポーズ設定キャラクター・モデルが作成される。
【００１５】
一実施態様では、キャラクター・ポーズの集合は、学習集合からのポーズを含む。他の実施態様では、キャラクター・ポーズの集合は、ランダムに作成されたポーズを含む。さらに他の実施態様では、アーマチュアを使用して、キャラクター・ポーズの集合を定義するとともに、所望のキャラクター・ポーズをも定義する。他の実施態様では、アニメーション変数は、所望のポーズの少なくとも一部を定義する。
【００１６】
一実施態様では、皮膚応答を決定することは、基底集合内のポーズからの変位の集合をキャラクター・モデルの一部分に適用すること、およびキャラクター・モデル全体にわたる変位の関数を最小化することを含む。一実施態様では、この関数は、弾性エネルギー関数である。他の実施態様では、この関数は、キャラクター・モデルに関連付けられているサンプル点の集合にわたって最小化される。
【００１７】
この方法の一実施態様では、キャラクター・ポーズをキャラクター・モデルに関連付けられた参照フレームの集合に変換する。それぞれの参照フレームに対して、キャラクター・モデルの皮膚ポーズ応答がキャラクター・ポーズに対する応答として作成される。この実施態様では、それぞれの参照フレームの皮膚ポーズ応答からキャラクター・モデルの複合皮膚応答を構成する。
【００１８】
他の実施態様では、第１の参照フレームの皮膚応答の一部分を第２の参照フレームの皮膚応答の一部分とを組み合わせることにより複合皮膚応答を構成する。第１の参照フレームの皮膚応答の一部分と第２の参照フレームの皮膚応答の一部分は、キャラクター・モデルの２つの、少なくとも一部重なり合う領域に対応することができる。それとは別に、第１の参照フレームの皮膚応答の一部分と第２の参照フレームの皮膚応答の一部分は、キャラクター・モデルの２つの異なる領域に対応する。
【００１９】
他の実施態様では、第１と第２の参照フレームの皮膚応答の複合皮膚応答への影響を定義するフレーム重みの集合に従って、第１の参照フレームの皮膚応答の一部分を第２の参照フレームの皮膚応答の一部分と組み合わせる。さらに他の実施態様では、キャラクター・モデルを通してフレーム重み値の初期集合を拡散することによりフレーム重みの集合を決定する。
【発明を実施するための最良の形態】
【００２０】
本発明は、図面を参照しつつ説明される。
【００２１】
分かりやすくするため図では本発明を二次元で例示しているが、本発明は、一般に、三次元コンピュータ・モデルの操作に適用可能であることに留意されたい。
【００２２】
図１は、本発明の一実施形態を実装することができるコンピュータ・システム１００の実施形態を示す図である。コンピュータ・システム１００は、通常、モニタ１１０、コンピュータ１２０、キーボード１３０、ユーザ入力デバイス１４０、ネットワーク・インターフェイス１５０を備える。ユーザ入力デバイス１４０は、コンピュータ・マウス、トラック・ボール、トラック・パッド、グラフィックス・タブレット、タッチ・スクリーン、および／またはユーザがモニタ１１０上に表示されるグラフィックス、オブジェクト、アイコン、および／またはテキストを作成または選択できるようにするその他の有線または無線入力デバイスを備える。ネットワーク・インターフェイス１５０の実施形態は、通常、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークなどの電子通信ネットワーク、例えば、インターネット、および／または仮想ネットワーク、例えば、仮想プライベート・ネットワーク（ＶＰＮ）と通信する有線または無線通信を実現する。
【００２３】
コンピュータ１２０は、通常、１つまたは複数の汎用プロセッサ１６０などのコンポーネント、ランダム・アクセス・メモリ（ＲＡＭ）１７０、ディスク・ドライブ１８０などのメモリ記憶デバイス、上記コンポーネントを相互接続するシステム・バス１９０を備える。ＲＡＭ  １７０とディスク・ドライブ１８０は、データ、オーディオ／ビデオ・ファイル、コンピュータ・プログラム、アプレット・インタプリタまたはコンパイラ、仮想マシンを格納するための有形な媒体の実施形態であり、本明細書で説明されている発明のいくつかの実施形態では、幾何学的シーン・データ、オブジェクト・データ・ファイル、シェーダー・ディスクリプタ、レンダリング・エンジン、出力イメージ・ファイル、テクスチャ・マップ、変位マップを含む。コンピュータ１２０の他の実施形態は、オーディオとグラフィックス・データを処理し、出力するための専用オーディオおよびビデオ・サブシステムを備えることができる。他の種類の有形な媒体としては、フロッピ・ディスク、取り外し可能ハード・ディスク、ＤＶＤ−ＲＯＭ、ＣＤ−ＲＯＭ、およびバーコードなどの光記憶媒体、フラッシュ・メモリなどの不揮発性メモリ・デバイス、読み取り専用メモリ（ＲＯＭＳ）、バッテリ・バックアップ揮発性メモリ、ネットワーク接続記憶デバイスがある。
【００２４】
図２Ａ、２Ｂは、例示的キャラクタと例示的キャラクタのポーズを設定するために使用される例示的アーマチュアを示す図である。キャラクター２０５は、分かりやすくするため二次元で示した、ソフト・ボディ・オブジェクトの三次元コンピュータ・モデルである。キャラクター２０５は人間そっくりの形に示されているが、キャラクター２０５は、現実的な、および／または擬人化された属性を持つ植物、動物、無生物オブジェクトを含む、さまざまな種類のオブジェクトの形をとりうる。キャラクター２０５は、三次元モデリング・ソフトウェア、手続き的オブジェクト作成、物理的オブジェクトの三次元走査の範囲内の手作業による構成を含む、三次元コンピュータ・モデルを作成するために使用される任意の方法で作成することができる。キャラクター２０５は、多角形の集合、ボクセル、ベジエ曲面または非一様有理Ｂスプライン曲線（ＮＵＲＢＳ）などの高次曲面、構成的立体幾何学、および／または三次元オブジェクトを表すための他の何らかの手法で構成することができる。さらに、キャラクター２０５は、色、テクスチャ、材料特性、透明度、反射率、照明と陰影属性、変位マップ、バンプ・マップを含む、オブジェクトの外観を定義する属性を含むことができる。
【００２５】
キャラクター２０５は、アーマチュア２１０を通じてアニメーション化される。アーマチュア２１０は、１つまたは複数のアーマチュア・セグメントを含む。アーマチュア・セグメントは、図２Ａに示されているように、接続状態であるか、または分離されている。アニメーターは、キャラクターのポーズを定義するため、アーマチュア２１０のセグメントの位置と向きを操作する。ポーズは、キャラクター２０５の姿勢を定義するアーマチュアの位置と向きの集合である。アーマチュア・セグメントは、サイズ、位置、または向きに関して制約でき、またアニメーター側で、自由に操作することもできる。アーマチュア・セグメントの個数は、キャラクターの複雑度によって異なり、典型的なキャラクターでは、アーマチュアは、数百または数千個のセグメントを含むことがある。場合によっては、アーマチュア・セグメントの個数と位置は、キャラクターの「骨格」のものと類似しているが、アーマチュア・セグメントは、さらに、微妙な顔の表情や骨または他の解剖学的特徴に必ずしも関連付けられていないその他のキャラクター詳細も定義できる。さらに、図２Ａのアーマチュア２１０内のアーマチュア・セグメントは、点の集合からなるが、本発明の他の実施形態では、アーマチュア・セグメントは、サーフェスの集合および／またはボリュームの集合で構成することができる。アーマチュア２１０はアニメーターによりポーズが設定されるが、キャラクター２０５の姿勢は、アーマチュア２１０の姿勢を大まかに反映している。
【００２６】
キャラクター２０５は、キャラクター２０５が一方のポーズから他方のポーズに漸進的に移動するフレーム、つまり静止画のシーケンスを作成することによりアニメーション化される。キャラクター２０５は、さらに、平行移動、回転、拡大縮小、または他の何らかの手段によりフレーム間で全体として操作されるようにできる。アニメーターは、シーケンス内の各フレームについてキャラクターのポーズを手作業で作成するか、または２つまたはそれ以上のキー・フレームに対するポーズを作成することができ、その後アニメーション・ソフトウェアにより補間し、各フレームのポーズを作成する。ポーズを、また、関数、プロシージャ、またはアルゴリズムを使用して、自動的に作成することもできる。アニメーション変数は、ポーズを定義する１つまたは複数の関数に対するパラメータとして使用することができる。キャラクター２０５やその関連するアーマチュア２１０は、静止ポーズ、つまりキャラクターのデフォルトの姿勢で示されている。一実施形態では、キャラクターの静止ポーズは、キャラクター・モデルとアーマチュアの初期配置により決定される。
【００２７】
図２Ｂは、アニメーターにより操作され、あるポーズにされた後のキャラクター２２０を例示している。この実施形態では、アニメーターは、アーマチュア２２５の腕セグメントを移動した。それに対する応答として、キャラクター２２０は、腕を持ち上げた状態のポーズをとる。さらに複雑なポーズは、追加アーマチュア・セグメントを操作することにより形成できる。
【００２８】
アーマチュア・ポーズの作成の後、キャラクターは、アーマチュアの姿勢を反映するように処理される。本発明では、アニメーション・プロセスを２つのフェーズに分割することによりソフト・ボディ・キャラクターの対話的なフレーム・レートやリアルなポーズ設定を可能にする。
【００２９】
図３は、本発明の実施形態によりキャラクターをアニメーション化する方法の２つのフェーズを示すブロック図３００である。第１のフェーズ３０５は、キャラクター準備フェーズである。キャラクター準備フェーズは、比較的多量の計算を必要とし、アニメーションに先立って実行される。キャラクター準備フェーズ３０５では、キャラクターのさまざまなポーズへの変形を定義するキャラクター用のモード・データの集合を作成する。
【００３０】
キャラクター準備フェーズ３０５の時間完了後、アニメーターは、キャラクター・アニメーション作成フェーズ３１０でキャラクターのアニメーション化を行う。キャラクター・アニメーション作成フェーズ３１０で、アニメーターは、１つのフレーム内の１つのキャラクターのアーマチュア・ポーズを定義することによりキャラクターのアニメーション化シーケンスを作成する。最終ポーズ設定キャラクターは、アニメーターにより定義されたアーマチュアのポーズとキャラクター準備フェーズ３０５ですでに作成されているモード・データの集合から作成される。本発明の一実施形態では、アーマチュア・ポーズとモード・データの集合からリアルタイムで最終ポーズ設定キャラクターを作成し、アニメーターはその結果をプレビューすることができる。所望のキャラクター・ポーズに関係なく、キャラクター・アニメーション作成フェーズでは、モード・データの同じ集合を使用して、最終ポーズ設定キャラクターを作成する。したがって、キャラクター準備フェーズ３０５は、１つのキャラクターに対し１回だけ実行すればよい。キャラクター・アニメーション・フェーズ３１０を繰り返して、アニメーション化シーケンス内のそれぞれのアーマチュア・ポーズに対し最終ポーズ設定キャラクターを作成する。
【００３１】
図４は、本発明の一実施形態によりキャラクターをアニメーション化するキャラクター準備フェーズのブロック図４００である。ステップ４０５では、サンプル・アーマチュア位置の集合から基底を作成する。このステップでは、サンプル・アーマチュア位置の集合が、キャラクターに関連付けられたアーマチュアについて作成される。一実施形態では、サンプル・アーマチュア位置の集合は、キャラクターの典型的アクションを定義する学習集合からのポーズを含む。例えば、サンプル・アーマチュア位置の集合は、歩く、走る、握る、跳ねる、登るなどのアクションに関連付けられたアーマチュア・ポーズを含むことができる。他の実施形態では、サンプル・アーマチュア位置の集合は、プログラムにより作成される。サンプル・アーマチュア位置は、１つまたは複数のアーマチュア・セグメントを選択し、それらのセグメントを操作して新しい位置または向きにすることにより手続き的に作成することができる。例えば、それぞれのアーマチュア・セグメントを次々に選択し、指定された次元方向に１単位移動して、サンプル・アーマチュア位置を作成する。この実施形態では、集合内のサンプル・アーマチュア位置の総数がアーマチュア・セグメントの個数の３倍になる。他の実施形態では、選択されたアーマチュア・セグメントに隣接するアーマチュア・セグメントも、それぞれのサンプル・アーマチュア位置が作成されるときに弾性モデルに従って再配置される。さらに他の実施形態では、サンプル・アーマチュア位置について、アーマチュア・セグメント上の制約を考慮する。例えば、アーマチュア・セグメントは運動範囲を制限することができる。
【００３２】
それぞれのサンプル・アーマチュア位置は、アーマチュア・セグメントの位置を定義するベクトルにより記述される。一実施形態では、このベクトルは、静止または初期位置のその位置に関してアーマチュア・セグメントの位置を定義する。それぞれのサンプル・アーマチュア位置に対するベクトルを組み合わせて、アーマチュアに対するサンプル・アーマチュア位置の集合を含む行列を形成する。この行列の特異値分解を計算して、アーマチュアに対する基底関数（またはモード）の集合を見つける。他の実施形態では、正準相関などの基底関数の集合を計算する他の方法も使用できる。基底関数の集合は、ポーズを複数の時間基底関数のうちの１つまたは複数の重み付き総和として近似的に表現することができる「ポーズ空間」をコンパクトに定義する。他の実施形態では、その結果得られる基底関数の集合が正規直交基底でない場合、基底関数の集合は、それぞれの基底関数はその大きさが１で、他のすべての基底関数に対し垂直になるように正規直交化される。
【００３３】
ステップ４０５で基底関数の集合を作成した後、ステップ４１０でサンプル・アーマチュア位置基底関数のそれぞれについて皮膚モード応答が決定される。皮膚モード応答は、その静止ポーズからサンプル・アーマチュア位置にアーマチュアを移動することに対する応答としてのキャラクターのサーフェスの変形である。
【００３４】
図５は、本発明の一実施形態によるステップ４１０で必要なキャラクターの皮膚モード応答を決定する方法を示すブロック図５００である。ステップ５０５で、キャラクター・モデルとそのアーマチュアは、離散化され、サンプル点の集合が作成される。一実施形態では、キャラクター・モデルは、三次元グリッドに離散化される。この実施形態では、キャラクター・モデル内の、またはアーマチュアに隣接するグリッド点は、サンプル点の集合である。他の実施形態では、キャラクター・モデルは、四面体セルの集合に離散化される。この実施形態では、四面体の集合は、キャラクター・モデルの中、およびアーマチュアの周りに当てはめられる。四面体の頂点は、サンプル点の集合である。これらの実施形態は、実施形態として意図されており、有限要素有限体積法や球の和離散化などさまざまな種類の離散化をステップ５０５で使用できる。
【００３５】
ステップ５０５のアプリケーション実施形態では、図６Ａは、キャラクター・モデル６０３と三次元グリッド６０７で離散化された関連するアーマチュア６０５を示している。キャラクター・モデル６０３とそのアーマチュア６０５は静止位置にある。二次元で示されてはいるが、グリッド６０７は三次元グリッドである。さらに、グリッド６０７の密度、つまり、単位体積あたりのグリッド立方体の個数は、図６Ａに、説明のみを目的として示されている。キャラクター・モデル６０３のサイズと相対的比率に応じて、典型的なグリッドは、キャラクターを中心におおよそ高さが立方体１２０個分、幅が立方体５０個分、奥行きが立方体７０個分のバウンディング・ボックスを形成する。これらの寸法は、キャラクター・モデル６０３の高さ、幅、奥行きに応じて異なる。
【００３６】
他の実施形態では、キャラクター６０３の異なる部分についてグリッドの密度は異なり、キャラクターのより複雑な部分、例えば、キャラクターの顔や手の正確さを保証できる。グリッド６０７は、キャラクター・モデル６０３を囲むだけでなく、キャラクター・モデル６０３の内側も埋める。他の実施形態では、キャラクター・モデル６０３の外に完全に出ているグリッド要素は、破棄されるが、キャラクター・モデルの内側に部分的に、または完全に入っているグリッド要素は、皮膚モード応答を決定するため保持される。これにより、皮膚モデル応答を決定するための処理とメモリに対する要件が緩和される。
【００３７】
図６Ｂは、例示的アーマチュア６２５とその関連するキャラクター・モデル６２３の基底関数に関連付けられているサンプル・アーマチュア位置を例示している。この実施形態では、アーマチュア・セグメント６２７、６２９は、新しい位置に配置される。変位ベクトル６３１、６３３は、それぞれ、静止ポーズからのアーマチュア・セグメント６２７、６２９の変位を定義する。輪郭６３５は、サンプル・アーマチュア位置の中への静止位置に対するアーマチュア変位の影響を受けるキャラクター・モデル６２３の一部分を例示している。
【００３８】
ステップ５１０では、サンプル・アーマチュア位置からの変位ベクトルは、アーマチュア・セグメントに隣接するサンプル点に割り当てられる。
【００３９】
ステップ５１０のアプリケーション実施形態では、図６Ｃは、アーマチュア・セグメントに隣接するサンプル点への変位ベクトルの割り当てを例示している。図６Ｃは、キャラクター・モデルの一部分６４０、その関連するアーマチュア６４２、周囲のグリッド６４１を例示する。アーマチュア・セグメント６４３、６４５は静止ポーズで示されている。アーマチュア変位ベクトル６４７、６４９は、それぞれ、アーマチュア・セグメント６４３、６４５に関連付けられている。
【００４０】
アーマチュア変位ベクトル６４７に隣接するサンプル点は、それぞれ、変位ベクトル６５１の集合により示されている、変位ベクトルを割り当てられる。グリッド変位ベクトル６５１の集合の重み付き総和がアーマチュア変位ベクトル６４７に等しくなるように、変位ベクトルの値が計算される。同様に、変位ベクトル６５３の集合は、アーマチュア変位ベクトル６４９に隣接するサンプル点に割り当てられる。変位ベクトルは、任意のアーマチュア・セグメントの任意の部分に隣接するすべてのサンプル点について計算される。アーマチュア変位ベクトルがアーマチュア・セグメントの終点についてのみ定義されている場合、アーマチュア変位ベクトルは、アーマチュア・セグメントの長さにそって補間される。その後、補間されたアーマチュア変位ベクトルを使用して、アーマチュアのそれぞれの部分に隣接するサンプル点に対し変位値の集合を作成する。
【００４１】
グリッド６４１が三次元デカルト・グリッドである実施形態では、それぞれのアーマチュア変位ベクトルは、８本の隣接変位ベクトルを持つ。四面体離散化を使用する他の実施形態では、それぞれのアーマチュア変位ベクトルは４本の隣接変位ベクトルを持つ。
【００４２】
アーマチュア変位ベクトルと図６Ｃでサンプル点に割り当てられている変位ベクトルは縮尺比通りに示されていないことに留意されたい。さらに、変位ベクトルの大きさは、無限小であると仮定されている。その結果、サンプル点は、変位ベクトルによりその初期位置から実際には移動しない。その代わりに、割り当てられた変位ベクトルは、その関連付けられたサンプル点の「仮想変位」を表す。
【００４３】
ステップ５１５で、キャラクター・モデルの皮膚の変形である、皮膚モード応答は、初期入力値としてステップ５１０で割り当てられた変位ベクトルを使用して計算される。一実施形態では、皮膚モード応答は、キャラクター本体の内側にあるすべてのサンプル点上で弾性エネルギー関数の値を求めることにより計算される。弾性エネルギー関数の一実施形態を以下に示す。
【数１】
2006514380.tif 000003
【００４４】
この弾性エネルギー関数の例では、ｑxyz（ｘ，ｙ，ｚ）は、（ｘ，ｙ，ｚ）の静止位置からのサンプル点の変位である。Ｖは、体積変化に対するモデルの抵抗を表すパラメータであり、Ｓは、内部剪断力に対する抵抗を表すパラメータである。ＶとＳの値を変えて、キャラクターの変形特性を変化させることができる。非常にやわらかい、つまり「ぐにゃっとした」キャラクターのＶとＳの値は低いが、比較的堅いキャラクターのＶとＳの値は大きい。
【００４５】
材料挙動は、一般に、ハミルトン力学系により表すことができ、ステップ５１５ではハミルトン関数をエネルギー関数として使用することができる。他の実施形態では、エネルギー関数は、上記の実施形態に示されているような局所変形に対する応答としてシステムのエネルギーを変化させる局所項、および大域体積保存項など全体としてキャラクター・モデルの変化に対する応答としてシステムのエネルギーを変化させる追加大域項を含む。
【００４６】
サンプル点の集合に対する「シード」値としてアーマチュア・セグメントに隣接するサンプル点に割り当てられた変位値を使用して、キャラクター・モデル全体の弾性エネルギーを表す連立方程式を作成する。この連立方程式は、サンプル点の集合上で最小にされる。弾性エネルギー関数の最小化は、数値ソルバーを使用してサンプル点毎に位置オフセットであるｑxyzの値を見つけることで実行できる。一実施形態では、楕円型数値ソルバーを使用して、エネルギー関数を最小にする。他の実施形態では、共役勾配マルチグリッドまたはヤコビ・ソルバーを使用できる。皮膚モードは、モデルの皮膚に隣接する位置オフセットの集合である。
【００４７】
ステップ５１５のアプリケーション実施形態では、図６Ｄは、基底関数のキャラクター・モデルの皮膚モード応答の一部の実施形態を示している。キャラクター・モデルの一部分６６０が詳細に示されている。変位ベクトル６６３の集合は、キャラクターの皮膚の一部分の変形を記述する。この実施形態では、皮膚は、キャラクターの「膝蓋骨」を中心に外側へ膨らむ。同様に、変位ベクトル６６５の集合は、「膝」の後のキャラクターの皮膚の一部分の変形を記述する。この実施形態では、皮膚は、膝の真後ろでは内側に向かってしわになるが、膝の真上と下では外側へ膨らむ。分かりやすくするため省略されているが、変位ベクトルは、キャラクター・モデルの皮膚に隣接するすべてのサンプル点について計算される。他の実施形態では、所定の基底関数から皮膚点で非常に小さな変形を示す、０または非常に小さい値のグリッド変位ベクトルは、切り捨てられる。
【００４８】
図６Ｅは、モデル皮膚上に構成された図６Ｄの皮膚モード応答を例示している。この図は、キャラクター・モデルの外観に対する図６Ｄの皮膚モード応答の効果を明らかにするために提示されている。後述のように、本発明の一実施形態では、皮膚モード応答を基底関数の集合上に射影し、表現をよりコンパクト化する。図６Ｂの実施形態では、キャラクター・モデルの一部分６８０が詳細に示されている。皮膚６８５は、基底関数により生じる変位の結果として、外側と内側に膨らむ。この実施形態では、皮膚モード応答は、キャラクターの膝が曲がるときにキャラクターの脚の変形をリアルに見せる表現を提示する。
【００４９】
リアルな「膨れている」外観を作り出すためにキャラクターの皮膚の下に複雑な骨と筋肉構造を構成する必要がある従来の物理的シミュレーション手法とは異なり、本発明では、アーマチュア基底関数により導入される変位から直接、リアルな皮膚モード応答を決定する。また、運動学的変換手法とは異なり、複数の皮膚点を１つまたは複数のアーマチュア・セグメントに明示的に関連付ける必要はない。その代わりに、リアルな皮膚変形は、基礎のアーマチュアの変位から自動的に生じる。これにより、従来の手法と比較して、キャラクター・モデルを作成するのに要する時間と労力が低減される。
【００５０】
従来技術と比較するため、アーマチュア・ポーズにより運動学的変換されたキャラクター・サーフェスの輪郭６９０も示されている。運動学的に変換されたモデル皮膚は、本発明の実施形態の皮膚モード応答と比較した場合、堅く、機械的に見える。
【００５１】
ステップ５２０で、皮膚モード応答を決定するプロセスを基底関数毎に繰り返し、基底関数の集合に対する皮膚モード応答の対応する集合を作成する。ステップ５２５で、皮膚モード応答は、基底関数の集合上に射影され、皮膚モードの集合のコンパクトな表現が作成される。
【００５２】
ステップ５２５の一実施形態では、アーマチュア・セグメントに隣接するサンプル点に対する位置オフセットは、それぞれの皮膚モードの計算の後の元の値と比較される。これは、変形されたキャラクター・モデルの「プッシュ・バック」のアーマチュア・セグメントに対する効果と別のアーマチュア・セグメントが互いにプッシュインする効果があるため実行される。アーマチュア・セグメントに隣接するサンプル点が変化した場合、新しい基底関数は、修正されたサンプル点の集合から計算される。新しい基底関数は、基底関数集合内の対応する元の基底関数を置き換える。基底関数の修正された集合は、正規直交化され、その後、皮膚モードは、格納のため、基底関数の修正された正規直交化された集合上に射影される。基底関数の集合に対する皮膚モード応答の決定の後、キャラクター・モデルの皮膚に隣接しない位置オフセットである、未使用位置オフセットは破棄される。
【００５３】
ステップ４１０が完了し、アーマチュア基底関数の集合に対する皮膚モードの集合が決定された後、ステップ４１５で、キャラクター・モデル皮膚に対するフレーム重みの集合を決定する。以下で詳しく説明するように、フレーム重みの集合がキャラクター・アニメーション作成フェーズで使用され、キャラクター・モデルの一部分の大きな回転により持ち込まれる望ましくない剪断効果を補正する。
【００５４】
図７は、本発明の一実施形態による座標参照フレームの集合に関してキャラクター・モデルに重み付けをする方法を示すブロック図である。ステップ７０５で、アーマチュアのセグメントに座標参照フレームの集合が張り付けられる。座標参照フレームは、アーマチュア・セグメントとキャラクター・モデルの隣接部分に対する局所座標系を定義する。一実施形態では、座標参照フレームは、それぞれのアーマチュア・セグメントに張り付けられる。他の実施形態では、いくつかのアーマチュア・セグメントが、同じ座標参照フレームを共有することができる。一実施形態では、座標参照フレームは、座標参照フレームの原点または配置を定義する第１のベクトルと座標参照フレームの座標軸を定義する３本のベクトルの合わせて４本のベクトルからなる。
【００５５】
図８Ａは、ステップ７０５で必要とされるように例示的アーマチュアに座標参照フレームを張り付けることを例示している。図８Ａでは、アーマチュア８０２は、座標参照フレーム８０４、８０６、８０８を含む、多数の座標参照フレームに関連付けられている。それぞれの参照フレームは、アーマチュア・セグメントの近くに、張り付けられるか、または位置付けられる。一実施形態では、座標参照フレームは、アーマチュア・セグメントの末端、つまり関節に配置される。他の実施形態では、アーマチュア・セグメントは、アーマチュア・セグメントに沿って任意の場所に配置される。
【００５６】
図８Ａの実施形態では、座標参照フレーム８０４は、キャラクター・アーマチュアの頭の中心近くに配置される。座標参照フレーム８０６は、アーマチュア８０２の肩関節に配置される。座標参照フレーム８０８は、アーマチュア８０２の膝関節に配置される。
【００５７】
ステップ７１０で、アーマチュアとキャラクター・モデルは、離散化され、サンプル点の集合が作成される。皮膚モード応答を決定するために上述の離散化と同様に、一実施形態では、三次元グリッドからサンプル点の集合を作成する。他の実施形態では、四面体セルの集合を使用してキャラクター・モデルとアーマチュアを離散化する。
【００５８】
ステップ７１５で、それぞれの座標参照フレームに隣接するサンプル点に、初期フレーム重みの集合が割り当てられる。フレーム重みは、サンプル点上の座標参照フレームの影響力を定義する。後述のように、それぞれのサンプル点は、さらに多くの座標参照フレームの影響を受け、したがって、複数のフレーム重みを持つ。ステップ７１５で、参照フレームに隣接するサンプル点は、フレーム重み１で初期化される。参照フレームのどれにも隣接しない他のサンプル点のフレーム重みは、この段階では未定義である。
【００５９】
図８Ｂは、キャラクター・モデル実施形態の一部分で初期フレーム重みを割り当てる方法の実施形態を示している。図８Ｂは、キャラクター・モデル８１０の一部分と三次元グリッドにより作成されたサンプル点８１２の集合の一部分を示している。この実施形態では、座標参照フレーム８１４、８１６は、アーマチュア・セグメント上に配置されている。座標参照フレーム毎に、隣接するサンプル点にフレーム重み１が割り当てられる。例えば、サンプル点８１８は、座標参照フレーム８１４に関してフレーム重み１を割り当てられ、サンプル点８２０は、座標参照フレーム８１６に関してフレーム重み１を割り当てられる。
【００６０】
ステップ７２０で、周囲のサンプル点のフレーム重みは、初期フレーム重みから決定される。一実施形態では、空間拡散関数を使用して、サンプル点に対するフレーム重みを計算する。この実施形態では、初期フレーム重み値は、初期サンプル点から周囲のサンプル点へ外に向かって拡散される。フレーム重みが遠いサンプル点に拡散するにつれ、フレーム重み値は徐々に小さくなる。例示的空間拡散関数は∂ｗ／∂ｔ＝Ｄ∇2ｗである。
【００６１】
この実施形態では、関数ｗxyz（ｘ，ｙ，ｚ）は、与えられた座標参照フレームに関してサンプル点に関連付けられたフレーム重みである。Ｄは、拡散速度を定義する拡散係数である。一実施形態では、Ｄはすべての方向に一様である。他の実施形態では、Ｄの値は、拡散方向に応じて変化する。この他の実施形態では、可変拡散係数は、アーマチュア関節のところの参照フレーム間の急な遷移を定義する際に有用である。他の実施形態では、拡散係数は、キャラクター・モデル内の剪断応力の拡散と整合するように選択される。
【００６２】
初期フレーム重みをサンプル点の集合に対するシード値として使用することで、キャラクター・モデル全体を通じてフレーム重みの拡散を表す連立方程式を作成する。この連立方程式をサンプル点の集合について解き、それぞれのサンプル点に対し１つまたは複数のフレーム重みｗxyzの値を見つける。サンプル点が複数の座標参照フレームの影響を受ける場合、サンプル点は、それぞれの関連する座標参照フレームからの影響度を定義するフレーム重みの対応する集合を持つ。それぞれのサンプル点に対するフレーム重みの集合は、サンプル点に対するフレーム重みの総和が１となるように正規化される。
【００６３】
ステップ７１５、７２０の他の実施形態では、フレーム重みの最適集合が、回転効果を説明する完全非線形モデルを使用して決定される。この実施形態では、キャラクター・モデルの皮膚モード応答の非線形解は、アーマチュア基底関数の集合のそれぞれについて求められる。ステップ４１５で計算される線形解とは異なり、非線形解では、変位ベクトルが無限小であるとは仮定しない。それぞれの非線形解の皮膚モードは、ステップ４１５で決定されるようにアーマチュア基底関数に対する対応する線形皮膚モード応答と比較される。非線形皮膚モード応答とその対応する線形皮膚モード応答との比較から、サンプル点毎にフレーム重みの最適集合が決定される。
【００６４】
他の実施形態では、ステップ７１５、７２０で、例えば、空間拡散プロセスまたは非線形モデルから決定されるフレーム重みは、最適な美的結果が得られるように手作業で調整される。例えば、キャラクター・モデルの関節の近くに配置されたサンプル点のフレーム重みは、皮膚点の変形が見た目が美しいものとなるように微調整することができる。
【００６５】
図８Ｃは、モデル皮膚に隣接するサンプル点の一部分について決定されたフレーム重みの集合の実施形態を示す。図８Ｃは、キャラクター・モデル８２２の一部分を示す。座標参照フレーム８２４、８２６も示されている。モデル皮膚に隣接するサンプル点について決定されたフレーム重みの集合の一部分は、図８Ｃにおいて白丸で強調表示されている。それぞれのサンプル点は、１つまたは複数のフレーム重みを持つ。例えば、サンプル点８２８は、座標参照フレーム８２６に関してフレーム重み０.９を持ち、座標参照フレーム８２４に関してフレーム重み０.１を持つ。サンプル点８３０は、座標参照フレーム８２６に関してフレーム重み０.１を持ち、座標参照フレーム８２４に関してフレーム重み０.９を持つことができる。サンプル点８３２は、座標参照フレーム８２６に関してフレーム重み０.９９９を持ち、座標参照フレーム８２４に関してフレーム重み０.００１を持つことができる。
【００６６】
ステップ７２５で、キャラクター・アニメーション作成フェーズで使用するため、参照フレームの集合と関連するフレーム重みが格納される。これでステップ４１５とキャラクター準備フェーズは完了する。キャラクター準備フェーズの完了後、キャラクターは、キャラクター・アニメーション作成フェーズでアニメーターにより使用できる状態にある。キャラクター・アニメーション作成フェーズでは、基底関数の集合、皮膚モードの関連する集合、方法４００から決定されたフレーム重みの集合を使用して、最終ポーズ設定キャラクターを作成する。
【００６７】
図９は、本発明の一実施形態によるキャラクター・アニメーション作成フェーズでキャラクターをアニメーション化する方法９００のブロック図を例示している。ステップ９０５で、ポーズ設定アーマチュアは、所望の最終ポーズ設定キャラクターの姿勢を定義する。上述のように、ポーズ設定アーマチュアは、キー・フレーム間を補間するか、または手続き的に１つまたは複数のアニメーション変数、関数、プロシージャ、またはアルゴリズムを使用することにより、アニメーター側が手作業で作成することができる。ポーズ設定アーマチュアは、静止位置のアーマチュアと比較され、それにより、ポーズ設定位置と静止位置のアーマチュア・セグメント間の位置と向きの相違を定義するポーズ・ベクトルを決定する。さらに、アーマチュアに張り付けられた座標参照フレームの集合は、静止位置からポーズ設定位置への関連するアーマチュア・セグメントを辿る。座標参照フレームの集合の位置と向きを定義するベクトルの集合も、ステップ９０５で決定される。
【００６８】
ステップ９１０で、ポーズ・ベクトルは、ポーズ設定位置の座標参照フレームの集合により定義される座標空間のそれぞれに変換される。座標参照フレームのそれぞれについて、変換されたポーズ・ベクトルは、アーマチュア基底関数上に射影される。ポーズ・ベクトルを基底関数の集合上に射影することにより、ポーズ・ベクトルは、基底関数重みの集合に変換される。基底関数重みは、ポーズ・ベクトルを基底関数の集合の重み付き総和として再定義する。変換されたポーズ・ベクトルからのそれぞれの座標参照フレームについて基底関数重みの集合が作成される。
【００６９】
ステップ９１５では、それぞれの座標参照フレーム内で、ステップ９１０で決定された基底関数重みの集合を皮膚モードに適用する。上述のように、皮膚モードは、基底関数のそれぞれについてキャラクター準備フェーズのときにすでに作成されている。ステップ９１５で、それぞれの座標参照フレームに関連付けられた基底関数重みが基底関数の皮膚モードに適用される。その結果得られる皮膚モードの集合は、それぞれ、関連付けられた基底関数重みにより重み付けされ、これの総和をとることで、皮膚ポーズ応答を作成する。皮膚ポーズ応答は、ポーズ設定アーマチュアに対する応答としてのキャラクター・モデルの変形である。基底関数の集合がポーズ空間の完全基底を形成するとした場合、皮膚ポーズ応答は、所望のポーズが明示的に元のポーズ集合の一部であったかどうかに関係なく、可能なキャラクター・ポーズについて決定することができる。
【００７０】
ステップ９１５で、座標参照フレームのそれぞれについて別の皮膚モード応答が作成される。他の実施形態では、ステップ９２０は、フレーム重みが０であるか、または無視できるくらい小さいキャラクターの皮膚の部分に対する参照フレーム内の皮膚モード応答の決定をスキップする。
【００７１】
上述のように、皮膚応答は、空間形状オフセットの形をとるモードの形態で表現される。キャラクター・アニメーション作成フェーズでは、モデルの一部分を、最初の向きから離れる方向に回転させることができる。回転がキャラクター・モデルの隣接する部分に関して比較的大きい場合、望ましくない剪断効果が持ち込まれる可能性がある。この剪断効果を補正するために、別の皮膚ポーズ応答がそれぞれの座標参照フレームについて決定される。
【００７２】
ステップ９２０で、それぞれの参照フレーム内で決定される皮膚ポーズ応答が組み合わされて、剪断効果を含まない単一の複合皮膚ポーズ応答が作成される。ステップ９２０で、皮膚ポーズ応答の集合は、関連付けられた座標参照フレームから大域参照フレームに変換される。皮膚ポーズ応答がすべて同じ座標系にある場合、キャラクター準備フェーズにおいてすでに決定されているフレーム重みの集合に基づき皮膚ポーズの総和がとられる。それぞれの皮膚点は、皮膚ポーズ応答の集合と皮膚点と関連付けられている対応するフレーム重みの重み付け総和である。一実施形態では、これらの皮膚応答は、基底射影形式で総和される。結果は、複合皮膚応答である。
【００７３】
ステップ９２０の後に、複合皮膚応答は、基底射影形式から構成し物理的形式に戻される。ステップ９２５で、複合皮膚応答と基底関数の集合の重み付け総和は、最終ポーズ設定キャラクターを形成する。
【００７４】
方法９００のステップをキャラクターのポーズ毎に繰り返し、アニメーション化シーケンスを生成する。皮膚モード応答と皮膚衝撃応答はキャラクター準備フェーズにおいて事前計算されるので、キャラクター・アニメーション作成フェーズは、リアルタイムまたはリアルタイムに近い速さで実行することができる。これにより、アニメーターは、アニメーションを効率よく微調整することができる。さらに、キャラクター・モデルの組み合わせ皮膚応答は、アーマチュア・ポーズに対する応答としてリアルに変形するため、アニメーターは、アニメーションの最終的外観を確認できるのを待たずに、アニメーション・プロセスにおいてキャラクター・モデルの最終的外観を確認する。
【００７５】
図１０Ａ、１０Ｂ、１０Ｃ、１０Ｄは、図９で説明されている方法の一実施形態により例示的アーマチュアとキャラクター・モデル実施形態からポーズ設定キャラクター・モデルを構成することを示す図である。図１０Ａは、ポーズ設定アーマチュア１００５の例を示している。この例では、ポーズ設定アーマチュア１００５は、走っている位置にあるキャラクターの姿勢を定義する。上述のように、ポーズ設定アーマチュア１００５は、キー・フレーム間を補間するか、または手続き的に１つまたは複数のアニメーション変数、関数、プロシージャ、またはアルゴリズムを使用することにより、アニメーター側が手作業で作成することができる。
【００７６】
図１０Ｂは、ポーズ設定アーマチュア１０１０の実施形態と座標参照フレームの関連する集合を例示している。図１０Ｂでは、それぞれの座標参照フレームは、陰影が付けられた矩形により表される。それぞれの矩形の位置と向きは、ポーズ設定位置における関連付けられた座標参照フレームの位置と向きを示す。それぞれの矩形のサイズは、関連付けられた座標参照フレームの影響を受けるキャラクター・モデルの近似的部分を示す。
【００７７】
例えば、座標参照フレーム１０１５は、ポーズ設定アーマチュア１０１０の上脚アーマチュア・セグメントに関連付けられている。座標参照フレーム１０１５は、上脚アーマチュア・セグメントを囲むキャラクター・モデルの位置に影響を及ぼす。同様に、座標参照フレーム１０２０は、ポーズ設定キャラクター１０１０の上腕アーマチュア・セグメントを囲むキャラクター・モデルの位置に影響を及ぼす。図１０Ｂには示されていないが、２つまたはそれ以上の参照フレームは、キャラクター・モデルの同じ部分に影響を及ぼす可能性がある。
【００７８】
図１０Ｃは、座標参照フレームについて決定された皮膚ポーズ応答のうちの２つの実施形態を示す。皮膚ポーズ応答１０２５は、座標参照フレーム１０３５に関連付けられている。皮膚ポーズ応答１０３０は、座標参照フレーム１０４０に関連付けられている。上述のように、ただし、図１０Ｃには示されていないが、皮膚ポーズ応答は、ポーズ設定アーマチュアに関連付けられた座標参照フレームのそれぞれについて決定される。
【００７９】
皮膚ポーズ応答１０２５は、座標参照フレーム１０３５のビューからポーズ設定アーマチュアに対する応答としてのキャラクター・モデルの変形を示す。座標参照フレーム１０３５内の皮膚ポーズ応答１０２５の部分は、ポーズ設定アーマチュアに対する応答として正しく変形される。しかし、座標参照フレーム１０３５の外部の皮膚ポーズ応答１０２５の他の部分は、剪断効果があるため、大きく歪む。例えば、皮膚ポーズ応答１０２５では、座標参照フレーム１０３５内のキャラクター・モデルの上脚部分は、ポーズ設定アーマチュアから正しく変形されるが、キャラクター・モデルの腕１０４２と１０４４は、剪断効果があるため、歪む。
【００８０】
同様に、皮膚ポーズ応答１０３０は、座標参照フレーム１０４０のビューからポーズ設定アーマチュアに対する応答としてのキャラクター・モデルの変形を示す。座標参照フレーム１０４０内の皮膚ポーズ応答１０３０の腕部分は、ポーズ設定アーマチュアに対する応答として正しく変形される。しかし、キャラクター・モデルの脚などの座標参照フレーム１０４０の外部の皮膚ポーズ応答１０３０の他の部分は、剪断効果があるため、大きく歪む。
【００８１】
図９の方法に関して上述のように、それぞれの参照フレームから決定される別の皮膚ポーズ応答は、フレーム重みの集合を使用して剪断効果なしの複合皮膚ポーズ応答に組み合わされる。
【００８２】
図１０Ｄは、異なる参照フレームに関連付けられている別の皮膚ポーズ応答の集合から作成された複合皮膚ポーズ応答１０５０を例示している。例えば、複合皮膚ポーズ応答１０５０の脚部分１０６０は、主に、図１０Ｃに示されている皮膚ポーズ応答１０２５から作成される。同様に、複合皮膚ポーズ応答１０５０の腕部分１０６５は、主に、皮膚ポーズ応答１０３０から作成される。フレーム重みの集合により、複合皮膚ポーズ応答の与えられた部分に対するそれぞれの皮膚ポーズ応答の寄与が決まる。上述のように、皮膚点は、対応する個数のフレーム重み値を通じて複数の座標参照フレームに関連付けられるため、複合皮膚ポーズ応答は、複数の皮膚ポーズ応答からの寄与を含むことができる。
【００８３】
上述の実施形態を使用することで、アニメーターは、リアルな膨れと曲がりを持つポーズ設定キャラクター・モデルをリアルタイムで作成できる。本発明の他の実施形態では、キャラクター・モデルまたは他のソフト・オブジェクトは、リアルタイムで他のオブジェクトとの衝突に対する応答としてリアルに変形される。キャラクターの皮膚は、他のキャラクターまたは堅いオブジェクトなどの外部オブジェクトとの衝突により変形することができる。キャラクターの皮膚は、さらに、キャラクター・モデルの一部とキャラクターの他の部分との衝突である、自己衝突により変形することができる。自己衝突の実施形態は、上腕または下腕が互いに接触するようにキャラクターの腕が肘のところで曲がるときに発生しうる。
【００８４】
衝突に対する応答としてリアルなキャラクター・モデル変形を形成することは、図３に説明されているのと同様に、２フェーズ・プロセスである。第１のフェーズは、衝突準備フェーズである。衝突準備フェーズは、比較的多量の計算を必要とし、アニメーションに先立って実行される。衝突準備フェーズでは、テスト衝突の集合に対するキャラクターの変形を定義する皮膚衝撃応答の集合を作成する。それぞれのキャラクター皮膚衝撃応答は、単一点での単一衝突に対する応答としてのキャラクターのサーフェスの変形である。一実施形態では、皮膚衝撃応答は、衝突に対する応答として衝突点を囲む点の変位を定義する。
【００８５】
衝突準備フェーズの完了後、衝突アニメーション作成フェーズにおいて、アニメーターはオブジェクトをキャラクターと接触させることにより衝突を作成する。本発明の一実施形態では、アニメーターは、アニメーション・シーケンスのそれぞれのフレームにおいて、キャラクター・モデルとコライダーと呼ばれる衝突オブジェクトの配置を定義する。コライダーと重なるまたは接触するキャラクター・モデルの部分は、衝突の一部とみなされる。それぞれのフレームについて、衝突アニメーション・フェーズでは、皮膚衝撃応答の集合を使用して、コライダーとキャラクター・モデルとの衝突に対する応答としてのキャラクター・モデルの変形である、皮膚衝突応答を決定する。
【００８６】
コライダーの形状またはキャラクター・モデルとコライダーとの衝突の量に関係なく、衝突アニメーション・フェーズでは、皮膚衝撃応答の同じ集合を使用して、衝突皮膚応答を決定する。したがって、衝突準備フェーズは、１つのキャラクター・モデルについて１回だけ実行すればよく、衝突アニメーション・フェーズが繰り返されて、アニメーション・シーケンス内のそれぞれのフレームについて皮膚衝突応答が作成される。
【００８７】
衝突準備フェーズでは、本発明の一実施形態により、キャラクター・モデルに対する皮膚衝撃応答の集合が決まる。図１１は、本発明の一実施形態によりキャラクターの皮膚衝撃応答を決定する方法を示すブロック図１１００である。ステップ１１０５で、キャラクター・モデルは、離散化され、サンプル点の集合が作成される。一実施形態では、キャラクター・モデルは、三次元グリッドに離散化される。他の実施形態では、キャラクター・モデルは、四面体セルの集合に離散化される。
【００８８】
ステップ１１１０で、衝突点が選択される。衝突点は、キャラクター・モデルのサーフェス上の任意の点でよく、または他の実施形態では、キャラクター・モデルの内側の点でもよい。例えば、キャラクター・モデル内の衝突点である内部衝突点を使用して、内部の「筋肉」オブジェクトとの衝突に対する応答としてキャラクター・モデルの皮膚を変形させることができる。しかし、皮膚と筋肉は、現実には、脂肪の薄い層により隔てられることが多い。この解剖学的特徴を近似するために、キャラクター・モデルの内点を衝突点として選択することにより「衝突遮蔽」を作成できる。
【００８９】
ステップ１１１０では、変位の集合を衝突点に適用する。それぞれの変位は、異なる方向においてキャラクター・モデルが衝突点で衝突することを表す。一実施形態では、変位は、３つのデカルト座標方向のそれぞれにおいて衝突点に適用される。他の実施形態では、それぞれの変位は、適切な方向への単位変位である。ステップ４１０で説明されているのと同様の方法で、衝突点での変位に基づき衝突点に隣接するサンプル点に変位ベクトルが割り当てられる。
【００９０】
ステップ１１１５で、初期入力値としてステップ１１１０で割り当てられた変位値を使用して変位毎に皮膚衝撃応答が計算される。一実施形態では、皮膚モード応答は、キャラクター本体の内側にあるすべてのサンプル点上で弾性エネルギー関数の値を求めることにより計算され、これは、皮膚モード応答を見つけるために使用されるのと類似の方法である。離散化空間全体にわたって弾性エネルギー関数の値を最小化することにより、ｑxyzの値、つまり位置オフセットをサンプル点毎に計算する。与えられた皮膚変位に対する皮膚衝撃応答は、モデルの皮膚に隣接するサンプル点での位置オフセットの集合である。
【００９１】
ステップ１１２０で、複数の衝突点に適用される変位についてステップ１１１０、１１１５を繰り返し、皮膚衝撃応答の集合を作成する。皮膚が制御点により定義された１つまたは複数のサーフェスを含む一実施形態では、それぞれの制御点が、衝突点として選択され、その後、皮膚衝撃応答の集合が作成される。他の実施形態では、キャラクター・モデルの比較的堅い部分に対する制御点は、衝突点の集合から除外される。
【００９２】
ステップ１１２５で、皮膚衝撃応答の集合から基底関数の集合が決定される。一実施形態では、特異値分解を使用して、皮膚衝撃応答から基底関数の集合を計算する。他の実施形態では、正準相関などの基底関数の集合を計算する他の方法も使用できる。他の実施形態では、その結果得られる基底関数の集合が正規直交基底でない場合、基底関数の集合は、それぞれの基底関数はその大きさが１で、他のすべての基底関数に対し垂直になるように正規直交化される。
【００９３】
次に、ステップ１１２５では、衝撃応答の集合を基底関数の集合上に射影し、皮膚衝撃応答の集合のコンパクトな表現を作成する。他の実施形態では、特異値分解のあまり重要でない項を切り捨てて、基底関数の個数を減らす。このため、衝撃応答の集合が切り捨てられた基底集合上に射影されるときに平滑作用が生じる。他の実施形態では、皮膚応答の集合は、衝突点の変位に対する応答として周囲点の変位を定義するベクトルの疎集合として格納される。他の実施形態では、基底関数表現よりも効率よく少数の点のみに影響を及ぼす皮膚衝撃応答を表す。
【００９４】
図１２Ａ、１２Ｂ、１２Ｃは、本発明の一実施形態による例示的キャラクタの皮膚衝撃応答の決定を示す図である。図１２Ａは、キャラクター・モデル１２０５に適用される変位を例示する。この実施形態では、キャラクター・モデル１２０５は、三次元グリッド１２１５とともに離散化されている。変位１２２０は、モデル皮膚１２１０上の衝突点に適用される。変位値１２２５の集合は、衝突点に隣接するサンプル点に割り当てられる。
【００９５】
図１２Ｂは、皮膚変位１２３５から生じる皮膚衝撃応答の一部として含まれる変位ベクトル１２３０の集合を例示している。変位ベクトル１２３０の集合は、説明のために用意されているのであり、皮膚衝撃応答は、モデル皮膚の全部または一部の上にばらまかれた多数の変位ベクトルを含むことができる。グリッド変位ベクトル１２３０の集合の大きさと向きから分かるように、モデル皮膚は衝突点の近くで内側に膨れ、衝突点の周囲の領域内で外側に膨れる。
【００９６】
図１２Ｃは、モデル皮膚上に射影された図１２Ｂの皮膚衝撃応答の実施形態を示している。この図は、キャラクター・モデルの外観に対する図１２Ｃの皮膚衝撃応答の効果を明らかにするために提示されている。上述のように、本発明の一実施形態では、皮膚衝撃応答を基底関数の集合上に射影し、表現をコンパクト化する。図１２Ｃの実施形態では、モデル皮膚１２６０は、皮膚衝撃応答により変位が生じた結果として外側と内側に膨れる。この実施形態では、皮膚衝撃応答は、オブジェクトとの衝突によりキャラクターが変形するのをリアルに見せる表現を提示する。比較のため静止状態にあるモデル皮膚１２５０が示されている。
【００９７】
衝突準備フェーズで皮膚衝撃応答の集合を決定した後、衝突アニメーション作成フェーズで、アニメーターによって定義された衝突に対する応答としてキャラクター皮膚の変形を決定する。図１３は、本発明の一実施形態によりキャラクター・モデルの衝突応答を決定する方法１３００を示すブロック図である。方法１３００については、図１４Ａ〜１４Ｆを参照しつつ以下で説明するが、これは、本発明の一実施形態による衝突実施形態からの皮膚衝突応答の決定を例示している。
【００９８】
ステップ１３０５で、衝突点の集合が識別される。衝突点は、コライダーと接触している、またはコライダーの内側にある皮膚点である。図１４Ａは、コライダー１４０２と衝突しているモデル皮膚１４０４の一部を例示している。モデル皮膚１４０４は、多数の皮膚点を含む。これらの皮膚点の一部はコライダー１４０２の内側にある。これらの皮膚点１４０６、１４０８、１４１０、１４１２は、この衝突実施形態における衝突点の集合である。他の実施形態では、コライダーの内側にもないし接触してもいない皮膚点は、コライダーのサーフェス近くにあるか、またはコライダーの内側衝突点近くにある場合に、追加衝突点として選択される。これにより、衝突からキャラクター皮膚が変形して追加皮膚点がコライダーと接触する場合の安全マージンが得られる。
【００９９】
ステップ１３０で、第１の衝突点が選択され、衝突点の最終静止位置の第１近似である、潜在的静止位置に変位される。一実施形態では、第１の衝突点は、ランダムに選択される。一実施形態では、潜在的静止位置は、第１の衝突点に最も近いコライダーのサーフェス上の位置である。他の実施形態では、潜在的静止位置は、第１の衝突点と最も近いコライダー・サーフェス点との間の位置である。さらに他の実施形態では、倍率を使用して、最も近いコライダー・サーフェス点と潜在的静止位置との間の距離を決定する。
【０１００】
図１４Ｂは、初期位置１４１６から潜在的静止位置に変位される第１の衝突点１４１４の実施形態を示している。この実施形態では、潜在的静止位置は、初期位置１４１６とコライダー１４１８の最も近いサーフェス点との間の距離の８０％である。この実施形態では、倍率は、方法１３００のパフォーマンスを最適化するように選択される。第１の衝突点１４１４は分かりやすくするため正確に水平方向に変位されるように示されているが、衝突点は、潜在的静止位置へ任意の方向で移動できることに留意されたい。
【０１０１】
ステップ１３１５で、初期衝突応答は、他の非変位衝突点に適用される。初期衝突応答は、初期位置から潜在的静止位置への第１の衝突点の変位を衝撃応答の集合からすでに作成されている基底関数の集合上に射影することにより決定される。基底関数も集合上の変位の射影により、基底空間内の変位を定義する重みの集合が作成される。
【０１０２】
その後、重みの集合は、第１の衝突点に関連付けられている衝撃応答に適用される。この結果、第１の衝突点に対する初期衝突応答が得られる。初期衝突応答は、初期位置から潜在的静止位置への第１の衝突点の変位に対する応答として第１の衝突点の周りの皮膚点の変位を定義する。
【０１０３】
初期衝突応答が周囲衝突点に適用され、それらの衝突点が初期位置に変位する。初期衝突応答は、第１の衝突点に関連付けられた皮膚衝撃応答が追加点について変位を定義できるとしても、衝突点にしか適用されない、つまり、コライダーと接触する、またはコライダーの中にある点のみに適用されることに留意されたい。
【０１０４】
図１４Ｃは、周囲衝突点の集合に初期衝突応答の実施形態を適用することを示している。この実施形態では、強調のため輪郭が描かれている第１の衝突点１４２０は、初期位置１４２１から潜在的静止位置に変位されており、その結果、初期衝突応答が周囲衝突点の集合に適用される。初期衝突応答は、第１の衝突点１４２０の変位から生じる周囲衝突点１４２２、１４２４、１４２６に適用される変位である。初期衝突応答により、図に示されているように、衝突点１４２２、１４２４、１４２６はそれぞれの初期位置から新しい潜在的静止位置に変位する。上述のように、コライダーの外側にある皮膚点、つまり非衝突皮膚点は、衝突アニメーション作成フェーズのこの点では変位されない。
【０１０５】
ステップ１３２０で、周囲衝突点の集合は、さらに、それぞれの潜在的静止位置に変位させられる。ステップ１３１０と同様に、周囲衝突点はそれぞれ、ステップ１３１５で設定された位置から潜在的静止位置に移動される。一実施形態では、周囲衝突点のそれぞれに最も近いコライダーのサーフェス上の位置はそれぞれの潜在的静止位置である。他の実施形態では、潜在的静止位置は、衝突点と最も近いコライダー・サーフェス点との間の位置である。さらに他の実施形態では、倍率を使用して、最も近いコライダー・サーフェス点と潜在的静止位置との間の距離を決定する。一実施形態では、周囲衝突点の潜在的静止位置は、周囲衝突点、ステップ１３１５で決定される新しい位置と、コライダーの最も近いサーフェス点との間の距離の８０％である。
【０１０６】
周囲衝突点がそれぞれの潜在的静止位置に変位した後、ステップ１３２５で、衝突応答の集合が、周囲衝突応答の集合について決定される。ステップ１３１５と同様に、初期位置からそれぞれの潜在的静止位置へのそれぞれの周囲衝突点の変位は、衝撃応答の集合からすでに作成されている基底関数の集合上に射影される。それぞれの変位射影は、周囲衝突点の１つに関連付けられた基底重みの集合を作成する。
【０１０７】
周囲衝突点の基底重みは、二次衝突応答を作成するため周囲衝突点に関連付けられている対応する衝撃応答に適用される。これは、周囲衝突点のそれぞれについて繰り返され、二次衝突応答の集合を作成する。それぞれの二次衝突応答は、初期位置からそれぞれの潜在的静止位置への周囲衝突点の変位に対する応答として周囲衝突点の近くの皮膚点の変位を定義する。
【０１０８】
二次衝突応答の集合が、ステップ１３１０で選択された第１の衝突点を含む、衝突点のすべてに適用され、それらの衝突点は潜在的静止位置から変位する。もう一度、二次衝突応答は衝突点にのみ適用され、非衝突点は、衝突アニメーション生成フェーズのこのステップで除去されない。
【０１０９】
二次衝突応答を衝突点の集合に適用した後、衝突点の集合のそれぞれは新しい位置を持つ。ステップ１３２５で、初期位置からの衝突点のそれぞれに対する変位を決定し、上述したのと同様の方法で衝突応答の新しい集合を作成する。衝突応答の新しい集合が適用され、衝突点の集合がさらに変位される。衝突応答の集合を作成し、衝突応答の集合を衝突点の集合に適用するこのプロセスは、衝突点の集合が変位の最終集合に収束するまで繰り返される。
【０１１０】
図１４Ｄは、二次衝突応答の集合を衝突点の集合に適用することを例示している。衝突点１４２８、１４３０、１４３２、１４３４の集合は、二次衝突応答の集合の結果として潜在的静止位置からの変位を示すベクトルを持つ。それぞれのベクトルは、他の衝突点の二次衝突応答から生じる変位の総和を表す。例えば、衝突点１４２８の変位は、衝突点１４３０、１４３２、１４３４からの二次衝突応答の総和である。
【０１１１】
ステップ１３３０で、最終衝突応答は、非衝突点に適用される。ステップ１３２５で決定された変位の最終集合は、初期位置から最終位置へのそれぞれの衝突点の変位である。ステップ１３３０は、変位の最終集合からのそれぞれの変位を基底関数の集合上に射影し、それぞれの衝突点に関連付けられた基底重みを作成する。それぞれの衝突点基底重みがその関連付けられた衝撃応答に適用され、非衝突点に対する変位の集合が決定される。衝突に対する応答として、それぞれの衝突点から生じる変位が足し合わされて、非衝突点の変位を定義する最終衝突応答が作成される。
【０１１２】
図１４Ｅは、非衝突点に対する最終衝突応答の決定を例示している。強調のため輪郭が描かれている衝突点１４３６、１４３８、１４４０、１４４２は、点線で輪郭が描かれている初期位置からその最終位置に変位された。衝突点の集合の変位に基づき、非衝突点１４４４、１４４６、１４４８、１４５０は、それぞれのベクトルにより示されているように初期位置から変位される。それぞれのベクトルは、衝突点１４３６、１４３８、１４４０、１４４２の集合が関わって生じる変位の総和を表す。
【０１１３】
本発明の一実施形態では、衝突応答はすべて決定され、基底空間内で総和される。これにより、方法１３００の効率が改善される。この実施形態では、ステップ１３３５で、最終衝突応答は、基底射影形式から物理的形式へと戻される形で構成される。衝突からの皮膚変形は、最終衝突応答と基底関数の集合の重み付き総和から決定される。
【０１１４】
他の実施形態では、衝突点の衝撃応答を表す疎ベクトルを使用して、最終衝突応答を決定する。他の実施形態では、コライダーと衝突点との間の関連付けは、静止ポーズの位置から決定できる。この実施形態は、皮膚応答が衝突、例えば、皮膚（または内部衝突遮蔽）と筋肉との衝突に対する応答としてかなり移動することが予想されない場合に有用である。
【０１１５】
図１４Ｆは、モデル皮膚上に構成される最終衝突応答を例示している。図１４Ｆの実施形態では、皮膚１４５２は、最終衝突応答の結果として内側に向かいコライダー１４５４の周りに膨れ、衝突に対する応答としてリアルに見える変形が提示される。比較のため、最初の変形前のキャラクター・サーフェスの輪郭１４５６も示されている。
【０１１６】
上述のように、衝突アニメーション作成フェーズでは、最終衝突応答が決定されるまで衝突点のみが変位される。このため、衝突応答を決定する際に計算する必要がある点の個数が大幅に制限され、したがって、衝突アニメーション作成フェーズをリアルタイムで実行できる。このため、アニメーターは、キャラクターと周囲との相互作用を微調整することができる。
【０１１７】
本発明の他の実施形態では、ポーズ設定アーマチュアに対する応答としてキャラクター・モデルを変形する方法と衝突に対する応答としてキャラクター・モデルを変形する方法とを組み合わせることができる。この組み合わせた実施形態では、キャラクター・モデルは、ポーズ設定アーマチュアと衝突に対する応答としてリアルに変形する。この実施形態では、アニメーション・プロセスは、組み合わせ準備フェーズと組み合わせアニメーション作成フェーズの２つのフェーズに分けられる。他の実施形態と同様に、この実施形態でも、組み合わせ準備フェーズは、１つのキャラクター・モデルについて１回実行される。組み合わせ準備フェーズでは、アーマチュア基底集合、対応する皮膚モードの集合、フレーム重みの集合は、方法４００で説明されているように決定される。さらに、組み合わせ準備フェーズでは、方法１１００で説明されているように、皮膚衝撃応答の集合と関連付けられた衝撃基底集合を決定する。
【０１１８】
組み合わせアニメーション作成フェーズでは、アーマチュア基底集合、皮膚モードの集合、フレーム重みの集合、皮膚衝撃応答の集合、衝撃基底集合を使用して、アニメーターから仕様にしたがってポーズ設定され変形されたキャラクター・モデルを作成する。図１５は、本発明の一実施形態による組み合わせアニメーション作成フェーズでキャラクターをアニメーション化する方法１５００のブロック図を例示している。ステップ１５０５で、ポーズ設定アーマチュアは、所望の最終ポーズ設定キャラクターの姿勢を定義する。上述のように、ポーズ設定アーマチュアは、キー・フレーム間を補間するか、または手続き的に１つまたは複数のアニメーション変数、関数、プロシージャ、またはアルゴリズムを使用することにより、アニメーター側が手作業で作成することができる。さらに、アーマチュアに張り付けられた座標参照フレームの集合が静止位置からポーズ設定位置へ関連付けられたアーマチュア・セグメントに従うので、座標参照フレームの集合の位置と向きを定義するベクトルの集合も、ステップ１５０５で決定される。
【０１１９】
ステップ１５１０で、皮膚ポーズ応答の集合は、座標参照フレームの集合について決定される。それぞれの皮膚ポーズ応答は、方法９００で説明されているのと同様の方法で決定される。一般に、ポーズ・ベクトルと基底関数の集合は、ポーズ設定位置の座標参照フレームにより定義された座標空間内に変換される。変換されたポーズ・ベクトルは、アーマチュア基底関数の変換済み集合上に射影され、そこで、基底関数重みの集合を作成する。それぞれの座標参照フレーム内で基底関数重みの集合が皮膚モードに適用され、座標参照フレームの皮膚ポーズ応答が決定される。これは、座標参照フレームごとに繰り返され、皮膚ポーズ応答の集合を作成する。
【０１２０】
ステップ１５１５で、複合皮膚ポーズ応答は、皮膚ポーズ応答の集合から決定される。上述の方法９００と同様に、それぞれの座標参照フレームからの皮膚ポーズ応答が、関連付けられたフレーム重みに応じて組み合わされ、望ましくない剪断効果が補正される。一般に、皮膚ポーズ応答の集合は、関連付けられた座標参照フレームから大域参照フレームに変換され、フレームみ付けの集合に従って総和される。このステップの結果は、複合皮膚応答である。
【０１２１】
ステップ１５２０で、点制約が識別される。点制約は、キャラクター・モデルと自分自身または外部オブジェクトとの衝突から変位される点である。アニメーターは、手作業で、またはキー・フレームの集合または１つまたは複数のアニメーション変数により定義された運動の結果として、それぞれのフレーム内でキャラクター・モデルと接触するようにオブジェクトを位置付けすることにより衝突を作成することができる。点制約は、さらに、アニメーターがキャラクター・モデルの１点を他のオブジェクトに貼り付けることで生じるか、または手動で皮膚点を新しい位置に強制的に配置することにより、生じる場合がある。一実施形態では、ステップ１５２０で、キャラクター・モデルの皮膚上のそれぞれの点を中心とする半径を定義することにより潜在的衝突点を識別する。他の実施形態では、バウンディング・ボックスを使用して、潜在的衝突点を識別する。ステップ１５２０で、使用される衝突点の集合を識別し、衝突からキャラクター・モデルの変形を決定する。
【０１２２】
ステップ１５２５で、衝突点の集合が評価され、皮膚衝突応答が決定される。ステップ１５２５の実施形態では、上述の方法１３００により衝突点の集合を評価する。一般に、第１の変位は、第１の衝突点について決定される。第１の変位は、衝撃基底関数の集合上に射影され、皮膚衝撃応答から初期衝突応答を決定する。初期衝突応答は、周囲衝突点を変位させる。周囲衝突点の変位は、それぞれの皮膚衝撃応答に適用され、さらに、衝突点の集合が変位される。衝突点の集合をさらに変位させると、その後、衝突応答が発生し、これを、衝突点が最終位置に収束するまで繰り返し処理する。衝突点の集合の最終位置により、皮膚衝突応答が定義され、その後、この応答は非衝突点の集合に適用される。
【０１２３】
ステップ１５３０で、複合皮膚ポーズ応答と皮膚衝突応答からキャラクター・モデルが構成される。一実施形態では、複合皮膚ポーズ応答と皮膚衝突応答は両方とも、格納され、基底射影形式で処理される。この実施形態では、複合皮膚応答とアーマチュア基底関数の集合の重み付き総和が皮膚衝突応答と衝撃基底関数の集合の重み付き総和に加えられる。この結果は、アーマチュア・ポーズと衝突に対する応答として変形されるキャラクター・モデルである。
【０１２４】
方法１５００のステップをフレーム毎に繰り返し、アニメーション化シーケンスを生成する。皮膚モード応答と皮膚衝撃応答は組み合わせ準備フェーズにおいて事前計算されるので、組み合わせアニメーション作成フェーズは、リアルタイムまたはリアルタイムに近い速さで実行することができる。このため、アニメーターは、アニメーションを効率よく微調整し、アニメーションの劇的衝撃を最大にすることができる。さらに、キャラクター・モデルの組み合わせ皮膚応答は、アーマチュア・ポーズと衝突に対する応答としてリアルに変形するため、アニメーターは、アニメーションの最終的外観を確認できるのを待たずに、アニメーション・プロセスにおいてキャラクター・モデルの最終的外観を確認する。
【０１２５】
さらに、本発明では、物理的シミュレーション手法により、または運動学的変換手法で使用する複雑なアーマチュア重み付けにより必要とされる下にある骨と筋肉構造を作成せずに、ポーズ設定アーマチュアから直接、リアルなキャラクター変形を決定する。これにより、従来のアニメーション作成手法と比較して、キャラクター・モデルを作成するのに要する時間と労力が低減される。
【０１２６】
ポーズ設定または変形されたモデルが上述の実施形態のうちの１つまたは複数を使用して作成された後、レンダリング手法、例えば、レイトレーシングまたは走査線レンダリングで、照明、シェーディング、テクスチャ・マッピング、その他のイメージ処理情報と組み合わせてモデルから最終イメージまたはフレームを作成することができる。
【０１２７】
付属の書類を読んだ後、当業者であれば、他の実施形態も想定できるであろう。他の実施形態では、上で開示されている発明の組み合わせまたは部分的組み合わせも都合よく作成できる。アーキテクチャのブロック図と流れ図は、理解しやすいようにグループにまとめられている。ただし、ブロックの組み合わせ、新しいブロックの追加、グループの再配置などは、本発明の他の実施形態において考察されることを理解されたい。
【０１２８】
したがって、明細書と図面は、制限ではなく、例示することを目的としているものとみなすべきである。しかし、付属の請求項で定められているように、本発明の広い精神と範囲を逸脱することなく本発明にさまざまな修正と変更を加えられることは明白であろう。
【図面の簡単な説明】
【０１２９】
【図１】本発明の一実施形態を実装することができるコンピュータ・システム実施形態を示す図である。
【図２】例示的キャラクタと例示的キャラクタのポーズを設定するために使用される例示的アーマチュアを示す図である。用される例示的アーマチュアを示す図である。
【図３】本発明の実施形態によりキャラクターをアニメーション化する方法の２つのフェーズを示すブロック図である。
【図４】本発明の一実施形態によりキャラクターをアニメーション化するキャラクター準備フェーズのブロック図である。
【図５】本発明の一実施形態によりキャラクターの皮膚モード応答を決定する方法を示すブロック図である。
【図６Ａ】本発明の一実施形態によるポーズ実施形態における例示的キャラクタの皮膚モード応答の決定を示す図である。
【図６Ｂ】本発明の一実施形態によるポーズ実施形態における例示的キャラクタの皮膚モード応答の決定を示す図である。
【図６Ｃ】本発明の一実施形態によるポーズ実施形態における例示的キャラクタの皮膚モード応答の決定を示す図である。
【図６Ｄ】本発明の一実施形態によるポーズ実施形態における例示的キャラクタの皮膚モード応答の決定を示す図である。
【図６Ｅ】本発明の一実施形態によるポーズ実施形態における例示的キャラクタの皮膚モード応答の決定を示す図である。
【図７】本発明の一実施形態による座標参照フレームの集合に関してキャラクター・モデルに重み付けをする方法を示すブロック図である。
【図８Ａ】本発明の一実施形態によるキャラクター・モデル実施形態の座標参照フレーム重みの集合の決定を示す図である。
【図８Ｂ】本発明の一実施形態によるキャラクター・モデル実施形態の座標参照フレーム重みの集合の決定を示す図である。
【図８Ｃ】本発明の一実施形態によるキャラクター・モデル実施形態の座標参照フレーム重みの集合の決定を示す図である。
【図９】本発明の一実施形態によりポーズ設定キャラクター・モデルを構成するキャラクター・アニメーション・フェーズを示すブロック図である。
【図１０Ａ】本発明の一実施形態により例示的アーマチュアとキャラクター・モデル実施形態からポーズ設定キャラクター・モデルを構成することを示す図である。
【図１０Ｂ】本発明の一実施形態により例示的アーマチュアとキャラクター・モデル実施形態からポーズ設定キャラクター・モデルを構成することを示す図である。
【図１０Ｃ】本発明の一実施形態により例示的アーマチュアとキャラクター・モデル実施形態からポーズ設定キャラクター・モデルを構成することを示す図である。
【図１０Ｄ】本発明の一実施形態により例示的アーマチュアとキャラクター・モデル実施形態からポーズ設定キャラクター・モデルを構成することを示す図である。
【図１１】本発明の一実施形態によりキャラクター・モデルの皮膚衝撃応答を決定する方法を示すブロック図である。
【図１２Ａ】本発明の一実施形態によるキャラクター・モデル実施形態の一部分の皮膚衝撃応答の決定を示す図である。
【図１２Ｂ】本発明の一実施形態によるキャラクター・モデル実施形態の一部分の皮膚衝撃応答の決定を示す図である。
【図１２Ｃ】本発明の一実施形態によるキャラクター・モデル実施形態の一部分の皮膚衝撃応答の決定を示す図である。
【図１３】本発明の一実施形態によりキャラクター・モデルの衝突応答を決定する方法を示すブロック図である。
【図１４Ａ】本発明の一実施形態によるキャラクター・モデルの一部分の皮膚衝突応答の決定を示す図である。
【図１４Ｂ】本発明の一実施形態によるキャラクター・モデルの一部分の皮膚衝突応答の決定を示す図である。
【図１４Ｃ】本発明の一実施形態によるキャラクター・モデルの一部分の皮膚衝突応答の決定を示す図である。
【図１４Ｄ】本発明の一実施形態によるキャラクター・モデルの一部分の皮膚衝突応答の決定を示す図である。
【図１４Ｅ】本発明の一実施形態によるキャラクター・モデルの一部分の皮膚衝突応答の決定を示す図である。
【図１４Ｆ】本発明の一実施形態によるキャラクター・モデルの一部分の皮膚衝突応答の決定を示す図である。
【図１５】本発明の他の実施形態によりポーズ設定キャラクター・モデルを構成するキャラクター・アニメーション・フェーズを示すブロック図である。
【図１】
2006514380.tif 000004
2006514380.tif 000005
【図３】
2006514380.tif 000006
【図４】
2006514380.tif 000007
【図５】
2006514380.tif 000008
2006514380.tif 000009
2006514380.tif 000010
2006514380.tif 000011
2006514380.tif 000012
2006514380.tif 000013
【図７】
2006514380.tif 000014
2006514380.tif 000015
2006514380.tif 000016
2006514380.tif 000017
【図９】
2006514380.tif 000018
2006514380.tif 000019
2006514380.tif 000020
【図１１】
2006514380.tif 000021
2006514380.tif 000022
2006514380.tif 000023
2006514380.tif 000024
【図１３】
2006514380.tif 000025
2006514380.tif 000026
2006514380.tif 000027
2006514380.tif 000028
2006514380.tif 000029
2006514380.tif 000030
2006514380.tif 000031
【図１５】
2006514380.tif 000032
【国際調査報告】
2006514380.tif 000033