Terrain Settings

ドキュメント:

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

使い方

参考:

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

導入

参考:

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

設定

Basic Terrain
  • Grouping IDAuto 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 DiffuseUnity 4.x 以前に使用されていた組み込みシェーダー (レガシー)
      • Built In Legacy SpecularBlinn-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 Trees3D オブジェクトとして表示する樹木の最大数。この数量を超えると、樹木ほビルボードとして表示される。(デフォルト50)
Physics
  • Thickness地形のコライダーの厚みを指定する。コライダーに厚みを持たせることで、高速に移動するゲームオブジェクトが地形を貫通することを防ぐことができる。
Wind Settings for Grass
  • Speed風の速度 (デフォルト0.5)
  • Size揺らぎの波長 (デフォルト0.5)
  • Bendingしなりの大きさ/角度 (デフォルト0.5)
  • Grass Tint風が影響する領域の着色 (デフォルトB29980)
Mesh Resolutions
  • Terrain WidthX 軸方向の大きさ (デフォルト1000)
  • Terrain LengthZ 軸方向の大きさ (デフォルト1000)
  • Terrain HeightY 軸方向の大きさ (デフォルト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 ResolutionBase 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 マニュアル [公式]

ピクセルエラー (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)

参考:

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 の値を小さくすると Patc hが細分化されるのでより多くのポリゴン数を置けるようになるが描画負荷に大きくかかわる為 64 より小さくするのは非推奨

—— @tiwa_null

参考:

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 の使用が推奨される。

参考:

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

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

チュートリアル

Terrain Resolution Overview

Intro to Terrain Size & Resolution

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

コメントを残す

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

Protected by reCAPTCHA