Ch_1

Ch_2

Ch_3

Ch_4

Ch_5

Ch_6

Back

Unity_01

Unity_002

  場景設計對於遊戲來說相當重要,因為場景能直接影響使用者的遊戲體驗。
Unity提供了相當便利的場景編輯器,在本章中我們將創造一個能夠在其中任意走動的基本遊戲場景。

2-1 如何取得資源

  Unity的Asset Store是一個能夠快速取得各式各樣資源的好地方,如圖2-1執行「Window」→「Asset Store」就能開啟商店。

P_2-1

圖2-1 Asset Store

P_2-2

1.   切換語言
2.   關鍵字搜尋
3.   依類別尋找資源
4.   切換搜尋結果排列方式
5.   設定搜尋條件

S_01 找到需要的資源後點選「Download」。

S_02

S_02 會跳出使用條約,點選「Accept」同意後開始下載。

S_02

S_03 等待下載完後點選「Import」,匯入資源。

S_03

S_04 匯入後在Project視圖就能看見剛剛匯入的資源資料夾。

S_04

學會如何取得資源後下一節就來學習如何建立一個基本的場景吧!


2-2 建立場景

先依照章節1-2建立新專案後,匯入以下兩個基本資源包:
「Assets」→「Import Package」→「Environment」。
「Assets」→「Import Package」→「Characters」。
匯入完之後就能開始建立新場景囉!

S_01 在Hierarchy視圖 →「Create」→「3D Object」→「Terrain」,產生一個地面。如圖2-3,紅框處能夠調整地面的詳細設定。

P_2-3

圖2-3 地面詳細設定

  如圖2-4是地形編輯工具:由左至右分別是繪製凹凸筆刷、繪製高度筆刷、平滑筆刷、貼圖筆刷、樹筆刷、細節筆刷、地形參數設定。

P_2-4

圖2-4 地形編輯工具

S_02 使用凹凸筆刷工具劃出地形樣貌,Setting裡的Brush Size可以調整筆刷大小,Opacity能調整筆刷強度。

S_05

S_03 使用貼圖筆刷,「Edit Textures…」→「Add Textures」→「Select」→「GrassHillAldebo」→「Add」。第一次匯入的貼圖會填滿地面。

S_06

S_04 匯入第二張貼圖,塗抹高山地區營造出地圖多樣性。

S_07

S_05 使用樹筆刷,「Edit Trees…」→「Add Tree」→「Select」→「Broadleaf_Desktop」→「Add」。調整筆刷大小與密度後使用點擊的方式為地圖添加樹木。

S_08

S_06 使用細節筆刷為地圖添加草,「Edit Details…」→「Add Grass」→「Select」→「GrassFrond01bedoAlpha」→「Add」。調整筆刷大小與密度後使用點擊的方式為地圖添加細節。

S_09

S_07 接下來放入攝影機,「Assets」→「Standard Assets」→「Characters」→「FirstPersonCharacter」→「Prefabs」→「FPSController」,拖曳放入場景中適當地點,點選控制器的播放鍵就能夠用鍵盤的WASD及滑鼠觀賞自己的遊戲場景囉!

S_10


2-3 天空

  天空在場景設計中也是相當重要的一環,本節就以製作一個全景範例做為練習。

S_01 在Google搜尋關鍵字”HDRI”。

S_11

S_02 下載一張照片拖曳到Unity,Project視圖創建一個MySky資料夾將圖片拖曳進去,再修改Inspector視圖中的Texture Type。

S_12

S_03 選擇「Cubemap」,之後按「Apply」。

S_13

S_04 接著建立天空的材質球,Project視圖 →「Create」→「Material」,將Shader變更為「Skybox」下「Cubemap」。

S_14

S_05 將Project變更Texture Type為Cubemap的圖拖曳至如圖的欄位中。

S_15

S_06 將MySky拖曳到Scene視圖的天空,就完成了!

S_15


2-4 燈光

  當建立一個新場景時,場景中至少會有兩個物件,分別是攝影機「Main Camera」與預設燈光「Directional Light」。
如圖2-5,主要功能區塊如下:
1.  燈光顏色、強度與預設燈光的強度參數 。
2.  調整經由燈光產生的陰影與間接光參數,將會在動態光照(GI)做說明。

P_2-5

圖2-5 燈光參數介紹

如圖2-6,「GameObject」→「Light」裡面有三種主要即時光源:
1.   Directional Light:方向性的燈光,一般用於模擬太陽光照 。
2.   Point Light:點光源,用於模擬蠟燭、燈泡一類的光源 。
3.   Spot Light:投射性的光源,如聚光燈、手電筒。

P_2-6

圖2-6 三種燈光介紹


2-5 動態全域光照「GI」

  動態全域光照(以下簡稱GI)是光傳輸物理特性的模擬。模擬光線在3D場景中的反射,能夠更加真實的呈現遊戲場景。
  要是將GI運用妥當能大幅增加與改善使用者體驗,因為GI不只模擬直射光源,還能模擬在不同材質間不同的反射狀況。
如圖2-7所示:
Intensity:控制直接光照的強度。
Bounce Intensity:控制間接光也就是反射光的強度。

P_2-7

圖2-7 Directional Light 面板

接下來介紹Light面板,可以從主選單【Window】/【Lighting】叫出這個面板。

P_2-8

圖2-8 Light 面板參數介紹

Ambient Intensity和Reflection是影響反射天空或物件的參數。
General  GI是用來調整”整體”間接光,也就是說燈光中的Bounce Intensity屬於個別調整,General GI則是整體調整,Bounce Boot控制光線從物體表面反射到下一個物體的強度。
Precomputed Realtime GI和Baked GI這兩塊與燈光的Baking是有相關的。
燈光的Baking選項有三項:
   1.Realtime:對於動態物體提供即時直接光照,對於靜態物體則是多了間接光的即時變化。
   2.Baked:只作用在靜態物體,就是將靜態物體的直接光與間接光當前效果烘焙成貼圖,意思就是燈光的Intensity 與Bounce Intensity不會發生立即變化,當然也包括燈光位置或角度改變也不會變化。
   3.Mixed:混合以上兩點,動態物體提供即時直接光照,靜態物體則將當前效果烘焙成貼圖。 Lighting面板的Precomputed Realtime GI對應場景中Baking為Realtime的燈光,如果Precomputed Realtime GI有打勾的話,才會有間接光的即時變化。Baked GI 則是對應Baked或Mixed的燈光,把靜態物體當前光照烘焙成貼圖。


2-6 標準材質球

標準材質球能將物件貼上貼圖,能呈現出物件的質感。

S_01 新增一個資料夾「Materials」專門存放材質,接著在資料夾中右鍵「Create」→「Material」。

S_17

S_02 點選材質球後能進行相關設定,Albedo是主色,Emission是反射顏色。

S_18

設定完後直接拖曳到物件就能進行套用。
設定材質貼圖:在Unity設定貼圖並不是相當人性化,所以一般會在其他3D建模軟體設定,當然如果想要有更好的材質效果也能從2-1提到的Asset Store下載,下載下來的材質球直接拖曳到物件上就能進行套用。
至此Unity的基本教學結束,下一章開始介紹VR相關設備與各設備的VR實作範例。


第二章 完。