分類:Unity、C#、VS2015
創建日期:2016-04-11
在地形編輯器一節中,已經告訴了你如何使用已經創建好的樹來形成大片樹林。這一節告訴你在 Unity 5.3.4中如何利用【樹木創建器】一步一步地創建一棵樹:
當你學會了創建樹的基本操作後,你就可以根據自己的需要創建任意形狀的樹了:
如果你原來沒有導入Unity自帶的Environment組件,需要導入它:
辦法是:鼠標右擊工程視圖下的Assets文件夾,選擇Environment,在彈出的窗口中,單擊【All】按鈕,然後單擊【Inport】按鈕。
此時,在Standard Assets文件夾下就會看到導入的資源:
依次單擊Environment/SpeedTree文件夾下的各個子文件夾,觀察子文件夾中的文件,以便對其結構有一個大概的了解。
另外,除了樹組件(SpeedTree)以外,Environment下還包含地形組件(TerrainAssets)以及水組件(Water)。
導入Environment以後,就可以直接使用這些組件了。
1、創建場景
先添加一個Demo06文件夾,然後在該文件夾下創建一個名為Demo06Scene的場景:
雙擊打開該場景。
2、添加一棵新樹
要在剛創建的場景中創建一個新的樹 (Tree) 資源,需要先鼠標右擊層次視圖(Hierarchy),選擇【3D Object】->【Tree】:
此時在工程視圖 (Project View) 中創建了一個文件名為Tree的預制體文件,將該文件拖放到Demo06文件夾中:
拖放後,在Demo06文件夾下就可以看到這個文件,將其換名為Demo06Tree01以方便識別是哪個例子創建的:
換名後,在當前打開的場景中,即可看到實例化的Demo06Tree01樹(如果看到的不是這樣,將其旋轉縮放一下就看到了):
現在這棵新樹還很簡單,只有一個樹干,接下來我們為它添加樹枝、樹葉。
3、觀察樹木創建器的大致結構
選中這棵樹,先在檢視器 (Inspector) ) 中看一下樹木創建器的大致結構(紅色框):
檢視器中提供了塑造和雕刻你所創建的樹的所有工具和屬性。
在【Tree】選項卡下,可看到呈現節點的樹木層級視圖 (Tree Hierarchy) :樹根 (Tree Root) 節點和一個單一的樹枝組 (Branch Group) 節點(稱為樹干)。
為了方便介紹,以後將樹木創建器中右下角的4個小按鈕(小紅色框內)從左到右分別命名為【按鈕1】、【按鈕2】、【按鈕3】、【按鈕4】:
【按鈕1(Add Leaf)】:添加樹葉。向當前選擇的組節點添加一個樹葉組節點。
【按鈕2(Add Branch)】:添加樹枝。向當前選擇的組節點添加一個樹枝組節點。
【按鈕3(Copy Node)】:復制節點。復制當前選擇的組。
【按鈕4(Delete Node)】:刪除節點。刪除層次視圖 (Hierarchy) 中當前選擇的組或場景視圖 (Scene View) 中的一個節點或一個樣條線點。
除了這4個按鈕外,還有:
【樹木狀態(Tree Stats)】:樹木的狀態信息(在4個小按鈕的上方),此狀態告訴你樹木具有多少頂點、多少三角形和多少種材質。
【外部重載(External Reload)】:也叫刷新,即再次計算整棵樹(該按鈕在4個小按鈕的左邊)。在樹葉網格已改變的情況下,可使用此按鈕。
4、添加樹枝(Adding Branches)
在【Tree】選項卡中,單擊【按鈕2(Add Branch)】添加一個樹枝:
選中剛添加的樹枝,利用4個按鈕下方的【移動樹枝】、【旋轉樹枝】、【自定義樹枝】按鈕,以及【按鈕4(Delete Node)】,通過鼠標拖放小方塊在場景中改變該樹枝的形狀:
單擊主樹干,然後單擊【按鈕2(Add Branch)】,按照上面介紹的相同的辦法,再添加另一個樹枝:
在樹干上創建了樹枝後,還可以進一步選擇次級樹枝組 (Branch Group) 並再次單擊【按鈕2(Add Branch)】在新創建的樹枝上添加更小的樹枝。微調這個組的值,可繼續創建更多連接至次級樹枝的樹枝。
現在,這棵簡單的樹的樹枝結構已經完成,如果游戲場景不是發生在冬天,那麼還需要在樹枝上添加樹葉(Leaf)。
5、添加樹葉
添加樹葉和添加樹枝的操作基本上是一樣的。基本步驟是:先選中某個樹枝節點,然後單擊【按鈕1(Add Leaf)】按鈕即可。
如果想進行非常細致地塑造,也可以再在最小的樹枝上添加另一個樹葉組。
下圖是分別在樹干和2個樹枝上各添加一個樹葉後的場景:
現在,樹葉僅僅被渲染成不透明的平面。這是因為在為它們添加材質之前,我們需要先調整樹葉的值(大小、位置、旋轉等)。調整合適以後,就可以為其添加材質了。
6、添加材質
為了使樹看起來更加逼真,還需要在樹枝和樹葉上應用材質 (Material)。
(1)創建樹枝材質
鼠標右擊Demo06文件夾,選擇【創建 (Create)】 -> 【材質 (Material)】 ,在該文件夾下創建一種新材質,並將其重命名為Demo06Bark01,意思是Demo06文件夾下創建的第1個樹皮(Bark)材質。
在著色器 (Shader) 下拉菜單中,選擇【自然 (Nature)】 -> 【樹木創建器樹皮 (Tree Creator Bark)】:
將【基礎(Base)】屬性和【光澤 (Gloss)】屬性都選擇【BroadleafBark】紋理:
法線貼圖 (Normalmap) 屬性使用【BroadleafBark_Normal】紋理:
這樣在Demo06文件夾下就得到了創建的樹枝材質(Demo06Bark01.mat文件):
選擇某個樹枝,將創建的樹枝材質應用到該樹枝:
依次選擇其他樹枝,直到全部應用材質為止。
(2)創建樹葉材質
按照與創建樹枝材質同樣的步驟,再創建一個文件名為Demo06Leaf01.mat的材質。
在著色器 (Shader) 下拉菜單中,選擇【自然 (Nature)】 -> 【樹木創建器樹葉 (Tree Creator Leaves)】:
指定紋理:
這就得到了樹葉材質:
選擇某個樹葉,將材質應用到該樹葉:
對所有樹葉都做同樣的處理,直到所有樹葉應用完畢。
現在再來看看添加材質後的這棵樹(每個樹枝上都有一個樹葉):
選中某個樹葉,觀察【Frequency】屬性的值,可看出此時該值默認為1:
接下來將【Frequency】屬性的值調整為42,即得到下面的效果:
對另外兩個樹枝執行同樣的操作,就得到了我們希望的樹:
說明:創建樹是一個反復試驗的過程,總的原則是一般不要創建太多的樹葉/樹枝,因為太多的話會影響渲染的性能。
7、添加角色控制器
最後再添加一個第1人稱角色控制器,以便旋轉、拉伸、移動場景:
按【播放】按鈕預覽運行效果。