Unity 提供了多種工具來創(chuàng)建環(huán)境特征,例如地形和植被。要在場景中添加地形 (Terrain) 游戲?qū)ο?,請從菜單中選擇 GameObject > 3D Object > Terrain。此過程也會在 Project 視圖中添加相應(yīng)的地形資源。默認情況,場景中出現(xiàn)一個大型平坦的平面。地形的 Inspector 窗口提供了許多工具,可使用這些工具創(chuàng)建細節(jié)化的景觀特征。
接下來,我們新建一個名稱為“TerrainDemo”的工程,然后添加Terrain游戲?qū)ο蟆?/span>
雖然看起來就是一個平面,但是它對應(yīng)的Inspector檢視視圖中屬性內(nèi)容是不一樣的。
我們可以看到這個Terrain游戲?qū)ο笠还灿腥齻€組件:Transform,Terrain,Terrain Collider。其中Transform組件不再介紹,Terrain Collider用于碰撞,暫且不介紹,主要是Terrain組件。該組件下方有五個工具按鈕,如下所示:
他們從左到右依次是:Create Neighbor Terrains(創(chuàng)建周邊地形),Paint Terrain(繪制地形),Paint Trees(繪制樹木),Paint Details(繪制植被)以及最后一個Terrain Settings(地形設(shè)置)。我們首先來看最后一個Terrain Settings(地形設(shè)置)選項按鈕。在這里有一個很重要的參數(shù)就是地形的尺寸和高度參數(shù)設(shè)置。如下圖所示:
默認情況下,創(chuàng)建的地形大小為1000*1000米,高度為600米。
接下來我們介紹Create Neighbor Terrains工具按鈕,其實就是創(chuàng)建新的地形平面,然后再平面上繪制新的地形,這樣做的目的就是通過許多的平面對象來拼湊成一張更大的地形地圖。當然,我們也可以設(shè)置當前地形平面的大小。但是,我們盡量不要創(chuàng)建大尺寸的地形平面。因為大部分的大地圖都是由若干的小地圖拼接而成的。這個很容易理解,因為根據(jù)當前玩家位置來繪制周圍地形地圖的性能消耗肯定要小于繪制整個游戲地形地圖的性能消耗。
接下來,我們介紹Paint Terrain(繪制地形)這個工具的使用。
這個工具很強大,我們注意到“Stamp Terrain”是一個下拉選擇框,其選項如下:
Raise or Lower Terrain:?? 使用畫筆工具繪制地形高度。
Paint Holes:??????????????????? 隱藏地形的某些部分(例如山洞等等)。
Paint Texture:????????????????? 應(yīng)用表面紋理(例如草皮等等)。
Set Height:????????????????????? 使用數(shù)值來調(diào)整地形高度。
Smooth Height:?????????????? 使用平滑的方式來改變地形高度(主要繪制地形的細節(jié))。
Stamp Terrain:??????????????? 在當前高度貼圖之上標記畫筆形狀。
大家注意到,不管大家選擇那一個選項,下面都會有“Brushes”筆刷的工具供大家使用。Unity在地形繪制的時候,基本上都是通過筆刷來完成的操作的。這筆刷有三個屬性可以讓大家設(shè)置,第一就是形狀,第二就是大小,第三就是透明度。熟悉PhotoShop的同學(xué),對于筆刷的使用應(yīng)該非常了解,Unity也是參考了其他繪圖軟件的優(yōu)點,采用了筆刷的方式,讓大家所見所得的去“繪制”我們的地形地貌。大家還可根據(jù)需要創(chuàng)建具有獨特形狀或特定參數(shù)的自定義畫筆,要創(chuàng)建新畫筆,請單擊 New Brush 按鈕,這里不詳細介紹了。
在這里,我們選擇第一項“Raise or Lower Terrain”工具可改變地形區(qū)塊的高度。
從該選項下面的解釋來看,鼠標左鍵是提升高度,如果同時按下Shift鍵的話,則是降低高度。接下來,我們就從“Brushes”右邊選擇一個筆刷的形狀,默認大小為82,透明度為10,如下所示:
然后我們將鼠標移動到Scene視圖中的地形平面上面。
我們可以看到上圖中的效果。它的樣子就是我們選擇筆刷形狀的樣子。如果我們覺得筆刷太小,可以使用 Brush Size 滑動條可控制工具來增加筆刷的尺寸。接下來,我們在地形平面上按下鼠標并拖動鼠標就能提高地形高度,如果按住 Shift 鍵的同時單擊并拖動鼠標可降低地形高度(直接在地形平面上降低高度是不行的,必須升高之后才能降低),操作就是這么簡單。請大家注意的是,Opacity 滑動條可確定將畫筆應(yīng)用于地形時的強度,Opacity 值為 100 表示將畫筆設(shè)置為全強度,值越高改變速度越快,幅度越大。大家可以嘗試修改不同的值試一試就明白了。如下所示:
想要繪制出起伏平滑的地形,并不是一件容易的事情。如果想要控制繪制地形的高度,可以選擇“Set Height”選項。使用 Set Height 工具可將地形上某個區(qū)域的高度調(diào)整為特定值。使用 Set Height 工具進行繪制時,當前高于目標高度的地形區(qū)域會降低,而低于該高度的區(qū)域會升高。Set Height 可用于在場景中創(chuàng)建平坦的水平區(qū)域。
如果要修改地形的細節(jié),可以選擇“Smooth Height”。使用Smooth Height 工具可以將附近區(qū)域平均化,柔化景觀,并減少突然出現(xiàn)的變化,不會顯著升高或降低地形高度。調(diào)整 Blur Direction 值以控制要柔化的區(qū)域。如果將 Blur Direction 設(shè)置為 –1,則該工具會柔化地形的外部(凸出)邊緣。如果將 Blur Direction 設(shè)置為 1,則該工具會柔化地形的內(nèi)部(凹入)邊緣。若要均勻平滑地形的所有部分,請將 Blur Direction 設(shè)置為 0。Brush Size 值確定要使用的畫筆的大小,而 Opacity 值確定該工具對要繪制的區(qū)域進行平滑的速度。
接下來介紹Paint Texture選項,使用該功能可以將紋理(如草、雪或沙)添加到地形平面上,其實就是給平面貼一張紋理圖片。我們?nèi)ツ睦铽@取地形紋理貼圖呢?我們可以從官方資源商店下載免費的紋理資源包,當然也可以使用上個章節(jié)中提到的Unity官方資源包中的“Environment.unitypackage”。我們將其導(dǎo)入到當前項目中,這個過程就不再演示了,大家直接看導(dǎo)入的結(jié)果吧。
大家可以在“Standard Assets\Environment\TerrainAssets\SurfaceTextures”目錄下找到幾張地表紋理圖片,我們就使用他們了。使用Paint Texture選項必須先單擊 Edit Terrain Layers 按鈕以添加地形圖層。如下所示:
我們點擊“Edit Terrain Layers...”,然后選擇“Create Layer...”
在彈出的窗口中,Unity自動為我們展示了當前工程中的圖片,我們就選擇其中的紋理貼圖后雙擊即可。這里我們先選擇“SandAlbedo”紋理圖片,新增加的“NewLayer”圖層。
同時,我們發(fā)現(xiàn)在Scene視圖中的平面統(tǒng)一被賦予了貼圖。
顯然,這樣的操作效果并不是很好,我們還可以繼續(xù)添加新的地形紋理貼圖圖層。這里我們選擇“GrassHillAlbedo”的紋理圖片,如下所示
新的圖層創(chuàng)建完畢后,我們就需要使用畫筆工具來進行繪制。我們選擇剛剛創(chuàng)建的新地形紋理貼圖圖層,然后到Scene視圖中,將鼠標放置地形平面上。接下來,我們只需要按下鼠標并拖動,就可以將剛剛的紋理繪制到地形平面上面。
這次我們可以換一個筆刷,并且調(diào)整筆刷大小以及它的透明度。然后,我們在地形上繪制。
我們發(fā)現(xiàn),新繪制的紋理地貌會覆蓋掉舊的紋理地貌。通過這種方式,我們就可以使用多張紋理來繪制各種各樣的地貌,并且將這些地貌交會融合在一個地形平面上。如果有專業(yè)的美工人員幫助我們制作精美的地形貼圖的話,相信一定能夠做出非常棒的地貌效果,這里我們還是以入門學(xué)習(xí)為目的,就不在細致的制作這些地形效果了。
文章來源:http://www.zghlxwxcb.cn/news/detail-427363.html
關(guān)于地形編輯我們就介紹到這里。文章來源地址http://www.zghlxwxcb.cn/news/detail-427363.html
到了這里,關(guān)于第六章 3D地形搭建(上)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!