[TGS2004#47]EpicGamesインタビュー,UnrealEngine3の目指す3Dゲーム新次元
2004/09/26 05:41
今回話を伺ったEpicGamesのマーケティングVP マイク・レイン氏
 東京ゲームショウに合わせて来日したEpic GamesのマーケティングVPのマイク・レイン氏に,同社が開発しているUnrealEngine3について解説してもらう機会を得た。
 まず,GDCやE3で発表された従来のデモムービーと,新しく追加されたムービーを見せてもらって解説をしてもらったのだが,インタビューの内容に入る前にUnrealEngine3自体についての解説をしておこう。
 残念ながら撮影したムービーの掲載許可は下りなかったので,だいたいのところを文章で解説しよう。E3のデモについては,あちこち(ここら辺とか)にムービーデータが落ちているので参考に。

■次世代ゲーム環境:UnrealEngine3
 まず,E3時点での画像。とりあえずじっくり見ていただきたい。どういったものが盛り込まれているのかを最初に解説しておこう。





ラグドール処理の例。死体や人形など人形の物体を放り投げても自然な動きが
●HDR,ソフトシャドウ
 背景のディテール感も凄いが,全体に64ビットカラーのHDR(High Dynamic Range)レンダリングが行われている。影は柔らかく,強い光の反射はブルーム処理で輝いている。元々だいたい2億ポリゴンのシーンが,ツールで最適化されて50万ポリゴン程度に落とし込まれている。クオリティはほぼ2億ポリゴンのままだ。
 もちろんShaderは使いまくりで,さまざまなものの質感を描き分けている。これらにより,これまでのリアルタイムゲームでは考えられなかったようなクオリティの画面が実現されている。
 ステンドグラスを透過した色付きの光,屈折による画像の歪み,発光体といったものがゲームエンジンでサポートされている。






●物理エンジン
 表示関係が強力なのはよいが,それだけではゲームはできない。UnrealEngineでは,物体の物理的な運動をシミュレートする機能も加わっている。たとえば,FPSでドラム缶を撃ったら,吹っ飛んで車に当たって跳ね返る……といったシーンでも,当たり判定や衝突後の挙動などを自然に制御するのは簡単ではない。もっと複雑な形のものが転がる場合などを考えると物理エンジンは必須になってくる。
 部屋の中にあるものを放り投げるデモでは,レンガの下のブロックを抜いて崩したり,扉の開いた冷蔵庫に人形を放り投げたり,ぐにゃぐにゃの物体をほかの物体に放り投げたりといった処理が展開されている。

●ノーマルマップ
 キャラクターモデリングは600万ポリゴンクラスで行って,それをツールでローポリゴンとノーマルマップに落としている。結果的には,元の600万ポリゴンと同等のビジュアルが実現される。まあ最近だとDOOM3が採用してビジュアルクオリティを大幅に上げているが,それとほぼ同様な技術だ。DOOM3では"Carmak Magic"のツールで自動生成されるという話だったが,UnrealEngine3では分散コンピューティングを使ったツールでリアルタイム処理を実現しているようだ。



3dsMaxで制作された元々のポリゴンデータ(左)とゲームで使用してるポリゴンデータ(中央),そしてノーマルマップを加えられた実際のレンダリング結果(右)。ポリゴンレベルでは失われていたディテールがノーマルマップとしてそっくり復元されている


世代別のキャラクター推移がよくわかる
■これまでのエンジンとの違い

 これまでのムービーでもUnrealEngine3(余談だが,Unreal3EngineではなくUnrealEngine3だと念を押された。最初から,Unreal以外でも広く使えるEngineとして作られている)の威力を示す凄いものだったのだが,今回は新しくなった部分の解説ムービーが加わった感じだ。

 これまでのエンジンとの違いを,Unrealシリーズで同じキャラクターを比較していた。1999年のUnreal1ではだいたい800ポリゴンでキャラクターを作っていたのが,2002年のUnreal2では3000〜3500ポリゴンUnreal3では600万ポリゴン(モデリング時。後述)になるという。
 また,Shaderの使い分けなども細かくなされている。とくに肌の質感は重要だ。手のひらを太陽に透かしてみれば分かるように,人体というのは意外と光を透過するものだ。しかも膜状組織が多く多層構成になっている。皮膚に当たった光は大部分が表面の凹凸で散乱し,一部は体内を透過し,また一部は体内で反射して外に出てくる。その各段階で色の吸収が発生してくる。表面だけの反射では自然な皮膚色は作成できない。半透明体で内部拡散を考慮したShaderを組んでやらなければならない。
 これがレンガだったら,少々変わった色でも「この土色はおかしい!」という人はめったにいないが,人間の目はこと人の肌色については非常に敏感に不自然さを見分けるものなので,リアルな人体モデルを目指すうえでは手を抜けない部分となっている。個人的な感想では,映画などでも肌のシェーディングは,頑張っているものほど「リアルな死人の肌」の質感が出てきていて(そっちに詳しいわけではないが,生理的に気持ち悪い),もう一歩研究が必要そうな分野だと思われる。NVIDIAのNaluにしても「これって水死体だよね」「だよね」という感想も結構耳にする。
 で,UnrealEngine 3の肌のShaderだが(Shader自体はプログラマなりデザイナがいくらでも自由に作れるのだけど),サブサーフェイススキャッタリング(表面下散乱)がShaderで実装されており,サンプルの絵を見る限りはオイリーなテカりが均一に分布しすぎている気はするが,そこそこよい感じではないかと思う。というか,リアルタイムゲームでも,このあたりまで目を向けるようになってきたのは感慨深い。Shaderハードウェアによる試行錯誤の容易さを考えれば,ゲームがフィルムを超える日も遠くはないだろう。



肌のシェーディング例


■超高度な処理を簡単に。超豪華ツール群

 UnrealEngine3がとくに注力しているのは,高度な機能をすべてグラフィカルなツールで扱えるようにすることだ。これにより,プログラマでなくても,さまざまな作業が行えるようになる。また,全体的な生産性も大きく上げることができるだろう。

・Shaderツール
 グラフィカルな環境には,Shader周りの操作も入ってくる。NVIDIAのFX ComposerやRenderMonkeyなどといったビジュアルなツールは現れているものの,Shaderプログラマというのは,まだそれなりに特殊な人たちである。それを普通のデザイナーレベルの人でも,非常に複雑なShaderを作れるように仕上げることを目指しているようだ。現状のものを見る限り,DiffuseやSpecularといった属性に素材をつないでいき,なにをやっているのかをすべてビジュアルに把握できるように配慮されている。ある程度の知識は必要になるのだろうが,かなり直感的に使えるツールになっている感じである。

・Physicsツール
 物理的な挙動を簡単にシミュレートすることができるツールだ。レンガの1個1個で摩擦係数を変えることで,氷のような床を滑らせることもできれば,ずっしりと動かない設定にも簡単にできる。設定した内容で崩したり,放り投げたりぶつけたりといったことで質感や挙動を確認できるツールだ。
 また,多関節体やいわゆるラグドール処理(人体の物理的な挙動を処理すること)に関しても専用ツールが用意されている。
 関節をいわゆる「ボーン」で処理するのはこういう場合の常道だが,人体というのは結構柔軟で,自由度が高い。それと同等の動きをさせるためにたくさんのボーンを埋め込んで処理するのが一般的だが,そうやって自由度を上げていくと今度は思わぬ方向に関節が曲がってしまったりという弊害も出てくる。ラグドール処理はたとえば,爆風で人間が吹っ飛ばされたり,崖から落ちたりといったときに用いられるもので,不随意の物理運動だけで各関節なりがどういう動きをするかをシミュレートする。下手なシステムだと,肩などの多軸回転する関節がおかしな角度になったりすることもありがちだ。
 このツールでは各関節の動作範囲などを分かりやすく設定でき,その場で挙動を確認することもできる。操作が手軽なのが魅力だ。

・地形作成ツール
 絵を描くようにマウスで自在に地形が生成できる。傾斜の急な部分は崖として自動的に処理され,見た目にも自然な地形が,ものの10秒でできあがる。

・レベル作成ツール
 FPSの基本マップなどを制御するためのツールも用意されている。これもプロパティシートをぐりぐりとすると部屋や通路ができていき,さらにマップ内でのいろんな仕掛けや挙動などを簡単なスクリプトで記述できる。Kismetと呼ばれるスクリプト処理系もすべてビジュアルである。基本的にイベントドリブンのシステムのようだが,それぞれのオブジェクトのハンドラにイベントをつないでいくだけで,それなりの処理ができあがる。それがまた,実際と同様のゲーム画面として即座に確認できる。
 最近は曲線の挙動も可能になったので,非常に複雑な挙動も実現できるようになったとのことだ。



■EpicGamesインタビュー,一問一答

4Gamer(以下,4G):
 UnrealEngine3でのキャラクターでの600万ポリゴンというのは,モデリング時点でのポリゴン数ですか? おそらくノーマルマップを使っていると思うのですが。

EpicGames(以下,EG):
 そうです。オリジナルのポリゴン数です。ノーマルマップを使っていますので,ほぼ同じディテールを再現しています。実際のポリゴン数は7000から8000ポリゴンですが,UnrealEngine2の倍のポリゴン数でも,現在のハードウェアで軽々と動きます。ノーマルマップは,これまでのハードウエアではなかなか実用的でなかったのですが,GeForce6シリーズで実現できました。


4G:
 スクリプティングについてですが,基本的にレベルなどはデザイナーが制作することを想定されているのでしょうか?

EG:
 Kismetを使うことによって,これまでプログラムできなかった人たちもUnrealスクリプトの力を生かすことができるようになってきています。ただ,レベルデザイナーになるためにはプログラム能力は必要とされませんが,ある程度の技術に精通して,なにができてなにができないか,マシンの限界なども理解している人である必要はあります。どういったレベルに関する知識は必要です。高速に動くレベルを作るには,レベルに精通している必要はあるでしょう。そういう人こそがKismetを使いこなせるのです。
 まだ実際にゲームをお見せすることはできませんが,Kismetによって,驚くほど複雑なこともできるようになってきています。現在のマシンは非常に高速ですから,スクリプト処理にかかる時間もほぼ無視できますし,Kismetで非常に複雑な処理を行うことも簡単です。とくに最近のバージョンでは曲線処理もできるようになったので,信じられないような処理も,デザイナーがKismetで実現できるようになりました
 これによりプログラミングにかけるコストを下げて,より重要な部分にプログラマを集中できるようになります。


4G:
 物理エンジンはUnrealEngine2のときと同じく,KarmaEngine(英MathEngine社の物理エンジン)を使っているのでしょうか? 
EG:
 いいえ,現在はNovadexを使っています。スイスの会社が作成しているエンジンです。Karmaよりもずっと機能も豊富で性能も上です。


■GeForce6以降にターゲットを絞った新システム
4G:
 UnrealEngine3が対象にしているハードウェアはどのようなものでしょうか? 

EG:
 最小スペックとしてDirectX 9対応ハードウェアを対象としています。GeForce6シリーズは,現状でUnrealEngine3のすべてに対応できる唯一のカードです。UnrealEngine3ではShaderModel 3.0が最低条件ですから,現状ではGeForce6シリーズのみになっていますが,おそらくそれは広げられていくことでしょう。また発表はされていませんが,誰もが登場すると知っている次世代の家庭用ゲーム機(編注:俗にいうXbox2か)を対象としているわけです。今後,余力があれば,DirectX 8世代へも広げられるかもしれません。


4G:
 Bioware社などへのエンジンのライセンス供与についてついて聞かせてください。

EG:
 ライセンス供与はすでに何社かと行っています。公表されているのはBioware社と,EverQuestを作ったスタッフがスピンアウトして作ったSigil社だけですが,これからもっと増えてくるでしょう。我々としては,ライセンス契約をしてもそれを公表することを義務づけているわけではありません。ですから今後は公表されなくても,多くの会社がこのエンジンを使っているかもしれません。


4G:
 では,今後ハイクオリティなゲームが登場したとして,UnrealEngine3を使っているかどうかは見分けられるものでしょうか?

EG:
 Shaderが自在に使えたり,カスタマイズできる部分が非常に多いので,見た目でUnrealEngine3かどうか区別するのはほぼ不可能でしょう。たとえば,UBIの出しているSplinterCellとXIIIは両方ともUnrealEngine2を使っていますが,両者の見栄えはかなり違います。これがUnrealEngine3になると,もっと大きな差になってくるでしょう。


4G:
 これを使ったゲームはいつ頃登場してくるのでしょうか?

EG:
 ライセンシーの作業次第ですので,こちらでは分かりません。ただ,2005年秋を目指して作業している会社はあるようです。我々もゲームを作っているわけですが,それは時間をかけて開発していますので2006年の初頭ないし半ばまでは出てこないでしょう。


4G:
 デモ版などは予定されてますか?
EG:
 ゲームを出すときには。


4G:
 ということは2006年ですね?(笑)

EG:
 2007年か2008年かも……冗談です。200X年としておいてください(笑)。毎週エンジンは新しくなっています。しかし,デモというのはそう頻繁には作りませんので,なかなかエンジンに追いつきません。


4G:
 影についてですが,これはステンシルシャドウを使っているのでしょうか? シャドウマップを使っているのでしょうか?

EG:
 両方です。キャラクターには,シャドウマップに似たものを使っています。UnrealEngine3には,3種類のシャドウテクニックがエンジンに用意されていて,アーティストやデザイナーがそれらを自由に選択できるようになっています。ステンシルやシャドウマップや周囲の照明による影を選択できます。室内,屋外など条件で使い分けられます。


■GPUロードは100%!

4G:
 物理演算はCPUのみで行っているのでしょうか? GPUを使っている部分はあるのでしょうか?

EG:
 GPUにそんなことをする余力があるかというとまったくありません。GPUに余裕があるなら,それはグラフィックに使うべきです。GPUが高速になったらもっとグラフィックに使うことができます。常にGPUはビジーになるでしょう。CPUを100%使うことは難しいのですが,GPUを100%使うことは難しくありません。我々は常に100%使っています
 CPUのほうもプロセッサはどんどん進化していきますので,それには非常に期待しています。いまはマルチコアのプロセッサが出てくるのを非常に楽しみにしています。


4G:
 非常に豊富な機能を持っているわけですが,現状のハードウェアではUnrealEngine3でもまだ実現できていない機能というのはたくさんあるんでしょうか?

EG:
 どのエンジンでもそういう問題はあります。まだ現実的でないという理由で機能が絞られることもあります。ただ,いままで以上にUnrealEngine3というのはハードウェアの限界に挑戦しています。というのも,このエンジンは最低でもGeForce6以降というところから始めているからです。過去のエンジンは数世代前のハードウェアで動かすことを考えていますから,どうしても妥協する部分が多くなります。今回はそういった部分を排除して,現在最新の,そして将来のもっとパワフルなマシンを想定して,非常に高いレベルのものを目指しています。
 例えば,現在注目されているHalf-Life2とかDOOM3などは,1世代から2世代前の技術を対象にしていますので限界はあります。決してそれらの悪口を言うつもりはありませんが,それらのゲームは今年発売されるものであり,我々のゲームは来年以降発売されるものだからです。現状の世代のハードウェアでも動くこと,さらに1世代,2世代前のハードウェアでも動くものと,これからのハードウェアで動くものとでは大きな違いがあります。


■早く出てこい対応ゲーム

 初めてデモを見たときのインパクトも凄かったが,今回のインタビューでUnrealEngine3が想像以上に強力なゲームエンジンであることを確認できた。GeForce6以降しか対象にしないという思い切った 方針にも最初は驚かされたが,要するにXbox2をメインターゲットとしていると考えるのであれば分かりやすい。数年後のPCについていえば,確実にもっともっと強力になっているので,将来的にはほぼ問題はない。CPUなどと違い,ビデオカードはかなり頻繁に交換されるものだとの認識があるようで,今後の展開に不安はないようだ。
 EpicGamesでは,それまで続けていたエンジンをベースに2年かけて新しいエンジンを制作してきたという。今後,他社が追随しようとしても数年はかかるだろう。それくらいのアドバンテージを確保していている。
 とにかく早くこのエンジンを使ったゲームを見てみたいものだ。RPGでは定評のあるBiowareやEQを作ったメンバーの会社Sigilといった有力メーカーが早々と採用しているというのも,期待のしがいがある。
 また,仮にこのレベルのエンジンが標準となるとすると,Xbox2ゲームのビジュアルクオリティは計り知れないものになる。DirectXなどに見られるように,同じハードウェアでも,最近はゲームエンジンなどのシステムで仕上がりは大きく違ってくる。システムの機能が事実上の性能を規定するといってもいいだろう。今後のゲームをリードするのは,このようなゲームエンジンなのかもしれない。(aueki)

UnrealIII関連の記事は「こちら」
「東京ゲームショウ2004」の記事一覧は,「こちら」







友達にメールで教えよう!

この記事へのリンクはこちら
http://www.4gamer.net/news/history/2004.09/20040926054110detail.html