ソフトボディ表現への対応
もう一つ、Windows版ロストプラネット2におけるDirectomputeの適用先は、ボスキャラのぷるぷる、ぶよぶよした表皮の動きを再現する「ソフトボディ」表現になる。
生物的な"動きの質感"を際立たせる目的で適用されることが決定し、実際にボスのどの部位をソフトボディに対応させるかは、アーティストチームが「柔らかさ」具合を、ボスキャラの3Dモデルの各部位に塗り分ける感じで指定している。なので、ボスキャラの表皮全てがぶよぶよと揺れるわけではなく、硬質な鎧的な表皮部分は揺れないようになっている。おもに腹下や関節等の折曲がり皮膚付近がとくに「柔らかさ」が強めに出る設定になっているようだ。
実際に、下に、ソフトボディをオフにしたPS3、Xbox 360版相当の映像と、Windows版ロストプラネット2におけるソフトボディ付きの映像を示す。
ボス自身の動きそのものが表皮を揺らす様や、プレイヤーキャラクタ達からの攻撃による衝撃によって表皮がブルブルと振動する様が見て取れるはずだ。
Windows版ロストプラネット2では、このソフトボディのシミュレーションは、Master's Thesis 2003においてJesper Mosegarrd氏が発表した「Realtime Cardiac Surgery Simulation」の理論を参考にして実装している。
この理論では、3つのバネのシミュレーションからソフトボディを実現する。
1つは表皮面のシミュレーション単位(例えばポリゴン)をバネで結んだSurface Springs(表皮バネ)。2つ目はボーンと表皮面をバネで結んだInner Springs(内部バネ)。3つ目は質点呼ばれるシミュレーション頂点とスキニング頂点を結ぶバネでこれはGoal Springs(目標パネ)と名付けられている。
前述したアーティストが設定するという「柔らかさ」は、このGoal Springsのパラメータに相当することになる。なお、Windows版ロストプラネット2では、質点は、ボスキャラモデルの頂点を質点にして、質点間を結ぶエッジをGoal Springsに設定しているとのことだ。
質点の運動、すなわちバネのシミュレーションには、ベルレ積分が採用されている。これは、テクスチャベースの水面のシミュレーションなどに、DirectX 8時代から用いられるGPU向けのシミュレーション手法で、次の位置は、前の位置と現在の位置との差分情報を元に求めるもので、いわゆる位置ベースの物理シミュレーションになる。ベルレ積分では、現在位置を直接動かしたとしても、この差分演算ですぐに速度が調節されることになるので、位置と速度がずれず、安定性が保証されるところにメリットがある。
このベルレ積分をバネに応用するということは、質点の位置を直接動かして処理することが出来ることになる。つまり、一本のバネ拘束を考えた場合、伸びている場合は、単に両側の質点を同じだけ、元の長さに戻っていくようにし、縮んでいる場合も同様に、元の位置に戻るような挙動を再現すればいいことになる。