(57)【要約】【課題】キーフレームによって制御されるバーチャル・ヒューマンから、物理法則上の不自然さを取り除くため、逆動力学による解析結果をモーション・データに反映させる。【解決手段】入力されたモーションデータから逆動力学を用いることにより、その姿勢変化に必要なトルクを算出し（Ｓ１３４）、モーションデータとともに出力トルクの情報をデータとしてファイルに出力した後、モーションデータを目標モーションとして、指定した条件によって出力トルクを制限し（Ｓ１３６）、バーチャル・ヒューマンがどのような姿勢変化を行うかをモーションデータ（Ｓ１４０）として生成した。これにより、バーチャル・ヒューマンの身体能力に適した動作に自動修正し、実際の人間の動作により近いリアルな動作を作成する。【選択図】図１３
2004078695.tif 000002
【特許請求の範囲】
【請求項１】
パーツの接続関係によるモデルを用いて、アニメーションを作成するアニメーション作成システムであって、
前記モデルの動きをパーツ間の角度で表現したキーフレームから、パーツ間の目標角度を決定する目標角度決定手段と、
逆動力学計算で、目標角度を得るためのトルクを求めるトルク計算手段と、
トルクが所定の範囲となるまで、前記目標角度を修正する角度修正手段と
を備えることを特徴とするアニメーション作成システム。
【請求項２】
請求項１に記載のアニメーション作成システムにおいて、
前記目標角度決定手段は、前記キーフレームを近似シンク関数により補間して目標角度を決定していることを特徴とするアニメーション作成システム。
【請求項３】
請求項１又は２に記載のアニメーション作成システムにおいて、
さらに、モデルの並進成分を、地面との相互作用で生成する並進成分計算手段を備えることを特徴とするアニメーション作成システム。
【請求項４】
請求項１〜３のいずれかに記載のアニメーション作成システムをコンピュータ・システムに生成させるプログラムを記録した記録媒体。
【請求項５】
請求項１〜３のいずれかに記載のアニメーション作成システムをコンピュータ・システムに生成させるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＧによるアニメーション作成に関するものであり、特に人間のモデル（バーチャル・ヒューマン）を用いたＣＧによるアニメーション作成に関するものである。
【技術的背景】
コンピュータ・グラフィックスの主な応用としてバーチャル・リアリティ（仮想現実）がある。近年、コンピュータの処理速度は急速に向上しており、従来の仮想空間とは比較にならないほどの表現が可能となっている。コンピュータ内に構築された仮想空間において人間その他の動物を表現する問題がある。たとえば人間は、複雑な曲面や関節を持ち、それらが相互に影響しながら人体が表現される。このような人体を自然に動作させることには多くの困難が伴う。
三次元コンピュータ・グラフィックスの分野において、バーチャル・ヒューマン・アニメーションの作成は、重要なテーマの一つである。人体は２００あまりの骨と大小４００あまりの骨格筋で構成されており、直立状態で腕を上げるという一見単純に見える動作ですら、数十の筋肉を制御する必要がある。さらに、普段から実際の人体の動作を目にしているため、バーチャル・ヒューマンの動作におけるどんな小さな不自然さも強調されてしまう。これは人間の感覚による評価のため、動作の不自然さを測るには抽象的すぎ、自然な動作への修正が非常に困難となる。
リアルなバーチャル・ヒューマン・アニメーションを作成する上で、現在最も有効な手法は、モーション・キャプチャ装置を用いる手法である。しかし、役者の演技から得ることが困難なアニメーションは、現在でもキーフレーム補間法を用いて作成しなければならないし、モーション・キャプチャ・データにおいても、やはり、専門家による微修正は必須のものである。
しかし、モーション・キャプチャを使わずに動作を生成しようという試みも多くなされている。人間を力学的なモデルとしてとらえ、物理現象として人間の動きを仮想空間上でシミュレーションするものが主であるが、特定の動作に特化したものが多く、精巧なものほど計算量が多いのが通例である。このようなものに、筒口らによる歩行の道筋から歩行動作を生成する研究などがある。
このほかに、キャプチャデータの解析から力学的なモデルを生成し変更を加えるものなどもある。Ｊｅｓｓｉｃａ　Ｋ．　Ｈｏｄｇｉｎらによってモーション・キャプチャのデータを様々な体型のモデルに適応させる研究が行われている。
キーフレームを用いて仮想空間上のバーチャル・ヒューマンの動作を与える場合、期待した動作が現実における人間の動作として不自然になる。
【０００２】
【発明が解決しようとする課題】
本発明の目的は、キーフレームによって制御されるバーチャル・ヒューマンから、物理法則上の不自然さを取り除くため、動力学による解析結果をモーション・データに反映させる手法の提案である。
【０００３】
【課題を解決するための手段】
上記目的を達成するために、本発明は、パーツの接続関係によるモデルを用いて、アニメーションを作成するアニメーション作成システムであって、
前記モデルの動きをパーツ間の角度で表現したキーフレームから、パーツ間の目標角度を決定する目標角度決定手段と、逆動力学計算で、目標角度を得るためのトルクを求めるトルク計算手段と、トルクが所定の範囲となるまで、前記目標角度を修正する角度修正手段とを備えることを特徴とする。
前記目標角度決定手段は、前記キーフレームを近似シンク関数により補間して目標角度を決定することができる。
さらに、モデルの並進成分を、地面との相互作用で生成する並進成分計算手段を備えることができる。
これらのアニメーション作成システムをコンピュータ・システムに生成させるプログラムやプログラムを記録した記録媒体も本発明である。
【０００４】
【発明の実施の形態】
本発明の実施形態を、図面を参照して詳細に説明する。
まず、本発明におけるバーチャル・ヒューマンの構造について述べる。
図１に、本発明で用いるバーチャル・ヒューマンの構成を示している。バーチャル・ヒューマンは体の各関節で区切った２３個のパーツから構成し、パーツ間は最大３の回転自由度を持っている。それぞれのパーツは識別名、形状データ、重量および重心座標をもつ。すべてのパーツは、モデルデータに記述されたパーツ間の連結座標、初期姿勢、関節可動域によって拘束される。バーチャル・ヒューマンの各パーツ間の階層構造を図２に示す。これで分かるように、仙骨の位置からバーチャル・ヒューマンの各パーツの位置が決定される。
【０００５】
バーチャル・ヒューマンの動作制御は、キーフレームにおける各関節の回転角度を与えることでおこなう。
キーフレームとは、バーチャル・ヒューマンの一連の動作の中で、その動作を特徴づけるいくつかの姿勢である。多くの場合は動作の転換部分（例えば、上げていた手を下げる）がキーフレームとして採用される。
キーフレームには各パーツの関節の角度情報と前フレームからの時間が含まれる。図３のような下げた頭を上げる動作を考えると、キーフレームになるのは、頭を下げているＫｅｙＡと頭を上げているＫｅｙＢで、下げた状態から上げた状態まで姿勢変化するのにどれだけ時間をかけるかを指定する。下げた状態と上げた状態と時間がわかれば、その間の状態ＡＢ００，ＡＢ０１などの姿勢は計算で補間することができる。このようにして、下げた頭を上げるという動作を表現する方法がキーフレーム補間法である。図４にキーフレーム補間法を示す。キーフレーム間の動作の補間方法には、図４（ａ）に示す線形補間や図４（ｂ）に示すＢ−ｓｐｌｉｎｅ関数等による補間などが考えられるが、動的に動作を生成することを視野に入れ、本システムではシンク関数をベースとした近似シンク関数補間法を用いる。
【０００６】
近似シンク関数は、近傍４点の値について次式の関数を適用する。この近似シンク関数を図５に示す。
【数１】
2004078695.tif 000003
近傍４点の値をａ０，ａ１，ａ２，ａ３、求めたい位置ｔ（０≦ｔ≦１）とすると、補間値は次式のようにスケーリングされた４つの近似シンク関数の和として求まる。
【数２】
2004078695.tif 000004
この手法による補間の様子を図６に示す。
【０００７】
＜バーチャル・ヒューマンの姿勢および動力学による解析＞
キーフレーム補間のみを用いたアニメーションの作成では、ワールド座標系に対するバーチャル・ヒューマンの姿勢を指定する必要があるが、これは、歩行動作などの際に地面と足とのマッチングがうまくいかなくなるという問題の原因となる。これを回避するために、キーフレームでは各関節の回転成分のみを与え、姿勢のうち並進成分は地面との相互作用で生成する方法を採っている。同時に、バーチャル・ヒューマンの姿勢も、自動的に生成する。このようにすることで、バーチャル・ヒューマンの移動量および回転量によって生じる不自然な動作を回避することができる。
（バーチャル・ヒューマンの姿勢制御）
バーチャル・ヒューマンのワールド座標系における位置は重心を用いる。これは、抵抗や重力のない宇宙空間のような場所でのバーチャル・ヒューマンの姿勢変化を考えたときに、初速や外力がなければバーチャル・ヒューマンの重心位置は姿勢に関わらず一定であることに基づいている。
図７に示すように、バーチャル・ヒューマンの重心位置Ｒ（ベクトル）は、パーツデータに含まれるパーツ重心位置ｒｉ（ベクトル）、パーツの質量ｍｉから次式を用いて求められる。
【数３】
2004078695.tif 000005
【０００８】
（姿勢の並進成分）
バーチャル・ヒューマンの姿勢は、並進成分と回転成分に分けることができる。バーチャル・ヒューマンに外力が働いていない場合はバーチャル・ヒューマンの重心点が等速運動を続ける。重力下であれば重心点は放物線を描く。
（姿勢の回転成分）
バーチャル・ヒューマンの姿勢の回転成分は、重心点を中心に回転する量を表す。図８のような姿勢を考えた場合、重心点Ｇは接地点Ａよりも前方にあり、接地点Ａから受ける垂直抗力Ｎ（ベクトル）を重心方向の成分ＮＴ（ベクトル）とその直交成分ＮＲ（ベクトル）に分解したときのＮＲによりバーチャル・ヒューマンは重心点回りの回転する力を受けることになる。これが姿勢の回転成分に基づく力である。
このようにして発生した重心点周りの回転成分を角運動量という形で扱う。次に、各パーツが相対的に運動している状態を、各パーツの重心を質点とし、外力を受け互いに内力を及ぼしあっている質点系と考える。ここで、この質点系の角運動量について考えると、ｉ番目の質点の角運動量ｌｉ（ベクトル）は、重心Ｇを原点とした位置ベクトルｒｉ、運動量ｐｉ（ｐ＝ｍｖ）を用いてｌｉ＝ｒｉ×ｐｉと表され、ｌｉの時間的変化量はこの質点に働く力のモーメントの総和に等しいので、次式が成り立つ。
【数４】
2004078695.tif 000006
この総和がバーチャル・ヒューマンの全角運動量の時間的変化量となる。ここで、右辺第２項以下の内力については互いに打ち消しあうため、外力のモーメントの項だけが残り、質点系の全角運動量Ｌ（ベクトル）は次式で表される。
【数５】
2004078695.tif 000007
この式から次式を導くことができる。
【数６】
2004078695.tif 000008
この式に基づき、何らかの外力が働いたときに力のモーメントとして角運動量を変化させる。図８の場合、バーチャル・ヒューマンの角運動量Ｌ（ベクトル）はＧＡ×Ｎだけ変化する。
【０００９】
（接地）
人間が現実世界で立っている場合、地面から反発力を受けていることになる。これを参考に、バーチャル・ヒューマンが仮想空間内の地面に立つことができるように扱う。このとき、バーチャル・ヒューマンは地面にめり込むことも滑ることもないとする。
まず、バーチャル・ヒューマンは、地面の存在とは無関係に、重心の速度、加速度に従って並進、回転移動を行う。その結果、地面より下にパーツが存在する場合（図９（ａ）参照）、その最下点Ｃを接地点とし、Ｃの前フレームにおける位置Ａとを結んだ直線と地面との交点Ｂを求め、最下点Ａが交点Ｂと一致するように重心を移動する（図９（ｂ）参照）。
このように処理することで、バーチャル・ヒューマンは地面にめり込むことなく接地することができる。バーチャル・ヒューマンの各関節の状態が次のフレームでも変化しない場合は、接地点を基準としたモーメント以外の運動量は接地によって失われたものとして扱う。
一方、バーチャル・ヒューマンの各関節の状態が次のフレームで変化する場合、移動しなかった分の運動量は次のフレームに持ち越して作用する。このように処理することでバーチャル・ヒューマンは接地面から十分な反発力を得ることができる。
【００１０】
（跳躍）
前項における接地処理により、跳躍動作の生成を自然に発生させることができる。
図１０（ａ）の状態のバーチャル・ヒューマンが図１０（ｂ）の状態に変化したとき、足が伸びたことで足が地面にめり込み、接地処理によって重心を図１０（ｃ）の位置へ移動させる。この重心の移動に対してバーチャル・ヒューマンの並進速度を求め、この値を初速度として跳躍が発生する。
バーチャル・ヒューマンは常に重力の影響を受けて落下しているので、この速度が小さい場合、つまり、図１０（ａ）から図１０（ｃ）への変化に時間を要する場合は跳躍は発生せずに座っている状態から立ち上がるという動作になる。この変化が素早く行われれは跳躍が発生する。
このことは、立っている状態から座っている状態へ移行するときにも同様の効果を生み出す。図１１において、直立状態（図１１（ａ））から足を上げた状態（図１１（ｂ））への姿勢変化を考える。このとき重心は図１０と同様に変化しない。図１１（ａ）から図１１（ｂ）への姿勢変化が素早く行われた場合、つまり、重力による落下よりも足を曲げるのは速かった場合は、図１１（ｃ）のように宙に浮くことになる。姿勢変化がゆっくり行われる場合には、足は地面から離れることはなく、直立姿勢から座るという動作になる。
【００１１】
＜バーチャル・ヒューマンの動作の動力学による解析＞
モーションデータは人間の動作として適切であると仮定していたが、入力モーションデータの解析および必要ならばその修正も行う手法について述べる。
一般に、キャプチャデータは人間が実際に演技したものであり十分信頼できるが、本手法を用いることにより、姿勢変化を行うために各関節がどれだけの出力トルクを必要としているのかを確認することが可能である。これは、キャプチャの際に演技した人間とは異なる身体的特徴を持つバーチャル・ヒューマンにそのモーションを当てはめる場合や、ほかの手法により生成されたモーションデータを適切な情報に修正する場合に適用することができる。
本手法では、このような解析及び修正を実現するために動力学を用いる。バーチャル・ヒューマンの運動方程式をもとに、各関節の角度・角速度・角加速度が与えられたときのトルクを計算する問題を逆動力学問題、逆に入力トルクが与えられたときの各関節の角度・角速度・角加速度を求める問題を順動力学問題という。
モーションデータを修正する場合、図１２のような手順の処理が直感的でわかりやすい。しかし、順動力学計算はバーチャル・ヒューマンの自由度をｎとした場合に、行列とベクトルを求めるために逆動力学計算をｎ＋１回行い（Ｓ１０４）、ｎ元の連立方程式を解き、数値積分を行うため（Ｓ１０８）、計算量は非常に大きなものとなっている。さらに出力トルクに修正が加えられなかった場合は計算しなかった場合と同じ結果が得られるだけであり、リアルタイムにアニメーションを生成することは困難である。
これを避けるため、図１３に示した手順で、逆動力学計算によりトルクを求めて（Ｓ１３４）、トルクが規定範囲内かを調べ（Ｓ１３６）、規定範囲外のとき出力トルクが小さくなるように目標角度を修正する（Ｓ１３８）。このように、逆動力学計算によりトルクを求めることを繰り返すことで、出力トルクを規定の範囲内に収束させる方法を用いた。
逆動力学問題では運動方程式を直接取り扱うために、その解法は、運動方程式の導出法と密接に関係している。その解法は、例えば次の２通りの手法がある。
（ａ）ラグランジュ法
（ｂ）ニュートン・オイラー法
（ａ）の方法は、バーチャル・ヒューマンのもつ各種エネルギー関数に注目し、それらをラグランジュの方程式に代入する方法である。
（ｂ）は、バーチャル・ヒューマンの各関節に対する力・モーメントの釣り合い、作用・反作用に注目し、ニュートンの運動方程式とオイラーの運動方程式を用いることによって、バーチャル・ヒューマン全体の運動方程式を求めていく方法である。
両者は導出過程における物理的着目点が異なっているだけであり、最終的には全く同じ運動方程式が得られる。したがって、逆動力学問題の解法としてどちらのアプローチをとるかという問題は、計算効率のよさや直感的なわかりやすさなどを考慮して決定すればよい。
さて、この手法を用いることで、順動力学を用いた場合に、ある特定の関節のトルクのみを制限したときにおこる不自然な動きを防ぐことができる。例えば、図１４（ａ）から図１４（ｂ）へ姿勢変化するときに、関節Ｂ−Ｃのトルクを小さく修正したとする。このとき、順動力学を用いた手法では関節Ｂ−Ｃの出力トルク値を直接変更してしまうので、結果として得られるのは図１４（ｃ）のような関節Ｂ−Ｃが関節Ａ−Ｃの回転方向とは逆に曲がったものになる。これは、関節Ｂ−Ｃには関節Ａ−Ｃが回転することによって図１４（ｃ）のように逆に曲がってしまうことを防ぐためのトルクが必要であるにもかかわらず、そのトルクが小さく修正されてしまったためである。このような動作は物理的に正しいものであり、間違ったものではないが、バーチャル・ヒューマンのトルク抑制の結果として適切なものとはいえない。このようなケースでは、図１４（ｄ）のように関節Ａ−Ｃの回転が小さくなることによって関節Ｂ−Ｃが姿勢を維持するために発生するトルクが抑制されることが望ましい。
【００１２】
＜適用例＞
以上の手法を用い、バーチャル・ヒューマンのバーチャル・スペース内での跳躍、回転、着地の生成、及び、出力トルクを制限したバーチャル・ヒューマンによる入力モーションデータを目標としたアニメーションの生成を行うシステムを開発した。このシステムを用いることにより生成されるアニメーションとして、視覚的にその効果が確認しやすい題材として、宙返りのアニメーションを生成したものを適用例として示す。
まず、宙返りのアニメーションを生成するために入力されたモーションデータによるバーチャル・ヒューマンの姿勢変化を図１５に示す。このデータは関節の角度変化情報のみで構成されているため、バーチャル・ヒューマン全体としての回転は行われていない。
以下に関節角度変化グラフおよびトルク変化グラフ，生成したアニメーションの連続画像を示す。
図１６は角度変化グラフ（トルク制限なし），図１７はトルク変化グラフ（トルク制限なし）である。図１８は角度変化グラフ（トルク制限１０），図１９はトルク変化グラフ（トルク制限１０）である。図２０〜図２４は実行画面である。
適用例において、入力したモーションデータ（図１５参照）は、トルクの修正をしない状態で宙返りをうまく行えるようにキーフレームを作成したものである。このモーションのトルク変化（図１６参照）を見ると、時間１００の付近でもっともトルクが大きくなっており、これは連続画像と見比べると、ちょうど跳躍して体を小さく折り畳む部分（１１から１６）であることがわかる。入力モーションの跳躍は、跳躍準備段階の屈伸時に重心を少し前に出す。重心が前にでているために跳躍のときに前に進む力と回転の力を得ることができる。そして、跳躍のときに得た回転をさらに速くするために体を小さく丸め、その後着地体制に入る。
トルク制限１０のグラフ（図１９）をみると、跳躍準備段階（時間７０付近）のトルクが大きく制限されている。また、角度変化のグラフ（図１８）からも上腕部の角度変化が遅れていることが確認できる。連続画像では腕の位置が明らかに制限なしのものと異なる（例えば、図２２（ａ）と（ｃ）の１１参照）。さらに、跳躍時の動作も遅くなっているため、跳躍の高さが低くなり、得られた回転も少なくなったため、１回転する前に落下してしまっている（図２３（ａ）および（ｃ）参照）。
このように、バーチャル・ヒューマンのアニメーションを生成し、またトルクや関節角度の状態をグラフ化することで、バーチャル・ヒューマンの動作を解析することができ、また、トルク制限によるアニメーションの変化が自然なものであることが確認できた。
【００１３】
本発明では、以下のことを行っている。
１）バーチャル・ヒューマン全体の回転と並進の生成
関節の角度情報のみで構成されるモーションデータを入力として、バーチャル・ヒューマンがバーチャルスペース内でどのような動作を行うかを、物理法則に基づいて求め、その結果をアニメーションとして表示する機能を実装した。また、この手法を用いて実際に跳躍し宙返りを行うモーションを入力し、宙返りのアニメーションを生成した。
２）動力学を用いたモーションデータの解析及び修正
入力されたモーションデータから動力学を用いることによりその姿勢変化に必要なトルクを算出し、モーションデータとともに出力トルクの情報をデータとしてファイルに出力しグラフ化して確認することができるようにした。また、モーションデータを目標モーションとして、指定した条件によって出力トルクを制限したバーチャル・ヒューマンがどのような姿勢変化を行うかをモーションデータとして生成した。
【００１４】
【発明の効果】
本発明は、並進成分を含まない、バーチャル・ヒューマンの関節角度のみのキーフレーム・アニメーションを入力とし、バーチャル・ヒューマンのキーフレームに従った姿勢の変化による角運動量の変化や、地面との相互作用を考慮することで、バーチャル・ヒューマン全体としての、重心の並進や回転運動を作成する。さらに、動力学を導入することで、入力したキーフレーム・アニメーションをバーチャル・ヒューマンの身体能力に適した動作に自動修正し、実際の人間の動作により近いリアルな動作を作成することができる。
【図面の簡単な説明】
【図１】バーチャル・ヒューマンの構成を示す図である。
【図２】バーチャル・ヒューマンのデータの階層構造を示す図である。
【図３】キーフレーム補間を説明するための図である。
【図４】キーフレームの補間の例を示す図である。
【図５】近似シンク関数を示す図である。
【図６】近似シンク関数を用いた補間を説明する図である。
【図７】バーチャル・ヒューマンの重心を説明する図である。
【図８】バーチャル・ヒューマン全体の回転を示す図である。
【図９】バーチャル・ヒューマンと地面との接触を説明する図である。
【図１０】跳躍に関する重心の移動を示す図である。
【図１１】姿勢変化速度と結果の違いを示す図である。
【図１２】順動力学を用いたトルク制御を示すフローチャートである。
【図１３】逆動力学と繰り返し計算によるトルク制御を示すフローチャートである。
【図１４】トルク修正による動きを説明する図である。
【図１５】入力モーションを示す図である。
【図１６】トルク制限無しの角度変化グラフである。
【図１７】トルク制限無しのトルク変化グラフである。
【図１８】トルク制限１０の角度変化グラフである。
【図１９】トルク制限１０のトルク変化グラフである。
【図２０】実行結果の連続画像（００〜０４）を示す図である。
【図２１】実行結果の連続画像（０５〜０９）を示す図である。
【図２２】実行結果の連続画像（１０〜１４）を示す図である。
【図２３】実行結果の連続画像（１５〜１９）を示す図である。
【図２４】実行結果の連続画像（２０〜２４）を示す図である。
【図１】
2004078695.tif 000009
【図２】
2004078695.tif 000010
【図３】
2004078695.tif 000011
【図４】
2004078695.tif 000012
【図５】
2004078695.tif 000013
【図６】
2004078695.tif 000014
【図７】
2004078695.tif 000015
【図８】
2004078695.tif 000016
【図９】
2004078695.tif 000017
【図１０】
2004078695.tif 000018
【図１１】
2004078695.tif 000019
【図１２】
2004078695.tif 000020
【図１３】
2004078695.tif 000021
【図１４】
2004078695.tif 000022
【図１５】
2004078695.tif 000023
【図１６】
2004078695.tif 000024
【図１７】
2004078695.tif 000025
【図１８】
2004078695.tif 000026
【図１９】
2004078695.tif 000027
【図２０】
2004078695.tif 000028
【図２１】
2004078695.tif 000029
【図２２】
2004078695.tif 000030
【図２３】
2004078695.tif 000031
【図２４】
2004078695.tif 000032