(57)【要約】【課題】  キャラクタシミュレーション方法およびシステムを開示する。【解決手段】  キャラクタシミュレーション方法は、変位マッピングおよび比例微分制御（ＰＤ制御）を用いてモーションデータを最適化するステップと、最適化されたモーションデータを用いてコントローラを学習し、キャラクタの行動を制御するステップとを含む。このとき、変位マッピングおよびＰＤ制御を用いてモーションデータを最適化するステップは、入力モーションおよび変位パラメータ間の変位マッピングによってターゲットモーションを生成するステップと、ターゲットモーションおよび目的関数を用いてシミュレーションモーションを生成するステップとを含むことができる。最適化されたモーションデータを用いてコントローラを学習するステップは、キャラクタの現在状態と近いデータサンプルを探し出すステップと、サンプルに含まれた結果ポーズを結合してターゲットポーズを計算することができるコントローラを生成するステップと、モーションデータおよび変位マッピングを用いてコントローラを改良するステップとを含むことができる。コントローラは、静的コントローラと静的コントローラ間の遷移を可能にする遷移コントローラを含むことができる。【選択図】  図６
2010527086.tif 000002
【特許請求の範囲】
【請求項１】
キャラクタシミュレーション方法であって、
変位マッピングおよび比例微分制御を用いてモーションデータを最適化するステップと、
前記最適化されたモーションデータを用いてコントローラを学習し、キャラクタのモーションを制御するステップと、
を含むキャラクタシミュレーション方法。
【請求項２】
前記最適化するステップは、
入力モーションおよび変位パラメータ間の前記変位マッピングによってターゲットモーションを生成するステップと、
前記ターゲットモーションおよび目的関数を用いてシミュレーションモーションを生成するステップと、
を含むことを特徴とする請求項１に記載のキャラクタシミュレーション方法。
【請求項３】
前記モーションデータは、時間に応じて分離された少なくとも１つの前記入力モーションを含み、
前記最適化するステップは、
前記モーションデータが含むすべての入力モーションに対して、ターゲットモーションを生成するステップおよびシミュレーションモーションを生成するステップを繰り返して実行するステップ、
をさらに含むことを特徴とする請求項２に記載のキャラクタシミュレーション方法。
【請求項４】
前記ターゲットモーションを生成するステップは、
前記入力モーションに前記変位パラメータによって生成されたモーション変位の配列を加え、前記ターゲットモーションを生成するステップであり、
前記モーション変位の配列のそれぞれの要素は、鐘形基底関数を用いて計算されることを特徴とする請求項２に記載のキャラクタシミュレーション方法。
【請求項５】
前記ターゲットモーションを生成するステップは、
下記の数９のように前記入力モーションに前記モーション変位の配列を付加して前記ターゲットモーションを生成することを特徴とする請求項４に記載のキャラクタシミュレーション方法。
【数９】
2010527086.tif 000020
ここで、ｔは任意の時間を意味し、数９-１、ｍ（ｔ）、およびｄ（ｔ）は前記ターゲットモーション、前記入力モーション、および前記モーション変位の配列をそれぞれ意味する。
【数９−１】
2010527086.tif 000021
【請求項６】
前記入力モーションは、下記の数１０のように示され、
前記モーション変位の配列は、下記の数１１のように示されることを特徴とする請求項５に記載のキャラクタシミュレーション方法。
【数１０】
2010527086.tif 000022
ここで、ｎは前記キャラクタの関節の数を意味し、θ（ｔ）はｔ時刻に前記関節が有する角度を意味する。
【数１１】
2010527086.tif 000023
【請求項７】
前記鐘形基底関数は、下記の数１２のように示され、ｍ個のノードポイント｛ｃ1、…、ｃm｝は、足の出発点、キックダウン地点、およびスイング区間の中間地点に対して不均等な間隔で位置することを特徴とする請求項５に記載のキャラクタシミュレーション方法。
【数１２】
2010527086.tif 000024
ここで、ｄi（ｔ）は、前記モーション変位の配列が含むｉ番目の元素を、ｃjはノードポイントを、ｍはノードポイントの数を、ｈｉｊおよびｗｊは前記モーション変位の係数をそれぞれ意味し、Ｂｊ（ｔ；ｃｊ、ｗｊ）は三角基底関数を意味する。
【請求項８】
前記三角基底関数は、下記の数１３のように示されることを特徴とする請求項７に記載のキャラクタシミュレーション方法。
【数１３】
2010527086.tif 000025
【請求項９】
前記ターゲットモーションおよび目的関数を用いてシミュレーションモーションを生成するステップは、
前記変位パラメータの初期値を選択し、互いに異なる変位パラメータの初期値に対して繰り返して局部的極値を探し、前記局部的極値のうちの最小値を前記目的関数の最小値として前記シミュレーションモーションを計算することを特徴とする請求項２に記載のキャラクタシミュレーション方法。
【請求項１０】
前記目的関数は、下記の数１４のように示され、
前記局部的極値は、所定の最適化方法を用いて探すことを特徴とする請求項９に記載のキャラクタシミュレーション方法。
【数１４】
2010527086.tif 000026
ここで、ｍ（ｔ）および数１４-１は前記入力モーションおよび前記シミュレーションモーションをそれぞれ意味し、数１４-２は加重値項を、数１４-３は前記入力モーションと前記シミュレーションモーションによって前記キャラクタが有するようになる２つのポーズ間の差異点をそれぞれ意味する。
【数１４−１】
2010527086.tif 000027
【数１４−２】
2010527086.tif 000028
【数１４−３】
2010527086.tif 000029
【請求項１１】
前記最適化方法は、滑降シンプレックス法であることを特徴とする請求項１０に記載のキャラクタシミュレーション方法。
【請求項１２】
前記モーション変位の配列は、所定の数の基底関数がオーバーラップしながら時間軸に沿って移動するウィンドウを用いて最適化され、
前記ウィンドウは、前記モーションデータのロングクリップに対するシーケンスの一部分をカバーして最適化モーションフレームを分離することを特徴とする請求項２に記載のキャラクタシミュレーション方法。
【請求項１３】
前記最適化されたモーションデータを用いてコントローラを学習し、キャラクタの行動を制御する前記ステップは、
状態−動作軌道の集合を用いてコントローラ学習を実行するステップと、
前記モーションデータおよび前記変位マッピングを用いて前記コントローラを改善するステップと、
前記コントローラを用いて行動に対する状態間の遷移を制御するステップと、
を含むことを特徴とする請求項１に記載のキャラクタシミュレーション方法。
【請求項１４】
前記状態−動作軌道の集合を用いてコントローラ学習を実行するステップは、
前記キャラクタに対する新たな状態が与えらたときに、その状態と近い少なくとも１つのサンプルを選択するステップと、
前記サンプルに含まれた少なくとも１つの出力ポーズを結合してターゲットポーズを計算するステップと、
を含むことを特徴とする請求項１３に記載のキャラクタシミュレーション方法。
【請求項１５】
前記近いサンプルは、モーションフレーム間の距離を用いて選択され、
前記モーションフレーム間の距離は、前記モーションフレームの特性を用いて測定されることを特徴とする請求項１４に記載のキャラクタシミュレーション方法。
【請求項１６】
前記モーションフレームの特性は、（１）関節角度、（２）ルートノードの位置、速度、方向、（３）キャラクタ足の位置、速度、および（４）地面接触のうちの少なくとも１つを含み、
前記モーションフレーム間の距離は、前記モーションフレームの特性ベクトルＦ（ｔ）の間の差を二乗し、加重値を付与し、加える方式で計算されることを特徴とする請求項１５に記載のキャラクタシミュレーション方法。
【請求項１７】
前記計算するステップは、
下記の数１５を用いて前記ターゲットポーズを計算することを特徴とする請求項１４に記載のキャラクタシミュレーション方法。
【数１５】
2010527086.tif 000030
ここで、前記Ｐ（ｔ＋Δｔ）は次時間インスタンスの前記ターゲットポーズを、ｄｉは数１５-１を意味しており、前記キャラクタの現在状態と前記サンプルのうちのｉ番目のサンプルＦiとの距離を前記特性ベクトルＦ（ｔ）を活用して計算し、ｗiは１／ｄiを、εは所定の定数をそれぞれ意味する。
【数１５−１】
2010527086.tif 000031
【請求項１８】
前記モーションデータおよび変位マッピングを用いてコントローラを改善するステップは、
前記モーションデータが含むトレーニングデータの集合を用いて前記キャラクタの軌道をモニタリングするステップと、
前記キャラクタの軌道が前記トレーニングデータの集合による軌道を所定の基準以上逸脱する場合、失敗の状況として認識するステップと、
前記失敗の状況と認識した時に、前記キャラクタのモーションのうちで最も近いサイクルに全体システムをロールバックするステップと、
を含むことを特徴とする請求項１３に記載のキャラクタシミュレーション方法。
【請求項１９】
前記モーションデータおよび変位マッピングを用いてコントローラを改善するステップは、
前記トレーニングデータの集合に新たな状態−動作の軌道を追加するステップと、
前記変位マッピングを用いて前記状態−動作の軌道を既存の軌道に混合するステップと、
をさらに含むことを特徴とする請求項１８に記載のキャラクタシミュレーション方法。
【請求項２０】
前記コントローラは、所定の範囲内で前記キャラクタの状態に対する変化を制御する静的コントローラおよび前記静的コントローラ間の遷移を制御する遷移コントローラを含み、
前記コントローラを用いて行動に対する状態間の遷移を制御するステップは、
前記キャラクタがシミュレーションされる間、前記遷移コントローラのトレーニングデータセットが含むサンプルのうちで前記キャラクタの現在状態と最も近いサンプル間の距離を測定し、前記距離がユーザによって設定された閾値以下である場合、前記キャラクタのモーションを制御することを特徴とする請求項１３に記載のキャラクタシミュレーション方法。
【請求項２１】
請求項１〜２０のうちのいずれか一項の方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項２２】
キャラクタシミュレーションシステムであって、
変位マッピングおよび比例微分制御を用いてモーションデータを最適化するモーションデータ最適化部と、
前記最適化されたモーションデータを用いてコントローラを学習し、キャラクタの行動を制御するキャラクタ制御部と、
を備えるキャラクタシミュレーションシステム。
【請求項２３】
前記モーションデータ最適化部は、
入力モーションおよび変位パラメータ間の前記変位マッピングによってターゲットモーションを生成するターゲットモーション生成部と、
前記ターゲットモーションおよび目的関数を用いてシミュレーションモーションを生成するシミュレーションモーション生成部と、
を備えることを特徴とする請求項２２に記載のキャラクタシミュレーションシステム。
【請求項２４】
前記モーションデータは、時間に応じて分離された少なくとも１つの前記入力モーションを含み、
前記モーションデータ最適化部は、
前記モーションデータが含むすべての入力モーションに対してターゲットモーション生成部および前記シミュレーションモーション生成部を繰り返して実行させる繰り返し部、
をさらに備えることを特徴とする請求項２３に記載のキャラクタシミュレーションシステム。
【請求項２５】
前記ターゲットモーション生成部は、
前記入力モーションに前記変位パラメータによって生成されたモーション変位の配列を付加して前記ターゲットモーションを生成し、
前記モーション変位の配列のそれぞれの要素は、鐘形基底関数を用いて計算されることを特徴とする請求項２３に記載のキャラクタシミュレーションシステム。
【請求項２６】
前記シミュレーションモーション生成部は、
前記変位パラメータの初期値を選択し、互いに異なる変位パラメータの初期値に対して繰り返して局部的極値を探し、前記局部的極値の値のうちの最小値を前記目的関数の最小値として前記シミュレーションモーションを計算することを特徴とする請求項２３に記載のキャラクタシミュレーションシステム。
【請求項２７】
前記キャラクタ制御部は、
状態−動作軌跡の集合を用いてコントローラ学習を実行するコントローラ学習部と、
前記モーションデータおよび前記変位マッピングを用いて前記コントローラを改善するコントローラ改良部と、
前記コントローラを用いて行動に対する状態間の遷移を制御する遷移制御部と、
を備えることを特徴とする請求項２２に記載のキャラクタシミュレーションシステム。
【請求項２８】
前記コントローラ学習部は、
次時間インスタンスに前記キャラクタに対する新たな状態が与えられた時に、その状態と近い少なくとも１つのサンプルを選択し、前記サンプルに含まれた少なくとも１つの出力ポーズを結合してターゲットポーズを計算することを特徴とする請求項２７に記載のキャラクタシミュレーションシステム。
【請求項２９】
前記近いサンプルはモーションフレーム間の距離を用いて選択され、
前記モーションフレーム間の距離は、前記モーションフレームの特性を用いて測定されることを特徴とする請求項２８に記載のキャラクタシミュレーションシステム。
【請求項３０】
前記モーションフレームの特性は、（１）関節角度、（２）ルートノードの位置、速度、方向、（３）キャラクタ足の位置、速度、および（４）地面接触のうちの少なくとも１つを含むことを特徴とする請求項２９に記載のキャラクタシミュレーションシステム。
【請求項３１】
前記コントローラ改善部は、
前記モーションデータが含むトレーニングデータの集合を用いて前記キャラクタの軌道をモニタリングし、前記キャラクタの軌道が前記トレーニングデータの集合による軌道を所定の基準以上逸脱する場合、失敗の状況として認識し、前記失敗の状況と認識した時に、前記キャラクタのモーションのうちの最も近いサイクルに全体システムをロールバックすることを特徴とする請求項２７に記載のキャラクタシミュレーションシステム。
【請求項３２】
前記コントローラ改善部は、
前記トレーニングデータの集合に新たな状態−動作の軌道を追加し、前記変位マッピングを用いて前記状態−動作の軌道を既存の軌道に混合することを特徴とする請求項３１に記載のキャラクタシミュレーションシステム。
【請求項３３】
前記コントローラは、所定の範囲内で前記キャラクタの状態に対する変化を制御する静的コントローラおよび前記静的コントローラ間の遷移を制御する遷移コントローラを含み、
前記遷移制御部は、
前記キャラクタがシミュレーションされる間、前記遷移コントローラのトレーニングデータの集合が含むサンプルのうちで前記キャラクタの現在状態と最も近いサンプル間の距離を測定し、前記距離がユーザによって設定された閾値以下である場合、前記キャラクタのモーションを制御することを特徴とする請求項２７に記載のキャラクタシミュレーションシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はキャラクタシミュレーション方法およびシステムに関する。
物理的にシミュレーションされた仮想世界において、二足歩行のキャラクタが動作するようにすることは、コンピュータアニメーション、ロボット工学、生物力学などにおいて重要な論点である。制御理論および機械学習などから歩行やバランスのようなそれぞれの個別的な人間行動を物理的にシミュレーションするコントローラを設計するために、多くの技術が採用された。
【０００２】
このようなコントローラを設計するための魅力的なアプローチのひとつは、実際の人間の行動から制御戦略（control strategies）を学習することである。すなわち、実際の人間が実行する特定行動から豊富なモーションデータを得ることができ、このようなモーションデータによって、キャラクタが与えられた状況にどのように対処しなければならないかについて情報を得ることができる。
【０００３】
このように、実際の人間の行動に対する模倣に基づいて学習する接近法は、シミュレーションされたキャラクタや人間型ロボットが、人間の動きを模倣できるようにする可能性を提示している。
【背景技術】
【０００４】
従来技術において、実際の人間の行動を模倣して学習する方法について、多くの研究で進捗があったが、モーションキャプチャデータから二足行動を学ぶことは、記憶されたモーションデータによってキャプチャしにくいバランス維持などの敏感な制御においては、依然として問題点を有している。
【０００５】
また、キャプチャされたモーションデータの物理的な不正確さという問題点がある。すなわち、動的キャラクタモデルは、実際の人間と比較すると極端に単純化されているため、正確にキャプチャされた関節の各軌道を追随するあらゆる二足のキャラクタであっても、数ステップごとにバランスを失ったり、転倒したりする問題点を有している。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、実際の人間が繰り返す行動から、記録されたモーションデータによって実際の人間の行動を模倣するために物理的にシミュレーションされた二次元上の二足のキャラクタを提供する二足のキャラクタ提供方法およびシステムを提供する。
【０００７】
また、本発明は、モーションデータを最適化によって改善し、簡素化された動的モデルであるキャラクタがバランスを維持するように関節を動かし、記録されたモーションの軌道をほぼ再生（reproduce）することができるキャラクタシミュレーション方法およびシステムを提供する。
【０００８】
また、本発明は、最適化されたモーションデータによってキャラクタの行動を制御する手段を学習させ、実際の人間の行動を確実に模倣することができる二足のキャラクタを提供することができるキャラクタシミュレーション方法およびシステムを提供する。
【０００９】
また、本発明は、キャラクタの異なる行動についての変遷を可能とする統合されたフレームワークに学習された動的コントローラを構成するキャラクタシミュレーション方法およびシステムを提供する。
【００１０】
また、本発明は、すべてのコントローラが学習され、ユーザーが所望するモーションを実行するためにリアルタイムで動的にシミュレーションされ、対話的に制御される二足のキャラクタを提供するキャラクタシミュレーション方法およびシステムを提供する。
【課題を解決するための手段】
【００１１】
本発明の一実施形態に係るキャラクタシミュレーション方法は、変位マッピングおよび比例微分制御（ＰＤ制御：Proportional Derivative control）を用いてモーションデータを最適化するステップと、前記最適化されたモーションデータを用いてコントローラを学習し、キャラクタのモーションを制御するステップを含んでいる。
【００１２】
本発明の一態様では、前記最適化するステップにおいて、入力モーションおよび変位パラメータの間の変位マッピングによってターゲットモーションを生成するステップと、前記ターゲットモーションおよび目的関数を用いてシミュレーションモーションを生成するステップとを含んでいる。また、前記モーションデータは、時間に応じて分離された少なくとも１つの前記入力モーションを含むことができ、前記最適化するステップにおいて、前記モーションデータが含むすべての入力モーションに対して、ターゲットモーションを生成するステップおよびシミュレーションモーションを生成するステップを繰り返して実行するステップをさらに含んでいる。
【００１３】
本発明の一態様では、前記ターゲットモーションを生成するステップは、前記入力モーションに、前記変位パラメータによって生成されたモーション変位の配列を加え、前記ターゲットモーションを生成するステップとすることができ、前記モーション変位の配列のそれぞれの要素は、鐘形基底関数（bell-shaped basis function）を用いて計算される。
【００１４】
本発明の一態様では、前記シミュレーションモーションを生成するステップは、前記変位パラメータの初期値を任意で選択し、互いに異なる変位パラメータの初期値に対して繰り返して局部的極値（local extremum values）を確認し、前記局部的極値のうちの最小値を前記目的関数の最小値として前記シミュレーションモーションを計算するステップとすることができる。
【００１５】
本発明の一態様では、前記コントローラを学習させ、キャラクタのモーションを制御するステップは、状態−動作軌道の集合を用いてコントローラの学習をさせるステップと、前記モーションデータおよび変位マッピングを用いて、前記コントローラを改良するステップと、前記コントローラを用いて行動に対する状態間の遷移を制御するステップとを含んでいる。
【００１６】
本発明の一態様では、前記変位マッピングおよびＰＤ制御を用いてモーションデータを最適化するモーションデータ最適化部と、前記最適化されたモーションデータを用いてコントローラを学習させ、キャラクタのモーションを制御するキャラクタ制御部とを備えている。
【発明の効果】
【００１７】
本発明によれば、実際の人間が繰り返す行動から、記録されたモーションデータによって実際の人間の行動を模倣するために物理的にシミュレーションされた二次元上の二足のキャラクタを提供することができ、モーションデータを最適化によって改善し、簡素化された動的モデルであるキャラクタがバランスを維持するように関節を動かし、記録されたモーションの軌道をほぼ再生することができる。
【００１８】
また、本発明によれば、キャラクタの行動を制御する手段を最適化されたモーションデータによって学習し、実際の人間の行動を確実に模倣することができるようにし、キャラクタの異なる行動についての変遷を可能とする統合されたフレームワークに学習された動的コントローラを構成することができる。
【００１９】
さらに、本発明によれば、すべてのコントローラが学習され、ユーザーが所望するモーションを実行するためにリアルタイムで動的にシミュレーションされ、対話的に制御される二足のキャラクタを提供することができる。
【図面の簡単な説明】
【００２０】
【図１】図１は、本発明の一実施形態におけるモーションデータを最適化する方法を概略的に示す図である。
【図２】図２は、変位マッピングを説明するための図である。
【図３】図３は、変更された変位パラメータに対する目的関数のサンプリングの一例を示す図である。
【図４】図４は、コントローラ間の遷移を抑制する有限状態機械の一例である。
【図５】図５は、歩行コントローラの学習の一例を示す図である。
【図６】図６は、本発明の一実施形態におけるキャラクタシミュレーション方法を示すフローチャートである。
【図７】図７は、最適化されたモーションに対する結果の一例である。
【図８】図８は、コントローラ間の状態が遷移する様子を示す一例である。
【図９】図９は、本発明の一実施形態におけるキャラクタシミュレーションシステムの内部構成を説明するためのブロック図である。
【発明を実施するための形態】
【００２１】
以下、添付の図面を参照しながら、本発明にかかる多様な実施形態について詳細に説明する。
本発明は、人間の行動からキャプチャされたモーションデータを用いて、点、線、面、または立体などの図形で構成された動的モデル、特に二足のキャラクタの行動を学習するキャラクタシミュレーション方法およびシステムに関する。
【００２２】
Ｉ．最適化（Optimization）
比例微分制御（ＰＤ制御）のような簡単な追跡方法は、動的モデルが実際の人間の骨組みとは物理的に差があるため、記録されたモーションデータによって動的モデルを生成することはできない。このような動的モデルは、実際の人間が変形可能な筋肉、肌、または複雑な関節を有することに比べ、低い自由度、剛性リンク、または非現実的な回転関節を有している。
【００２３】
実際の人間の体に対するそれぞれの構成要素に対して、質量と慣性を正確に測定することは極めて困難であるため、統計データに基づいて多少任意に動的モデルの物理的な特性を決定する。このような動的モデルに対する物理的な不正確さは、キャプチャされたモーションデータを用いて動的な行動を学習するのに大きな障害として作用する。
【００２４】
したがって、動的モデル固有の不正確さを補うために、モーションデータを改善して最適化することができる。すなわち、モーションデータのセグメントが与えられれば、二足を有する動的モデルがバランスを維持しながらモーションデータのセグメントに該当するモーションに従う様に、モーションデータを最適化することができる。しかしながら、最適化は、最適化空間の高次元性と過度な非線形目的関数の問題点を有する。
【００２５】
また、動的モデルはフィードバックコントロールの不足によってバランスを失ったり、足が予想外に地面に触れたり、推進力のような外部からの力が作用するときに、所望する軌道にそった動きを継続しにくいため、動的モデルはたいてい目標としたターゲットを追従することは失敗するようになる。
【００２６】
このような問題点は、ターゲットモーションを若干修正することによって解決することができる。例えば、上半身を若干傾けることによってバランスを回復することができ、足の軌道を移すことによって突然地面と接触することを避けることができ、また、地面に対して足をより遠くに伸ばすことで強い推進力を生み出すことができる。
【００２７】
本発明にかかるキャラクタシミュレーション方法およびシステムは、最適化アルゴリズムによってこのような問題点に対して運動学的に目標としたモーションを改良することによって、動的モデルがモーションを追従するようにすることができる。
【００２８】
図１は、本発明の一実施形態において、モーションデータを最適化する方法を概略的に示す図である。
入力モーションｍ（ｔ）が（θ1（ｔ）、…、θn（ｔ））のように与えられたとき、キャラクタシミュレーションシステムは、修正されたターゲットモーション（数１-１）を下記の数１のようなモーションに対する変位マッピング１０１を用いて示すことができる。このとき、ｔは任意の時刻、ｎは二足のキャラクタが有する関節の数を意味する。すなわち、（θ1（ｔ）、…、θn（ｔ））はｔ時刻に関節が有する角度の配列である。
【００２９】
【数１】
2010527086.tif 000003
【００３０】
【数１−１】
2010527086.tif 000004
【００３１】
ここで、ｄ（ｔ）は、（ｄ1（ｔ）、…、ｄn（ｔ））のようなモーション変位の配列を意味している。このとき、モーション変位の配列は、変位パラメータを用いて生成されることができる。また、それぞれのモーション変位は、下記の数２のように鐘形基底関数を有する媒介型で示すことができる。
【００３２】
【数２】
2010527086.tif 000005
【００３３】
このとき、ｍはノードポイントの数を意味し、Ｂj（ｔ；ｃj、ｗj）は下記の数３のように示される三角基底関数（sinusoidal basis function）を意味する。
【００３４】
【数３】
2010527086.tif 000006
【００３５】
すなわち、三角基底関数は、ｃj−ｗjからｃj＋ｗjまでの区間の値を有し、この区間を逸脱する場合は０の値を有する。また、三角基底関数は、ノードポイントｃjで最大値を有する。このとき、ノードポイントを時間軸上でどの位置に選択するかによって、最適化性能を著しく向上することができる。
【００３６】
図２は、変位マッピングを説明するための図である。
モーション変位は、上記の数２に示すように、三角基底関数の加重和で示すことができる。このとき、三角基底関数は、グラフ２０１のように足のスタンス区間２０２およびスイング区間２０３と同期化された時間軸に位置することができる。また、ｍ個のノードポイント｛ｃ1、…、ｃm｝は、不規則な間隔で位置し、それぞれのノードポイントは、スタンス区間２０２の出発点２０４およびキックダウン地点（kickdown point）２０５と一致したり、スイング区間２０３の中間地点２０６と一致する。
【００３７】
ここで、キャラクタシミュレーションシステムは、変位マッピング１０１のためにモーションｍ（ｔ）の入力を受け、モーション変位に対する係数集合（数３-１）を決定して、数３のように適用する。また、計算された変位をｍ（ｔ）に上記の数１のように適用する。
【００３８】
【数３−１】
2010527086.tif 000007
【００３９】
キャラクタシミュレーションシステムは、モーションに対する変位パラメータでモーション変位の係数を繰り返し更新し（１０４）、繰り返されたすべてのステップでターゲットモーションを提示する。このとき、キャラクタシミュレーションシステムは、ＰＤ制御１０２を用いて入力モーションの１番目のフレームから始まるターゲットモーションを追従することができる。この場合、キャラクタの関節それぞれのための制御方程式は、下記の数４のように示すことができる。
【００４０】
【数４】
2010527086.tif 000008
【００４１】
ここで、θは関節の角度、θdは所望の角度、（数４-１）は関節の角速度、（数４-２）は所望の角速度をそれぞれ意味している。また、ｋsおよびｋvは、比例利得および微分利得を意味している。
【００４２】
【数４−１】
2010527086.tif 000009
【００４３】
【数４−２】
2010527086.tif 000010
【００４４】
キャラクタシミュレーションシステムは、ターゲットモーションを追従することによって、ＰＤ制御を用いてシミュレーションモーション（数４-３）を得ることができる。このとき、シミュレーションモーションは、評価１０３されて出力されたり、変位パラメータの更新１０４に用いられる。変位パラメータは、次時間インスタンスの入力モーションに対する変位マッピング１０１に用いられる。また、ターゲットモーションに対する追従は、ＰＤサーボを用いることができる。
【００４５】
【数４−３】
2010527086.tif 000011
【００４６】
このようなシミュレーションモーションが入力モーションと可能な限り類似するようにするため、キャラクタシミュレーションシステムは、下記の数５のように示される目的関数が最小値を有するようにできる。
【００４７】
【数５】
2010527086.tif 000012
【００４８】
すなわち、目的関数は、入力モーションとシミュレーションモーションとの間の不一致に対するペナルティを適用する関数とすることができ、目的関数の値が最小値となるようにすることにより、入力モーションとシミュレーションモーションが可能な限り類似する様にすることができる。このとき、（数５-１）は、入力モーションとシミュレーションモーションによって二足のキャラクタが有する２つのポーズ間の差異点を意味し、２つのポーズを有する骨組みの質量点の比較によって測定される。
【００４９】
【数５−１】
2010527086.tif 000013
【００５０】
このため、キャラクタシミュレーションシステムは、内部関節位置と体格リンクの終点を距離計算のために用いることができる。すなわち、入力モーションとシミュレーションモーションから得られる２つの位置集合は最初に標準化され、ｘ座標に対する同じ平均を有することになる。このとき、差異点がユークリッド点距離の二乗和として計算される。加重値項（数５-２）は、モーションの最後にターゲット軌道をより適切に追従する。
【００５１】
【数５−２】
2010527086.tif 000014
【００５２】
図３は、変更された変位パラメータに対する目的関数のサンプリングの一例を示す図である。
モーションデータを最適化する目的関数は、多くの局部的最小値（local minima）を有する。グラフ３００は、２つの変更された変位パラメータに対する目的関数のサンプリングを示しており、変位パラメータは足首の変位高さと膝の変位高さに対応する。このとき、目的関数において幅が狭く屈折した谷間形状のために最適化が困難になる。
【００５３】
すなわち、目的関数の最小値を探すために、キャラクタシミュレーションシステムはランダムに変位パラメータの初期値を選択し、局部的極値を探すために滑降シンプレックス法（downhill simplex method）を互いに異なる変位パラメータの初期値に対して繰り返し動作させることができる。このとき、キャラクタシミュレーションシステムは、局部的極値のうち、最小値を目的関数の最小値として選択することができる。
【００５４】
滑降シンプレックス法は、極めて遅いが、たいていの場合では極めて安定的である。本発明の一実施形態では、モーションデータの最適化のために滑降シンプレックス法を用いたが、これは本発明の全般的な理解を助けるために提供されたものに過ぎず、上述した実施形態に限定されず、本発明が属する分野において通常の知識を有する者であれば、このような記載から多様な修正および変形が可能である。例えば、パウエル法（Powell’s method）や共役傾斜法（conjugate gradient method）のように周知の他の最適化方法を用いることもできる。
【００５５】
キャラクタシミュレーションシステムは、行動間の自然な遷移をキャプチャするために、モーションデータのロングクリップ（long clip）を記録することができる。最適化されたプロセスは、探索空間の次元が時間軸でサンプリングされたノードの数に比例して増加するため極めて遅く、モーションデータの長いセグメントに対して発散する傾向があり得る。
【００５６】
このため、視空間ウィンドウの概念を用いることができる。すなわち、キャラクタシミュレーションシステムは、モーションデータのロングクリップを効果的に改善するために増分技術を用いる。基本的なアイデアは、長いシーケンスの小さい部分をカバーするウィンドウで最適化フレームを分離することができる。
【００５７】
このとき、ウィンドウはモーションフレームが最初から最後まで漸増的に改善されるようにするため、時間軸に沿ってシフトする。より詳細には、ウィンドウの大きさは最初に決定され、ウィンドウの最初のｋ個の基底関数のサポート間隔をカバーする。ウィンドウでモーションフレームを一度最適化した後には、ウィンドウは最初からｋ−１個の基底関数をドロップし、次のｋ−１個の基底関数を含むことによってシフトする。このような方法により、シフトされたウィンドウは、ウィンドウの境界が互いに交差して一時的な結合力を維持するために、以前のウィンドウとオーバーラップする。
【００５８】
このような完全な最適化プロセスは、ウィンドウを介してモーションフレームを改善することができ、ウィンドウがモーションフレームの終点に到達するまでウィンドウを繰り返してシフトさせることができる。
【００５９】
上述した変形した最適化問題に対する最上の解答を探すことは極めて多くの計算量を要するため、最適化プロセスを加速させるために一対の実用的な技術を用いることができる。探索空間の次元を減らすことが実用的な技術の共通的なアイデアである。
【００６０】
１つめの技術としては、上半身の関節はＰＤサーボを介して制御されるが、バランスを維持するために、実質的にターゲット軌道を調整しないことがある。このために、キャラクタシミュレーションシステムは、上半身の自由度を最適化するための変位パラメータから除外することができる。
【００６１】
他の技術としては、期待のできる初期値を選択することによって繰り返しステップの全体数を減らすことである。全体的な最適化プロセスは、互いに異なるパラメータの初期値から始まる。したがって、この初期値の中に期待のできるものを少数だけ予め定めておくことを考慮することができる。すなわち、局部的最適化方法において、全ての初期値を計算する必要がなく、いくつかの予め定めておいた初期値を選択することができる。
【００６２】
このような方法を用いることで、キャラクタシミュレーションシステムは、最終結果に著しい低下がなく、極めて大きい性能利得を得ることができる。
ＩＩ．行動制御（Behavior Control）
キャラクタシミュレーションシステムは、二足のキャラクタを生成することができ、キャラクタは動的にシミュレーションされ、ユーザーによってリアルタイムに制御されることができる統合されたモータースキルを備えることができる。このため、キャラクタは歩行、跳躍、バランスなどのような行動に対するモーター制御を学習することができ、モーションデータは、キャラクタのために改善することができる。
【００６３】
モーター制御のためのモーターコントローラは、コントローラ間の自発的な遷移および非自発的な遷移を許容する有限状態機械に統合されることができる。図４は、コントローラ間の遷移を統制する有限状態機械の一例である。図４は、それぞれのコントローラに対応する複数のノードと、コントローラ間の遷移可能性を示す複数のエッジで構成された有限状態機械を示している。
【００６４】
ユーザーは、所望するキャラクタのアクションの遷移を明示したり、外部からの力を直接的にキャラクタに加えることによってキャラクタを制御することができる。例えば、バランスコントローラへの遷移は、キャラクタの外部の力によってバランスを失ったときに非自発的に起こる。
【００６５】
このようなコントローラは、静的コントローラと遷移コントローラの２つのタイプに分類することができる。まず、静的コントローラは、状態空間の有限範囲を有している。このとき、明らかな接触が故意的に発生しなければ、状態空間において、静的コントローラの作用は、キャラクタの状態が範囲内で変化する。すなわち、静的コントローラは、バランスが取れた状態でまっすぐに立っているような静的な行動、または歩行と走行のような周期的な行動を学習することができる。また、遷移コントローラは、１つの行動から他の行動に変化するモーションを起こす。例えば、歩行−開始コントローラまたは歩行−停止コントローラは、まっすぐに立っている行動から、動的に歩行する行動の間の変化を生成することができる。
【００６６】
１．コントローラ学習（Controller Training）
コントローラ学習とは、実際の人間のモーションに対する観察から与えられた任意の状態に必要な動作を推察する課程である。このとき、観察は、状態−動作軌道の集合として格納することができる。それぞれの状態−動作のペアは、実際の人間がｔ時刻の状態からｔ＋Δｔ時刻のポーズにどのように動いたかに対して記述することができる。
【００６７】
また、コントローラは、次時間インスタンスにキャラクタのターゲットポーズを入力して開始し、キャラクタの状態を得る関数として考慮することができる。出力ポーズは、キャラクタを動作させるためにＰＤサーボに伝達させることができる。このとき、キャラクタに対する新たな状態が与えられれば、状態空間から近いサンプルを選択し、所望するポーズのためのサンプルと出力ポーズを結合する簡単な回帰技術を用いることができる。
【００６８】
近いサンプルを選択するためには、モーションフレーム間の距離を測定しなければならず、モーションフレーム間の距離を測定するためには、モーションフレームの特性を考慮する必要がある。
【００６９】
１）関節角度：すべての関節角度において、差異点は距離計算のために考慮され、特性ベクトルに含むことができる。例えば、上半身に５つの関節を有し、下半身に６つの関節を有する動的モデルの場合、上半身の関節は下半身の関節よりも少ない加重値が適用されたり、時には無視されることがある。これは、上半身は下半身に比べ、二足モーションのバランスを取るのに、寄与が少ないためである。
【００７０】
２）ルート位置、速度、および方向：脊椎リンクが２つの太ももリンクと交わる場所であるルートノードの地面からの高さ、ルートノードの水平または垂直速度は特性ベクトルに含むことができる。しかしながら、ルートノードの水平座標は、フレーム間の距離が水平移動に対して変わらないことがあるため、無視することができる。まっすぐな姿勢で脊椎リンクの符号付きの方向も、特性ベクトルに含むことができる。
【００７１】
３）足の位置および速度：特性ベクトルは局部的であり、移動する座標系に対して、両足の位置および速度を含むことができる。座標系の原点はルートノードに固定することができ、脊椎リンクの方向は、座標軸を定義することができる。ルート位置と関節角度は、既に足の位置を反映するため、足の位置に対して既に十分な情報を有している。しかしながら、足の位置および速度は、他の特性に対する加重値を調整するために特性ベクトルに含ませることができる。
【００７２】
４）地面接触：環境に対する接触は、重要に認識されるモーションの特性である。このような地面接触に対する特性は、ブール特性（Boolean features）の配列によって記述することができる。二足のモーションのために、特性ベクトルは両足のかかとと足指を符号化するための４種類のブール値（Boolean value）を含むことができる。転倒したときに再び立ち上がるモーションは、より多数のブール特性が要求される。
【００７３】
キャラクタシミュレーションシステムは、このような４種類の特性と加重値付与、二乗和などの多様な演算を用いて、モーションフレーム間の距離を計算することができる。
キャラクタをシミュレーションするための特性ベクトルＦ（ｔ）が与えられれば、コントローラは、トレーニングデータの復帰のために次時間インスタンスのターゲットポーズＰ（ｔ＋Δｔ）を決定する。このとき、コントローラは、近い順序でｋ個の隣接するサンプル（数６-１）を検索し、距離に反比例する加重値によって、サンプルで連結されたポーズを結合する。このとき、ターゲットポーズは、下記の数６のように示すことができる。
【００７４】
【数６】
2010527086.tif 000015
【００７５】
【数６−１】
2010527086.tif 000016
【００７６】
ここで、ｄiは（数６-２）、すなわち、キャラクタの現在状態とサンプルのうちのｉ番目のサンプルＦiとの距離を特性ベクトルＦ（ｔ）を用いて計算したものを意味する。また、ｗiは１／ｄiを、εは所定の定数をそれぞれ意味している。このとき、キャラクタシミュレーションシステムは、距離がε以下であれば、除算で除数が「０」とならないようにするため、サンプルのうち最も近いサンプルを選択することができる。
【００７７】
【数６−２】
2010527086.tif 000017
【００７８】
図５は、歩行コントローラの学習を説明するための一例である。第１行５０１において、本来のモーションデータは、二次元動的モデルに適合するように運動学的に変形され、シミュレーションのためのＰＤサーボから伝達される。しかしながら、キャラクタが数ステップ後には転倒することを示している。第２行５０２において、モーションデータは最適化され、転倒しない。第３行５０３において、歩行コントローラは、歩行モーションデータの集合を適切な改善なく簡単な回帰技術のみを用いて３０秒間学習した。このとき、キャラクタは、長期間安定的に歩行するが、結局は転倒することになる。最後に、第４行５０４において、歩行コントローラは、平地で無限に繰り返される歩行サイクルを転倒せずに実行することを示している。
【００７９】
すなわち、第３行５０３に示された歩行コントローラは、転倒しない静的サイクルの生成を保証しない。このようなコントローラの性能は、モーションデータとしてのトレーニングデータの多様性と配置に依存する。しかしながら、コントローラの所望する質を保証するトレーニングデータを得ることは極めて難しい。
【００８０】
２．コントローラ改善（Controller Improvement）
このような問題を解決するために、コントローラの適切な改善が必要となる。基本戦略は、シミュレータでコントローラを駆動させることによって、コントローラをテストすることである。もし、キャラクタが転倒したり、トレーニングデータの集合から過度に逸脱すれば、キャラクタが失敗の状況を避けることができるように、トレーニングデータの集合に新たな状態−動作の軌道を追加することができる。
【００８１】
すなわち、シミュレーションの間の転倒を導く可能性がある非正常な状況は、トレーニングデータの集合で最も近い隣接するサンプルの距離をモニタリングすることによって認知することができる。もし、キャラクタの状態とトレーニングデータで最も近い隣接するサンプル間の距離が、ユーザが確信する時間周期のために条件として指定した境界以上であれば、現在コントローラを用いてキャラクタの状態が安定したサイクルに復帰不可能であると決定することができる。
【００８２】
失敗の状況が一度認識されれば、失敗の状況を避けるために、モーションの開始のうち最も近いサイクルに全体のシステムをロールバックすることができる。このようにすることによって、現在のトレーニングデータを変形して、新たなサンプル軌道を統合することができる。すなわち、キャラクタシミュレーションシステムは、トレーニングデータの集合からキャラクタの現在状態に最も近い構成を有して開始するモーションのサイクルを選択することができる。このようなモーションの軌道は運動学的に変形され、変形されたモーションはキャラクタの現在状態で開始する。このとき、キャラクタの本来の軌道間の混同は、図１に示された変位マッピング１０１を用いることができる。
手抜き
キャラクタシミュレーションシステムは、変形された軌道が物理的に実行可能なように新たな軌道をトレーニングデータの集合に追加するため、上述した最適化プロセスを運用することができる。トレーニングデータに新たに追加された軌道は、回帰過程においてキャラクタが転倒しないようにする。このような方法によって、キャラクタシミュレーションシステムは、これ以上の失敗の状況が発生しないときまでコントローラを漸増的に改善することができる。
【００８３】
３．遷移制御（Transition Control）
２つの静的コントローラ（または周期的（ｃｙｃｌｉｃ）コントローラ）が与えられれば、キャラクタシミュレーションシステムは、静的コントローラ間に遷移コントローラを用いることができる。このとき、遷移コントローラは、十分なトレーニングデータの集合が利用可能なとき、静的コントローラを用いるのと同じ方法で用いることができる。
【００８４】
例えば、キャラクタがまっすぐに立った姿勢で歩き始め、６つのステップを進行してまっすぐに立った姿勢で停止することを繰り返してキャプチャする。このとき、歩行モーションデータの１番目のステップと最後の２つのスタップは、直立から歩行への遷移コントローラおよび歩行から直立への遷移コントローラに対する学習にそれぞれ用いることができる。
【００８５】
歩行サイクルに対する遷移コントローラは、中間の２つのステップによって学習することができる。しかしながら、シミュレーションされた行動のすべてのペア間に遷移モーションの大きい集合を得ることは極めて面倒であり、困難な作業である。
【００８６】
十分なトレーニングデータが不足な場合、存在するモーションを運動学的に混合することによってトレーニングデータを合成することもできる。例えば、歩行から走行への遷移サンプルは、歩行モーションのサイクルと走行モーションのサイクルを合成することによって得ることができる。すなわち、１つのサイクルがフェーディングされる間に他の１つのサイクルをフェーディングすることにより、２つのサイクルを簡単に混合することができる。
【００８７】
フェーディングの持続期間、キャラクタシミュレーションシステムは、２つのモーション間に一致する部分を探し、三角遷移関数を用いて関節の角度を柔らかく混合する。混合した関節角度は、足の滑りを引き起こすことがあるため、キャラクタシミュレーションシステムは、階層的な変位マッピングを用いて足の接触制約を強制する。
【００８８】
リアルタイムでの遷移制御は簡単である。一般的に、キャラクタが静的コントローラによって制御され、遷移コントローラによってキャラクタの行動が変化されると仮定すれば、シミュレーションされる間、キャラクタの現在状態と遷移コントローラのトレーニングデータの集合で最も近いサンプル間の距離をチェックする。もし、距離が確実な閾値以下であれば、遷移コントローラがキャラクタを制御する。遷移コントローラからの静的コントローラへの遷移は比較的扱い易い。しかしながら、遷移は、遷移コントローラが含むトレーニングデータセットが十分ではない場合、失敗することがある。いつでも失敗が認知されれば、遷移コントローラは、上述したようにコントローラ改良過程によって改良される。
【００８９】
図６は、本発明の一実施形態において、キャラクタシミュレーション方法を示すフローチャートである。
ステップＳ６１０において、キャラクタシミュレーションシステムは、変位マッピングおよびＰＤ制御を用いてモーションデータを最適化する。このとき、ステップＳ６１０は、図６に示すように、ステップＳ６１１〜ステップＳ６１３を含むことができる。
【００９０】
ステップＳ６１１において、キャラクタシミュレーションシステムは、入力モーションおよび変位パラメータ間の変位マッピングによってターゲットモーションを生成する。このとき、キャラクタシミュレーションシステムは、入力モーションに変位パラメータによって生成されたモーション変位の配列を付加してターゲットモーションを生成することができる。すなわち、モーション変位の配列の元素それぞれは、上記の数２のように示される鐘形基底関数を用いて計算されることができ、キャラクタシミュレーションシステムは、上記の数１のように入力モーションにモーション変位の配列を付加してターゲットモーションを生成することができる。
【００９１】
また、入力モーションｍ（ｔ）は、下記の数７のように示されることができ、モーション変位の配列ｄ（ｔ）は、下記の数８のように示されることができる。
【００９２】
【数７】
2010527086.tif 000018
【００９３】
ここで、ｎはキャラクタの関節の数を意味し、θ（ｔ）はｔ時間に関節が有する角度を意味する。
【００９４】
【数８】
2010527086.tif 000019
【００９５】
モーション変位の配列は、所定の数の基底関数がオーバーラップするように時間軸に沿って移動するウィンドウを用いて最適化することができる。このとき、ウィンドウは、モーションデータのロングクリップに対するシーケンスの一部分をカバーして最適化モーションフレームを分離することができる。
【００９６】
ステップＳ６１２において、キャラクタシミュレーションシステムは、ターゲットモーションおよび目的関数を用いてシミュレーションモーションを生成する。このとき、キャラクタシミュレーションシステムは、変位パラメータの初期値を選択し、互いに異なる変位パラメータの初期値に対して繰り返して局部的極値を確認し、局部的極値の値のうちの最小値を目的関数の最小値としてシミュレーションモーションを計算することができる。
【００９７】
目的関数は、上記の数５のように示されることができ、局部的極値は、所定の最適化方法を用いて確認することができる。このとき、最適化方法は、滑降シンプレックス法、パウエル法、または共役傾斜法のうちの１つの方法を用いることができる。
【００９８】
ステップＳ６１３において、キャラクタシミュレーションシステムは、モーションデータが含むすべての入力モーションに対して、ステップＳ６１１およびステップＳ６１２を繰り返して実行する。すなわち、モーションデータは、キャラクタのモーションの集合とすることができ、キャラクタシミュレーションシステムは、モーションを入力モーションとして順に最適化することができる。
【００９９】
図７は、最適化されたモーションに対する結果の一例である。左側列７０１は、モーションキャプチャによってキャプチャされた様子を、中間列７０２は、最適化されたモーションデータによってシミュレーションされた様子を、また右側列７０３は、本来のモーションデータによってシミュレーションされた様子をそれぞれ示している。このとき、右側列７０３の様子の大部分は転倒する結果を示しているが、最適化されたモーションデータによってシミュレーションされた中間列７０２の様子は、モーションキャプチャによってキャプチャされた様子とほぼ類似することが分かる。図７は、上から下に、キャラクタの歩行、走行、および跳躍の様子をそれぞれ示している。
【０１００】
ステップＳ６２０において、キャラクタシミュレーションシステムは、最適化されたモーションデータを用いてコントローラを学習し、キャラクタの行動を制御する。図６に示すように、ステップＳ６２０は、ステップＳ６２１〜ステップＳ６２３を含むことができる。
【０１０１】
ステップＳ６２１において、キャラクタシミュレーションシステムは、状態−動作軌道の集合を用いてコントローラ学習を実行する。
キャラクタシミュレーションシステムは、キャラクタに対する新たな状態が与えられれば、トレーニングデータの集合からその状態と近いサンプルを選択し、サンプルに含まれた結果ポーズを回帰を用いて結合してターゲットポーズを計算することができる。
【０１０２】
この場合、近いサンプルは、モーションフレーム間の距離を用いて選択することができ、モーションフレーム間の距離は、モーションフレームの特性を用いて測定することができる。モーションフレームの特性は、（１）関節角度、（２）ルートノードの位置、速度、方向、（３）キャラクタの足の位置、速度、および（４）地面接触のうちの少なくとも１つを含むことができる。すなわち、キャラクタシミュレーションシステムは、モーションフレームの特性および上記の数６を用いてモーションフレーム間の距離を計算することができる。
【０１０３】
ステップＳ６２２において、キャラクタシミュレーションシステムは、モーションデータおよび変位マッピングを用いてコントローラを改善する。ここで、キャラクタシミュレーションシステムは、まず、モーションデータが含むトレーニングデータの集合を用いてキャラクタの軌道をモニタリングする。キャラクタシミュレーションシステムは、モニタリング中にキャラクタの軌道がトレーニングデータの集合による軌道を所定の基準以上逸脱する場合、失敗の状況として認識することができ、失敗の状況を認識した時に、キャラクタのモーションのうちの最も近いサイクルに全体システムを戻すことができる。
【０１０４】
また、キャラクタシミュレーションシステムは、トレーニングデータの集合に新たな状態−動作の軌道を追加し、変位マッピングを用いて状態−動作の軌道を既存の軌道に混合することによってコントローラが改善されるようにできる。
【０１０５】
ステップＳ６２３において、キャラクタシミュレーションシステムは、コントローラを用いて行動に対する状態間の遷移を制御する。コントローラは、所定の範囲内でキャラクタの状態に対する変化を制御する静的コントローラおよび静的コントローラ間の遷移を制御する遷移コントローラを含むことができる。すなわち、キャラクタシミュレーションシステムは、状態間の遷移を制御するために、キャラクタがシミュレーションされる間、遷移コントローラのトレーニングデータの合計が含むサンプルのうちでキャラクタの現在状態と最も近いサンプル間の距離を測定し、距離がユーザによって設定された閾値以下である場合、キャラクタのモーションを制御することができる。図８は、コントローラ間の状態が遷移される様子を示す一例である。
【０１０６】
図９は、本発明の一実施形態において、キャラクタシミュレーションシステムの内部構成を説明するためのブロック図である。図９に示すように、キャラクタシミュレーションシステム９００は、モーションデータ最適化部９１０と、キャラクタ制御部９２０とを備える。
【０１０７】
最適化部９１０は、変位マッピングおよびＰＤ制御を用いてモーションデータを最適化する。このとき、最適化部は、モーションデータを最適化するために、図９に示すように、ターゲットモーション生成部９１１と、シミュレーションモーション生成部９１２と、繰り返し部９１３とを備えることができる。
【０１０８】
ターゲットモーション生成部９１１は、入力モーションおよび変位パラメータ間の変位マッピングによってターゲットモーションを生成する。このとき、ターゲットモーション生成部９１１は、入力モーションに変位パラメータによって生成されたモーション変位の配列を付加してターゲットモーションを生成することができる。すなわち、モーション変位の配列の元素それぞれは、上記の数２のように示される鐘形基底関数を用いて計算することができ、ターゲットモーション生成部９１１は、上記の数１のように入力モーションにモーション変位の配列を付加してターゲットモーションを生成することができる。
【０１０９】
また、入力モーションｍ（ｔ）は、上記の数７のように示すことができ、モーション変位の配列ｄ（ｔ）は、上記の数８のように示すことができる。
モーション変位の配列は、所定の鐘形基底関数がオーバーラップするように時間軸に沿って移動するウィンドウを用いて最適化されることができる。このとき、ウィンドウは、モーションデータのロングクリップに対するシーケンスの一部分をカバーして最適化モーションフレームを分離することができる。
【０１１０】
シミュレーションモーション生成部９１２は、ターゲットモーションおよび目的関数を用いてシミュレーションモーションを生成する。このとき、シミュレーションモーション生成部９１２は、変位パラメータの初期値を選択し、互いに異なる変位パラメータの初期値に対して繰り返して局部的極値を確認し、局部的極値の値のうちの最小値を目的関数の最小値としてシミュレーションモーションを計算することができる。
【０１１１】
目的関数は数５のように示すことができ、局部的極値は所定の最適化方法を用いて確認することができる。このとき、最適化方法は、滑降シンプレックス法、パウエル法、または共役傾斜法のうちの１つの方法を用いることができる。
【０１１２】
繰り返し部９１３は、モーションデータが含むすべての入力モーションに対し、ステップＳ６１１およびステップＳ６１２を繰り返して実行する。すなわち、モーションデータは、キャラクタのモーションの集合とすることができ、これによって、キャラクタシミュレーションシステム９００は、モーションを入力モーションとして順に最適化することができる。
【０１１３】
キャラクタ制御部９２０は、最適化されたモーションデータを用いてコントローラを学習し、キャラクタの行動を制御する。このとき、キャラクタ制御部９２０は、キャラクタの行動を制御するために、図９に示すように、コントローラ学習部９２１と、コントローラ改善部９２２と、遷移制御部９２３とを備えることができる。
【０１１４】
コントローラ学習部９２１は、状態−動作軌道の集合を用いてコントローラ学習を実行する。コントローラ学習部９２１は、次時間インスタンスに入力されたターゲットポーズによるキャラクタの状態を確認して結果ポーズを確認し、キャラクタに対する新たな状態が与えられれば、状態空間で近いサンプルを選択して出力ポーズと結合することができる。
【０１１５】
この場合、近いサンプルは、モーションフレーム間の距離を用いて選択することができ、モーションフレーム間の距離は、モーションフレームの特性を用いて測定することができる。モーションフレームの特性は、（１）関節角度、（２）ルートノードの位置、速度、方向、（３）キャラクタ足の位置、速度、および（４）地面接触のうちの少なくとも１つを含むことができる。すなわち、キャラクタシミュレーションシステムは、モーションフレームの特性および上記の数６を用いてモーションフレーム間の距離を計算することができる。
【０１１６】
コントローラ改善部９２２は、モーションデータおよび変位マッピングを用いてコントローラを改良する。ここで、コントローラ改善部９２２は、まず、モーションデータが含むトレーニングデータの集合を用いてキャラクタの軌道をモニタリングする。コントローラ改善部９２２は、モニタリング中にキャラクタの軌道がトレーニングデータの集合による軌道を所定の基準以上逸脱する場合、失敗の状況として認識することができ、失敗の状況と認識した時に、キャラクタのモーションのうちで最も近いサイクルに全体システムをロールバックすることができる。
【０１１７】
また、コントローラ改善部９２２は、トレーニングデータの集合に新たな状態−動作の軌道を追加し、変位マッピングを用いて状態−動作の軌道を既存の軌道に混合することによってコントローラが改善するようにできる。
【０１１８】
遷移制御部９２３は、コントローラを用いて行動に対する状態間の遷移を制御する。コントローラは、所定の範囲内でキャラクタの状態に対する変化を制御する静的コントローラおよび静的コントローラ間の遷移を制御する遷移コントローラを含むことができる。すなわち、遷移制御部９２３は、状態間の遷移を制御するために、キャラクタがシミュレーションされる間、遷移コントローラのトレーニングデータの集合が含むサンプルのうちキャラクタの現在状態と最も近いサンプル間の距離を測定し、距離がユーザによって設定された閾値以下である場合、キャラクタのモーションを制御することができる。
【０１１９】
このように、本発明に係るキャラクタシミュレーション方法またはキャラクタシミュレーションシステムを用いれば、実際の人間が繰り返して実行する行動から、記録されたモーションデータの集合によって実際の人間の行動を模倣するために物理的にシミュレーションされた二次元上の二足のキャラクタを提供することができ、モーションデータの集合を最適化によって改善し、簡素化された動的モデルであるキャラクタがバランスを維持するように関節を動かし、記録されたモーションの軌道をほぼ再生することができる。
【０１２０】
また、キャラクタの行動を制御する手段を最適化されたモーションデータの集合によって学習し、実際の人間の行動を確実に模倣することができ、キャラクタの互いに異なる行動に対する変化を可能にする統合されたフレームワークで学習される動的コントローラを構成することができる。これだけでなく、すべてのコントローラを学習することができ、ユーザが所望するモーションを実行するためにリアルタイムで動的にシミュレーションされ、相互的に制御される二足のキャラクタを提供することができる。
【０１２１】
なお、本発明に係る実施形態は、コンピュータにより実現される多様な動作を実行するためのプログラム命令を含むコンピュータ読取可能な記録媒体を含む。当該記録媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせて含むこともでき、記録媒体およびプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知であり使用可能なものであってもよい。コンピュータ読取可能な記録媒体の例としては、ハードディスク、フロッピー（登録商標）ディスク及び磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光記録媒体、フロプティカルディスクのような磁気−光媒体、およびＲＯＭ、ＲＡＭ、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれる。また、記録媒体は、プログラム命令、データ構造などを保存する信号を送信する搬送波を含む光または金属線、導波管などの送信媒体でもある。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行され得る高水準言語コードを含む。上述したハードウェア要素は、本発明の動作を実行するためにひとつ以上のソフトウェアモジュールとして作動するように構成することができ、その逆もできる。
【０１２２】
上述したように、本発明の好ましい実施形態を参照して説明したが、該当の技術分野において熟練した当業者にとっては、特許請求の範囲に記載された本発明の思想および領域から逸脱しない範囲内で、本発明を多様に修正および変更させることができることを理解することができるであろう。すなわち、本発明の技術的範囲は、特許請求の範囲に基づいて定められ、発明を実施するための最良の形態により制限されるものではない。
【図１】
2010527086.tif 000032
【図２】
2010527086.tif 000033
【図３】
2010527086.tif 000034
【図４】
2010527086.tif 000035
【図５】
2010527086.tif 000036
【図６】
2010527086.tif 000037
【図７】
2010527086.tif 000038
【図８】
2010527086.tif 000039
【図９】
2010527086.tif 000040
【国際調査報告】
2010527086.tif 000041
2010527086.tif 000042