Unity 3D遊戲場景設計實例

目前 Unity 3D 在遊戲開發方面常用的遊戲地形制作元素,接下來我們通過一個實踐案例製作一個完整的三維遊戲場景。

綜合案例:3D遊戲場景設計

案例構思

在 Unity 3D 設置中最重要的部分就是遊戲場景設計,3D 遊戲場景設計的主要內容包括遊戲場景的規劃、地形設計、山脈設計、河流山谷設計、森林設計等。

針對不同的遊戲採用不同的策略,根據遊戲的每一個故事情節設計遊戲的每個遊戲場景以及場景內的各種物體造型。

本案例旨在通過 3D 遊戲場景設計將 Unity 3D 引擎中地形資源整合利用,開發出完整的遊戲場景。




案例設計

本案例在 Unity 內創建一個 3D 遊戲場景,場景內包括 Unity 3D 提供的各種地形資源,如樹木、山地、草原、風域、地形紋理、水以及天空等,效果如下圖所示。


圖片


圖片

案例實施

步驟 1):選擇資源加載到項目中。

打開 Unity 3D,執行 Create→New Project 命令,在 Project Location 中輸入創建項目的文件夾地址,或者單擊後面的 Browse 按鈕,然後在 Import the following packages:中選擇要導入的項目文件包,每個文件包都帶有一些插件功能。

如果將所有的複選框都選中,會使得 Unity 3D 在開始加載的時候速度很慢,所以大多數情況下,在創建 Unity 3D 項目文件的時候,只選擇需要用到的包就可以了,在這裏選擇 Environment 選項,如下圖所示。






圖片


步驟 2):創建項目。全部設置好之後,單擊 Create 按鈕創建項目。

此時 Unity 3D 開始加載資源,屏幕上顯示加載進度條,需要耐心等待一會兒。

在創建一個新項目之後,新項目的各個面板中只有 Project(項目文件欄)包含了兩個文件夾,這兩個文件夾裏面是之前導入的項目文件包裏的所有文件,如下圖所示。







圖片


步驟 3):創建地形。新建項目後,在主菜單中執行 GameObject→3D Object→Terrain 選項。

此時就可以看到屏幕的正中央已經出現了一個平整的片狀 3D 圖形,如下圖所示。





圖片


步驟 4):設置地形信息。單擊 Terrain 中的 Set Resolution 按鈕,選擇設置地形大小、高度等相關信息(在每一個地形參數的右側直接輸入數值即可修改它),地形參數包括地形的高度、長度、寬度、分辨率和高度圖等,如下圖所示。



圖片


步驟 5):更改地形屬性。在場景面板中選中剛纔創建的地面對象 Terrain,也可以在 Hierarchy 視圖中選中 Terrain。

然後,在 Inspector 屬性面板中會馬上發現與之對應的屬性,包含 Position(座標)、Rotation(旋轉量)、Scale(縮放尺寸)以及地面對象固有的 Terrain(Script)和 Terrain Collider,如下圖所示。





圖片


步驟 6):繪製凸起地形。通過設置地形參數就可以對地形上的地貌進行編輯,單擊平整的地形,之後在右側的 Inspector 中的 Terrain(Script)中就可以對地貌進行編輯。

在下圖中可以看到,左邊 3 個按鈕——Raise/Lower Terrain(提高和降低高度)、Paint Target Height(繪製目標高度)以及 Smooth Height(平滑高度)可以用來修改地形的大體形狀。

遊戲開發中主要使用屬性面板中的前 3 個按鈕來設置地形起伏。







圖片


步驟 7):筆刷調節。在設計山脈的過程中可能涉及不同高度、不同大小以及不同形態的高山,Unity 3D 提供了各種不同類型的筆刷,如下圖所示。

在每一種筆刷的下方也可以對筆刷的大小等屬性進行調節。

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







圖片


選擇筆刷後,就可以在 Scene 視圖中使用筆刷在地形上刷出凹陷與凸起效果,使用不同筆刷繪製的效果圖如下圖所示。

注:選擇筆刷工具,按住 Shift 鍵加鼠標左鍵是降低地形高度。

圖片


步驟 8):第一種筆刷。在首選項中可以對地形進行山脈的設計,單擊此按鈕,激活提高和降低地形高度的工具。

在 Scene 視圖中,如果在地形上移動鼠標,會有一個藍色的圓圈,這是筆刷的作用區域。

在設計的過程中可能涉及不同高度、不同大小、不同形態的高山以及凸起。

下面的各類筆刷功能將會很簡單地實現這一不同的需求,同時在 Brushes 下方可以對筆刷的大小等屬性進行調節,如下圖所示。









圖片


步驟 9):第二種筆刷。地形編輯器中的第二個按鈕可以對地形高度進行設計,此時可以打開設置地形特定高度頁面,如下圖所示,



圖片


其中的 Height 參數用於設置地形的最大高度(注意:此時用 Height 而不是 Opacity 設置最大高度),地形設置效果如下圖所示。



圖片


步驟 10):第三種筆刷。地形編輯器中的第三個按鈕是平滑過渡地形工具。選擇一個合適畫筆,如下圖所示。



圖片


在 Scene 視圖中拖動鼠標即可平滑過渡地形,可以對已經設計好的,看起來嶙峋的山脈地形進行平滑過渡處理,更加符合山脈的特徵,如下圖所示。



圖片


圖片


從上圖中可以看出,平滑的效果還是相當明顯的,在進行了前 3 個選項的編輯之後,初始的地貌已經出現了,接下來就進行地貌材質貼圖並佈置一定量的花草樹木。

步驟 11):凹陷地形的製作。想要製作凹陷地形,首先需要在 Paint Height 工具中擡高地形,單擊 Paint Height 工具,選擇 Height(Flatten),如下圖所示。





圖片


此時,按住 Shift 鍵,使用前 3 個地形工具即可刷出凹陷地形,如下圖所示。



圖片


步驟 12):對地形進行相關材質的貼圖。到目前爲止,地形已經建好了,但是十分粗糙,默認的地形貼圖是灰色的,接下來給地形添加貼圖,讓地形看起來更爲美觀。

Unity 3D 提供了很多地形貼圖,如果在之前創建項目時沒有導入資源,此時可以在 Project 視圖中右擊,執行 Import Package→Environment 命令將環境資源導入項目。

最後,爲地形添加導入的地形貼圖,單擊地形貼圖按鈕(從左數第 4 個按鈕),在界面右下角點擊 Edit Textures 中的 add Texture 選項,具體參數如下表所示。







參 數 功 能
Add Texture 添加地形貼圖
Edit Texture 編輯地形貼圖
Remove Texture 刪除地形貼圖


選擇 Add Texture,此時彈出 Add Terrain Texture 界面,選擇 Select 選項,將預先載入的紋理作爲地形貼圖紋理,然後單擊 Add 按鈕,右側的 Inspector 屬性面板選擇就會出現材質的縮略圖,如下圖所示。



圖片


圖片


貼圖後地形就會被紋理自動全部覆蓋,如下圖所示。



圖片


爲了模擬更加真實的效果,在場景中可以選擇繼續添加紋理圖片,此時可以選擇不同的筆刷對場景中不同的地點進行紋理變換,如下圖所示。



圖片


步驟 13):添加樹木。在地形編輯器中單擊第五個按鈕,執行 Edit→Remove tree types→Add tree 命令,即可完成樹木的添加,如下圖所示,具體參數如下表所示。



圖片


參 數 功 能
Add Tree 添加樹模型
Edit Tree 編輯樹模型
Remove Tree 刪除樹模型


根據地形環境特點,選擇合適的樹木種類,單擊 Add 按鈕完成添加。

右側的 Inspector 面板中會出現所選樹的圖形,同時在下方的 Settings 中也會有關於樹模型屬性的設置,例如筆刷大小、樹的密度、樹的高度、樹的隨機顏色變化等,如下圖所示。





圖片


在這裏就可以以筆刷形式把樹“畫”在地形上,如下圖所示。



圖片


步驟 14):加入一些花草以及岩石。草和岩石的添加方法與樹木非常相似,如下圖所示,具體參數如下表所示。

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





圖片


參 數 功 能 參 數 功 能
Brush Size 設置筆刷大小 Add Detail Mesh 添加自定義網格模型
Opacity 設置繪製高度 Edit 編輯現有模型
Target Strength 設置繪製密度 Remove 刪除模型
Add Grass Texture 添加草的貼圖


選擇 Edit→Remove Detail meshes 中的 Add Grass Texture 選項,就可以彈出添加草的對話框,如下圖所示。

單擊 Add 按鈕之後右側 Inspector 面板中的 Details 就會出現 Grass 選項,在 Brush 中選擇合適的筆刷類型,在地形中就可以畫出草地。





圖片


步驟 15):其他設置,如下圖所示。



圖片


做到這一步,一個簡單的地形已經建立起來了,現在模型還是略顯單調,爲了讓地形更加豐富一點,加一個湖也是很重要的,接下來在場景中添加些水資源。

步驟 16):水的添加。在 Unity 3D 中已經內嵌了水的資源包,所以首先要找到水的資源包。

在 Project 文件夾裏找到 Water 文件夾,具體路徑爲 Assets/Standard Assets/water(pro only/basic/Water/Water4/Water4Example(Advanced))。

有兩種添加水資源的方式,第一種方法是直接將 Water4Example(Advanced)文件拖入 Scene 場景中,第二種方法是將水資源拖曳到 Hierarchy 視圖中,在 Hierarchy 視圖中就可以看到 Water4Example(Advanced),單擊就可以找到 Scene中的水模型,運用快捷鍵W(移動)和 R(縮放)在場景中正確地放置水,如下圖所示。









圖片


步驟 17):爲場景添加光影效果。爲了讓場景更加逼真,還可以爲場景添加光照陰影效果。

具體的做法如下:選中光照對象 Directional light,在它的屬性面板中找到 Shadow Type(陰影模式),默認的是 No Shadows(沒有陰影),可以將它改成 Soft Shadows(軟渲染陰影)或 Hard Shadows(硬件渲染陰影)。

Soft Shadows 以消耗 CPU 的計算爲代價來產生陰影效果,這種模式運行速度較慢,但對於機器配置比較落後的使用者是唯一的選擇。

Hard Shadows 可利用新一代 GPU 的顯卡加速功能進行陰影效果的渲染處理,其運行速度比較快,渲染效果也比較理想。

無論選擇哪一個選項,動畫場景的物體都會相對於陽光產生陰影效果。

步驟 18):單擊 Play 按鈕測試場景,如下圖所示。













圖片


步驟 19):第一人稱漫遊操作。到現在爲止,遊戲場景佈置工作已經基本完成了。

接下來需要設計並創建獨特的角色來充滿世界,這樣玩家可以控制一個真實的角色,玩家角色是玩家用和遊戲進行交互的化身,增加了遊戲的趣味性。

通常角色會分爲 3 類:第一人稱、第三人稱和隱含角色。

Unity 3D 支持這些類型,在 Unity 3D 中,角色是通過 Character Controller 定義的。

爲場景中添加第一人稱角色非常簡單,攝像機就像角色的眼睛一樣在世界中漫遊。具體步驟如下。

確定建立項目時已載入 Character Controller 資源,如果在創建項目時沒有載入資源,執行 Assets→Import Package→Characters 命令即可。

出現如下對話框,單擊 Import 按鈕,如下圖所示。















圖片


在資源面板中搜索 FPSController,在搜索導航欄中輸入 f,此時可以在資源面板中看見預置的 First Person Controller。

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

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

步驟 20):單擊 Play 按鈕,測試效果。可以在平面上通過 W、A、S、D 鍵以及上下左右方向鍵控制前進、後退、左右旋轉、鼠標也可以通過旋轉確定移動方向。

接下來,將第一人稱視角應用到已經建立好的遊戲場景中,實現第一人稱漫遊,效果如下圖所示。











圖片


圖片


可以看到整個地形已經被包含在一個完整的天空盒子之中,到此整個場景已經完成,如下圖所示。



圖片


圖片



圖片


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章