Unity 3D 游戲場景設(shè)計(jì)實(shí)例

2021-06-30 16:32 更新

目前 Unity 3D 在游戲開發(fā)方面常用的游戲地形系統(tǒng)制作元素,接下來我們通過一個(gè)實(shí)踐案例制作一個(gè)完整的三維游戲場景。

案例設(shè)計(jì)

本案例將創(chuàng)建一個(gè) 3D 游戲場景,其中包含了 Unity 3D 中提供的各種地形資源,如樹木、山地、風(fēng)域等。

案例實(shí)施

  1. 選擇相關(guān)資源加載到項(xiàng)目中。

執(zhí)行 CreateNew 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)。

  1. 創(chuàng)建項(xiàng)目。

在創(chuàng)建一個(gè)新項(xiàng)目之后,新項(xiàng)目的各個(gè)面板中只有 Project(項(xiàng)目文件欄)包含了兩個(gè)文件夾,這兩個(gè)文件夾里面是之前導(dǎo)入的項(xiàng)目文件包里的所有文件。

  1. 創(chuàng)建地形。

執(zhí)行 GameObject3D ObjectTerrain 選項(xiàng)。

  1. 設(shè)置地形信息。

單擊 Terrain 中的 Set Resolution 按鈕,選擇設(shè)置地形大小、高度等相關(guān)信息(在每一個(gè)地形參數(shù)的右側(cè)直接輸入數(shù)值即可修改它),地形參數(shù)包括地形的高度、長度、寬度、分辨率和高度圖等。

  1. 更改地形屬性。

在場景面板中選中剛才創(chuàng)建的地面對象 Terrain,也可以在 Hierarchy 視圖中選中 Terrain。

然后,在 Inspector 屬性面板中會馬上發(fā)現(xiàn)與之對應(yīng)的屬性,包含 Position(坐標(biāo))、Rotation(旋轉(zhuǎn)量)、Scale(縮放尺寸)以及地面對象固有的 Terrain(Script)Terrain Collider。

  1. 繪制凸起地形。

通過設(shè)置地形參數(shù)就可以對地形上的地貌進(jìn)行編輯,單擊平整的地形,之后在右側(cè)的 Inspector 中的 Terrain(Script)中就可以對地貌進(jìn)行編輯。

注:

游戲開發(fā)中主要使用左邊 3 個(gè)按鈕設(shè)置地形起伏:

  • Raise/Lower Terrain(提高和降低高度)

  • Paint Target Height(繪制目標(biāo)高度)

  • Smooth Height(平滑高度)

  1. 筆刷調(diào)節(jié)。

在設(shè)計(jì)山脈的過程中可能涉及不同高度、不同大小以及不同形態(tài)的高山。

在每一種筆刷的下方也可以對筆刷的大小等屬性進(jìn)行調(diào)節(jié)。

其中,筆刷面積的大小決定了筆刷所能夠覆蓋的區(qū)域,小的數(shù)字將會繪制較小的地形,大的數(shù)字(最大100)將繪制較大的地形。透明度決定了筆刷繪制的地形的透明程度。

選擇筆刷后,就可以在 Scene 視圖中使用筆刷在地形上刷出凹陷與凸起效果,使用不同筆刷繪制的效果圖。

  • 第一種筆刷。在首選項(xiàng)中可以對地形進(jìn)行山脈的設(shè)計(jì),單擊此按鈕,激活提高和降低地形高度的工具。

在 Scene 視圖中,如果在地形上移動鼠標(biāo),會有一個(gè)藍(lán)色的圓圈,這是筆刷的作用區(qū)域。

在設(shè)計(jì)的過程中可能涉及不同高度、不同大小、不同形態(tài)的高山以及凸起。

下面的各類筆刷功能將會很簡單地實(shí)現(xiàn)這一不同的需求,同時(shí)在 Brushes 下方可以對筆刷的大小等屬性進(jìn)行調(diào)節(jié),如下圖所示。

  • 第二種筆刷。地形編輯器中的第二個(gè)按鈕可以對地形高度進(jìn)行設(shè)計(jì),此時(shí)可以打開設(shè)置地形特定高度頁面,如下圖所示。

其中的 Height 參數(shù)用于設(shè)置地形的最大高度(注意:此時(shí)用 Height 而不是 Opacity 設(shè)置最大高度)。

  • 第三種筆刷。地形編輯器中的第三個(gè)按鈕是平滑過渡地形工具。選擇一個(gè)合適畫筆。

在 Scene 視圖中拖動鼠標(biāo)即可平滑過渡地形,可以對已經(jīng)設(shè)計(jì)好的,看起來嶙峋的山脈地形進(jìn)行平滑過渡處理,更加符合山脈的特征。

從上圖中可以看出,平滑的效果還是相當(dāng)明顯的,在進(jìn)行了前 3 個(gè)選項(xiàng)的編輯之后,初始的地貌已經(jīng)出現(xiàn)了,接下來就進(jìn)行地貌材質(zhì)貼圖并布置一定量的花草樹木。

  1. 凹陷地形的制作。想要制作凹陷地形,首先需要在 Paint Height 工具中抬高地形,單擊 Paint Height 工具,選擇 Height(Flatten)

此時(shí),按住 Shift 鍵,使用前 3 個(gè)地形工具即可刷出凹陷地形。

  1. 對地形進(jìn)行相關(guān)材質(zhì)的貼圖。到目前為止,地形已經(jīng)建好了,但是十分粗糙,默認(rèn)的地形貼圖是灰色的,接下來給地形添加貼圖,讓地形看起來更為美觀。

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)行紋理變換。

  1. 添加樹木。

在地形編輯器中單擊第五個(gè)按鈕,執(zhí)行 EditRemove tree typesAdd tree 命令,即可完成樹木的添加。

參數(shù)列表:

  • Add Tree : 添加樹模型。

  • Edit Tree : 編輯樹模型。

  • Remove Tree : 刪除樹模型。

根據(jù)地形環(huán)境特點(diǎn),選擇合適的樹木種類,單擊 Add 按鈕完成添加。

右側(cè)的 Inspector 面板中會出現(xiàn)所選樹的圖形,同時(shí)在下方的 Settings 中也會有關(guān)于樹模型屬性的設(shè)置,例如筆刷大小、樹的密度、樹的高度、樹的隨機(jī)顏色變化等。

在這里就可以以筆刷形式把樹“畫”在地形上。

  1. 加入一些花草以及巖石。

首先在地形編輯器中選擇第六個(gè)按鈕(添加草與網(wǎng)格模型)可以設(shè)置草的最大高度、草的最小高度、密度以及間隔顏色等。

參數(shù)列表:

  • Brush Size : 設(shè)置筆刷大小 。

  • Opacity : 設(shè)置繪制高度。

  • Target Strength : 設(shè)置繪制密度。

  • Add Grass Texture : 添加草的貼圖。

  • Add Detail Mesh : 添加自定義網(wǎng)格模型。

  • Edit : Edit。

  • Remove : 刪除模型。

選擇 EditRemove Detail meshes 中的 Add Grass Texture 選項(xiàng),就可以彈出添加草的對話框,如下圖所示。

單擊 Add 按鈕之后右側(cè) Inspector 面板中的 Details 就會出現(xiàn) Grass 選項(xiàng),在 Brush 中選擇合適的筆刷類型,在地形中就可以畫出草地。

  1. 其他設(shè)置。

做到這一步,一個(gè)簡單的地形已經(jīng)建立起來了,現(xiàn)在模型還是略顯單調(diào)。

  1. 水的添加。

在 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(縮放)在場景中正確地放置水,如下圖所示。

  1. 為場景添加光影效果。

選中光照對象 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)生陰影效果。

  1. 測試場景。

  1. 第一人稱漫游操作。

接下來需要設(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í)行 AssetsImport PackageCharacters 命令即可。

在資源面板中搜索 FPSController,在搜索導(dǎo)航欄中輸入 f,此時(shí)可以在資源面板中看見預(yù)置的 First Person Controller。

將 Project 面板中的 FPSController 拖到 Scene 視圖中(FPSController 要高于地面)。

FPSController 自帶攝像機(jī),此時(shí)可以將場景中的主攝像機(jī)(Main Camera)刪除。

  1. 測試效果。

可以在平面上通過 W、A、S、D 鍵以及上下左右方向鍵控制前進(jìn)、后退、左右旋轉(zhuǎn)、鼠標(biāo)也可以通過旋轉(zhuǎn)確定移動方向。

將第一人稱視角應(yīng)用到已經(jīng)建立好的游戲場景中,實(shí)現(xiàn)第一人稱漫游。

到此整個(gè) 3D 游戲場景實(shí)例結(jié)束。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號