張陽+楊長強(qiáng)+鄭慧平
摘 要:智能手機(jī)迅速普及,VR虛擬現(xiàn)實(shí)頭盔技術(shù)亦日趨成熟。將手機(jī)與VR頭盔結(jié)合,開發(fā)出虛擬現(xiàn)實(shí)的手機(jī)體感游戲。利用手機(jī)中的陀螺儀系統(tǒng),實(shí)現(xiàn)慣性定位來捕獲人身體的變化,達(dá)到體感操作目的。使用Unity3D雙屏顯示與VR頭盔結(jié)合,通過手機(jī)便可身臨其境地體驗(yàn)到沉浸式的虛擬現(xiàn)實(shí)效果。配合藍(lán)牙搖桿控制器,玩家通過佩戴裝載有智能手機(jī)的VR頭盔,即可體驗(yàn)身臨其境的虛擬現(xiàn)實(shí)體感游戲。
關(guān)鍵詞:虛擬現(xiàn)實(shí);Unity3D;VR;手機(jī)體感游戲
DOIDOI:10.11907/rjdk.171222
中圖分類號(hào):TP319
文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào)文章編號(hào):1672-7800(2017)008-0119-04
0 引言
VR虛擬現(xiàn)實(shí)技術(shù)是一種可以創(chuàng)建和體驗(yàn)虛擬世界的計(jì)算機(jī)仿真系統(tǒng)。它利用計(jì)算機(jī)生成一種模擬環(huán)境,是一種多源信息融合的交互式三維動(dòng)態(tài)視景和實(shí)體行為系統(tǒng)仿真[1]。2015年三星、谷歌、微軟等大型公司進(jìn)軍VR市場,2016年被業(yè)內(nèi)稱為VR元年。本文中的游戲使用的暴風(fēng)魔鏡四代VR頭盔作為交互式硬件。
Unity3D游戲引擎平臺(tái)開放、交互友好,可使用C#、JS、Boo語言進(jìn)行開發(fā),并可發(fā)布成PC、網(wǎng)頁、安卓、蘋果、家用機(jī)等跨平臺(tái)應(yīng)用版本,使用Unity3D可以更好地普及虛擬現(xiàn)實(shí)體感游戲?;赨nity3D開發(fā)并發(fā)布成手機(jī)應(yīng)用,將安裝有應(yīng)用的手機(jī)放入暴風(fēng)魔鏡等主流VR頭盔中,使玩家沉浸式地體驗(yàn)體感游戲。
1 概述
本游戲策劃取材于“真人CS”戶外對抗活動(dòng)。游戲采用第一人稱視角,玩家佩戴VR頭盔后,通過頭部和身體的移動(dòng)控制角色移動(dòng)與玩家視野,用藍(lán)牙控制器控制游戲角色射擊。在360°沉浸式的VR視覺效果中,體感方式控制游戲,在游戲中取得資源,完成任務(wù)通過關(guān)卡。
程序開發(fā)分為美工開發(fā)、游戲場景與UI搭建、游戲程序設(shè)計(jì)、角色程序設(shè)計(jì)、VR系統(tǒng)配置幾個(gè)部分。游戲開發(fā)流程如圖1所示。
游戲設(shè)計(jì)過程:調(diào)用Unity官方API函數(shù)AnimationEvent創(chuàng)建動(dòng)畫事件播放過場動(dòng)畫,AudioSettings實(shí)現(xiàn)音頻控制,通過GUIContent界面內(nèi)容、GUILayout界面布局、GUIStyleState界面風(fēng)格狀態(tài)函數(shù)對界面內(nèi)容進(jìn)行編輯,實(shí)現(xiàn)模式選擇等功能。游戲中設(shè)置多處場景觸發(fā)器,當(dāng)玩家抵達(dá)規(guī)定的地方時(shí),觸發(fā)道具獲得與場景變化。游戲中玩家需要找到并操作智能計(jì)算機(jī)控制臺(tái),關(guān)閉路徑上的陷阱,打開通過下一關(guān)卡的控制門。
VR系統(tǒng)開發(fā)需要使用可以放入手機(jī)的VR頭盔,游戲程序通過調(diào)用手機(jī)內(nèi)的陀螺儀裝置實(shí)現(xiàn)慣性定位、虛擬漫游,并使用藍(lán)牙遙控器對手機(jī)中游戲應(yīng)用進(jìn)行控制。VR頭盔如圖2所示,藍(lán)牙遙控器如圖3所示。
人眼之所以能分辨出立體物體與平面物體,是因?yàn)槿说膬蓚€(gè)眼睛看到不同的視覺畫面。VR頭盔利用這一點(diǎn),將人的兩個(gè)眼睛看到的畫面單獨(dú)分開顯示,這就要求在游戲開發(fā)時(shí)設(shè)置成雙屏畫面。雙屏畫面有細(xì)微差別,以供人眼看到后顯示出三維效果。游戲畫面如圖2所示,佩戴頭盔后的操作效果如圖2左下角所示。
2 游戲程序算法
2.1 A星算法
游戲設(shè)計(jì)了多種敵方機(jī)器人,要使敵方機(jī)器人進(jìn)入防御狀態(tài)很容易,可通過設(shè)置坐標(biāo)位置或采用Unity3D中的AI設(shè)計(jì)方法。但要讓敵人智能逼真地動(dòng)起來,就需要用到相應(yīng)的算法——A星算法。
A星算法在人工智能中是一種典型的啟發(fā)式搜索算法[2],解決搜索問題的過程就是從開始位置點(diǎn)經(jīng)過每一個(gè)過程位置點(diǎn)到目標(biāo)位置點(diǎn)的過程。這些點(diǎn)構(gòu)成一個(gè)圖的數(shù)據(jù)結(jié)構(gòu),這個(gè)圖就是狀態(tài)空間,狀態(tài)空間搜索就是在這些點(diǎn)中找到一條從起點(diǎn)到終點(diǎn)的路徑過程。
一般情況下,使用的狀態(tài)空間搜索類似于數(shù)據(jù)結(jié)構(gòu)中圖的遍歷方法,分為深度優(yōu)先和廣度優(yōu)先兩種搜索方式。廣度優(yōu)先,顧名思義是從初始點(diǎn)一層一層向下找,直到找到目標(biāo)為止。深度優(yōu)先是按照層的順序先搜索完成一個(gè)分支,再搜索另一個(gè)分支,直至找到目標(biāo)為止。當(dāng)過程中的點(diǎn)過多時(shí),無論是深度優(yōu)先搜索還是廣度優(yōu)先搜索,都會(huì)使得搜索效率降低,因此需要使用啟發(fā)式搜索算法。
之所以稱為啟發(fā)式搜索算法是因?yàn)檫@種算法只是一種猜測。啟發(fā)式搜索就是從起點(diǎn)對周圍每個(gè)位置點(diǎn)進(jìn)行評(píng)估,將起點(diǎn)周圍點(diǎn)寫進(jìn)open表中,計(jì)算出表中每個(gè)點(diǎn)的h(n)和g(n),得到評(píng)估值f(n),將f(n)較小的值寫進(jìn)close表中,繼續(xù)將close表中周圍的點(diǎn)加入open表中,注意障礙物和已加入的點(diǎn)不作處理。逐個(gè)對位置點(diǎn)遍歷直到終點(diǎn)目標(biāo)。啟發(fā)中的估價(jià)用估價(jià)函數(shù)表示:
f(n)=g(n)+h(n)(1)
函數(shù)表示的含義如下:f(n):節(jié)點(diǎn)n的估價(jià)函數(shù);g(n):在狀態(tài)空間中從初始位置點(diǎn)到第n個(gè)位置點(diǎn)的實(shí)際代價(jià);h(n):從n到目標(biāo)節(jié)點(diǎn)最佳路徑的估計(jì)代價(jià)[3]。
h(n)是估計(jì)出來的,計(jì)算方法有多種,這里采用最方便的方法,即h(n)等于起點(diǎn)和終點(diǎn)所在行差的絕對值加上起點(diǎn)和終點(diǎn)所在列差的絕對值。h(n)在啟發(fā)搜索中對位置的估價(jià)起著很重要的作用。A星搜索在搜索時(shí)能夠利用啟發(fā)式信息智能地調(diào)整搜索策略。
A星搜索是一種迭代的有序搜索。從起點(diǎn)開始通過評(píng)價(jià)函數(shù)f*(n)評(píng)價(jià)點(diǎn)close表中各個(gè)鄰接點(diǎn)的狀態(tài)。若新的預(yù)測值小于之前迭代值則將該點(diǎn)作為新的迭代點(diǎn),直到遍歷到終點(diǎn)為止。
定義如下:
f*(n)=g*(n)+h*(n)(2)
其中各函數(shù)表示的具體含義如下:g*(n):表示沿路徑從起點(diǎn)到當(dāng)前點(diǎn)的移動(dòng)耗費(fèi);h*(n):從第n個(gè)點(diǎn)到目標(biāo)點(diǎn)的估算代價(jià);f*(n):從初始點(diǎn)經(jīng)過第n個(gè)點(diǎn)到達(dá)目標(biāo)點(diǎn)的預(yù)計(jì)值[4]。將這個(gè)值與之前的迭代值比較,若小于迭代值便將該點(diǎn)加入“最優(yōu)路徑”中,當(dāng)?shù)侥繕?biāo)點(diǎn)時(shí)迭代結(jié)束,得到的路徑便是“最優(yōu)路徑”。endprint
A星算法思想就是從起始點(diǎn)開始不斷迭代的過程,下一個(gè)迭代點(diǎn)從目前點(diǎn)的周圍點(diǎn)產(chǎn)生,計(jì)算出目前點(diǎn)的f*(n)值和周圍點(diǎn)的f*(n)值,每次保留數(shù)值最小的f*(n)將其加入最優(yōu)路徑表中。如此下去,直到迭代到終點(diǎn)為止。這是一個(gè)不斷搜索的過程,最后得到的路徑便是最優(yōu)路徑。
2.2 OBB包圍盒碰撞檢測算法
三維物體的碰撞檢測比二維物體復(fù)雜得多,這里使用OBB包圍盒碰撞檢測算法實(shí)現(xiàn)。在游戲引擎中,對于場景物體進(jìn)行表面凸分解,組織層次凸塊二叉樹,然后為凸塊構(gòu)建OBB包圍盒,最后對凸塊進(jìn)行三角形帶壓縮編碼來完成三維物體間的碰撞檢測[5]。
構(gòu)建凸塊的OBB包圍盒,凸塊所有頂點(diǎn)的坐標(biāo)向量協(xié)方差矩陣計(jì)算如下:
Cjk=13n∑ni=0(pjipki+qjiqki+rjirki)(3)
μ=13n∑ni=0(pi+qi+ri)1≤j,k≤3(4)
p、q、r為凸塊頂點(diǎn)的三維坐標(biāo)系,μ為三維坐標(biāo)凸塊的向量均值,C是協(xié)方差矩陣。碰撞檢測中遍歷物體的層次凸塊二叉樹,可采用SAT來判斷兩個(gè)凸多邊形是否發(fā)生重疊,檢測凸塊OBB包圍盒是否相交,以實(shí)現(xiàn)碰撞檢測算法,最終完成相應(yīng)的游戲開發(fā)設(shè)計(jì)。
2.3 陀螺儀空間定位算法
主流手機(jī)中都內(nèi)置有陀螺儀傳感器,三軸磁傳感器的坐標(biāo)方向是參考地磁場,當(dāng)運(yùn)動(dòng)控制器件指向發(fā)生變化時(shí),相對于地磁場會(huì)有一定變化。當(dāng)運(yùn)動(dòng)控制器件指向任意方向時(shí),地磁場產(chǎn)生的作用會(huì)分配在磁傳感器的三軸上,表示為如下關(guān)系式:
axisX2+axisY2+axisZ2=Cgnd(5)
axisX:地磁場向量在傳感器X軸上的分量;axisY:地磁場向量在傳感器Y軸上的分量;axisZ:地磁場向量在傳感器Z軸上的分量; Cgnd:地磁場向量目前作用于運(yùn)動(dòng)控制器件的磁場強(qiáng)度。axisX、axisY、axisZ是目前地磁傳感器三軸采集的磁場強(qiáng)度值,進(jìn)行必要的數(shù)據(jù)處理后,可計(jì)算出平面指向角α和俯仰角δ:
α=arctanaxisYaxisX(6)
δ=arctanaxisZaxisX2+axisY2(7)
重力加速度方向在某一固定位置是恒定的[5],根據(jù)重力加速度在多軸加速度傳感器上的分量可計(jì)算出此時(shí)設(shè)備的俯仰角。
根據(jù)計(jì)算出的俯仰角信息、加速度信息以及重力感應(yīng)信息,實(shí)時(shí)定位用戶的頭部運(yùn)動(dòng)狀態(tài),根據(jù)用戶的頭部變化、視角變化,控制游戲引擎中的攝像機(jī)位置,實(shí)現(xiàn)攝像機(jī)完全跟隨用戶視角變化而移動(dòng),達(dá)到VR虛擬現(xiàn)實(shí)效果。
3 游戲?qū)崿F(xiàn)
Unity3D 是一款功能強(qiáng)大的專業(yè)游戲開發(fā)引擎,可用于創(chuàng)建3D交互式應(yīng)用程序,也可以跨平臺(tái)發(fā)布。它支持絕大多數(shù)文件格式,具有易用、靈活的著色器、支持聯(lián)網(wǎng)、實(shí)時(shí)三維圖形混音頻流及視頻流[6]等功能。本游戲使用 MAYA 進(jìn)行場景建模。為了達(dá)到更好的視覺效果,在建模過程中進(jìn)行了一系列優(yōu)化,以充分達(dá)到逼真沉浸式的體驗(yàn)效果。
3.1 游戲開發(fā)需求分析
在游戲開發(fā)設(shè)計(jì)中,需求分析是首要也是最重要的環(huán)節(jié),良好的分析活動(dòng)有助于避免或盡早剔除早期錯(cuò)誤,提高游戲開發(fā)效率與質(zhì)量,降低開發(fā)成本。
此游戲故事情節(jié)開始于一家邪惡集團(tuán)派遣各式各樣的殺人暴徒和機(jī)器人來毀滅城市。玩家可以選擇獨(dú)闖虎穴、直搗黃龍,潛入總部毀滅基地。游戲角色是一位機(jī)槍手,游戲氛圍刺激緊張,在玩家還在研究手中武器時(shí),敵人可能已經(jīng)沖上來。正是這種駭人的對手,使玩家必須打起十二分精神,仔細(xì)觀察周圍,找到一切隱性的通關(guān)秘訣。精致逼真的3D場景,眾多的特殊道具,帶給玩家全新的視覺和玩法體驗(yàn)。
根據(jù)劇情游戲設(shè)計(jì)3個(gè)關(guān)卡:第1關(guān)以科幻色彩濃厚的工業(yè)大樓作為主要場景,任務(wù)是玩家潛入軍事基地收集情報(bào),殺死邪惡暴徒并破壞設(shè)備,然后順利逃出軍事基地;第2關(guān)任務(wù)是潛入基地深處殺死幕后指揮官并破壞設(shè)備,在到達(dá)指揮室的過程中,玩家要不斷收集場景中紙片,紙片內(nèi)容會(huì)指引玩家找到指揮官;第3關(guān)玩家需要到達(dá)基地總部引爆炸彈,毀掉整個(gè)軍事基地,贏得最后勝利。
在游戲中玩家扮演機(jī)槍手,可射擊或躲避,可操縱敵軍設(shè)備,通過藍(lán)牙控制器以及頭部和身體移動(dòng)來控制方向、躲避敵人、射擊、更換裝備等。在突破游戲設(shè)計(jì)關(guān)卡后,完成設(shè)定的劇情任務(wù)便可獲勝。
3.2 場景優(yōu)化
三維虛擬游戲中,模型建立是非常重要的部分,逼真的場景能夠迅速吸引玩家的眼球,激發(fā)玩家的興趣。然而VR游戲又不同于普通游戲,最大差別在于VR的渲染是普通游戲的兩倍,因此在性能優(yōu)化上必須下很大功夫。
(1)使用法線貼圖優(yōu)化表面。在搭建模型方面,為了實(shí)現(xiàn)逼真效果,必然要建立很多畫面,導(dǎo)致渲染次數(shù)增加,性能消耗增大。為解決這一問題,最直接的方法便是改建模,每個(gè)模型減掉一半的面來實(shí)現(xiàn),但這樣逼真效果就會(huì)降低。在保證高性能和高逼真度的情況下,本文使用法線貼圖優(yōu)化表面。
(2)烘焙技術(shù)。在Unity中,實(shí)時(shí)光照可帶來很好的體驗(yàn)效果,但由于手機(jī)CPU有限,實(shí)時(shí)光照過多會(huì)導(dǎo)致渲染次數(shù)增加,最終反映在畫面上便是抖動(dòng)嚴(yán)重,出現(xiàn)卡頓眩暈現(xiàn)象。為了解決這個(gè)問題,在游戲中選擇一個(gè)實(shí)時(shí)光照,其它作為烘焙光照。光照探針(lightprobe)能對靜態(tài)物品產(chǎn)生一個(gè)模擬光照,但這個(gè)光照是靜態(tài)的,在游戲開始時(shí)進(jìn)行渲染,游戲過程中不會(huì)重復(fù)渲染。這樣做的好處就是在游戲開始時(shí)只做一次渲染,不必進(jìn)行重復(fù)渲染,大大提高了渲染效率。
(3)遮擋剔除技術(shù)。游戲中每個(gè)被展示的部分放在一個(gè)特別的包中,稱之為“描繪指令”(draw call),通過這個(gè)包傳遞到3D部分在屏幕上顯示[7]。CPU負(fù)責(zé)相應(yīng)模型和場景的包裝和顯示。場景中每一顆子彈消耗的字節(jié)和一個(gè)角色消耗的字節(jié)是一樣的,如果不降低 draw call,電腦就會(huì)把場景中所有的物體都進(jìn)行渲染,嚴(yán)重增加了CPU的負(fù)載,降低了渲染效率。解決這個(gè)問題需要用到遮擋剔除技術(shù)。遮擋剔除即當(dāng)物體被其它物體遮擋,不出現(xiàn)在攝像機(jī)可視范圍內(nèi)時(shí),不對其進(jìn)行渲染。遮擋剔除并不是自動(dòng)完成的,需要進(jìn)行相應(yīng)設(shè)置。首先關(guān)卡中的幾何體必須分割成不同尺寸的塊,每個(gè)塊生成一個(gè)可見列表,當(dāng)攝像機(jī)位于該范圍內(nèi)時(shí)激活列表,不在列表中的將其剔除。endprint
(4)LOD技術(shù)。該技術(shù)需要建兩個(gè)模型,一個(gè)面數(shù)多,較為逼真,一個(gè)面數(shù)少,較為粗糙,具體執(zhí)行過程如下:定義兩個(gè)關(guān)鍵距離D1和D2作為攝像機(jī)和場景距離,當(dāng)實(shí)際距離小于D1時(shí),調(diào)用高清模型,當(dāng)距離大于D2時(shí),調(diào)用較粗糙模型。通過選擇不同精度模型,大量減少繪制的頂點(diǎn)數(shù)目,從而對游戲場景的實(shí)時(shí)效果進(jìn)行優(yōu)化。在Unity中可以通過Component→Rendering→LODGroup進(jìn)行操作,選擇需要控制的模型以及進(jìn)行距離設(shè)置。
(5)像素優(yōu)化。overdraw指一個(gè)像素被多次繪制,像素優(yōu)化的重點(diǎn)便是降低overdraw??刂评L制順序,便是為了最大限度地避免overdraws。在PC上,資源無限,為了得到最準(zhǔn)確的渲染結(jié)果,繪制順序可能是從后往前繪制不透明物體,然后再繪制透明物體進(jìn)行混合。但在移動(dòng)平臺(tái)上,這種方式會(huì)造成大量的overdraw。從前往后繪制之所以可以減少overdraw,都是因?yàn)樯疃葯z驗(yàn)的功勞[8]。
在Unity中,Shader中被設(shè)置為“Geometry” 隊(duì)列的對象都是從前往后繪制,而其它固定隊(duì)列(如“Transparent”、“Overla”等)的物體,則都是從后往前繪制。這意味著,可以盡量把物體的隊(duì)列設(shè)置為“Geometry” ,還可以充分利用Unity隊(duì)列來控制繪制順序。例如,天空盒子幾乎覆蓋了所有像素,并且它永遠(yuǎn)會(huì)在所有物體的后面。因此,可以將它的隊(duì)列設(shè)置為“Geometry+1”,這樣就可保證降低overdraws。
3.3 代碼優(yōu)化
代碼編寫過程中,能夠使用單例就盡量少用靜態(tài)。單例在程序中只保留一份,而靜態(tài)是多個(gè);使用對象池對重復(fù)使用的物體進(jìn)行統(tǒng)一管理;使用預(yù)加載方式,對一些資源加載造成的卡頓進(jìn)行處理;盡量不使用foreach,而是使用for。foreach會(huì)涉及到迭代器的使用,而每一次循環(huán)所產(chǎn)生的迭代會(huì)帶來24 Bytes的垃圾,循環(huán)10次就是240Bytes;不要直接訪問gameobject的tag屬性,比如if (go.tag ==“machine”)最好換成if (go.CompareTag (“machine”)),因?yàn)樵L問物體的tag屬性會(huì)在堆上額外分配空間,如果在循環(huán)中這么處理,留下的垃圾就可想而知了;對代碼多一些重構(gòu)處理,程序的架構(gòu)設(shè)計(jì)必須耦合性低,易于擴(kuò)展。
3.4 CPU優(yōu)化
CPU優(yōu)化可通過減少Draw Calls實(shí)現(xiàn),平時(shí)用的最多的還有批處理。所謂批處理就是將很多物體一起處理的意思,條件是同一材質(zhì)物體。對于同一材質(zhì)物體,除了頂點(diǎn)數(shù)據(jù)的差異外無其它差別,將這些頂點(diǎn)數(shù)據(jù)合并起來交給CUP處理,便是一次批處理,這大大降低了CUP的消耗。
Unity中有兩種批處理方式:動(dòng)態(tài)批處理和靜態(tài)批處理。動(dòng)態(tài)批處理會(huì)對每一幀進(jìn)行計(jì)算,大量增加CUP開銷;靜態(tài)批處理可使游戲引擎盡量降低繪制物體所產(chǎn)生的DrawCall。由于合并后的物體需要額外內(nèi)存資源來存儲(chǔ),所以內(nèi)存占用會(huì)增加,CPU資源會(huì)減少。在繪制圖形,例如桌子、椅子等時(shí),可以在編輯器里設(shè)置成靜態(tài),所有具有相同材質(zhì)的物體會(huì)被組合成一個(gè)網(wǎng)絡(luò),調(diào)用一個(gè)繪制,降低了CUP消耗[9]。
3.5 特殊效果
VR中第一人稱能很好地模擬機(jī)槍手的視角,再加上真實(shí)的環(huán)境、氣氛、聲音,玩家很容易沉浸在游戲中,本游戲通過環(huán)境氣氛、特效、光影(烘焙)和聲音等方面進(jìn)行強(qiáng)化。
3.6 游戲敵人AI功能
人工智能在游戲中非常重要,它可通過一些隨機(jī)的數(shù)字讓敵人做一些動(dòng)作或邏輯,在Unity中通過AI腳本程序?qū)崿F(xiàn)。傳統(tǒng)的射擊游戲設(shè)計(jì),都是通過一套AI規(guī)則進(jìn)行判斷,無論玩家做出什么行為,都會(huì)根據(jù)AI規(guī)則作出相應(yīng)的行動(dòng),因?yàn)榇_定性太強(qiáng),易使玩家覺得單調(diào),因此,需要引入更多的隨機(jī)性。
為使機(jī)器人AI 更具智能,加入了模糊概率算法,提高了不確定性,給玩家一種新奇感。當(dāng)玩家靠近敵人并在敵人視線之內(nèi),敵人便會(huì)進(jìn)行攻擊,可以通過腳本設(shè)定敵人攻擊速度以及移動(dòng)速度、命中率等。腳本寫得足夠詳細(xì),游戲玩起來才足夠靈活。
針對游戲需求,設(shè)計(jì)的非玩家角色控制算法具備主動(dòng)和被動(dòng)控制兩種狀態(tài)[10]。處于被動(dòng)時(shí),要考慮是否被攻擊為觸發(fā)條件以及作出相應(yīng)對策,如果非玩家角色被觸發(fā)則轉(zhuǎn)向主動(dòng)狀態(tài)。在主動(dòng)狀態(tài)時(shí),如果有目標(biāo)進(jìn)入一個(gè)特定的距離范圍,非玩家角色就進(jìn)入攻擊模式,否則處于防備狀態(tài)。
4 結(jié)語
本文著重闡述了游戲開發(fā)過程中涉及到的算法、場景搭建規(guī)范以及優(yōu)化技巧,通過復(fù)雜的AI系統(tǒng)創(chuàng)造出更加真實(shí)的角色行為,大大增強(qiáng)了游戲的逼真性及可玩性。游戲玩法多樣,故事情節(jié)豐富。玩家戴著VR頭盔,手持藍(lán)牙遙控器,通過頭部和身體的移動(dòng),便能盡情享受激戰(zhàn)中帶來的快感。
VR技術(shù)日趨成熟,新的應(yīng)用層出不窮,在醫(yī)療、教育、建筑等行業(yè)應(yīng)用逐步發(fā)展,但VR游戲依然是VR的重要發(fā)展部分。如何做到泛而不濫、內(nèi)容精良,在策劃和優(yōu)化上要下功夫。本文著重闡述了游戲開發(fā)中涉及到的優(yōu)化方法,以提高游戲的流暢性及逼真度,無論是場景搭建還是AI設(shè)計(jì)都會(huì)給用戶帶來全新的體驗(yàn)。
參考文獻(xiàn):
[1] 陳浩磊,鄒湘軍,陳燕,等.虛擬現(xiàn)實(shí)技術(shù)的最新發(fā)展與展望[J].中國科技論文在線,2011,20(8):1-15.
[2] 林中盛.基于DGPS/GIS機(jī)場場面交通管理系統(tǒng)的研究與開發(fā)[D].南京:南京航空航天大學(xué), 2004.
[3] 劉爽.基于VRML的虛擬現(xiàn)實(shí)場景漫游技術(shù)研究與實(shí)現(xiàn)[D].長春:吉林大學(xué),2007.
[4] 魏博.基于cocos2d-x跨平臺(tái)引擎的趣味籃球游戲設(shè)計(jì)與開發(fā)[D].西安:西安電子科技大學(xué),2014.
[5] 實(shí)時(shí)碰撞檢測技術(shù)研究[EB/OL].[ 2012-09-04].http://www.docin.com.
[6] 伍傳敏,張帥,邱錦明.基于Unity3D的FPS游戲設(shè)計(jì)與開發(fā)[J].三明學(xué)院學(xué)報(bào),2012,29(2):2-6.
[7] J LU,Z PAN,H LIN,et al.Virtual leaning environment for medical education based on VRML and VTK[J].Computers & Graphics ,2014(6):25-26.
[8] P L WEISS,A S JESSEL.Vitual reality application to work[J].Work,2001(2):25-26.
[9] 申薇,夏利文.虛擬現(xiàn)實(shí)技術(shù)[M].北京:希望出版社,2012.
[10] 陳雪梅.基于 Unity3D 的手機(jī)游戲開發(fā)[J].電子技術(shù)與軟件工程,2016,45(1):71-72.endprint