前言:想要寫出一篇引人入勝的文章?我們特意為您整理了VR技術下密室逃脫游戲制作與設計范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:密室逃脫游戲需要玩家在有限空間內不斷搜集線索與道具對其進行破譯和組合,完成解密。通過Unity引擎開發(fā)一款反映現(xiàn)實社會問題的密室逃脫游戲,使玩家對游戲劇情所映射出來的問題進行反思,具有重大的社會意義。該文將游戲劇情集中關注與揭露不良PUA的行為方式與危害,基于虛擬現(xiàn)實技術對密室逃脫類游戲進行研究,設計并制作了密室場景及相關道具線索,系統(tǒng)設計過程中充分集成利用三維建模技術、碰撞檢測算法、人機交互技術、圖形UI界面設計、C#腳本代碼編寫等方法,并設計合理的劇情發(fā)展及線索。
關鍵詞:虛擬現(xiàn)實;密室逃脫游戲;實時漫游;人機交互
密室逃脫類游戲是一種冒險類的益智游戲,玩家需要進行邏輯性的破譯或組合,不斷收集與合成新的線索的道具,并最終完成密室的解密。密室逃脫類游戲具有很強的故事性,可以讓玩家在游戲的過程中對故事劇情的發(fā)展產生思考,并能夠從中有所感悟。將現(xiàn)實中存在的矛盾與沖突融入游戲劇情中,利用虛擬現(xiàn)實技術將問題以及可能產生的后果以沉浸式方式展示給玩家,能夠使玩家對現(xiàn)實有更深入的思考。
1游戲開發(fā)框架與實現(xiàn)流程
本系統(tǒng)主要是針對PC端用戶,從游戲場景與劇情的構思、三維模型的制作、圖像素材的制作和處理、Unity引擎內游戲場景的搭建以及UI交互設計和邏輯實現(xiàn)這五部分進行設計制作。其中,前期準備中需完成三維模型設計、貼圖制作渲染、動畫設計、圖像線索設計等部分;在Unity引擎中使用UGUI系統(tǒng),通過C#語法規(guī)則和Unity引擎特有的應用程序編程接口(API),完成游戲中場景的跳轉、游戲的進入和退出、物體動畫的觸發(fā)、密碼的輸入等功能的實現(xiàn)。
2游戲場景模型及動畫設計
建立一個虛擬現(xiàn)實系統(tǒng)的關鍵問題是對系統(tǒng)的建模與仿真[1]。首先根據預想的游戲場景,確定場景的樓層數(shù)和每層房間的位置與面積;用CAD簡單制作每層的平面圖,并在3DsMax中制作三維的樓體;需要在場景中出現(xiàn)的三維模型,在3DsMax綜合運用擠出、連接、倒角、倒角坡面、渦輪平滑、車削等功能,制作出風格統(tǒng)一的模型。教學樓仿真模型的制作主要包含三大樓層多種類型教室:音樂教室、圖書室、普通教室、禮堂、儲物間等,以及多種家具模型,如垃圾簍、桌椅、書柜、風扇、黑板等多種基礎模型。
3系統(tǒng)的功能設計與實現(xiàn)
3.1光線效果分析與手電效果
通過分析調研市面相似游戲,為營造緊張的氛圍,場景光線效果一般為昏暗或忽明忽暗的光線,本游戲采用手電筒光進行照明,場景中未添加光源,同時手電筒應跟隨玩家視角進行移動。開關效果通過if條件判斷語句判斷布爾值真假以此來調用Light。具體的手電筒開關效果如圖1所示,選用FirstPer⁃sonCharacter以及spotlight聚光燈源,可調節(jié)光源的照射范圍、光線角度、照射強度、光照顏色、反射強度等選項,使手電筒的效果更加逼真。
3.2動畫播放控制與背景音樂切換
游戲中的模型需要制作動畫控制器控制動畫的播放。如圖2所示,在Project面板中新建一個動畫控制器,將模型及動畫文件拖動到控制器面板,創(chuàng)建空狀態(tài)empty;將空狀態(tài)和動畫之間建立過度maketransition,此時會從empty上延伸出一段線條,把線條的另一端點放在動畫上。為了能使模型再回到原始狀態(tài),需要在導入相同的動畫,把動畫的播放速度改為負值,實現(xiàn)了動畫的倒放,按照圖2中的方法實現(xiàn)連接,并在過渡線段上分別添加控制動畫播放的布爾。播放動畫的關鍵代碼如下:publicvoidOpenDoorTiaoJian()//聲明播放第一段動畫的條件{animator.SetBool("OpenDoor",true);animator.SetBool("CloseDoor",false);music.Play();}privatevoidOnMouseDown()//聲明一個鼠標點擊事件{isAn=!isAn;if(isAn)//判斷當前模型的狀態(tài){CloseDoorTianJian();}else{OpenDoorTiaoJian();}print(isAn);}publicvoidCloseDoorTianJian()//聲明播放第二段動畫的條件{animator.SetBool("CloseDoor",true);animator.SetBool("OpenDoor",false);}
3.3高亮狀態(tài)顯示與線索查看
在密室逃脫游戲中,線索不能夠輕易被發(fā)現(xiàn),只有執(zhí)行了指定的動作或者進入了指定的區(qū)域內,才有被觸發(fā)的可能。本游戲中發(fā)現(xiàn)線索的邏輯是這樣的:玩家進入指定區(qū)域后,游戲道具會以高亮的輪廓線框提示玩家,玩家處于可觸發(fā)的范圍內點擊道具,就能查看道具的詳細信息,按Z鍵可以關閉詳情頁。功能實現(xiàn)通過添加觸發(fā)器與碰撞器并利用bool值進行條件判斷,具體實現(xiàn)代碼如下:usingcakeslice;//調用OutlineEffect的命名空間publicGameObjecttupian1;publicGameObjecttupian2;publicOutlinem_outline;privateboolisTrigger=false;//聲明游戲組件、高亮組件和布爾privatevoidOnTriggerStay(Colliderother){if(other.tag.Equals("Player"))//判斷玩家是否進入觸發(fā)器中{if(Input.GetKeyDown(KeyCode.Z)){tupian1.SetActive(false);tupian2.SetActive(false);}//輸入Z鍵圖片消失}}publicvoidopenPaper()//建立鼠標的點擊事件{if(isTrigger)//判斷布爾值是否為真{tupian1.SetActive(true);//為真時點擊模型可以示圖片}}
4結果
利用虛擬現(xiàn)實軟件開發(fā)了基于社會問題不良PUA的三維密室逃脫游戲,可通過游戲初始界面進入游戲完成線索搜集及解謎通關。密室環(huán)境首先利用AutoCAD對教學樓場景進行平面設計與合理安排,運用3DStudioMax對整體環(huán)境以及各種物品進行建模,通過PhotoShop制作相關貼圖,實現(xiàn)物品與相關線索的聯(lián)系。其次,將模型導出為.fbx格式導入Unity3D中,通過對場景內光源選擇營造緊迫氣氛、音效調控跳轉、碰撞檢測技術、高亮效果的改進實現(xiàn)用戶在游戲場景中的高仿真實時漫游模擬,漫游過程中可通過劇情線索的搜索不斷了解不良PUA的搭訕技巧及其危害性,避免個人落入相關陷阱中,充分地將社會問題與游戲相結合,更大程度地反映劇情及社會問題。
參考文獻
[1]劉賢梅,石楊,趙婭,等.基于虛擬現(xiàn)實的室內仿真操作系統(tǒng)研究與應用[J].計算機技術與發(fā)展,2020(1):149-154.
作者:張勝男 司占軍 李晗 單位:天津科技大學輕工科學與工程學院