テレイン設定

ドキュメント:

地形の設定 | Unity マニュアル [公式]

使い方

参考:

Terrain の基本設定 | Unity でゲームを作ろう!

導入

参考:

Terrain を使って地形を作る準備 | カニチル

設定

Basic Terrain
  • Grouping ID Auto Connect で使用するグループ ID (デフォルト0)
  • Auto connect 同じグループ ID を持つ隣接するタイルと自動的に結合する。(デフォルト有効)
  • Draw テレインを描画する。(デフォルト有効)
  • Draw Instanced インスタンス化して描画する。(デフォルト無効)
  • Pixel Error ハイトマップあるいはテクスチャと生成されたテレインのマッピング精度。値を大きくすると、マッピングの精度は悪くなるがレンダリング負荷が小さくなる。(デフォルト5)
  • Base Map Dist. テクスチャを最高解像度で表示する距離。この距離を超えると、低解像度の合成画像が使用される。(デフォルト1000)
  • Cast Shadows テレインによるシャドウを制御する。
    • Off テレインによるシャドウを投影しない。
    • On テレインによるシャドウを投影する。
    • Two Sided 両方向にシャドウを投影する。グローバルイルミネーションは両面シャドウをサポートしない。(デフォルト)
    • Shadows Only テレインを描画せずにテレインが投影するシャドウのみを描画する。
  • Material テレインで使用するマテリアルを選択する。
    • Default-Terrain-Standard (Unity 2019 以降のデフォルト)
    • Unity 2018 以前
      • Built In Standard 組み込みのスタンダードシェーダー
      • Built In Legacy Diffuse Unity 4.x 以前に使用されていた組み込みシェーダー (レガシー)
      • Built In Legacy Specular Blinn-Phong モデルを使用した組み込みシェーダー (レガシー)
      • Custom カスタムマテリアル
  • Reflection Probes
    • Off リフレクションプローブは無効/スカイボックスが適用される。
    • Blend Probes リフレクションプローブは有効/プローブ間でブレンドを適用する。
    • Blend Probes And Skybox リフレクションプローブは有効/プローブ間及びデフォルトのリフレクションの間でブレンドが適用される。
    • Simple リフレクションプローブは有効/ブレンドは適用されない。
Tree and Detail Objects
  • Draw 樹木及びディテールを描画する。(デフォルト有効)
  • Bake Light Probes For Trees 内部に樹木用のライトプローブを生成し、樹木の描画にグローバルイルミネーションを適用する。樹木のプレハブにライトプローブが設置されている場合にこのオプションを使用する。(デフォルト有効)
  • Remove Light Probe Ringing ライトプローブによるリンギングを除去する。(デフォルト有効)
  • Preserve Tree Prototype Layers 元のプレハブのレイヤーを保持する。(デフォルト無効)
  • Detail Distance ディテールを表示する距離。この距離を超えると、ディテールはカリングの対象となり描画されない。(デフォルト80)
  • Detail Density 単位面積当たりのディテールオブジェクト数 (デフォルト1)
  • Tree Distance 樹木を表示する距離。この距離を超えると、樹木はカリングの対象となり描画されない。(デフォルト5000)
  • Billboard Start 樹木をビルボードで表示する距離。この距離を超えると、樹木はビルボードとして表示される。(デフォルト50)
  • Fade Length 樹木をビルボードでの表示に徐々に置き換える距離。(デフォルト5)
  • Max Mesh Trees 3D オブジェクトとして表示する樹木の最大数。この数量を超えると、樹木ほビルボードとして表示される。(デフォルト50)
Physics
  • Thickness 地形のコライダーの厚みを指定する。コライダーに厚みを持たせることで、高速に移動するゲームオブジェクトが地形を貫通することを防ぐことができる。
Wind Settings for Grass
  • Speed 風の速度 (デフォルト0.5)
  • Size 揺らぎの波長 (デフォルト0.5)
  • Bending しなりの大きさ/角度 (デフォルト0.5)
  • Grass Tint 風が影響する領域の着色 (デフォルトB29980)
Mesh Resolutions
  • Terrain Width X 軸方向の大きさ (デフォルト1000)
  • Terrain Length Z 軸方向の大きさ (デフォルト1000)
  • Terrain Height Y 軸方向の大きさ (デフォルト600)
  • Detail Resolution Per Patch パッチ当たりのディテールを配置するセル数 (デフォルト32)
  • Detail Resolution ディテールを配置するセル数。グリッドを構成するために平方数とする。(デフォルト1024)
Holes Settings
  • Compress Holes Texture 穴をマッピングするテクスチャを DXT1 形式に圧縮する。(デフォルト有効)
Texture Resolutions
  • Heightmap Resolution ハイトマップのピクセル解像度。一辺の長さに2の累乗に1を加えた値を用いる。(デフォルト513 x 513)
  • Control Texture Resolution スプラットマップの解像度 (デフォルト512 x 512)
  • Base Texture Resolution Base Map Dist. を超えた際に使用される合成テクスチャの解像度 (デフォルト1024 x 1024)
Lighting
  • Contribute Global Illumination グローバルイルミネーションの影響を計算する。(デフォルト有効)
Lightmapping
  • Scale In Lightmap ライトマップの相対的なサイズを指定する。0 を指定すると、ライトマップは生成されないが、他のオブジェクトのライティング計算には含まれる。(デフォルト0.0256)
  • Lightmap Parameters ライトマップパラメーターを指定する。
    • Scene Default Parameters シーンで指定された既定のライトマップパラメーターを使用する。
    • Default-HighResolution
    • Default-LowResolution
    • Default-Medium
    • Default-VeryLowResolution (デフォルト)
    • Create New ライトマップパラメーターを新規に作成する。
  • Rendering Layer Mask レンダリングレイヤーマスクを設定する。SRP で使用する。
Terrain Collider
  • Material 物理特性マテリアルを指定する。(デフォルトNone)
  • Terrain Data テレインのデータを保持するアセット
  • Enable Tree Colliders 樹木のコライダーを有効にする。(デフォルト有効)

参考:

Terrain Settings | Unity マニュアル [公式]

解像度

  • メッシュ解像度 (Mesh Resolutions)
  • テクスチャ解像度 (Texture Resolutions)

動画:

Terrain Resolution Overview (Devin Olsen)

 

Intro to Terrain Size & Resolution (cbcstudio)

How to Set Terrain Resolution (Chidre)

参考:

Terrain の基本設定 | Unity でゲームを作ろう!

ピクセルエラー (Pixel Error)

参考:

Terrain でゲームが重いときの対処法 | Unishar

Understanding implementation of terrain pixel error setting – Unity Forum

Pixel Error doing nothing – Unity Forum

How to Set LOD for Terrain Mesh? – Unity Forum

How do you change Pixel Error in Unity3D terrain during runtime? – Stack Overflow

解像度を変更する (Resolution)

参考:

Change Terrain Heightmap Resolution without Resizing Terrain – Unity Answers

Terrain resolution for a MMO – Unity Answers

Terrain Resolution – Unity Forum

Base Texture and Control Texture resolution limit – Unity Forum

Base Texture Resolution – Unity Answers

Control texture resolution ? – Unity Forum

Change resolution of the terrain splat-texture? – Unity Forum

best tile size for terrain? – Unity Answers

Detail Resolution Per Patch

「Detail Resolution Per Patch」は、1回のドローコールで描画されるパッチの大きさを指定する。出来る限り大きな値を指定する方が描画パフォーマンスが向上する。設定値を変更すると編集データは失われるので、最初に設定する必要がある。

Terrain 設定の Detail Resolution Per Patch の値を小さくすると Patch が細分化されるのでより多くのポリゴン数を置けるようになるが描画負荷に大きくかかわる為 64 より小さくするのは非推奨

—— @tiwa_null

動画:

Grass Gap Problem Resolved (The Amazing Codeverse)

参考:

Terrain 設定の Detail Resolution Per Patch の値を小さくすると Patch が細分化される (@tiwa_null) – Twitter

Detail Resolution per Patch – Unity Answers

What does the “detail resolution per patch” in terrain’s options stand for? – Unity Answers

スクリプトから設定する

ドキュメント:

UnityEngine.Terrain | Unity スクリプトリファレンス [公式]

参考:

How do you change Pixel Error in Unity3D terrain during runtime? – Stack Overflow

パフォーマンスを改善する

テレイン
  • 適切な「ハイトマップ解像度」 (Heighmap Resolusion) を使用する
  • Pixel Error を適度に大きくする
樹木/ツリー
  • マテリアルで GPU インスタンシングを有効にする
  • ツリーの Billboard Start を調整する
草花/ディテール
  • Detail Density をある程度下げる
  • Detail Resolution per Patch の値をある程度大きくしておく (64 あるいは 128 が推奨される)
  • ディテールをビルボードで描画する
その他
  • テレインをメッシュに変換する
  • 樹木を Imposter として描画する
  • 高効率な専用の草シェーダーを使用する

参考:

Terrain の基本設定 | Unity でゲームを作ろう!

重い Terrain の描画処理を少しでも軽くする方法 | くろくまそふと

Terrain の負荷やら DrawCall やらを下げるポイント | テラシュールブログ

Terrain の負荷軽減 & ライティングのベイク時間短縮方法 | Unity でゲームを作ろう!

ゲームの描画処理を軽くする方法 | Unity でゲームを作ろう!

Terrain のせいでゲームの動作が重い?設定で改善/軽量化する実例 | JoyPlot ドキュメント

Increase Terrain Performance – Unity Forum

コリジョン

メニューから「Edit > Project Settings」を開き、「Physics」タブで「Enable Unified Heightmaps」を有効にすると、テレインのコリジョンをメッシュと同様に扱うようになる。(Unity 2018.3 以降)

Unity 2019.3 で Thickness パラメーターは削除され、代わりに Continuous Collision Detection の使用が推奨される。

ドキュメント:

Physics | Unity マニュアル [公式]

リンク:

Unity 2019.3 における物理関連の変更事項 | Unity Blog [公式]

チュートリアル

Terrain Resolution Overview (Devin Olsen)

Intro to Terrain Size & Resolution (cbcstudio)

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA