[Unity] Gaia で地形創造! クイックスタート

2018/09/15Development,Pronama-chanGaia,Unity

今日は、Unity 標準機能 Terrain で、簡単に地形を造れるようになる Uniy アセットの Gaia を使ってみよう!

Gaia は地形を"スタンプ"して造ったり、自動で草木とかを配置できるツールだよ。

Unity 標準機能の Terrain ツールは、土地を盛り上げる・掘り下げるとか「ポピュラス」式でいい感じに造るの難しいんだよね……。

ポピュラス……?

※ Gaia バージョン 1.8.0、Unity バージョン 2018.2.6f1 のときの内容です。

セットアップ

Gaia アセットをインポートする以外に、Standard アセットの

  • Characters
  • Effects
  • Environment

パッケージをインポートしよう。
Environment パッケージをインポートするとき SpeedTree のチェックをオフにしてね。

Environment パッケージのインポートは SpeedTree のチェックをはずす
SpeedTree materials need to be regenerated. ってエラーメッセージが出てるわね。

それは、Gaia/3rd Party Samplers/SpeedTree フォルダーにある

  • Broadleaf/Broadleaf_Desktop
  • Broadleaf/Broadleaf_Mobile
  • Conifer/Conifer_Desktop
  • Palm/Palm_Desktop

を、それぞれ選んで、インスペクターの「Apply & Generate Materials」をクリックすれば OK。

Apply & Generate Materials
これで、準備完了!

Terrain の作成

Window – Gaia – Show Gaia Manager を選んで Gaia Manager ウィンドウを表示しよう。Standard タブに 1. 2. 3. とあるように大きく3ステップに作業を分類できるよ。
Gaia Manager
Environment は、とりあえず Desktop をそのまま選択。Gaia は草木などのリソースがいろいろ付いていて、どれとどれを使うみたいな構成も設定済みで用意されているの。Environment は、下の項目 Terrain Defaults・Terrain Resources・GameObject Resources の各設定の組み合わせの設定だね。

Terrain Size は、Terrain の広さ。とりあえず2048メートル四方になる Is 2048 meters Sq をそのまま選択。

そして「1. Create Terrain & Show Stamper」をクリック!


Create Terrain & Show Stamper クリック直後
はい、できた~。Gaia Environment の下にあるのが Unity 標準の Terrain だね。Session Manager と Stamper を使って、地形を造っていくよ。

スタンプで地形を造る!

Gaia にはいろいろな地形の"スタンプ"が用意されていて、スタンプしていくことで地形を造っていくよ。

Gaia/Stamps フォルダーの下にいろいろなスタンプ用テクスチャがあるので見てみよう。

Stamper のインスペクターにテクスチャをドラッグ&ドロップ!

スタンプテクスチャを Stamper にドラッグ&ドロップ
インスペクターにある Stamp Controller の Stamp ボタンをクリックすれば、スタンプの地形が Terrain に反映されるよ。これだけでもいい感じ👍

もちろん、Stamper は、移動・回転・拡大縮小できて、何度でもスタンプできるので、スタンプを組み合わせていくことで、オリジナルの地形が造れるんだね。

Stamper を上下に移動させるときは、Ground Base のチェックをオフにしよう。

Stamp Controller を使えば、

  • Preview は、スタンプの表示・非表示の切り替え、
  • Ground は、Stamper を地面の高さに移動、
  • Fit To Terrain は、Stamper を Terrain に接地する高さに移動、
  • Undo/Redo でスタンプ動作を元に戻すと・やり直し、

もできるよ。

スタンプは、Hills, Islands, Lakes, Mesas, Mountains, Plains, Rivers, Rocks, Valleys, Waterfalls といろいろあるね🎶
このスタンプのテクスチャを販売しているパブリッシャーもいるみたいね。
いい感じにできたかな?

既にある地形にどのようにスタンプを反映させるかは Operation Type からいろいろ選べて、さらにそのパラメーターの設定をしたり、スタンプの効果範囲をマスクしたり、じっくり調整できるんだけど、とりあえず次に進んでみよう!

あと、ランダムに造る方法 もあるよ。

テクスチャや草木を生成!

次は、Gaia Manager の「2. Create Spawners」をクリック!


ヒエラルキーウィンドウに、いくつか Spawner(スポーナー)オブジェクトが追加されたわね。


この Spawner オブジェクトが、地形に合わせてテクスチャや草木をスポーン(生成)してくれるよ。

Coverage Texture Spawner を選択して、インスペクターにある Spawn ControllerSpawn ボタンをクリック!

すると、地形に合わせていい感じにテクスチャが地形に適用されるよ。平地や山の部分でテクスチャが異なるでしょ?

テクスチャの生成
次は Coverage GameObject Spawner を使って GameObject を生成してみよう。GameObject は基本 平地にしか生成されないから、地形によっては1個も生成されない場合もあるよ。
GameObject の生成
GameObject って?
ここでの GameObject は、岩、小屋、畑などだね。

Gaia Manager から作った Spawner は……

  • Coverage Texture Spawner: テクスチャの生成、
  • Coverage GameObject Spawner: 岩、集落などの生成、
  • Clustered Tree Spawner: 密集した木の生成、
  • Coverage Tree Spawner: 木の生成、
  • Coverage Detail Spawner: 草花の生成、

という役割だよ。Gaia でデフォルトの設定がこうなっているだけで、Spawner の設定は変えられるよ。

Clustered Tree SpawnerCoverage Tree Spawner でお好みの感じに木を生成してっと。Spawn ボタンは何度もクリックして好きなだけ生成して OK だよ。
木の生成
Coverage Detail Spawner で草花を生成。
草花の生成
あっという間にそれらしくなったわね。

それぞれの Spawner オブジェクトのインスペクターの Statistics からいくつ生成されたかもわかるのね。えっと、42万個……!?


生成のやり直しや調整ってできるの?
全消ししたい場合は、インスペクターにある Terrain HelperClear TreesClear Details からできるよ。地形からやり直しは、Flatten だね。

GameObject は、GameObject Spawner オブジェクトの下の階層に生成したオブジェクトがあるから、そこから削除かな。

生成した GameObject
細かな調整については、地面の傾斜などによる生成する条件を設定できるけど、上級者向けかな。私もまだしたことない……。

特定の場所に小屋を配置したいとかの調整は、Gaia ではできなくて、Gaia と同じパブリッシャーの「GeNa」っていうアセットを使ってするのが良さそうだね。

プレイヤー・風・海・その他を作成!

最後のステップ! Gaia Manager の「3. Create Player, Wind, Water and Screenshotter」をクリック……の前に、今回は ControllerFirst Person になっているか確認して、クリック!

これで、風や海の設定も完了。Wind Zone や Water は Unity 付属の機能やアセットだね。

ファーストパーソン視点の Player オブジェクトも配置されてるね。Player は変なところにいるかもしれないから、そのときは適当な場所に移動させて実行しよう。

生成された Wind Zone や Water、Player オブジェクト
実行すると、方向キーで今造った地形を動き回れるよ! この Player のスクリプトは Standard Asset のものだね。

いい風景が見れたら F12 キーでパチリ📷 Screen Shotter オブジェクトも追加されていて、スクリーンショット機能もあるんだよ。Assets/Screenshots フォルダーに画像が保存されているよ。

Player オブジェクトを削除して、Gaia Manager の Controller から生成する Player の種類を変えて、ファーストパーソン以外も試してみてね。

Flying Camera だと、右クリックしている間、WASD 移動・Q/E キーで上下、Shift キーでスピードアップ。

見た目をいい感じに変更!

Gaia にはプラグイン的な拡張機能があって、デフォルトで1個用意されてるんだ。最後にそれを使ってみよう。必要な Unity 公式アセット「Post Processing Stack」をインポートしてね。

Gaia Manager の GX タブから、Procedual Worlds – Camera And Light を開いて。ちなみに、Procedual Worlds ってのは Gaia のパブリッシャー名だね。

Set Linear Deferred Lighting」と「Create Camera Effects」ボタンを順にクリック!

Player Settings の color space が Linear に。Project Settings の Graphics 設定が変更されて、Camera の Rendering Path がその Graphics 設定を使うようになって、Post Processing Behavior スクリプトが追加されるみたいだね。

Set Morning Light とかのボタンを変えると、それぞれの時間帯っぽい見た目になっていい感じになるよ!

きれいだね~🎶
というわけで、Gaia の簡単な使い方は以上だよ! 簡単だったでしょ?

今回は Gaia Manager の Environment は Desktop を選んだけど、Mobile And VR でも造ってみたよ


※ 公式のドキュメント等を参考に一ユーザーとして書いた記事です。詳細は、公式のドキュメントを確認してください。

The following two tabs change content below.
都内の公立高校に通う高校生。部活は、情報処理研究会。身体を動かすのも好きで、気が向いたときはなぜか体育会系の部活に混ぜてもらっていろんなスポーツをすることも。プログラミング生放送のキャラクターとして活動中!