(57)【要約】【課題】動力学的動作制御方法を活用して既存の方法で生成された動作の全体的な形態は保持しながらも、細部的に物理法則が適用される自然な移動を保障できる動力学基盤動作生成装置及び方法を提供する。【解決手段】本発明は動力学基盤動作生成技術に関し、動力学シミュレーションを導入してアニメータが生成した動作データを客観的な物理法則を満足する動作データに補正し、既存のキャラクタアニメーションツールと動力学基盤動作生成装置を用いて初心者でもロボットの動作表現を容易に行える動作生成技術を実現することを特徴とする。本発明によれば、アニメータが既存のキャラクタアニメーションツールで生成したキャラクタの動作を動力学シミュレーションを通じて動力学的に補正された動作を自動で生成できるように支援できる。【選択図】図１
2011115933.tif 000002
【特許請求の範囲】
【請求項１】
動力学基盤動作生成装置であって、
コンピュータ装置に入力されたキャラクタモデルデータを動力学シミュレーションが可能なキャラクタの動力学モデルデータに変換する動力学モデル変換部と、
前記動力学モデルデータを修正し、環境モデルを追加又は修正する動力学モデル制御部と、
前記キャラクタモデルデータを用いて生成されたキャラクタの動作データに前記動力学モデルデータと前記環境モデルを参照して動力学シミュレーションを通じて動力学動作データに変換する動力学動作変換部と、
前記動力学動作データと前記キャラクタの動作データを編集する動作編集部と、
前記動力学動作データを参照して連結されるロボットの各関節モータに既に設定されたトルク値を入力してロボットを制御するロボット動作制御部と
を含むことを特徴とする動力学基盤動作生成装置。
【請求項２】
前記動力学動作変換部は、
前記キャラクタの動作データに付いて行くように分節の位置、速度、加速度制約条件を追加し、
前記動力学モデルデータの動力学的関節データで運動制限範囲を満足する制約条件を追加し、動力学的分節データで最大トルクの制約条件を追加する動力学シミュレーションを通じて前記動力学動作データに変換することを特徴とする請求項１に記載の動力学基盤動作生成装置。
【請求項３】
前記動力学的関節データは、
位置、関節の種類、運動制限範囲、最大トルク、連結された動力学的分節のリストのうちの少なくとも１つを含むことを特徴とする請求項２に記載の動力学基盤動作生成装置。
【請求項４】
前記動力学的分節データは、
位置、方位、大きさ、質量、慣性、密度、メッシュ、連結された動力学的関節のリストのうちの少なくとも１つを含むことを特徴とする請求項２に記載の動力学基盤動作生成装置。
【請求項５】
前記質量はキャラクタ全体の大きさに対して該当分節の大きさの比率に既に設定された定数値を掛けて設定し、
前記慣性は前記キャラクタモデルデータの皮膚メッシュ及びリギングデータから算出し、
前記メッシュはボックス或いは円筒状に処理することを特徴とする請求項４に記載の動力学基盤動作生成装置。
【請求項６】
前記動力学モデル制御部は、
前記動力学モデルデータの動力学的関節データの最大トルク値を制御して動力学動作の変換程度を制御することを特徴とする請求項１に記載の動力学基盤動作生成装置。
【請求項７】
前記動力学モデル制御部は、
キャラクタの動作環境に基づいて前記環境モデルを生成し、生成された環境モデルの大きさ、位置及び方位のうちの少なくとも１つを修正して前記動力学動作変換部に伝達することを特徴とする請求項１に記載の動力学基盤動作生成装置。
【請求項８】
前記キャラクタの動作データは、
前記キャラクタモデルデータを用いてキーフレーミング又は運動学的動作制御方式を通じて生成することを特徴とする請求項１に記載の動力学基盤動作生成装置。
【請求項９】
前記キャラクタモデルデータは、
キャラクタの骨格構造、皮膚メッシュ、リギングデータのうちの少なくとも１つを含むことを特徴とする請求項１に記載の動力学基盤動作生成装置。
【請求項１０】
前記動力学動作データは、
動力学的分節のフレーム別の入力力、入力トルク、結果位置、結果方位、結果線速度、結果角速度、衝突関連イベントのうちの少なくとも１つを含むことを特徴とする請求項１に記載の動力学基盤動作生成装置。
【請求項１１】
動力学基盤動作生成方法であって、
コンピュータ装置に入力されたキャラクタモデルデータを動力学シミュレーションが可能な動力学モデルデータに変換する過程と、
前記生成された動力学モデルデータを修正し、環境モデルを追加又は修正する過程と、
前記キャラクタモデルデータを用いて生成されたキャラクタの動作データに前記動力学モデルデータと環境モデルを参照して動力学シミュレーションを通じて動力学動作データに変換する過程と、
前記動力学動作データと前記動作データを編集する過程と、
前記動力学動作データを参照して連結されるロボットの各関節モータに既に設定されたトルク値を入力してロボットを制御する過程と
を含むことを特徴とする動力学基盤動作生成方法。
【請求項１２】
前記動力学動作データに変換する過程は、
前記キャラクタの動作データに付いて行くように分節の位置、速度、加速度制約条件を追加する過程と、
前記動力学モデルデータの動力学的関節データで運動制限範囲を満足する制約条件を追加し、動力学的分節データで最大トルクの制約条件を追加する動力学シミュレーションを通じて前記動力学動作データに変換する過程と
を含むことを特徴とする請求項１１に記載の動力学基盤動作生成方法。
【請求項１３】
前記動力学的関節データは、
位置、関節の種類、運動制限範囲、最大トルク、連結された動力学的分節のリストのうちの少なくとも１つを含むことを特徴とする請求項１１に記載の動力学基盤動作生成方法。
【請求項１４】
前記動力学的分節データは、
位置、方位、大きさ、質量、慣性、密度、メッシュ、連結された動力学的関節のリストのうちの少なくとも１つを含むことを特徴とする請求項１１に記載の動力学基盤動作生成方法。
【請求項１５】
前記質量はキャラクタ全体の大きさに対して該当分節の大きさの比率に既に設定された定数値を掛けて設定し、
前記慣性は前記キャラクタモデルデータの皮膚メッシュ及びリギングデータから算出し、
前記メッシュはボックス或いは円筒状に処理することを特徴とする請求項１４に記載の動力学基盤動作生成方法。
【請求項１６】
前記修正する過程は、
前記動力学モデルデータの動力学的関節データの最大トルク値を修正して動力学動作の変換程度を制御することを特徴とする請求項１１に記載の動力学基盤動作生成方法。
【請求項１７】
前記修正する過程は、
キャラクタの動作環境に基づいて前記環境モデルを生成する過程と、
前記生成された環境モデルの大きさ、位置及び方位のうちの少なくとも１つを修正する過程と
を含むことを特徴とする請求項１１に記載の動力学基盤動作生成方法。
【請求項１８】
前記キャラクタの動作データは、
前記キャラクタモデルデータを用いてキーフレーミング又は運動学的動作制御方式を通じて生成することを特徴とする請求項１１に記載の動力学基盤動作生成方法。
【請求項１９】
前記キャラクタモデルデータは、
キャラクタの骨格構造、皮膚メッシュ、リギングデータのうちの少なくとも１つを含むことを特徴とする請求項１１に記載の動力学基盤動作生成方法。
【請求項２０】
前記動力学動作データは、
動力学的分節のフレーム別の入力力、入力トルク、結果位置、結果方位、結果線速度、結果角速度、衝突関連イベントのうちの少なくとも１つを含むことを特徴とする請求項１１に記載の動力学基盤動作生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータグラフィックスとロボット制御技術に関し、特に、関節を持つ３次元キャラクタモデルの姿勢を動力学的制約条件により生成し、このような動作の生成を簡単に実現できるユーザインターフェースを提供するのに適した動力学基盤動作生成装置及び方法に関する。
【背景技術】
【０００２】
一般に、３次元キャラクタの動作生成時に３次元キャラクタは関節（Ｊｏｉｎｔ）と分節（Ｂｏｎｅ）とで構成された骨格構造（Ｓｋｅｌｅｔｏｎ）を有する。キャラクタの動作は、キャラクタ骨格構造の時間の順序に従った姿勢の変化により表現される。例えば、１秒当たりに３０Ｈｚで表現される５秒分量の動作を製作すると仮定すれば、全体として１５０（５*３０）個の動作フレームが存在し、各動作フレームでキャラクタ骨格構造の姿勢が指定されて全体的な動作を構成する。
【０００３】
３次元キャラクタの動作を生成する即ち、各動作フレームに対して姿勢を指定する方法は、以下の通りである。
【０００４】
第１の方法は、全ての動作フレームでキャラクタの姿勢を指定する。この作業の量は、キャラクタの骨格構造内の関節の個数と単位時間当りのフレームの個数と時間全体との積（ｎＪｏｉｎｔｓ*ｎＦｒａｍｅＲａｔｅ*ｎＴｉｍｅ）に比例する。しかし、全ての作業を手作業で処理するため、多くの時間が要求され、作業の正確度が低下する可能性も大きい。
【０００５】
第２の方法は、２Ｄアニメーションのキーフレーミング技法を応用して、動作の幾つかの地点をキーフレーム（Ｋｅｙ Ｆｒａｍｅ）として設定して、このキーフレームのみキャラクタの姿勢を指定し、中間フレーム（Ｉｎｂｅｔｗｅｅｎ Ｆｒａｍｅ）は前後のキーフレームを参照して補間（Ｉｎｔｅｒｐｏｌａｔｉｏｎ）方法により自動生成する。このような動作生成自動化方法により手作業による作業量が画期的に減少するようになる。
【０００６】
３次元キャラクタの骨格は、一般にツリー構造（Ｔｒｅｅ Ｓｔｒｕｃｔｕｒｅ）で表現される。下位のノード（関節と分節）は上位ノードに連結されて、上位ノードの移動はそのまま下位ノードに影響を及ぼす。このような構造は、キャラクタ骨格の姿勢の指定を非常に難しくする。
【０００７】
例えば、人間キャラクタに腕を動かしてカップを取らせる動作を生成すると仮定する。現実世界の人間には指先をカップに付ける非常に単純な動作であるが、人間キャラクタの場合は腕のみを使う場合でもまず上腕（Ｕｐｐｅｒ Ａｒｍ）を、次に下腕（Ｌｏｗｅｒ Ａｒｍ）を、次に手を、次に指を移動する複雑な作業を連続して行わなければならない。このように上位ノードから下位ノードへ行きながら、動作を指定する方法を正運動学（Ｆｏｒｗａｒｄ Ｋｉｎｅｍａｔｉｃｓ）的動作制御という。このような動作制御方法による動作の生成は、多くの作業量を要求する。
【０００８】
一方、末端となる下位ノードの移動に応じた上位ノードの動作を自動で指定することが可能であるが、このような方法を逆運動学（Ｉｎｖｅｒｓｅ Ｋｉｎｅｍａｔｉｃｓ）的動作制御という。下位ノードの移動に応じた上位ノードの動作は多様に存在し得る。従って、逆動学的制御により生成されたキャラクタの動作は末端が指定された位置（Ｐｏｓｉｔｉｏｎ）や方位（Ｏｒｉｅｎｔａｔｉｏｎ）に置かれる条件は満足するが、中間ノードの位置と方位はアニメータが所望する形態でないこともあり得るので、このような場合にも逆動学的動作制御を用いて中間ノードの位置と方位を再指定できる。
【０００９】
正運動学的動作制御方法を用いれば、末端ノードの位置と方位がどうなるか確信できないので、何度も作業が繰り返され得るが、逆動学的動作制御方法を用いれば、末端から最上位のノードに至る動作指定作業を一度のみ遂行すれば良いので、アニメータが所望する動作を更に容易に生成することが可能である。
【００１０】
もし、３次元キャラクタがスーパーマンのように空を飛ぶ、建物を持ち上げる等の動作を行うことができると設定すれば、このようなキャラクタの動作生成は比較的に易しい。なぜならば、動作の生成作業は完全にアニメータの想像力により決定され得るためである。これはキャラクタのいかなる動作表現も批判される余地がない。
【００１１】
ただし、３次元キャラクタが現実世界の人間や動物を表現しなければならないのであれば、このようなキャラクタの動作生成は非常に難しい。なぜならば、現実世界のような物理法則が支配する空間で活動するキャラクタの動作を表現しなければならないためである。これはキャラクタの動作が少しでも無器用であったり、誇張されていたりしても現実世界に慣れている我々は動作の無器用さを直ぐ認知できる。
【００１２】
従って、運動学的動作制御方法を用いてキャラクタの現実世界の動作を表現することは非常に難しい。即ち、まねをすることは難しくないが、細部的にも詳しく表現することは想像力だけで解決するには限界がある。なぜならば、現実世界で物体は相互間で力をやりとりするが、運動学的動作制御はこのような動力学（Ｄｙｎａｍｉｃｓ）を考慮しないためである。
【００１３】
現実世界の動作を表現するために、動力学的動作制御を用いることが有用である。しかし、既存キャラクタの関節と分節とで構成された骨格構造のみでそのまま動力学的動作制御方法を用いることができない。動力学のために、現実世界のように物体に該当する分節に体積（Ｖｏｌｕｍｅ）、質量（Ｍａｓｓ）、慣性値（ｉｎｅｒｔｉａ）などを指定しなければならない。また、分節と分節を連結する関節の自由度（Ｄｅｇｒｅｅ Ｏｆ Ｆｒｅｅｄｏｍ）などを指定しなければならない。この他にも重力の強度、摩擦係数など多様な物理値を設定しなければならない。
【００１４】
このような値の指定は、現実世界の物理法則のための制約条件を付けることを意味する。一般に、物体は６自由度を有して自由に動くことが可能であるが、重力による制約条件と摩擦力による制約条件及び連結された他の物体の運動の影響（Ｆｅｅｄｂａｃｋ）による制約条件が加われば、制限された範囲で運動を行うようになる。
【００１５】
このように動力学的動作制御方法は、現実世界の物理法則に従う動作を表現するのに有用であるが、直観的な動作制御が難しくならざるを得ない。運動学的動作制御は、物体（キャラクタ）の位置と方位を直接的に制御するため、直観的に容易に動作を表現できるが、動力学的動作制御は力を与えて物体（キャラクタ）の移動を間接的に制御するため、直観的に動作を表現し難い。
【００１６】
多分節（多関節）キャラクタの場合、各分節に多様な力を加えて物理法則に従って自由奔放に動かせることは難しくない。しかし、分節の自由な運動はアニメータが所望することではない。アニメータは歩いたり、走ったりするなどの特定の方式でのみ分節が移動することを所望する。即ち、特定時間に各分節が特定位置と方位に置かれることを望む。ところで、骨格構造は分節が互いに複雑に連結されて動作時に相互間で影響し合うため、各分節が特定の位置や方位に移動するために必要な力を求めることは非常に難しい。
【００１７】
与えられた力により物体の位置と方位を求める正動力学的動作制御方法とは反対に物体の次の位置と方位を指定すれば、必要な力を自動で逆算する逆動力学的動作制御方法が存在する。
【００１８】
現在、アニメータがキャラクタの動作を生成するのに用いるアニメーションツールを詳察すると、上述したあらゆる動作制御方法をいずれも提供している。主にキーフレーミング動作生成方法と逆動力学的動作制御方法を共に用いている状況である。そして、物体の衝突による物体の自由運動や単純に倒れる動作（Ｒａｇｄｏｌｌ ｍｏｔｉｏｎ）などに正動力学的動作制御方法が制限的に用いられている。
【００１９】
ただし、逆動力学的動作制御方法は商用のアニメーションツールでは提供されておらず、主に論文などを通じて研究結果を発表している状況である。
【００２０】
現在まで紹介されている逆動力学的動作制御方法を詳察すると、比例微分制御器（Ｐｒｏｐｏｒｔｉｏｎａｌ-Ｄｅｒｉｖａｔｉｖｅ Ｃｏｎｔｒｏｌｌｅｒ、以下ＰＤ制御器という）を用いて近似する力を求める方法と、制約条件方程式（Ｃｏｎｓｔｒａｉｎｅｄ Ｅｑｕａｔｉｏｎ）で所望する制約条件（例えば、位置と方位）に要求される正確な力を求める方法がある。
【００２１】
ここで、ＰＤ制御器の場合、数式（Ｆ＝Ｋ１（次の位置−現在の位置）＋Ｋ２（次の速度−現在の速度））で定数値であるＫ１とＫ２を適切に調節して要求される力値を求める非常に簡単な方法である。Ｐａｗｅｌ Ｗｒｏｔｅｋの２００６年度の論文‘‘Ｄｙｎａｍｏ：Ｄｙｎａｍｉｃ，Ｄａｔａ-ｄｒｉｖｅｎ Ｃｈａｒａｃｔｅｒ Ｃｏｎｔｒｏｌ ｗｉｔｈ  Ａｄｊｕｓｔａｂｌｅ Ｂａｌａｎｃｅ’’ではＰＤ制御器を通じてモーションキャプチャデータの動作と類似する動作を生成したことを示している。このようにＰＤ制御器を用いる方法は、多分節キャラクタの場合、各分節の適切なＫ１、Ｋ２定数値を求めることが難しいため、実用的に用いられていない。制約条件方程式を用いる場合は、正確な力値を求めるのに多くの時間とメモリ空間が要求される。
【００２２】
一方、逆動力学動作制御方法を用いるとき、分節の位置と方位を所望の位置と方位に正確に置けば、運動学的動作制御方法と殆ど差がないため、苦労して動力学方程式を計算する必要がなくなる。従って、逆動力学的動作制御方法は、アニメータの動作表現に合うように補正する役割にとどまる必要があるが、逆動力学的動作制御方法はまだ実用化していないため、その役割について議論がなされていない状況である。
【先行技術文献】
【特許文献】
【００２３】
【特許文献１】特開２００３−２３１０７７号公報
【発明の概要】
【発明が解決しようとする課題】
【００２４】
前述したように動作する従来技術による３次元キャラクタの動作生成方式のように、２次元のコンピュータ画面を通じて３次元キャラクタの動作を生成することは非常に難しい作業である。従って、キーフレーミングや逆動学的動作制御方法などの動作生成を自動化する技法を用いて動作に制限がなく、アニメータの想像力にのみ依存するスーパーマンやアニメーションなどのキャラクタは既存のアニメーションツールだけでも十分に表現可能である。
【００２５】
ところで、現実世界の物理法則のような制約条件を満足するキャラクタの動作表現は非常に難しい作業である。これは既に私達が現実世界に慣れているため、キャラクタ動作の微細な不器用さにも容易に気がつくためである。このような現実的な動作を表現するために、動作のあらゆるフレームに対してキャラクタの全ての関節を微細に調整する作業を行わなければならないが、このような努力の結果によっても現実的であるという保証を受けられないという問題があった。
【００２６】
そこで、本発明は上記事情に鑑みてなされたものであって、その目的は、動力学的動作制御方法を活用して既存の方法で生成された動作の全体的な形態は保持しながらも、細部的に物理法則が適用される自然な移動を保障できる動力学基盤動作生成装置及び方法を提供することにある。
【００２７】
また、本発明の他の目的は、動力学シミュレーションを導入してアニメータが生成した動作データを客観的な物理法則を満足する動作データに補正できるようにし、既存のキャラクタアニメーションツールと動力学基盤動作生成システムを用いて初心者でもロボットの動作表現を簡単に使用できる動力学基盤動作生成装置及び方法を提供することにある。
【課題を解決するための手段】
【００２８】
本発明の一実施形態による動力学基盤動作生成装置は、コンピュータ装置に入力されたキャラクタモデルデータを動力学シミュレーションが可能なキャラクタの動力学モデルデータに変換する動力学モデル変換部と、前記動力学モデルデータを修正し、環境モデルを追加又は修正する動力学モデル制御部と、前記キャラクタモデルデータを用いて生成されたキャラクタの動作データに前記動力学モデルデータと前記環境モデルを参照して動力学シミュレーションを通じて動力学動作データに変換する動力学動作変換部と、前記動力学動作データと前記キャラクタの動作データを編集する動作編集部と、前記動力学動作データを参照して連結されるロボットの各関節モータに既に設定されたトルク値を入力してロボットを制御するロボット動作制御部とを含む。
【００２９】
そして、前記動力学動作変換部は、前記キャラクタの動作データに付いて行くように分節の位置、速度、加速度制約条件を追加し、前記動力学モデルデータの動力学的関節データで運動制限範囲を満足する制約条件を追加し、動力学的分節データで最大トルクの制約条件を追加する動力学シミュレーションを通じて前記動力学動作データに変換することを特徴とする。
【００３０】
ここで、前記動力学的関節データは、位置、関節の種類、運動制限範囲、最大トルク、連結された動力学的分節のリストのうちの少なくとも１つを含むことを特徴とする。
【００３１】
そして、前記動力学的分節データは、位置、方位、大きさ、質量、慣性、密度、メッシュ、連結された動力学的関節のリストのうちの少なくとも１つを含むことを特徴とする。
【００３２】
このとき、前記質量はキャラクタ全体の大きさに対して該当分節の大きさの比率に既に設定された定数値を掛けて設定し、前記慣性は前記キャラクタモデルデータの皮膚メッシュ及びリギングデータから算出し、前記メッシュはボックス或いは円筒状に処理することを特徴とする。
【００３３】
一方、前記動力学モデル制御部は、前記動力学モデルデータの動力学的関節データの最大トルク値を制御して動力学動作の変換程度を制御することを特徴とする。
【００３４】
また、前記動力学モデル制御部は、キャラクタの動作環境に基づいて前記環境モデルを生成し、生成された環境モデルの大きさ、位置及び方位のうちの少なくとも１つを修正して前記動力学動作変換部に伝達することを特徴とする。
【００３５】
そして、前記キャラクタの動作データは、前記キャラクタモデルデータを用いてキーフレーミング又は運動学的動作制御方式を通じて生成することを特徴とする。
【００３６】
そして、前記キャラクタモデルデータは、キャラクタの骨格構造、皮膚メッシュ、リギングデータのうちの少なくとも１つを含むことを特徴とする。
【００３７】
そして、前記動力学動作データは、動力学的分節のフレーム別の入力力、入力トルク、結果位置、結果方位、結果線速度、結果角速度、衝突関連イベントのうちの少なくとも１つを含むことを特徴とする。
【００３８】
本発明の一実施形態による動力学基盤動作生成方法は、コンピュータ装置に入力されたキャラクタモデルデータを動力学シミュレーションが可能な動力学モデルデータに変換する過程と、前記生成された動力学モデルデータを修正し、環境モデルを追加又は修正する過程と、前記キャラクタモデルデータを用いて生成されたキャラクタの動作データに前記動力学モデルデータと環境モデルを参照して動力学シミュレーションを通じて動力学動作データに変換する過程と、前記動力学動作データと前記動作データを編集する過程と、前記動力学動作データを参照して連結されるロボットの各関節モータに既に設定されたトルク値を入力してロボットを制御する過程とを含む。
【００３９】
そして、前記動力学動作データに変換する過程は、前記キャラクタの動作データに付いて行くように分節の位置、速度、加速度制約条件を追加する過程と、前記動力学モデルデータの動力学的関節データで運動制限範囲を満足する制約条件を追加し、動力学的分節データで最大トルクの制約条件を追加する動力学シミュレーションを通じて前記動力学動作データに変換する過程とを含む。
【００４０】
ここで、前記動力学的関節データは、位置、関節の種類、運動制限範囲、最大トルク、連結された動力学的分節のリストのうちの少なくとも１つを含むことを特徴とする。
【００４１】
そして、前記動力学的分節データは、位置、方位、大きさ、質量、慣性、密度、メッシュ、連結された動力学的関節のリストのうちの少なくとも１つを含むことを特徴とする。
【００４２】
このとき、前記質量はキャラクタ全体の大きさに対して該当分節の大きさの比率に既に設定された定数値を掛けて設定し、前記慣性は前記キャラクタモデルデータの皮膚メッシュ及びリギングデータから算出し、前記メッシュはボックス或いは円筒状に処理することを特徴とする。
【００４３】
一方、前記修正する過程は、前記動力学モデルデータの動力学的関節データの最大トルク値を修正して動力学動作の変換程度を制御することを特徴とする。
【００４４】
また、前記修正する過程は、キャラクタの動作環境に基づいて前記環境モデルを生成する過程と、前記生成された環境モデルの大きさ、位置及び方位のうちの少なくとも１つを修正する過程を含むことを特徴とする。
【００４５】
そして、前記キャラクタの動作データは、前記キャラクタモデルデータを用いてキーフレーミング又は運動学的動作制御方式を通じて生成することを特徴とする。
【００４６】
また、前記キャラクタモデルデータは、キャラクタの骨格構造、皮膚メッシュ、リギングデータのうちの少なくとも１つを含むことを特徴とする。
【００４７】
更に、前記動力学動作データは、動力学的分節のフレーム別の入力力、入力トルク、結果位置、結果方位、結果線速度、結果角速度、衝突関連イベントのうちの少なくとも１つを含むことを特徴とする。
【発明の効果】
【００４８】
本発明の実施形態による動力学基盤動作生成装置及び方法によれば、アニメータが既存のキャラクタアニメーションツールを用いて現実世界の物理法則に従うキャラクタの動作を精巧に表現することは難しいため、アニメータが既存のキャラクタアニメーションツールで生成したキャラクタの動作を動力学シミュレーションを通じて動力学的に補正された動作を自動で生成できるように支援できるという効果を奏する。
【００４９】
また、現在のロボット動作表現はロボット関節の制御が難しいため困難となっているが、既存のキャラクタアニメーションツールと動力学基盤動作生成システムを用いて初心者でもロボットの動作を容易に表現できるようにすることができる。
【００５０】
このような動力学基盤動作生成技法は、独立したソフトウェアアプリケーションで実現されることができ、既存のキャラクタアニメーション著作ツールに対するプラグインで実現されることができるという効果がある。
【図面の簡単な説明】
【００５１】
【図１】本発明の実施形態による動力学基盤動作生成装置の構造を示すブロック図である。
【図２】本発明の実施形態による動力学基盤動作生成装置の動作手順を示すフローチャートである。
【図３】本発明の実施形態による動力学基盤動作生成装置の動力学モデル変化モジュールで生成された馬（Ｈｏｒｓｅ）キャラクタの動力学モデルデータを示す図である。
【図４】本発明の実施形態による動力学基盤動作生成装置の動力学動作生成モジュールで生成された馬キャラクタの動力学動作データと参照された動作データを示す図である。
【発明を実施するための形態】
【００５２】
以下、本発明の実施形態で動力学基盤動作生成装置及び方法について添付された図面を参照して詳細に説明する。
【００５３】
図１は、本発明の実施形態による動力学基盤動作生成装置の構造を示すブロック図である。
【００５４】
図１を参照すると、動力学基盤動作生成装置１００は、コンピュータ、ノートブック、携帯電話などのコンピュータ装置に装着されて駆動されるものであって、動力学モデル変換モジュール１０２、動力学モデル制御モジュール１０４、動力学動作変換モジュール１０６、動作編集モジュール１０８及びロボット動作制御モジュール１１０などを含む。
【００５５】
具体的に、動力学モデル変換モジュール１０２は、既存キャラクタの骨格構造、皮膚メッシュ（Ｓｋｉｎ Ｍｅｓｈ）、リギングデータ（Ｒｉｇｇｉｎｇ Ｄａｔａ）のうちの少なくとも１つを含むモデルデータを動力学シミュレーションが可能なキャラクタの動力学モデルデータへの変換を行う。
【００５６】
このとき、変換されたキャラクタの動力学モデルデータは、動力学的分節データと、動力学的関節データを含むものであって、動力学的分節データは、位置、方位、大きさ、質量（Ｍａｓｓ）、慣性（Ｉｎｅｔｉａ）、密度（Ｄｅｎｓｉｔｙ）、メッシュ、連結された動力学的関節のリストのうちの少なくとも１つを含むことができ、動力学的関節データは、位置、種類（Ｈｉｎｇｅ、Ｕｎｉｖｅｒｓａｌ、Ｓｐｅｒｉｃａｌ）、運動制限範囲、最大トルク（Ｔｏｒｑｕｅ）、連結された動力学的分節のリストのうちの少なくとも１つを含むことができる。
【００５７】
動力学モデル制御モジュール１０４は、キャラクタの動力学モデルデータを修正し、新しい環境モデルデータを追加したり、既存の環境モデルデータを修正したりする機能を行う。
【００５８】
動力学動作変換モジュール１０６は、動力学モデル制御モジュール１０４を通じて修正されたキャラクタの動力学モデルデータと、修正又は追加された環境モデルデータを参照し、既存のキャラクタの動作データの入力を受けて動力学シミュレーションを通じて動力学動作データへの変換を行うものであって、即ち、既存に製作されたキャラクタの動作データと動力学動作制御データ（動力学モデルデータ）から動力学動作データに変換するものである。このとき、変換された動力学動作データは、動力学的分節のフレーム別の入力力、入力トルク、結果位置、結果方位、結果線速度、結果角速度、衝突関連イベントのうちの少なくとも１つを含むことができる。
【００５９】
そして、動作編集モジュール１０８は、既存キャラクタの動作データと、動力学動作変換モジュール１０６から新しく生成された動力学動作データを合成したり、それぞれ編集してキャラクタの動作データは動力学動作変換モジュール１０６に伝達し、動力学動作データはロボット動作制御モジュール１１０に提供する。
【００６０】
ロボット動作制御モジュール１１０は、動力学動作変換モジュール１０６から新しく生成された動力学動作データを参照して連結されるロボットの各関節モータに適当なトルク値、即ち、実験により既に設定されたトルク値を入力してロボットを制御する。
【００６１】
図２は、本発明の実施形態による動力学基盤動作生成装置の動作手順を示すフローチャートである。
【００６２】
図２を参照すると、２０２段階で動力学基盤動作生成装置１００は、キャラクタモデルデータを生成してこれを動力学モデル変換モジュール１０２に入力するためのものであって、作業する対象キャラクタの関節と分節とで構成される骨格構造データと、骨格を覆うキャラクタの皮膚メッシュデータと、骨格構造と皮膚メッシュを連結して関節や分節の移動時に皮膚メッシュが連動して変形するように指定するリギングデータをまず生成する。
【００６３】
このように生成されたキャラクタの骨格構造、皮膚メッシュ、リギングデータを含むキャラクタモデルデータを用いてキャラクタの動作データを生成し、キャラクタの動作データはキーフレーミングや運動学的動作制御方法を活用して生成できる。
【００６４】
その後、２０４段階で動力学モデル変換モジュール１０２ではこのようなキャラクタモデルデータの入力を受けて、その後の２０６段階で動力学シミュレーションのためのキャラクタ動力学モデルデータに変換して出力する。キャラクタ動力学モデルデータは、骨格構造（データ）の分節に該当する動力学的分節データと骨折構造の関節に該当する動力学的関節データとで構成される。
【００６５】
ここで、動力学的分節データは、位置、方位、大きさ、質量、慣性、密度、メッシュ、連結された動力学的関節のリストデータで構成され、動力学的関節データは、位置、種類（Ｈｉｎｇｅ、Ｕｎｉｖｅｒｓａｌ、Ｓｐｅｒｉｃａｌ）、運動制限範囲、最大トルク、連結された動力学的分節のリストデータで構成されることができる。
【００６６】
動力学的分節の位置、方位、大きさはキャラクタの骨格構造と皮膚メッシュとリギングデータをいずれも参照して自動で計算され得る。皮膚メッシュとリギングデータがない場合であっても基本的な厚さ情報を与えて自動計算され得るようにし、このような自動計算データは、後に手動で修正可能である。一般に、骨格構造の分節の位置と方位が動力学的分節の位置と方位になり得るが、必ずしもそれには限らない。
【００６７】
図３は、本発明の実施形態による動力学基盤動作生成装置の動力学モデル変換モジュールで生成された馬（Ｈｏｒｓｅ）キャラクタの動力学モデルデータを示す図であり、図４は、動力学基盤動作生成装置の動力学動作変換モジュールで馬キャラクタの動力学動作データと参照された動作データを示す図である。
【００６８】
図３及び図４を参照すると、馬キャラクタモデルの下脚（（Ｌｏｗｅｒ Ｌｅｇ）３０４、４０４や下腕（Ｌｏｗｅｒ Ａｒｍ）３０２、４０２は、分節が連結されたメッシュの中央に位置して分節と動力学的分節の位置がほぼ同一になる。しかし、腹と連結された背骨（Ｓｐｉｎｅ）部分３００、４００を詳察すると、腹が下に垂れ過ぎて背骨にある分節の位置と連結された腹まで含む動力学的分節の位置とが互いに異なるようになることを確認することができる。動力学的分節の質量は、キャラクタ全体の大きさに対して該当分節の大きさの比率に適当な値に指定された定数値を掛けた値に設定される。
【００６９】
動力学的分節の慣性は、皮膚メッシュとリギングデータから自動計算され得る。動力学的分節の密度は、該当部分に骨のように稠密な組織が多ければ高くし、肉しかなければ低くする形態で調整する。
【００７０】
図３の馬キャラクタモデルの場合、頭や下腕は密度を高くし、腹と連結された背骨部分は密度を低くする。動力学分節のメッシュは、動力学シミュレーションで他の分節や物体間の衝突処理のために該当皮膚メッシュを簡単にボックスや円筒（ＣｙｌｉｎＤｅｒ）状に指定する。図３において、馬キャラクタモデルの場合、速い衝突処理の計算のためにいずれもボックスに指定した。
【００７１】
まず、動力学的関節の位置は、骨格構造の関節の位置と一致させる。動力学的関節の種類は、関節の自由度に応じて指定する。動力学的関節の最大トルクは、出力できる最大トルク値の上限線を指定する。これは、基本的に動力学的関節に連結された動力学的分節の大きさデータを参照して計算できる。
【００７２】
人間（Ｈｕｍａｎ）キャラクタモデルの場合、ひざ（Ｋｎｅｅ）関節に連結された上脚（Ｕｐｐｅｒ Ｌｅｇ）と下脚（（Ｌｏｗｅｒ Ｌｅｇ）の大きさが大きく、指（Ｆｉｎｇｅｒ）関節に連結された指分節の大きさが小さいので、ひざ関節の最大トルク値が指関節の最大トルク値よりも大きく設定される。アニメータの便利性のために、動力学モデル変換モジュール１０２で変換される動力学モデルの全てのデータを自動で計算して指定できるようにする。
【００７３】
一方、２０８段階で動力学モデル制御モジュール１０４は、動力学モデル変換モジュール１０２から変換された動力学モデルの細部データを手動で修正する作業と、２１０段階で環境モデルを新しく生成したり、変更したりする作業を行う。動力学的分節の質量や動力学的関節の最大トルクは全体的な大きさを調整することが可能である。例えば、馬モデルの全体質量を初期の１００Ｋｇから５００Ｋｇへ上方修正すれば、各動力学分節の質量も５倍増加させる。
【００７４】
動力学的関節の最大トルクが高く設定されるほど瞬間的に高いトルク値を許容し、これは動力学シミュレーションでキャラクタの動作データとほぼ同じ動力学動作データを生成することが可能になる。動力学的関節の最大トルクが低く設定されれば、瞬間的に出力できるトルク値が低くなり、キャラクタの動力学動作データで動作データに付いて行けなくなることもある。このような低いトルクの効果は健康でない人間が健康な人間の活動的な動作を追随する際に発生する動作の差により確認が可能である。
【００７５】
より現実感のある動力学動作の生成は、動力学関節の最大トルクをいかに設定するかに大きく依存していると言える。動力学関節の適当な最大トルクは簡単には分かり難いが、モーションキャプチャ動作データを動力学動作データに変換したとき、ほぼ類似に付いていくようにする最大トルク値を求める経験を通じて習う方法が勧められる。
【００７６】
しかし、常に正常な最大トルク値のみ必要なわけではなく、人間モデルをスーパーマンに設定する必要がある場合には最大トルク値を一般値より何倍も高くする。ジャンプする時と同じ動作で一般の人間モデルは１ｍ跳ね上がるが、スーパーマンは１０ｍ跳ね上がるようにすることができる。
【００７７】
ほぼ全てのキャラクタモデルは環境に依存して動作を行う。人間キャラクタや馬キャラクタはいずれも地面上を歩いたり、他のキャラクタとぶつかったりすると、反発力を受け、再び力を与える過程を通じて動作を行う。キャラクタの動力学動作のために、力をやりとりする適切な環境モデルが必要である。
【００７８】
これにより、動力学モデル制御モジュール１０４は、２１０段階で地面（Ｇｒｏｕｎｄ）や傾斜面（Ｓｌｏｐｅ）、階段（Ｓｔａｉｒｓ）のような環境モデルを生成し、再び環境モデルの大きさや位置や方位などを調整する作業を行う。
【００７９】
そして、２１２段階で動力学動作変換モジュール１０６は、２１４段階で動作データの入力を受け、動力学モデル変換モジュール１０２を通じて出力された動力学モデルデータ又は動力学モデル制御モジュール１０４に基づいて修正された動力学モデルデータと、環境モデルデータを参照する動力学シミュレーションを行って、２１６段階でキャラクタの動作データを動力学動作データに変換して出力する。
【００８０】
ただし、変換された動力学動作データに変化が必要であれば、動力学モデル制御モジュール１０４で動力学的関節データの動力学的関節の最大トルクなどを修正し、これを動力学動作変換モジュール１０６に入力した後、再び動力学シミュレーションを行って動力学動作データに変換されたデータを出力する。このとき、動力学シミュレーションは様々な制約条件（Ｃｏｎｓｔｒａｉｎｔ）の入力を受け、重力と摩擦力などが全体的な制約条件として入力される。
【００８１】
そして、キャラクタの動作データで指定された各分節の位置、速度、加速度に応じて動力学モデルの動力学的分節の位置、速度、加速度の制約条件が決定される。動力学方程式を解析（Ａｎａｌｙｓｉｓ）的に解くか、繰り返し（Ｒｅｃｕｒｓｉｖｅ）的に解いて全ての制約条件を満足する各動力学的分節のトルク値を計算し、指定された最大トルク値以下に切り捨てられたトルク値を通じて行われた結果を動力学動作データとして記録する。このとき、動力学動作データは、各動力学分節の入力力、入力トルクと結果位置、結果方位、結果線速度、結果角速度と衝突関連イベントデータを含むことができる。
【００８２】
その後、動作編集モジュール１０８では２１８段階でキャラクタの動作データと動力学動作データの入力を受けて、２つの動作データを編集して修正された動作データを出力する。
【００８３】
全てのキャラクタアニメーションで動力学動作データの全部がそのまま用いられる場合は殆どない。アニメータの想像力を表現するために、動力学動作データは材料として用いられるだけである。動力学動作データは、一部分が使用されるか、アニメータにより細部的に修正される編集過程を経るようになる。
【００８４】
その後、２２０段階でロボット動作制御モジュール１１０は、準備されたキャラクタの動力学動作データの入力を受けて調整過程を経てロボットの制御に必要なロボットの各関節に位置するモータに指定するトルク値を出力する。
【００８５】
前記のような手順を例えて説明すれば、現実世界でロボットが用意されるとき、ロボットの形態を分析してキャラクタモデルデータを生成し、生成されたキャラクタモデルデータは動力学モデル変換モジュール１０２を通じて動力学モデルデータに変換される。
【００８６】
キャラクタの動作データは、キャラクタモデルデータを参照して生成される。ロボットキャラクタの動作は、既存のアニメーションツールを通じて容易に生成する。その後、ロボットキャラクタの動力学モデルデータと生成されたキャラクタの動作データを参照して動力学動作変換モジュール１０６でロボットキャラクタの動力学動作データを生成する。
【００８７】
動力学動作データは、動力学的関節に加えられるトルク値を有しているが、この値をロボットにそのまま適用することはできない。これにより、ロボット動作制御モジュール１１０では動力学動作データで動力学的関節が有するトルク値の入力を受けてこれに補正（Ｃｏｍｐｅｎｓａｔｉｏｎ）値を掛けた結果のトルク値をロボットの該当関節モータに出力する。各動力学的関節の補正値は、ロボットに用いられたモータ毎に異なるので、実験により値を求めることができる。
【００８８】
以上説明した通り、本発明の実施形態による動力学基盤動作生成装置及び方法は、動力学的動作制御方法を活用して既存の方法で生成された動作の全体的な形態は保持しながらも、細部的に物理法則が適用される自然な移動を保障するものであって、また本発明は動力学シミュレーションを導入してアニメータが生成した動作データを客観的な物理法則を満足する動作データに補正する方案を提示する。
【００８９】
そして、本発明による動力学基盤動作生成装置及び方法は、コンピュータプログラムで作成可能である。このコンピュータプログラムを構成するコード及びコードセグメントは当該分野のコンピュータプログラマにより容易に推論され得る。また、該当コンピュータプログラムは、コンピュータが読み取れる情報格納媒体（ｃｏｍｐｕｔｅｒ ｒｅａｄａｂｌｅ ｍｅｄｉａ）に格納され、コンピュータによって読み取られ、実行されることによって、動力学基盤動作生成方法を実現する。情報格納媒体は、磁気記録媒体、光記録媒体及びキャリアウェーブ媒体を含む。
【００９０】
一方、本発明の詳細な説明では具体的な実施形態について説明したが、本発明の範囲から逸脱しない範囲内で様々な変形が可能であることはもちろんである。従って、本発明の範囲は説明された実施形態に限定されず、後述する特許請求の範囲だけでなく、この特許請求の範囲と均等なものにより定められなければならない。
【符号の説明】
【００９１】
１００  動力学基盤動作生成装置
１０２  動力学モデル変換モジュール
１０４  動力学モデル制御モジュール
１０６  動力学動作変換モジュール
１０８  動作編集モジュール
１１０  ロボット動作制御モジュール
２０２  キャラクタモデルデータの入力
２０４  動力学モデル変換を実行
２０６  キャラクタ動力学モデルデータの出力
２０８  動力学モデルの制御を実行
２１０  環境モデルデータの修正／追加
２１２  動力学動作の変換を実行
２１４  キャラクタ動作データの入力
２１６  キャラクタ動力学動作データの出力
２１８  動作の編集を実行
２２０  ロボット動作の制御を実行
３００  腹と連結された背骨部分
３０２  馬キャラクタモデルの下腕
３０４  馬キャラクタモデルの下脚
４００  腹と連結された背骨部分
４０２  馬キャラクタモデルの下腕
４０４  馬キャラクタモデルの下脚
【図１】
2011115933.tif 000003
【図２】
2011115933.tif 000004
【図３】
2011115933.tif 000005
【図４】
2011115933.tif 000006