地形を作る(Terrain)

Terrain ゲームオブジェクトは、地形を作ることができる、Unityのビルドインオブジェクトです。

ヒエラルキーから3D→Terrainで作成できます。

公式ドキュメント

🔸使い方の基本

基本は以下のツールを利用する。

Terrain Setting

Terrainオブジェクトの基本設定。 最初にWidthやLengthを決めるときに使う。

Paint Terrain(Terrain ツール)

ペイントしながら、地形を描画していく。

あと、ショートカットで

  • Wキー → Terrain のアクティブ状態から脱出する。
  • Fキー → マウスが置かれている場所にフォーカスする。
  • Alt + マウス右 → 高速ズーム
  • マウス右押っぱなし + W / A / S / Dキー → 前 / 左 / 後 / 右 に進む →Shiftも押っぱなしで、もっと早く前に進む

をよく使う。

🔸Paint Terrain(Terrainツール)

6つの異なるツールがある。

  • Raise or Lower Terrain: ペイントブラシツールでハイトマップをペイントします。
    • 左クリック→盛り上がる
    • Shift + 左クリック → 盛り下がる
    • 範囲広げる → [
    • 範囲縮める → ]
    • opacity → 不透明度。ここでは適用率みたいなもの
  • Set Height: ハイトマップを特定の値に設定します。
    • Heightを0にしてペイントすると高さが0になっていく
    • Flatten All ボタン → クリック一つで全て同じHeightにする。
  • Paint Holes: Terrain の一部を非表示にします。
  • Paint Texture: サーフェステクスチャを適用します。
  • Smooth Height: ハイトマップを滑らかにして Terrain の外観を柔らかくします。
  • Stamp Terrain: 現在のハイトマップの上にブラシの形をスタンプします。

🔸Set Height の定石テク

Set Heightで高さ100にFatten Allして、その後PositionのYを-100してやれば、くぼみも山も作れる地形が描ける。

🔸Terrain Tools の導入

より細やかなブラシの表現(感覚的にはPhotoshopのフィルターやつまみなどに似ている)をするのに便利なツールです

インストールが完了したら、Projectに入っているのを確認します。

「Paint Terrain」をクリックすると、オプションが増えており、メニュー自体も増えています。

🔸テクスチャをインストール

動画教材や書籍などで紹介してくれているものも入れてみたが、一番わかりやすかったのが 「3D Nature AssetsPack」が一番使いやすかったです。 ※書籍や動画を見てると、assetsが公開から割と早めにシャッフル?されているっぽい。1年くらいか?

ダウンロードの仕方は、WindowメニューからAsset Storeで

Unity Asset Storeに入ったら「texture nature」で検索して

Princingで「Free Assets」にチェックを入れて

今回はこの「3D Nature AssetsPack」を利用。

なお、これはテクスチャだけでなく、モデル、環境、サウンドエフェクト、パーティクルエフェクトなど、ゲームに必要なあらゆるアセットを取り込むために応用できるフローです。

ベジェ曲線

Bezier Solution

そもそもBlenderとUnityは同じ「ポリゴン」を扱うわけじゃない

Terrain での Paint Treeで、ポリゴンのアセットを読み込んでも、 「The selected tree does not have an LOD group」みたいなエラーが出るか、 何もエラーは出なくても読み込めないか、という状態で、20個くらいのアセットを読み込んで試したがダメで、 困った状態になっていた。

そこで出会ったのが以下の記事。 Is It Better To Create a Terrain in Unity or Blender 2.8?

ボクセル地形システムまたはインタラクティブにしたい地形システムを作成する場合は、Blender を使用することをお勧めします。一方、LOD システムが必要な山、丘、木などの有機的な地形には、Unity の地形ツールを使用することをお勧めします。 It is better to use Blender when creating voxel terrain systems or terrain systems that you want to be interactable. On the other hand, it’s better to use Unity’s terrain tool for organic terrains with mountains, hills, or trees that need a LOD system.

どうやら、Blenderの「ポリゴン」はUnityでは「メッシュ」であり、それは似て非なるものらしい。 さらにLODシステムというレンダリングの最適化の仕組みがあり、これのせい?で、いわゆる有機的なもの(ぐにゃぐにゃしたもの)じゃないと、Terrainオブジェクトには入れてくれないっぽい。

参考URL