W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
目前 Unity 3D 在游戲開發(fā)方面常用的游戲地形系統(tǒng)制作元素,接下來我們通過一個(gè)實(shí)踐案例制作一個(gè)完整的三維游戲場景。
案例設(shè)計(jì)
本案例將創(chuàng)建一個(gè) 3D 游戲場景,其中包含了 Unity 3D 中提供的各種地形資源,如樹木、山地、風(fēng)域等。
案例實(shí)施
執(zhí)行 Create
→ New Project
命令,在 Project Location
中輸入創(chuàng)建項(xiàng)目的文件夾地址,或者單擊后面的 Browse 按鈕
,然后在 Import the following packages:中選擇要導(dǎo)入的項(xiàng)目文件包,每個(gè)文件包都帶有一些插件功能。
注:
- 如果將所有的復(fù)選框都選中,會使得 Unity 3D 在開始加載的時(shí)候速度很慢,所以大多數(shù)情況下,在創(chuàng)建 Unity 3D 項(xiàng)目文件的時(shí)候,只選擇需要用到的包就可以了,在這里選擇
Environment 選項(xiàng)
。
在創(chuàng)建一個(gè)新項(xiàng)目之后,新項(xiàng)目的各個(gè)面板中只有 Project(項(xiàng)目文件欄)包含了兩個(gè)文件夾,這兩個(gè)文件夾里面是之前導(dǎo)入的項(xiàng)目文件包里的所有文件。
執(zhí)行 GameObject
→ 3D Object
→ Terrain
選項(xiàng)。
單擊 Terrain
中的 Set Resolution 按鈕
,選擇設(shè)置地形大小、高度等相關(guān)信息(在每一個(gè)地形參數(shù)的右側(cè)直接輸入數(shù)值即可修改它),地形參數(shù)包括地形的高度、長度、寬度、分辨率和高度圖等。
在場景面板中選中剛才創(chuàng)建的地面對象 Terrain
,也可以在 Hierarchy 視圖中選中 Terrain
。
然后,在 Inspector 屬性面板中會馬上發(fā)現(xiàn)與之對應(yīng)的屬性,包含 Position(坐標(biāo))
、Rotation(旋轉(zhuǎn)量)
、Scale(縮放尺寸)
以及地面對象固有的 Terrain(Script)
和 Terrain Collider
。
通過設(shè)置地形參數(shù)就可以對地形上的地貌進(jìn)行編輯,單擊平整的地形,之后在右側(cè)的 Inspector 中的 Terrain(Script)
中就可以對地貌進(jìn)行編輯。
注:
游戲開發(fā)中主要使用左邊 3 個(gè)按鈕設(shè)置地形起伏:
Raise/Lower Terrain
(提高和降低高度)
Paint Target Height
(繪制目標(biāo)高度)
Smooth Height
(平滑高度)
在設(shè)計(jì)山脈的過程中可能涉及不同高度、不同大小以及不同形態(tài)的高山。
在每一種筆刷的下方也可以對筆刷的大小等屬性進(jìn)行調(diào)節(jié)。
其中,筆刷面積的大小決定了筆刷所能夠覆蓋的區(qū)域,小的數(shù)字將會繪制較小的地形,大的數(shù)字(最大100)將繪制較大的地形。透明度決定了筆刷繪制的地形的透明程度。
選擇筆刷后,就可以在 Scene 視圖中使用筆刷在地形上刷出凹陷與凸起效果,使用不同筆刷繪制的效果圖。
在 Scene 視圖中,如果在地形上移動鼠標(biāo),會有一個(gè)藍(lán)色的圓圈,這是筆刷的作用區(qū)域。
在設(shè)計(jì)的過程中可能涉及不同高度、不同大小、不同形態(tài)的高山以及凸起。
下面的各類筆刷功能將會很簡單地實(shí)現(xiàn)這一不同的需求,同時(shí)在 Brushes 下方可以對筆刷的大小等屬性進(jìn)行調(diào)節(jié),如下圖所示。
其中的 Height
參數(shù)用于設(shè)置地形的最大高度(注意:此時(shí)用 Height
而不是 Opacity
設(shè)置最大高度)。
在 Scene 視圖中拖動鼠標(biāo)即可平滑過渡地形,可以對已經(jīng)設(shè)計(jì)好的,看起來嶙峋的山脈地形進(jìn)行平滑過渡處理,更加符合山脈的特征。
從上圖中可以看出,平滑的效果還是相當(dāng)明顯的,在進(jìn)行了前 3 個(gè)選項(xiàng)的編輯之后,初始的地貌已經(jīng)出現(xiàn)了,接下來就進(jìn)行地貌材質(zhì)貼圖并布置一定量的花草樹木。
Paint Height
工具中抬高地形,單擊 Paint Height
工具,選擇 Height
(Flatten)
此時(shí),按住 Shift 鍵
,使用前 3 個(gè)地形工具即可刷出凹陷地形。
Unity 3D 提供了很多地形貼圖,如果在之前創(chuàng)建項(xiàng)目時(shí)沒有導(dǎo)入資源,此時(shí)可以在 Project 視圖中右擊,執(zhí)行 Import Package→Environment
命令將環(huán)境資源導(dǎo)入項(xiàng)目。
最后,為地形添加導(dǎo)入的地形貼圖,單擊地形貼圖按鈕(從左數(shù)第 4 個(gè)按鈕),在界面右下角點(diǎn)擊 Edit Textures
中的 add Texture 選項(xiàng)
,具體參數(shù)如下:
Add Texture
: 添加地形貼圖。Edit Texture
: 編輯地形貼圖。Remove Texture
: 添刪除地形貼圖。
選擇 Add Texture
,此時(shí)彈出 Add Terrain Texture
界面,選擇 Select 選項(xiàng)
,將預(yù)先載入的紋理作為地形貼圖紋理,然后單擊 Add 按鈕
,右側(cè)的 Inspector
屬性面板選擇就會出現(xiàn)材質(zhì)的縮略圖。
貼圖后地形就會被紋理自動全部覆蓋。
為了模擬更加真實(shí)的效果,在場景中可以選擇繼續(xù)添加紋理圖片,此時(shí)可以選擇不同的筆刷對場景中不同的地點(diǎn)進(jìn)行紋理變換。
在地形編輯器中單擊第五個(gè)按鈕,執(zhí)行 Edit
→ Remove tree types
→ Add tree
命令,即可完成樹木的添加。
參數(shù)列表:
Add Tree
: 添加樹模型。Edit Tree
: 編輯樹模型。Remove Tree
: 刪除樹模型。
根據(jù)地形環(huán)境特點(diǎn),選擇合適的樹木種類,單擊 Add 按鈕
完成添加。
右側(cè)的 Inspector 面板中會出現(xiàn)所選樹的圖形,同時(shí)在下方的 Settings
中也會有關(guān)于樹模型屬性的設(shè)置,例如筆刷大小、樹的密度、樹的高度、樹的隨機(jī)顏色變化等。
在這里就可以以筆刷形式把樹“畫”在地形上。
首先在地形編輯器中選擇第六個(gè)按鈕(添加草與網(wǎng)格模型)可以設(shè)置草的最大高度、草的最小高度、密度以及間隔顏色等。
參數(shù)列表:
Brush Size
: 設(shè)置筆刷大小 。Opacity
: 設(shè)置繪制高度。Target Strength
: 設(shè)置繪制密度。Add Grass Texture
: 添加草的貼圖。Add Detail Mesh
: 添加自定義網(wǎng)格模型。Edit
: Edit。Remove
: 刪除模型。
選擇 Edit
→ Remove Detail meshes
中的 Add Grass Texture 選項(xiàng)
,就可以彈出添加草的對話框,如下圖所示。
單擊 Add 按鈕之后右側(cè) Inspector 面板中的 Details
就會出現(xiàn) Grass 選項(xiàng)
,在 Brush
中選擇合適的筆刷類型,在地形中就可以畫出草地。
做到這一步,一個(gè)簡單的地形已經(jīng)建立起來了,現(xiàn)在模型還是略顯單調(diào)。
在 Project 文件夾里找到 Water 文件夾
,具體路徑為 "Assets/Standard Assets/water(pro only/basic/Water/Water4/Water4Example(Advanced))"。
有兩種添加水資源的方式,第一種方法是直接將 Water4Example(Advanced)文件
拖入 Scene 場景中,第二種方法是將水資源拖曳到 Hierarchy 視圖中,在 Hierarchy 視圖中就可以看到 Water4Example(Advanced)
,單擊就可以找到 Scene中的水模型,運(yùn)用快捷鍵W
(移動)和 R
(縮放)在場景中正確地放置水,如下圖所示。
選中光照對象 Directional light
,在它的屬性面板中找到 Shadow Type(陰影模式)
,默認(rèn)的是 No Shadows(沒有陰影)
,可以將它改成 Soft Shadows(軟渲染陰影)
或 Hard Shadows(硬件渲染陰影)
。
Soft Shadows
以消耗 CPU 的計(jì)算為代價(jià)來產(chǎn)生陰影效果,這種模式運(yùn)行速度較慢,但對于機(jī)器配置比較落后的使用者是唯一的選擇。
Hard Shadows
可利用新一代 GPU 的顯卡加速功能進(jìn)行陰影效果的渲染處理,其運(yùn)行速度比較快,渲染效果也比較理想。
無論選擇哪一個(gè)選項(xiàng),動畫場景的物體都會相對于陽光產(chǎn)生陰影效果。
接下來需要設(shè)計(jì)并創(chuàng)建獨(dú)特的角色來充滿世界,這樣玩家可以控制一個(gè)真實(shí)的角色,玩家角色是玩家用和游戲進(jìn)行交互的化身,增加了游戲的趣味性。
通常角色會分為 3 類:
Unity 3D 支持這些類型,在 Unity 3D 中,角色是通過 Character Controller
定義的。
為場景中添加第一人稱角色非常簡單,攝像機(jī)就像角色的眼睛一樣在世界中漫游。具體步驟如下。
確定建立項(xiàng)目時(shí)已載入 Character Controller 資源
,如果在創(chuàng)建項(xiàng)目時(shí)沒有載入資源,執(zhí)行 Assets
→ Import Package
→ Characters
命令即可。
在資源面板中搜索 FPSController
,在搜索導(dǎo)航欄中輸入 f
,此時(shí)可以在資源面板中看見預(yù)置的 First Person Controller
。
將 Project 面板中的 FPSController
拖到 Scene 視圖中(FPSController
要高于地面)。
FPSController
自帶攝像機(jī),此時(shí)可以將場景中的主攝像機(jī)(Main Camera
)刪除。
可以在平面上通過 W、A、S、D 鍵以及上下左右方向鍵控制前進(jìn)、后退、左右旋轉(zhuǎn)、鼠標(biāo)也可以通過旋轉(zhuǎn)確定移動方向。
將第一人稱視角應(yīng)用到已經(jīng)建立好的游戲場景中,實(shí)現(xiàn)第一人稱漫游。
到此整個(gè) 3D 游戲場景實(shí)例結(jié)束。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: