オーバーウォッチ

「オーバーウォッチ 2」の環境設定:エンジニアリングチームの舞台裏

「オーバーウォッチ 2」の環境設定:エンジニアリングチームの舞台裏

皆さん こんにちは!「オーバーウォッチ」開発チームのソフトウェアエンジニア、マルコ・アラミアです。チームは最近「オーバーウォッチ 2」用の新技術の開発を終えたばかりです。この機会に「オーバーウォッチ」開発チームのブルース・ウィルキーとファビアン・クリスティンに加わってもらい、コミュニティの皆さんにゲームエンジンの改良プロセスをご紹介します。

今回エンジンに追加した「環境設定」という技術は、実装後まもなくマップ制作とデザインに欠かせないワークフローとなりました。この機能は「オーバーウォッチ 2」のエンジンやツールの一環として開発されたものですが、最初の構想を立てたのは才能あふれるライティングアーティストのファビアンでした。マップ制作のフローを一変させることになったアイデアの提案者本人に、そのきっかけやデザインの過程を聞きました。

それではさっそく「環境設定」についてご紹介します!


アイデアの提案

ファビアン:「オーバーウォッチ」の明るくてカラフルな世界観を表現する上で、大きな役割を担うのがマップです。マップ作りはレベルデザイナーが全体の構造を組み立てるところから始まります。大きなグレーの箱を並べて、面白くてバランスのいいゲームプレイができるようにマップを調整していきます。この段階でまず重要なのが、プレイして楽しいマップを作ることです!テストを十分に繰り返したら、今度は環境アーティストたちの出番です。グレーの箱を緻密な建物や環境オブジェクトに置き換えて、プレイヤーが訪れるロケーションに彩りを添えていくことになります。 

環境作りと平行して、ライティングアーティストがマップの物語を効果的に演出するライティングを作っていきます。「オーバーウォッチ 2」では、ロケーションの印象がガラリと変わるような新しい雰囲気作りを目指しました。未来都市ヌンバーニが暖かなアフリカの夕日に包まれている光景や、雨の日のパリで、店先から漏れる明かりに誘われてクロワッサンでも食べながら雨宿りをする場面を想像してみてください。

環境設定はこうした光景を作るために開発されました。このシステムを導入することで、ライティング、音響、そしてエフェクトの大まかな構成要素を独立したアセットとして分割し、ブロックのように組み合わせて「環境シナリオ」を作ることができるようになったのです。これらはマップ間で共有することもできますし、マップ内に複数のシナリオを存在させることも可能です。

デスマッチ・マップ「NECROPOLIS」を例に見てみましょう。これまでプレイヤーが目にしてきたのは、夜の冷たい青色と、建物を取り囲む松明のオレンジ色の対比が印象的な夜のシナリオでした。

ここで別のシナリオ、例えば「TEMPLE OF ANUBIS」の砂漠らしい暖色系のカラーリングを試すことになったとします。環境設定システムがあれば、「TEMPLE OF ANUBIS」の環境設定を「NECROPOLIS」に適用するだけで作業完了です。 

これだけでも見違えるようになりました!さらに太陽の方向を微調整すれば面白い影ができて、よりよい景色になるはずです。そこで太陽の方向だけを上書きした新しい環境設定を作り、出来上がった“ブロック”を「TEMPLE OF ANUBIS」に重ねました。 

完成です!

柔軟で扱いやすい環境設定のおかげで、新しいマップのライティングの試作がほんの数時間で完了することができます。さらに反復作業の時間を短縮することで、実験的な試みやクリエイティブな作業、そしてマップのバラエティを増やすことにより多くの時間を割くことができるようになります。

それだけではありません。先程は主に見た目にかかわる要素を挙げましたが、環境設定を動的に組み合わせることで新たなゲームプレイ要素を生み出すこともできるのです。こんな筋書きを想像してください。ヒーローがオーバーウォッチの衛星接続を復旧させるためにネクロポリスに派遣されます。するとヌルセクターを迎え撃っている最中に砂嵐が巻き起こり、勢いを増しながら現在地に迫ってきました!晴天のシナリオの上に砂嵐の環境設定を追加し、徐々に雲が広がり砂のエフェクトが濃くなっていくようにすることで、ミッションの難易度を引き上げることもできるのです。

 

この技術によって、様々な天候の変化を演出できます。雷雨や降雪など、変化に富んだ環境シナリオを作り出すことで、プレイするたびに新鮮な体験が味わえます。

次のセクションでは、マルコに環境設定の技術面を解説してもらいます。

環境設定の実装

マルコ:ファビアンの抱いたイメージはとても野心的なもので、「オーバーウォッチ 2」の環境に使用できるパワフルなシステムをデザインする必要がありました。ブレインストーミングを重ねた結果、複数の環境設定を重ね合わせて同時に適用できる仕様を採用することに決めました。環境設定を重ねて動的に変化させるだけでなく、追加や削除も自由にできるようになっています。このシステムの強みがわかるのは、エンジンが重なりあった状態を読み取り、すべて統合して最終的な環境を書き出した時です。Photoshopを使ったことがある方ならピンとくるかもしれませんが、複数のレイヤーを統合して1枚の画像にした状態をイメージしてください。

それぞれの環境設定には、風の強さや方角、太陽光の色など、環境を構成する要素の一部が指定されています。環境設定を重ねると、指定された要素のみが最終的な映像に表れます。「RIO DE JANEIRO」にあるルシオのクラブを例に見てみましょう。カメラの露出とカラーグレーディングの要素を指定する環境設定が重ねられています。

 

ベースの環境設定にはマップの構成要素がすべて含まれていて、その上に重ねられた環境設定がカラーグレーディングを変更し、ディアブロエリアの不穏で不気味な空気感を作り出しています。環境設定はゲーム中でも動的に重ねたり削除したりすることができ、よりダイナミックで生き生きとした活気あるマップを演出できます。

構成要素

アートチームとファビアンの指示のもと、環境設定によって指定したい重要な要素を絞り込んでいきました。最初に要素として対応させたゲームエンジンの機能、ポストプロセシングを例にお話します。ポストプロセシングは近代のエンジンには必ず実装されている機能で、様々なフィルターやエフェクトを適用することで最終的な映像のコントラストや明るさ、彩度を調整するものです。プレイ状況に応じて映像のコントラストや明るさを動的に変化させることで、非常に鮮やかでダイナミックな映像を作り出すことができます。環境設定なしには「オーバーウォッチ 2」でこうした演出を使うことはできません。

霧の表現もまた、新しいシステムで利用できる強力なツールのひとつです。パラメータを変更することで霧の見た目や雰囲気を変化させることができます。この機能によってアートチームはゲームモード、プレイヤーの立ち位置、時間に応じて環境を変化させられるようになりました。たとえばハロウィンの期間はマップを不気味な雰囲気にしたり、マップの特定エリアだけ霧を濃くしたり、新しいヒーロー任務のために時間経過とともに激しさを増す砂嵐を作ったりもできます。

雲がマップ上に落とす影や、目には見えない風の強さや方角など、他の視覚要素と相互作用する要素もいくつかあります。とはいえもっとも重要な可変要素を2つ挙げるとすると、それは「太陽」と「空」です。これらは名前のとおり、太陽の位置や色、雲の有無や形、時間帯が昼か夜かなど、環境作りにおいて非常に重要な情報を制御します。マップの見た目や雰囲気を大幅に変化させるこれらの要素が、環境設定システムの中で大きな役割を担っていることは想像に難くないと思います。

太陽と空という2つの要素は、ゲームエンジンの中でももっとも先進的な技術であるライティングシステムを活用しています。ライティングは環境の見た目や雰囲気、ムード作りに使われる「オーバーウォッチ 2」にとって重要な要素です。ですが、うかつに変更を加えるとメモリ使用率やパフォーマンスに影響が出かねないため、何を制御するかを慎重に選定する必要がありました。幸い、チームには非常に優秀なエンジニアであり、ライティングシステムの経験も豊富なブルース・ウィルキーが所属しています。彼の貢献により、「オーバーウォッチ 2」のような対戦型シューターに求められる高いパフォーマンスを実現しつつ、見た目にも美しい作品を作ることができました。

ライティング

ブルース:「オーバーウォッチ」のカラフルで鮮やかなグラフィックは丹精込めて作られています。美しいマップでプレイするたびに、改めて隅々までライティング環境のこだわりが詰まっていることを実感します。室内は反射光に照らされ、遺跡は天井から光が差し込み、夜のお祭り会場は色鮮やかに輝いています。例を挙げればキリがありませんが、作品の雰囲気作りにとっていかにライティングが重要かお分かりいただけるでしょう。「オーバーウォッチ」のエンジンの開発中は、2Dのコンセプトアートを3Dで再現することを目標に、アートチームと緊密に連携しながらライティング機能を作っていきました。「グローバルイルミネーション」と呼ばれる物体の表面から反射する光や、金属への映り込みを再現する機能、そして動いているものに静止した環境と同じライティングを適用する機能などです。ライティングは多くの処理が必要なためCPU負荷が高く、目標としているフレームレートを達成できないという問題がありました。高フレームレートで「オーバーウォッチ」を動作させながらも高度なライティングを実現するため、できるだけ多くのライティング情報を予め計算してパッケージ化しておき、クライアント側でこのパッケージを使用する仕組みを開発しました。 

実際に「オーバーウォッチ」で使用しているライティングのデータを細かく見てみましょう。壁や床や天井など動かない物体のライティング用には、いくつかのデータを用意します。最初のデータは、表面に当たっている光の量と、光の差している方向をエンジンに知らせるためのものです。これは一般的に「ライトマップ」と呼ばれ、エンジンによって保存されるデータが異なり“味”が出る部分です。  

 

この画像は、マップの表面に生成されたライトマップを視覚化したものです。左側は最終的に統合されたライティングで、中央の画像はライトマップの区分けを表しています。アーティストはこれを見て、表面に狙ったとおりのライティングを行えるだけのデータが保存されるかどうかを確認します。右側の画像はパッケージ化されたライトマップを表していて、このようにしてメモリ使用量を節約しています。

「オーバーウォッチ」をリリースした当時は、物体の表面に当たる光に対して色と方向を生成していました。方向データは凹凸のある表面での色の変化を表現するためのものです。光の方向に対して垂直に近いほど、色が濃くなります。「オーバーウォッチ 2」では、ライティングの方向を3つ生成します。これによりカラーチャンネル(赤、緑、青)を独立して変更できるのです。方向を増やすことで環境ライティングをさらに鮮やかにすることができ、映像のクオリティが上がります。

動かない物体の場合、周囲の環境がどれくらい遮蔽されているかのデータを生成しています。これは一般的にアンビエント・オクルージョンと呼ばれます。「オーバーウォッチ」では「PARIS」や「HAVANA」など一部のマップで使用していますが、「オーバーウォッチ 2」ではすべてのマップにこのデータが含まれ、グラフィックの品質が向上しています。 

 

 

キャラクターなどの動くオブジェクトに関しては、マップを多数のサンプル範囲に分割し、それぞれのライティングデータを静止オブジェクトと同じようにエンコードします。サンプル範囲に入ると、その位置で生成されたライティングデータに切り替わる仕組みです。「オーバーウォッチ 2」では生成するサンプル範囲を大幅に増加させ、特に空中で数を増やしました。動くオブジェクトの映像の大幅な進化にご注目ください。  

 

BlizzConlineのパネルにて、ひとつのマップに複数のライティング環境が適用されている映像を少しだけお見せしました。ダウンロード時間やインストールに必要なディスク容量をできるだけ抑えるため、ライティング環境ごとのデータを共有する必要がありました。環境設定を使用すると、マップの複数のライティング環境をグループ化し、先述の計算済みのデータをグループ内で共有できるようになります。これはデータ量の大幅削減に繫がり、プレイヤーにとってバリエーションごとにダウンロードやインストールしなければならないデータが減るという利点があります。ライティングのクオリティやバリエーションが強化されたにも関わらず、データ量を削減できたのは環境設定のおかげです。


環境設定によって「オーバーウォッチ 2」はよりダイナミックになり、アーティストのワークフローも改善されました。すべては色彩豊かな世界をお届けするためです。刻々と変化する環境と美しいグラフィックが「オーバーウォッチ 2」の大きな魅力です。世界を股にかけた息をのむような戦いをどうか楽しみに!

次の記事を見る

注目のニュース