[CEDEC 2006#09][CEDEC 2006#09]AGEIA PhysXの概要,搭載カード「ELSA PHYNITE X100」情報も
Ageia Vice President Content Acquisitionのキャシー・ショウバック氏
|
今年のCEDECで行われた三つの物理演算関係のセッションのうちの一つ,AGEIA PhysXのセッションについて紹介しよう。残る二つがHavokとHavok FXのセッションなので,AGEIA Technologies系では唯一のセッションということになる。昨年行われたセッションでは,AGEIAのライブラリの構造など,かなりプログラマー寄りの話が行われていたのだが,今回は概要説明が主となっており,かなり分かりやすいものとなった。 ゲームのリリースでは先行するHavokの躍進が目立つのだが,次世代ゲームエンジンとして高い評価を得ているUnreal Engine 3に組み込まれているのがPhysXであり,PCのみならず,Xbox 360やプレイステーション3などでも今後の展開は見逃せない存在だ。 また,日本と韓国で独占販売権を持つエルザの製品に関する情報も少し出てきたので,あわせて紹介しておく。
さて,多くの人は,HavokとPhysXという2種類の物理エンジンで,なにがどれくらい違うのかという疑問を持っているのではないだろうか。 2種類の物理エンジンの概要解説のセッションを比べてみた結果からいうと,できること自体はあまり変わらないようだ。名前や位置付けは多少違っても,できること,やろうとしていることはだいたい同じという印象なのだが,Havokがゲームプレイ物理を中心としていて,特殊効果に特化したHavok FXはつい最近追加されたばかりなのに対し,AGEIAは効果系の物理を中心としているように思われる。これは,PPUでのハードウェア実行がウリのAGEIAでは,ハードウェアで処理しやすいことにも起因するのだろう。
■PhysXの得意技は流体と破壊? AGEIAのセッションでキーワードとして頻出していたのは流体と「破壊」だ。 流体についてはお馴染みのデモが紹介されたのだが,油というよりも粘度の高い水銀といった雰囲気の液体は,いま一つ不自然で,PhysX PPUを使用してこのレベルだとちょっとまだ実用段階ではないように思われる。 破壊については,当初からのデモでも知られているように,単に砕けたり,割れたりというだけでなく,鉄柱や金属板が力を受けてひん曲がるというのがポイントだ。ドイツで行われていたゲームショウ GC 2006には,周りのものをすべて壊せるといったゲームがいくつか展示されていたと思うが,基本的に「砕く」処理が主体となっているはずだ。 AGEIAのデモで使っている「曲がる柱」などは,ジョイントオブジェクトで実装されているという。要するに,多関節体で構成し,力に応じて変形させていくわけだ。金属板がひしゃげるデモなども同様に実装されているはずなのだが,曲がる可能性がある素材をすべてジョイントオブジェクトとして用意しておくと,処理的にはかなり重いことになるだろう。AGEIAでは,将来的には「変形可能」なオブジェクトに関しては,布(クロスシミュレーション)を中心として研究を続けているようだ。 とはいえ,基本となるのは,ごく普通のリジッドボディ,すなわち剛体で,City of Villainsでは数千のリジッドボディが使われているという。 壊し方というか,壊れるものの作り方としては,基本的に壊れた形状を作っておいて,破片を寄せ集めることになる。一つの物体につき,数十個の破片を作っておいて,力の加わり方に応じて分離させていく。単純に全部を一度に分裂させるのではなく,壊れた破片がほかの部分を壊していくといったダイナミックな表現も可能だ。 また,数十の破片に分離したとしても,描画の際のDrawPrimitiveコール(Direct3Dでパフォーマンスを下げる最大の悪者)は一つにまとめて行えるなど,描画時のパフォーマンスにも気を遣っている。 強調するだけあって,Ageia系のほうがHavok系のゲームより破壊シーンについては凝った処理が多いように思われる。
テーブルにめり込んだキャラクターとテーブルの下にかがんでいるキャラクターに注目
|
■物理演算によるキャラクター処理
続いて,AGEIAによるキャラクター処理の取り組みが説明された。PhysXを発表した最初のころは,キャラクターがオブジェクトをすり抜けたりして不評だったらしく,最近ではキャラクターとオブジェクト間での相互作用を加えてきている。物理シミュレーションとアニメーションの合成やラグドール処理など,そういったあたりはHavok Animationとさほど変わりはないように思われる。Behaviorなどの展開を考えると,Havokにやや後れを取っている分野といえそうだ。
茎などにジョイント,葉の部分にクロスシミュレーションを使用した植物の例
|
■ジョイントの活用
さて,破壊のところでも軽く紹介した「ジョイント」だが,剛体同士を結合させるための仕組み,平たくいえば「関節」だと思っておけばいい。PhysXでは,力による変形などでもジョイントを多用しているのはすでに述べたとおりだが,世間一般的には,ジョイントというと,ほぼラグドール処理で用いられるものとなってきている。 AGEIAのセッションでは,ラグドール以外でのジョイントの使い方を解説していた。例えば,木の幹,茎などの接合に使用することで,揺れる木を表現できるなど,形状を維持しようとする物体や異なる柔軟性の混在した物体にはジョイントが有効だという。本当にグニャグニャな物体や木の葉などには,布のほうが向いているので,使い分けが重要となる。 ジョイントを多用する場合は,ソルバーの反復回数を多めに設定するようにとのこと。ソルバーは,一度で答えを出すものではなく,何度か反復して値が収束していく性格のものである。当然ながら回数を多く繰り返すほど精度が上がり,同時に計算時間もかかってくる。関節数が多ければ値が収束しにくくなることは容易に想像できる。複雑な状況をより早く収束させるのは,ソルバーの性能が問われる局面でもある。前日のHavokの発表ではソルバーの安定性を非常に強調しており,複雑な状況でも値が収束しないような事態はほぼ起こらないと胸を張っていたのだが,AGEIAはどうだろうか?
ちょっと面白いと思ったのがPhysXのライセンス価格だ。PC系では5万ドルが標準価格だが,PhysXアクセラレータをサポートした場合は無料となる。プレイステーション3はSCEから配布されるので,無料。Xbox 360の場合は基本的に5万ドルだが,マルチプラットフォームでPC版を作り,それがPhysXアクセラレータに対応する場合は「別途ご相談を」という感じになっているのだ。最大5万ドルの範囲なので多くは期待できないが,多少はPC版への展開を考えるところも出てくるかもしれない?
PhysXのSDKツールとパートナー
|
|
|
■ELSA製物理演算アクセラレータ ELSA PHYNITE X100
エルザジャパンは,同社が発売する物理演算アクセラレータ「ELSA PHYNITE X100」の試用版を,各ゲーム会社一部門につき1台無償提供したり,特価販売したりと,売り込みを行っていた。 日本のゲームメーカーはコンシューマゲーム中心なので,PhysXアクセラレータの需要はあるのかと不思議に思う人もいるかもしれないが,プレイステーション3ではUnreal Engine 3がSCEから提供されることになっており,PhysXも一緒についてくる。よってPCベースの開発環境では,PhysX PPUは必須となってくるのだろう。また,アーケードゲームでの使用も見込まれているようだ。エルザジャパンのPHYNITE X100が「国内生産」で作られるというのも,アーケードゲームメーカーが要求する信頼性に応えるためらしい。ゲームセンターの体感筐体などで物理演算バリバリのゲームが遊べるようになると,かなり斬新な体験ができそうな気もする。PCゲームに限らず,日本での物理演算の展開にも期待したいところだ。 なお,エルザジャパン製物理演算アクセラレータ ELSA PHYNITE X100は10月発売予定で,3万9800円程度の価格になりそうとのことだった。(aueki)
|
|
|