【Watch記事検索】
最新ニュース
【11月30日】
【11月29日】
【11月28日】
【11月27日】
【11月26日】

European Computer Trade Show 2003現地レポート

3DゲームファンのためのCRYエンジン講座
「FAR CRY」に見るドイツ製エンジンの次世代テクノロジー

8月27日~29日まで開催(現地時間)

会場:London Earls Court

 今年のECTSにおいてBEST PC GAME賞に輝いたのは「HalfLife2」ではなくドイツ期待の新生CRY TEKが生んだ「FAR CRY」だった。CRY TEKはUbi Soft傘下のドイツのゲーム制作スタジオで、この「FAR CRY」が最初の作品となる。開発は今から約3年前、NVIDIAのGeForce 3の発表前から始まっている。GeForce 3といえば、DirectX 8世代のDirect3Dに完全対応した最初のGPUであり、プログラマブルシェーダ時代到来のきっかけを作り出したGPUだった。

CRY TEK創設者のCEO CEVAT YERLI氏(左)、EXECUTIVE VP FARUK YERLI(右)兄弟。親日家の彼らとはGDC2003以来仲良くさせてもらっている
 CRY TEKは自社ゲームエンジンの開発を、早期からプログラマブルシェーダへの対応を前提として推し進めており、数々の実験的なデモプログラムを当時に残している。なかでも有名なのが恐竜の映像だ。これらはGeForce3の発表会でも示され、一躍CRY TEKの名前を有名にした。

 さて、本稿ではこの「FAR CRY」のために開発されたゲームエンジン「CRYエンジン」を取りあげる。本稿で示している動画映像(ムービー)は、CRY TEKの創設者であるYERLI兄弟から直接、許可を頂いたうえで撮影したもの。また、ムービー中、その内容についての解説はCRYエンジンのプロデューサを兼ねているCEVAT YERLI氏自らに行なってもらっている。

「FAR CRY」は当時「XSILE」という名前で開発が始まっており、「未知の惑星で恐竜と対決するFPSゲーム」として告知された。しかし、のちにストーリーとコンセプトが大幅に修正され、現在のような現代ベースのコンバット・アクション系のゲームデザインとなった


■ 海が青いのはなぜ?~「南海の珊瑚礁」シェーダー搭載

兵士の姿が実際に上下に反転して水面に映り込んでいるだけの映像に見えるが、よーく見てみよう。水面下に沈んだ彼の足も薄く見えている。この映り込みと水底の見え具合のバランスがフレネル項で調整されていると考えるとわかりやすい
自然な青さを有するCRYエンジンの海。その秘密は実は奥深い
 まずはこのCRYエンジンにおける、プログラマブルシェーダ技を活用したビジュアルを見ていくことにしよう。

 まず、シーン1、続いてシーン2を見て欲しい。目を見張るのが南海の美しい海の表現だ。非常に青々としていながらも、透明度があり、それでいて、周囲の景色の映り込みが「さざ波」で揺らいでいる。

 CRYエンジンにおける周囲の映り込みは、描ききりの環境マップによるものだけでなく、実際にレンダリングした実際の情景を本当に映り込ませることもできる。ただし、今回デモに使用したマシンのGPUがメインストリームクラスのGeForceFX5600であったため、この処理系は省略されてしまっている。その実力はスクリーンショットの方で見て頂きたい。

 CRYエンジンにおいて水面に発生する大きな波は実際にジオメトリレベルでの波動シミュレーションを行ない、細かいさざ波は法線マップを動的に動かす形で実現する「動的なバンプマッピング表現」によるものだ。実は、こうしたマルチパスレンダリングによって作り出された映り込みと動的なバンプマッピングの組み合わせによる水面の表現は、最近ではあまり珍しいものではない。

 CRYエンジンの水面表現で先進的なのは、反射と屈折、そしてその割合を視線ベクトルと水面の位置関係を考慮した形で実現している点だ。これは特に「フレネル効果(フレネル項)」と呼ばれることがある。

 雨上がりの水たまりを思い浮かべてみよう。水たまりが遠くにあるときにはその水面が空や周りの情景を映しているのに、近寄ってみると、水たまりの底が見えるはずだ。これはどうしてか。水たまりが遠くにあるときは視線が水面をかすめるような形になり、周囲の景色の方が多く目に届く。しかし、水たまりを近くから覗き込んだ場合は視線の角度が深くなって水面下の屈折した水底が見えてくるのだ。

 実際に、そのあたりを意識してムービーを見てみよう。遠くの水面はより周囲の情景を強く映し出しているのに対し、プレーヤーの近くは水底がよく見えることに気が付くだろう。一部の3Dゲームで時々見かける、周囲がやたらにギラギラと映り込んだだけの「水銀のような水面表現」と一線を画しているのはここに秘密があるのだ。

 さて、CRYエンジンの水面表現は、以上3つのテクニックだけではちょっと説明が付かない箇所がある。それはどこかといえば「海が青い」という点だ。「海が青いのは当たり前」といわれそうだが、ただ周囲の情景が映り込んでさざ波が立って、水底が見えるだけでは水面は青くならない。「空が青いから海が青いのでは?」という意見も、半分は当たりだが、正解ではない。

 水面に映り込んでいるものの大半が空の場合はその推論は正しいが、CRYエンジンの水面表現を注意深く見ていくと、その水面に映り込んでいる情景自体が青っぽくなっていることに気が付くだろう。しかも視点から遠い情景であればあるほど青に振れた色で映り込んでいる。映り込み元の山がたとえ草木に恵まれた緑色だったとしても水面には藍色で映り込んでいるのだ。視点から近ければ近いほど映り込んでいる情景は元の色味を残す形になっている。単純に水面を青色で塗っているのではないのは一目瞭然だ。

 これがCRYエンジンにおける海の青さの秘密だ。描画したシーンのZバッファの内容(簡単に言えば描画した画面の奥行き情報が入っている)を見て、遠い近いを吟味し、レンダリング結果を加工する画像処理系プロセスなのか、環境マップ作成時に遠近を配慮して映り込み情景の色に変化を与えているのか、この表現の実現方法にはいくつかの考え方がありそうだが、どういう実装系になっているのかは教えてもらえなかった。しかし、いずにせよ、これも基本的には「EverQuest 2」(以下、EQ2)エンジンのところで解説した光散乱シミュレーションの一種がCRYエンジンにも搭載されているということだ。

 ちなみに、ここで解説した水面表現の処理系には全てプログラマブル頂点シェーダとプログラマブルピクセルシェーダ双方が活用されている。あまりにもさりげなく見えるので軽い処理に見えてしまうが、実際はそれなりにコストの高いテクノロジーなのだ。

「FAR CRY」シーン1
MPEG1形式(LZHでアーカイブしてあります)・1分10秒
[11.5MB]


「FAR CRY」シーン2
MPEG1形式(LZHでアーカイブしてあります)・1分10秒
[9.48MB]


時間変化に応じて海の色が変化していく様もお見事だ


■ 主流の影生成技法を全て搭載~セルフシャドウもあり!

シーン左側の木の影が別の木やトラックに投射されている表現に注目。これはプロジェクションシャドウ技法によるもの
屋外でキャラクタの影表現にはステンシルシャドウボリューム技法が使われている。持っている銃や腕に投射されている影に注目
屋外シーンでも使おうと思えばシャドウマッピング技法を使うこともできる。画面はその一例
 CRYエンジンも、「Splinter Cell」などで一躍有名になったリアルタイム光源&影生成表現に対応する。YERLI氏は「とにかくいかなる状況にも対応できるゲームエンジンを作りたかった」というが、どんな状況にも対応しえる完全無欠な影生成技法を構築するのは現存GPUでは難しい。

 そこで、結局、彼らが出した結論は、現在よく使われている3種類の影生成技法の全てをCRYエンジンに導入するという離れ技だった。

 1つは、「プロジェクションシャドウ(シャドウマップ)技法」だ。これは「Half-Life 2」エンジンをはじめ、家庭用ゲーム機のゲームなどでも採用例が目立つ影生成技法だ。光源を視点として影を出したいオブジェクトを単色でテクスチャにレンダリングし、これを影として光源方向から投射テクスチャマッピングを行なうことで実現する。互換性が高いが、セルフシャドウ表現には特別な処理系が必要になる。FAR CRYでは、金網の影、その他の背景オブジェクトの影生成に用いられている。

 この技法を応用し、ライトマップを投射することでスポットライト的な表現を行なうことがあるが、シーン3中でもその表現が見て取れる。笠の付いた電灯を銃撃すると電灯が揺れてこの電灯からの光が、その揺れにシンクロした形でシーン内を照らすという演出があるが、これはこの方法で実現されている。なお、このシーン内にいるキャラクターが落とす影は別の技法が使われている。

 2つ目はid software「DOOM III」エンジン、そして前回紹介したSOEのEQ2エンジンで採用されている「ステンシルシャドウボリューム技法」だ。光源方向から3Dモデル上の輪郭頂点を延長して影領域(シャドウボリューム)を作成し、これをシーン内のジオメトリ遮蔽関係を考慮した形でステンシルバッファにレンダリングする。これにより画面内において影となるピクセル分布ができるので、この分布を通常レンダリング映像に合成することで影を書き入れる。EQ2のところでも解説したようにセルフシャドウや相互等射影表現が可能な技法だ。

 CRYエンジンでは、この技法も実装しており、主に屋外シーンでのキャラクタの影生成に活用される。今回のデモに用いられたマシンに搭載されていたGPUはメインストリームクラスのGeForceFX5600であったため、屋外での影生成を有効にするとゲームパフォーマンスに影響が出るという理由から、オフ設定になっていた。

 3つ目は「シャドウマッピング(シャドウバッファ)技法」だ。これは「Splinter Cell」が採用したことでも有名になった技法だ。この技法ではまず、光源を仮想視点としてシーンをZバッファレンダリング(シーンの深度<遠近>情報をレンダリングすること)して、シーン内の遮蔽構造分布シャドウマップを作成する。最終レンダリング時にはこのシャドウマップを見て、これから描画するピクセルが遮蔽されているかどうかを判断しつつ、各ピクセルを描いていく。

 こちらもセルフシャドウや相互投射影の表現が可能だが、シャドウマップの解像度が十分でないと、影にジャギーが顕著に出たり、影の出方そのものが奇妙になったりする。  CRYエンジンではこの技法は、屋内や洞窟の中といった比較的狭い空間においての影生成の際に用いている。

 ムービーの後半で洞窟内の秘密基地のようなところへの奇襲シーンがあるが、ここで敵キャラクタや背景物の小道具、大道具が落としている影がこの技法によるものだ。このムービーでは非常にわかりづらいのだが、倒れ込む敵キャラクタの手足の影は自身に投射され、セルフシャドウ表現が見て取れる。

 影生成ひとつにここまでやるのは少々「やりすぎ感」もあるが、CRYエンジンはFAR CRY専用というよりも元々「エンジンビジネス」を最初から想定した設計であるためにこのような、適応力の高い設計にしたのだろう。いずれにせよ、影生成に関しては現存するゲームエンジンの中ではトップレベルといってよい。

「FAR CRY」シーン3
MPEG1形式(LZHでアーカイブしてあります)・1分24秒
[14MB]


窓から差し込む光筋表現。ボリュームレンダリングのような表現だが、床に落ちる光や影は投射テクスチャマッピングで、光筋自体はジオメトリを持ったポリゴンだ。「Splinter Cell」でも同種の技法が見受けられる

屋内シーンのような比較的限定された空間でなおかつ複雑なジオメトリ構造を持つシーンでの影生成はシャドウマッピングが有効だ

足元の影が色濃く、影の投射距離が長くなるほど半影表現になっている点に注目。もちろんシャドウマッピングなのでセルフシャドウも出ている。ラジオシティ(相互反射)ライクな柔らかな陰影表現として実に効果的。こうした表現にはプログラマブルシェーダ2.0が活用されている


■ 運動と衝突の物理を究める

 グラフィックスがいくらリアルになっても、その挙動が嘘っぽくてはゲームプレイ時にリアリティを感じられない。その意味で、近代の3Dゲームは物理エンジンの重要性が強く叫ばれるようになっている。最近、この分野で特に評価が高いのは知ってのとおり、あの「Half-Life 2」エンジンだ。

 「Half-Life 2」エンジンでは基本物理ミドルウェアとしてHAVOKの技術をライセンスして用い、これをベースにゲーム内物理エンジンを構築している。これに対し、CRYエンジンでは下層レベルの基本的な物理モデルエンジンから自社開発している。

 ゲーム内物理はゲーム内に登場するオブジェクト全てに作用しているので、今回の本稿で用意したムービーのどれを見ても、その物理エンジンの存在を随所で感じることができるわけだが、今回撮影させてもらった映像のなかからいくつか象徴的なものを集めてみたのがシーン4だ。

 ガソリンタンクが爆発すれば、その爆風のエネルギーが周囲のオブジェクトにも及ぶ。そうしたエネルギーをうけたオブジェクト達は、各自の重量と、その形状を考慮した形で衝突、運動する。ドラム缶は立っていれば安定しているが、横倒しになれば、不安定になる。重力加速度は下向きに掛かるが、その力を受け止めてられない斜面では、それが傾斜の低い方へ等加速度運動に移行する。こうしてドラム缶はころころと転がっていく。

 さて、「Half-Life 2」でもそうだったように、CRYエンジンでもそれぞれのオブジェクトには、自身を構成している材質パラメータを内包している。衝突の際にはこの材質パラメータを配慮して、次の運動が算出される。柔らかいものならば衝撃を吸収するし、固いものならば跳ね返り係数が1に近い形で衝突し、運動速度の交換が行なわれる。

 CRYエンジンではこの材質パラメータはそのオブジェクトの強度も決定しており、オブジェクト同士が衝突した際、どちらがどう壊れるかといった演算も行なってくれる。可燃性の物が入っていないドラム缶ならば、「これを自分で適当な場所まで転がし」、「そこに体を隠しながら敵と戦う」こともできるのだ。

 また、ゲーム内物理エンジンはオブジェクトの運動を決定するだけでなく、衝突の際の音、火花などの視覚効果発生のマネージメントも行なっているとのこと。銃弾が金属に当たれば火花が出るが、木に当たれば木片が飛び散り、岩壁に当たれば石塵が飛び散る。音は状況に際した物が再生されるというわけだ。

 さて、ムービー後半で是非見て欲しいところがある。プレーヤーが乗ったジープがドラム缶に乗り上げてしまい、動けなくなり、これをプレーヤーが手榴弾でジープごと爆破するシーンがある。ジープの速度が十分であれば、車輪の直径よりも大きいはずのドラム缶に乗り上げることができるのだ。現実世界でもきっとこうなることだろう。

 プレーヤーはジープから降りるのだが、ここでも地味ながら興味深いことが起こっている。プレーヤーが降りたジープはドラム缶を作用点としたシーソー状態になり、プレーヤーが降りたことで重量バランスが変わり、エンジンを積んでいて重い車体の前がかがむのだ。

 これだけでも驚きだが、続いてプレーヤーはここに手榴弾を投げ込む。これが爆発するとガソリン入りのドラム缶に引火し、その爆風のエネルギーが周囲のほとんどの物を吹っ飛ばすが、重量の重いジープは片側二輪が持ち上がるだけ。持ち上がった二輪は、再び重力の影響で着地する。この着地の際の衝撃は独立四輪サスペンションが吸収し、車体は深く沈み込む。

 あまりに自然なので見過ごしてしまいそうだが、「その自然さ」はCRYエンジンの物理エンジンが現実世界の物理現象を上手くモデル化できているからこそだ。

「FAR CRY」シーン4
MPEG1形式(LZHでアーカイブしてあります)・2分38秒
[26.3MB]


ジープを4台、空高くから落下させるデモ。互いの形状を考慮した形で衝突して積み重なる。もちろんその衝突の際には各ジープのサスペンションによる衝撃吸収要素までが配慮される


■ 人体物理と流体物理の華麗なるコラボレーション

キャラは死んでも、そこにかかる物理は生きている
 さて、ゲームエンジンにおける物理エンジンの定番要素ともいえるRagdoll物理だが、当然CRYエンジンにも搭載されている。これを示した映像が先ほど紹介したシーン2だ。

 見張り台に立っている敵兵を手榴弾で倒すシーンにおいて、爆風で吹っ飛ばされた敵兵がこちらに落ちて地面にたたきつけられる描写があるが、この死体の挙動がRagdoll物理に従ったものになる。

 CRYエンジンの人体モデルも「双方向キネマティックス」に対応する。キネマティックスとは和訳すれば「運動学」ということになるが、ゲームエンジンにおいては3Dモデルの関節制御にまつわる処理系を指すことが多い。

 人間の足で考えてみるとわかりやすい。足をある任意の場所に動かしたいときに膝や股の関節をどう曲げるべきかを算出する処理系を「順方向キネマティックス」といい、運動中、足が何かに引っかかったときに、膝や股の関節が、人体が破綻しない形で曲がるためにはどう曲がるべきかを算出するのが「逆方向キネマティックス」となる。CRYエンジンでは、双方向、すなわち両方のキネマティックスをサポートするというわけだ(一般に逆方向の方が高度な処理系を必要とする)。

 そして当然CRYエンジンのRagdollエンジンはこのキネマティックスに準拠したものになっている。生きた人間キャラの動きが、キネマティックスに従うのは当然として、CRYエンジンは、死んだ人間キャラの肢体にもキネマティックスやゲーム内物理法則が働き続ける。今回、本稿で示している映像の随所で見かけられるのだが、死体にさらに銃撃を加えると弾の当たりどころによっては手や足が持ち上がったりすることがあるが、それがその証だ。

 さて、シーン2には、見張り台のシーンのあと、死んで海に落ちた敵に対し、さらにそこへ銃撃を加える描写がある。水にプカプカと浮かんでいる敵兵士の死体は、さらなる銃弾が命中することで血しぶきを上げ、命中の際に、銃弾の運動エネルギーを受け取って半身沈んだまま動き出す。

 CRYエンジンでは、水面の陰影処理だけでなく、水のそのものの物理、いわゆる流体物理(Fluid Physics)エンジンを搭載しており、オブジェクトの密度パラメータなどを考慮して、物の浮き沈みや、水の流れに沿って動いたりといった運動を制御できるようになっている。このシーンでは、その流体物理エンジンの様子を示しているわけだ。なお、こうした水上の死体の上に他のキャラクタを乗せると、ぶくぶくと沈んでいく様を見ることもできるが、このムービーにはそのシーンはない。

「FAR CRY」シーン2
MPEG1形式(LZHでアーカイブしてあります)・1分10秒
[9.48MB]


死んだ人体は水に浮く。そこを銃撃すればスイーっと流体物理に従って流れる


■ 「乗り物」の物理~車両、船、航空機

CRYエンジンの車両物理は4輪車の荷重移動、各車輪の全方向当たり判定、接地摩擦係数、サスペンションのバネの挙動といった要素をサポートする
CRYエンジンの流体物理処理系は水上に浮いた船舶の制御にも活用される
 CRYエンジンには、様々な乗り物の物理エンジンが搭載されている。

 シーン5で示しているのは、車両物理だ。ジープのような四輪駆動車でゲーム世界を縦横無尽に走り回る様を見せてくれている。地面の起伏を四輪の独立サスペンションが受け止めている感触が、ドライバー視点からでもよくわかるだろう。車に乗っている間も自由に視点が変えられるところにも注目だ。ラストシーン近くでは、小舟も出てくるが、こちらの挙動は、前出の流体物理に則ったものになっている。

 また、CRYエンジンはグライダー、ヘリコプターといった航空機制御用の航空力学エンジンも搭載されている。シーン6にはプレーヤーが実際にグライダーを操縦するシーンが収められている。  「これならばフライトシミュレータもCRYエンジンでできそう」と思ってしまいそうだが、残念ながら、汎用的なフライトシミュレータを考えているならば、「それは無理」(YERLI氏)とのこと。

 というのも、現在のCRYエンジンには、視点の高さの設定を地面から約200m以上は設定できないという制約があるためだ。地表をかすめ飛ぶような演出で、限定的な形に飛行機を登場させることはできるだろうが、この制約があるたにフライトシミュレータの実現は難しい。

 そんな理由から、その制約の範囲内で飛行する航空機ということで、ゲーム中には、グライダーやヘリコプターなどを登場させているわけだ。

「FAR CRY」シーン5
MPEG1形式(LZHでアーカイブしてあります)・2分20秒
[23MB]


「FAR CRY」シーン6
MPEG1形式(LZHでアーカイブしてあります)・1分2秒
[10.4MB]



■ シーン適応型AIシステマティックAIとは?~敵指揮官が部下に命令する!

 CRYエンジンはAIの賢さの点においても現行エンジンのトップレベルを行く。今回示しているムービーの随所に登場する敵のそれぞれの行動をよく観察してもらうとわかるが、むやみにこちらへ向かってくることはなく、時には後ろに退き、仲間を呼んだり、物陰に隠れて自分の身を守ったり、あるいはこちらに背を向けて逃げ出すヤツもいる。

 「CRYエンジンのAIエンジンの賢さの秘密は、シーン適応型の行動制御を行なっているところにある。」(YERLI氏)

 CRY TEKではこのAIシステムを特に「システマティックAI」と呼んでいる。これは、自分の役割、装備や体調などから判断される自分の置かれている状況、自分の周囲の環境状態を各自が判断し、次の行動を決定する仕組みだ。たとえば、隠れる場所があればそこに身を潜めるし、体力が少なくなってくれば逃げ出したりもする。スクリプトベースで決まった行動を繰り返す一般的なゲームのAIと比べ、実際に戦ってみるとかなりの歯ごたえと人間くささを実感できる。

 「さらに、CRYエンジンのAIは、敵キャラクタ達、それぞれに対し、クラス(階級)が設定できるのも特徴だ。」(YERLID氏)

 CRYエンジンでは、それぞれの敵キャラが互いにコミュニケーションを図り、それぞれの役割分担を動的に行なえるようにデザインされているのだ。敵キャラクタ間には上下関係を絡めた組織構成が設定でき、起こった事象に対しての次なる行動はその場の最上級クラス、いうなれば指揮官が決定を下すのである。決定事項は自分の部下に伝え、連絡を受けた部下はその命令を、基本的な自衛AIや攻撃AIに準じながら実行に移す。

 敵軍に攻撃を仕掛けた場合、指揮官を先に狙撃してしまうと、残されたその他の敵はその場その場に対応するだけの反撃をしてくる。これに対し、指揮官を生きたままにしておくと、敵は自分を取り囲むようにして二手に分かれて進軍してきたり、かなり高度な布陣を展開し始める。

 それではシーン7を見てみよう。このシーンでは、プレーヤーが敵の砦に対しロングレンジライフルを使って遠方射撃をする様が描かれている。見張り台の上の敵を狙撃すると、砦の中はにわかにあわただしくなる。全員がこちらへ向かってくるのではなく、1人がこちらに対しそろそろと歩み寄り、その他の敵兵は自分の持ち場へと走っていく。しばらくすると、指揮官は部下にヘリを使っての周囲の捜索を命じてくる。CRYエンジンのAIは、一体一体の敵を賢くするだけでなく、敵組織全体を手強くすることができるのだ。

密林の中での戦いでは、敵の1人が陽動行動をし、その他の敵がプレーヤーを囲い込むような有機的な動きをする

狙撃手は数回の攻撃のあと、別の攻撃ポイントへ移動することもある。このような有機的な布陣展開はその場の指揮官が命令を出して行なっているのだ。

「FAR CRY」シーン7
MPEG1形式(LZHでアーカイブしてあります)・1分11秒
[11.8MB]



■ 先の先が見える動的LODシステム

 今や3Dゲームエンジンには欠かせないLOD(Level Of Detail)処理。「動的」LODとは、描画パフォーマンスを維持する目的から行なう、視点からの距離に応じて描画する3Dオブジェクトのポリゴンの削減を動的に行なう処理系だ。

 CRYエンジンには優秀な動的LODシステムが搭載されており、描画境界無制限の遙か遠方までをスケーラブルに描画することができるようになっている。ムービーを見てもわかると思うが、遙か遠方の景色は1枚画ではなく、ちゃんとそこまでの景色がLODによって描かれた3Dグラフィックスになっているのだ。

 シーン8の前半では双眼鏡で遠方の敵の砦を観察する様が描かれている。非常に小さく見えていた遠くの景色が、グングンと拡大されてく様が描かれているが、ただ、遠くの情景に対し、視点をそちらに近づけてレンダリングした結果を表示ているだけのフェイクではない。その景色に到達するまでに生えている植物までも馬鹿でかく拡大されて手前に表されてしまっているのがその証拠だ。大きく表示される手前の植物がぼけているのは被写界深度シミュレーションをやっているのではなく、単にテクスチャフィルタのボケの影響のようだが、いずれにせよ、かなり効果的なビジュアルになっている。

 シーン後半では、デバッグモードに移行し、視点をCRYエンジンで表現可能な最上空位置に設定して貰った時の映像が収められている。視点からは約500m四方の情景が的確に描かれているのが確認できるだろう。ちなみに前述したように、奥行き方向のLODはCRYエンジンポテンシャル的には無制限となっているのだが、このシーンでは高い山々が周りを取り囲んでいるために500m四方までしか描かれていない。

 さて、ムービー中にYERLI氏が言っているように、現行CRYエンジンでは上空方向には約200mまでしか上れない。これが乗り物物理のところでも触れたように、CRYエンジンがフライトシミュレータには対応していない理由となっている。CRYエンジンは、基本的には多くのキャラクタが地に足の付いたゲーム向けに設計されているので、基本的にはこの制限を彼らは弱点とは捉えていないようだ。とはいえ、完璧主義の彼らのこと、いずれそうした制限までも克服してしまう可能性も否定できない。

「FAR CRY」シーン8
MPEG1形式(LZHでアーカイブしてあります)・1分3秒
[10.6MB]


遙か遠方までがスケーラブルに描画されるCRYエンジンの動的LODシステム。その実力はぜひともムービーでも確認して欲しい


■ LODシステムの新しい形「POLYBUMP」テクノロジー

左が28,000ポリゴンの顔モデル。右がその1/100にポリゴンを削減した280ポリゴン。近くで見る限りはディテールの違いは明らかだ
ディテールを法線マップ化してバンプマッピングしてしまうのがPOLYBUMPテクノロジー。視点が遠ければ両者の違いはほとんど区別できない
左が1,500ポリゴンの人体、右が25万ポリゴンの人体。パッと見た感じでは両者は同じもののように見える。このようにPOLYBUMPはLOD的な活用だけでなく単純なジオメトリ削減にも効果を発揮する
人体や顔だけでなく、このような小道具、大道具オブジェクトのティテール表現にも活用できる。左が11万ポリゴン。右側がPOLYBUMPを適用した850ポリゴンのモデル
 視覚効果と負荷に見合わないような微細な凹凸を、あたかもそこに凹凸があるかのように陰影処理を行なうことで、それらしく見せる技法をバンプマッピングという。このバンプマッピングというのは、今や3Dゲームファンにとってはかなり馴染み深い3Dグラフィックス用語になっていると思う。

 凹凸を描いたテクスチャを貼り付けただけでは、すぐにウソがばれてしまうが、バンプマッピングでは、光源や視点の位置関係が変わると、その凹凸の陰影がインタラクティヴに変化する。これは、その凹凸を形成する微細な面の向き、すなわち法線ベクトルを考慮して画素単位で光源処理を行なっているためだ。このために、「見た目上」は本当に凹凸があるかのように見えるのだ。

 さて、バンプマッピングは実にリアルに凹凸があるように見えるが実際に凹凸のジオメトリがあるわけではないので、その凹凸を近寄って間近で見ると、そのウソが露呈する。ゴツゴツした凹凸の岩壁を近寄ってみたら、出っ張りは全くないまっさらな平面で、それなのに凹凸の陰影だけがテラテラと移り変わって見える…なんていう奇妙な映像になってしまう。

 しかし、逆に言えば視点から遠い場合に使っていれば、そのウソはまずバレないということでもある。そこでCRY TEKが考えたのは「視点から近い時には表現するモデルのディテールをポリゴンで表現するが、視点から遠くなったときにはポリゴンを削減しそのディテールをバンプマッピングに落とし込むようなLODシステムがあったら面白いのではないか」というアイディアだ。

 これがCRYエンジンに搭載された「POLYBUMPテクノロジー」の基本的な考え方になる。なお、このPOLYBUMPテクノロジーの使用には、ある程度、オーサリング時の作り込みが必要になるため、全てのオブジェクト表現にPOLYBUMPテクノロジーが効いているわけではない。ちなみに、FAR CRYでは、人の顔、衣服、大道具、小道具オブジェクトのディテール表現、車両のタイヤの溝などにこのテクノロジーが用いられている。

 シーン9を見ていこう。倒した敵の顔がクローズアップされる。この敵の顔は非常にディテールがよく表現されているが、輪郭が角張っていることから判断できるように、見た目ほどポリゴン数は多くないのだ。なお、このシーンで描かれている発電機のような機械のディテールもPOLYBUMPテクノロジーで実現されているとのこと。

 乗り物の物理のところのムービーを見てみよう。タイヤの溝の凹凸表現もPOLYBUMPテクノロジーによるものだ。ただ、このタイヤの溝など、一部の凹凸のディテール表現はバンプマッピングのままのこともある。プレーヤーの視点が近づいたときに、実際にディテールをジオメトリレベルで再現した多ポリゴンモデルへ切り換えるかどうかという判断は、動作マシン環境やゲーム設計側に依存させることができるようだ。

「FAR CRY」シーン9
MPEG1形式(LZHでアーカイブしてあります)・1分19秒
[13.2MB]


「FAR CRY」でも岩壁や煉瓦などの凹凸表現は普通のバンプマッピングが用いられている 視点から離れたところに位置するにもかかわらず、非常にディテールに富んだ人体モデルが表示されている。これがPOLYBUMPテクノロジーによる表現だ


ジープのタイヤの溝に注目。非常にリアルだが、このディテールはPOLYBUMPテクノロジーによるもの


■ CRYエンジンはマルチプラットフォーム展開を予定

CRYエンジン用のオーサリングシステム「CRY EDIT」では、まるでゲーム制作ツールのような感覚で扱える
 ECTS会場に展示されていたFAR CRYの試遊版は開発進行度60%とのことで、2003年11月28日の発売を目指して現在も開発は進行中。エンジン側の作り込みはほぼ完了しており、今はゲーム「FAR CRY」の開発に集中している状況のようだ。

 「『DOOMIII』や『Half-Life 2』など、新世代FPSと呼ばれるタイトルの発表が集中していることもあり、プレッシャーは感じないか?」と質問してみたところ、「公式コメントは控えるが、E3、そして今回のECTSにおいて実際に来場者がプレイできた新世代FPSは我々のタイトルだけだった。これだけは紛れもない事実だ(笑)」と答えが返ってきた。(YERLI氏)

 今回のECTS BEST PC GAME賞受賞でますます自信を付けたのではないだろうか。さて、このCRYエンジンは、ついにコンソールゲーム機への展開が決定した。現在は、Xbox版、GameCube版、そしてPS2版の開発プロジェクトがスタートしたとのことだ。

 今年のGDCからE3、そして今回のECTSと、この半年間にCRYエンジンを公開して以来、日本のゲームメーカーを含めた世界各国から問い合わせがあったそうで、CRYエンジンを使ったエンジンビジネスにはCRY TEKは相当な手応えを感じているようだ。我々、3Dゲームファンとしては、CRYエンジンには今後も注目していかなければならないだろう。

実際のCRYエンジンを使ったオーサリング時の画面。コンセプトは“WYSIWYG”ならぬ“What you see is what you PLAY”だとか CRYエンジンでも植物はプロシージャル生成に対応。パラメトリックに植物が自動生成できるので草木をモデリングする必要はない


□ECTSのホームページ
http://www.ects.com/
□CRY TEKのホームページ
http://www.crytek.com/
□「FAR CRY」のホームページ
http://www.farcry-thegame.com/

(2003年9月1日)

[Reported by トライゼット西川善司]


Q&A、ゲームの攻略などに関する質問はお受けしておりません
また、弊誌に掲載された写真、文章の無許諾での転載、使用に関しましては一切お断わりいたします

ウォッチ編集部内GAME Watch担当game-watch@impress.co.jp

Copyright (c) 2003 Impress Corporation All rights reserved.