イベント
[SIGGRAPH 2015]「The Witcher 3」メイキングセッションに見る,先端的なオープンワールドゲームの実装テクニック
SIGGRAPHというイベントは,米国ロサンゼルスと,それ以外の地域での開催をほぼ交互に繰り返すのが通例となっており,2014年の開催場所はカナダ太平洋岸のバンクーバーだったので,今年はロサンゼルスの番というわけだ。会場は,「Electronic Entertainment Expo」ことE3が開催されることでも知られるロサンゼルスコンベンションセンターである。
近年は商業イベント的な側面も色濃くなってきてはいるものの,SIGGRAPHはそもそもが学会である。そのため,開催規模や来場者数はE3ほど多くはなく,それゆえに,E3のようにコンベンションセンター全体を覆う巨大広告のようなものはない。
例年通り,日本からも数多くのゲーム開発者が来場しており,初日だけでも,スクウェア・エニックスやソニー・コンピュータエンタテインメント,ポリフォニーデジタルにセガゲームス,トライエースやシリコンスタジオの開発者を見かけるといった状況だった。ゲーム開発者向けイベントである「Game Developers Conference」(以下,GDC)と比較すると,報道関係者の数は少ないものの,そこかしこで日本語が聞こえてくるので,全来場者に対する日本人の割合は,GDCに優るとも劣らないのではないかという印象を受ける。
SIGGRAPH 2015では,ゲームグラフィックス関連のセッションも多数予定されている。初日の9日には,トライエース代表の五反田義治氏と,シリコンスタジオの川瀬正樹氏らによる光学ベースのポストエフェクト技術の解説セッション「Real-Time Rendering of Physically Based Optical Effects in Theory and Practice」が行われた。それ以外にも,「Uncharted 4: A Thief's End」や「The Order:1886」「Deus Ex: Mankind Divided」「Rise of the Tomb Raider」などのメイキングセッションが行われる予定であるなど,ゲーム関連セッションは今年も充実している。筆者がカバーできる範囲でレポートしていきたい。
何もかも巨大になったWitcher 3
「Killing Monsters: Behind the Scenes of the Witcher 3: Wild Hunt」と題されたこのセッションは,同作におけるグラフィックスの仕組みや仕様を解説する「Building the World of The Witcher 3: Wild Hunt」と,グラフィックスエンジンの詳細が解説された「Rendering Features of The Witcher 3: Wild Hunt」の二部構成で行われた。その全体をレポートするのは時間がかかりすぎるので,本稿では,ゲーム開発者以外でも分かりやすい話題の多かった前半セッションの概要をレポートしたい。
最近では日本のゲーム開発でも,Dragon’s Dogmaシリーズや「METAL GEAR SOLID V: THE PHANTOM PAIN」,「FINAL FANTASY XV」など,オープンワールドを題材にしたゲームが相次いで発表されている。動的な世界の構築は,先端的なゲーム開発シーンにおいて,技術的なトレンドともなりつつあるようだ。
2011年に発売された前作である「The Witcher 2: Assassins of Kings」(以下,
また,Witcher 2では,探索できるエリアの面積が1.2km2だったのが,
グラフィックスエンジンは物理ベースレンダリングを採用
プラットフォームがPlayStation 4(以下,PS4)およびXbox Oneとなったことで,Witcher 3ではグラフィックスエンジンも一新し,現行世代では標準仕様とも言える物理ベースレンダリングが採用されている。
レンダリングエンジンの基本は,Deferred Rendering(ディファード・レンダリング)ベースで,光源のカリング処理をGPUのCompute Shader(コンピュートシェーダ)で行う「Tiled Base Deferred Rendering」を採用する。半透明といった特殊な処理が必要なオブジェクトには,Forward Renderingを別途適用しているとのこと。
ちなみに,開発スタジオは違うが,「Battlefield 4」などElectronic Artsのゲームでお馴染みのゲームエンジン「Frostbite」も,この方式を採用していたりする。
拡散反射系はLambert(ランバート)モデル,鏡面反射系はCook-Torrance(クック・トランス)モデルを採用しているとのこと。シェーダはいわゆる「Uber Shader」(万能型シェーダ)設計となっており,1つのシェーダでさまざまなマテリアルを表現できる,近代的仕様になったとKrzyscin氏は述べていた。それにより,Witcher 2では110個もあったシェーダ数が,Witcher 3では,フォトリアル度が向上しているにもかかわらず,29個に収まったそうだ。
最近のゲームでは珍しくないが,Witcher 3もゲーム内で昼夜が刻々と変化する表現が採用されている。昼夜の変化を表現するうえで鍵となるのが,ライティングだ。
Witcher 3では,全方位光源としてキューブ環境マップを使う「Imaged Based Lighting」(イメージベースライティング)を採用しているのだが,ここで使うキューブ環境マップは,アーティストが手作業で要所要所に設定した取得ポイントで生成されたものを使っていると,Krzyscin氏は説明ししている。鏡面反射用のキューブ環境マップは128×128テクセル,多少粗くても構わない拡散反射用は16×16テクセルとのことだった。
昼夜の変化による表現を実演したデモを動画で撮影しておいたので,そちらも参照してほしい。
Krzyscin氏は,オープンワールドゲームでは欠かせない表現である天候システムの概要も説明した。
それによると,晴天や曇り空,雨天や雪といった天候テンプレートをあらかじめ制作しておき,天候を構成する風や雨の強さといったパラメータを調整することで,さまざまな天候バリエーションを引き起こせる仕組みになっているそうだ。
とくに風は,Witcher 3における天候システムの重要な要素になっているそうで,
雨や水に触れたキャラクターが濡れる表現も導入されている。キャラクターは,ボーンごとに「Wetness」(濡れ具合)のパラメータを持っており,川に入ったり,雨に当たったりすると濡れ具合が上昇し,水や雨から離れると,時間経過によって濡れ具合は減るという仕組みになっているとのことだった。これも動画で見ると分かりやすい。
水濡れを表現するシェーダは,物理ベースのマテリアルシステムで濡れた部分のラフネス(粗さ)を下げることで鏡面反射効果の度合いを上げると同時に,アルベド(反射率)を下げて黒ずませることで実現している。衣服が水に濡れたりすると,水の影響で材質表面はテカテカと光沢が増すが,色は黒ずんで見えるだろう。これをシェーダで表現しているのだ。
屋根と壁に囲まれて雨の影響を受けない,建物内部のような場所では,建物全体にインテリアボリュームを設定する。インテリアボリュームが設定されている内側には,天候システムの影響が及ばないようになっているので,「建物の中なのに雨が降ってくる」といった,既存のオープンワールドゲームでたまに見られる現象が,Witcher 3では起きないというわけだ。
これによりどのような表現が可能になるかというと,たとえば,空(直上)を向いている部分に雨水が当たると,そこに波紋が広がるような効果が適用され,空に対して横を向いている部分に対しては,雨水が下に流れる効果が適用されるといった具合だ。
オブジェクトやキャラクターが動いたときにも,面単位で動的に雨の効果を適用できるので,「シンプルながらもリアルに見える」のだと,Krzyscin氏は説明していた。
Witcher 3のインタラクションシステム
Witcher 3で力を入れているのは,風景の表現だけではない。キャラクターと環境の相互インタラクション表現にも力を入れて開発したと,Krzyscin氏は述べる。ただ,力を入れたとはいっても,1つ1つの実装はシンプルであるそうだ。
たとえば,キャラクターの動きに合わせて動く衣服や,オブジェクトの動的な破壊には,NVIDIAの「PhysX」によるリアルタイムシミュレーションで動きが生成されるという。また,水中に入った剛体オブシェクトの動きには,簡易的な浮力シミュレーションが適用されるほか,草木とキャラクターが衝突したときには,カプセル型の簡易な衝突判定を行って,草木が倒れる表現が行われるそうだ。
キャラクター同士のコミュニティシステムや野生動物の挙動制御,動物の群れ制御といった機能も実装されているそうだが,「話が長くなりすぎる」(Krzyscin氏)ということで,今回はその中から,群れの制御システムが簡単に説明された。
群れの制御システムは,鳥や魚の動きに使われているそうで,互いが重ならないように衝突を避ける挙動を事前に計算しておいて,ゲーム内ではそれに乱数要素を与えることで,有機的な群れの動きに見せているとのことだった。これも動画で見ると分かりやすい。
Witcher 3の地形表現
最後に説明されたのは,地形や水面といったフィールドの表現に使われた技法についてだ。Witcher 3における地形は,凹凸分布を表したハイトマップテクスチャから生成する仕組みで,このハイトマップを種にして,視点に近いほど精度の高い適応型テッセレーションを行うことで,多ポリゴンの地形を生成しているとのこと
地形に対するテクスチャマッピングは,X/Y/Zの3方向から平面マッピングを行うTri-Planar Mapping法(※Tri-Planar Texturingとも呼ばれる)が採用されている。これにより,複雑な凹凸のある地形に地表面のテクスチャを貼り付けても,異常な変形が起きにくくなるわけだ。
なお,地形の上に置かれた道はプログラムによる生成ではなく,アーティストによって設定されたものである。
ちなみに,波動シミュレーションは,Jerry Tessendorf氏の論文「Simulating Ocean Surface」(関連リンク)で提唱された手法を実装したものだ。この手法は,Crysisシリーズを始めとして,さまざまなゲームで実装されており,複雑な波動の重ね合わせを高速フーリエ変換(FFT)によって周波数領域で行う点が特徴となっている。
Witcher 3の場合,表現対象となる波の解像度を512×512ポイントのグリッドで処理しているそうだ。最初の実験ではCPUで行っていたこの計算を,製品版ではGPGPUによる処理へと落とし込むことに成功したので,他の処理とオーバーラップ実行させることにより,処理時間の隠蔽に成功したと,Krzyscin氏は説明していた。
オープンワールドの表現というのは,言うなれば「世界シミュレータ」を作っているようなものだ。数十km四方という有限の空間であっても,そこに存在するあらゆる要素を詰め込んでいかなければ,説得力のある世界は構築できない。だからこそ難度の高い表現テーマである。
完全なる世界シミュレータの構築は非現実的であるので,「どの要素をどの程度の品質で実装していくか」が重要になってくるわけだが,Witcher 3では,1つ1つの実装様式にはシンプルなものを選びつつ,考え得るすべての表現要素を実装していくという,力業や物量によるアプローチでオープンワールドを構築したといえそうだ。
いずれにしても,国内外の先端的ゲーム開発シーンでは,オープンワールド表現の探求が今後も進んでいくことは間違いないだろう。
「ウィッチャー3 ワイルドハント」4Gamer特設サイト
「ウィッチャー3 ワイルドハント」公式サイト
- 関連タイトル:
The Witcher 3: Wild Hunt
- 関連タイトル:
ウィッチャー3 ワイルドハント
- 関連タイトル:
ウィッチャー3 ワイルドハント
- この記事のURL:
キーワード
The Witcher, Witcher logo, CD PROJEKT S.A. and CD PROJEKT RED logo are registered trademarks of CD PROJEKT S.A. All rights reserved.
Wiedzmin (C) CD PROJEKT S.A, based on the novels by A. Sapkowski. All Rights Reserved.
The Witcher, Witcher logo, CD PROJEKT S.A. and CD PROJEKT RED logo are registered trademarks of CD PROJEKT S.A. All rights reserved.
Wiedzmin (C) CD PROJEKT S.A, based on the novels by A. Sapkowski. All Rights Reserved.