Unity - Terrain 機能の基本的な使い方②
初めに
Unity では、Terrain 機能を使うことで、地形や草、木、岩などのゲームオブジェクトを効率的に作成することができます。本記事では、木や草、岩などを追加する方法をまとめます。
Index
準備
本記事は、「Terrain 機能の基本的な使い方①」の続きになります。前記事では、Paint Terrain を使って、地形を作る方法をまとめております。その部分に不安がある方は、先にそちらをご覧ください。
Paint Trees
Paint Trees 機能を使って、Tree をペイントできます。
Paint Trees の使い方
Paint Trees を使うには、まず Edit Trees ボタンを押し、Add Tree を選択して木のオブジェクトを追加します。
本記事では「Terrain Sample Asset Pack」アセットに含まれている木のオブジェクトを追加してみます。下の画像のように追加されたオブジェクトが表示されます。
Scene ビューでクリックすることで、指定範囲に木を設置することができます。
Terrain が大きすぎて見にくいですが、接地されたことが分かります。
プロパティ
プロパティ | 機能 |
---|---|
Mass Place Trees | ペイントを使わずに、ランドスケープ全体を覆う Tree を作成する |
Brush Size | ブラシの大きさ |
Tree Density | Brush Size で定義された領域にペイントする Tree の平均数を制御する |
Tree Height | スライダーを使って Tree の最低の高さと最大の高さを制御する Random のチェックを外すと、新しくペイントするすべての Tree の正確な高さのスケールを 0.01 から 2 の範囲内で指定できる |
Lock Width to Height | デフォルトでは、Tree に対し常に均一のスケールが行われるように、Tree の幅は高さに合わせて固定されています。ただし、Lock Width to Height オプションを無効にすると、幅を個別に指定する事ができます。 |
Tree Width | Tree の幅が高さに固定されていない場合は、スライダーを使って Tree の最低幅と最大幅を制御する Random のチェックを外すと、新しくペイントするすべての Tree の正確な幅のスケールを 0.01 から 2 の範囲内で指定できる |
Random Tree Rotation | Tree を LOD Group で制御する場合は、このオプションを使うと、全く同じ様相の Tree から成る人工の植樹ではなく、ランダムで自然な森のような印象になります。Tree を固定し、全く同じ向きで配置したい場合は、このオプションを無効にします。 |
Color Variation | Tree に適用されるランダムなシェーディングの量 これは、シェーダーが _TreeInstanceColor プロパティを読み取る場合にのみ機能する |
Tree Contribute Global Illumination | これを有効にすると、Tree をグローバルイルミネーションの計算に加える |
追加した Tree に LOD Group を持たない場合、Random Tree Rotation では次のように表示されます。
LOD Group については、ドキュメントを載せておきます。
Tree の作成
Tree の作成方法は、ドキュメントでは2通り紹介されています。
- SpeedTree
- Tree エディタ
SpeedTree
SpeedTree はゲームや映画の制作で使用される、業界標準の植生モデリングツールキットです。ゲームでは、Unity や Unreal Engine で使われています。
Unity は SpeedTree の Model アセットをインポートすることができます。
Tree エディタ
Unity 内の機能で作る場合は Tree エディタを使用します。
Hierarchy で右クリック > 3D Object > Tree をクリックすると Tree オブジェクトが生成されます。
Tree オブジェクトには、Tree コンポーネントがアタッチされています。これを使って 枝を増やしたり、葉をつけたり、Material を設定したりします。
Paint Details
草とディテールのペイントができます。
使い方
Edit Details をクリックすると、Add Detail Mesh と Add Grass Texture オプションが表示されます。いずれかのオプションを選択すると、ウィンドウが表示され、Terrain をペイントするアセットの選択ができます。
Add Detail Mesh は GameObject を、Add Grass Texture では Texture2D を使用します。
「Fantasy Forest Environment - Free Demo」に含まれる Grass01 オブジェクトを追加し、塗ってみます。
Add Detail Mesh を選択し、オブジェクトを選択します。Add をクリックするとオブジェクトが追加されます。
Scene ビューでクリックすると選択範囲に塗ることができます。