溫子燊 劉螢
摘要:隨著虛擬現(xiàn)實(shí)硬件設(shè)備與軟件驅(qū)動進(jìn)一步的完善,虛擬現(xiàn)實(shí)游戲也逐漸步人人們的生活當(dāng)中。本文通過對海洋探索游戲的設(shè)計(jì)思路與實(shí)現(xiàn)方式進(jìn)行研究,針對Ul交互和游戲基本邏輯進(jìn)行分析,對于虛擬現(xiàn)實(shí)游戲的設(shè)計(jì)方式與開發(fā)流程有一定的參考價值。
關(guān)鍵詞:虛擬現(xiàn)實(shí);游戲開發(fā);Unity 3D
中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2020)09-0228-02
1 引言
從1958年第一款示波器上的電子游戲“雙人網(wǎng)球”到2018年獲得大量獎項(xiàng)的VR游戲Beat Saber,從電子游戲的誕生之初到現(xiàn)在,承載著電子游戲的設(shè)備在一定程度上能夠反映出該游戲所處時代的科技水平。從2014年Face Book收購Oculus開始,虛擬現(xiàn)實(shí)技術(shù)正逐漸步人正軌,開發(fā)虛擬現(xiàn)實(shí)設(shè)備上的游戲也變得刻不容緩。Unity3D是一款利用交互的圖形化開發(fā)環(huán)境為首要方式的專業(yè)游戲引擎,支持C#編程語言,可用于開發(fā)Windows、MacOS、Linux平臺和PlayStation、XBox、NintendoSwitch等游戲主機(jī)平臺以及IOS、Android等移動設(shè)備的游戲,擁有跨平臺的特性,被廣泛用于建筑可視化、實(shí)時三維動畫、VR/AR游戲應(yīng)用等互動內(nèi)容的綜合性創(chuàng)作工具。
2 游戲的設(shè)計(jì)思路
《The Sea》是一款基于Unity3D引擎和HTC VIVE虛擬現(xiàn)實(shí)設(shè)備開發(fā)的VR海洋探險游戲,將3D環(huán)繞的立體音效、扁平化的空間UI交互系統(tǒng)、人性化的語音引導(dǎo)與當(dāng)今主流的虛擬現(xiàn)實(shí)技術(shù)相結(jié)合,配合次時代PBR模型以及PostProcessing屏幕后處理技術(shù),使玩家的沉浸感和體驗(yàn)提升到更高的層次。該游戲主要通過VR手柄進(jìn)行交互,玩家可通過頭顯正前方的HUD面板來獲取自身和可交互物體的位置信息,使用扳機(jī)鍵配合手柄射線來對菜單以及可回收物體進(jìn)行交互。玩家可通過不斷地收集魚類信息和回收污染物得到點(diǎn)數(shù)回饋,一方面可以通過點(diǎn)數(shù)的累計(jì)來解鎖劇情,另一方面可以通過消耗點(diǎn)數(shù)來增強(qiáng)自身的屬性,從而逐漸減少難度。
3 游戲的實(shí)現(xiàn)方式
3.1 HUD面板UI的設(shè)計(jì)與實(shí)現(xiàn)
由于虛擬現(xiàn)實(shí)頭戴式顯示器與眼睛之間的距離固定在20厘米左右的范圍內(nèi),因此如果采用傳統(tǒng)的單個攝像機(jī)對畫布內(nèi)的UI進(jìn)行渲染,UI元素將會分散在FOV視場角邊緣,在屏幕后處理的影響下UI元素會產(chǎn)生圖像扭曲、RGB分離和亮度變暗等效果,影響用戶體驗(yàn)和破壞沉浸感的同時容易使玩家產(chǎn)生暈眩或惡心等不良影響。將Canvas的Render Mode改為WorldSpace,并將Canvas畫布固定在用戶眼前既能清楚地看到HUD同時又不會被HUD所遮擋視線的位置。將Canvas中的Slider設(shè)為豎直顯示并將其value值與玩家當(dāng)前位置的Y坐標(biāo)數(shù)值掛鉤以達(dá)到顯示當(dāng)前深度的效果,同時將另一個豎直的進(jìn)度條與玩家的旋轉(zhuǎn)角度相掛鉤,并通過歐拉角與四元數(shù)的轉(zhuǎn)換得到玩家當(dāng)前頭部的旋轉(zhuǎn)角度并將其顯示在HUD面板上即可完成HUD部分。
3.2 手柄交互功能的實(shí)現(xiàn)
交互作為游戲所必不可少的功能[2],在本游戲中以手柄交互作為主要交互手段,通過獲取玩家手柄的Transform.Position坐標(biāo)并在該位置實(shí)例化一個子彈預(yù)制體,通過計(jì)算手柄的旋轉(zhuǎn)角度并將其X軸方向轉(zhuǎn)化為單位三維矢量,在該三維矢量上對預(yù)制體的Rigibody剛體組件添加一個作用力,使子彈預(yù)制體能夠沿著手柄X軸方向射出并與Terrain地形或其他可交互預(yù)制體產(chǎn)生碰撞交互。在子彈的碰撞器組件開始碰撞時,在OnCoI-liderEnter方法內(nèi)判斷碰撞到的物體的標(biāo)簽,若標(biāo)簽為可交互材料則對該材料的數(shù)值+1,若為魚類則對該種魚類的DNA采集度+l,判斷完成后使用Destroy方法銷毀該子彈預(yù)制體以減少內(nèi)存的占用與GPU的消耗。
3.3 模型的創(chuàng)作與動作的實(shí)現(xiàn)
一個完整的次世代PBR模型的制作流程從Maya軟件內(nèi)建中模開始,然后到Zbrush軟件中雕刻高模,再回到Maya拓?fù)涞湍?、拆分UV,再到Substance Painter軟件中烘焙貼圖。后半段的烘焙+貼圖+引擎階段是Physically-Based Rendering基于物理的渲染過程,用于精確描述光和物體表面互動的著色和渲染技術(shù)。從光的角度來看主要包括顏色、亮度、衰減、強(qiáng)度、形狀等主要屬性,當(dāng)燈照射到模型表面上會產(chǎn)生反射或者折射的情況,被折射的光線會被吸收或者離散。將制作完成的PBR模型導(dǎo)人Cinema4D中,由于模型動作相對較簡單,因此采用正向動力學(xué)的方式對骨骼進(jìn)行綁定,使用關(guān)節(jié)工具創(chuàng)建骨骼與控制器,再用命令工具將骨骼綁定蒙皮,綁定蒙皮后模型的運(yùn)動可能會產(chǎn)生破面,因此使用權(quán)重工具對模型進(jìn)行處理。
3.4 魚類生成方式與AI自動尋路的實(shí)現(xiàn)
由于受到主機(jī)性能的限制,魚類并不能無限制的生成,因此在開發(fā)階段利用Unity的性能分析組件Profiler對運(yùn)行時CPU的Draw Call消耗、內(nèi)存的Garbage Collection情況與GPU的Ren-dering情況進(jìn)行分析,得出魚類數(shù)量超過60個時游戲延遲會達(dá)到30ms以上,因此將魚類的數(shù)量限制在50個以內(nèi)。在地形的周圍設(shè)置10個用來控制魚類生成位置的空物體,使用遍歷數(shù)組的方式獲取到各個空物體的位置坐標(biāo),并通過使用空物體上掛載腳本的Object.lnstantiate方法將魚類的預(yù)制體實(shí)例化。由于魚類活動區(qū)域限制在海水中,移動的方式不受重力影響,因此魚類的AI尋路方式不采用傳統(tǒng)的Nav Mesh Agent組件進(jìn)行自動尋路。使用Vector3.Distance方法計(jì)算出玩家與魚類的距離,并判斷該距離是否小于或等于玩家受到海水fog霧效影響后的可視距離,若魚類在玩家可視距離外,則沿著以Terrain地形中心為圓心,自身與圓心的距離為半徑的圓上進(jìn)行移動,否則以隨機(jī)方向移動,并使用射線組件判斷當(dāng)前移動方向Rayc-astHit. point是否與玩家所處方位一致,若一致則朝玩家移動,否則繼續(xù)以隨機(jī)方向移動。
3.5 玩家移動的設(shè)計(jì)與實(shí)現(xiàn)
在當(dāng)前市面上的VR游戲中,玩家的移動效果大致分為以下三種[3]:(1)通過利用手柄的指針射線,將玩家坐標(biāo)轉(zhuǎn)換為指針末端所指的坐標(biāo)。(2)在地形上設(shè)定Teleport傳送點(diǎn),當(dāng)玩家指針指向該傳送點(diǎn)時將玩家坐標(biāo)轉(zhuǎn)換為傳送點(diǎn)的坐標(biāo),與方法(1)相比減少了玩家的自由度,但相對提升了游戲的穩(wěn)定性。(3)通過獲取手柄觸摸板的坐標(biāo)進(jìn)行位移,手指離觸摸板邊緣越近則移動速度越快,該方式與傳統(tǒng)的手柄搖桿移動方式相同,玩家能夠快速上手該移動方式,但在VR環(huán)境下,變速運(yùn)動會使眼睛獲取的信息與前庭系統(tǒng)的感知不一致,玩家會產(chǎn)生惡心或眩暈感,但由于該游戲主要活動場所為海平面以下的水體中,物理參考系較少且移動速度相對較慢,因此適合該移動模式。
3.6 場景立體音效的實(shí)現(xiàn)
聲音在游戲開發(fā)中作為必不可缺的一環(huán),其重要性也是不言而喻的。傳統(tǒng)的音效播放方式只是將音頻原聲通過輸出設(shè)備進(jìn)行播放,缺乏方向性與空間感,與虛擬現(xiàn)實(shí)技術(shù)相結(jié)合會破壞其原本的沉浸感,因此需要將Audio Source的Spatial Blend改為3D。調(diào)整之后的音效具有了方向性,會根據(jù)用戶的朝向而改變雙聲道的輸出功率,但仍缺乏空間感,需要將Proj ect Set-ting下的Audio的Spatializer Plugin改為Resonance Audio,同時將Audio Source組件下的3D Sound Settings的Spatialize Post Ef-fect效果開啟,使音頻具有多普勒效應(yīng)。
4 VR海洋探索游戲《The Sea》的應(yīng)用效果
進(jìn)入游戲后,玩家將會開始新手指引教程,聽從語音指示和HUD面板上的文字指示進(jìn)行活動,在教程內(nèi)學(xué)會移動、射擊、查看圖鑒、制作/升級裝備以及通過HUD面板了解信息。引導(dǎo)教程完成后,玩家將會被傳送到荒島上,通過一次次的下潛收集魚類的DNA來解鎖圖鑒推進(jìn)劇情的同時,沉人海底收集廢物并將其回收利用制成裝備以達(dá)到強(qiáng)化自身能力的效果。
5 結(jié)語
該游戲在玩法設(shè)計(jì)上將探索、收集元素融人游戲當(dāng)中,在用戶的視覺交互上采用了空間范圍內(nèi)的立體UI+HUD抬頭顯示面板的方式,同時使用了次時代的PBR流程技術(shù)建模,提升了玩家的沉浸感與交互體驗(yàn)。本文展示了Unity3D引擎制作VR游戲的大致流程,為虛擬現(xiàn)實(shí)設(shè)備的游戲設(shè)計(jì)提供一定的思路與見解,使虛擬現(xiàn)實(shí)技術(shù)得到進(jìn)一步的發(fā)展。
參考文獻(xiàn):
[1] Jeff W. Murray.Building Virtual Reality with Unity and Steam-VR[M],吳彬,等,譯,北京:機(jī)械工業(yè)出版社,2019.
[2]溫涵泳.基于HTC Vive平臺的防化訓(xùn)練虛擬現(xiàn)實(shí)系統(tǒng)[Dl.廣州:華南理工大學(xué),2017.
[3]鄧德榮,基于Unity3D的VR交互場景設(shè)計(jì)與運(yùn)行監(jiān)控[Dl.廣州:華南理工大學(xué),2018.
【通聯(lián)編輯:聞翔軍】
基金項(xiàng)目:省級大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目“基于VR虛擬現(xiàn)實(shí)技術(shù)的文化教育傳播及創(chuàng)新運(yùn)用”(項(xiàng)目編號:S201913714019)
作者簡介:溫子糶(1999-),男,廣東梅州人,本科,研究方向:新媒體技術(shù)及應(yīng)用;劉螢(1987-),女,湖南邵陽人,碩士,講師,研究方向:數(shù)字媒體技術(shù)及應(yīng)用、游戲設(shè)計(jì)與開發(fā)。