イベント
[SQEXOC]データ駆動型プロシージャルアニメーションが目指す次世代のキャラクターモーション
冒頭,向井氏は最近の研究として3つの事例を,デモを交えて紹介した。
デモでは,CEDECで津田氏が解説していたようなヤコビアンを使った実装と,コレオグラフツールでよく見られる「手を引っ張ったときに,手が伸びきるまでは手だけ,手が伸びきると身体も動く」といった仕様のヤコビIKと四肢IKを融合した実装の2つの例が紹介された。10回の反復処理でだいたい収束するようで,計算時間自体は0.1ms程度のもので収まっているという。
続いて行われた力学的リターゲットのデモでは,すでにあるアニメーションデータに力学的なパラメータを加味してモーションを変える実験が示された。例えば,バットのスイングで,バットの重さが変わるとモーションがどう変わるかなどが再現できる。
モーションブレンドを柔軟にする研究では,2種類のモーションキャプチャデータをどのようにつなぐかで,スプラインカーブのパラメータを調整して動作の間に「溜め」を作るなどの調整が可能なことが示された。
なお,いずれも大量のモーションキャプチャデータを用意しておき,それらを主成分分析で圧縮したうえで,機械学習を使ってデータにないモーションを生成するといったことが前提となっている。このあたりについて,同氏による大量のモーションデータと機械学習によるアニメーションの研究については,CEDECで語られた内容を紹介した記事があるので,あらかじめそちらを軽く参照しておいていただけると,理解が深まるかもしれない。
まず,さまざまな局面での歩行動作(歩幅の違い,左右旋回や階段や坂の上り下りを含む)を40個ほどのモーションキャプチャから,それぞれを2歩でループするアニメーションデータにして蓄積しておく。このとき,「次の一歩での着地位置」はデータによってばらつくのだが,この着地点を仮想球として現在の足の位置から配置してみる。それを表示すると,なんとなく雲のような,次の一歩の候補地点が現れる。
それらの仮想球から,地面との接触を判定しつつ,移動方向と歩幅を使って最適なものを選択してやると(実際には複数のモーションが重みつきでブレンドされる),段差や穴などのある地形でも破綻なく自然に歩けるアニメーションが実現できることが示された。
技術的には,前計算でできることはすべてやるというのがキーとなる。どういうブレンド率だとどこに足がつくかをはじめ,40個ほどのサンプルのうち,統計的に使用頻度の高いものを絞り込んでおくなど,かなり積極的な前計算による軽量化が行われているようだ。
PCを用いたデモでは,重心の移動を加味した力学系を合成したモーション制御の例が示された。例えば,急にしゃがむ場合,重心移動を考慮しない場合はすぐに腰を落とした姿勢になるのだが,重力加速度などを考慮に入れると,姿勢変更中のアニメーションも滑らかに生成しなくてはならない。
実演では,力学を考慮していないモーションをゴーストで重ねて表示し,追加の動作がブレンドされている様子や,元のデータには入っていない横歩きなどが実現されていることが紹介された。
今後の大きな課題とされるAIとの融合でも,いろいろな研究が紹介されていた。場所ごとにモーションの種類を埋め込んだり,登録されているモーションをもとに次の行動を判断するようなAIなど,さまざまなアプローチのものが紹介されていた。途中で示された,レベルのダイナミックな変化に対応してパスファインディングを行うアルゴリズムの研究者はBungie Studioに行ったとのことで,将来的にHALOシリーズで賢い動きをする敵兵などとして目にすることもあるのかもしれない。
アニメーションのプロシージャル生成では,
「速く,安く,簡単に,自然な結果を」
というのが,一般的なゴールなのだが,向井氏が目指しているのは,単に動くだけでなく,見ていて面白く,気持ちのよい動きを作るにはどうすればよいのかに焦点を当てた研究を行っているという。今回示されたような,より多彩な動きを,より自然に行う技術の下地ができれば,キャラクターの動きや存在感自体も変わってくるだろう。そういったゲーム向きの技術が,より完成度を上げて投入されることに期待したい。
- この記事のURL: