unity3d--地形系統

Sly_461發表於2016-09-21

本文轉載自 “android,unity3d” 部落格,出處http://mahaile.blog.51cto.com/2891586/771167


首先建立一個新的場景 
 
 
點選選單欄中的 Terrain-> create Terrain 選單  

 
 
完成後如 下圖
 
 
 
 
 
 

建立地形系統的時候 unity會按預設的 寬高 影象解析度,紋理解析度 等建立一個地形  不過不怕 這些我們都可以修改滴  

  如果需要在game 視窗(即是遊戲執行視窗)中看效果 ,需要調整下攝像機的位置和角度  

操作方式  選中  Hierarchy 中的 main camera 攝像機 然後使用 場景編輯器上面那4 個 功能(拖動,移動,旋轉,縮放)進行調節即可 調節過程中就可以再game 視窗中看到效果啦,   各位童鞋 多操作幾次就可以熟練操作了


 
點選 Terrain ->resolution 選單 可以設定地形的各個引數
 
 
 
如下圖
 
 
 
 
 
 
 
 

 
如上圖所示從上到下分別代表的含義是

 
Terrain Width: 地形的寬度

Terrain Height: 地形的高度

Terrain Length:地形的長度
 
HeightMap Resolution:地形高度圖的解析度
 
Detail Resolution:細節解析度,控制草和細節網格地圖的解析度。數值越高標示效果越好,想對也越消耗機器效能,可能會卡。根據情況適當的調節。
 
Control Texture Resolution:控制不同紋理的解析度。
 
Base Texture Resolution:控制相對紋理解析度,這裡指一定範圍內的。

 
 
設定完畢點選 set Resolution按鈕,有興趣的朋友可以動態的修改一下引數,看看你的地形發生了什麼樣的改變?

 
修改完後我們來給地形新增點元素吧 

 
選中 Hierarchy 中的 剛剛建立的terrain 地形 右邊出現了地形的編輯視窗
 
如圖
 
 
 
 
 
 
 
 
 
 
上圖中 的紅框框 講解  從上 到下
 
 
1: position 是地形的 位置座標  
 
   rotation 的旋轉座標
 
   scale   縮放比例
 
   這個位置任何遊戲元件都有這 3 個屬性
 
 
 
2:  這7 個屬性 從左往右 分別是 編輯高度、編輯特定高度、設定平滑、紋理貼圖、畫樹模型、畫草模型、其他設定.善用著七個工具可以編輯一個非常不錯的遊戲地形,稍後我會介紹這七個按鈕的具體操作流程。
 
 
 
 2.1 選中編輯高度   下面出現 barusher 和 settings  屬性欄

Brushes:地形繪製畫筆,這裡有很多種畫筆的圖案可供我們選擇。
 
Brush Size :畫筆寬度取值範圍
Opacity :畫筆高度取值範圍
 

 
如圖 
 
 
 
 
 
各位童鞋 可以修改引數 在地圖系統上 繪製 高度 感受這些引數的 意義 
 
 
 
 
 
 
上圖是我使用編輯高度拖拽出來的效果  現在有點難看哈 ,,沒事滴   我們繼續完善它 

 
 
2.2  編輯特定高度
 
 
和編輯高度頁面中的資訊差不多,只是多了一個Height用來設定最大的高度,編輯高度中Opacity是最大高度,但是在這裡Height才是最大高度但是Opacity必需有數值,舉個例子Opacity設定為100  Height設定 80 最高的高度就是80   .Opacity設定為20  Height設定 100最高的高度還是20.   
 
 
 
 
2.3 設定平滑
 
用上面拉出來的地形 如果 近距離看 會發現 有些山峰 的邊角會有些粗糙, 這時我們就可以使用 設定平滑來 山峰的邊角平滑過渡

 
2.4  紋理貼圖
 
這個東東呢 ,就是給地圖加上圖片 ,從而實現 好看的地圖 而非像上面光光的  圖片資源方面我們可以匯入系統標準的資源庫,裡面有很多好看的地形資源,當然也可以自己新增喜歡的圖片做地形資源。
 
匯入系統 圖片資源  選擇  選單欄中的assets -> import package -> terrain assets   點選匯入 ,這裡只是匯入 地形系統的資源  在此次你也可以匯入其他資源   如下圖
 
 
 
 
 
 
 
 

 
點選Edit Textures  出現一個下拉選單
 add Textures 新增一個貼圖 
 Edit Textures  編輯貼圖
 Remove Textures刪除貼圖
 
點選 addTextures 新增一個貼圖 
 
如圖 中的 箭頭 標記  選擇一個 你喜歡的地形圖片  給地形 
 
 
 
 
 

Add Terrain Texture (新增貼圖)
splat :選擇一個貼圖,上面匯入了系統自帶的地形資源,在這裡隨便新增兩個貼圖用於區分資源。也可以新增自己喜歡的圖片,拖放在工程中就可以在這裡看到圖片資源。
 
Tile size x: 設定貼圖X軸寬度
Tile size x:設定貼圖Y軸寬度
Tile offset x:設定貼圖X軸偏移量
 

Tile offset y:設定貼圖Y軸偏移量


 

有興趣的童鞋修改一下引數方可看到效果,這裡暫時使用預設數值。。


 
 
現在回頭看看 是不是好看多了 , 精彩還在後面的 ,我們繼續 ....

 
 
2.5   畫樹模型 
 
 
既然 是地形 當然是有樹啦  
 
 
Hierarchy 標籤欄中,點選Create - > Tree 可以建立一個樹的模型,設定自己的樹木模型,這裡我們先匯入系統自帶的樹木模型,以後在討論自定義模型的製作。

 
因為新建的工程中是沒有樹木和草地的貼圖元素,可以在Unity3D 的標準資源庫中匯入,匯入的方法和紋理貼圖介紹的一樣。開啟Unity3D 在Project標籤欄中 滑鼠右鍵 Import package - > Tree Creator 將標準樹木資源模型匯入工程。
 
 
點選 Add Terrain Texture 新增一個 樹模型  過程和 新增紋理貼圖 類似 
 
 
如下圖  
 
 
 
 
 
在上圖中 花樹模型的 屬性 
 
 
Brush Size : 畫筆繪製一次樹木新增數量,數值越大越多,越小則越少,取值範圍0到100。
Tree Density:樹之間的百分比,在一片樹中間在放入量一片樹就得修改這個數值了,取值範圍0到100。
Color Variation:樹之間顏色差的範圍,取值範圍0到1。
TreeHeight:樹的高度,它是與場景模型有一定比例,越大樹越高,取值範圍0到200。
Variation:樹與樹之間的高度比例,取值範圍0到30。
Tree Width:樹的寬度,它是與場景模型有一定比例,越大樹越寬,取值範圍0到200。
Variation: 樹與樹之間的寬度比例,取值範圍0到30。


 
 
 
 
 
 
童鞋可以 調整這些引數 才地形上 花 並觀看 效果 

 
我在 地形上 新增了 樹 效果如下

 
 
 
 
game 遊戲執行時的效果 如圖
 
 
 
但我們在 遊戲 的 game 視窗中 看 效果 會 發現  地形中 灰暗暗的一片  這是為什麼呢 , 這是因為 光線不夠 ,   這些unity 都為我們想好了 ,記得我們 前面有一章講了 game object 嗎 ?  現在我們來新增一個 平行光 (如何新增平行光 不知道的童鞋去看 Unity3D遊戲開發 建立簡單的遊戲世界(三)  新增遊戲元件 ),給 地形加點 亮度
 
各位童鞋注意哦,平行光的位置對遊戲中的亮度是沒有關係的, 角度才對亮度有關係, 所以我們新增了 平行光 旋轉旋轉角度就可以搞定了   

 
如下圖 是不是好看多了  
 
 
 
 
畫草模型:

起始它不僅能草,還能畫一些自定義模型,可以處理一些零碎的小東西豐富遊戲場景 它或 畫樹模型有些類似  這裡就不再多囉嗦了 
 
主要設定一些3D遊戲地形的一些引數


一下面列出一些主要引數的介紹,盆友們可以自己拖動滑鼠修改一下其中的具體數值就可以在遊戲檢視中清晰的看到效果。

Pixel Error:控制地形密度容差,數值越大越圓滑,越小地形角度越明顯。
Base Map Dist:控制地形貼圖的距離.
Case shadows: 是否顯示地形陰影
Draw:是否繪製繪製場景模型,比如樹,草等等。
Wind Settings 地形中風的設定
Speed:風速 
Size:風的範圍


 
 
學習了這一章 童鞋們趕快 試試 製作自己的喜歡的遊戲地形吧 ,   哈哈 ,, 這章暫時就到這了 ,  有什麼不明白的地方或遺漏的地方  歡迎積極留言 , 大家共同學習 共同進步 咔咔 

相關文章