(57)【要約】      （修正有）【課題】キャラクタ・モデリング、アニメーション・ツールからのオブジェクトのアニメーションを、ランタイム・アニメーション・システムで用いられる表現に変換する。【解決手段】ランタイム・アニメーション・エンジンは、通例、ターゲット構造、ターゲット・スキン、シェーディングを用いて、オブジェクトのアニメーションを表現する。オブジェクトのモーションをソース構造からターゲット構造に移転することに加え、変形およびシェーディングも変換する。ソース・スキンの変形に関する低分解能情報を、スキニング重みの集合に変換し、ターゲット・スキンを、アニメーションのフレーム毎に、ターゲット構造および仮想骨と関連付ける。ソース・スキンの変形からの高分解能の詳細を、正規図の集合、マスク、動画マスク・パラメータに変換し、シェーダがそれを用いる。【選択図】図１
2008033940.tif 000002
【特許請求の範囲】
【請求項１】
第１ツールからのオブジェクトのアニメーションを、ランタイム・アニメーション・システムにおいて用いる表現に変換する方法であって、前記第１ツールは、ソース・スキンを用いて前記オブジェクトを表現し、前記ランタイム・アニメーション・エンジンは、ターゲット構造、ターゲット・スキン、およびシェーディングを用い、前記方法は、
前記第１ツールからの前記オブジェクトの前記アニメーションを用いて、前記ターゲット構造に付加する仮想骨の集合、前記ターゲット・スキンを前記仮想骨に関連付けるスキニング重み、およびアニメーションのフレーム毎に前記仮想骨の動きを指定する動画変形データを記述する情報を発生するステップと、
前記第１ツールからの前記オブジェクトの前記アニメーションを用いて、正規図の集合、１つ以上のマスク、および前記ランタイム・アニメーション・システムのために１つ以上のシェーダが用いる動画マスク・パラメータを記述する情報を発生するステップと、
を備えている、方法。
【請求項２】
請求項１記載の方法であって、更に、前記ソース構造から前記ターゲット構造にモーションをリターゲットするステップを備えている、方法。
【請求項３】
コンピュータ・プログラム製品であって、
コンピュータ読み取り可能媒体と、
前記コンピュータ読み取り可能媒体上に格納されているコンピュータ・プログラム命令であって、コンピュータによって処理されると、当該コンピュータに、第１ツールからのオブジェクトのアニメーションを、ランタイム・アニメーション・システムにおいて用いる表現に変換する方法を実行するように命令し、前記第１ツールは、ソース・スキンを用いて前記オブジェクトを表現し、前記ランタイム・アニメーション・エンジンは、ターゲット構造、ターゲット・スキン、およびシェーディングを用い、前記方法は、
前記第１ツールからの前記オブジェクトの前記アニメーションを用いて、前記ターゲット構造に付加する仮想骨の集合、前記ターゲット・スキンを前記仮想骨に関連付けるスキニング重み、およびアニメーションのフレーム毎に前記仮想骨の動きを指定する動画変形データを記述する情報を発生するステップと、
前記第１ツールからの前記オブジェクトの前記アニメーションを用いて、正規図の集合、１つ以上のマスク、および前記ランタイム・アニメーション・システムのために１つ以上のシェーダが用いる動画マスク・パラメータを記述する情報を発生するステップと、
を備えている、コンピュータ・プログラム製品。
【請求項４】
請求項３記載のコンピュータ・プログラム製品であって、更に、前記ソース構造から前記ターゲット構造にモーションをリターゲットするステップを備えている、コンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
電子ゲームは、実在するようなキャラクタ、プレイ環境、および双方向処理を得るために、三次元モデリング、アニメーション、およびレンダリング技法を用いることは珍しくない。ソニーのPLAYSTATION、任天堂のGAMECUBE、およびMicrosoftのXBOXゲーム・コンソールのような電子ゲーム・プラットフォームの中には、「エンジン」を有し、プレイ中、即ち、ランタイムにおいてリアル・タイムに三次元アニメーションのレンダリングを行う場合がある。ゲーム・エンジンの例には、ValveのSource、およびEpicのUnrealが含まれるが、これらに限定されるのではない。
【背景技術】
【０００２】
これらのゲーム・エンジンは、一般に、キャラクタを、付随するエンベロープまたはスキンを有するスケルトンとして表し、これに対して、シェーディングと呼ばれるプロセスを用いて、カラーやテキスチャを適用する。通例、スケルトンは、相互接続した骨(bone)、または関連する骨の集合によって定義する。エンベロープまたはスキンは、通例、三次元メッシュとして定義する。エンベロープ重みまたはスキニング重みの集合が、スケルトンにおける骨間、およびエンベロープまたはスキンを定義するメッシュにおける頂点間の関係を定義する。これらの重みを定義するプロセスをスキニングと呼ぶ。アニメーションを適用するのは、スケルトンに対してである。エンベロープ重みの集合は、スケルトンの動きに応答してメッシュをどのように変形するかを決定する。正規図の集合が、どのようにシェーディングをメッシュに適用するかに作用する。エンベロープ重みおよび正規図は、ときと共に移り変わることができる。
【０００３】
ゲームを開発するとき、アーティストは、種々の三次元モデリング、アニメーション、およびレンダリング・ツールを用いて、ゲームのキャラクタおよび環境を定義する。通例、これらのアーティストは、ゲーム・エンジンにおいて用いる分解能よりも高い分解能で、モデルを加工する。更に、モデルまたはアニメーションを作成するために用いられるツールはキャラクタおよびアニメーションを表現することができるが、ゲーム・エンジンにおいて用いられる表現とは異なる場合がある。即ち、ツールにおけるメッシュのモーション、変形、およびシェーディングの表現が、ゲーム・エンジンにおける表現とは異なる場合、キャラクタおよびアニメーションの表現を、ゲーム・エンジンが用いることができる表現に変換する必要がある。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
キャラクタ・モデリングおよび／またはアニメーション・ツールからのオブジェクトのアニメーションを、ゲーム・エンジンのような、ランタイム・アニメーション・システムにおいて用いられる表現に変換する。このようなツールは、通例、構造およびソース・スキンを用いてオブジェクトを表現する。ランタイム・アニメーション・エンジンは、通例、ターゲット構造、ターゲット・スキンおよびシェーディングを用いて、オブジェクトのアニメーションを表現する。オブジェクトのモーションをそのソース構造からターゲット構造に移転することに加えて、変形およびシェーディングも変換する。ソース・スキンの変形に関する低分解能情報を、スキニング重みの集合に変換し、ターゲット・スキンを、アニメーションのフレーム毎に、ターゲット構造および動画変形に追加する仮想骨と関連付ける。ソース・スキンの変形からの高分解能の詳細を、正規図の集合、１つ以上のマスク、および動画マスク・パラメータに変換し、１つ以上のシェーダがそれを用いる。
【０００５】
この変換プロセスは、オブジェクトのアニメーションを定義するために用いられるキャラクタ・モデリングおよび／またはアニメーション・ツールによって適用することができ、あるいは別個のツールにおいて実装することもできる。変換プロセスは、ランタイム・アニメーション・エンジン用のオブジェクトについて定義したターゲット構造およびターゲット・スキンを用い、ソース構造およびターゲット構造間の関係を指定し、ソース・スキンにおける頂点およびターゲット・スキンにおける頂点の間の関係を指定する必要がある。
【課題を解決するための手段】
【０００６】
モーション・リターゲッティング技法(motion retargetting technique)を用いて、ソース構造からターゲット構造にモーションを移転することができる。このような技法は、２００５年５月２０日に出願され、"TRANSFER OF MOTION BETWEEN ANIMATED CHARACTERS"（動画で表現したキャラクタ間のモーション移転）と題する米国特許出願第１１／１３４，６５３号に記載されている。その内容は、ここで引用したことにより、本願にも含まれるものとする。
【０００７】
低分解能の変形は、仮想骨をターゲット構造に追加することによって、そしてスキニング重みおよびフレーム毎の動画変形データを計算することによって得られる。最初に、ロケータと呼ばれるキー・ポイントを、ソース・メッシュ上に置く。アーティストは、どのポイントがロケータであるか指定することができる。これらのロケータは、ターゲット構想に追加する仮想骨を指定するために用いられ、ターゲット・スケルトンのキー構造にペアレンティング(parent)される。ペアレンティングは、ユーザ・インターフェースによって定義することができ、ユーザはメッシュのどの部分がスケルトンのどのキー構造にペアレンティングされるか特定することができる。スキニング重みを計算するには、ロケータに対応するターゲット・メッシュ上のポイントを特定する。ターゲット・メッシュ上において特定されたこれらのポイントを、ターゲット構造に追加された仮想骨と関連付ける。特定された各ポイントは、その対応する仮想骨に対して１００％のスキニング重みを有する。ターゲット・メッシュにおける他のポイントに対する重みは、ロケータに対応するターゲット・メッシュにおける最も近いポイントまでの重み付けトポロジ距離に応じて決定する。
【０００８】
フレーム毎の動画変形データも計算する。フレーム毎に、関連付けられた骨を基準にして、ソース・メッシュ上にある各キー・ポイント（ロケータ）の変位を計算する。ユーザは、ペアレンティング・マップを通じて、メッシュにおけるポイントとソース構造における骨との間の関係を指示することができる。ペアレンティング・マップは、ディスプレイにおいてメッシュ上に描画することによって定義することができる。この各ロケータの変位を、ターゲット構造に追加したこのロケータに対応する仮想骨のローカル空間に変形する。フレーム毎の各ロケータに対する変換(transform)変位値の集合は、動画変形(animated deformation)データの集合となる。その結果、ランタイムにおいて動画変形データによって各仮想骨を動かすと、これら動画で表現した仮想骨に対するメッシュのスキニングに合わせて、メッシュが変形する。
【０００９】
シェーディングについての情報を発生するためには、２つの正規図を計算する。第１の正規図は、ソース・スキンの基準ポーズとターゲット・スキンの基準ポーズとの間の差として計算する。第２の正規図は、応力を受けた状態におけるソース・スキンとターゲット・スキンの基準ポーズとの間の差として計算する。これらの正規図は、ソース・スキンにおける詳細な、高周波の変動を取り込み、次いでシェーディングを通じてターゲット・スキンに適用する。
【００１０】
また、シェーディングは１つ以上のマスクおよび対応する動画マスク・パラメータも用いる。各マスクには、ソース・スキンの領域が関連付けられており、ソース・スキンは、ツールが用いるディフォーマ(deformer)と関連付けることができる。各マスクおよびその対応する動画マスク・パラメータは、配合パラメータを定義する。配合パラメータは、ランタイム・シェーダが用いる正規図を提供するための、第２正規図の第１正規図との配合度合いを制御する。正規図の配合制御の分解能を高めるためには、用いるマスクを増加すればよい。ユーザがこれらのマスクを編集できるようにするために、ユーザ・インターフェースを備えるとよい。これらのマスクを共に乗算し、フレーム毎の動画メッシュ・パラメータに基づいて倍率調整する(scale)。ツールにおけるアニメーションのフレーム毎に、各マスクを倍率調整する動画マスク・パラメータを計算する。マスクと関連付けられているソース・スキンの領域における応力のレベルを、各フレームにおいて計算し、マスクに対してこのパラメータを供給する。その結果、マスクを動画マスク・パラメータによって倍率調整し共に配合すると、領域における応力のレベルに基づいて、当該領域に対する応力正規図(stressed normal map)が露顕され、微妙な変形の詳細の幻想(illusion)を作成する。
【００１１】
移転したモーション、仮想骨、スキニング重み、フレーム毎のスキニング・ディフォーマ、正規図、マスク、およびフレーム毎のアニメーション・マスク・パラメータをゲーム・エンジンに供給する。シェーダ、ターゲット・スキン、およびターゲット・スケルトンが与えられれば、ゲーム・エンジンに供給された情報は、アニメーション、特に、ソース・ツールが発生した、ソース・オブジェクトのメッシュの変形を高い忠実度で再生するには十分である。
【発明を実施するための最良の形態】
【００１２】
これより図１を参照して、１つのキャラクタ・モデリングまたはアニメーション・ツールからのキャラクタおよびアニメーションの、ランタイム・アニメーション・システムにおいて用いる表現への変換についてここで説明する。
【００１３】
アニメーション・ツール１００により、ユーザはキャラクタまたはその他のオブジェクトおよび付随するアニメーションを定義することができる。キャラクタまたはその他のオブジェクトは、ソース構造１０２と呼ばれる、スケルトンのような基礎構造と、ソース・メッシュ１０４と呼ばれる表面とを有することができる。エクスポータ(exporter)１１０は、キャラクタおよびアニメーションの表現を、ランタイム・アニメーション・システムが用いるフォーマットに変換する。この変換を行うには、ａ．低分解能の変形を、ターゲット構造に追加する仮想骨１２３の集合、ターゲット・メッシュ１２１におけるポイントを仮想骨に関連付けるためのスキニング重み１２２、およびアニメーションのフレーム毎の動画変形データ１２４に変換し、ｂ．高分解能の変形詳細を、正規図１２６の集合、１つ以上のマスク１２８の集合、１つ以上のシェーダ１３２が用いる、マスク毎の各フレームに対する動画マスク・パラメータ１３０に変換する。この情報は、動画で表現したキャラクタをリアル・タイムで再生するために、ランタイム・アニメーション・システムが用いることができる。即ち、ターゲット構造、ターゲット・メッシュ、仮想骨、スキニング重み、および動画変形データは、ランタイム・スキニングに用いられ、一方正規図、マスク、動画マスク・パラメータ、およびシェーダは、ランタイム・シェーディングに用いられる。
【００１４】
この変換を行うために、エクスポータは、ソース・アニメーションに加えて、ユーザ入力１１２、ならびにターゲット構造１２０およびターゲット・メッシュ１２１の指定を受ける。ソース・アニメーションは、ソース構造およびソース・メッシュを含む。ターゲット・メッシュは、ソース・メッシュと同一でもよいが、通例、ソース・メッシュよりも分解能が低い。ソース構造およびターゲット構造も通例では異なる。
【００１５】
モーションは、モーション・リターゲッティング技法を用いて、ソース構造からターゲット構造に移転することができる。このような技法は、２００５年５月２０日に出願され、"TRANSFER OF MOTION BETWEEN ANIMATED CHARACTERS"（動画で表現したキャラクタ間のモーション移転）と題する米国特許出願第１１／１３４，６５３号に記載されている。その内容は、ここで引用したことにより、本願にも含まれるものとする。リターゲット・モーション１１４は、ランタイム・アニメーション・システムがターゲット構造を操作する際に用いることができる。
【００１６】
低分解能変形情報は、２部分で発生する。まず、仮想骨をターゲット構造に追加し、ユーザが特定したソース・メッシュにおけるキー・ポイント（ロケータと呼ぶ）に基づいて、ターゲット・メッシュを仮想骨に関連付けるためのスキニング重みを定義する。第２に、アニメーションの各フレームにおけるこれらのキー・ポイントにおいて、メッシュの変形に基づいて、フレーム毎の動画変形データを発生する。
【００１７】
初期状態では、エクスポータは、ソース・メッシュおよびターゲット・メッシュを表示し、２つのメッシュの位置、方位、および倍率(scale)を整合させる。メッシュを整合したなら、エクスポータは、ソース・メッシュ座標空間とターゲット・メッシュ座標空間との間の変換(transform)を決定することができる。
【００１８】
エクスポータは、ソース・メッシュを表示し、ソース・メッシュの頂点において、「ロケータ」と呼ばれる場所を特定させる。ロケータは、ユーザが最も大きな変形のエリアのアンカー位置に置き、あらゆる主要な変形エリアは少なくとも１つのロケータを有するはずである。ユーザ・インターフェースは、ソース・メッシュを表示し、所望のロケータを示すためにユーザに単にメッシュを描画させるか、またはメッシュ上のポイントを選択させる。ロケータは、メッシュ上の位置と、方位（表面上のそのポイントに対して垂直）と、スピンとを有する。ユーザは、各ロケータの位置、およびそのスピンを制御することができる。各ロケータは、メッシュとキャラクタのスケルトンとの間のペアレンティング情報に基づいて、ターゲット構造における対応する骨にペアレンティングされている仮想骨を定義するために用いられる。
【００１９】
図２は、フェース・アニメーションについての情報をエクスポートするときに、どこにロケータを置けばよいかを示す。例えば、ロケータは、顔の左右両側における以下のポイントの各々に置くとよい。前頭内側２００、目の上２０２、目の下２０４、鼻の脇２０６、鼻腔２０８、鼻唇褶(nasal labial fold)２１０、唇の上２１２、唇の下２１４、口の中心２１６、顎骨２１８、えら(cheek puffer)２２０、頬骨２２２。ロケータの一部は、鼻先２４０、および顎２４２のような、顔の中心付近に置くとよい。
【００２０】
エクスポータは、メッシュにおける各ポイントのスケルトンにおける各骨に対するペアレンティングを、ユーザに特定させる。例えば、メッシュを表示し、スケルトンの骨毎に、ユーザが選択した骨と関連付けられている頂点を特定するように、メッシュに着色することができるユーザ・インターフェースを提供する。ソース・メッシュ、ソース・スケルトン、ターゲット・スケルトン、およびターゲット・メッシュ間の関係が与えられたなら、このペアレンティングは、ソース・メッシュにおける各ポイントをターゲット構造における各骨にどのようにペアレンティングするか指定するために、１回行うことができる。このペアレンティングは、関連する骨のモーションによって変形するメッシュのエリアを示す。図３Ａは、顎骨の典型的なペアレンティングを示し、一方図３Ｂは首骨の典型的なペアレンティングを示す。図３Ａでは、ポイント３００は、顎骨（図示せず）と関連付けられているように示されている。図３Ｂでは、ポイント２０６は、首骨と関連付けられているように示されている。ポイント３０８は、首骨と関連付けられていない。
【００２１】
ロケータによって定義された仮想骨が与えられれば、ロケータに対応するターゲット・メッシュ上のポイントを特定することにより、スキニング重みを計算する。ターゲット・メッシュ上において特定されたポイントは、ターゲット構造における仮想骨と関連付けられる。特定された各ポイントは、それをその対応する仮想骨に関連付ける場合、１００％のスキニング重みを有する。ターゲット・メッシュにおける他のポイントに対する重みは、ロケータに対応するターゲット・メッシュにおける最も近いポイントまでの重み付けトポロジ距離(weighted topological distance)にしたがって決定する。
【００２２】
即ち、ここで図４を参照すると、アーティストが着色したロケータ（ｌ０〜ｌｎ）毎に、ターゲット・メッシュにおける（ｐ１０〜ｐｌｎ）内の最も近いポイントを特定する（４００）。ポイント−ロケータの関係を、プログラムのメモリおよびロケータの名称双方に格納する。ターゲット・メッシュ（ｐ）上のあらゆるポイントについて、その直近の隣接ポイント（ｎｌ）を特定する。これらのポイントに関する情報は、キャッシュするとよい。４０２で示すように、ターゲット・メッシュのあらゆるポイントに対して、４０４において決定したように、それに関連付けられたロケータがあり、したがって、４０６で示すように、そのポイントは１００％の重みを受ける。このように、ロケータを添付したソース・メッシュにおけるポイントのあらゆる変位をも、ターゲット・メッシュにおけるこのポイントに完全に適用する。ターゲット・メッシュにおけるポイントがロケータと関連付けられていない場合、再帰プロセスを適用し、隣接ポイントｎ１、ｎ２、ｎ３．．．の各々を、トポロジ距離の順に次々に検査する。近隣ポイントにロケータが関連付けられていると４０８において判定された場合、ロケータの指示を、それを発見した再帰ステップ（ｘ）の指示と共に、ターゲット・メッシュにおけるそのポイントに対して一時的に格納する（４１０）。４１２に示すように、発見するロケータの数に対する既定の限度に達するまで、隣接ポイントを検査する。例えば、限度が３の場合、隣接ポイントを評価するプロセスは、３つのロケータを発見したときに停止する。４１４に示すように、ロケータ毎に格納した再帰ステップを反転させ（１／ｘ）、その結果を１００％に対して正規化する。これがスキニング法線(skinning normal)である。このように、ターゲット・メッシュにおける各ポイントに対して発見したロケータが近い程、それらの当該ポイントに対する影響は大きくなる。このプロセスの結果、ターゲット・メッシュにおける各ポイントは、１つ以上のロケータの指示と、その対応する重みとを有し、全ての重みを加算すると１００％となる。これらのスキニング重みは、ロケータを指定することによって付加された仮想骨に関係する。
【００２３】
適正な有効範囲(coverage)を確保するために、エンベロープを平滑化し、ポイント毎に指定した数のロケータに重みを再度クリップ(clip)する。クリッピングを行うには、重みを降順に並び替え、一番小さい重みを除去し、残った重みを１００％に対して正規化する。多数のターゲット・メッシュが利用可能な場合、異なるエンベロープを保存することができ、一部はポイント毎の骨を多くし、一部は少なくすることができる。
【００２４】
圧縮データにはめ込むように重みを更に最適化するためには、重みを丸めるとよい。この丸みに対する正確度はユーザが指定すればよい。丸める場合、影響が少ない重みを切り捨て、丸め誤差を最も影響が多い重みに加算すると、ポイント毎の重みの総和は１００％のままである。
【００２５】
これより図５を参照すると、フレーム毎の動画変形データを以下のように計算する。フレーム毎に、各ロケータ（５００で示すような）を処理する。ロケータ毎に、そのソース・メッシュ上におけるその基準ポーズからの変位を、それが関連付けられている骨のいずれの動きをも参照して判定する（５０２）。各ロケータのこの変位を、ターゲット構造におけるその対応する仮想骨のローカル空間に変換する（５０４）。処理するロケータが未だ残っているとステップ５０６において判定した場合、これらのステップ５００、５０２、および５０４を、フレームにおけるロケータ毎に繰り返す。フレーム毎の各ロケータに対する変換変位値の集合を、動画変形データの集合として出力する（５０８）。この動画変形データを用いて、ランタイムにおいて動画変形データによって各仮想骨を動かした場合、メッシュのスキニングによって、メッシュをこれらの動画仮想骨に変形する。
【００２６】
シェーディングについての情報を発生するためには、２つの正規図(normal map)を計算する。第１の正規図は、ソース・スキンの基準ポーズとターゲット・スキンの基準ポーズとの間の差として計算する。第２の正規図は、応力状態におけるソース・スキンと、ターゲット・スキンの基準ポーズとの間の差として計算する。これらの正規図により、ソース・スキンにおける詳細な高周波の変動を取り込む変換が可能となり、シェーディングによってこれらをターゲット・スキンに適用する。
【００２７】
また、シェーディングは、１つ以上のマスク、および対応する動画マスク・パラメータも用いる。各マスクには、ソース・スキンの領域が関連付けられており、ツールが用いるディフォーマと関連付けることもできる。各マスクおよびその対応する動画マスク・パラメータは、ランタイム・シェーダが用いる正規図を提供するために、どの位第２正規図を第１正規図と配合するかについての配合パラメータ制御を定義する。正規図の配合制御の分解能を高めるには、より多くのマスクを用いればよい。ユーザ・インターフェースを設けて、ユーザがこれらのマスクを編集できるようにするとよい。これらもマスクを共に乗算し、フレーム毎の動画マスク・パラメータに基づいて倍率調整する。
【００２８】
ツールにおけるアニメーションのフレーム毎に、各マスクの倍率調整を行う動画マスク・パラメータを計算する。マスクと関連付けられているソース・スキンの領域における応力のレベルを、各フレームにおいて計算し、このパラメータをそのマスクに供給する。その結果、動画マスク・パラメータによってマスクを倍率調整し、共に配合すると、ある領域における応力レベルに基づいて、微妙な変形の詳細の幻想を作成するために、当該領域に対する応力正規図が露顕される。
【００２９】
マスクは、画像データを用いて表すことができ、各画素がソース・メッシュ上のポイントに対応する。各カラー成分が１つのマスクを表すこともできる。つまり、１つの画像は３つのマスクを表すことができる。
【００３０】
ソース・ツールにおいて用いられるシェーダに対応するランタイム・エンジンのシェーダも必要である。例えば、ＯｐｅｎＧＬ、ＣＧＦＸ、またはＤｉｒｅｃｔＸフォーマットのシェーダのように、ソース・ツールにおけるシェーダが実装されている場合、殆どのランタイム・エンジンは同じシェーダを用いることができる。
【００３１】
通例、ランタイム・エンジンは、シェーダおよび配合正規図を用いて、オブジェクトの表面に着色し、模様を付ける。キャラクタまたはオブジェクトがときと共に活動すると、アニメーション・マスクの使用によって正規図を配合する結果、シェーディングが変化する。通例、シェーディングは、皺や髪のような、高分解能の詳細を与える。この技法により、これらの特性の変化をランタイム・エンジンに移転することが可能となる。
【００３２】
ここに記載するシステムの種々の構成要素は、汎用コンピュータを用いて、コンピュータ・プログラムとして実現することができる。このようなコンピュータ・システムは、通例、ユーザに情報を表示する出力デバイスと、ユーザからの入力を受ける入力デバイスの双方に接続された主ユニットを含む。主ユニットは、一般に、相互接続機構を通じてメモリ・システムに接続されているプロセッサを含む。入力デバイスおよび出力デバイスも、相互接続機構を通じて、プロセッサおよびメモリ・システムに接続されている。
【００３３】
１つ以上の出力デバイスをコンピュータ・システムに接続することもできる。出力デバイスの例には、陰極線管ディスプレイ（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、およびその他のビデオ出力デバイス、プリンタ、モデムのような通信デバイス、ならびにディスクまたはテープのような記憶装置が含まれるが、これらに限定する訳ではない。１つ以上の入力デバイスをコンピュータ・システムに接続することもできる。入力デバイスの例には、キーボード、キーパッド、トラック・ボール、マウス、ペンおよびタブレット、通信デバイス、ならびにデータ入力デバイスが含まれるが、これらに限定する訳ではない。本発明は、コンピュータ・システムと組み合わせて用いられる特定の入力または出力デバイスにも、ここに記載したものにも限定されることはない。
【００３４】
コンピュータ・システムは、コンピュータ・プログラミング言語を用いてプログラム可能な、汎用コンピュータ・システムとすることができる。また、コンピュータ・システムは、特別にプログラムされた、特殊目的ハードウェアとすることもできる。汎用コンピュータ・システムでは、プロセッサは、通例、市販のプロセッサである。また、汎用コンピュータは、通例、オペレーティング・システムを含み、オペレーティング・システムが、他のコンピュータ・プログラムの実行を制御し、スケジューリング、デバッグ、入力／出力制御、アカウンティング、コンパイル、ストレージの割り当て、データ管理、およびメモリ管理、ならびに通信制御および関係するサービスを行う。
【００３５】
メモリ・システムは、通例、コンピュータ読み取り可能媒体を含む。この媒体は、揮発性または不揮発性、書き込み可能または書き込み不可能、および／または書き換え可能または書き換え不可能な場合がある。メモリ・システムは、通例、二進形式でデータを格納する。このようなデータは、マイクロプロセッサが実行するアプリケーション・プログラム、またはディスク上に格納されアプリケーション・プログラムが処理する情報を定義することができる。本発明は、特定のメモリ・システムに限定されることはない。
【００３６】
ここに記載するようなシステムは、ソフトウェアまたはハードウェアまたはファームウェア、あるいはこれら３つの組み合わせで実施することができる。システムの種々のエレメントは、個別であれ組み合わせであれ、コンピュータによる実行のためにコンピュータ読み取り可能媒体上にコンピュータ・プログラム命令が格納されている、１つ以上のコンピュータ・プログラム製品として実施することができる。プロセスの種々のステップは、このようなコンピュータ・プログラム命令を実行するコンピュータによって、行うことができる。コンピュータ・システムは、マルチプロセッサ・コンピュータ・システムでもよく、あるいはコンピュータ・ネットワークを通じて接続されている多数のコンピュータを含むこともできる。図１に示した構成要素は、コンピュータ・プログラムの別個のモジュールでもよく、または別個のコンピュータ上で動作可能な、別個のコンピュータ・プログラムでもよい。これらの構成要素によって生成されるデータは、メモリ・システムに格納するか、またはコンピュータ・システム間で送信することができる。
【００３７】
以上実施形態の一例について説明したが、前述したことは単なる例示であり限定ではなく、一例として提示したにすぎないことは、当業者には明白なはずである。多数の変更やその他の実施形態も、当技術分野における通常技術の１つの範囲内にあり、本発明の範囲内に該当するものとする。
【図面の簡単な説明】
【００３８】
【図１】図１は、１つのツールからのキャラクタおよびアニメーションをどのようにしてゲーム・エンジンにおいて用いるためのデータに変換することができるかを示すデータ・フロー図である。
【図２】図２は、ロケータをどのように特定するかを説明するユーザ・インターフェースである。
【図３】図３は、ペアレンティングをどのように特定するかを説明するユーザ・インターフェースである。
【図４】図４は、ターゲット・メッシュおよびターゲット構造に対してスキニング重みをどのように計算するかを説明するフロー・チャートである。
【図５】図５は、フレーム毎の動画変形データをどのように計算するかを説明するフロー・チャートである。
【符号の説明】
【００３９】
１００  アニメーション・ツール
１０２  ソース構造
１０４  ソース・メッシュ
１１０  エクスポータ
１１２  ユーザ入力
１１４  モーション
１２０  ターゲット構造
１２１  ターゲット・メッシュ
１２２  スキニング重み
１２３  骨
１２４  動画変形データ
１２６  正規図
１２８  マスク
１３０  マスク・パラメータ
【図１】
2008033940.tif 000003
【図２】
2008033940.tif 000004
【図３】
2008033940.tif 000005
【図４】
2008033940.tif 000006
【図５】
2008033940.tif 000007
【外国語明細書】
2008033940000001.pdf