最初が肝心

予定通りに朝7時に起床。エレベーターに乗ったら日本人の女の子が2人いました。2人とも同じ服装をして「待ち合わせ時間まであと一分しかないよ」と言った会話と服装から察するにガールスカウトのようでした。で、エレベーターがロビーについてドアが開いた途端に、その2人の女の子達はダッシュしてました(笑)。

私と同僚が女の子達が去っていった方向と逆にあるレストランに向かったら同じような格好をした少年少女達が集まってました。ダッシュしていった2人は無事に集合できたのかちょっと心配です(汗)。

朝食を摂った後はホテルからコンベンション会場まで直通のバスに乗って会場へ。カンファレンスを受けるためのバッジはあらかじめ郵送してもらったので、レジストレーションに並ぶことなく直接最初のコースにいきました。

物理と関節の関係

まずはSunil Hadap氏とVangelis Kokkevis氏による「Introduction to Articulated Rigid Body Dynamics」のコースに参加しました。


壇上で質問に答えるVangelis Kokkevis氏

一般的な物理シミュレーションライブラリは関節などの拘束(Constraint)のがない状態での単純なシミュレーション部分が根幹にあり、その上に関節などの拘束条件を処理する独立したライブラリがあるといったものが殆どです。

この独立した処理というのが実は問題でCPUの処理速度を無駄に使っているのはもちろん、精度の問題、そして顕著なのは基本物理処理部分が上に移動したいのに関節などの拘束条件処理部分は下に動きたいという違う結果をだしてしまうという、いわばケンカ状態に陥り、どちらかの計算精度の範囲を超えた瞬間にシミュレーション自体が破綻してしまうことがあります。ちなみに私が実際に経験したのではキャラクターが死んだ時のrag-dollの処理が地面に埋まった状態で始まるとプルプルと震え始め、最終的には空高く舞い上がってしまうというバグ(後に昇天バグと命名)がありました。

この問題を解決するために、安定性、速度、複数の階層構造の関節の対応、そして直感的なコントロールを実現するための手法としてFetherstone's Articulated Body Method(ABM)が紹介されました。

ABMの基礎となるのはSpatial Algebra、またはSpatial Notationと呼ばれるFetherstone氏が1987が発表したもので、空間の位置を示すのに1x6のベクトル、6x6の変換行列を使うことによってNewton-Euler法の運動方程式、 座標変換、そして複数のDOFを持った関節をあらわすことができます。

この基礎ができてしまうと、実際のABM実装は非常に単純なもので、擬似コードでたったの25行というものでした。


Sunil Hadap氏

また映画「Madagascar」で実際に使われたABM上での柔らかい物体(Soft Body)のシミュレーションも紹介されてました。

Vangelis Kokkevis氏はラップトップ上でリアルタイムで動くデモを紹介した後に、PS2上でEye-Toyを使って人形の手足をつかんでもてあそぶ(?)デモを紹介していました。

某物理ライブラリで拘束条件の問題に悩まされた私にとってはこれは今すぐにでも評価してみたい技術です。

前へ 次へ