來玩VR吧──認識Unity

二月 16, 2017
Facebook
Twitter
Maker社群總是會迸出具有無限可能性的瘋狂新點子,其唯一的限制就是手邊的工具和材料不足。不過,要是有一個他們可以完全控制的世界存在呢?其實,真的有這樣的一個地方,而且不出幾年,他們的人數和影響力一定會有爆炸性的成長。我並不是在說火星,而是虛擬世界(VR)
虛擬實境的技術不斷進步,在不久的將來,一定會讓你覺得在其中漫遊更加身歷其境。不過,你不只可以在裡面「漫遊」,你還可以直接動手打造一個虛擬世界,這就是Maker會感興趣的事了!你可以用scratch來打造整個世界,而且你也不需要侷限於「虛擬」的層面,可以動手打造實體控制器、感測器、 風/熱產生器或穿戴式裝置,對虛擬世界作出回應,搭配精準的程式碼,讓一切感覺起來更加真實。
所以,我們最近在Make:發起一系列文章來介紹虛擬實境。首先我會介紹用Unity打造虛擬世界的方法。我們將會用打造實體物件的概念來介紹Unity的基礎原理。

什麼是Unity

Unity是一款遊戲開發平臺,可以用來打造2D或3D遊戲,也可以提供非遊戲的3D體驗。它可以在PC、Mac OS X、主機、 iOS、Android、Windows Phone 8、網頁等跨平台使用。隨著虛擬/擴增實境的時代來臨,也可以用於Oculus、Gear VR、Playstation VR、Meta Glasses和Microsoft Hololens。因此,若你用Unity進行創作,可以觸及到非常廣大的使用者族群。

下載Unity

Unity有兩個版本,個人版(Personal Edition)和專業版(Professional Edition)(可以看一下授權同意書,看看你的組織適用哪個版本)。個人版是免費的,每次打開時都會出現登入過程畫面。專業版則可以讓你更改登入過程畫面、使用分析功能、也讓你可以使用一些外掛程式。
不管是哪個版本,都可以到下載Unity頁面下載,也有試用版功能。

打造Unity專案

當你新增Unity專題時,它就會自動幫你新增資料夾與檔案。因此,新增專案時,只要指定資料夾路徑就行了,不用特意新增資料夾,否則就會重複了。
每個Unity專案都有專屬資料夾,內有四個初始資料夾,其中,你只需要關心兩個資料夾(其他兩個資料夾的內容在開啟Unity專案時會自動從這兩個資料夾產生):
Assets(資源) ──Unity專案所需的所有資源都在這裡,包含3D model(3D模型)、texture(質地)、script(腳本)、sound(聲音)等。基本上,這就是你可以放置檔案的資料夾。
在Assets資料夾中,可以新增一些資料夾來整理檔案,以下是一些可能的例子:
  • 素材(Materials)
  • 網格(Meshes)
  • 外掛程式(Plugins)
  • 預製件(Prefabs)
  • 場景(Scenes)
  • 腳本(Scripts)
  • 質地(Textures)
Project Settings(專案設定── 這是Unity儲存所有專案設定的地方,你在Edit(編輯)>Project Settings(專案設定)選單中更改的設定都會儲存在此處。

Unity介面

我們不會介紹整個介面的細節,然而在下圖中,你可以看到一些主要的部分:
場景(The Scene ──在場景中你可以放入物件。就像戲劇裡頭的場景一樣,每個Unity專案裡你都可以放入許多場景,每個場景完全不同,卻可以放入同樣的元素。
場景工具(Scene Gizmo ──你可以旋轉視角,從不同的角度觀看場景(這個選項只有3D專案才有,2D場景是無法轉換視角的。)
物件階層(Object hierarchy ──這裡放的是會出現在場景裡的物件。
資源資料夾(Your Asset Folder──你可以直接把下方資源資料夾裡的元素拉到場景中。這就像是工具箱,裡頭的東西拿出來就可以用了。
遊戲視圖(The Game View──在這個頁籤中,你可以看到遊戲運行的模擬狀況。要進行模擬時,可以點選視窗上方的控制板(上面有「播放」和「暫停」的按鈕)。

遊戲物件與元件

在Unity當中,每一個放入場景的物件稱為GameObject(物件)。GameObject就是我們看得到或是能與之互動的物件。這些就像是建造虛擬場景的基礎,可以是立方體、圓球、膠囊狀、圓柱或平面,也可以是燈光、聲響、和攝影機(最重要的部分),也就是Unity專案運行時使用者的視角。
你也可以用空的GameObject來將其他GameObject裝在一起,例如用空的GameObject做為機器人,加入手、腳、軀幹、頭等物件進去。你也可以視你的需求更進一步地分組(例如機器人的手臂可以分為好幾個部位)。你會發現 Unity裡有一整個GameObject選單。你可以多選幾個,看看它們在場景裡的樣子:
圖片

比方說,你可以選擇圓柱。如果你仔細看這個圓柱,就會發現有三個箭頭,分別是紅色、綠色和藍色。拖曳紅色箭頭會將物件沿著X軸(水平)移動、綠色箭頭是Y軸(垂直)、藍色箭頭則是Z軸(遠近)。
此外,你也可以到Inspector(檢視)欄位修改、旋轉或改變尺寸,你可以在Unity視窗左側找到:
Component(元件)則賦予GameObject作為實體物件的性質,像是接點、音源、視覺特效和幾乎可以做任何事的特製腳本等。通常,元件才是神奇所在,讓物件可以看起來像是真的槍、家具和衣服等,也可以做出一些不合常理的奇怪動作。
另外,在Inspector(跟剛剛改變 GameObject的位置、旋轉和尺寸的是同一個)中,有一個Add Component(加入元件)按鈕,位置就在介面的右下方:

Prefab預製件

通常,好不容易做出來的效果會想要重複使用。要做到這一點,你可以一直將物件複製後貼上,但如果你後來想修正這個模組,再將修正套用到所有的物件上怎麼辦?這就是Prefab(預製件)上場的時候了。Prefab是Unity的一種資源形式,也就是一個GameObject的模板。比方說,假設你現在有一臺虛擬機器人,上面有一個功能你想要複製。然而,你不希望每臺機器人都長得一模一樣,你希望每一臺都有各自不同的顏色和動作。這時候,你就可以用虛擬機器人的Prefab來決定機器人的大致外型與功能。
新增Prefab時,請到Assets>Create> Prefab, Prefab的命名沒有限制,不過,我建議把所有預製件放進同一個資料夾裡,並將資料夾命名為「Prefabs」。
接下來,請把要做為預製件的GameObject拖曳到空白的 Prefab上:
現在,看上去就是個圓柱了,如果你點擊一下,Prefab設定會出現在Inspector欄位上,如果改變設定,新設定會套用在場景中所有的Prefab物件:
和GameObject的操作方式一樣,Prefab也可以拖曳到場景中。但你在場景裡點擊GameObject改動設定時,只會改動到該物件。更動之後,與Prefab不同的特性會以粗體顯示。例如我在這裡把其中一個圓柱預製件拉到場景中,更動了一些設定:

攝影機(The Camera

場景從主攝影機(Main Camera)出發。當 Unity專案啟動時,這就是使用者的視角。改變主要攝影機的角度,就可以改變使用者的視角,你也可以將控制權交給使用者,這樣使用者就可以自己決定看到的東西。現在,為了讓事情不要這麼複雜,我們先不要更動攝影機。

自製 Mesh

圓柱、立方體與球型這些幾何圖形當然很好用,不過你一定會想加入更複雜的元素。如果想要特別的形狀,你也可以匯入自製的形狀 mesh模型檔。在Unity當中,最容易輸入的檔案類型是.fbx、.3ds、.dxf和.obj檔。Unity也可以轉換檔案類型,不過這需要有授權版本的相關軟體。
要匯入自製mesh檔,請先選一個物件檔(我用的是.obj),在Assets資料夾中新增Meshes資料夾,並把物件檔拖放到資料夾中。
你可以把物件抓進場景裡了。經過輸入後,你可能會需要調整方向或尺寸,讓場景看起來比較順眼。比方說,我要把我輸入的物件調成10%的大小,就在 X軸、Y軸和Z軸尺寸轉換屬性輸入0.1。此外,我還想要旋轉這個物件:

播放場景

場景設定完成之後,就可以按下Play按鈕來測試了。
這篇文章只是Unity非常基本的介紹。即使如此,這也足夠讓你開始試試這個軟體了。在本系列的其他文章當中,我們會介紹 Google Cardboard SDK,這樣一來,我們可以在虛擬實境的世界裡體驗你的場景了。
(譯:花神)
原文
Social media & sharing icons powered by UltimatelySocial