DevelopmentPronama-chan 更新

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

今日は、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 Controller の Spawn ボタンをクリック!

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

テクスチャの生成
次は 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 Spawner と Coverage Tree Spawner でお好みの感じに木を生成してっと。Spawn ボタンは何度もクリックして好きなだけ生成して OK だよ。
木の生成
Coverage Detail Spawner で草花を生成。
草花の生成
あっという間にそれらしくなったわね。

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


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

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

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

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

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

最後のステップ! Gaia Manager の「3. Create Player, Wind, Water and Screenshotter」をクリック……の前に、今回は Controller が First 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 でも造ってみたよ。


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