布シミュレーション
午後は「Advanced Topcs on Clothing Simulaiton and Animation」のコースに参加。まずはHyenong-Seok Ko氏によるコースの概要の説明と布シミュレーションの基礎のレクチャーがありました。
布モデルはバネでつながった複数の粒子(Particle)で表され、点と点を繋げて描画することで実現します。この粒子の動きをシミュレーションすることが布シミュレーションの基礎になっています。さらに布の特徴である伸縮(Streatch)、せん断(Shear)、そして湾曲(Bending)を表す事が必要でこの式は単調(Monotonic)でなければいけません。
今までの布シミュレーションではHookeanモデルがありますが、この方法では布の重なりが多くなったとき(崩れ)に不安定になるという欠点があります。単一のモデルではこの欠点を解決することが難しいので、ここで2つのモデルを状態によって使い分けることで解決しています。布が崩れている状態(Buckling)でも安定して動作する手法としてIBM(Immediate Buckling Model)を使っています。
実際には布が崩れるまでには時間があるのですが、この間隔が非常に短いのと、式を単純にする為に布は瞬間的に崩れるものとして考えます。
続いてKwang-Jin Choi氏は、IBMの安定性を説き、よりリアルな布シミュレーションのためにDampingと空気抵抗を取り入れた方法の紹介をしました。デモではワンピースを着た女性が歩くシーンが紹介され、動きに合わせての服のしわの微妙な変化や、方向転換した時のスカートの裾が揺れる様などは実物と見分けがつかない程リアルなものでした。
残念ながら15秒のシーンのシミュレーションには30分程掛かるというものなので実際のゲームに使うにはもうしばらく掛かりそうです。
続いてRonald Fedkiw氏による「Impulse-Based Collision Resolution」なのですがFedkiw氏が会場に来るのが間に合わないとの事で変わりにReber Bridson氏が壇上に立ちました。ここでは布と他の剛体、布と布同士の衝突判定の手法についての説明がありました。これは2002年のSIGGRAPHで発表された「Robust Treatment of Collisions, Contact and Friction for Cloth Animation」の詳細が紹介されました。
布のシミュレーションの特徴として一般の剛体シミュレーションと違って非常に薄い物体を扱うことです。ここでは反発力(Repulsion Force)、ジオメトリ衝突(Geometric Collision)、そしてImpact Zoneといった手法を組み合わせで安定したシミュレーションを実現しています。
反発力とは布を1mm程度の厚さがあると設定して各粒子を移動させたときにこの厚みから離れるような力のことです。このことによって大量にある粒子の一つ一つを後に続く方法を使わずに済むことができ、劇的な最適化になります。氏によると99%がこの方法で解決することができると主張しています。
次に三角形同士、三角形対頂点、辺どうしの衝突処理、最後に複数の衝突を剛体としてあつかうImpact Zoneという手法を使います。
これらの3つの手法の組み合わせによって、処理速度の向上と、安定性の両方を実現しています。デモではFedkiw氏のサイトにあるムービーの他にもう1つ、両端を固定した布の上に棒を置き、その棒が回転すると布がねじれていくというムービーが紹介されました。
