Unityのツールで自分で木を作ってTerrainで使えるようにする

今回はUnityのツールで木を作成してみようと思います。

AssetStoreで探せばUnityで使う木は色々用意されているので、そちらを使えば簡単にTerrainで木を生やす事が出来ます。

ただどうしても自分の思い描いている形状ではない、葉が違うという事が発生します。
わたくしのようにあまりこだわりがない人はいいんですが、どうしても自分の思った通りの木を使いたい方もいると思います。

そんな時に3DCG作成ソフトを使って1から作成するところからやっていたらゲーム作成どころではなくなってしまいますし、木を作るだけで相当な期間を奪われてしまいます。

そんな時はUnityのツールで木を作成する事が出来るのでそれを使うと比較的簡単に自分で木を作成出来ます。

スポンサーリンク

木を作るツールを使用する

ヒエラルキー上で右クリック→3D Object→Tree
UnityのGameObjectメニュー→3D Object→Tree

で木のゲームオブジェクトが出来ます。

木1

木を作成するとシーンに上のような幹が出来ます。

幹、枝の設定項目の解説

木2

木のインスペクタを見ると上のようにTreeの項目があります。
絵の部分が木の階層になっていて今は幹があるだけですが、幹を選択した状態で下のアイコンの葉や枝をクリックすると、そこから枝や葉を生やす事が出来ます。

その下のアイコンは枝等を移動や回転させる為のアイコンです。
シーン上の木の四角く表示された部分をドラッグしたりすると形状を変更出来ます。

一番右のアイコンだと自由に生え方を変更出来ます。

しかしアイコンで枝の移動や回転をするとそれ以下の設定値が消えて、自分で作らなければいけなくなります。
全部の設定値ではないみたいですが

木3

上の画像がさきほどの木のインスペクタの続きです。

これらの項目を設定していき木を作成していきます。
まずは枝のプロパティを見ていきます。

Destribution
Group Seed 枝を生成する時のランダム値の種となる数値。
Frequency 親の枝に対しての枝数、幹に対して5を指定すると幹が5本生える。枝を選択して5を指定すると5本の枝が生えます。
Distribution 枝の生やし方(配分)、Randomはランダム、Alternateは交互に枝を生やし、Oppositeは同じ個所の反対側にも生やし、Whorledは渦巻き状(同じ個所から円状)に生やすみたいです。
右のCurveアイコン?をクリックしてCurveを変更すると枝の生える位置を変更出来ます。
均等な間隔で生やす場合は横一線のCurveのままにします。
Twirl 親の枝から回転させます。-1~1の間で指定し、360度回転するっぽいです。(DistributionをRandomにしたら表示されない)
Whorled Step 1つの枝から出る渦巻き(枝)の数。(DistributionをWhorledにした時だけ表示)
Growth Scale 親から生えている枝の成長具合?よくわからんが調整すると枝の長さや太さが変化します。
Growth Angle こちらは角度の成長具合?値を増やすと上向きに成長、Curveによっては下向きに

Geometry
LOD Multiplier LOD(Level Of Detail)の相対値
Geometry Mode 形状
Branch Material 枝のマテリアル。
Break Material 折れた枝の断面のマテリアル。
Frond Material 葉のマテリアル。

このGeometry項目はわかりません・・・・(^_^;)

Shape
Length 枝の長さの調節、矢印?の左部分、右部分をドラッグすると枝の長さの幅を広げられます。
Relative Length 枝の長さと相対的に変更するかどうか
Radius 枝の半径の調整、Curveを使うと先を細くしたり出来ます。
Cap Smoothing 枝の先端の丸みを設定できるみたい。使ってみたがよくわかりません・・・。
Growth (伸び方) 枝の伸び方を調整します。
Crinkliness 枝の途中(シーン上で四角が表示されてる部分)の波状具合(途中から曲がる)
Seek Sun 枝の上下の曲がり具合
Noise 全体的なノイズ要素の調整です。
Noise Scale U
Noise Scale V
Noise関連はわかりません。

Flare関連は幹を選択した場合のみ表示されます。
Flare Radius
Flare Height
Flare Noize
Flareもわかりません。

Weld Length、Spread Top、Spread Bottom は枝を選択した時のみ表示されます。
Weld Length 接合点を根元からどのくらいの距離から作るか
Spread Top 接合点の上の広がり
Spread Bottom 接合点の下の広がり

Break Chance 折れる枝を作る時に使う。0は折れている枝はなし、1は枝が全部折れている。0.5で半分の枝が折れている
Break Location 折れた枝の位置を変更出来る。矢印の左側、右側をドラッグすると範囲を変更出来る。

FrondはGeometoryでFrondを指定している場合のみ表示されます。
Frond Count 枝一本ごとの葉の数を設定します。
Frond Width 葉の幅
Frond Range 葉(Frond)の生え始まりと終わりの位置。
Frond Rotation 親の枝に対する角度
Frond Crease 葉のしわを調整。

これらもよくわからない・・・・(^_^;)

Main Wind 風の影響度合い。
Edge Turbulence 葉(Frond)の縁に沿って発生する乱気流。
Create Wind Zone(風発生システム)をシーンに作成します。

葉の設定項目の解説

次は葉のプロパティを見ていきます。

木4

枝を選択した状態で葉のアイコンをクリックし葉を作成します。

木5

上のように葉を選択すると枝の時と同じような項目が表示されます。

Destribution
Group Seed 葉のランダム生成の為の種の設定。
Frequency 親の枝の葉の数。
Distribution 葉の生やし方。枝の時と同じ
Twirl 親の枝の周りに回転させます。枝の時と同じ
Whorled Step 1つの枝から出る渦巻き(葉)の数、枝の時と同じ。
Growth Scale 葉の成長度合いのサイズ。
Growth Angle 葉の成長度合いの角度。

Geometry
Geometry Mode 葉( Leaf Group )の形状。
Planeは1枚の平たい葉、Crossは2枚をクロスさせる、TriCrossは3枚をクロスさせる、BillBoardは掲示板?(謎)
Meshはメッシュの形で作ります。
Material 葉に使用するマテリアル。
Mesh 葉に使用するメッシュ。

Shape
Size 葉の大きさ、矢印の左側、右側をドラッグすると葉のサイズの範囲を変更出来る。
Perpendicular Align 葉が親の枝に対して垂直に整列するか調整します。
Horizontal Align 葉が水平に整列するか調整します。
Alignの設定値によって同じ方向に向くような葉を作成出来るみたいです。

Main Wind 風の影響度合い
Main Turbulence 乱気流の効果
Edge Turbulence 葉の端に対する乱気流の効果

実際に木を作成してみる

とりあえず一通りの項目は目を通したので、木を作成してみます。

まずは幹を選択し設定していきます。

木6

ShapeのLengthで木の長さを調整しています。あまり長くなりすぎないようにしました。
Radiusで半径を0.3にして右のCurveで木の先を少し太くする為一番右側をドラッグし少し位置を上げます。

木7

木の先が少し太くなりました。主人公キャラと比較して木の大きさを調整してください。
次は幹に枝を生やします。

木8

上のように幹を選択した状態で枝アイコンをクリックすると幹に枝が生えます。
幹の子要素に枝が出来ました、枝の子要素に枝を生やすというようにどんどん階層化が出来ます。
では枝の設定をします。

木9

Frequencyを6、DistributionをAlternate、Twirlを-1にして回転させました。
ShapeのLengthを調整して枝の長さが長すぎないようにします。

Crinklinessを調整し、枝が少し曲がるようにします。

木10

さらに枝の先に枝を作成します。

木11

上のように枝を調整します。

木12

木は上のような感じになります。
これで枝の設定が終わったので、次は枝に葉を生やしていきます。

木13

葉を生やしたい枝を選択した状態で葉のアイコンをクリックします。
上のように枝の子要素に葉が作られます。

葉の設定をする前に幹、枝、葉のマテリアルを設定し、見た目を設定してから葉の大きさ等を調整してみます。

幹、枝に使用するマテリアルを作成します。
Assetsエリアで右クリック→Create→Materialを選択します。

木14

出来たマテリアルのShaterをNature→Tree Create Barkにします。

Base Alphaの右のSelectをクリックし、幹と枝に使用するテクスチャを指定します。
木のテクスチャを持っていない方はAssetStoreで探してください。

同じように葉のマテリアルを作成しShaderをNature→Tree Create Leavesにします。
葉に使用するテクスチャも同じように設定してください。

普通のテクスチャにしてもよかったんですが、ハート型の葉を生やす為に自分でハートの画像を作成してみました。
Windowsのペイントを使えば簡単に出来ますけどね・・・・

ハートの画像

よければ使ってください。(右クリックから名前をつけて保存)

幹、枝、葉のGeometry項目のマテリアルに作ったマテリアルを設定してください。

これで木にマテリアルが設定され、木にテクスチャが貼られました
それでは葉の項目を設定し、葉の大きさや数などの調整を行います。

木15

葉の設定を上のようにしました。
これで木が完成しました!

出来た木の確認とゲームで使用する時にやっておくべき事

どんな木が出来たか確認してみましょう。

木16

ずいぶんメルヘンチックな木が出来上がりました(^。^)
さらに風で木がなびくようにしてみます。

Treeのインスペクタの項目からCreate Wind Zoneをクリックして作成する事も出来ますが、
ヒエラルキー上で右クリック→3D Object→Wind Zoneでも風のシステムが作成出来ます。

Wind Zoneに関しては

Unityで木が風になびく機能を追加する
Unityに設置した木が風で揺れるようにします

を参照してください。

木17

上のように木が風の影響を受けて揺れるようになりました。

あとは木にコライダを設定すればTerrainのフィールド等に木を置いて使用出来ます。

UnityのツールTerrainで作ったフィールドに草や木を生やす
Unityの地面作成ツールTerrainに草や木を生やしてよりリアルなフィールドを作成していく

を参照してコライダの設定をしTerrainに配置してみてください。

これでUnityで自前の木を作成する事が出来ました。
ハート型の葉の木を作成しましたが、わたくしの趣味とは一切関係がありませんのであしからず。
(T_T)/~~~