第 63 回 情報処理学会 全国大会, 山口大学, 2001 年 9 月

4K-02 環境からの力学的な影響に応じたキャラクタアニメーションの生成
尾下 真樹

牧之内 顕文九州大学大学院システム情報科学府

九州大学大学院システム情報科学研究院

1. はじめに動力学シミュレーションによって人間の自然なアニメーションを生成しようという研究はこれまでにも多

近年、コンピュータゲームや Virtual Reality などのく行われている[1]。しかし、これまでのアプローチでアプリケーションにおいて、キャラクタの自然な動作は、ロボット工学の制御手法を応用し、キャラクタのをリアルタイムに生成する必要性が高まっている。現

関節トルクを制御していた。そのため、安定な制御を在、これらのアプリケーションでは、あらかじめ作成行うためには目標動作や環境からの影響に応じてコンしておいた動作データを連続的に生成することによっトローラのパラメタを調整する必要があった。また、てこのような要求に対応している。しかし、このよう環境からの影響に応じた能動的な制御については考慮なアプローチでは、キャラクタはあらかじめ決められされていなかった。提案手法では、角加速度空間で制た動作の繰り返ししかできないという問題点がある。

御を行うというアプローチによって、いかなる状況で特に、キャラクタに外部から力が加えられたり、他のも安定して目標動作に追従しつつ、環境からの影響にオブジェクトと衝突したりといった、環境からの力学応じて動的な制御を行うことを可能とした。

的な影響が加わった時には、それらの影響に応じた動作を動的に生成することが必要となる。

2. 多関節体の運動制御アルゴリズム

本稿では、このような環境からの力学的な影響に応本アルゴリズムは、各時刻において、与えられた目じて、人間の自然な動作をリアルタイムに生成するた

標動作と動力学計算にもとづいて、キャラクタの各関めの手法を提案する。本手法では、動作データを単純節の角加速度を計算する。目標動作は、各関節の角度に再生するのではなく、与えられた動作データを目標の時間関数として与えられる。本アルゴリズムでは、動作として、目標動作に追従するようにキャラクタの制御全体を追従制御と動的制御の２段階に分ける。

関節角加速度を制御し、動力学シミュレーションによ2.1. 追従制御って実際の動作を生成する。基本的には目標動作をそ追従制御では、目標動作に単純に追従するような各のまま実行するように制御し、環境からの力学的な影関節の角加速度を計算する。ここでは、関節相互の影響が加わる場合にのみ、関節に加わる負荷を軽減した響は考慮せず、動力学計算も使用しない。それぞれのり、全身のバランスを保ったりするような制御を行う。

関節ごとに、現在の関節角度・角速度と、目標動作のその結果、下半身の負荷を減らすように腕を振ったり、関節角度関数における次の極大・極小点の角度・角速バランスを保つように腰を動かしたり、といった動作度から、２点の間の軌道を３次関数で表し、その関数が実現される。本アプローチによって、既存の動作デの２回微分により、出力角加速度を決定する。本手法

ータやその作成ノウハウをそのまま活用しつつ、環境により、目標動作から離れている場合でも、目標動作との相互作用を含む自然な動作を動的に生成することに対してなめらかに収束するような制御が行える。

が可能となる。

2.2. 動的制御

Generating Character Animation Considering Interaction
with the Environments.
Masaki Oshita and Akifumi Makinouchi
Graduate School of Information Science and ElectricalEngineering, Kyushu University

動的制御では、追従制御で計算された角加速度を、動力学計算を用いて修正する。具体的には、関節負荷減少とバランス保持の２種類の制御を行う。ある関節に大きな負荷が加わる時には、全身の慣性モーメント

(a) 01354545(c) 35506565(b) 35455555(d) 03081818

図 1: スクワット動作への適用例。(a) 環境からの影響を追加しない場合の動作。(b) 重さ 5kg の荷物を背負った場合の動作。(c) 重さ 8kg の荷物を背負った場合の動作。(d) 3 フレーム目に左肩に衝撃を与えた場合の動作。
行列を考慮し、その関節負荷を減少するように他の関腕を前方に振るような制御が行われた。同じく、(c)8kg節の角加速度を制御する。
また、バランス制御のため、の荷物を背負った状態では、より大きく腕を振りなが全身から地面へのゼロモーメント点（ZMP）[2] が支ら、さらに、腕や腰の動きによってバランスを保つよ

点面の外部にある場合には、同じく、ZMP を支点面うな制御が行われた。そして、(d)動作の途中で衝撃がの内部に移動するような制御を行う。

与えられた時には、腕を振ることで全身のバランスをある関節の角加速度は、他の関節の負荷や全身のバランスに影響を及ぼすため、動的制御では、関節相互保ちつつ、筋力の許す最大限の加速度でもとの動作に追従するような制御が行われた。の影響を考慮する必要がある。しかし、全関節の影響１フレームの制御に必要とした計算時間は、平均でを考慮して最適化計算を行うと、多くの計算時間が必

1.2 ミリ秒、追従制御の場合のみで 0.7 ミリ秒、最も要となる。そこで、本手法では、人間の体を腕・背中・負荷が大きい場合で 3.1 ミリ秒であった。結果として、下半身の３つの部位に分類し、それぞれの部位を重要レンダリングやシミュレーションの時間を含め、アニな最小限の自由度によって順番に制御することとした。

メーションをリアルタイムに生成することができた。

3. 実験結果

4. まとめ

図 1 は、提案手法をスクワット動作に対して適用し本稿では、あらかじめ作成された動作データをもとた結果である。今回の実験では、36 自由度の骨格モデに、環境からの力学的な影響に応じてキャラクタを制ルを使用し、秒間 30 フレームのアニメーションを生御する手法を提案した。本手法は、コンピュータゲー成した。各画像の左上の数字はフレーム番号を表す。

ムなどへの応用に非常に有効であると考えられる。

各画像において、灰色のフィギュアが目標動作、白のファギュアは制御結果の動作を表している。また、関節から出ている矢印は、その関節の動的制御の回転方向と大きさを表している。(a)環境からの特別な影響がない場合には、追従制御のみが行われ、目標動作がほぼそのまま実現された。また、(b)背中に 5kg の荷物を背負った状態では、腰に加わる負荷を減少するために

参考文献[1] Jessica K. Hodgins, Wayne L. Wooten. David. C.
Brogan, James F. O'Brien, "Animating Human Athletes",
SIGGRAPH '95 Proceedings, pp. 71-78, 1995.
[2] Seyoon Tak, Oh-young Song, Hyeong-Seok Ko,"Motion Balance Filtering", Eurographics 2000, Computer
Graphics Forum, Vol. 19, No. 3, pp. 437-446, 2000.