10
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Unity #3Advent Calendar 2019

Day 12

GaiaとCTS2019で作る、オープンワールド1時間クッキング

Posted at

本稿はUnity #3 Advent Calendar 2019における12月12日の記事です。
#はじめに
家庭用ゲーム機やPCゲームなどで、オープンワールドと呼ばれるフィールドシステムが広く採用され始めています。オープンワールドとは、プレイヤーがゲーム世界を自由に歩き回ることができるレベルです。最近ではゼルダの伝説ブレスオブザワイルド(こちらはオープンエアーと呼称されていますが)やグランドセフトオートⅤ、アサシンクリードシリーズなどが存在します。

ゼルダの伝説ブレスオブザワイルド
ゼルダの伝説ブレスオブザワイルド

これらのようなフィールドを手作業で作成するのは、とても時間がかかります。そこで、Unityというゲームエンジンと、Gaia, CTS2019の2つのアセットを使用して、1時間でオープンワールドを作成してみようと思います。

#導入
Unity:https://unity3d.com/jp/get-unity/download
・本記事ではUnity2019.1.14f.1を使用しています
Gaia:https://assetstore.unity.com/packages/tools/terrain/gaia-terrain-scene-generator-42618
CTS2019:https://assetstore.unity.com/packages/tools/terrain/cts-2019-complete-terrain-shader-140806

#Gaiaを使ったオープンワールド制作
参考動画:Gaia 1.9 Quick Start Guide - Procedural Terrain Generation For Unity 3D

###アセットストアからGaiaをダウンロード
まずはアセットストアに入り、以下の画像のImportボタンから、Gaiaをインポートします。
Screenshot from Gyazo
インポートが終了した後、Window>Procedural WOrlds>Gaia>Show Gaia Managerを選択します。
Screenshot from Gyazo
ここでMissing Gaia Dependenicesというポップアップが出現した際には、Installを選択します。

###地形作成
GaiaManagerの1. Create Terrain&Show Stamperをクリックします。すると、Unityのシーンに地形が生成されます。
Screenshot from Gyazo
続いて、ヒエラルキーでGaia>Stamperを選択し、StamperコンポーネントのOperations>Stamp Previewに画像を入れます。この画像に基づいて地形が生成されます。ProjectウィンドウのAssets>Gaia>Stamps配下に適当な画像類がありますので、そちらから好みの画像を選択すると良いです。今回はValleys>Chumash Valleyを選択します。
Screenshot from Gyazo
すると、それっぽい地形が作成されました。StamperコンポーネントのPosition, Rotate and Scaleを変更することで、地形に変化を加えることができます。地形の高さ(Y軸)を変えたいときは、GroundBaseのチェックを外し、PositionYを変更します。
最終的にStampControllerコンポーネントのStampボタンを押すことで、Terrainに対して変更が焼き付かれます。

また、地形にさらにスタンプを重ねたいときは、上記の作業を繰り返し、Terrainにスタンプを焼き重ねていきます。なお、UndoとRedoは1つ前後しか戻れないため注意が必要です。

###テクスチャ作成
GaiaManagerの2. Create Spawnersを選択します。すると、ヒエラルキーに~Spawnerというものが5つ作成されます。
まずは、Coverage Texture Spawner>Spawn Controller>Spawnをクリックします。
Screenshot from Gyazo
すると、地形にテクスチャが貼られます。

###オブジェクト作成
テクスチャ作成の際と同様に、Coverage GameObject Spawner, Coverage Tree Spaner, Clustered Tree Spawner, Coverage Tree Spawner, Coverage Detail SpawnerでSpawnボタンを選択していきます。
この時点で、だいぶそれらしいオープンワールドになってきます。
Screenshot from Gyazo

###その他細部の作成
GaiaMangerのControllerをFirst Personに変更します。
Screenshot from Gyazo
そして、3. Create Player, Post FX, Screenshotter, Skies, Water & Windをクリックします。
Screenshot from Gyazo
すると、キャラクターと海等が生成されます。この際、ヒエラルキーのFPSControllerは地面に接地する場所に移動しましょう。
実行を行うと、以下のようになります。
Screenshot from Gyazo

#CTSを使ったシェーディング
参考動画:Enhance Gaia Terrains with CTS

###アセットストアからCTS2019をインポート
アセットストアに入り、CTS2019をインポートします。特段の注意事項はありません。

作成したTerrainを選択し、Component>CTS>Add CTS To Terrainをクリックします。
Screenshot from Gyazo
Window>Procedural Worlds>CTS>Create And Apply Profileを選択します。(上の動画ではComponent>CTS>Create And Apply Profileとなっていますが、現在この方法はできないようです。)
Screenshot from Gyazo
Assets>Procedural Worlds>CTS>Profile配下に、CTS_Profile_~というファイルが作成されます。こちらを、先ほどのTerrainにあるComplete Terrain ShaderコンポーネントのProfileにドラッグアンドドロップします。

###CTS Profile設定
#####Global Settings
Screenshot from Gyazo
Global Settings>Shader Typeは5種類存在します。
UnityはUnityデフォルトのシェーダーです。
Screenshot from Gyazo
BasicはCTSでの一般的なシェーダーです。
Screenshot from Gyazo
AdvancedはHeight Map BlendingやAmbient Occlusionなどが適用されるシェーダーです。
Screenshot from Gyazo
Tessellationは高度なテセレーションが可能なシェーダーです。Draw Instancedに対応していないため、画像は用意していません。
Lightは最も軽量なシェーダーです。
Screenshot from Gyazo

Shader Typeを決定したら、Bake Terrainsボタンを押し、焼き付けましょう。
Global Mixingは、シェーダーを反映させる距離を決定します。Mix Sharpnessでシェーダーの混合具合を調整できます。

#####Texture Settings
Texture Settingsでは、地面や岩のテクスチャの調整が行えます。サイズや色、反射率などの変更が可能です。
Screenshot from Gyazo
Triplanarでは、崖などY軸方面での変化が強くテクスチャが伸びてしまう現象を、修正できます。

#####Detail Settings
Detail Settingsでは、地形に細かい凹凸を付けることができます。Close Powerで凹凸の強度を調整し、Far Powerで適用距離を設定します。

#####Geological Settings
Geological Settingsでは、地形全体の模様を付けることが可能です。Albedoで模様のテクスチャを選択し、Close Powerで強度を設定します。
Screenshot from Gyazo

#####Snow Settings
Snow Settingsでは、地形に雪を降らせることが可能です。Snow Amountの値で雪の量を調整します。Minimum Heightで雪の降り始める高さ(Y軸の値)を決めます。Texture Settings>各テクスチャのSnow Powerで、それぞれのテクスチャにおける雪の積もり方を設定できます。
Screenshot from Gyazo

#####Optimization Settings
Optimization Settingsではテクスチャサイズや圧縮率の変更が行えます。Runtime Optimization>LOD DistanceでLODの距離を設定できます。

#Post Efefct
最後に全体の見栄えをよくするため、ポストエフェクトをかけます。Gaia ManagerからGX>Procedural Worlds>Ambient Skies SamplesやAmbient Water Samplesを設定します。
Screenshot from Gyazo
これにより、空と水の見た目を変更することができます。

Screenshot from Gyazo
Post Processingなし

Screenshot from Gyazo
Default Evening

#おわりに
Screenshot from Gyazo
完成品

1時間ほどで手軽にオープンワールドを作れてしまうGaiaとCTS2019、いかがでしたでしょうか。今回はデスクトップ用のハイクオリティなワールド生成を行いましたが、モバイル用のローポリでのワールド生成も行うことができます。興味を持った方は、ぜひお試しください。

10
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?