簡介
在Unity中想要建立道路物件,其實使用土法煉鋼法雖然可行(從3D模型做好,丟到B2M後製材質),但這有許多缺點,不建議用此方法,Unity有個非常好的外掛可以解決這種耗時耗工、缺乏靈活性的窘境,EasyRoad,目前有提供免費版,大家可以先去Asset Store下載。這篇我們先來講講Free版本怎樣來創建路面。
EasyRoad Free Function
當你Import完此plugin後可以看到Asset會多出EasyRoads3D與Scene,打開Scene中會有一個Demo的場景,可以從那邊開始,但我要從0開始講述怎樣新增EasyRoad。
首先點選Hierarchy中點選右鍵->Create 3D Object->EasyRoad3D->New Road Network。
大家可以先看下圖,新增好後的Road Network裡面有兩個物件,Connection Object是新增交界路面物件或是連接節點物件,例如圓環、十字路口等等。Road Object就是單純的道路。
在場景中新增路面之前,我們先了解一下EasyRoad的Main Function。大家可以看下圖,主要功能大致上有七大塊:
0.當下點選的物件細部參數調整區塊
1.新增路面物件選項(Road Objects)
2.新增交錯路口物件選項(Connection Objects)
3.地形與道路的設定選項
4.EasyRoad細部設定選項
5.路面紋理與路邊邊界物件選項
6.版本等其他訊息公告區
開始新增路面
我們先慢慢講,先從上圖的1開始說。
Type:這邊可以說是路面的整合物件,需要再Main Panel的4.選項中做設定,設定好之後他會將路面的細部參數在新增時直接帶入。
Name:路面物件名稱,可自行修改或是系統直接命名。
Layer:每個路面可以給他不同的圖層,有點類似階層關係。
Width:路面的寬度。
Material:路面的材質,一樣假如在Setting有客製化好自己的道路,這邊就不用賦予材質球,反之則需要給你目前要新增的路面材質球。
Side Object:是否要開啟路面邊界的物件。
都瞭解過後我們可以按下下圖紅色箭頭處的Add New Object。
你會覺得很那悶,為啥按下去了東西還出不來?!
其實這邊有個很重要的技巧,新增路面按鈕按下去後
必須在Scene中按下Shift+滑鼠右鍵,在空間中點兩個不同位置的點
整條路面才會出現(兩點成一線的概念)。
有了兩點的路面我們要怎麼延伸路面呢?
一樣點選想要延伸的點,有兩種方法如下圖,個人推薦第一種。
調整路面參數
要如何調整路面細節呢,我們可以先點選場景中的Road Network物件,會出現下圖的紅色圓圈圈的藍色GUI按鈕,大家可以試著拖曳看看,可以在場景中不同維度做位移。
下圖是點選某個路面物件的其中一個藍色點GUI後,在EasyRoad Main Panel的0.選項會出現該路面的細部參數。
而在調整路面的選項中,我把它分為六個部分來講述:
1.物件名稱
2.基礎路面參數設定
3.路面物件邊界物件設定
4.路面物件在環境中的位置、面數、傾斜角度等等
5.場景中的每條道路,您都可以選擇是否將道路形狀嵌入地形圖示中。將道路與地形融合在一起是很有用的功能。
6.檢查路面工具,會以一個camera以第三人稱視角並沿著路面滑行。
1.
可以看到上圖的1區塊,這邊會顯示你選取的路的名稱,值得注意的地方是紅色底線處,這邊顯示的資訊是路面的長度、點與三角面的數量,當你必須製作精密場景時這邊的資訊是很好參考的指標,也可以觀看面數來調整效能。
2.
看到上圖的2.處,就是主要調整整體路面的參數區,反黑區是因為free版本無法調教,最好還是安裝pro版本。
RoadName:路的物件名稱,可以自行修改或試用系統生成的名稱。
RoadType:假如你新增路面物件後發現不是你想要的prefab物件,在setting路面物件資料庫中可以選擇其他不同路面物件替換。
RoadWidth:路面寬度。
Sub Segments:將路面的面數增加好調整路面的轉彎曲線,但在與CrossRoad連接觸不支持。
Resolution:路面模型面的解析度,假如細節越高的數值需要調低。
Angle Threshold:這可用於優化道路幾何形狀,同時仍保留彎道中的細節。在製作轉彎處的時候勢必要調整的地方。這個參數需要跟Resolution共同調整,官方舉例是說不見此值低於5。
Road Smoothness:
Bumpiness Y Offset: 控制道路的平整度。
Bumpiness Distance: 調整平整度的間距距離。
Random Tilting Angles: 控制路面基礎的傾斜角度。
Tilting Distance: 調整傾斜角度的距離。
Follow terrain Contours : 道路將自動調整為地形形狀,意思是路面會服貼著你的Terrain高低起伏。
Contour Treshold: 值越低,道路與地形形狀的匹配程度越高,對於高速公路(如高速公路)使用較高的值。這是一個DelayedFloatField,更改值後按Enter鍵以更新道路。
Road Material: 路面的材質。
UV Tiling: 控制路面材質紋理的大小(好用)。
Additional UV data: 可以在UV通道4中生成與地形邊界框匹配的uv數據或平鋪在指定距離上的uv數據。
Flip Road Texture / UVs: 反轉路面的Texture或UV的座標。
Flip Normals: 反轉路面的面向。
Start Decal & End Decal: 開始時當前選擇的貼圖,可以通過從下拉列表中選擇另一個貼圖來手動更新。 貼圖可以用作交叉路口之間的道路類型之間的過渡,也可以添加變化,裂縫和道路固定。可以在每種道路類型中添加貼花預製件,在General Setting->Road Type製作。
Closed Track: 按下這選項後,路會自動頭尾相連。
Terrain Deformation: 可用於關閉此特定道路的地形變形,例如用作橋樑路段的道路。
Cast Shadows: 路面陰影開啟或關閉,不建議使用。
Delete Object: 刪除該路面。
Select Object in Hierarchy: 這將選擇實際的道路對象。除了提供一種快速的方法來實際選擇層次中的那條路之外,它並沒有真正的目的。
Duplicate Object: 這將復制對象,如果您需要一系列形狀相似的物件。
Export Object: 可將道路輸出成外部.obj檔案。
小結
由於EasyRoad其中有很多操作眉角需要分很多章節來述說,然而當大家下載使用Free版本可能會覺得綁手綁腳,如需使用Pro版本,可以來找我Copy。用Free版本目的是希望大家可以先試水溫,至少先把本章節的新增路面與延伸路面嘗試做出來。在之後章節會講到許多Pro才有的功能,我們在第二章節會把路面的剩下參數講完。