Terrain Collider は Terrain (地形) の形状に正確に一致するため、非常に正確な Terrain (地形) の衝突シミュレーションを行います。Terrain Collider は、Terrain (地形) に対する最も正確なコライダータイプです。
プリミティブなコライダー や メッシュコライダー とは異なり、Terrain Collider はハイトマップベースです。PhysX は事前定義された形状やメッシュからではなく、対応する Terrain (地形) のハイトマップデータから Terrain Collider を生成します。
PhysX のハイトマップベースのコライダーの詳細については、Nvidia PhysX ドキュメントの Geometry: Height Fields を参照してください。
Terrain Collider は、形状、位置、スケールなど、割り当てられた TerrainData アセットのハイトマップデータに一致する衝突ジオメトリを構築します。この方法の利点は、コライダーの形状を表示されている Terrain (地形) の形状とまったく同じにできるため、より精密で正しい衝突判定ができる事です。
Terrain (地形) には、プレハブを追加する ブラシ の種類が 2 つあります。樹木 と ディテール です。これらのブラシを使用すると、樹木、茂み、岩、他の地形の詳細をすばやく追加できます。詳細については、Terrain (地形) に関するドキュメントの Brushes、Trees、草とその他のディテール を参照してください。
プレハブを作成するときに必要なコライダーを追加します。樹木ブラシを使用してプレハブを Terrain (地形) に適用する場合は、Terrain Collider を使用してコライダーを有効または無効にする必要があります。Terrain Collider で Enable Tree Colliders を使用して、樹木プレハブのコライダーを切り替えます。
Terrain Collider は、樹木ブラシで追加したプレハブのコライダーのみを生成します。ディテールブラシで追加したプレハブのコライダーは生成されません。ディテールブラシはプレハブのメッシュのみをレンダリングし、コライダーはレンダリングしないからです。Terrain (地形) ゲームオブジェクト上にコライダーを持たせる場合は、樹木ブラシを使用して追加します。
Unity はランタイムにのみ樹木プレハブのコライダーを生成するため、これらはランタイムに Physics Debug でコライダーのジオメトリを確認するときにのみ表示されます。
Terrain Collider は、Terrain (地形) で使用するコライダーとして、ほとんどのケースで最適な選択です。Terrain Collider は Terrain (地形) の形状を正確に表現し、他のコライダーとの正確な衝突判定を可能にします。また、Terrain Collider は、Terrain (地形) を作成すると自動的に生成されるため、設定と設定時間を最小限に抑えることもできます。
パフォーマンスの改善を求める場合は、Terrain (地形) に平坦な領域が多くある場合、または物理演算の衝突の精度があまり高くなくても問題ない場合にのみ、Terrain (地形) の衝突に他の方法を試すことができます。以下のセクションでは、2 つの代替手段について説明します。
低解像度の TerrainData を作成し、Terrain Collider に適用できます。
Terrain (地形) の既存の TerrainData を複製し、解像度を下げます。Terrain Collider の TerrainData フィールドを低解像度の TerrainData に設定します。
コライダーと地形が異なる TerrainData を持つことを示す警告が Terrain (地形) の Inspector に表示されますが、意図的に行っている場合は無視してかまいません。
Terrain (地形) のハイトマップをエクスポートし、外部ソフトウェアを使用して簡略化した メッシュコライダー にすることができます。
Terrain Tools パッケージをインストールします。Export Heightmap ツールを使用して、Terrain (地形) のハイトマップをエクスポートします。3D モデリングソフトウェアを使用して、ハイトマップからメッシュを作成します。3D モデリングソフトウェアを使用して、メッシュに対してメッシュ簡略化ルーチンを実行します。メッシュを Unity にインポートして、メッシュコライダーのソースとして使用します。