波の制作:Still Wakes the Deep で行われた UE5 でのリアルな水のメカニクスの開発

2024年11月7日
皆さん、こんにちは。私は The Chinese Room のプログラマー、Joe Wheater です。最近、ナラティブ ホラー ゲームである Still Wakes the Deep の水のメカニクスにチームの一員として取り組みました。このゲームは、PC、PlayStation 5、および Xbox Series X|S 向けに 6月にリリースされました。ゲームは 1975年の北海にある石油掘削施設を舞台とし、プレイヤーに予測不能の恐ろしい出来事がおそいかかります。Cameron ‘Caz’ McLeary は、崩壊しつつある建物を進み、帰り道を見つけなくてはなりません。
ゲームの最初の設定により、プレイヤーは (ほぼ) 常に水に囲まれることになります。これは、掘削施設の浸水した階層でも真下にある厳しい北海でも同様です。また、私たちの目標は、あらゆる水に関する感覚を可能なかぎり恐ろしくリアルなものにすることでした。ここでは、Unreal Engine 5 でのリアルな水のメカニクスの作成までの道のりを紹介し、その結果と、水の冒険の制作に取り組もうとしている他のデベロッパーに優れたヒントを提供します。

課題

私たちの課題は、絶えずつきまとうような水を作成し、プレイヤーを極限に追い込み、リアルさと過酷さを感じさせつつも、決して不可能とは感じないものにすることでした。ゲーム内には、2 つの種類の水があります。石油掘削施設の内部に浸水してくる水と、周囲を取り囲む広大な北海の水です。 

どちらもゲーム内での雰囲気と緊張感を高め、プレイヤーの根源的な恐怖心に訴えかける役割を担っています。その恐怖心には、閉所恐怖症 (狭い空間への恐怖)、水中人工物恐怖症 (水中に沈んだ人工物への恐怖)、死恐怖症 (死への恐怖)、孤独恐怖症 (孤立への恐怖)、海洋恐怖症 (大きな水域への恐怖)、暗所恐怖症 (暗闇への恐怖)、高所恐怖症 (高所への恐怖) などが含まれます。
プレイヤーは、世界でも有数の厳しい環境の中で崩壊しつつある石油掘削施設に閉じ込められていることに気づきます。北海の荒波が激しく打ち付ける中、どのようにして脱出すればよいのでしょうか。
2 つの種類の水は、どちらもゲーム全体のストーリーや恐怖に貢献していますが、見た目、メカニクス、機能については極めて異なるものです。ここでは、石油掘削施設内の水にどのように取り組んだのかをご紹介します。水位が上昇し、ゲームの緊張感に合わせて水が流れ、プレイヤーは何度も水が間近に迫る感覚を味わいます。

浸水の感覚:外観の制作

Still Wakes the Deep を進めていくと、次第に謎や物語が明らかになっていきます。作業員たちは変異し始め、掘削施設は崩壊の一途をたどり、金属の破片が下の荒波に向かって飛び散ります。さらに、海水が徐々に施設の下層部に浸入し、水没が始まります。不運なことに、Caz (そしてプレイヤー) は先に進むために、この施設の浸水した階層を這うようにして探索しなければなりません。
「Still Wakes the Deep」では、プレイヤーは浸水した施設の下層を泳ぎながら進むことを余儀なくされます。脱出するために泳いだり、装置を作動させたり、オブジェクトを探したりしながら、厳しい環境を乗り越えていきます。
 
複数のゲーム チャプターの舞台を水中にするため、特有のレベル デザインの選択を行いました。プレイヤーに新しいメカニクスを提供して探索し、習熟してもらいたいと考えていました。チームにとってもそれは興味深くやりがいのある挑戦となりました。水はゲームの中で主な脅威となる要素の 1 つとして認識していたため、その力に合った見た目になるようにし、ディテール、深み、暗さを加えました。

こうした見た目を作り出すため、Unreal の Niagara VFX システムを使用し、2 次元の浅い水のシミュレーションを開発しました。この 2D シミュレーションでは、水面のみをシミュレートし、その動きを記述する方程式を計算します。そのため、水が急速に流れると (主に洪水シーケンス中)、水面の高さが変化し、波やさざ波が生成され、荒々しく恐ろしい外観になります。 

こうしたシーケンスによって、混乱し制御不能になった感覚が生まれますが、実際には水のボリュームシステムをセットアップして構成していました。高さマップ テクスチャにベイクできるように、ウォールやフロアのメッシュをタグ付けしました。この高さマップ テクスチャは、水が流れることができる空間を表し、シミュレーション内でこれらのメッシュを境界とすることで、水を跳ねさせたり衝撃を反映したりすることができます。
 
プレイヤーはしばしば水中に入り、壊れたり崩れ落ちたりする部屋を進んだり、次のセクションへと向かって激流を乗り越えたりする必要があります。Still Wakes the Deep の舞台は暗く、金属的です。私たちは、レベルで水を障害物として使用することに重点を置きながらも、不可能であったりストレスになったりすることなく難易度を高めたいと考えていました。

これを実現するため、ポスト プロセスを活用して水中にいる感覚を演出しました。また、水にさらなる広がりを加え、オブジェクトをはっきりと見えないようにするため、フォグ ボリューム、パーティクル、コースティック ライト パターン、被写界深度、ブラー、およびブルーム エフェクトを活用しました。
 
プレイヤーが水面下に移動すると、視界が意図的にぼやけるようになっています。これにより、興味深いゲームプレイが動的なものになり難易度がもたらされるだけでなく、プレイヤーにとっても自分が水中にいること、また、息が続かなくなる前に移動しなければならないことを認識しやすくなります。
さらに、水中にはフォグ ボリュームとパーティクル システムも追加し、その中に他の汚染物質も見えるようにすることで、濁って見通しにくく感じられるようにしました。ちり、ゴミ、泡の層も追加し、視界をさらに不明瞭にしました。これらのパーティクル システムは、移動する感覚を演出するのに特に役立つことが判明しました。プレイヤーが水中を移動すると、泡が出て表面に向かって漂い、ゆっくりと渦巻きながら落ち着き、水の流れができます。

ポストプロセスとパーティクル システムの実際の効果。左から右へ順に、ポストプロセス、パーティクル、フォグ、ライトなしの場合、ポストプロセスなしでフォグ、ライト、パーティクルのすべてをオンにした場合、および最終的にすべてのシステムを実行し完成した製品。

さらなる調査:感覚の開発

私たちは、上昇する水位が陸上で経験するものと同じくらい切迫感を感じさせ、ゲームプレイにはストーリーの緊張感や恐怖を反映したいと考えていました。これを実現するため、ポンプ システムを開発および実装することで水に速度や流れを加え、水の速度や恐怖の感覚を演出するだけでなく、プレイヤーの移動をサポートしました。

ポンプシステムはカプセル状のオブジェクトで構成されており、水のシミュレーションに速度を加え、水面に波やさざなみを生じさせ、方向を表示します。そして、主人公キャラクターの腕や手、足に複数のポンプを取り付け、そのポンプが交差することで、プレイヤーの水中動作に即応した自然な流れを生み出しました。
 
没入感を高めるため、プレイヤーのアクションによって水が動的に動くだけでなく、水中にあるオブジェクトが影響を受けるようにしたいと考えていました。水のシミュレーションでは、施設の石油の缶や鉄筋などの物理的なオブジェクトが、表面の動きの影響を受けていないことに気づきました。 

これに対処するため、Niagara の GPU リードバック機能を利用すると、シミュレーションのクエリが有効になり、特定の地点での流れの方向、強さ、およびサーフェスの高さを把握できました。このデータを利用することで、浮力を適用してオブジェクトを浮遊させ、水流の力を使ってサーフェスのシミュレーションと連携してオブジェクトを動かすことができるようになりました。これにより、プレイヤーとの直接的な関係の下にオブジェクトが動いているような印象を与えることができます。
 
開発を通して試したメカニクスはほかにもあり、それらによって没入感やリアリティをさらに高められたはずでしたが、残念ながらゲームプレイ エクスペリエンスには悪影響が及ぶと判断しました。 

たとえば、泳ぐ際に水を含んで重くなるオーバーオールを着ている感覚を再現しようとしました。これは、主人公であるエンジニアの Caz に影響を及ぼし、泳ぐスピードを遅くし浮力を下げることで、現実の状況と同じような効果を生み出すことを目指すためです。Caz は地球上で最も寒い環境で働いており、耐久性のある重い服を着ています。
 
Beira D の作業員が着用する制服。プレイヤーが泳ぐ際にリアルタイムで水に浸かるようにリアルな浸水メカニックを Caz に追加するアイデアを試しました。重いマテリアルとレイヤーの組み合わせにより、Caz は極めて急速に沈むようになり、水位に関する難易度が高くなりすぎました。
この試みを実装してみたものの、プレイヤーにとっては操作がストレスになり、状況をうまく伝えることも難しいと感じました。さらに、泳ぐスピードが遅いことで、一息で泳げる距離に制限が生じ、デザイン チームが計画していた水中探索エリアにも制約がかかってしまいました。最終的には、よりスムーズなプレイ体験のためにこの要素を取り除きましたが、興味深いアイデアでした! 

リアルな水を制作するためのツール

Unreal は、Still Wakes the Deep の水を制作する際に活用できる次のような一連のビルトイン ツールとテクノロジーを備えており、私たちにアイデアをもたらしてくれるものだとわかりました。 
 
  • Single Layer Water シェーディング モデル:Unreal Engine でリアルな見た目の水を表現するのに最適でした。また、Epic 既存のリソースからは、その実装や効果について多くを学ぶことができました。
 
  • 機能別サンプル プロジェクト:エンジンのあらゆる部分で役立つ多数のサンプルが含まれており、Niagara と流体のシミュレーションを学ぶのに不可欠でした。 
 
  • マテリアル エディタ:シミュレーション データに基づいてテクスチャベースのエフェクトのレイヤーを作成するために利用しました。これは、私たちにとって水のビジュアルにエフェクトを追加する上で極めて実用的なものでした。また、ゲームの進行に合わせたストーリーテリングに役立ちました。
 
  • Niagara:Niagara は、シミュレーション自体、また、破裂するパイプから水中のゴミまで、パーティクル システムの多くに利用しました。提供されている Niagara のシミュレーション ステージでの学習も役に立つと感じました。Unreal でどのように流体シミュレーションと組み合わせるかを理解するのに不可欠です。
 
  • Water システム:Water システムでは、Niagara データ インターフェースを使用してシミュレーション データを読み込みなおしています。これにより、ゲーム内の他のシステムがシミュレーションの現在の状態に動的に反応できます。
 
  • フォグのエフェクト:水のボリュームでは、ボリュメトリック マテリアルを使用してフォグをレンダリングしました。つまり、このマテリアルでは 2D 配列のレンダー ターゲットをサンプリングすることで水のシミュレーションから情報を取得できます。

Unreal Engine 5 の選択

私は The Chinese Room の Still Wakes the Deep でテクニカル ディレクターを務めている Nick Slaven です。 

Still Wakes the Deep に Unreal を選んだのは当然の結果でした。制作プロセスを通じて Unreal が提供する忠実度とコントロール、およびそのエンジンとしての機能は、クリエイティブ ディレクターの Dan Pinchbeck が当時描いていたゲーム コンセプトを実現するためにまさに必要としていたものでした。

チームの既存の Unreal の専門知識はまちまちでしたが、Epic とのパートナーシップによって Unreal 4.26 に向けたトレーニングを計画できました。また、その後は Unreal Engine 5 に移行しました。エンジンのバージョンをアップグレードしたことで、NaniteLumen などの Epic の新しいテクノロジーを活用できるようになりました。これによって、ゲームのビジュアルや雰囲気が向上するだけでなく、ワークフローの効率が強化されました。Lumen のリアルタイム ライティングなどの機能では、シャドウ マップのベイクが完了するのを待つ必要もなく、ライティングの設定に対する変更の効果をすぐに確認できるようになりました。

さらに、Unreal によって提供される水のテクノロジーは、北海の優れたシミュレーションを可能にし、そのシェーダー ツールは社内で水のシミュレーションを行うための構成要素を提供しました。また、ゲーム内では石油掘削施設のすべての作業員に MetaHuman を幅広く利用し、これによって新たなレベルのリアリズムとストーリーテリングを実現しました。

最後に、Beira D 石油掘削施設のトランスフォームした作業員にコントロール リグのテクノロジーを活用することができました。これは、プレイヤーに恐怖を与え、その興味を引くリアリティーのある異世界のクリーチャーの制作に役立ちました。

今すぐ Unreal Engine をダウンロードしましょう!

Unreal Engine は、世界で最もオープンで高度な制作ツールです。
あらゆる機能を備え、完全なソースコードにアクセスできる Unreal Engine を使用すれば、すぐに制作を開始できます。

関連ブログ


GDC 2025

GDC 2025

3月17日~21日にサンフランシスコで開催される GDC 2025 に是非ご参加ください。GDC 2025 では、Unreal Engine、UEFN などに関するゲーム開発セッションが多数開催されます。

ゲーム

Unreal Engine 5.5 がリリースされました

このリリースでは、アニメーション オーサリング、レンダリング、バーチャル プロダクション、モバイル ゲーム開発、開発者イテレーション ツールセットなどが大幅に強化されています。

ゲーム

Epic Developer Community に Epic for Indies が新設されました

大きな夢のある小さなゲーム開発チームの方ですか?インディーズ デベロッパーに特化した新しいハブをご紹介します。ここでは、同じ考えを持つ人たちとつながり、最新ニュースやイベントの最新情報を入手し、学習リソースを見つけたり、共有したりすることができます。