Unity3D自帶功能:樹物體(Tree)


通過菜單GameObject > 3D Object > Tree可以為當(dāng)前場(chǎng)景創(chuàng)建一個(gè)Tree (樹),同時(shí)還會(huì)把相應(yīng)的Tree asset資源存放在項(xiàng)目文件夾中。

unity_tree_01.png

Tree是標(biāo)準(zhǔn)的Fractal(分形)結(jié)構(gòu),按“第一層主干上長(zhǎng)出數(shù)根枝干,然后枝干上又各自長(zhǎng)出數(shù)根細(xì)枝,……最后細(xì)枝上長(zhǎng)出多片樹葉”這樣一層層搭建而來。Maya中的筆刷樹也是用的這種構(gòu)成方法,但Unity3D相對(duì)來說更簡(jiǎn)化了一些。

TreeStructureDiagram.png

樹編輯器及節(jié)點(diǎn)

Unity3D提供一個(gè)簡(jiǎn)單的樹編輯器,讓我們可以從主干開始創(chuàng)建一顆完整的樹。這個(gè)樹編輯器很像Xfrog(Maya中集成了一個(gè)簡(jiǎn)化版的Xfrog插件)。

一顆比較完整的樹的結(jié)構(gòu)至少要如下圖所示,有多個(gè)層級(jí),最下方是1個(gè)樹節(jié)點(diǎn),然后接一層枝節(jié)點(diǎn)當(dāng)樹干,然后再接1~2層枝節(jié)點(diǎn)當(dāng)樹枝,最后接一層葉節(jié)點(diǎn)來生成樹葉。

unity_tree_00.png

編輯器中間的結(jié)構(gòu)圖示代表了不同層級(jí)的節(jié)點(diǎn),Unity3D的Tree只有3個(gè)不同類型的節(jié)點(diǎn):樹節(jié)點(diǎn)(Tree)、枝節(jié)點(diǎn)(Branch)、葉節(jié)點(diǎn)(Leaf)。每個(gè)節(jié)點(diǎn)上的數(shù)字代表該節(jié)點(diǎn)中總共有多少根“樹枝”或者多少片“樹葉”。

選擇一個(gè)枝節(jié)點(diǎn),我們可以通過右下角的圖標(biāo)為它創(chuàng)建一個(gè)下級(jí)枝節(jié)點(diǎn)或者葉節(jié)點(diǎn),或者復(fù)制/刪除任意枝節(jié)點(diǎn)或葉節(jié)點(diǎn),葉節(jié)點(diǎn)之下不能創(chuàng)建別的節(jié)點(diǎn)。

樹節(jié)點(diǎn)只能有一個(gè),不可刪除。


樹節(jié)點(diǎn)(Tree)

樹節(jié)點(diǎn)是最底部的節(jié)點(diǎn),用來控制整棵樹的參數(shù)設(shè)置

unity_tree_02.png
  • Distribution
    • Tree Seed:這是一個(gè)“種子數(shù)”,所謂“種子數(shù)”是計(jì)算機(jī)中控制“假隨機(jī)數(shù)”的一個(gè)關(guān)鍵參數(shù),大家只需要知道我們?nèi)绻龊昧艘豢脴湟院笙氲玫搅硪豢妙愃频灰耆粯拥臉?,就可以直接?fù)制這棵樹,什么調(diào)整都不用做,只修改一下新樹的“種子數(shù)”就好了。做好的樹樣子不太理想,改改“種子數(shù)”也許就能獲得一個(gè)好看些的結(jié)果
    • Area Spread:區(qū)域散布距離,值越大,刷出來的樹離筆刷路徑距離越遠(yuǎn)
    • Ground Offset:這棵樹離地面的高度
  • Geometry
    • LOD Quality:設(shè)置LOD(隨距離變化而改變模型精細(xì)度),因?yàn)門ree物體的mesh都是由程序根據(jù)參數(shù)來自動(dòng)生成的,所以天生就有LOD屬性
    • Ambient Occlusion:環(huán)境自遮罩陰影設(shè)置
    • AO Density:AO的程度
  • Material
    • Translucency Color:透明區(qū)域顏色
    • Trans. View Dep.:透明區(qū)域渲染深度
    • Alpha Cutoff:貼圖上半透明區(qū)域的切除程度,leaf通常都用透明貼圖來呈現(xiàn),但Tree物體會(huì)將透明通道做Cutoff處理,也就是不呈現(xiàn)半透明的效果
    • Shadow Strength:陰影強(qiáng)度
    • Shadow Offset:陰影偏移
    • Shadow Caster Res.:陰影分辨率

枝節(jié)點(diǎn)(Branch)

枝節(jié)點(diǎn)是創(chuàng)建枝干的節(jié)點(diǎn),枝干是一根可以扭曲的長(zhǎng)圓錐體,通常會(huì)貼上樹皮的貼圖,用來作為樹干或者主要分叉樹枝。

unity_tree_03.png
  • Distribution
    • Group Seed:這個(gè)“種子數(shù)”是控制這一“群”枝條如何隨機(jī)分布的
    • Frequency:在一根上級(jí)枝條上會(huì)出現(xiàn)多少根本級(jí)枝條,對(duì)于主樹干來說這個(gè)值設(shè)置為1,其他的枝干這個(gè)值通常大于1
    • Distribution:這些枝條如何分布
    • Growth Scale:通過一根曲線控制這些枝條從長(zhǎng)出點(diǎn)到尖端的截面粗細(xì),通常是會(huì)設(shè)置成越靠近尖端越細(xì)
    • Growth Angle:通過一根曲線控制這些枝條從長(zhǎng)出點(diǎn)到尖端的彎曲程度,大部分樹越靠近尖端會(huì)越指向天空
  • Geometry
    • LOD Multiplier:LOD的設(shè)置,次級(jí)枝條的LOD會(huì)讀取上級(jí)枝條的LOD然后用這個(gè)倍乘數(shù)來調(diào)整
    • Geometry Mode:幾何體模式,可以是branch(枝條)模式,那就是一個(gè)長(zhǎng)圓錐;也可以是一個(gè)fronds(蕨類復(fù)葉結(jié)構(gòu)),那就是一個(gè)扁平的長(zhǎng)條雙面片;還可以是branch+fronds,那就是兩者都有
    • Branch Material:指定枝條的材質(zhì)球
    • Break Material:指定枝條斷口(頂端)的材質(zhì)球
  • Shape
    • Length:枝條長(zhǎng)度,會(huì)隨機(jī)在指定范圍內(nèi)取值
    • Relative Length:是否使用相對(duì)長(zhǎng)度
    • Radius:枝條的最大直徑
    • Cap Smoothing:斷口處的光滑度
    • Crinkliness:枝條的扭曲度,0代表筆直的枝條,1代表彎彎扭扭的枝條,可以用曲線來控制從根部到頂端使用不同的Crinkliness
    • Seek Sun:枝條尖端朝向太陽的程度,如果做向日葵的話當(dāng)然就設(shè)成1咯
    • Noise:給枝條根部到頂端的粗細(xì)變化添加一個(gè)噪波隨機(jī)紊亂,值越大越紊亂
    • Noise Scale U:噪波貼圖的大小U值
    • Noise Scale V:噪波貼圖的大小V值
    • Flare:只有主干(緊跟樹節(jié)點(diǎn)的那個(gè)枝節(jié)點(diǎn))才能設(shè)置Flare,F(xiàn)lare可以讓主干底部變得很粗,且最底部截面根據(jù)Noise值而變得形狀不規(guī)則,用來模擬樹根有一部分突出在地面以上的效果
      • Flare Radius:主干根部變粗程度
      • Flare Height:主干根部變粗部分高度
      • Flare Noise:主干根部截面
    • Weld:非主干的枝節(jié)點(diǎn)上出現(xiàn)的是下面3個(gè)屬性,用來模擬長(zhǎng)出數(shù)值的接口處的過渡效果
      • Weld Length:銜接區(qū)域長(zhǎng)度
      • Spread Top:向上方擴(kuò)展程度
      • Spread Bottom:想下方擴(kuò)展程度
    • Break Chance:枝條斷裂的可能性,值越大,越多該層級(jí)的枝條出現(xiàn)斷裂,斷裂的枝條會(huì)有斷口,而且也不會(huì)有次級(jí)枝條或葉片產(chǎn)生
    • Break Location:斷裂的位置,會(huì)隨機(jī)在指定范圍內(nèi)取值
  • Wind
    • Main Wind:風(fēng)力大小
    • Main Turbulence:(非主干的枝節(jié)點(diǎn)上才會(huì)出現(xiàn))主要紊亂場(chǎng)力度大小
Flare相關(guān)參數(shù)獲得的根部效果
Weld相關(guān)參數(shù)獲得的過渡效果
Break屬性獲得的斷口效果

我們可以手動(dòng)對(duì)branch進(jìn)行調(diào)整:

  • Move Branch:branch的中軸控制曲線及其節(jié)點(diǎn)會(huì)顯示在Scene View里,選擇一個(gè)節(jié)點(diǎn)然后移動(dòng)可以改變整個(gè)枝條的形狀
  • Rotate Branch:branch的中軸控制曲線及其節(jié)點(diǎn)會(huì)顯示在Scene View里,選擇一個(gè)節(jié)點(diǎn)然后旋轉(zhuǎn),可以旋轉(zhuǎn)自這個(gè)節(jié)點(diǎn)開始以后的枝條部分
  • Free Hand:可以手動(dòng)在Scene View中畫出枝條形狀

注意:手動(dòng)調(diào)整之后,很多參數(shù)就不可用了,編輯器中的節(jié)點(diǎn)圖示上也會(huì)多出一個(gè)筆形符號(hào)做為提示。


葉節(jié)點(diǎn)

葉節(jié)點(diǎn)是創(chuàng)建葉片的節(jié)點(diǎn),葉片是一個(gè)Quad面片,通常會(huì)貼上樹葉貼圖,但一般不會(huì)用奢侈到用單個(gè)面片做1片樹葉,常見的用法是單個(gè)面片上貼上一枝帶若干葉片的細(xì)小樹枝的貼圖,來模擬枝繁葉茂的樣子。

unity_tree_04.png
  • Distribution
    • Group Seed:這個(gè)“種子數(shù)”是控制這一“群”葉片如何隨機(jī)分布的
    • Frequency:在一根上級(jí)枝條上會(huì)出現(xiàn)多少葉片
    • Distribution:這些葉片如何分布
    • Growth Scale:通過一根曲線控制這葉片的大小
    • Growth Angle:通過一根曲線控制這些葉片的彎曲
  • Geometry
    • Geometry Mode:幾何體模式
      • Plane:?jiǎn)蝹€(gè)Quad面片
      • Cross:十字交錯(cuò)的2個(gè)Quad面片
      • TriCross:十字交錯(cuò)的3個(gè)Quad面片
      • Billboard:?jiǎn)蝹€(gè)Quad面片,但永遠(yuǎn)面朝攝像機(jī)
      • Mesh:指定一個(gè)多邊形mesh作為葉片形狀
    • Material:指定葉片的材質(zhì)球
  • Shape
    • Size:葉片大小
    • Perpendicular Align:葉片垂直方向?qū)R程度
    • Horizontal Align:葉片水平方向?qū)R程度
  • Wind
    • Main Wind:風(fēng)力大小
    • Main Turbulence:主要紊亂場(chǎng)力度大小
    • Edge Turbulence:邊緣紊亂場(chǎng)力度大小

我們可以手動(dòng)對(duì)leaf進(jìn)行調(diào)整,leaf沒有中軸線,所以只能移動(dòng)或者旋轉(zhuǎn):

  • Move Leaf:沿著上級(jí)brunch移動(dòng)leaf
  • Rotate Leaf:繞leaf和上級(jí)branch的接觸點(diǎn)旋轉(zhuǎn)leaf

注意:手動(dòng)調(diào)整之后,很多參數(shù)就不可用了,編輯器中的節(jié)點(diǎn)圖示上也會(huì)多出一個(gè)筆形符號(hào)做為提示。

關(guān)于風(fēng)場(chǎng)和動(dòng)力學(xué)解算:

要產(chǎn)生樹被風(fēng)吹動(dòng)的效果,需要?jiǎng)?chuàng)建一個(gè)Wind Zone(風(fēng)區(qū)),我們可以點(diǎn)擊Create Wind Zone按鈕創(chuàng)建,或者從菜單欄創(chuàng)建。

樹物體的“主干”、“枝條”、“葉片”三種不同的結(jié)構(gòu)部分面對(duì)風(fēng)場(chǎng)的動(dòng)力學(xué)表現(xiàn)是不同的:

  • “主干”很粗,所以只受到風(fēng)場(chǎng)風(fēng)強(qiáng)的影響,會(huì)被風(fēng)吹彎;
  • “枝條”比較細(xì),除了跟著主干運(yùn)動(dòng)并被風(fēng)強(qiáng)吹歪以外,還會(huì)受到一個(gè)紊亂場(chǎng)的影響,具有一定的震顫抖動(dòng)效果;
  • “葉片”最輕,尤其在邊緣部分的葉片,震顫抖動(dòng)效果愈發(fā)明顯,所以多了一個(gè)Edge Turbulence的參數(shù)。

大家可以下載一些Asset Store里提供的免費(fèi)的Tree資源,看看別人是怎么設(shè)置的:


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容