サバイバルキッズのレイアウトと地形ワークフロー

DANIEL REIDLER AND STEVEN CANNAVAN / UNITY TECHNOLOGIESSurvival Kids team
Sep 3, 2025|4 分
サバイバルキッズのゲームプレイ
このウェブページは、お客様の便宜のために機械翻訳されたものです。翻訳されたコンテンツの正確性や信頼性は保証いたしかねます。翻訳されたコンテンツの正確性について疑問をお持ちの場合は、ウェブページの公式な英語版をご覧ください。

サバイバルキッズは、KONAMIとのコラボレーションで作成されたUnityの最初のエンドツーエンド開発プロジェクトです。それを構築した小さなチームは、数十年のゲーム開発経験を活用し、このブログシリーズでは彼らがこの野心的なプロジェクトにどのように取り組んだかを掘り下げます。最初のインストールでは、チームのフレームとレンダリング作業を探求しましたが、このエディションではレベルと環境デザインに焦点を当てています。

主に画面上で見える外観を達成する方法について話してきましたが、私たちはワークフローを改善するために何をしたかを掘り下げたかったのです。これにより、プロジェクトを時間通りに提供できるように、より迅速にしました。

チームの規模とプロジェクトの範囲により、レベルのレイアウトと地形のワークフローに多くの考慮を払いました。レベルデザイナーがアイデアを反復するのが簡単なものが必要でしたが、私たちのアプローチは、レベルがアートチームに引き渡された後、最小限の再作業で済む必要がありました。私たちは、レベルデザイナーのために非常にホワイトボックスのようなワークフローを持つアプローチを選択しましたが、すでに最終ゲームアセットで作業していました。

サバイバルキッズは、レベルの主要なレイアウトを作成するために再利用可能なビルディングブロックのセットを使用します。それは、崖の岩の側面とその上にメッシュの地形パッチを持つプレハブのセットであり、異なるサイズと形状に構成されています。

サバイバルキッズのレベル作成に使用される地形ビルディングブロック
サバイバルキッズのレベル作成のための地形ビルディングブロック

崖の側面は8つの別々のメッシュ、側面、コーナーで構成されており、それぞれに簡略化されたメッシュコライダーがあります。それらはすべて同じマテリアルを共有しており、レンダリングを高速化します。

グラフィックは、崖のメッシュを露出させ、これらの環境要素がどのように作成されるかを示します。
露出した崖のメッシュ

この設定により、レベルデザイナーはこれらのビルディングブロックを使用して、最終ゲームアセットを使用してほとんどのレベルを作成できますが、ホワイトボックスに非常に近い迅速なワークフローで、アイデアの迅速な反復を可能にします。

この地形モジュール「ビルディングブロック」アプローチは、レベルの有機的な形状のために多くの重複モジュールを生み出しました。それはまた、ほとんどの崖の側面が他のモジュールの内部または後ろにあり、ゲームカメラからは決して見えないことにつながりました。これを解決するために、私たちは各モジュールを1つずつ確認し、ゲームカメラの角度から見える部分があるかどうかを確認し、見えないものをすべて削除するエディターツールを作成しました。


2つの画像は、レベルアーティストがゲームの地形で見えないメッシュを削除した前後を示しています。
地形の下に隠れたメッシュを削除する

異なる地形モジュールのセクションに基づいて連続した地形メッシュを作成するために、Houdini Engineツールを使用しました。

二つの並んだ画像は、アーティストが5つの別々のパッチから連続した地形メッシュを構築する方法を示しています。
5つの別々のパッチから連続した地形メッシュを作成する

UnityのPolybrushパッケージの修正バージョンを使用して、地形メッシュに異なるマテリアルをペイントしました。修正は、Polybrushがメッシュの頂点に値をペイントするのではなく、Unityの地形システムが行うように制御テクスチャをペイントすることでした。

アーティストがゲーム環境の地形メッシュにマテリアルをペイントするためにPolybrushを使用しています。
地形メッシュにマテリアルをペイントするためにPolybrushを使用する

アンビエントオクルージョンは、地形メッシュの頂点カラーに焼き付けられ、そこに配置されたオブジェクトを視覚的に地面に固定します。

二つの並んだ画像は、ゲームの地形におけるアンビエントオクルージョンの焼き付け効果を示しています。
アンビエントオクルージョンの焼き付け

カスタムツールを使用して、地形メッシュに草、花、小石などの小さなオブジェクトを分配しました。オブジェクトの分配は、密度、基礎マテリアル、地形の曲率、または大きなオブジェクトへの近接などのパラメータを使用して個別に制御されます。プロジェクト全体を通じて、小さな植生のパフォーマンスへの影響を最小限に抑えるために、非常に低い密度を維持しました。

エディター内のキャプチャは、メッシュスキャッターツールを使用してゲーム環境に低密度の小さな植生を分配する方法を示しています。
メッシュスキャッターツールを使用して環境に低密度の小さな植生を分配する

次に、異なる地形のメッシュコライダーを分割するために別のカスタムツールを使用しました。これを二つの方法で行いました:

- グリッドとして、各メッシュコライダーの三角形数と音量を減少させ、ゲームの物理パフォーマンスを向上させるために

- マテリアルによって、ゲームがキャラクターが歩いているマテリアル(草、砂、雪、氷など)に基づいて異なる音や足音のVFXを生成できるようにするために

エディター内のキャプチャは、アーティストがUnityのツール「Terrain Mesh Splitter」を使用して、ゲーム内の異なる地形にメッシュコライダーを分配する方法を示しています。
Terrain Mesh Splitterを使用して、異なる地形のメッシュコライダーを分配します。

この投稿では、サバイバルキッズのターゲットレートを達成するために、スタイライズされたパフォーマンスのグラフィックスとレンダリングを設定する方法を少しだけ紹介します。シリーズの最初の投稿「グラフィックスとレンダリングのヒントサバイバルキッズ」をチェックし、ゲームに関するさらなる内部情報を得るためにUnityブログをフォローしてください。マルチプレイヤーネットワークに関する2部構成の深掘りも含まれています。私たちのリソースページで、より多くの技術的な開発者ストーリーを見つけることもできます。