(57)【要約】【課題】ＣＧアニメーションなどにおいて人間の自然な動作を生成できる動作生成システムの提供。【解決手段】本発明の動作生成システムでは、例えばモーション・キャプチャ・データを用いて仮想人間の動作を生成する。この場合、まず仮想人間の初期姿勢を決定し（Ｓ１０１）、終端効果器の位置を決定する（Ｓ１０２）。次に、終端効果器の位置および副骨格の構成を用いて、逆運動学により関節角度の変化量を計算する（Ｓ１０３）。最後に、算出された関節角度の変化量を用いて、仮想人間の動作データを生成し（Ｓ１０４）、ディスプレイなどに表示するための描画処理を行なう（Ｓ１０５）。主骨格の構成とは独立して柔軟に構成することができる副骨格を用いて動作を生成することにより、仮想人間の動作を人間の自然な動作により近づけることが可能となった。【選択図】図１
2004062692.tif 000002
【特許請求の範囲】
【請求項１】
可動関節を有する骨格構造によるモデルを用い、終端効果器の位置の変化量から各関節の角度の変化量を計算する動作生成システムであって、
前記骨格構造が、主骨格と副骨格の多重構造で構成されており、
副骨格の構造から計算される値により動作を計算することを特徴とする動作生成システム。
【請求項２】
請求項１記載の動作生成システムにおいて、
【数１】
2004062692.tif 000008
（ここで、ｘは終端効果器の位置を表す３次元ベクトルであり、３次元ベクトル関数Ｆ（ｑ）は主骨格の構造によって一意に決定される関数，ｑは角度をあらわすｎ次元ベクトル、Ｊ，Ｋは３×ｎ次行列で、Ｊ＝∂Ｆ（ｑ）／∂ｑであり、Ｊ†＝ＪＴ（ＪＪＴ）−１，Ｋ†＝ＫＴ（ＫＫＴ）−１であり、ｑ’は任意のベクトルで，関数Ｇ（ｑ’）は副骨格により決定される。）により動作を決定することを特徴とする動作生成システム。
【請求項３】
請求項２記載の動作生成システムにおいて、
前記副骨格は、ｍ個の副骨格を並列的に用いており、前記ヤコビ行列Ｋを、
【数２】
2004062692.tif 000009
としてｉ番目の副骨格の構造から計算される関数Ｇｉとそれに対応するベクトルｑｉ，および重み係数ｗｉを用いたｍ個のヤコビ行列の総和として構成することを特徴とする動作生成システム。
【請求項４】
請求項２記載の動作生成システムにおいて、
前記副骨格は、ｍ個の副骨格を再帰的に用いており、前記ヤコビ行列Ｋを、
【数３】
2004062692.tif 000010
としてｉ番目の副骨格の構造から計算される関数Ｇｉとそれに対応するベクトルｑｉをｍ段の階層的な構造として構成することを特徴とする動作生成システム。
【請求項５】
請求項１〜４のいずれかに記載の動作生成システムをコンピュータ・システムに構築させるコンピュータ・プログラム。
【請求項６】
請求項１〜４のいずれかに記載の動作生成システムをコンピュータ・シテムに構築させるコンピュータ・プログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＧアニメーションなどにおける人体等のモデル化と動作の生成に関する。
【０００２】
【従来の技術】
従来、ＣＧアニメーションなどにおいて、人物の自然な動作を生成するために、逆運動学を用いて動作を生成する方法が採用されている。これは、可動関節を有する骨格構造で仮想的な人体（以降「仮想人間」という）を構成し、終端効果器（ｅｎｄ−ｅｆｆｅｃｔｏｒ）と呼ばれる手先や足先の位置の変化量から各関節の角度の変化量を自動的に計算するものであり、従来の動作生成技術であるキーフレーム法やスケルトン法などにおいて用いられている方法である。
この方法によれば、例えば「手を動かす」という仮想人間の動作を生成する場合、終端効果器（手先）の位置の変化量を指定すれば、肩、肘、手首などの各関節の角度の変化量が自動的に計算されるため、各関節の位置や角度を別々に指定するよりも簡単に動作を生成することができる。
【０００３】
しかしながら、終端効果器の位置の変化量に対応する各関節の角度の変化量は無限に存在する。すなわち、通常は終端効果器の位置の空間自由度は、全関節の回転の自由度よりも小さいので、逆運動学の計算により求められる関節角度の変化量は冗長な成分を含んでしまう。
したがって、関節角度の変化量を一意に決定するには何らかの拘束条件を導入する必要がある。従来用いられている拘束条件には、例えば、角度の変化量の重み付き自乗和の値を最小とする拘束条件を用いる手法がある（Ｄ．　Ｅ．　Ｗｈｉｔｎｅｙ，　”Ｒｅｓｏｌｖｅｄ　Ｍｏｔｉｏｎ　Ｒａｔｅ　Ｃｏｎｔｒｏｌ　ｏｆ　Ｍａｎｉｐｕｌａｔｏｒｓ　ａｎｄ　Ｈｕｍａｎ　Ｐｒｏｓｔｈｅｓｅｓ”，　ＩＥＥＥＴｒａｎｓ．　Ｍａｎ−Ｍａｃｈｉｎｅ　Ｓｙｓｔｅｍｓ，　ＭＭＳ−１０　（２），　ｐｐ．４７−５３　（１９６９））。
また、求めるべき角度の変化量を、擬似逆行列解と零空間に射影されるベクトル成分に分離し、そのベクトル成分をエネルギー消費（Ｊ．　Ｍ．　Ｈｏｌｌｅｒｂａｃｈ，　Ｋ．　Ｃ．　Ｓｕｈ，　”Ｒｅｄｕｎｄａｎｃｙ　Ｒｅｓｏｌｕｔｉｏｎ　ｏｆ　Ｍａｎｉｐｕｌａｔｏｒｓ　ｔｈｒｏｕｇｈ　Ｔｏｒｑｕｅ　Ｏｐｔｉｍｉｚａｔｉｏｎ”，　ＩＥＥＥ　Ｊ．　ｏｆ　Ｒｏｂｏｔｉｃｓ　ａｎｄ　Ａｕｔｏｍａｔｉｏｎ，　ＲＡ−３　（４），　ｐｐ．３０８−３１６　（１９８７））、特異点回避（Ｙ．　Ｎａｋａｍｕｒａ　ａｎｄ　Ｈ．　Ｈａｎａｆｕｓａ，　”Ｉｎｖｅｒｓｅ　Ｋｉｎｅｍａｔｉｃ　Ｓｏｌｕｔｉｏｎｓ　ｗｉｔｈ　Ｓｉｎｇｕｌａｒｉｔｙ　Ｒｏｂｕｓｔｎｅｓｓ　ｆｏｒ　Ｒｏｂｏｔ　Ｍａｎｉｐｕｌａｔｏｒ　Ｃｏｎｔｒｏｌ”，　Ｊ．　ｏｆ　Ｄｙｎａｍｉｃａｌ　Ｓｙｓｔｅｍｓ，　Ｍｅａｓｕｒｅｍｅｎｔ　ａｎｄ　Ｃｏｎｔｒｏｌ，　１０８，　ｐｐ．１６３−１７１　（１９８６））、および関節可動域制約（Ｐ．Ｈ．Ｃｈａｎｇ，　”Ａ　Ｃｌｏｓｅｄ−Ｆｏｒｍ　Ｓｏｌｕｔｉｏｎ　ｆｏｒ　Ｉｎｖｅｒｓｅ　Ｋｉｎｅｍａｔｉｃｓ　ｏｆＲｏｂｏｔ　Ｍａｎｉｐｕｌａｔｏｒｓ　ｗｉｔｈ　Ｒｅｄｕｎｄａｎｃｙ”，　ＩＥＥＥ　Ｊ．　ｏｆ　Ｒｏｂｏｔｉｃｓ　ａｎｄ　Ａｕｔｏｍａｔｉｏｎ，　ＲＡ−３　（５），　ｐｐ．３９２−４０３　（１９８７））などの評価関数の最適化に用いる手法も提案されている。
【０００４】
しかしながら、これらの手法は主としてロボット制御を目的に提案されたものであり、これらの評価関数を適切に組み合わせて人間の自然な動作を生成するには、多くの試行錯誤が必要とされる。また、各個人に特有の癖や微妙な特徴を含んだ動作を生成するには、これらの評価関数だけではその表現力に限界がある。
【０００５】
【発明が解決しようとする課題】
本発明の課題は、従来技術である逆運動学を用いたスケルトン法を改良し、ＣＧアニメーションなどにおいて人間の自然な動作を生成できる動作生成システムを提供することである。
また、人間の自然な動作だけでなく、各個人に特有の癖や微妙な特徴も含んだ動作を生成できる動作生成システムを提供することも、本発明の課題である。
【０００６】
【課題を解決するための手段】
上記の課題を解決するために、本発明は、可動関節を有する骨格構造によるモデルを用い、終端効果器の位置の変化量から各関節の角度の変化量を計算する動作生成システムであって、前記骨格構造が、主骨格と副骨格の多重構造で構成されており、副骨格の構造から計算される値により動作を計算することを特徴とする動作生成システムである。
前記の動作生成システムは、
【数４】
ｄｑ＝Ｊ†ｄｘ＋（Ｉ−Ｊ†Ｊ）Ｋ†ｄｘ，Ｋ＝∂Ｇ（ｑ’）／∂ｑ’
（ここで、ｘは終端効果器の位置を表す３次元ベクトルであり、３次元ベクトル関数Ｆ（ｑ）は主骨格の構造によって一意に決定される関数，ｑは角度をあらわすｎ次元ベクトル、Ｊ，Ｋは３×ｎ次行列で、Ｊ＝∂Ｆ（ｑ）／∂ｑであり、Ｊ†＝ＪＴ（ＪＪＴ）−１，Ｋ†＝ＫＴ（ＫＫＴ）−１であり、ｑ’は任意のベクトルで，関数Ｇ（ｑ’）は副骨格により決定される。）により動作を決定することができる。
前記副骨格は、ｍ個の副骨格を並列的に用いており、前記ヤコビ行列Ｋを、
【数５】
2004062692.tif 000003
としてｉ番目の副骨格の構造から計算される関数Ｇｉとそれに対応するベクトルｑｉ，および重み係数ｗｉを用いたｍ個のヤコビ行列の総和とすることもできる。
また、前記副骨格は、ｍ個の副骨格を再帰的に用いており、前記ヤコビ行列Ｋを、
【数６】
Ｋｉ†＝Ｌｉ†＋（Ｉ−Ｌｉ†Ｌｉ）Ｋｉ＋１†
Ｋ†＝Ｋ１†，Ｋｍ†＝∂Ｇｍ（ｑｍ）／∂ｑｍ，Ｌｉ＝∂Ｇｉ（ｑｉ）／∂ｑｉ
としてｉ番目の副骨格の構造から計算される関数Ｇｉとそれに対応するベクトルｑｉをｍ段の階層的な構造として構成することもできる。
上記の動作生成システムをコンピュータ・システムに構築させるコンピュータ・プログラムや、そのコンピュータ・プログラムを記録した記録媒体も、本発明である。
【０００７】
【発明の実施の形態】
以下、図を用いて本発明の実施の形態を詳細に説明する。
ここでは、本実施形態のシステム構成をパーソナル・コンピュータを利用して構築することができるが、ハードウェアはこれに限らず、例えば画像生成表示処理に特化している家庭用ゲーム機などであってもよい。また、動作の主体となるキャラクターは人間をモデル化した仮想人間を想定しているが、人間以外の動物やその他の物体であってもよい。
本実施形態の動作生成システムでは、実際の骨格（以下「主骨格」という）と、主骨格とは別に仮想的に構成される副次的な骨格（以下「副骨格」という）によって仮想人間の人体を構成する。そして、仮想人間の動作を生成する際に、副骨格の構造を用いて、逆運動学による関節角度の変化量の計算を行なう。図１は本実施形態の動作生成システムの処理を示すフローチャートである。図２，図３は骨格構造や、主骨格構造，副骨格構造を示す図である。これらを用いて、動作生成システムにおける処理を説明する。
【０００８】
さて、図２は、骨格構造と関節角および終端効果器の位置の関係図である。剛体（骨の一本一本）を細長い楕円で、剛体と剛体の間をつなぐ回転可動関節を円で示している。灰色の網掛けの四角は手先や足先などの終端効果器である。
図２の骨格構造において、終端効果器の最初の位置をＸとする。このとき、それぞれの回転可動関節の角度はｑ１，ｑ２，ｑ３となっている。
本実施形態の動作生成システムでは、終端効果器の位置がＸからＸ’に移動するように位置の変化量を指定すると、副骨格の構造を用いてｑ１，ｑ２，ｑ３の角度の変化量を計算し、回転可動関節の新しい角度ｑ’１，ｑ’２，ｑ’３を決定する。
【０００９】
図３（ａ），（ｂ）は、主骨格と副骨格で構成した仮想人間のモデルである。黒い網掛けの四角形は、仮想人間の人体を構成する主骨格を示している。主骨格の各剛体の長さ等は、仮想人間をデザイン、設計する際にあらかじめ決定されるものである。
一方、太いほうの実線は仮想人間の副骨格を示している。図３においては、ひとつの主骨格に対してひとつの副骨格を構成しているが、副骨格は複数で構成してもよい。この副骨格は、主骨格とは独立に構成されるので、人間の動作のあらゆる特徴を仮想的な骨格構造として柔軟に埋め込むことが可能である。
また、主骨格の関節と副骨格の関節の対応関係を、細いほうの実線で示している。
図３（ａ）は、直立時の仮想人間のモデルであり、主骨格の関節と副骨格の関節との対応関係を見やすく示したものである。また、図３（ｂ）は歩行時の仮想人間のモデルであり、歩行動作における主骨格および副骨格の状態と、関節の対応関係を示している。
【００１０】
次に、図１のフローチャートを用いて、本実施形態の動作生成システムが仮想人間の動作を生成する処理の流れを説明する。
なお、ここでは、実際の人間の動作を計測したモーション・キャプチャ・データを用いて仮想人間の動作を生成する場合について説明する。
【００１１】
まず、仮想人間の初期姿勢を決定する（Ｓ１０１）。初期姿勢は、モーション・キャプチャ・データの初期姿勢を用いることができる。
次に、仮想人間の終端効果器の位置を決定する（Ｓ１０２）。例えば、モーション・キャプチャ・データを時間軸で区切って、区切りごとの終端効果器の位置を、仮想人間の終端効果器の位置として使用することができる。
次に、終端効果器の位置および副骨格の構成を用いて、仮想人間の関節角度の変化量を計算する（Ｓ１０３）。ここでの計算により、副骨格の関節角度の変化量および主骨格の関節角度の変化量が算出される。なお、具体的な計算方法については後で説明する。
次に、算出された主骨格の関節角度の変化量を用いて、上記（Ｓ１０２）で時間軸に区切った時点の、仮想人間の姿勢を生成する。さらに、その時点までの仮想人間の動作を補間して、動作データを生成する（Ｓ１０４）。動作の補間は、仮想人間の動作をなめらかにするために行なうもので、従来の補間アルゴリズムを使用することができる。
最後に、Ｓ１０４で生成した動作データに対して、ディスプレイなどに表示するための描画処理を行なう（Ｓ１０５）。
【００１２】
次に、本実施形態の動作生成システムが、副骨格の構造を用いて仮想人間の関節角度の変化量を計算する際の計算式について説明する。この計算式は、上述の図１のフローチャートにおいては、関節角度の変化量の計算（Ｓ１０３）として示した処理で用いられる計算式である。
【００１３】
仮想人間の全関節の回転自由度をｎとすると、その角度をあらわすｎ次元ベクトルｑ＝［ｑ１，ｑ２，．．．ｑｎ］Ｔ（Ｔは転置を表す）と、終端効果器の３次元空間での位置を表す３次元ベクトルｘ＝［ｘ１，ｘ２，ｘ３］Ｔとの間に、
【数７】
2004062692.tif 000004
という関係が成立する場合、位置ベクトルｘの微小変動は
【数８】
2004062692.tif 000005
のように表される。ただし、
【数９】
2004062692.tif 000006
は３×ｎのヤコビ行列である。
このとき、関数Ｆは人体を表す骨格の構造によって一意に決定される。ただし、骨格の構造とは、各関節の自由度と関節間の距離（すなわち人体の各部位の長さ）の情報を含むものとする。
【００１４】
従来技術である逆運動学では、擬似逆行列
【数１０】
Ｊ†＝ＪＴ（ＪＪＴ）−１
（−１は逆行列を表す）
を用いて、
【数１１】
ｄｑ＝Ｊ†ｄｘ…（１）
によって、終端効果器の位置の変化量ｄｘから全関節の角度の変化量ｄｑを自動的に計算する。ただしこの場合は、角度変化量の自乗和の値を最小とする条件が満たされることになる。
【００１５】
本実施形態では、式（１）の角度変化量の計算式を以下の形式に拡張する。
【数１２】
ｄｑ＝Ｊ†ｄｘ＋（Ｉ−Ｊ†Ｊ）Ｋ†ｄｘ，Ｋ＝∂Ｇ（ｑ’）／∂ｑ’…（２）
ただし、
【数１３】
Ｋ†＝ＫＴ（ＫＫＴ）−１
であり、ｑ’は任意のベクトルとする。また、関数Ｇ（ｑ’）は関数Ｆ（ｑ）を決定する主骨格とは異なる構造を取りうる副骨格から計算される。既存の手法では、他の拘束条件（例えば、特異点回避や関節可動域制約）からＫ†ｄｘに相当する部分を算出しているが、本手法では副骨格の構造から計算されるヤコビ行列Ｋの値と終端効果器の位置の変動ｄｘにより計算されるので、副骨格の構造と姿勢そのものが拘束条件のように振舞うことになる。
【００１６】
ここで、図４に示すフローチャートを用いて、上述の副骨格の構造等を決定する方法を、具体的に説明する。
関数Ｇ（またはＧｉ）を決定する副骨格の構造とその初期角度ｑ’（またはｑｉ）は任意に設定できる。ここで、式（２）（または、後述で説明する式（３）や式（４））を用いて計算される主骨格の関節角度の値が、実際の人間の動作を計測したモーション・キャプチャ・データの値と近づくように、副骨格の構造と初期姿勢を決定すれば、終端効果器の位置の変化から生成される関節運動にそのモーション・キャプチャ・データに含まれる人間の動作の自然さを反映させることが可能となる。
ここでは、シミュレーテッド・アニーリング法（ｓｉｍｕｌａｔｅｄ　ａｎｎｅａｌｉｎｇ　ｍｅｔｈｏｄ）を用いて副骨格を決定している手法を例として説明する。シミュレーテッド・アニーリング法とは、最適化問題に対する近似解法の一つである逐次改善法を変形した方法であり、従来から用いられている手法である。
【００１７】
まず人間の骨格を反映して決定する主骨格と副骨格を、同じ剛体接続構造と初期姿勢を有するものとし、モーション・キャプチャ・データから得られる終端効果器の軌道に沿って、副骨格の構造を用いて関節角度を計算する。次に、終端効果器の軌道上の同じ時点に相当するモーション・キャプチャ・データの関節角度と先に生成した関節角度の差分の自乗和によって、データの一致度を計算する。すなわち、この一致度は副骨格の構造を用いて生成した動作が、モーション・キャプチャ・データの動作とどの程度一致しているかを数値化するものである。
【００１８】
図４のフローチャートを用いて、副骨格の構造を生成する方法を詳細に説明する。
まず、副骨格のａ個の剛体部の長さを表す変数を
Ｌ＝｛ｌ１，…，ｌａ｝
全関節の総数ｂ個の回転自由度に対する初期角度を表す変数を
Ｑ＝｛ｑ１，…，ｑｂ｝
とする。
最初に、ＬとＱの値を、上述したように主骨格と同一の値に初期設定する（Ｓ４０１）。次に、乱数を用いてＬとＱの中から変数を数個だけランダムに選択（Ｓ４０２）し、変数がＬに含まれる場合は一定長さ（例えば、５インチ）だけ、Ｑに含まれる場合は一定角度（例えば、３０度）だけ増加または減少させる（Ｓ４０３）。ここで、値を増加させるか減少させるかは、選択された各変数に対して乱数を用いてランダムに決定する。次に、増加または減少させた値を用いて、上述したように計測した終端効果器の軌道を用いてモーション・キャプチャ・データとの姿勢誤差を計算し（Ｓ４０４）、現在値と比較する（Ｓ４０５）。そして姿勢誤差の値が減少した場合（Ｓ４０６においてＹｅｓの場合）にのみ、選択した変数群の値を更新する（Ｓ４０７）。
選択した変数群の値を更新した場合（すなわち、誤差が減少した場合（Ｓ４０６においてＹｅｓの場合））は、選択する変数群の個数を減らす（Ｓ４０８）。一方、誤差が減少しないで変数値が更新されない状態が続いた場合（すなわち、局所解に陥った場合）（Ｓ４０６においてＮｏの場合）は、選択する変数群の個数を増やす（Ｓ４０９）。
【００１９】
以後、
変数の選択（Ｓ４０２）→変数の増減の決定（Ｓ４０３）→姿勢誤差の計算（Ｓ４０４）→現在値との比較（Ｓ４０５）→変数値の更新（Ｓ４０７）または保留→選択する変数群の個数の更新（Ｓ４０８，Ｓ４０９）の処理を、あらかじめ指定した繰り返し回数（例えば、５０００回）に到達するまで、または姿勢誤差があらかじめ設定した閾値以下になるまで繰り返し（Ｓ４１０）、副骨格の最終的な値を得る。
【００２０】
ただし、複雑な動作に関してはそれを比較的単純な動作に時間軸に沿って区分けした後、それぞれの単純動作に対して個別に、図４のフローチャートに示した処理を行なうことが考えられる。
なお、ここでは仮想人間の動作の生成方法をシミュレーテッド・アニーリング法を用いた方法として説明したが、例えば遺伝アルゴリズムなど、その他の方法を用いてもよい。
【００２１】
また、副骨格の構造を人体の構造（主骨格）よりも複雑にすることも可能である。例えば、副骨格の剛体部分を複数の剛体部分に分割して回転可能な構造とすることにより副骨格の構造を複雑にする方法がある。
この方法を、図５を用いて説明する。図５（ａ），（ｂ）は、副骨格のある剛体部分を２個の剛体部分に分割する場合の説明図である。剛体を黒色の太線で、回転可動関節を円で示している。
図５（ａ）は分割前の副骨格の構造を示した図である。主骨格のそれぞれの剛体に副骨格の剛体が対応している。図５（ｂ）は、図５（ａ）のひとつの剛体ｘを、剛体ｘ１と剛体ｘ２に分割した後の副骨格の構造を示した図である。剛体ｘ１と剛体ｘ２の間には、新たな回転可動関節ｙが設置される。
このとき、その分割した剛体ｘ１，剛体ｘ２の長さおよび回転角度は、分割前の剛体ｘの長さおよび回転角度と一致するように初期設定する。
【００２２】
さて、上述のように副骨格の各関節の自由度は任意に設定できるが、その自由度の総和が主骨格の自由度の総和よりも大きい場合は、副骨格の中で主骨格に対応しない関節自由度が存在することになる。したがって、主骨格の余分な自由度に相当する行ベクトルがヤコビ行列Ｋから削除される。一方、副骨格の関節自由度の総和が主骨格の関節自由度の総和よりも小さい場合は、主骨格の中で副骨格に対応しない関節自由度が存在する。したがって、副骨格で不足する自由度に相当する行ベクトルが擬似逆行列Ｋ†に零ベクトルとして追加される。
【００２３】
さらに、式（２）で表される角度変化量の計算方法は以下の二通りの形式（並列形式での拡張、再帰形式での拡張）に拡張することができる。
（並列形式での拡張）
式（２）のヤコビ行列Ｋを、ｍ個の副骨格を並列的に用いて、
【数１４】
2004062692.tif 000007
としてｉ番目の副骨格の構造から計算される関数Ｇｉとそれに対応するベクトルｑｉ，および重み係数ｗｉを用いたｍ個のヤコビ行列の総和として構成する。
（再帰形式での拡張）
式（２）のヤコビ行列Ｋを、ｍ個の副骨格を再帰的に用いて、
【数１５】
Ｋｉ†＝Ｌｉ†＋（Ｉ−Ｌｉ†Ｌｉ）Ｋｉ＋１†
Ｋ†＝Ｋ１†，Ｋｍ†＝∂Ｇｍ（ｑｍ）／∂ｑｍ，Ｌｉ＝∂Ｇｉ（ｑｉ）／∂ｑｉ…（４）
としてｉ番目の副骨格の構造から計算される関数Ｇｉとそれに対応するベクトルｑｉをｍ段の階層的な構造として構成する。
なお、上記の二通りの形式は相互に組み合わせて用いることも可能である。
【００２４】
本実施形態の動作生成システムでは、動作の特徴が副骨格の構造とその初期姿勢として数値的に得られるので、それらの値を用いて他の種類の動作を生成することにより、異なる動作への特徴の移植が可能となる。また、関節間の距離（すなわち、人体部位の長さ）を適切に調整することにより、異なる大きさの人体に対しても動作の特徴を当てはめることができる。さらに、複数の異なる動作に対して得られた副骨格の構造と初期姿勢を適当に補間することにより、それらの特徴を融合させることも可能である。
【００２５】
次に、図６〜１３を用いて、従来の手法により生成した動作データと本実施形態の動作生成システムにより生成した動作データを比較して、本実施形態の効果を説明する。
なお、図６〜１３は、これらの動作データ（動画）を同じ瞬間に一時停止させた静止画像で示している。
【００２６】
図６〜８は、人間の歩行動作を比較するための図である。
図６は、実際の人間の歩行動作を計測してデータ化したモーション・キャプチャ・データである。
図７は、図６の歩行動作のモーション・キャプチャ・データに対して、従来手法である、計測データの足先軌道と角度変化量の自乗和の値を最小にする逆運動学で計算、生成した仮想人間の動作データである。図６のモーション・キャプチャ・データと比較すると、片方の足を前に出したときの、他方の足（図では左足）の膝の角度が、特に不自然になっている。
いっぽう、図８は、同じく図６のモーション・キャプチャ・データに対して、本実施形態の手法によって１つの副骨格を用いて計算、生成した仮想人間の動作データである。図７と比較すると、仮想人間の左足の膝は自然な角度になっており、図６のモーション・キャプチャ・データにより近い動作が生成されていることがわかる。
【００２７】
図９，図１０は、図６の歩行動作のモーション・キャプチャ・データを、足跡が変わるように終端効果器（足先）の軌道を変形させ、あらためて計算、生成した仮想人間の動作データである。
図９は、図７と同様の従来手法で計算、生成した仮想人間の動作データである。図７と同じように、左足の膝の角度に不自然さが目立っている。
いっぽう、図１０は、図８と同様の本実施形態の手法で計算、生成した仮想人間の動作データである。図８と同じように、仮想人間の左足の膝は図９に比較して自然な角度になっている。すなわち、本実施形態の手法を用いれば、終端効果器（足先）の軌道を変更したためにもとのモーション・キャプチャ・データとは異なっている動作においても、図８と同様に実際の人間に近い動作を生成することができる。
【００２８】
図１１〜図１３は、人間が荷物を持ち上げる動作における比較である。
図１１は、実際の人間が荷物を持ち上げる動作を計測してデータ化したモーション・キャプチャ・データであり、持ち上げる荷物に手をかけた瞬間の静止画像である。
図１２および図１３は、図１１の荷物を持ち上げる動作のモーション・キャプチャ・データに対して、その荷物の位置を前方に移動させて計算、生成した仮想人間の動作データである。
図１２は、図１１の荷物を持ち上げる動作のモーション・キャプチャ・データに対して、図７と同様の従来手法で計算、生成した仮想人間の動作データである。図１１のモーション・キャプチャ・データと比較すると、しゃがむために曲げられた両膝や、荷物に差し伸べた両腕の肩や肘の角度が、特に不自然になっている。
いっぽう、図１３は、図８と同様の本実施形態の手法によって１つの副骨格を用いて計算、生成した動作データである。図１２に比較して膝や肘は自然な角度になっており、図１１のモーション・キャプチャ・データにより近い動作が生成されていることがわかる。
【００２９】
【発明の効果】
本発明の動作生成システムによれば、主骨格とは独立して構成される副骨格を用いて関節角度の変化量の計算を行なうので、モーション・キャプチャ・データを用いて仮想人間の動作データを生成した場合、従来技術に比較して、実際の人間の動作（モーション・キャプチャ・データ）により近い関節角度が算出され、自然な動作を得ることができる。また、もとのモーション・キャプチャ・データに対して終端効果器の位置の変化量を変更して異なる動作を生成する場合でも、自然な動作を生成することができる。
また、副骨格は主骨格とは独立して構成されているため、人間の動作のあらゆる特徴を仮想的な骨格構造として柔軟に埋め込むことができる。その結果、各個人に特有の癖や微妙な特徴も含んだ動作を生成することも可能である。
【図面の簡単な説明】
【図１】本実施形態の動作生成システムが仮想人間の動作を生成する処理の流れを示したフローチャートである。
【図２】骨格構造と関節角および終端効果器の位置の関係図である。
【図３】（ａ）主骨格と副骨格で構成した仮想人間のモデル（直立時）である。
（ｂ）主骨格と副骨格で構成した仮想人間のモデル（歩行動作時）である。
【図４】副骨格の構造等を決定する処理の流れを示したフローチャートである。
【図５】（ａ）分割前の副骨格の構造を示した図である。
（ｂ）分割後の副骨格の構造を示した図である。
【図６】人間の歩行動作のモーション・キャプチャ・データである。
【図７】図６のモーション・キャプチャ・データに対して、従来手法により生成した動作データである。
【図８】図６のモーション・キャプチャ・データに対して、本実施形態の手法により生成した動作データである。
【図９】図６の歩行動作のモーション・キャプチャ・データの足跡を変形させ、従来手法により生成した動作データである。
【図１０】図６の歩行動作のモーション・キャプチャ・データの足跡を変形させ、本実施形態の手法により生成した動作データである。
【図１１】人間が荷物を持ち上げる動作のモーション・キャプチャ・データである。
【図１２】図１１のモーション・キャプチャ・データに対して、従来手法により生成した動作データである。
【図１３】図１１のモーション・キャプチャ・データに対して、本実施形態の手法により生成した動作データである。
【図１】
2004062692.tif 000011
【図２】
2004062692.tif 000012
【図３】
2004062692.tif 000013
【図４】
2004062692.tif 000014
【図５】
2004062692.tif 000015
【図６】
2004062692.tif 000016
【図７】
2004062692.tif 000017
【図８】
2004062692.tif 000018
【図９】
2004062692.tif 000019
【図１０】
2004062692.tif 000020
【図１１】
2004062692.tif 000021
【図１２】
2004062692.tif 000022
【図１３】
2004062692.tif 000023