Tree It:免費且功能豐富的捏樹軟體
我前陣子在Reddit上面看到有人在Unity的討論區詢問捏樹的軟體,有人推薦了Tree It。我試著使用後發現這套軟體不但功能比Unity內建的捏樹功能豐富且強大。Unity內建的捏樹功能其實滿簡單的,而且有侷限性,並不是很好用。我還有看到一套Unity插件叫做Mtree,不過需要付費
Tree It雖然不如SpeedTree強大,可是基本要用的功能應有盡有,而且免費。以下我會分享一些我覺得滿實用的功能與一些缺點,然後如果時間允許在下一篇文章我會分享如何將Tree It製作的樹匯入Unity中還帶有風力的頂點動畫。
支援節點的手動編輯
沒有自訂樹狀階層的功能
跟Unity內建的樹狀階層不同,TreeIt每個檔案階層數目與類別是固定且有限的,只有樹幹>>枝條>>小枝條>>葉片(Mesh)。
然而你可以把捏成的樹當作Mesh使用,捏好後的樹即使被當作Mesh使用風力也能正常計算,所以並不是太大的問題。在TreeIt本身附的範例中可以看到很多是單獨捏出分枝的枝葉的模型然後再將這片枝葉的模型當作Mesh使用,所以實際上階層數目和和種類依然可以自訂,只是與Unity的運作方式不太一樣。
將植栽直接渲染成貼圖
手動調節面數
沒有自動生成LOD的功能,但是有刪減面數(Poly Reduction)的功能,枝葉也能調節段數。
更豐富的參數控制
控制枝葉的形狀、生成位置等等參數控制比Unity內建的捏樹功能更多能控制的細節。
貼圖集(Texture Altas)
可以把多個同種類的貼圖打包成一張,Unity內建的捏樹功能會自動化不能自己設定。
烘焙於頂點色的Ambient Occlusion(AO)
雖然此軟體找不到對此的相關說明,但是可以得知AO都是烘焙在頂點顏色的Alpha通道裡,因為其他RGB三色會被其他烘焙的數據占用,依照設定可能是風力、法線等。
檔案格式支援
貼圖格式常見的PNG、JPG、TGA、BMP都有支援,另外還支援DDS。
模型匯出則支援DBO、FBX、OBJ、X,要注意有些格式匯出可能會不支援頂點色,會導致烘焙在頂點上的顏色丟失。
匯入模型用以當作Mesh的支援則格式則有TRE(Tree It模型本身的格式)、DBO、OBJ、X、3DS,不過要注意這邊有個Bug,匯入的模型檔案中只能有頂點位置、法線、UV座標,否則匯入或儲存檔案的時候會出錯,如何處理將在後面說明。
再來我要說一些缺點,就是這個軟體其實有些Bug(相信各位使用過Unity已經習慣了),而且沒有自動保存,這是在操作這個軟體過程中最痛苦的,反而Unity內建的捏樹功能是捏樹過程中很痛苦。所以我要說一下一些我遇到的 Bug與解決方式。
存檔 、匯出
沒有自動存檔,而且存檔在某些操作的狀況下會出錯毀損,雖然我發現這些回損的存檔竟然拿來當Mesh使用還是能夠正常顯示。所以建議使用這個軟體的時候每次不要直接儲存蓋過原本檔案並且常備份。
以下幾個狀況是我發現會導致存檔出錯的情況。
- 閒置太久或從休眠模式醒來,程式會跳出視窗說需要退出是否存檔?
- 使用了檔案結構有問題的Mesh,存檔會跳出「Runtime Error 5106 -Memblock size value illegal at line 4601」,這個問題會在隨後說明。
- 存到或匯出至沒有權限的資料夾。
載入外部3D軟體製作的Mesh
使用自製的Mesh是我發現這個軟體最容易出現問題的地方。模型儲存的檔案中如果有包含頂點的位置、法線、顏色、UV座標以外的資訊會導致出錯,面數過高以及模型檔案在沒有權限的資料夾也會。一旦出錯可能會在載入當下或是存檔時出錯。
最早發現解決方法是在官方的論壇上,有人發現可能是檔案結構的問題。有許多3D軟體匯出模型時候會附帶一些資訊像是動畫影格、 樣板、轉換的矩陣的資訊,會導致Tree It匯入該模型的檔案時出錯。目前唯一解決方法是匯出後打開檔案手動刪除,以下我以Direct X格式(副檔名X)做例子,注意模型匯出不可為Binary,不然會無法編輯。
在下圖中就是直接從3ds Max以插件匯出Direct X格式的模型檔案的節錄,第1行是Header、而第87行開始是儲存Mesh頂點資料,之間剩餘的資料需要刪除。
清理後的Direct X檔案結構會如下,如果有匯出法線還會有法線的相關資訊。對於其他檔案格式的模型作法也是類似,然而我只有試過Direct X與Obj格式。
xof 0303txt 0032 Mesh MeshName { //各頂點的位置 } MeshTextureCoords c1 { //各頂點的UV座標 } MeshVertexColors { //各頂點的顏色 } }Obj格式的話只保留v、vt、vn、f開頭的行數,有關Obj格式可參考維基說明。
本文到此結束,此軟體對我來說是非常驚豔的,雖然也有一些缺點。
未來若有時間會解說如何處理匯入Unity後產生風力頂點動畫,當然你也可以參考此篇Unity的官方文章,因為風力動畫的處理是來自頂點顏色,差異只在RGB各通道儲存的資訊順序不同而已。
留言
張貼留言
₍₍ς(OωO ς)⁾⁾