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

PCゲームレビュー特別編
3Dゲームファンのための「Splinter Cell」グラフィック講座



 さて、ここからは「Splinter Cell」の3Dグラフィック関連の解説をしたい。「Splinter Cell」のグラフィックエンジンは「Unreal IIエンジン」(正確にはUnreal II向けに開発された新世代Unrealエンジン)をベースに、Ubi Softが「Splinter Cell」に合わせて独自拡張を行なったものだ。その独自拡張部分とは、「Splinter Cell」のゲーム性に大きく関与しているリアルタイムに高度に処理される光と影のエンジン部分だ。順番に解説していこう。


■ 「Splinter Cell」はUnreal IIエンジンベース~リアルタイム光源処理の妙技

テレビからの光も光源として処理されている。この光がサムや椅子をはじめとした家具の影までを作り出している点にも注目
 一般的な3Dゲームグラフィックスの多くは、そのシーン全体がある程度、均一に明るくなるように環境光を設定し、これをコントロールすることで、シーンのトーンを調整している。さらには、現実世界では当たり前に起きている相互反射などをライトマップにプリレンダー生成し、これを利用することで少ない演算量でシーン全体を淡い光に満ちた空間に仕上げている。こうしたライティングはいわゆる固定的なライティングであり、「シーン内の光源が点いたり消えたりしない」という前提のもとで構成される。

 これに対して「Splinter Cell」の3Dグラフィックは、環境光を押さえ気味にし、シーンに登場する光源のほとんどを3D空間内に登場する光るもの(電球や蛍光灯、テレビなど)に設定して、リアルタイムにライティングを行なう方式を採用している。これにより、プレーヤー(あるいは敵)が、インタラクティブにシーンの光源に関与できるシステムを実現しているのだ。

 このシステムを象徴したこんなシーンがある。扉を開けると蛍光灯が立ち並ぶ廊下が広がっている。この廊下奥では警備兵が立っている。このまま侵入すると姿を見られてしまう。そこで、天井の蛍光灯を自分の近い方から2、3個銃撃して破壊してやる。するとその蛍光灯の光が消え、自分のいる廊下の入り口周辺はグッと暗くなり侵入しやすくなる。ただし、蛍光灯の点いている廊下奥のほうはまだ明るい……。

 「Splinter Cell」では、シーン内に登場する電球や蛍光灯、液晶ディスプレイなどの小道具を破壊したり、スイッチを消したりすると実際にそこからの光が消え、シーンの明るさをドラスティックに変化させることができるのだ。

 ちなみに、「Splinter Cell」では周囲が暗いと当然画面上の自分の姿も見えなくなる。だからこそ、敵にも自分の姿は見えないというわけだ。しかし、これではゲームにならない。そこで活用するのが標準武装の暗視スコープだ。この動的なライティングシステムにより、「闇に自分を沈み込ませる」という基本ゲーム性が非常にインタラクティブでわかりやすい形で表現され、なおかつ「暗視スコープを使う」という行為に必然性まで生じさせている。

 文章で説明してみると、なんてことないシステムのように思えるが、ここまで動的な光源処理を持ったゲームはまだ少ない。それはシーン内に動的な光源を複数おくと、その数に比例して、そのシーン内に登場する3Dオブジェクトに対する陰影処理における光源演算の回数が増えてしまうからだ。

 これはハイスペックなPCグラフィックスシステム、あるいはこれに近いXboxのXGPUだからこそ実装できたシステムだといえる。また、「Splinter Cell」の「あまり一度に大勢の敵が登場しない」というスニーキングアクション特有のゲーム性に助けられている部分もあるかもしれない。

煌々と輝くテレビ これを破壊すると
真っ暗になる 暗視スコープに切り換えればご覧の通り



■ 影も完全リアルタイム生成する「Splinter Cell」グラフィックスの底力

 「Splinter Cell」のグラフィックスの技は光だけではない。影の表現も、これまでのあらゆるゲームグラフィックの最上位に位置するものとなっている。

 一般的な3Dゲームグラフィックでは影の表現は省略していたり、あるいは背景に対してはプリレンダーした影をおいている場合が多い。これはもちろん、グラフィックスの負荷を抑えるためだ。ところが、「Splinter Cell」ではこのテクニックを使うことができない。なぜならば光源を動的に設定した関係で、バランスを取るために影も必然的にリアルタイム生成しなければならないからだ。

 ところが影生成というのはかなり面倒かつ高負荷な処理系で、現在の3Dゲームグラフィックスにおいても最も手が抜かれている部分なのである。現在の3Dゲームグラフィックにおいて、あるピクセル(面、フラグメントと考えてもいい)の陰影処理を行なう際、基本的には視線ベクトルと光源ベクトルと面の向きを表す法線ベクトルの3パラメータで処理される。

 反射方程式の基礎に則った考えなので何の問題もないように思えるが、実は「光源からの光が第三者によって遮蔽されているかもしれない」という要素を完全に除外してしまっている。これは重大な「手抜き」で、だから鼻の穴や耳の穴の中が明るい3Dグラフィックスが平然と表示されてしまう。影生成は別処理系を用意しなければならないのだ。

 「Splinter Cell」では、この影生成をシャドウマッピング技法と呼ばれる影生成アルゴリズムを採用して、これをかなり徹底した次元で行なっている。「SCのグラフィックの見どころは影にある」といっても過言ではないのだ。

 シャドウマッピングとは光源を視点としてシーンをZバッファレンダリング(深度情報をレンダリング)して影分布マップ(シャドウマップ)を生成、この情報を吟味してファイナルフレームをレンダリングする。いわゆるマルチパスレンダリング技法の1つであり、シャドウバッファの生成回数は光源の個数分だけ行なう必要があるし、処理系としてはかなり重い。しかし、複雑なシーンでも正確に遮蔽を把握して影生成が行なえる利点がある。光源が移動したり消えたりした場合でも、それがリアルタイムに影生成に反映されるので高次元のリアリティが演出できるのだ。

 どの程度の影が生成されるのかは実際、自分の目で確認して頂きたいのだが、たとえば、段と段の間に隙間のある非常階段。光源が上にある場合、この階段の影に身を潜めると、階段の影と各段の隙間から漏れる光がサムの体に正確に投射される。金網やブラインドからの影と漏れた光なども正確に、シーン内の小道具、大道具、キャラクタ達にも投射される。

 「Splinter Cell」におけるこの徹底した影生成は、リアリティ表現に一役買っているのはもちろんだが、これがゲーム性に結びついているのもユニークだといえる。たとえば壁を背に様子をうかがっていると足音がする。廊下に視点をやると敵の影が視界に入る。これで敵がどのくらいの位置にいるかが把握できるのだ。

 また、部屋を物色していたところ、突然敵が部屋に入ってきて照明を点けたとする。この照明によってできた、人1人分だけ隠れられそうな本棚の影に身をとっさに潜めるといったこともできるのである。

 自己遮蔽表現の象徴ともいえる、自分の影が自分自身に投射される「セルフシャドウ(自己遮蔽影)」表現もちゃんと行なわれており、頭部に身につけているゴーグルの影は顔に投射されているし、頭部の影は胸に落ちるし、身につけているジャケットにくくりつけた弾薬パックのようなものの影ですら、ジャケット上に落ちる。

 また、キャラクタの影が別のキャラクタに投射される「相互等射影」表現は完璧に近い形で表現されており、たとえば、死体隠しの際にサムが肩に担ぎ上げた敵兵の影は指一本一本に至るまでサムの体に投射されている。ここまで徹底した影表現には手放しで誉め称えてあげたい。

 ただし、シーンによっては、背景小道具、大道具の一部に、いかなる光源状況でも影が出ないものがあったりする。このあたりはリアルタイム性が命のゲームということで適度に手を抜いているのかもしれない。

 なお、以前、UbiSoftスタッフにインタビューしたところでは、「Splinter Cell」の影生成は部分的にステンシルボリュームシャドウ(「DOOM III」などが採用する影生成方式)も併用しているとのことだった。おそらくポリゴン数の多いオブジェクトの影生成にはこちらの技法を用いている可能性があり、この2つの技法が交差する場合にそうした不都合が出ている可能性がある。

木漏れ日の中を前進するサム。当然のごとく木の葉の影や光筋がサムの体に投射される このようにブラインドからの光は正確にサムの体に投射される。これぞ「Splinter Cell」グラフィックスの底力
街灯に集まる蛾の影までが描き出される。この複雑な影描写はシャドウマッピングならではのもの セルフシャドウ表現にも対応。ゴーグルの影がサムの顔に、頭部全体が胸元に投射されている
門の模様がサムの体に正確に投射されている点に目を奪われがちだが、サムの腕の影がサム自身の体に投射されている点にも着目して欲しい ちょっとわかりにくいかもしれないが、サムの指の影は担ぎ上げている敵兵の手足にも投射されている。影へのこだわりがすごい



■ プログラマブルシェーダの効果を実際のゲーム画面で見たい人に

これがHDRレンダリング。足元の炎に注目。あまりにも炎が明るいためにサムの脚が火に溶け込んだビジュアルになっている。これがHDR表現によるサチュレーション。地味だがプログラマブルシェーダの効果だ
 「Splinter Cell」のグラフィックエフェクトの多くが、DirectX 8より提供されたプログラマブルシェーダテクノロジーによって実現されている。これは特殊効果や特別な材質の陰影処理をシェーダプログラムと呼ばれる処理系で行なうものだ。

 これによりGPUが本来持っていない全く新しいグラフィックス表現や材質表現が実現できるはずだったのだが、あまりゲームには活用されてこなかった。「Splinter Cell」は、この技術を積極的に採用しているのだ。これまでハイエンドGPUをもてあましていたPCユーザーにとって、まさに待望のソフト、ということができると思う。

 水面の表現は法線マップをピクセルシェーダで処理したバンプマッピングを使っているし、非常に明るい太陽光や高輝度の照明に対しては、最近にわかに流行になってきているハイダイナミックレンジ(HDR)レンダリングと呼ばれる技法をピクセルシェーダで実現している。

 HDRレンダリングは明るすぎて32ビット色表現に収まらない高輝度の物体に対し、その周囲を意識的にサチュレーション(飽和→例えば写真で言うところの白飛び)させるテクニックだ。蛍光灯を撮影したりすると周囲が霞がかって見えるだろう。これである。

 プレイステーションの時代からある、半透明のビルボード(スプライト)を光源に置く疑似技法と違って、視点との位置関係や他の物体との遮蔽関係によってその表情をドラスティックに変化させるので、非常にシネマチックかつフォトリアリスティックなビジュアル表現になっている。

 ちなみに「Splinter Cell」でやっているHDRは実はフェイクであり、実際のHDRはDirectX 9世代GPUの浮動小数点実数ピクセルを活用して初めて行なえるものなのだが、「Splinter Cell」のこの表現はこれはこれで面白い。この他、暗視スコープや感熱スコープの視界、早く動く物体へのブラー効果などもすべてプログラマブルシェーダを活用して行なわれている。

通常視界。この光筋表現に注目。これはムービーではなくリアルタイムグラフィックスだ 暗視スコープ視界。プログラマブルシェーダ活用のお手本的なビジュアルだ
液晶ディスプレイシェーダ。見る角度を変えると画面が本物の液晶みたいに色調が変わって白っぽくなる。凝りすぎ!! 夕闇迫る日暮れ、海上油田に潜入を試みるサム。写真にも見まごうほどのリアルな海面のさざ波の表現はプログラマブルシェーダによって実現されている
さて、ここには何があるでしょう? 感熱スコープで見ると…… サムが気絶させた敵兵達でした。ちなみに、この状態で床に寝ている敵に銃撃すると、感熱スコープ視界の体温分布もみるみる低温に移行していく。リアルすぎ……



■ 「Splinter Cell」を充分なパフォーマンスで動かすために

 ところで、一般ユーザにとって気になるのは、果たして自分のPCで「Splinter Cell」が動作するのか、という問題だろう。

 まず、CPUについては1GHzクラスのものがあればOKだ。筆者は1.6GHzと2.0GHzのPentium4でプレイしてみたが両者とも満足なパフォーマンスが得られていた。問題はGPU(ビデオカード)の方だ。

 まず、びっくりする人もいるかもしれないがビデオメモリは多ければ多いほどいい。「Splinter Cell」の影生成に使われているシャドウマッピング技法では、シャドウバッファの作成に余計にビデオメモリを使用するからだ。また、非常に複雑なジオメトリのシーンでは頂点バッファやインデックスバッファも大量に確保されることもあり、「Splinter Cell」を動作させるにあたってはビデオメモリは多すぎて困ることはないのだ。

 ちなみにビデオメモリ64MBだと最高精度の影生成が行なえない(選択できない)。グラフィックオプションを最高位設定にしたい人は最低でも128MBのビデオメモリが必要になる。ついにビデオメモリ128MBが当たり前の時代に突入し始めているのだ。

 今回GeForce3Ti200(64MB)、RADEON8500LE(128MB)、GeForce4Ti4600(128MB)でプレイしてみたのでそれぞれのインプレションを簡単に述べておこう。なお、動作条件はCPUをPentium4 2.0GHz、画面解像度を1,024×768/32ビットカラー、アンチエリアスなし、アニソトロピックフィルタ無し、としている。

 GeForce3Ti200/64MBではフレームレートは20~40といったところでプログラマブルシェーダを多用したシーンやジオメトリが複雑なシーンでは15fps程度まで落ちる。ビデオメモリが64MBなこともあり、Shadow Resoultion、Shadow Detail、Effects QuailtyはそれぞれMedium、Highしか選べなかった。

 RADEON 8500LEは、ビデオメモリが128MBモデルだったので、ShadowResoultion、ShadowDetail、EffectsQuailtyはそれぞれHigh、High、VeryHighが選べるようになる。ただしフレームレート的にはGeForce 3Ti4200とほとんど変わらない。

 GeForce4 Ti 4600になると、前者の2倍のフレームレートが出るようになり、グラフィックスオプションも最高位に設定でき、非常に快適かつ美しくなる。いちおう、DirectX 7世代GPU、たとえばGeForce 2/2MX/4MXファミリーもサポートされていることになっているが、この世代ではプログラマブルシェーダが活用できないのでビジュアル的には非常に寂しいものになる。

 ぜひとも、これを機会にDirectX 8世代以降のGPUに買い替えて貰いたい。また、逆に、DirectX 8世代、9世代の高機能GPUを持っているPCユーザーは、そのグラフィックス機能を現実的な形で活かすためにも「Splinter Cell」を購入して頂きたいと思う。

物理エンジンも優秀。布シミュレーションエンジンが搭載されているので、ビニールシートの中を進むとリアルに折れ曲がる RADEON8500LEによるスクリーンショット。ちゃんとシャドウマッピングによるリアルタイムシャドウも正確に描画される
複雑なジオメトリ構造を持つ石油コンビナートのシーン。ここでも影の表現は正確に描き出されている。こういったシーンでは最新GPUでないと遅くなる GeForceユーザーはドライバを最新のVer.43.45以上にすること。でないと、シャドウバッファの作成に失敗して影がグチャグチャになる(金網の模様が出ていない)


(C) 2002 Ubi Soft、 Inc. All rights reserved. Ubi Soft Entertainment and the Ubi Soft logo are registered trademarks of Ubi Soft、 Inc. Splinter Cell is a trademark of Ubi Soft Entertainment、 Inc. All Rights Reserved. All other trademarks are the property of their respective owners Xbox is a trademark of Microsoft Corporation in the United States and/or other countries. Unreal Engine is a trademark of Epic Games Inc

□「Splinter Cell」公式ホームページ
http://www.splintercell.com/
□関連情報
【2003年2月18日】「Tom Clancy's Splinter Cell」Playable Demo
http://game.watch.impress.co.jp/docs/20030218/demo0218.htm
【2002年4月19日】Ubi、「Tom Clancy's Splinter Cell」をXbox、PC向けに発表
サイバーテロに対抗するスニーキング系アクションゲーム
http://game.watch.impress.co.jp/docs/20020419/ubisoft.htm

(2003年4月2日)

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


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

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

Copyright (c) 2003 Impress Corporation All rights reserved.