ひとりでのアプリ開発 - fineの備忘録 -

ひとりでアプリ開発をするなかで起こったことや学んだことを書き溜めていきます

Unity - Terrain 機能の基本的な使い方②

初めに

 Unity では、Terrain 機能を使うことで、地形や草、木、岩などのゲームオブジェクトを効率的に作成することができます。本記事では、木や草、岩などを追加する方法をまとめます。

準備

 本記事は、「Terrain 機能の基本的な使い方①」の続きになります。前記事では、Paint Terrain を使って、地形を作る方法をまとめております。その部分に不安がある方は、先にそちらをご覧ください。

fineworks-fine.hatenablog.com

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 については、ドキュメントを載せておきます。

docs.unity3d.com

Tree の作成

 Tree の作成方法は、ドキュメントでは2通り紹介されています。

  • SpeedTree
  • Tree エディタ
SpeedTree

 SpeedTree はゲームや映画の制作で使用される、業界標準の植生モデリングツールキットです。ゲームでは、Unity や Unreal Engine で使われています。
 Unity は SpeedTree の Model アセットをインポートすることができます。

unity.com

docs.unity3d.com

Tree エディタ

 Unity 内の機能で作る場合は Tree エディタを使用します。

 Hierarchy で右クリック > 3D Object > Tree をクリックすると Tree オブジェクトが生成されます。

 Tree オブジェクトには、Tree コンポーネントがアタッチされています。これを使って 枝を増やしたり、葉をつけたり、Material を設定したりします。

docs.unity3d.com

Paint Details

 草とディテールのペイントができます。

準備

 本記事では、「Fantasy Forest Environment - Free Demo」アセットを使用します。

assetstore.unity.com

使い方

 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 ビューでクリックすると選択範囲に塗ることができます。