JP3973995B2 - Animation creation system - Google Patents

Animation creation system Download PDF

Info

Publication number
JP3973995B2
JP3973995B2 JP2002239792A JP2002239792A JP3973995B2 JP 3973995 B2 JP3973995 B2 JP 3973995B2 JP 2002239792 A JP2002239792 A JP 2002239792A JP 2002239792 A JP2002239792 A JP 2002239792A JP 3973995 B2 JP3973995 B2 JP 3973995B2
Authority
JP
Japan
Prior art keywords
torque
animation
virtual human
motion
human
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002239792A
Other languages
Japanese (ja)
Other versions
JP2004078695A (en
Inventor
克寛 北嶋
淳 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Japan Science and Technology Agency
National Institute of Japan Science and Technology Agency
Original Assignee
Japan Science and Technology Agency
National Institute of Japan Science and Technology Agency
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Japan Science and Technology Agency, National Institute of Japan Science and Technology Agency filed Critical Japan Science and Technology Agency
Priority to JP2002239792A priority Critical patent/JP3973995B2/en
Publication of JP2004078695A publication Critical patent/JP2004078695A/en
Application granted granted Critical
Publication of JP3973995B2 publication Critical patent/JP3973995B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、CGによるアニメーション作成に関するものであり、特に人間のモデル(バーチャル・ヒューマン)を用いたCGによるアニメーション作成に関するものである。
【技術的背景】
コンピュータ・グラフィックスの主な応用としてバーチャル・リアリティ(仮想現実)がある。近年、コンピュータの処理速度は急速に向上しており、従来の仮想空間とは比較にならないほどの表現が可能となっている。コンピュータ内に構築された仮想空間において人間その他の動物を表現する問題がある。たとえば人間は、複雑な曲面や関節を持ち、それらが相互に影響しながら人体が表現される。このような人体を自然に動作させることには多くの困難が伴う。
三次元コンピュータ・グラフィックスの分野において、バーチャル・ヒューマン・アニメーションの作成は、重要なテーマの一つである。人体は200あまりの骨と大小400あまりの骨格筋で構成されており、直立状態で腕を上げるという一見単純に見える動作ですら、数十の筋肉を制御する必要がある。さらに、普段から実際の人体の動作を目にしているため、バーチャル・ヒューマンの動作におけるどんな小さな不自然さも強調されてしまう。これは人間の感覚による評価のため、動作の不自然さを測るには抽象的すぎ、自然な動作への修正が非常に困難となる。
リアルなバーチャル・ヒューマン・アニメーションを作成する上で、現在最も有効な手法は、モーション・キャプチャ装置を用いる手法である。しかし、役者の演技から得ることが困難なアニメーションは、現在でもキーフレーム補間法を用いて作成しなければならないし、モーション・キャプチャ・データにおいても、やはり、専門家による微修正は必須のものである。
しかし、モーション・キャプチャを使わずに動作を生成しようという試みも多くなされている。人間を力学的なモデルとしてとらえ、物理現象として人間の動きを仮想空間上でシミュレーションするものが主であるが、特定の動作に特化したものが多く、精巧なものほど計算量が多いのが通例である。このようなものに、筒口らによる歩行の道筋から歩行動作を生成する研究などがある。
このほかに、キャプチャデータの解析から力学的なモデルを生成し変更を加えるものなどもある。Jessica K. Hodginらによってモーション・キャプチャのデータを様々な体型のモデルに適応させる研究が行われている。
キーフレームを用いて仮想空間上のバーチャル・ヒューマンの動作を与える場合、期待した動作が現実における人間の動作として不自然になる。
【0002】
【発明が解決しようとする課題】
本発明の目的は、キーフレームによって制御されるバーチャル・ヒューマンから、物理法則上の不自然さを取り除くため、動力学による解析結果をモーション・データに反映させる手法の提案である。
【0003】
【課題を解決するための手段】
上記目的を達成するために、本発明は、パーツの接続関係によるモデルを用いて、アニメーションを作成するアニメーション作成システムであって、
前記モデルの動きをパーツ間の角度で表現したキーフレームから、該キーフレームを近似シンク関数により補間して、パーツ間の目標角度を決定する目標角度決定手段と、逆動力学計算で、目標角度を得るためのトルクを求めるトルク計算手段と、トルクが所定の範囲となるまで、前記目標角度を修正する角度修正手段とを備えることを特徴とする。
さらに、モデルの並進成分を、地面との相互作用で生成する並進成分計算手段を備えることができる。
これらのアニメーション作成システムをコンピュータ・システムに生成させるプログラムやプログラムを記録した記録媒体も本発明である。
【0004】
【発明の実施の形態】
本発明の実施形態を、図面を参照して詳細に説明する。
まず、本発明におけるバーチャル・ヒューマンの構造について述べる。
図1に、本発明で用いるバーチャル・ヒューマンの構成を示している。バーチャル・ヒューマンは体の各関節で区切った23個のパーツから構成し、パーツ間は最大3の回転自由度を持っている。それぞれのパーツは識別名、形状データ、重量および重心座標をもつ。すべてのパーツは、モデルデータに記述されたパーツ間の連結座標、初期姿勢、関節可動域によって拘束される。バーチャル・ヒューマンの各パーツ間の階層構造を図2に示す。これで分かるように、仙骨の位置からバーチャル・ヒューマンの各パーツの位置が決定される。
【0005】
バーチャル・ヒューマンの動作制御は、キーフレームにおける各関節の回転角度を与えることでおこなう。
キーフレームとは、バーチャル・ヒューマンの一連の動作の中で、その動作を特徴づけるいくつかの姿勢である。多くの場合は動作の転換部分(例えば、上げていた手を下げる)がキーフレームとして採用される。
キーフレームには各パーツの関節の角度情報と前フレームからの時間が含まれる。図3のような下げた頭を上げる動作を考えると、キーフレームになるのは、頭を下げているKeyAと頭を上げているKeyBで、下げた状態から上げた状態まで姿勢変化するのにどれだけ時間をかけるかを指定する。下げた状態と上げた状態と時間がわかれば、その間の状態AB00,AB01などの姿勢は計算で補間することができる。このようにして、下げた頭を上げるという動作を表現する方法がキーフレーム補間法である。図4にキーフレーム補間法を示す。キーフレーム間の動作の補間方法には、図4(a)に示す線形補間や図4(b)に示すB-spline関数等による補間などが考えられるが、動的に動作を生成することを視野に入れ、本システムではシンク関数をベースとした近似シンク関数補間法を用いる。
【0006】
近似シンク関数は、近傍4点の値について次式の関数を適用する。この近似シンク関数を図5に示す。
【数1】

Figure 0003973995
近傍4点の値をa,a,a,a、求めたい位置t(0≦t≦1)とすると、補間値は次式のようにスケーリングされた4つの近似シンク関数の和として求まる。
【数2】
Figure 0003973995
この手法による補間の様子を図6に示す。
【0007】
<バーチャル・ヒューマンの姿勢および動力学による解析>
キーフレーム補間のみを用いたアニメーションの作成では、ワールド座標系に対するバーチャル・ヒューマンの姿勢を指定する必要があるが、これは、歩行動作などの際に地面と足とのマッチングがうまくいかなくなるという問題の原因となる。これを回避するために、キーフレームでは各関節の回転成分のみを与え、姿勢のうち並進成分は地面との相互作用で生成する方法を採っている。同時に、バーチャル・ヒューマンの姿勢も、自動的に生成する。このようにすることで、バーチャル・ヒューマンの移動量および回転量によって生じる不自然な動作を回避することができる。
(バーチャル・ヒューマンの姿勢制御)
バーチャル・ヒューマンのワールド座標系における位置は重心を用いる。これは、抵抗や重力のない宇宙空間のような場所でのバーチャル・ヒューマンの姿勢変化を考えたときに、初速や外力がなければバーチャル・ヒューマンの重心位置は姿勢に関わらず一定であることに基づいている。
図7に示すように、バーチャル・ヒューマンの重心位置R(ベクトル)は、パーツデータに含まれるパーツ重心位置r(ベクトル)、パーツの質量mから次式を用いて求められる。
【数3】
Figure 0003973995
【0008】
(姿勢の並進成分)
バーチャル・ヒューマンの姿勢は、並進成分と回転成分に分けることができる。バーチャル・ヒューマンに外力が働いていない場合はバーチャル・ヒューマンの重心点が等速運動を続ける。重力下であれば重心点は放物線を描く。
(姿勢の回転成分)
バーチャル・ヒューマンの姿勢の回転成分は、重心点を中心に回転する量を表す。図8のような姿勢を考えた場合、重心点Gは接地点Aよりも前方にあり、接地点Aから受ける垂直抗力N(ベクトル)を重心方向の成分N(ベクトル)とその直交成分N(ベクトル)に分解したときのNによりバーチャル・ヒューマンは重心点回りの回転する力を受けることになる。これが姿勢の回転成分に基づく力である。
このようにして発生した重心点周りの回転成分を角運動量という形で扱う。次に、各パーツが相対的に運動している状態を、各パーツの重心を質点とし、外力を受け互いに内力を及ぼしあっている質点系と考える。ここで、この質点系の角運動量について考えると、i番目の質点の角運動量l(ベクトル)は、重心Gを原点とした位置ベクトルr、運動量p(p=mv)を用いてl=r×pと表され、lの時間的変化量はこの質点に働く力のモーメントの総和に等しいので、次式が成り立つ。
【数4】
Figure 0003973995
この総和がバーチャル・ヒューマンの全角運動量の時間的変化量となる。ここで、右辺第2項以下の内力については互いに打ち消しあうため、外力のモーメントの項だけが残り、質点系の全角運動量L(ベクトル)は次式で表される。
【数5】
Figure 0003973995
この式から次式を導くことができる。
【数6】
Figure 0003973995
この式に基づき、何らかの外力が働いたときに力のモーメントとして角運動量を変化させる。図8の場合、バーチャル・ヒューマンの角運動量L(ベクトル)はGA×Nだけ変化する。
【0009】
(接地)
人間が現実世界で立っている場合、地面から反発力を受けていることになる。これを参考に、バーチャル・ヒューマンが仮想空間内の地面に立つことができるように扱う。このとき、バーチャル・ヒューマンは地面にめり込むことも滑ることもないとする。
まず、バーチャル・ヒューマンは、地面の存在とは無関係に、重心の速度、加速度に従って並進、回転移動を行う。その結果、地面より下にパーツが存在する場合(図9(a)参照)、その最下点Cを接地点とし、Cの前フレームにおける位置Aとを結んだ直線と地面との交点Bを求め、最下点Aが交点Bと一致するように重心を移動する(図9(b)参照)。
このように処理することで、バーチャル・ヒューマンは地面にめり込むことなく接地することができる。バーチャル・ヒューマンの各関節の状態が次のフレームでも変化しない場合は、接地点を基準としたモーメント以外の運動量は接地によって失われたものとして扱う。
一方、バーチャル・ヒューマンの各関節の状態が次のフレームで変化する場合、移動しなかった分の運動量は次のフレームに持ち越して作用する。このように処理することでバーチャル・ヒューマンは接地面から十分な反発力を得ることができる。
【0010】
(跳躍)
前項における接地処理により、跳躍動作の生成を自然に発生させることができる。
図10(a)の状態のバーチャル・ヒューマンが図10(b)の状態に変化したとき、足が伸びたことで足が地面にめり込み、接地処理によって重心を図10(c)の位置へ移動させる。この重心の移動に対してバーチャル・ヒューマンの並進速度を求め、この値を初速度として跳躍が発生する。
バーチャル・ヒューマンは常に重力の影響を受けて落下しているので、この速度が小さい場合、つまり、図10(a)から図10(c)への変化に時間を要する場合は跳躍は発生せずに座っている状態から立ち上がるという動作になる。この変化が素早く行われれは跳躍が発生する。
このことは、立っている状態から座っている状態へ移行するときにも同様の効果を生み出す。図11において、直立状態(図11(a))から足を上げた状態(図11(b))への姿勢変化を考える。このとき重心は図10と同様に変化しない。図11(a)から図11(b)への姿勢変化が素早く行われた場合、つまり、重力による落下よりも足を曲げるのは速かった場合は、図11(c)のように宙に浮くことになる。姿勢変化がゆっくり行われる場合には、足は地面から離れることはなく、直立姿勢から座るという動作になる。
【0011】
<バーチャル・ヒューマンの動作の動力学による解析>
モーションデータは人間の動作として適切であると仮定していたが、入力モーションデータの解析および必要ならばその修正も行う手法について述べる。
一般に、キャプチャデータは人間が実際に演技したものであり十分信頼できるが、本手法を用いることにより、姿勢変化を行うために各関節がどれだけの出力トルクを必要としているのかを確認することが可能である。これは、キャプチャの際に演技した人間とは異なる身体的特徴を持つバーチャル・ヒューマンにそのモーションを当てはめる場合や、ほかの手法により生成されたモーションデータを適切な情報に修正する場合に適用することができる。
本手法では、このような解析及び修正を実現するために動力学を用いる。バーチャル・ヒューマンの運動方程式をもとに、各関節の角度・角速度・角加速度が与えられたときのトルクを計算する問題を逆動力学問題、逆に入力トルクが与えられたときの各関節の角度・角速度・角加速度を求める問題を順動力学問題という。
モーションデータを修正する場合、図12のような手順の処理が直感的でわかりやすい。しかし、順動力学計算はバーチャル・ヒューマンの自由度をnとした場合に、行列とベクトルを求めるために逆動力学計算をn+1回行い(S104)、n元の連立方程式を解き、数値積分を行うため(S108)、計算量は非常に大きなものとなっている。さらに出力トルクに修正が加えられなかった場合は計算しなかった場合と同じ結果が得られるだけであり、リアルタイムにアニメーションを生成することは困難である。
これを避けるため、図13に示した手順で、逆動力学計算によりトルクを求めて(S134)、トルクが規定範囲内かを調べ(S136)、規定範囲外のとき出力トルクが小さくなるように目標角度を修正する(S138)。このように、逆動力学計算によりトルクを求めることを繰り返すことで、出力トルクを規定の範囲内に収束させる方法を用いた。
逆動力学問題では運動方程式を直接取り扱うために、その解法は、運動方程式の導出法と密接に関係している。その解法は、例えば次の2通りの手法がある。
(a)ラグランジュ法
(b)ニュートン・オイラー法
(a)の方法は、バーチャル・ヒューマンのもつ各種エネルギー関数に注目し、それらをラグランジュの方程式に代入する方法である。
(b)は、バーチャル・ヒューマンの各関節に対する力・モーメントの釣り合い、作用・反作用に注目し、ニュートンの運動方程式とオイラーの運動方程式を用いることによって、バーチャル・ヒューマン全体の運動方程式を求めていく方法である。
両者は導出過程における物理的着目点が異なっているだけであり、最終的には全く同じ運動方程式が得られる。したがって、逆動力学問題の解法としてどちらのアプローチをとるかという問題は、計算効率のよさや直感的なわかりやすさなどを考慮して決定すればよい。
さて、この手法を用いることで、順動力学を用いた場合に、ある特定の関節のトルクのみを制限したときにおこる不自然な動きを防ぐことができる。例えば、図14(a)から図14(b)へ姿勢変化するときに、関節B−Cのトルクを小さく修正したとする。このとき、順動力学を用いた手法では関節B−Cの出力トルク値を直接変更してしまうので、結果として得られるのは図14(c)のような関節B−Cが関節A−Cの回転方向とは逆に曲がったものになる。これは、関節B−Cには関節A−Cが回転することによって図14(c)のように逆に曲がってしまうことを防ぐためのトルクが必要であるにもかかわらず、そのトルクが小さく修正されてしまったためである。このような動作は物理的に正しいものであり、間違ったものではないが、バーチャル・ヒューマンのトルク抑制の結果として適切なものとはいえない。このようなケースでは、図14(d)のように関節A−Cの回転が小さくなることによって関節B−Cが姿勢を維持するために発生するトルクが抑制されることが望ましい。
【0012】
<適用例>
以上の手法を用い、バーチャル・ヒューマンのバーチャル・スペース内での跳躍、回転、着地の生成、及び、出力トルクを制限したバーチャル・ヒューマンによる入力モーションデータを目標としたアニメーションの生成を行うシステムを開発した。このシステムを用いることにより生成されるアニメーションとして、視覚的にその効果が確認しやすい題材として、宙返りのアニメーションを生成したものを適用例として示す。
まず、宙返りのアニメーションを生成するために入力されたモーションデータによるバーチャル・ヒューマンの姿勢変化を図15に示す。このデータは関節の角度変化情報のみで構成されているため、バーチャル・ヒューマン全体としての回転は行われていない。
以下に関節角度変化グラフおよびトルク変化グラフ,生成したアニメーションの連続画像を示す。
図16は角度変化グラフ(トルク制限なし),図17はトルク変化グラフ(トルク制限なし)である。図18は角度変化グラフ(トルク制限10),図19はトルク変化グラフ(トルク制限10)である。図20〜図24は実行画面である。
適用例において、入力したモーションデータ(図15参照)は、トルクの修正をしない状態で宙返りをうまく行えるようにキーフレームを作成したものである。このモーションのトルク変化(図16参照)を見ると、時間100の付近でもっともトルクが大きくなっており、これは連続画像と見比べると、ちょうど跳躍して体を小さく折り畳む部分(11から16)であることがわかる。入力モーションの跳躍は、跳躍準備段階の屈伸時に重心を少し前に出す。重心が前にでているために跳躍のときに前に進む力と回転の力を得ることができる。そして、跳躍のときに得た回転をさらに速くするために体を小さく丸め、その後着地体制に入る。
トルク制限10のグラフ(図19)をみると、跳躍準備段階(時間70付近)のトルクが大きく制限されている。また、角度変化のグラフ(図18)からも上腕部の角度変化が遅れていることが確認できる。連続画像では腕の位置が明らかに制限なしのものと異なる(例えば、図22(a)と(c)の11参照)。さらに、跳躍時の動作も遅くなっているため、跳躍の高さが低くなり、得られた回転も少なくなったため、1回転する前に落下してしまっている(図23(a)および(c)参照)。
このように、バーチャル・ヒューマンのアニメーションを生成し、またトルクや関節角度の状態をグラフ化することで、バーチャル・ヒューマンの動作を解析することができ、また、トルク制限によるアニメーションの変化が自然なものであることが確認できた。
【0013】
本発明では、以下のことを行っている。
1)バーチャル・ヒューマン全体の回転と並進の生成
関節の角度情報のみで構成されるモーションデータを入力として、バーチャル・ヒューマンがバーチャルスペース内でどのような動作を行うかを、物理法則に基づいて求め、その結果をアニメーションとして表示する機能を実装した。また、この手法を用いて実際に跳躍し宙返りを行うモーションを入力し、宙返りのアニメーションを生成した。
2)動力学を用いたモーションデータの解析及び修正
入力されたモーションデータから動力学を用いることによりその姿勢変化に必要なトルクを算出し、モーションデータとともに出力トルクの情報をデータとしてファイルに出力しグラフ化して確認することができるようにした。また、モーションデータを目標モーションとして、指定した条件によって出力トルクを制限したバーチャル・ヒューマンがどのような姿勢変化を行うかをモーションデータとして生成した。
【0014】
【発明の効果】
本発明は、並進成分を含まない、バーチャル・ヒューマンの関節角度のみのキーフレーム・アニメーションを入力とし、バーチャル・ヒューマンのキーフレームに従った姿勢の変化による角運動量の変化や、地面との相互作用を考慮することで、バーチャル・ヒューマン全体としての、重心の並進や回転運動を作成する。さらに、動力学を導入することで、入力したキーフレーム・アニメーションをバーチャル・ヒューマンの身体能力に適した動作に自動修正し、実際の人間の動作により近いリアルな動作を作成することができる。
【図面の簡単な説明】
【図1】バーチャル・ヒューマンの構成を示す図である。
【図2】バーチャル・ヒューマンのデータの階層構造を示す図である。
【図3】キーフレーム補間を説明するための図である。
【図4】キーフレームの補間の例を示す図である。
【図5】近似シンク関数を示す図である。
【図6】近似シンク関数を用いた補間を説明する図である。
【図7】バーチャル・ヒューマンの重心を説明する図である。
【図8】バーチャル・ヒューマン全体の回転を示す図である。
【図9】バーチャル・ヒューマンと地面との接触を説明する図である。
【図10】跳躍に関する重心の移動を示す図である。
【図11】姿勢変化速度と結果の違いを示す図である。
【図12】順動力学を用いたトルク制御を示すフローチャートである。
【図13】逆動力学と繰り返し計算によるトルク制御を示すフローチャートである。
【図14】トルク修正による動きを説明する図である。
【図15】入力モーションを示す図である。
【図16】トルク制限無しの角度変化グラフである。
【図17】トルク制限無しのトルク変化グラフである。
【図18】トルク制限10の角度変化グラフである。
【図19】トルク制限10のトルク変化グラフである。
【図20】実行結果の連続画像(00〜04)を示す図である。
【図21】実行結果の連続画像(05〜09)を示す図である。
【図22】実行結果の連続画像(10〜14)を示す図である。
【図23】実行結果の連続画像(15〜19)を示す図である。
【図24】実行結果の連続画像(20〜24)を示す図である。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to animation creation by CG, and particularly relates to animation creation by CG using a human model (virtual human).
[Technical background]
The main application of computer graphics is virtual reality. In recent years, the processing speed of computers has been rapidly increasing, and expression that is incomparable with conventional virtual spaces is possible. There is a problem of expressing humans and other animals in a virtual space built in a computer. For example, humans have complex curved surfaces and joints, and the human body is expressed while they affect each other. There are many difficulties associated with operating such a human body naturally.
In the field of 3D computer graphics, the creation of virtual human animation is one of the important themes. The human body is composed of more than 200 bones and more than 400 large and small skeletal muscles. Even the seemingly simple movement of raising an arm in an upright state requires control of dozens of muscles. In addition, since we are seeing the actual movement of the human body, any small unnaturalness in the movement of the virtual human is emphasized. Since this is an evaluation based on human senses, it is too abstract to measure the unnaturalness of movement, and it is very difficult to correct it to natural movement.
Currently, the most effective method for creating a realistic virtual human animation is a method using a motion capture device. However, animations that are difficult to obtain from actors' performance must still be created using keyframe interpolation, and even in motion capture data, fine-tuning by experts is still essential. is there.
However, many attempts have been made to generate motion without using motion capture. The main ones are to treat humans as a dynamic model, and to simulate human movements in a virtual space as physical phenomena, but many are specialized for specific movements, and more sophisticated ones require more computation. It is customary. As such, there is a study of generating a walking motion from a walking path by Tsutsuguchi et al.
In addition, there are some that generate dynamic models from the analysis of captured data and make changes. Jessica K. Hodgin et al. Have been working on adapting motion capture data to models of various body types.
When a virtual human motion in a virtual space is given using a key frame, the expected motion becomes unnatural as a human motion in reality.
[0002]
[Problems to be solved by the invention]
An object of the present invention is to propose a technique for reflecting an analysis result by dynamics in motion data in order to remove the unnaturalness of physical laws from a virtual human controlled by key frames.
[0003]
[Means for Solving the Problems]
In order to achieve the above object, the present invention is an animation creation system that creates an animation using a model based on a connection relation of parts,
Target key determination means for determining the target angle between the parts by interpolating the key frame from the key frame expressing the movement of the model with the angle between the parts by an approximate sync function , and the target angle by inverse dynamics calculation Torque calculating means for obtaining a torque for obtaining the torque, and angle correcting means for correcting the target angle until the torque falls within a predetermined range.
Furthermore, the translation component calculation means which produces | generates the translation component of a model by interaction with the ground can be provided.
A program for causing a computer system to generate these animation creation systems and a recording medium on which the program is recorded are also the present invention.
[0004]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described in detail with reference to the drawings.
First, the structure of the virtual human in the present invention will be described.
FIG. 1 shows the configuration of a virtual human used in the present invention. A virtual human is composed of 23 parts separated by each joint of the body, and the part has a maximum of 3 rotational degrees of freedom. Each part has an identification name, shape data, weight, and barycentric coordinates. All parts are constrained by connecting coordinates between parts described in the model data, initial posture, and joint range of motion. FIG. 2 shows a hierarchical structure between each part of the virtual human. As can be seen, the position of each part of the virtual human is determined from the position of the sacrum.
[0005]
Virtual human motion control is performed by giving the rotation angle of each joint in the key frame.
A key frame is a number of postures that characterize the motion of a sequence of virtual human motions. In many cases, a shift part of operation (for example, lowering a hand that has been raised) is adopted as a key frame.
The key frame includes the angle information of the joints of each part and the time from the previous frame. Considering the action of raising the lowered head as shown in Fig. 3, the key frames are KeyA with the head lowered and KeyB with the head raised, and the posture changes from the lowered state to the raised state. Specify how much time you want to spend. If the lowered state, the raised state, and the time are known, the postures such as the states AB00 and AB01 between them can be interpolated by calculation. A method for expressing the action of raising the lowered head in this way is the key frame interpolation method. FIG. 4 shows a key frame interpolation method. As a method for interpolating the operation between key frames, linear interpolation shown in FIG. 4A and interpolation using a B-spline function shown in FIG. 4B, etc. can be considered. In view of this, this system uses an approximate sync function interpolation method based on the sync function.
[0006]
As the approximate sink function, the function of the following equation is applied to the values of four neighboring points. This approximate sink function is shown in FIG.
[Expression 1]
Figure 0003973995
Assuming that the values of the four neighboring points are a 0 , a 1 , a 2 , a 3 and the position t to be obtained (0 ≦ t ≦ 1), the interpolated value is the sum of four approximate sync functions scaled as follows: It is obtained as
[Expression 2]
Figure 0003973995
FIG. 6 shows the state of interpolation by this method.
[0007]
<Analysis based on attitude and dynamics of virtual human>
When creating an animation using only keyframe interpolation, it is necessary to specify the posture of the virtual human with respect to the world coordinate system, but this is a problem that the matching between the ground and the foot does not work well during walking movement etc. Cause. In order to avoid this, only the rotation component of each joint is given to the key frame, and the translation component of the posture is generated by interaction with the ground. At the same time, a virtual human posture is automatically generated. By doing so, it is possible to avoid an unnatural operation caused by the amount of movement and rotation of the virtual human.
(Virtual human attitude control)
The center of gravity is used for the position of the virtual human in the world coordinate system. This is because the center of gravity of the virtual human is constant regardless of the posture when there is no initial speed or external force when considering the posture change of the virtual human in a space such as space without resistance or gravity. Is based.
As shown in FIG. 7, the center of gravity R (vector) of the virtual human is obtained from the part center of gravity r i (vector) included in the part data and the mass m i of the part using the following equation.
[Equation 3]
Figure 0003973995
[0008]
(Translational component of posture)
The posture of the virtual human can be divided into a translation component and a rotation component. When no external force is applied to the virtual human, the center of gravity of the virtual human continues to move at a constant speed. Under gravity, the center of gravity draws a parabola.
(Rotational component of posture)
The rotation component of the virtual human posture represents the amount of rotation about the center of gravity. When the posture as shown in FIG. 8 is considered, the gravity center point G is ahead of the ground contact point A, and the vertical drag N (vector) received from the ground contact point A is expressed by the component N T (vector) in the gravity center direction and its orthogonal component N. The virtual human receives a rotating force around the center of gravity due to N R when it is decomposed into R (vector). This is a force based on the rotational component of the posture.
The rotational component around the center of gravity generated in this way is handled in the form of angular momentum. Next, the state in which each part is moving relatively is considered as a mass point system in which the center of gravity of each part is used as a mass point and external forces are applied to each other to exert internal forces. Here, when considering the angular momentum of this mass system, the angular momentum l i (vector) of the i-th mass point is calculated using the position vector r i with the center of gravity G as the origin and the momentum p i (p = mv). Since i = r i × p i, and the amount of change in l i with time is equal to the sum of the moments of the forces acting on the mass point, the following equation holds.
[Expression 4]
Figure 0003973995
This sum is the amount of temporal change in the total angular momentum of the virtual human. Here, since the internal forces below the second term on the right side cancel each other, only the moment term of the external force remains, and the total angular momentum L (vector) of the mass system is expressed by the following equation.
[Equation 5]
Figure 0003973995
From this equation, the following equation can be derived.
[Formula 6]
Figure 0003973995
Based on this equation, the angular momentum is changed as a moment of force when some external force is applied. In the case of FIG. 8, the angular momentum L (vector) of the virtual human changes by GA × N.
[0009]
(ground)
When humans are standing in the real world, they are receiving repulsion from the ground. Using this as a reference, we treat the virtual human so that he can stand on the ground in the virtual space. At this time, it is assumed that the virtual human does not sink into the ground or slide.
First, a virtual human translates and rotates according to the speed and acceleration of the center of gravity, regardless of the presence of the ground. As a result, when there is a part below the ground (see FIG. 9A), the lowest point C is the grounding point, and the intersection B between the straight line connecting the position A in the previous frame of C and the ground is The center of gravity is moved so that the lowest point A coincides with the intersection B (see FIG. 9B).
By processing in this way, the virtual human can be grounded without sinking into the ground. When the state of each joint of the virtual human does not change even in the next frame, the momentum other than the moment with respect to the contact point is treated as lost by the contact.
On the other hand, when the state of each joint of the virtual human changes in the next frame, the amount of motion that has not moved moves over to the next frame. By processing in this way, the virtual human can obtain a sufficient repulsive force from the ground plane.
[0010]
(Leaping)
The generation of jumping motion can be naturally generated by the grounding process in the previous section.
When the virtual human in the state of FIG. 10 (a) changes to the state of FIG. 10 (b), the foot sinks into the ground due to the extension of the foot, and the center of gravity moves to the position of FIG. 10 (c) by the grounding process. Let The translation speed of the virtual human is obtained for this movement of the center of gravity, and jumping occurs with this value as the initial speed.
Since a virtual human is always falling under the influence of gravity, when this speed is small, that is, when it takes time to change from FIG. 10 (a) to FIG. 10 (c), no jump occurs. It becomes the operation of getting up from the state of sitting. If this change takes place quickly, a jump will occur.
This produces a similar effect when transitioning from standing to sitting. In FIG. 11, a change in posture from an upright state (FIG. 11A) to a state where the foot is raised (FIG. 11B) is considered. At this time, the center of gravity does not change as in FIG. When the posture change from FIG. 11 (a) to FIG. 11 (b) is performed quickly, that is, when it is faster to bend the legs than dropping due to gravity, it floats in the air as shown in FIG. 11 (c). It will be. When the posture change is performed slowly, the foot does not leave the ground but sits in an upright posture.
[0011]
<Analysis of virtual human motion by dynamics>
Although motion data is assumed to be appropriate for human movement, a method for analyzing input motion data and correcting it if necessary will be described.
In general, capture data is a human performance and is reliable enough, but by using this method, it is possible to check how much output torque each joint needs to change posture. Is possible. This applies when the motion is applied to a virtual human whose physical characteristics are different from the human acting at the time of capture, or when the motion data generated by other methods is modified to appropriate information. Can do.
In this method, dynamics are used to realize such analysis and correction. Based on the virtual human equation of motion, the problem of calculating the torque when the angle, angular velocity, and angular acceleration of each joint is given is the inverse dynamics problem, and conversely when each input torque is given The problem of finding the angle, angular velocity, and angular acceleration is called the forward dynamics problem.
When correcting the motion data, the process of the procedure as shown in FIG. 12 is intuitive and easy to understand. However, in the forward dynamics calculation, when the degree of freedom of the virtual human is n, the inverse dynamics calculation is performed n + 1 times to obtain the matrix and the vector (S104), the n-ary simultaneous equations are solved, and the numerical value is calculated. Since the integration is performed (S108), the amount of calculation is very large. Further, when the output torque is not corrected, only the same result as when the calculation is not performed is obtained, and it is difficult to generate the animation in real time.
In order to avoid this, the torque shown in FIG. 13 is used to determine the torque by inverse dynamics calculation (S134), and it is checked whether the torque is within the specified range (S136). The target angle is corrected (S138). In this way, a method of converging the output torque within a specified range by repeatedly obtaining the torque by inverse dynamics calculation was used.
Since the inverse dynamics problem deals directly with the equation of motion, its solution is closely related to the method of deriving the equation of motion. There are, for example, the following two methods for solving the problem.
(A) Lagrangian method (b) Newton Euler method (a) is a method of paying attention to various energy functions of virtual humans and substituting them into Lagrangian equations.
(B) pays attention to the balance of force / moment for each joint of virtual human, the action / reaction, and uses Newton's equation of motion and Euler's equation of motion to find the equation of motion of the entire virtual human. Is the method.
They differ only in the physical focus in the derivation process, and ultimately the same equation of motion is obtained. Therefore, the question of which approach to take as a solution to the inverse dynamics problem may be determined in consideration of the efficiency of calculation and intuitive comprehension.
By using this technique, it is possible to prevent unnatural movement that occurs when only the torque of a specific joint is limited when forward dynamics is used. For example, when the posture changes from FIG. 14A to FIG. 14B, the torque of the joint BC is corrected to be small. At this time, in the method using forward dynamics, the output torque value of the joint B-C is directly changed. As a result, the joint B-C as shown in FIG. The direction of rotation is the opposite of the direction of rotation. This is because the joint BC needs a torque to prevent the joint A-C from bending as shown in FIG. 14C due to the rotation of the joint AC, but the torque is small. This is because it has been corrected. Such an operation is physically correct and not wrong, but is not appropriate as a result of virtual human torque suppression. In such a case, it is desirable to suppress the torque generated to maintain the posture of the joint BC by reducing the rotation of the joint AC as shown in FIG.
[0012]
<Application example>
Using the above methods, we developed a system that generates virtual humans' jumps, rotations, and landings in the virtual space, and animations that target the input motion data by virtual humans with limited output torque. did. As an animation generated by using this system, an example in which a flip-over animation is generated as a subject whose effect is easily confirmed visually is shown as an application example.
First, FIG. 15 shows the posture change of the virtual human by the motion data inputted to generate the somersault animation. Since this data is composed only of joint angle change information, the entire virtual human is not rotated.
The following shows the joint angle change graph, torque change graph, and continuous images of the generated animation.
FIG. 16 is an angle change graph (no torque limitation), and FIG. 17 is a torque change graph (no torque limitation). 18 is an angle change graph (torque limit 10), and FIG. 19 is a torque change graph (torque limit 10). 20 to 24 are execution screens.
In the application example, the input motion data (see FIG. 15) is a key frame created so that it can be successfully flipped over without torque correction. Looking at the torque change of this motion (see Fig. 16), the torque is the largest around time 100, which is the part that jumps and folds the body small compared to the continuous image (11 to 16). I know that there is. The jump of the input motion raises the center of gravity slightly before and after the jump preparation stage. Since the center of gravity is in front, it is possible to obtain forward force and rotational force when jumping. Then, in order to make the rotation obtained at the time of jumping faster, the body is rounded down and then enters the landing system.
Looking at the torque limit 10 graph (FIG. 19), the torque at the jump preparation stage (around time 70) is greatly limited. Further, it can be confirmed from the graph of the angle change (FIG. 18) that the angle change of the upper arm is delayed. In the continuous image, the position of the arm is clearly different from that without limitation (for example, see 11 in FIGS. 22A and 22C). Furthermore, since the jumping operation is also slow, the jumping height is lowered and the obtained rotation is reduced, so that it has dropped before one rotation (FIGS. 23A and 23C). )reference).
In this way, by generating a virtual human animation and graphing the torque and joint angle states, it is possible to analyze the movement of the virtual human, and the change in animation due to torque limitation is natural. It was confirmed that it was.
[0013]
In the present invention, the following is performed.
1) Based on the laws of physics, the behavior of the virtual human in the virtual space is determined by inputting the motion data consisting only of the angle information of the joints that generate the rotation and translation of the entire virtual human. And the function to display the result as animation was implemented. Also, using this technique, we input a motion that actually jumps and performs a somersault, and generated a somersault animation.
2) Analysis and correction of motion data using dynamics Calculate the torque required for the posture change by using the dynamics from the input motion data, and output the output torque information along with the motion data to a file. It was made possible to confirm by graphing. In addition, the motion data is generated as motion data, which indicates how the virtual human who has limited the output torque according to the specified conditions changes the posture.
[0014]
【The invention's effect】
The present invention uses a key frame animation of only the joint angle of a virtual human that does not include a translation component as input, changes in angular momentum due to posture changes according to the virtual human key frame, and interaction with the ground By taking into account, the translation and rotation of the center of gravity of the entire virtual human is created. Furthermore, by introducing dynamics, it is possible to automatically correct the input key frame animation to a motion suitable for the physical ability of the virtual human, and create a realistic motion closer to the actual human motion.
[Brief description of the drawings]
FIG. 1 is a diagram showing a configuration of a virtual human.
FIG. 2 is a diagram illustrating a hierarchical structure of virtual human data.
FIG. 3 is a diagram for explaining key frame interpolation;
FIG. 4 is a diagram illustrating an example of key frame interpolation;
FIG. 5 is a diagram illustrating an approximate sink function.
FIG. 6 is a diagram illustrating interpolation using an approximate sink function.
FIG. 7 is a diagram illustrating the center of gravity of a virtual human.
FIG. 8 is a diagram illustrating rotation of the entire virtual human.
FIG. 9 is a diagram illustrating contact between a virtual human and the ground.
FIG. 10 is a diagram showing the movement of the center of gravity related to jumping.
FIG. 11 is a diagram showing a difference between a posture change speed and a result.
FIG. 12 is a flowchart showing torque control using forward dynamics.
FIG. 13 is a flowchart showing torque control by inverse dynamics and iterative calculation.
FIG. 14 is a diagram for explaining a movement caused by torque correction.
FIG. 15 is a diagram illustrating an input motion.
FIG. 16 is an angle change graph without torque limitation.
FIG. 17 is a torque change graph without torque limitation.
18 is an angle change graph of torque limit 10. FIG.
19 is a torque change graph of the torque limit 10. FIG.
FIG. 20 is a diagram illustrating continuous images (00 to 04) as execution results.
FIG. 21 is a diagram illustrating a continuous image (05 to 09) as an execution result;
FIG. 22 is a diagram showing continuous images (10 to 14) as execution results;
FIG. 23 is a diagram illustrating continuous images (15 to 19) as execution results.
FIG. 24 is a diagram illustrating continuous images (20 to 24) as execution results.

Claims (4)

パーツの接続関係によるモデルを用いて、アニメーションを作成するアニメーション作成システムであって、
前記モデルの動きをパーツ間の角度で表現したキーフレームから、該キーフレームを近似シンク関数により補間して、パーツ間の目標角度を決定する目標角度決定手段と、
逆動力学計算で、目標角度を得るためのトルクを求めるトルク計算手段と、
トルクが所定の範囲となるまで、前記目標角度を修正する角度修正手段と
を備えることを特徴とするアニメーション作成システム。
An animation creation system that creates an animation using a model based on the connection relationship of parts,
Target key determination means for determining a target angle between parts by interpolating the key frame with an approximate sync function from a key frame expressing the movement of the model as an angle between parts;
Torque calculation means for obtaining torque for obtaining a target angle by inverse dynamics calculation,
An animation creating system comprising: angle correcting means for correcting the target angle until the torque falls within a predetermined range.
請求項1に記載のアニメーション作成システムにおいて、
さらに、モデルの並進成分を、地面との相互作用で生成する並進成分計算手段を備えることを特徴とするアニメーション作成システム。
The animation creation system according to claim 1,
Furthermore, the animation production system characterized by including the translation component calculation means which produces | generates the translation component of a model by interaction with the ground.
請求項1又は2に記載のアニメーション作成システムをコンピュータ・システムに生成させるプログラムを記録した記録媒体。  A recording medium recording a program for causing a computer system to generate the animation creating system according to claim 1. 請求項1又は2に記載のアニメーション作成システムをコンピュータ・システムに生成させるプログラム。  The program which makes a computer system produce | generate the animation production system of Claim 1 or 2.
JP2002239792A 2002-08-20 2002-08-20 Animation creation system Expired - Fee Related JP3973995B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002239792A JP3973995B2 (en) 2002-08-20 2002-08-20 Animation creation system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002239792A JP3973995B2 (en) 2002-08-20 2002-08-20 Animation creation system

Publications (2)

Publication Number Publication Date
JP2004078695A JP2004078695A (en) 2004-03-11
JP3973995B2 true JP3973995B2 (en) 2007-09-12

Family

ID=32022789

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002239792A Expired - Fee Related JP3973995B2 (en) 2002-08-20 2002-08-20 Animation creation system

Country Status (1)

Country Link
JP (1) JP3973995B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7573477B2 (en) * 2005-06-17 2009-08-11 Honda Motor Co., Ltd. System and method for activation-driven muscle deformations for existing character motion
JP2007058709A (en) * 2005-08-26 2007-03-08 Light Weight:Kk Image processor, image processing method and program
KR100856824B1 (en) * 2007-07-23 2008-09-05 재단법인서울대학교산학협력재단 Method and system for simulating character
CN111223170B (en) * 2020-01-07 2022-06-10 腾讯科技(深圳)有限公司 Animation generation method and device, electronic equipment and storage medium

Also Published As

Publication number Publication date
JP2004078695A (en) 2004-03-11

Similar Documents

Publication Publication Date Title
US11928765B2 (en) Animation implementation method and apparatus, electronic device, and storage medium
Liu et al. Realtime human motion control with a small number of inertial sensors
JP7061238B2 (en) Reinforcement learning to train characters using heterogeneous target animation data
Brubaker et al. Physics-based person tracking using the anthropomorphic walker
Metaxas Physics-based deformable models: applications to computer vision, graphics and medical imaging
Park et al. On‐line motion blending for real‐time locomotion generation
KR100483806B1 (en) Motion Reconstruction Method from Inter-Frame Feature Correspondences of a Single Video Stream Using a Motion Library
US8154544B1 (en) User specified contact deformations for computer graphics
Shum et al. Real-time physical modelling of character movements with microsoft kinect
US7057619B2 (en) Methods and system for general skinning via hardware accelerators
Ishigaki et al. Performance-based control interface for character animation
TW201215435A (en) Visual target tracking
Brubaker et al. Physics-based person tracking using simplified lower-body dynamics
Magnenat-Thalmann Modeling and simulating bodies and garments
Ho et al. Interactive partner control in close interactions for real-time applications
JP4848515B2 (en) Avatar motion control system, program and method thereof
US9652879B2 (en) Animation of a virtual object
JP3973995B2 (en) Animation creation system
Liu et al. Performance-based control interfaces using mixture of factor analyzers
US20120223953A1 (en) Kinematic Engine for Adaptive Locomotive Control in Computer Simulations
Xia et al. Recent advances on virtual human synthesis
Kry et al. Inverse kinodynamics: Editing and constraining kinematic approximations of dynamic motion
Oshita Multi-touch interface for character motion control using model-based approach
Lyard et al. Motion adaptation based on character shape
Akinjala et al. Animating human movement & gestures on an agent using Microsoft kinect

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20031031

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20040129

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070306

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070426

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070612

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070613

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100622

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110622

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120622

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120622

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130622

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees