(57)【特許請求の範囲】
【請求項１】
コンピュータが実行する、モーションキャプチャデータからの顔面アニメーションの方法であって、前記コンピュータが、
複数のモーションキャプチャマーカを含んだ基準画像を、複数の仮想マーカを含んだ仮想基準画像に対してマッピングするステップと、
複数の所定の顔面状態を有する仮想表情ライブラリを生成するステップと、  前記複数のモーションキャプチャマーカのそれぞれの、前記複数の仮想マーカのうちの対応する仮想マーカへのオフセットを決定するステップと、
複数の所定の顔面状態から、ある顔面状態と、他の１つの顔面状態と、が相互排他的になるように顔面状態のセットを決定するステップと、
前記オフセットと前記決定された相互排他的な顔面状態のセットに基づいて仮想表情ライブラリ内の複数の所定の顔面状態のそれぞれに対する重みの解を決定し、かつ、前記相互排他的な顔面状態のセットが決定されているときは、前記ある顔面状態に関連する重みの解がゼロ以外であるときには、前記他の１つの顔面状態に関連する重みの解がゼロとなるように決定されるものであるステップと、
顔面アニメーションを生成するために、前記重みの解に従って前記仮想表情ライブラリ内の前記複数の所定の顔面状態を結合するステップと、を有する方法。
【請求項２】
モーションキャプチャデータの基準画像を仮想基準画像に位置決めおよび位置合わせするステップを更に有する請求項１に記載の方法。
【請求項３】
前記複数のモーションキャプチャマーカのそれぞれの前記オフセットを決定する前記ステップは、前記複数のモーションキャプチャマーカのそれぞれについてデルタベクトルを決定するステップを有する請求項１に記載の方法。
【請求項４】
前記オフセットを決定する前記ステップは、仮想基準画像から前記対応する仮想マーカまでの距離を決定するステップを有する請求項１に記載の方法。
【請求項５】
前記重みの解を決定する前記ステップは、最小二乗距離を含む所定の性能指標を最適化する前記重みの解を決定するステップを有する請求項１に記載の方法。
【請求項６】
前記複数の所定の顔面状態を結合する前記ステップは、前記重みの解に従った顔面状態の線形頂点モーフィングを含む請求項１に記載の方法。
【請求項７】
前記複数の所定の顔面状態を結合する前記ステップは、前記重みの解に従って、各顔面状態について曲線のメッシュを変形させるステップを有する請求項１に記載の方法。
【請求項８】
顔面アニメーション装置であって、
複数の顔面状態の仮想表情ライブラリおよび基準画像からのモーションキャプチャマーカにマップされた仮想マーカを含む仮想基準画像のアニメーションライブラリであって、前記仮想表情ライブラリは複数の顔面状態を含むものである、アニメーションライブラリと、
モーションキャプチャデータにアクセスし、複数の顔面状態から、ある顔面状態と、他の１つの顔面状態と、が相互排他的になるように顔面状態のセットを決定し、前記アニメーションライブラリ内の前記顔面状態のそれぞれに対して、前記決定された少なくとも１セットの相互排他的な顔面状態に少なくとも部分的に基づいて性能指標を最適化するために重みの解を決定し、かつ、前記相互排他的な顔面状態のセットが決定されているときは、前記ある顔面状態に関連する重みの解がゼロ以外であるときには、前記他の１つの顔面状態に関連する重みの解がゼロとなるように決定されるように構成された重みソルバと、
前記モーションキャプチャデータに対する顔面アニメーションを生成するために、前記重みの解に従って前記複数の顔面状態を結合するように構成された形状デフォーマと、を有する装置。
【請求項９】
前記顔面アニメーションのために、前記重みの解のうちの１つ以上の重みに対する調整を受け取るように構成されたユーザインタフェースと、
前記重みソルバに対する１つ以上のパラメータまたは制約を変更するように構成されたエディタと、を更に有する請求項８に記載の装置。
【請求項１０】
実際の俳優からモーションキャプチャマーカの位置を記録するように構成された少なくとも１つのカメラと、
前記少なくとも１つのカメラに結合され、モーションキャプチャマーカの位置から前記実際の俳優の頭部の動きを除去することによって、モーションキャプチャデータを生成するように構成された安定化モジュールと、を更に有する請求項８に記載の装置。
【請求項１１】
前記基準画像にアクセスし、前記モーションキャプチャマーカのそれぞれの位置を仮想マーカの対応する位置にマッピングするように構成された基準キャプチャモジュールを更に有する請求項８に記載の装置。
【請求項１２】
前記複数の顔面状態のそれぞれは、顔面アニメーションモデルに従った前記仮想基準画像の変形を含む請求項８に記載の装置。
【請求項１３】
前記重みソルバは、少なくとも１つの制約の存在下で前記性能指標を最適化するように構成され、前記少なくとも１つの制約が第２の顔面状態に相互排他的な第１の顔面状態を指定している請求項８に記載の装置。
【請求項１４】
前記少なくとも１つの制約は、前記重みの解にある各重みが変化できる有界範囲を指定している請求項１３に記載の装置。
【請求項１５】
前記重みソルバは、前記モーションキャプチャデータ内のモーションキャプチャマーカの位置および仮想マーカの位置に基づいて、有界最小二乗解を実行するように構成されている請求項８に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
モーションキャプチャとは、物理的オブジェクトの動きをキャプチャする方法である。モーションキャプチャの広く用いられている用途に、物理的オブジェクトの動きをキャプチャして、この動きを、アニメーション化されたオブジェクトの動きの表現に変換することがある。
【背景技術】
【０００２】
実際の俳優の動きをキャプチャして、仮想空間またはアニメーション空間における対応する俳優の動きに変換する処理により、アニメーションに関するコストを削減することができる。更に、キャプチャされた物理的な動きを、アニメーション空間に変換することにより、アニメーション化された俳優の動きにリアルさが与えられるが、このリアルさは、手動アニメーション処理を使用して、仮想環境で動きを作り出す際には完全に実現することができない。
【０００３】
代表的なモーションキャプチャシステムでは、数個のモーションキャプチャマーカが、実際の俳優に配置される。例えば、モーションキャプチャマーカが、実際の俳優の骨格フレームの関節の近くに配置され得る。少なくとも１台のモーションキャプチャカメラ（通常は数台のモーションキャプチャカメラ）を使用して、俳優と、対応するモーションキャプチャマーカの動きとが、一連のピクチャフレームにキャプチャされる。モーションキャプチャマーカの位置が、対応するモデル化されたマーカを有する骨格フレームまたはワイヤフレームに変換され得る。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
実際の俳優に多くのモーションキャプチャマーカを配置することは、実際の俳優の空間が、モーションキャプチャマーカの数および配置面に対して大きい場合には、通常は問題とならない。マーカのための面積が小さくなると、実際の俳優へのモーションキャプチャマーカの配置が問題となってくる。
【０００５】
実際の動きをキャプチャするために多くのモーションキャプチャマーカを配置しても、モーションキャプチャマーカのサイズに対して、マーカの空間的移動が比較的大きな場合には、良好に機能するか、あるいは、モーションキャプチャの誤差が生じても、混合されるアニメーションには実質的に影響しない。従来のモーションキャプチャは、大きな物理的動き（例えば骨格の動き）をキャプチャする際には良好に機能することができる。
【０００６】
しかし、顔面アニメーションなどの用途では、モーションキャプチャマーカが配置される物理的面積が小さい。表情は複雑であるため、従来のモーションキャプチャに必要なモーションキャプチャマーカの数が増えるが、実際の俳優の顔に配置するモーションキャプチャマーカの数を増やすと、キャプチャしようとしている表情自体が隠れてしまうことがある。
【０００７】
更に、モーションキャプチャマーカのわずかなばらつきが、俳優が伝える表情の大きな差となってしまう。マーカが取り付けられている実際の俳優の実際の面積が小さいことと、モーションキャプチャマーカのわずかな変化が、大きな表情の変化に相当するために、モーションキャプチャ処理のノイズおよび誤差が、仮想環境において事実上拡大されてしまう。
【０００８】
モーションキャプチャに基づく顔面アニメーションは、顔面アニメーションに関わるコストを削減するために望ましい。実際の俳優に配置されるモーションキャプチャマーカの数を削減すると共に、同時に、モーションキャプチャからアニメーション化できる表情を複雑なものに保つことが望ましい。
【課題を解決するための手段】
【０００９】
モーションキャプチャデータを使用した顔面アニメーションのための方法および装置をここに記載する。指標の最小化に基づいた数学的解により、モーションキャプチャデータを顔面アニメーションに正確に変換するのに必要なモーションキャプチャマーカの数を低減できる。モーションキャプチャマーカの組と、俳優へのこれらの配置が定義され、仮想マーカを有する仮想形状の組が定義される。仮想マーカの動きが、解剖学的モデルに基づいてモデル化される。初期の顔面キャプチャが、対応する仮想基準形状と相関される。その後行われる顔面キャプチャのそれぞれに対して、デルタベクトルが計算され、デルタマーカ、初期位置および仮想形状の組に基づいて行列解が求められる。この解は、平均二乗距離などの指標を最小化することができる。この解は、ユーザインタフェースまたはコンソールを使用して、手動で変更または編集することができる。
【００１０】
本発明の各種態様は、モーションキャプチャデータからの顔面アニメーションの方法を含む。前記方法は、複数のモーションキャプチャマーカに基づいてモーションキャプチャデータを取得するステップと、前記複数のモーションキャプチャマーカのそれぞれの、複数の仮想マーカのうちの対応する仮想マーカへのオフセットを決定するステップと、前記オフセットに基づいてアニメーションライブラリ内の複数の所定の顔面状態のそれぞれに対する重みの解を決定するステップと、顔面アニメーションを生成するために、前記重みの解に従って前記複数の所定の顔面状態を結合するステップと、を有する。
【００１１】
本発明の各種態様は、顔面アニメーション装置を含み、前記装置は、複数の顔面状態、および基準画像からのモーションキャプチャマーカにマップされた仮想マーカを含む仮想基準画像のアニメーションライブラリと、モーションキャプチャデータにアクセスし、前記アニメーションライブラリ内の前記顔面状態のそれぞれに対して、性能指標を最適化するために重みの解を決定するように構成された重みソルバと、前記モーションキャプチャデータに対する顔面アニメーションを生成するために、前記重みの解に従って前記複数の顔面状態を結合するように構成された形状デフォーマと、を有する。
【００１２】
本開示の各種実施形態の機能、目的および利点は、図面を参照しながら、下記に記載する詳細な説明を読めばより明らかとなるであろう。下記の図面においては、同様の要素に同一の参照符号が付されている。
【発明を実施するための最良の形態】
【００１３】
モーションキャプチャデータを使用した顔面アニメーションのための方法および装置をここに記載する。顔面アニメーションは、数学的解に基づき、モーションキャプチャデータをフィッティングするために所定のアニメーションコントロールの組を混合することによって決定された品質指標を最適化する。所定のアニメーションコントロールのそれぞれは、仮想俳優の特定の定義された顔面の動きまたは状態を操作する。アニメーションコントロールは、顔面の動きまたは顔面状態に関連する筋肉の変形および皮膚の動きを符号化している。
【００１４】
モーションキャプチャデータを所定の顔面状態にフィッティングする数学的解に基づく顔面アニメーションのための方法および装置により、既存のモーションキャプチャ顔面アニメーション手法と比べて、いくつかの改良点が得られる。所定の品質指標を最適化する数学的解は、モーションキャプチャデータ内のノイズの影響を受けにくい。所定の顔面状態の組は、有効な顔面の動きの制限空間を定義する。モーションキャプチャデータ内のノイズおよび誤差は、解の処理中にフィルタリングされる。
【００１５】
所定の顔面状態のそれぞれは、顔面の動きまたは顔面状態に関連する筋肉の変形および皮膚の動きを符号化している。これにより、実際の俳優に配置すべきモーションキャプチャマーカの個数を減らすことができると共に、表情の微妙な変化をキャプチャし、アニメーション化できる能力が維持される。
【００１６】
数学的解の次元を形成している所定のアニメーションコントロールが、手動編集を可能にするユーザインタフェース内に提供され得る。このため、手動編集処理において、アニメーション解の計算中にその設定が自動的に決定されるのと同じコントロールの組を使用することができる。手動アニメーション処理と自動アニメーション処理で同じコントロールを使用することにより、アニメーション処理の整合性が保たれると共に、手動編集処理の設定を簡略化することができる。
【００１７】
図１は、モーションキャプチャデータに基づく顔面アニメーションシステム１００の一実施形態の概略機能ブロック図である。システム１００は、顔面に複数のモーションキャプチャマーカ１１２が配置されている実際の俳優１１０からモーションキャプチャデータを生成するように動作する。各モーションキャプチャマーカ１１２は、顔面の位置に接着され得る。各モーションキャプチャマーカ１１２は、例えば、受動マーカ、能動マーカ、または受動マーカと能動マーカの組み合せなどである。例えば、受動マーカは、所定の波長または波長帯域に対して最適化され得る反射式光学マーカなどである。例えば、能動マーカは、能動光学マーカであってもよく、ＬＥＤなどの光源などである。
【００１８】
実際の俳優１１０と、モーションキャプチャマーカ１１２の対応する位置とを撮影するか、または他の方法によって撮像するために、少なくとも１台のカメラ１２０（通常は数台のカメラ１２０）が使用される。一般に、モーションキャプチャマーカ１１２の位置を３次元で決定可能にするために、複数のカメラを使用するのが有利である。
【００１９】
カメラ１２０からの出力が、カメラ１２０の画像のフレームからモーションキャプチャデータを抽出するように動作するデータキャプチャモジュール１３０に結合され得る。データキャプチャモジュール１３０は、各カメラ１２０からの画像フレーム内のさまざまなモーションキャプチャマーカ１１２の位置を特定するように動作し、モーションキャプチャマーカ１１２の動きに基づいていないデータおよび情報を無視するか、破棄するか、または他の方法によって実質的に除去しうる。例えば、データキャプチャモジュール１３０は、モーションキャプチャマーカ１１２に対応する点の単純な配列のモーションキャプチャデータを生成するように構成され得る。例えば、この点の配列は、複数のモーションキャプチャマーカ１１２の座標の行列として構成され得る。モーションキャプチャデータは、他の視覚情報（実際の俳優１１０の輪郭または陰影、テクスチャおよび他のパラメータなど）をほとんど含まないことがある。
【００２０】
データキャプチャモジュール１３０から出力されたモーションキャプチャデータは、安定化モジュール１４０に結合される。安定化モジュール１４０は、実際の俳優の頭部の動きを実質的に除去するか、または他の方法によって補償するように構成され得る。安定化モジュール１４０は、顔面アニメーションに関わるモーションキャプチャデータを出力する。
【００２１】
安定化モジュール１４０は、複数のカメラ１２０からのモーションキャプチャデータを処理して、実際の俳優の１１０の頭部の傾きまたは回転を決定しうる。安定化モジュール１４０によって生成される頭部の動きデータは、例えば、頭部および体のアニメーションモジュール（図示せず）の動作に使用され得る。
【００２２】
安定化モジュール１４０からのモーションキャプチャデータは、ソルバモジュール１５０に結合され得る。ソルバモジュール１５０は、モーションキャプチャデータの各フレームについて、性能指標を最適化する複数の所定の顔面アニメーション状態のそれぞれに対する重みを決定する。
【００２３】
所定の顔面アニメーション状態のそれぞれは、複数の仮想モーションキャプチャマーカを有するメッシュとして作成され得る。所定の顔面アニメーション状態のそれぞれは、仮想空間内で構成され、実際の俳優の表情の３次元表現であってもよい。顔面アニメーション状態のそれぞれが、実際の俳優１１０からキャプチャされた、対応する実際の顔面状態にマップされている必要はない。
【００２４】
複数の所定の顔面状態間の仮想マーカの位置の変化は、解剖学的モデルに従いうる。例えば、顔面状態の変化は、顔面表情記号化システム（Facial Action Coding System：ＦＡＣＳ）モデルまたは解剖学的モデルのための他のモデルに従いうる。顔面状態は、所定の範囲にわたるように構成され得る。顔面状態を特徴付けるために使用される数値範囲は、正規化され、有界であってもよい。しかし、一部の実施形態では、ある顔面状態を制限する範囲が、他の顔面状態に対して正規化されていなくてもよい。同様に、顔面状態は、有界である必要はないが、通常は、実際の俳優１１０の制約を反映するように有界である。
【００２５】
ソルバ１５０は、所定の性能指標を最適化する解を決定するように構成され得る。例えば、この所定の性能指標は、距離、最小距離、最小二乗距離、有界変数最小二乗や、これらの組み合わせなどであってもよい。
【００２６】
ソルバ１５０は、キャプチャされた状態に寄与するさまざまな顔面状態の重みの解を、形状デフォーマ１７０に結合する。形状デフォーマ１７０は、解に寄与する各顔面状態を混合した顔面アニメーションフレームを生成する。一実施形態では、形状デフォーマ１７０は、ソルバ１５０によって決定された顔面状態の重みに基づいて、顔面状態を変形させるように構成されている。例えば、形状デフォーマ１７０は、アニメーション解に寄与するさまざまな顔面状態の線形頂点モーフィングを実行しうる。
【００２７】
ソルバ１５０は、手動エディタ１６０に解を伝達するか、または他の方法によって手動エディタ１６０が解を使用できるようにしうる。手動エディタ１６０は、各顔面状態の重みをアニメータが変更できるように構成され、顔面アニメーション解に寄与する１つ以上の顔面状態をアニメータが追加または削除できるようにしうる。手動エディタ１６０は、１つのフレームベースでの編集、または複数のフレームベースでの編集を可能にするように構成され得る。例えば、手動エディタ１６０により、特定のモーションキャプチャファイルまたはフレームのグループの全ての顔面アニメーション解に影響する一括変更を適用することができる。手動エディタ１６０は、アニメータに視覚フィードバックを提供するために、形状デフォーマ１７０と連携して動作し、例えば、編集内容に基づいて顔面アニメーションを更新するように構成され得る。
【００２８】
一例では、手動エディタ１６０は、顔面アニメーションに寄与する特定の顔面状態の重みをアニメータが編集できるようにしうる。別の例では、手動エディタ１６０は、アニメータが、顔面状態の範囲に対応する境界の１つ以上を調整するか、または他の方法によって再構成できるようにしうる。例えば、顔面状態が、通常、０〜１の正規化範囲に入るように制限されている場合、手動エディタ１６０により、特定の状態の範囲を、０〜１．２５、０〜０．８やその他の範囲に設定することができる。
【００２９】
一実施形態では、手動エディタ１６０は、各顔面状態のためのコントロール（ノブまたはスライダなど）を有するコンソールを備えるユーザインタフェースを提供しうる。アニメータは、コントロールを操作して、対応する顔面状態に付与された重みを変更することができる。
【００３０】
アニメーションに手動編集が関わったかどうかを問わず、形状デフォーマ１７０によって生成された最終的な顔面アニメーションが、形状デフォーマ１７０からアニメーションモジュール１７０に結合される。アニメーションモジュール１７０は、モーションキャプチャデータに基づいた顔面アニメーションに特に関連しない顔面アニメーション状態（色調、テクスチャリング、陰影または他の手法または操作など）の追加のアニメーションを可能にする。例えば、アニメーションモジュール１８０は、その後のアクセスおよび処理のために、顔面アニメーションフレームを記憶するメモリを備えうる。
【００３１】
図２は、顔面アニメーション装置２００の一実施形態の概略機能ブロック図である。例えば、顔面アニメーション装置２００は、図１の顔面アニメーションシステム１００に示したさまざまなモジュールの一部を実装しうる。
【００３２】
顔面アニメーション装置２００は、モーションキャプチャデータを記憶するように構成された記憶装置２１０を備える。例えば、モーションキャプチャデータは、モーションキャプチャデータの一連のフレームとして記憶され得る。このモーションキャプチャデータは、頭部の動き（傾き、回転および移動など）を除去するために安定化された顔面モーションキャプチャデータであってよい。記憶装置２１０は、事実上どのような種類の電子記憶装置でもよく、例えば、ＲＡＭを含む固体メモリ、ハードディスク記憶装置および磁気テープを含む磁気記憶装置、光ディスクを含む光記憶装置や、あるいはこれらの組み合わせなどである。
【００３３】
記憶装置２１０は、基準キャプチャモジュール２２０と重みソルバ２３０に結合され得る。基準キャプチャモジュール２２０は、モーションキャプチャデータ内のキャプチャされた実際の俳優からの所定の表情と、仮想俳優の対応する所定の表情との間の関係を規定するように構成され得る。基準キャプチャモジュール２２０は、重みソルバ２３０のほか、アニメーションライブラリ２４０にも結合され得る。
【００３４】
基準キャプチャモジュール２２０は、通常、モーションキャプチャデータの基礎となるモーションシーケンスの撮影の前に行われる較正段階で使用される。より詳細には、基準キャプチャモジュール２２０は、実際の俳優のキャプチャされた表情と、アニメーションライブラリ２４０に仮想基準２４２として記憶されている対応する所定の表情との間の関係またはマッピングを規定するために使用され得る。
【００３５】
実際の俳優が、所定のポーズまたは所定の表情をとった状態で、初期画像がキャプチャされる。初期画像は一般に、実際の俳優の３次元画像キャプチャである。例えば、所定の表情は、実際の俳優が実質的に無表情である休止ポーズであってもよい。当然、所定の表情は、休止ポーズに限定されることはなく、ほぼどのようなポーズまたは表情でもよい。
【００３６】
アニメーションライブラリ２４０内の仮想基準２４２は、実際の俳優からの所定の表情に対応しうる所定の表情を記憶するように構成されている。例えば、仮想基準２４２には、実際の俳優の頭部にあるモーションキャプチャマーカの配置点に対応する点に、仮想マーカが配置されているアニメーション化された仮想の頭部から導出された情報およびデータが含まれうる。
【００３７】
一実施形態では、仮想基準２４２は、実際の頭部に対応する３次元形状の数学的表現を生成するための非一様有理Ｂ−スプライン曲線（Non-Uniform Rational B-Spline：ＮＵＲＢＳ）を使用して生成され得る。仮想ＮＵＲＢＳ頭部モデルの外観は、実際のモデルの外観と同じである必要はない。実際、一部の実施形態では、仮想俳優は、本物の俳優に基づいている必要はなく、その代わり、形式化された（stylized）アニメーションキャラクタのモデルであってもよい。
【００３８】
別の実施形態では、仮想俳優は、実際の俳優の３次元スキャンを使用して生成され得る。３次元スキャンから、仮想俳優を定義するメッシュの表面が生成され得る。３次元スキャンの使用は、仮想俳優が、実際の俳優の外観と実質的に同じである場合に有利となりうる。
【００３９】
別の実施形態では、仮想基準２４２は、複数のポリゴンメッシュによって定義される３次元の形状または表面として生成され得る。各ポリゴンメッシュは、仮想基準２４２の表面の一部を定義している。
【００４０】
仮想の頭部の表面に、仮想マーカが配置され得る。仮想マーカのそれぞれの位置は、ＮＵＲＢＳ曲線によって定義されるメッシュが変形しても、このメッシュの表面の同じ点にとどまるように構成され得る。
【００４１】
基準キャプチャモジュール２２０は、実際の俳優から３次元キャプチャされた所定の表情にあるモーションキャプチャマーカの位置から、仮想基準２４２上の仮想マーカの位置にマッピングするように構成されている。一実施形態では、基準キャプチャモジュール２２０は、マッピングを実行する前に、キャプチャされた所定の表情を仮想基準２４２に対して自動的に位置決めおよび位置合わせする。例えば、基準キャプチャモジュールは、位置合わせまたは位置決めの指標に基づいて、仮想基準２４２に対するキャプチャされたモーションキャプチャデータの位置決めおよび位置合わせを変更するように構成され得る。例えば、位置合わせまたは位置決めの指標は、キャプチャされた画像内のモーションキャプチャマーカの位置を、仮想基準２４２内の仮想マーカの位置に関連付ける、最小距離、最小二乗や、またはこれらの組み合わせであってもよい。
【００４２】
別の実施形態では、仮想基準２４２に対するキャプチャされた所定の表情の位置決めおよび位置合わせが、半自動または手動で行われうる。例えば、ユーザは、ユーザインタフェース２５４を使用して、実際の俳優のモーションキャプチャマーカを、仮想基準２４２上の仮想マーカに実質的に位置合わせするために、仮想基準２４２の表示の上に重ねられている、キャプチャされた所定の表情の表示を操作しうる。例えば、ユーザは、ユーザインタフェース２５４を使用して、モーションキャプチャマーカを仮想マーカに対して並進移動、回転、スケール変更したり、または他の方法で位置決めおよび位置合わせしうる。次に、ユーザは、基準キャプチャモジュール２２０を起動して、マッピング操作を実行しうる。マッピング操作の結果、実際の俳優の表面（モーションキャプチャマーカの配置によって定義される）の、仮想俳優の表面に対する概算の相関が求められる。
【００４３】
顔面アニメーション装置２００は、わずか１つの所定の表情を使用してもよいが、別の実施形態では、実際の俳優からの複数の所定の表情が、対応する１つの仮想基準２４２にマッピングされてもよく、有利である。顔面アニメーション装置２００が、所定の表情の１つのマッピングを利用することができることで、顔面アニメーション処理を、仮想ドメインでほぼ完全に実行することができる。更に、実際の俳優からの所定の表情の数を最小限に減らすことで、各所定の表情に対して基準表情を実行しキャプチャするのに要する時間を短縮できる。
【００４４】
キャプチャされた画像のモーションキャプチャデータ２１０のうち、所定の表情ではないものは、重みソルバ２３０に結合される。この場合も、上で説明したように、キャプチャされた画像は、一般に、３次元画像であるか、または３次元の情報を伝える。重みソルバ２３０は、アニメーションライブラリ２４０に結合されており、仮想基準２４２のほかに仮想表情ライブラリ２４４を使用して、顔面アニメーション解を生成する。
【００４５】
仮想表情ライブラリ２４４内の各表情は、仮想基準２４２の生成に使用されたのと同じ仮想俳優に基づきうる。各顔面状態は、３次元の仮想俳優による異なる表情であってもよい。例えば、アニメータは、ＮＵＲＢＳ曲線によって定義されるメッシュを操作して、仮想表情ライブラリ２４４内の各顔面状態を生成しうる。顔面状態の数およびタイプは、仮想俳優の所望の表情の範囲に基づいて決定され得る。仮想表情ライブラリ２４４に含まれる顔面状態の数およびタイプが不十分な場合、仮想俳優のアニメーション化された表情の動きが欠落することがある。一般に、仮想表情ライブラリ２４４内の各顔面状態は、現実の顔面の動きを表すために生成される。顔面アニメーションが、モーションキャプチャデータ内の人間の行動をリアルにトラッキングすることが望ましい場合は、仮想表情ライブラリ２４４内の顔面状態を、実際の表情に制限することが望ましいこともある。しかし、一部の実施形態では、仮想表情ライブラリ２４４内の顔面状態が、誇張、変形などの非現実的な顔面の動きを表してもよい。
【００４６】
作成者、つまりアーチストは、仮想基準２４２を始点として使用して、仮想表情ライブラリ２４４内の各顔面状態を作成することができる。各仮想顔面状態に現れる筋肉および皮膚の細かい変形は、ＮＵＲＢＳなど、形状のプロダクツとして生じる。メッシュが変形しても、メッシュに配置された仮想マーカは、メッシュ上の元の位置に保持される。
【００４７】
重みソルバ２３０は、アニメーションライブラリ２４０内の各顔面状態に適用される相対重みを決定するように構成され得る。この相対重みが結合されて、モーションキャプチャデータによって示される表情が再現される。一実施形態では、重みソルバ２３０は、モーションキャプチャデータ２１０の各フレームに対して、相対重みまたは混合形状重みなどのコントロール値を決定するように構成され得る。重みソルバ２３０は、仮想マーカがモーションキャプチャマーカに実質的に一致するか、または他の方法によってこれと位置が合うように、性能指標に基づいて重みまたはコントロール値の組を生成するように構成され得る。重みソルバ２３０は、モーションキャプチャデータの各フレームに対して、重みを再決定するか、または他の方法によって再計算できる。
【００４８】
実際の俳優の動きに対応するモーションキャプチャデータにおいて、顔面の筋肉の活動が皮膚を変形させ、モーションキャプチャマーカが空間中で並進移動する。重みソルバ２３０は、仮想俳優の皮膚または表面を変形させるための重みを決定し、仮想マーカを対応する量だけ空間中で並進移動させる。モーションキャプチャデータの各フレームに対して、重みソルバ２３０は、仮想マーカをモーションキャプチャデータに位置合わせする重み値（例えば混合形状重み値）の組を見つけ出すように構成することができる。
【００４９】
仮想俳優の表面上の点が線形に移動するという前提に基づいて、重みソルバ２３０によって決定される解は、わかりやすい最小二乗法のタイプ、線形最適化問題として実装され得る。
【００５０】
ｍ個のコントロール（例えば混合形状重み）を仮定すると、ある点の新しい位置は以下のように計算される。
【数１】
0005829371.tif 000002
ここで、ｄｊ＝ｐｉｊ−ｐｉ、
ｐｉ＝全てのコントロールが最大値をとるときのｉ番目の点の位置、
ｐｉｊ＝コントロールｔｊが最大値をとるときのｉ番目の点の位置。
【００５１】
上に示した式から、以下のベクトルおよび行列を定義することができる。
ｔ＝（ｔ１  ｔ２  ．．．  ｔｍ）Ｔ、コントロール値のｍ×１ベクトル。
ｚｉ＝（ｐｉｘ  ｐｉｙ  ｐｉｚ）Ｔ、ｉ番目の点の休止位置。
ｙｉ＝（ＰＴｉｘ  ＰＴｉｙ  ＰＴｉｚ）Ｔ、ｉ番目の点のターゲット位置。
Ｘｉ＝（ｄ１  ｄ２  ．．．  ｄｍ）、デルタ値の３×ｍ配列。
【００５２】
ベクトルおよび行列の定義から、位置に関して以下の式が得られる。
【数２】
0005829371.tif 000003
【００５３】
重みソルバ２３０は、性能指標を最適化するｍ個のコントロールの値を決定するように構成され得る。性能指標は、アニメーションの適切さを示す指標であれば、ほぼどのような指標として構成されてもよい。しかし、モーションキャプチャマーカの位置が、さまざまな顔面状態における仮想マーカの初期休止位置に対する距離として表され得るため、距離ベースの性能指標を使用するのが便利なこともある。例えば、性能指標が二乗距離であり、最適性能指標が最小二乗距離などである。重みソルバ２３０は、以下の式によって決定される最小二乗距離を与えるｍ個のコントロールの値を決定するように構成され得る。
ｄｉ２＝［ｙｉ−（ｚｉ＋Ｘｉｔ）］２
【００５４】
重みに対する勾配は、ｔに対して上記の式の導関数を求めることで決定することができる。このため、勾配は以下の式によって求めることができる。
２ＸｉTＸｉｔ−２（ｙｉ−ｚｉ）２Ｘｉ
【００５５】
勾配が実質的にゼロのときに最適値に達する。重みソルバ２３０は、個々の勾配方程式から生成したブロック行列を求めることによって、各モーションキャプチャマーカに対応するｎ個の点の解を求めるように構成され得る。このため、重みソルバ２３０は、以下の行列の一般解を求めるように構成され得る。
【数３】
0005829371.tif 000004
【００５６】
ｍ個のコントロールのそれぞれは、所定の範囲（例えば［０．１］）に制限されるように構成され得る。
このため、重みソルバ２３０は、境界の制約を満たす解を決定するように構成され得る。重みソルバ２３０は、有界最小二乗解を求めるように構成され、それぞれの重みが所定の有界範囲内に制限され得る。
【００５７】
重みソルバ２３０は、重みに対する解を記憶装置（メモリ２８０など）に結合するように構成され得る。重みソルバ２３０は、１つ以上の追加のモジュールがアクセスできるように、モーションキャプチャデータの各フレームの重み解をメモリ２８０に記憶しうる。
【００５８】
形状デフォーマ２７０は、アニメーションライブラリ２４０およびメモリ２８０に結合され得る。形状デフォーマ２７０は、特定のフレームの重みにアクセスし、アニメーションライブラリ２４０からの顔面状態にこの重みを適用することにより、対応する顔面アニメーションを生成しうる。例えば、形状デフォーマ２７０は、アニメーションライブラリ２４０にある形状の線形頂点モーフィングを実行するように構成され得る。別の実施形態では、形状デフォーマ２７０は、他の手法を使用して、アニメーションライブラリからのさまざまな顔面状態を混合するように構成され得る。形状デフォーマ２７０は、変形または他の方法で混合された形状をメモリ２８０に記憶するか、あるいは表現または出力の処理中に、混合または変形された形状を生成するように構成され得る。
【００５９】
例えば、顔面アニメーション装置２００は、別個のハードウェアモジュールとして実装されても、記憶装置に記憶され、１つ以上のプロセッサ２６０上で実行されるソフトウェアとして実装される１つ以上のプロセッサ可読命令として構成されても、あるいはこれらの組み合わせとして構成されてもよい。一実施形態では、顔面アニメーション装置２００は、コンピュータワークステーション上で実行されているソフトウェアを使用して実装され得る。メモリ２８０は、モジュールの１つ以上の１つ以上の機能を実行するために、プロセッサ２６０によって実行される１つ以上の命令を記憶するように構成され得る。
【００６０】
ユーザは、エディタ２５０に結合されたユーザインタフェース２５４を使用して、１つ以上のモーションキャプチャフレームに対する重み解にアクセスし、これを手動で編集することができる。例えば、アニメータは、重みソルバ２３０によって決定された重みに従って顔面状態を混合して得られた顔面アニメーションフレームの１つ以上を表示することができる。アニメータは、エディタ２５０の一部である画像エディタ２５８に結合されたユーザインタフェース２５４を使用して、顔面アニメーションを手動で編集することができる。
【００６１】
ユーザインタフェース２５４と画像エディタ２５８は、顔面アニメーションを実現するために使用されるのと実質的に同じ処理を使用して、顔面アニメーションを手動編集できるように構成され得る。例えば、ユーザインタフェース２５４は、顔面アニメーションと、重みソルバ２３０によって決定された重みを表示しうる。ユーザインタフェース２５４は、アニメータが、アニメーションライブラリ２４０からの顔面状態の１つ以上に対応する重みを調整できるようにしうる。
【００６２】
ユーザインタフェース２５４は、ハードウェアに実装されるか、またはソフトウェアとハードウェアの組み合せとして実装され得る。例えば、ユーザインタフェース２５４は、出力を提供し、ユーザ入力を受け取るためにハードウェアを備えて構成されたグラフィカルユーザインタフェース（ＧＵＩ）であってもよい。
【００６３】
一実施形態では、ユーザインタフェース２５４は、対応する顔面状態の重みを調整するコントロールを提供しうる。ユーザインタフェース２５４は、アニメーションライブラリ２４０内の各顔面状態の対応するコントロールを提供するか、または１つ以上の顔面状態に選択的に関連付けられたコントロールを提供しうる。例えば、ユーザインタフェース２５４は、アニメーションライブラリ２４０内の顔面状態用のスライドコントロールを表示するＧＵＩであってよい。ユーザインタフェース２５４は、それぞれの顔面状態のコントロールを有するか、顔面状態の集合に対してコントロールを提供しうる。例えば、ユーザインタフェース２５４から、仮想基準２４２に対応するコントロールが省略されてもよいが、これは、他の全ての顔面状態に対して重みを適用しなければ仮想基準２４２が得られるためである。アニメータは、スライドコントロールを動かして、対応する顔面状態に関連する重みを変更することができる。このようにして、アニメータは、重みと、得られる顔面アニメーションとを手動で編集することができる。
【００６４】
エディタ２５０は、ユーザインタフェース２５４から変更された重みを受け取り、形状デフォーマ２７０を制御して、顔面アニメーションを更新させるように構成され得る。次に、エディタ２５０は、ユーザインタフェース２５４での表示のために、更新された顔面アニメーションのフォーマットを調整しうる。例えば、エディタ２５０は、編集された重みと、対応する顔面アニメーションとを記憶しうる。アニメータが編集内容を承諾するか、または他の方法によって記憶すると、エディタ２５０はメモリ２８０に記憶されている、アニメーションフレームに対する重みおよび顔面アニメーションを変更するように構成され得る。
【００６５】
また、エディタ２５０は、ユーザが、ユーザインタフェース２５４を介して、重みソルバ２３０に関連する１つ以上のパラメータまたは制約を変更できるようにするソルバエディタ２５６も備える。例えば、ユーザは、ソルバエディタ２５６を使用して、重みソルバ２３０が使用可能なアニメーションライブラリ２４０からの顔面状態の数および識別情報を変更するか、または他の方法によって構成することができる。更に、ユーザは、ソルバエディタ２５６を使用して、ソルバ制約（例えば顔面状態の相互排他性）を変更することができる。また、ユーザは、ソルバエディタ２５６を使用して、アニメーションライブラリ２４０内の顔面状態２４４の１つ以上の重みに対する有界範囲を変更することもできる。
【００６６】
重みソルバ２３０は、初期重み解の決定後に、ソルバエディタ２５６を使用してソルバパラメータまたは制約が変更されると、フレームの１つ以上の重み解をリフレッシュするか、または他の方法によって再決定するように構成され得る。例えば、ユーザは、最初のアニメーションの結果を見てから特定の表情を強調しようと思い、範囲を広げることができるように、ソルバエディタ２５６を使用して、表情に関連する範囲を変更することができる。重みソルバ２３０は、その後、新しいパラメータに基づいて、フレームの一部または全てをリフレッシュするか、または他の方法によって再決定するように構成され得る。
【００６７】
図３は、位置決めおよび位置合わせを示す簡略的な例である。図３には、便宜上、実際の俳優と仮想俳優の画像が含まれる。キャプチャされた画像と仮想俳優の画像には３次元の情報が含まれるが、これは図３では容易にみることができない。実際の俳優の画像からのモーションキャプチャマーカを、仮想俳優の仮想マーカに対して位置決めおよび位置合わせする処理は、マーカの位置のみを使用するか、仮想俳優のワイヤメッシュモデルを使用するか、実際の俳優の画像を使用するか、仮想俳優のスキンバージョン（skinned version）を使用するか、あるいはこれらの組み合わせによって行われうる。
【００６８】
仮想俳優の仮想マーカに対する、実際の俳優の画像からのモーションキャプチャマーカの初期の位置決めおよび位置合わせは、初期較正中と、顔面アニメーションの段階で実行され得る。位置決めおよび位置合わせ処理は、顔面アニメーション中に、モーションキャプチャデータに基づいて繰り返し行う必要がないこともある。更に、仮想俳優に対する実際の俳優の位置決め、位置合わせおよびマッピングは、わずか１つの所定の表情を使用して行われてもよい。
【００６９】
モーションキャプチャ装置は、顔面に複数のモーションキャプチャマーカが配置されている実際の俳優の基準画像３１０をキャプチャする。基準画像３１０は、通常、実際の俳優の３次元画像である。図３の例では、基準画像３１０は、目を閉じた休止ポーズをとっている所定の表情である。何の表情にも実質的に対応していない所定の表情を規定することは便利であると考えられるが、基準画像３１０に使用される実際の表情は、顔面アニメーション装置および処理の限定事項ではない。
【００７０】
また、顔面アニメーション処理には、仮想基準画像３２０も含まれ、これは、基準画像３１０によって表される所定の表情に実質的に対応する顔面状態である。また、仮想基準画像３２０は、仮想俳優の３次元モデルからの３次元画像であってもよい。仮想基準画像３２０には、仮想俳優の顔面に配置された複数の仮想マーカが含まれる。一般に、仮想マーカ３２２の数は、実際の俳優に配置したモーションキャプチャマーカ３１２の数と同じであり、仮想マーカ３２２の配置は、実際の俳優へのモーションキャプチャマーカ３１２の配置と実質的に同じである。しかし、マーカの数とマーカの位置を一致させることは限定事項ではなく、制約の両方または一方を満足させることが不可能か望ましくない場合もありうる。仮想俳優は、ＮＵＲＢＳ曲線のメッシュとして、実際の俳優の３次元スキャンとして、または他の方法で生成され得る。
【００７１】
顔面アニメーション装置および方法は、実際の俳優と実質的に外観が同じ仮想俳優の顔面アニメーションに限定されることはない。仮想俳優が、実際の俳優とほとんど似ていない、形式化された俳優であってもよい。形式化された仮想俳優の例としては、動物、漫画のキャラクタ、機械装置、芸術的な彫刻または他の形式化されたアニメーションキャラクタに似せた仮想俳優などが挙げられる。
【００７２】
実際の俳優のキャプチャされた基準画像３１０は、仮想基準画像３２０に対して手動または自動で位置決めおよび位置合わせされ得る。手動処理では、ユーザが、ユーザインタフェースにあるコントロールを介して、仮想基準画像３２０の上に基準画像３１０を重ねうる。次に、ユーザは、基準画像３１０または仮想基準画像３２０に関連するパラメータを調整するか、または他の方法によって制御して、モーションキャプチャマーカ３１２を仮想マーカ３２２に位置決めおよび位置合わせしうる。
【００７３】
一実施形態では、ユーザは、基準画像３１０を仮想基準画像３２０に位置合わせするために、基準画像３１０のスケール、回転、傾きおよび並進移動を調整しうる。位置決めおよび位置合わせのレベルは、指標としてユーザに報告されるか、またはユーザによって主観的に最適化され得る。位置決めおよび位置合わせの指標は、例えば、最小距離または最小二乗距離、または他の尺度であってもよい。自動位置決めおよび位置合わせ処理では、位置決めおよび位置合わせの指標を最適化するために、所定の数のパラメータのそれぞれが変更され得る。
【００７４】
２つの画像が位置決めおよび位置合わせされると、モーションキャプチャマーカ３１２の位置が仮想マーカ３２２の位置にマッピングされる。１つのマッピングのみが行われる実施形態では、全ての顔面アニメーションは、基準画像３１０の仮想基準画像３２０に対するマッピングに基づいたものとなる。
【００７５】
マッピングが完了すると、モーションキャプチャデータから生成される顔面アニメーションが、完全に仮想ドメインにおいて数学的に計算され得る。重みソルバが提供する重みは、アニメーション化される表情に寄与する、アニメーションライブラリにあるさまざまな顔面状態を変形させるように機能する。仮想俳優に発生し、顔面アニメーションとして表示される皮膚および筋肉の細かい変形は、顔面状態の変形の結果として生じるものであり、モーションキャプチャデータから仮想俳優への直接変換として行われるものではない。このため、仮想俳優によって描写される表情の細かさのレベルは、仮想俳優および顔面状態を形成する形状に含まれる細部によってほぼ決まる。顔面アニメーションの細部は、皮膚および筋肉の細かい変形をキャプチャする実際の俳優へのモーションキャプチャマーカの配置には依存しない。このように、ここに記載の顔面アニメーションの方法および装置は、モーションキャプチャマーカを仮想俳優の表情の変形に直接マッピングする顔面アニメーション処理に必要とされるよりも、使用するモーションキャプチャマーカがはるかに少なくて済む。
【００７６】
図４は、モーションキャプチャデータに基づく仮想俳優の顔面アニメーションを示す簡略的な例である。第１の画像４１０は、モーションキャプチャデータのフレーム内に記憶されているモーションキャプチャマーカ４１２の位置を示す。第１の画像４１０内のモーションキャプチャマーカの位置は、所定のポーズ（休止ポーズなど）をとっている実際の俳優の基準画像のモーションキャプチャマーカ４１２の位置を表しうる。
【００７７】
モーションキャプチャマーカ４１２の位置が、仮想マーカ４１３の位置の上に重ねられて示されている。例えば、モーションキャプチャマーカ４１２の位置は、モーションキャプチャマーカ４１２の位置決めおよび位置合わせされた位置を表しうる。一般に、位置決めおよび位置合わせは３次元で行われるが、図４は図示しやすいように２次元で示されている。このため、モーションキャプチャマーカ４１２の位置は、仮想基準画像の仮想マーカ４１３の位置であるとも解釈され得る。
【００７８】
第２の画像４２０は、特定のフレームのモーションキャプチャデータの例を表している。第２の画像４２０は、モーションキャプチャデータのこの特定のフレームのモーションキャプチャマーカ４１２の位置を示しており、基準位置について仮想マーカ４１３の位置に重ねられている。また、第２の画像４２０は、ソルバの重み解に基づいて決定された仮想マーカ４１４の位置も示している。すなわち、仮想マーカ４１４の位置は、ソルバによって決定された重みに従って顔面状態を混合した後のマーカの位置を表している。
【００７９】
重み付けされた顔面状態が、混合されると、フレームについて実質的にモーションキャプチャマーカ４１２の位置に仮想マーカ４１４を配置するように、仮想俳優の表面を変形させるように、顔面アニメーション装置は、アニメーションライブラリ内の顔面状態のそれぞれに適用される重みを決定する処理を実行する。重みソルバは、性能指標（二乗距離など）を検査することによって、解に収束したと判定する。
【００８０】
第３の画像４３０は、重み付けされた顔面状態の結合、モーフィング、またはその他の混合により得られた顔面アニメーションの例を示す。また、第３の画像４３０には、顔面状態のリストと、顔面状態について、例えば重みソルバによって決定された対応する重みとを示す表示ウィンドウ４４０も含まれる。第３の画像４３０の顔面アニメーション映像が、編集された顔面アニメーションである場合には、表示ウィンドウ４４０は変更された重みを示している。
【００８１】
図５は、さまざまな顔面状態を含むアニメーションライブラリの例である。さまざまな顔面状態（５１０など）は、それぞれ、仮想マーカを含む仮想基準画像から、この仮想基準画像のメッシュまたは曲線を変形させ、所望の顔面状態を作成することによって生成され得る。仮想マーカは、メッシュの表面上の元の位置にとどまる。仮想基準画像のマーカの位置からの、作成された顔面状態内の仮想マーカの位置のずれは、実際の俳優の表情の変化によって生じるずれをモデル化している。
【００８２】
図５に示す顔面状態（５１０など）は、顔面状態の最大範囲を示し、他の顔面状態は寄与していない。すなわち、図５に示す顔面状態のそれぞれは、１つの顔面状態のみの結果であり、その顔面状態の重みが最大値に設定されている。
【００８３】
アニメーションライブラリに含むことができる顔面状態の数には、事実上制限はない。しかし、含まれる顔面状態が多すぎると、顔面アニメーションが実質的に改善されず、重みソルバによる解が複雑化してしまう。アニメーションライブラリに含まれる顔面状態が少なすぎると、顔面アニメーションの動きが欠落し、得られる顔面アニメーションが望ましくないものとなる。
【００８４】
重みソルバは、顔面アニメーションに寄与する各顔面状態の重みを決定しうる。重みソルバは、それぞれの重みが変化できる有界範囲によって制約され得る。別の実施形態では、重みソルバは、顔面状態の組み合せの制限によって制約され得る。例えば、重みソルバが、ある顔面状態がほかの顔面状態と相互排他的に適用されることを要求する１つ以上の制約を有しうる。例えば、「口の右」を表す顔面状態は、「口の左」を表す顔面状態と相互排他的であるように制約され得る。当然、顔面状態の中には、他の顔面状態と相互排他的でないものがあっても、複数の異なる顔面状態と相互排他的なものがあってもよい。
【００８５】
図６は、顔面状態の混合と、得られる顔面アニメーションを示す簡略的な例である。図６に示す顔面状態の混合は、重みソルバによって決定される重みに基づいても、またはユーザ入力を介した顔面アニメーション装置に入力されるユーザ編集に基づいて手動で決定されてもよい。
【００８６】
第１の画像は、第１の顔面状態６１０の顔面アニメーションを示す。第１の顔面状態６１０は最大範囲にあり、他の顔面状態は画像に寄与していないことが示されている。第１のコントロール表示６１２は、顔面アニメーションの編集に使用できるグラフィックユーザインタフェースの一部を示す。第１のコントロール表示６１２は、スライドコントロールの場合には数値を示しており、それぞれがアニメーションライブラリ内の特定の顔面状態に対応している。第１のコントロール表示６１２は、表示されている第１の顔面状態６１０用の第１のスライドコントロール６１４を示している。表示されている第１の顔面状態６１０用の第１のスライドコントロール６１４は、その最大範囲またはフルレンジをとって示されている。
【００８７】
同様に、第２の画像は、第２の顔面状態６２０の顔面アニメーションと、第２のコントロール表示６２２を示している。第２の顔面状態６２０は、同様に最大範囲をとり、他の顔面状態は寄与していないことが示されている。第２のコントロール表示６２２では、第２のスライドコントロール６２４がそのフルレンジまたは最大範囲をとり、他の全てのスライドコントロールは最小範囲をとって示されている。
【００８８】
第３の画像は、第１の画像と第２の画像との混合、モーフィングまたは組み合せである顔面アニメーション６３０を示しており、第１の顔面状態６１０がその最大範囲の約８０％に重み付けされ、第２の顔面状態６２０がその最大範囲の約７５％に重み付けされるように制御されている。例えば、第１の顔面状態６１０と第２の顔面状態６２０は、それぞれ、スライドコントロール６１４，６２４の位置を再調整することによってこれらの重みに制御され得る。第３のコントロール表示６３２では、第２のスライドコントロール６２４がその最大範囲の約７５％に再調整されて示されている。
【００８９】
得られる顔面アニメーションと、顔面アニメーションのさまざまなテクスチャおよび変形は、曲線、メッシュ、および各顔面状態の基礎をなすその他の構造に基づいている。合成された顔面アニメーション６３０は、実際のモーションキャプチャマーカの仮想空間への顔面マッピングを必ずしも反映したものでなくてもよく、モーションキャプチャデータ内の実際のマーカの位置に最も適合する仮想空間における重み付けされた解を反映していてもよい。
【００９０】
図７は、モーションキャプチャデータを使用した顔面アニメーションの方法の概略フローチャート７００である。方法７００は、例えば、アニメータによって提供される入力または制御を使用して、図１または図２の顔面アニメーション装置によって実行され得る。
【００９１】
方法７００はブロック７０２から開始し、アニメータが、実際の俳優のモーションキャプチャマーカの位置を決定する。記載している実施形態では、実際の俳優の顔面に配置するモーションキャプチャマーカの数は、モーションキャプチャマーカの位置を顔面アニメーションに直接マッピングする他のモーションキャプチャの実装で使用されるマーカよりも少なくてもよい。直接マッピングの顔面アニメーションの実装では、モーションキャプチャマーカの移動を用いて、仮想俳優上の仮想マーカが移動され得る。このため、アニメーション化される表情の細部は、実際の俳優の変化をキャプチャできるモーションキャプチャマーカの能力に直接対応しうる。
【００９２】
しかし、ここに記載の方法および装置では、仮想俳優の顔面アニメーションは、複数の顔面アニメーション状態の混合の結果得られる。得られる顔面アニメーションの細部は、モーションキャプチャマーカによってキャプチャされる詳細の関数では必ずしもなく、混合された顔面アニメーションに寄与する各顔面状態に含まれる細部に基づく。例えば、開示の方法および装置を支援するモーションキャプチャマーカの数は、わずか３０個であってもよく、その際、仮想俳優にアニメーション化される特徴の細部はほとんど失われずに済む。
【００９３】
アニメータはブロック７１０に進み、仮想俳優のアニメーションモデルを決定しうる。一部の実施形態では、仮想俳優は、実際の俳優と実質的に同じに定義され得る。しかし、別の実施形態では、仮想俳優が実際の俳優と似ている必要はない。例えば、仮想俳優は、物理的な世界に類似するものがない、形式化されたキャラクタまたは想像のキャラクタであってもよい。
【００９４】
アニメータは、例えば、各種アニメーションツールのいずれかを使用して、仮想俳優のモデルを生成しうる。例えば、アニメータは、ＮＵＲＢＳ曲線の組に基づいて、頭部のスカルプチャを定義しうる。また、アニメータは、さまざまな顔面状態をアニメーション化するための基礎をなすモデルも定義しうる。例えば、人間の頭部を実質的に表す仮想俳優の動きは、顔面表情記号化システム（Facial Action Coding System：ＦＡＣＳ）などの所定の顔面モデルによって、その動きがモデル化されていてもよい。
【００９５】
ステップ７１２において、アニメータはアニメーションライブラリを定義する。アニメータは、基準顔面状態を表す顔面状態のほかに、アニメーションライブラリに寄与する顔面状態を決定しうる。各顔面状態は、異なる表情を表しており、アニメーションライブラリ内の顔面状態の数およびバリエーションが、リアルな顔面アニメーションを作成できる能力に寄与する。例えば、アニメータは、実際の俳優の３次元スキャン、基準顔面状態における仮想俳優のモデル、あるいは仮想俳優の他のモデルまたは表現などに基づいて、各顔面状態を作成しうる。
【００９６】
アニメータはブロック７２０に進み、顔面アニメーション装置が、所定のポーズをとっている実際の俳優の基準画像をキャプチャする。基準画像内のモーションキャプチャマーカの位置が、仮想基準画像内の仮想マーカの位置にマッピングされる。一般に、基準画像は、仮想基準画像によって定義されるのと同じ表情をしている実際の俳優でキャプチャされる。例えば、休止ポーズをとり、実質的に無表情をしている実際の俳優で基準画像がキャプチャされ得る。例えば、顔面アニメーション装置は、モーションキャプチャマーカの位置を記録するように構成されたビデオカメラの組から、基準画像のモーションキャプチャデータを受信しうる。
【００９７】
基準画像のデータをキャプチャしたら、顔面アニメーション装置はブロック７２２に進む。ブロック７２２において、顔面アニメーション装置は、基準画像を仮想基準画像に位置合わせおよび位置決めする。顔面アニメーション装置は、位置合わせおよび位置決めを、アニメータからの手動コマンド、または手動処理と自動処理の組み合わせを併用して、自動的に実行するように構成され得る。一実施形態では、顔面アニメーション装置は、基準画像と仮想基準画像をディスプレイに表示するように構成され得る。顔面アニメーション装置は、アニメータが画像の位置合わせおよび位置決めを実行できるようにするため、基準画像を変更しているアニメータからの入力を受け取りうる。顔面アニメーション装置にあるユーザインタフェースは、位置合わせおよび位置決めを容易にするため、例えば、スケール、回転、並進移動、傾き、および基準画像または仮想基準の他の側面を制御するために使用され得る。
【００９８】
自動、手動を問わず、基準画像および仮想基準画像が位置合わせおよび位置決めされると、顔面アニメーション装置はブロック７２４に進み、位置合わせおよび位置決めされた基準画像上のモーションキャプチャマーカの位置を、仮想基準画像上の仮想マーカの位置にマッピングする。例えば、顔面アニメーション装置は、各モーションキャプチャマーカの位置を、最も近い仮想マーカに対して決定し、その後得られるモーションキャプチャデータを、マッピングで決定されたオフセット距離によって補償しうる。
【００９９】
顔面アニメーション装置はブロック７３０に進み、顔面アニメーションを実行すべき１つ以上のフレームについて、モーションキャプチャデータをキャプチャするか、または他の方法によって受け取る。一般に、モーションキャプチャデータは、モーションキャプチャデータのフレームに編成されており、これらのフレームは、モーションキャプチャマーカを位置合わせし、顔面アニメーションとは無関係な頭部の移動を除去するために処理されている。顔面アニメーション装置は、モーションキャプチャデータの１つのフレームをメモリから取得するように構成されても、または、供給源（モーションキャプチャカメラの組など）から、モーションキャプチャデータを１度に１フレームずつ受け取るように構成されてもよい。
【０１００】
顔面アニメーション装置は、モーションキャプチャデータのフレームを受け取るかまたは取得すると、ブロック７４０に進む。顔面アニメーション装置は、モーションキャプチャマーカの位置を決定する。例えば、顔面アニメーション装置は、各モーションキャプチャマーカの位置を３次元で決定するために、複数のカメラからのモーションキャプチャデータを使用しうる。例えば、顔面アニメーション装置は、基準画像の位置決めおよびマッピング中に定義された直交座標系に従って、各モーションキャプチャマーカのｘ、ｙ、ｚ位置を決定しうる。
【０１０１】
顔面アニメーション装置はブロック７４２に進み、モーションキャプチャデータ内の各モーションキャプチャマーカと、仮想基準画像上の対応する仮想マーカとの間の距離を決定する。一般に、顔面アニメーション装置は、特に、モーションキャプチャマーカと仮想マーカ間に一対一の対応が存在し、かつモーションキャプチャマーカの少なくとも１つの移動が隣接するマーカの間の距離に対して小さい場合に、モーションキャプチャマーカと、関連する仮想マーカとの組み合せを一意に特定することが可能である。顔面アニメーション装置は、基準画像の仮想基準画像へのマップ中に決定されたマッピング誤差を訂正した後に、距離を決定するように構成され得る。
【０１０２】
一部の実施形態では、顔面アニメーション装置は、距離のほかに、方向を決定するか何らかの形で示すように構成され得る。例えば、顔面アニメーション装置は、各モーションキャプチャマーカの、その関連する仮想マーカに対するデルタを示すベクトルを決定するように構成され得る。
【０１０３】
顔面アニメーション装置はブロック７５０に進み、顔面アニメーションライブラリ内の顔面状態に対する重みの解を決定し、これらが、モーションキャプチャデータに実質的に適合させるために合成または混合される。顔面アニメーション装置は、重みに関連する性能指標を最適化するように構成され得る。例えば、性能指標は、最小距離、最小二乗距離または他の性能指標であってもよい。
【０１０４】
顔面アニメーション装置は、１つ以上の解制約の存在下で、性能指標を最適化するように構成され得る。解制約は、例えば、重み解を制約するか、または他の方法によって限界を定める規則であってよい。例えば、解は、有界最小二乗解であり、重みはそれぞれ、所定の範囲内に入るように制約される。この所定の範囲は、それぞれの表情が正規化される表情の範囲などである。別の制約は、ある顔面状態を他の１つ以上の顔面状態と相互排他的になるように指定しうる。この制約下では、ある顔面状態に関連する重みがゼロ以外である重み解が、相互排他的な別の顔面状態に関連する重みが非ゼロであってはならない。相互排他的な顔面状態の例としては、例えば、「口の右」の顔面状態と「口の左」の顔面状態が挙げられる。
【０１０５】
重み解を決定すると、顔面アニメーション装置はブロック７６０に進み、さまざまな顔面状態に対する重みに少なくとも部分的に基づいて、顔面アニメーションを決定する。例えば、顔面アニメーション装置は、顔面状態の線形頂点モーフィングを、その重みに従って実行する混合形状デフォーマを実行するように構成され得る。顔面状態は、混合形状デフォーマによってターゲットとして使用される。
【０１０６】
顔面アニメーションを生成すると、顔面アニメーション装置は判定ブロック７７０に進み、アニメーション化すべき追加のフレームが存在するか、あるいかモーションキャプチャデータの全てのフレームがアニメーション化されているかを判定する。モーションキャプチャデータのフレームが更に存在する場合、顔面アニメーション装置はブロック７３０に戻り、モーションキャプチャデータの次のフレームをキャプチャするか、取得するか、または他の方法によって受け取る。全モーションキャプチャデータが処理され、対応する顔面アニメーションフレームが生成されている場合、顔面アニメーション装置はブロック７８０に進む。
【０１０７】
ブロック７８０において、顔面アニメーション装置は、アニメータが、生成済みの顔面アニメーションフレームに対して、手動編集を実行可能にしうる。例えば、アニメータは、顔面アニメーションをプレビューして、１つ以上のフレームを編集すべきであると判定しうる。顔面アニメーション装置は、グラフィカルユーザインタフェースを介してアニメータから編集内容を受け取りうる。グラフィカルユーザインタフェースは、顔面アニメーションを表示し、顔面状態の１つ以上に関連するコントロールを表示しうる。アニメータは、顔面状態に関連するコントロールを操作することによって、顔面状態の重みを調整しうる。例えば、グラフィカルユーザインタフェースは顔面状態のそれぞれに対してスライドコントロールを表示し、アニメータは、対応するスライドコントロールを操作することにより、顔面状態の重みを調整しうる。
【０１０８】
また、顔面アニメーション装置は、顔面状態の１つ以上に対する一括変更を可能にしうる。また、顔面アニメーション装置は、重みソルバに関連する１つ以上のパラメータまたは制約を編集可能にしうる。例えば、複数の顔面状態の範囲が、最初は同じ範囲に正規化されているとする。アニメータは、顔面状態の１つ以上の範囲を、正規化範囲とは異なる範囲に拡げるように調整しうる。更新された範囲は、顔面アニメーションフレームの全てに適用されるか、またはフレームの選択された集合のみに適用され得る。範囲の変更が可能であることは、顔面状態では実際の俳優の表情を良好に描写できない場合や、特定の顔面アニメーションを誇張する場合に、役立つことがある。
【０１０９】
アニメータがコントロールを調整すると、顔面アニメーション装置は、顔面アニメーションの変化の視覚によるフィードバックをアニメータに提供するために、顔面アニメーションを更新しうる。ユーザインタフェースは、アニメータが編集内容を承諾して、編集した顔面アニメーションフレームを記憶可能にしうる。アニメータが顔面アニメーションフレームを手動で編集すると、顔面アニメーション装置は判定ブロック７８５に進み、編集を行ったことで、重み解を更新する必要があるかどうかが判定され得る。例えば、手動編集によって、重みソルバが使用可能な顔面状態が追加または削除された場合は、重み解が変わりうる。１つ以上の重み解を再決定するか、または他の方法によってリフレッシュする必要がある場合、顔面アニメーション装置はブロック７５０に戻り、重み解を更新する。
【０１１０】
判定ブロック７８５において、顔面アニメーション装置が、解の更新は不要であると判定した場合、顔面アニメーション装置はブロック７９０に進み、顔面アニメーション処理が終了する。例えば、アニメータが、特定のフレームに対して重み解を調整して、そのフレームについて単にアニメーション編集を実行する場合には、重み解の更新が不要なことがある。
【０１１１】
アニメーションコントロールの組に対するモーションキャプチャ性能を求めることによって、顔面アニメーションの処理を可能にする方法および装置をここに開示した。各アニメーションコントロールは、顔面状態のために、特定の顔面の動きを定義するように構成され得る。各アニメーションコントロールは、顔面の動きまたは状態に関連するわずかな筋肉の変形および皮膚の動きを符号化している。
【０１１２】
ここで使用されるように、「結合される」または「接続される」との文言は、直接的な結合または接続のほかに、間接的な結合を指すためにも使用される。２つ以上のブロック、モジュール、デバイスまたは装置が結合されている場合、この２つの結合されたブロックの間に１つ以上の中間ブロックが存在してもよい。
【０１１３】
ここに開示の実施形態に関連して記載した、各種の例示的な論理ブロック、モジュールおよび回路は、汎用プロセッサ、デジタル信号処理装置（ＤＳＰ）、縮小命令セットコンピュータ（ＲＩＳＣ）プロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）またはその他のプログラマブルロジックデバイス、別個のゲートまたはトランジスタロジック、別個のハードウェア部品、あるいはここに記載した機能を実行するように設計されたこれらの組み合わせによって、実装または実行することができる。汎用プロセッサはマイクロプロセッサでもよいが、別法として、プロセッサは、どのようなプロセッサ、コントローラ、マイクロコントローラまたはステートマシンでもよい。プロセッサは、複数のコンピューティングデバイスの組み合せ（例えばＤＳＰとマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、ＤＳＰコアと併用した１つ以上のマイクロプロセッサ、またはこのような他の任意の構成）として実装され得る。
【０１１４】
ここに開示の実施形態に関連して記載した方法、処理またはアルゴリズムのステップは、ハードウェアで直接実施されても、プロセッサによって実行されるソフトウェアモジュールによって実施されても、あるいはこれら２つの組み合せで実施されてもよい。方法または処理における各種ステップまたは行為は、記載した順序で実行されても、別の順序で実行されてもよい。更に、処理または方法の１つ以上のステップを省略しても、処理または方法の１つ以上のステップを方法および処理に追加してもよい。追加のステップ、ブロックまたはアクションは、方法および処理の開始要素、終了要素またはその間の既存の要素に追加することができる。
【０１１５】
開示の実施形態の説明は、全ての当業者が、本開示を作成または使用することができるように提供される。これらの実施形態の各種の変更は、当業者にとって非常に自明であり、ここに定義した一般的な原理は、本開示の趣旨または範囲から逸脱することなく、他の実施形態に適用することができる。このため、本開示は、ここに示した実施形態に限定されることを意図するものではなく、ここに開示した原則および新規の特徴と一貫する最も広い範囲を与えられるべきである。
【図面の簡単な説明】
【０１１６】
【図１】顔面モーションキャプチャシステムの一実施形態の概略機能ブロック図である。
【図２】顔面アニメーション装置の一実施形態の概略機能ブロック図である。
【図３】位置決めおよび位置合わせを示す簡略的な例である。
【図４】モーションキャプチャデータに基づく仮想俳優の顔面アニメーションを示す簡略的な例である。
【図５】アニメーションライブラリ内のさまざまな顔面状態の例である。
【図６】顔面状態の混合を示す簡略的な例である。
【図７】モーションキャプチャデータを使用した顔面アニメーションの方法の概略フローチャートである。
【図１】
0005829371.tif 000005
【図２】
0005829371.tif 000006
【図３】
0005829371.tif 000007
【図４】
0005829371.tif 000008
【図５】
0005829371.tif 000009
【図６】
0005829371.tif 000010
【図７】
0005829371.tif 000011