[GDC07#23]「Havok」と「PhysX」,2大物理エンジンの最新動向
GDC 2007 4日め。この日は,物理エンジン市場の2巨頭,HavokとAGEIAに関連したセッションが連続して行われたので,その内容をまとめてお知らせしたい。
■Ubisoftが語る ■「キャラクターアニメーション」のリアリティ向上
まずはHavok関連からだが,セッション自体はUbisoft Entertainment(以下Ubi)によるものだ。タイトルは「Havok Physics in Next Generation Ubisoft Games」(Ubiの次世代ゲームにおけるHavok物理エンジン)。タイトルからは包括的な内容を想像してしまうが,実際にはキャラクターアニメーションに関する,ピンポイントな印象のセッションとなっていた。
本題に入る前に,3Dゲームにおけるキャラクターアニメーションに関する簡単な予備知識として,キャラクターアニメーションを構成する3要素について,以下のとおり簡単にまとめてみたので,参考にしてほしい。
●モーション再生 一般的なキャラクターアニメーションは,それこそ3Dアニメーションソフトで作られた「剣をいったん上に振り上げて,その後振り下ろす」などといった特定の動きを“なぞる”だけなので,外界の物理的な問題にはまったく関与していない。モーション再生の“垂れ流し”のため,戦闘シーンなどにおいて,敵や味方に自キャラがめり込んだりする光景は,多くの人が普段よく目にしているだろう。それがモーション再生の限界でもある。
●ラグドール効果 キャラクターの動きに物理演算を取り入れ,主に吹き飛ばされたり,落下したりした場合に,重力や運動エネルギー,回転モーメントなどを適用して多関節構造の物理的な挙動をシミュレートするのがラグドール(ぬいぐるみ)効果である。この場合,外界との干渉もシミュレートされるが,キャラクター自体は自分の意思ではまったく動かないという特徴がある。ただ,Havokのラグドール処理では,一定の姿勢に戻ろうとする力を指定できるので,物理法則のみで動くわけではないラグドール処理というものも設定できる。
●インバースキネマティクス(IK,逆運動学) 一定時間後の姿勢を指定しておくと,現在の状態からその状態までを動きを補間してくれるのがインバースキネマティクスである。物理エンジンにおいては,もっぱら「他物体との干渉で動きが制限された場合の補正」で使われており,歩くアニメーションパターンをいろいろな状況で適用して説明されることが多い。例えば「階段」。インバースキネマティクスを使わない場合,歩いているキャラクターは階段を無視して(階段にめり込んで)前へ進んでいくだけだが,インバースキネマティクスを使うと,階段を上るアニメーションが実現される,といった具合だ。キャラクター側の能動的な動きを,物理的な干渉によって制限する場合に,よく使われるものとなっている。
身振り手振りを入れて解説するEddy Boxerman氏(Physics/Animation Programer, Ubisoft Entertainment)
|
以上を踏まえて本題。Ubiのセッションでは,同社のEddy Boxerman氏が,「キャラクターがどのようにほかの物体と干渉するか」を,デモを交えて説明した。このデモは,先ほど紹介したタイトルにもあるように,Ubiの次世代ゲームで使われるエンジンを利用したものだそうだ。
キャラクターモデルに物理演算を適用すると,地形に沿って滑り落ちたり,ほかのラグドールとの干渉を計算して積み重なったりといった処理を実現できる。これはすでに多くのシステム(≒3Dゲーム)で当たり前のように実装されているものだ。 ところが,「ラグドール処理で移動したあとに立ち上がる」といった,一見当たり前の動作が難しかったと,Boxerman氏は指摘する。「ラグドール処理で移動したあとに立ち上がる」場合,ラグドールとモーション再生の組み合わせになるわけだが,ラグドールでは外界の影響を忠実に反映するので,どのような姿勢で転がっているのか推測できない。仰向けに,大の字に倒れた状態を想定した起き上がりモーションを用意していても,投げ出された結果,身体を曲げて脚の間から頭が出ているような状態で転んでいる人に,そのモーションは適用できないわけで,起き上がるモーションを作ろうにも,どんなモーションを用意しておけばいいのか分からないのである。
解決策としては,いくつかの「ラグドールで起こりえるパターン」を用意しておいて,インバースキネマティクスで“つなぐ”処理が必要になるのだろうが,Boxerman氏によると,そういった処理を自然に見せるのは,案外難しかったそうだ。
そこでUbiでは,Havokの物理エンジンをベースにさまざまなシステムを組み合わせて,キャラクターと外界の関係を自然に処理しているという。独自のハンドルシステムを作ったり,アニメーションする2個の物体を同期させたり,物理的な相互作用を自然に取り入れられるようにしたりといった工夫がされているのだそうだ。
デモでは,キャラクターがさまざまなオブジェクトを手に取ったり,投げたり,開けたり,落としたり,ぶつかったりといった行動をとっている様子が示された。まあ,言ってしまえば「物理エンジンを使用したゲームで期待されそうな処理を並べているだけ」ではあるのだが,ゲームの根本部分にそういった処理を据える準備ができたということなのだろう。
物体との干渉なども自然である。CRTディスプレイを抱えたキャラクターを動かしたデモでは,手の位置を変えると,ディスプレイが傾いたり,持ち手が滑ったりするなどの処理も自然に行われていた。Boxerman氏は,インバースキネマティクスを無効化すると,途端に指がめり込んだりする例も見せてくれたが,モーション再生と基本的な物理処理,そしてインバースキネマティクスがうまく組み合わせられている感じだ。
また,内容そのものは地味だったが,なかなか興味深かったのは多人数での戦闘に関するデモである。例えば,あるキャラクターが別のキャラクターを殴った場合,殴ったほうも殴られたほうもモーションに影響を受けるわけだが,デモでは,キャラクターの身体の各部において,モーション再生とラグドール効果,力のかかったインバースキネマティクスといった処理が混在し,状況に応じて使い分けられていく様が示された。「起こるべきこと」がきっちり起こっている印象だ。 さすがに,Ubiがこの技術を使ってどのようなゲームを作ろうとしているのかまでは示されなかったが,リアリティという面で,Ubiの次世代タイトルは期待できそうだ。――そう思わせるセッションだった。
■これぞPhysX,これぞ物理効果!? ■なんでも破壊できる「Warmonger」
Ben Lard氏(左,Lead Engineer, NetDevil),Scott Brown氏(右,President, NetDevil)
|
続いてAGEIA PhysX関連のセッションだが,こちらは先日「Unreal Engine 3.0」ベースのFPS,「Warmonger - Operation: Downtown Destruction」(以下Warmonger)を発表したデベロッパ,NetDevilによるもの。「Next Generation Destruction in the UE3 Engine」(Unreal Engine 3.0における次世代の『破壊』)という題で,同タイトルを使ったデモを中心の展開となった。
Ubiのデモが,キャラクターの基本的な動作における完成度を追求した,ゲームプレイ物理を指向するものだったのに対し,NetDevilのテーマは「破壊」という効果物理。これは,HavokとAGEIA PhysXの指向性の違いをよく表しているように思える。トップダウンに物理エンジンの特性を揃えていくHavokに対し,AGEIA PhysXでは,具体的な処理を実現するための物理演算をボトムアップで取り入れている感じだ。
興味深いのは,今回の講演となっている「Destruction」つまり破壊が,単なる効果物理の枠組みを超え,ゲームの内容に大きく踏み込んだものになっている点である。 もちろん,AGEIA PhysXのデモタイトルとして投入された「Cellfactor: Combat Training」は,物理エンジンなしにはありえないゲームだったので,“効果物理がゲームの内容に踏み込んだ”とは言えるだろう。しかし,本来なら「余力がある環境では派手な処理をする」という感じの“添えもの”的な存在である効果物理を,無理矢理ゲーム性の主軸に据えたような印象は否めなかった。
では,Warmongerはその点どう違うのか。Warmongerでは,Unreal Engine 3.0とAGEIA PhysXを使うことで,画面内の物体ほぼすべてが破壊可能になっており,さらにクルマのボディなどといった金属板(Metal Cloth)の変形も効果的に使われている。 Lard氏とScott氏の話を聞く限り,物体が砕ける状態は,事前に計算されたものを使うようだが,それは物体のエディット時に自動的に生成できるようになっている。BSP(Binary Space Partitioning)を応用した破砕アルゴリズムが確立されているため,デザイナーの手を煩わせることはなくなったというわけだ。
デモはかなり“ちゃんと”動いており,敵キャラクターこそ出てこなかったものの,ゲームの完成度の高さが窺い知れるものだった。ちなみに,画面には「GDC 2007 BETA」という文字が見える
|
|
|
デモでは,街の建物など,文字どおりありとあらゆるものを壊しまくっていたのだが,例えばクルマを撃てば外板がどんどん変形していく。たた単に「撃った衝撃で崩れる」のではなく,撃ち終わってしばらくしてからズズっと崩れ出すところがあったり,あるいは,銃で撃っても壊れない物体でも弾痕は残っていたり,そんな物体も爆薬を使えば破壊できたり。 NetDevilが見せた「破壊」は,物理エンジン時代のゲームのあり方として正統的な流れの中にあるように思われる。
APIやアプローチは違うものの,インタラクティビティの追求という点では,UbiもNetDevilも似た方向性でゲームを作ろうとしているのが面白い。今後は,物理エンジンをより本格的に使用したゲームが続々と出てくることになるのだろう。なかなか楽しみだ。(aueki)
|
|
|
|
|