楊成義 梁毓偉



摘? 要:跑酷類電子游戲,能讓玩家在感受極限運(yùn)動(dòng)的同時(shí),減少身體機(jī)能的限制,降低受傷風(fēng)險(xiǎn),并實(shí)現(xiàn)鍛煉思維、提高行為敏捷的目的。文章借助Unreal Engine 4游戲開發(fā)引擎,通過可視化的藍(lán)圖編程的形式,從關(guān)卡、游戲模式、玩家控制器以及用戶界面等四部分進(jìn)行了跑酷游戲PC端的設(shè)計(jì)和實(shí)現(xiàn)。經(jīng)過測(cè)試,游戲中關(guān)卡設(shè)置、角色動(dòng)作等功能運(yùn)行流暢,場景跳轉(zhuǎn)迅速,聲音播放及參數(shù)計(jì)算均正常。
關(guān)鍵詞:跑酷類電子游戲;Unreal Engine4;藍(lán)圖;玩家控制器
中圖分類號(hào):TP317? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2020)17-0090-03
Abstract:Parkour video games can make players feel extreme sports,reduce the limitation of body function,reduce the risk of injury,and realize the purpose of exercise thinking and improving behavior agility. With the help of Unreal Engine 4 game development engine,through the form of visual blueprint programming,this paper designs and implements Parkour game in PC from four parts:level,game mode,player controller and user interface. After testing,the game level settings,role actions and other functions run smoothly,the scene jumps quickly,sound playback and parameter calculation are normal.
Keywords:Parkour video games;Unreal Engine 4;blueprint;player controller
0? 引? 言
隨著計(jì)算機(jī)產(chǎn)業(yè)的興起,電子游戲逐漸走進(jìn)大眾家庭,正以迅猛的發(fā)展速度席卷文化產(chǎn)業(yè),發(fā)揮著在和平年代提高人們精神文化生活質(zhì)量的積極作用。電子游戲來源于生活,且往往能起到在潛移默化中鍛煉人類生存技能的作用,跑酷電子游戲模擬的是一項(xiàng)極限跑步運(yùn)動(dòng),在降低參與者受傷風(fēng)險(xiǎn)的同時(shí),使其獲得和極限運(yùn)動(dòng)同樣的挑戰(zhàn)快感。本文立足于當(dāng)前新興的單機(jī)聯(lián)機(jī)游戲市場,借助美國Epic Games公司旗下的Unreal Engine 4(UE4)游戲開發(fā)引擎,以藍(lán)圖編程為主體,說明跑酷游戲在PC端需要實(shí)現(xiàn)的業(yè)務(wù)邏輯。在充分展示并運(yùn)用UE4完備的功能特性的前提下,設(shè)計(jì)游戲的菜單,創(chuàng)建選項(xiàng)按鈕,通過視角的切換實(shí)現(xiàn)菜單到關(guān)卡的無縫切換,重點(diǎn)渲染場景和道具的生成,設(shè)置按鍵的映射及角色動(dòng)畫播放邏輯,從而實(shí)現(xiàn)一個(gè)較為完整的游戲軟件。介于此游戲的開發(fā)初衷,只是出于一定的興趣和學(xué)習(xí)目的,同時(shí)目前完成版本的界面和美術(shù)效果一般,所以暫時(shí)不考慮游戲的推廣及經(jīng)濟(jì)效益問題。
1? 系統(tǒng)的需求分析
跑酷游戲需要實(shí)現(xiàn)的基礎(chǔ)業(yè)務(wù)包含兩大部分:數(shù)據(jù)及邏輯運(yùn)算、多媒體輸出。數(shù)據(jù)及邏輯運(yùn)算部分主要需要處理關(guān)卡設(shè)置、UI交互、玩家控制等。而在多媒體輸出部分,需要處理的有用戶界面、環(huán)境及碰撞音效、模型、角色狀態(tài)機(jī)等;在確立游戲的美術(shù)風(fēng)格后,應(yīng)為相應(yīng)關(guān)卡設(shè)計(jì)合適的環(huán)境,注意使用天空球晝夜交替功能,設(shè)置合理充足的光源,保證在夜間玩家仍能有良好的視野。游戲的場景一般由重復(fù)生成的跑道、隨機(jī)生成的環(huán)境和物品組成。跑道為單個(gè)或多個(gè)以矩形網(wǎng)格體為基礎(chǔ)制作的可重復(fù)拼接方塊,在關(guān)卡中按腳本設(shè)計(jì)順序生成。隨機(jī)生成的環(huán)境和物品則包含了玩家角色所碰到的障礙物、拾取物及跑道邊緣裝飾物,其在關(guān)卡中以偽隨機(jī)的方式在標(biāo)定的坐標(biāo)上生成。
玩家在游戲過程中,角色的狀態(tài)是逐幀檢測(cè)的,并根據(jù)檢測(cè)結(jié)果播放合適的動(dòng)作動(dòng)畫。因此,需要提前制作角色在不同狀態(tài)下的動(dòng)作動(dòng)畫,并通過UE4的狀態(tài)機(jī)編寫縝密的邏輯,將播放及切換合理地串聯(lián)起來。比如,判斷角色是否處于跳躍狀態(tài)是一個(gè)較為特殊的部分,需要判斷角色的狀態(tài)是否處于剛起跳、正在懸空、剛落地中的某一種狀態(tài),需根據(jù)不同狀態(tài)設(shè)置合理的動(dòng)畫播放邏輯。剛起跳、剛落地的動(dòng)畫,在與跑動(dòng)動(dòng)畫切換時(shí)只需播放一遍;而正在懸空的動(dòng)畫,則需要循環(huán)播放,保證角色在空中時(shí)不是處于靜止?fàn)顟B(tài)。
2? 系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)
本游戲軟件的設(shè)計(jì)由關(guān)卡、游戲模式、玩家控制器以及用戶界面四部分組成,后三者將以藍(lán)圖可視化編程的方式進(jìn)行。針對(duì)上述內(nèi)容進(jìn)行具體分析,需要完成設(shè)計(jì)的對(duì)象有:光源、跑道、障礙物和得分物、角色、玩家控制器、用戶界面等。相關(guān)對(duì)象均以類的形式進(jìn)行封裝,并按實(shí)際情況在場景中生成多個(gè)實(shí)例,這里選取主要的5類對(duì)象進(jìn)行說明。
2.1? 光源
設(shè)置恰當(dāng)?shù)墓庠矗WC在夜間玩家仍有良好的視野。為了在配合天空球晝夜交替的條件下,減少不必要的陰影渲染錯(cuò)誤,以及解決夜間玩家視線問題,需要將天空球的太陽高度與天空光源的照射角度綁定,實(shí)現(xiàn)了天空光源跟隨晝夜交替變化的效果。針對(duì)天空光源的實(shí)時(shí)變化,將角色相機(jī)的自動(dòng)曝光的最大值、最小值分別設(shè)定為20與-10,在此區(qū)間可以保證不會(huì)出現(xiàn)曝光不足及過曝情況,避免影響玩家視野,如圖1所示。
2.2? 跑道
關(guān)卡中地面就是跑道,其應(yīng)該是無限延伸的,且能及時(shí)銷毀。跑道上需隨機(jī)生成障礙物及得分物,玩家與跑道上物品接觸時(shí)需要正確的響應(yīng)。將跑道封裝為一個(gè)單獨(dú)的藍(lán)圖類“Floor_BP”,類中除地板“LPlane”“RPlane”“Floor”外,還包含跑道銷毀的邏輯、跑道上生成障礙物或得分物的坐標(biāo)“Left”“Right”“Middle”,玩家到達(dá)跑道邊緣后觸發(fā)生成下一跑道的碰撞盒子“Box”,以及記錄下一個(gè)跑道生成坐標(biāo)的“SpawnPoint”,如圖2所示。
2.3? 障礙物與得分物
當(dāng)玩家觸碰到障礙物時(shí),玩家角色的骨骼綁定將解除,角色將無法再次移動(dòng),自此游戲結(jié)束。在相同的骨架及網(wǎng)格體的特殊情況下,只需要加入Select節(jié)點(diǎn)、將不同的蒙皮放入Option引腳中,最后將Index引腳與Random Integer in Range節(jié)點(diǎn)相連后設(shè)置好隨機(jī)數(shù)的區(qū)間,便可實(shí)現(xiàn)蒙皮效果的隨機(jī)生成。
得分物使用了與障礙物相似的邏輯,不同的是在條件達(dá)成后,得分物的效果是將作為積分用的整型自增。
2.4? 角色
玩家的角色封裝于一個(gè)名為“Hero_BP”的藍(lán)圖類中,其中相機(jī)由攝像機(jī)搖臂與玩家角色相連,而光源則懸空,它們都將跟隨玩家的角色進(jìn)行同步移動(dòng)。玩家操控角色時(shí)所進(jìn)行的輸入操作都應(yīng)關(guān)聯(lián)相應(yīng)的業(yè)務(wù)邏輯,比如在多條跑道中臨近障礙物時(shí)所做的跑道切換、跳過障礙物、角色的坐標(biāo)位置變換、時(shí)間的增長和移動(dòng)速度之間的邏輯關(guān)系等,全都包含在“Hero_BP”類中。部分控制角色移動(dòng)的藍(lán)圖腳本,如圖3所示。
2.5? 玩家控制器
作為一個(gè)跑酷類游戲,玩家的控制器主要控制左移、右移、跳躍。UE4官方預(yù)置的“PlayerController”控制器還包含了蹲下、慢走等角色狀態(tài),并提供對(duì)觸摸板、手柄等操作方式的支持,設(shè)置“MoveLeft”“MoveRight”“Jump”三個(gè)輸入操作的映射,分別對(duì)應(yīng)鍵盤上A鍵、D鍵、空格鍵,這些映射將在各個(gè)相關(guān)類中作為事件被進(jìn)行觸發(fā),如圖4所示。除此之外,游戲開始時(shí)并不顯示鼠標(biāo)指針、鼠標(biāo)滾動(dòng)視角的變化、界面縮放比例的調(diào)整等等,這些屬于用戶使用習(xí)慣的重要設(shè)置部分,都可以通過玩家控制器進(jìn)行設(shè)置。
與游戲玩法相關(guān)的邏輯設(shè)置將存儲(chǔ)于名為“Run_Mode_BP”的藍(lán)圖類中。在游戲軟件中,它主要負(fù)責(zé)兩個(gè)部分的邏輯控制,分別是跑道延伸的邏輯和關(guān)卡的初始化。針對(duì)跑道的延伸,包含了一個(gè)命名為“SpawnTitle”的腳本,該腳本中會(huì)調(diào)用“Floor_BP”類中“SpawnPoint”對(duì)象的相關(guān)屬性,通過變換獲取世界坐標(biāo),并根據(jù)該坐標(biāo)給定的參數(shù)進(jìn)行延伸跑道的計(jì)算。至于關(guān)卡的初始化,是將按鈕的單擊事件進(jìn)行監(jiān)聽,在關(guān)卡開始執(zhí)行時(shí),通過For Loop節(jié)點(diǎn)將“SpawnTitle”腳本進(jìn)行循環(huán)執(zhí)行。這樣,在游戲初期,玩家在視覺上就有足夠長的跑道。“Run_Mode_BP”也配置了與自身設(shè)置相對(duì)應(yīng)的控制器,當(dāng)其被執(zhí)行時(shí),系統(tǒng)將調(diào)用其配套的玩家控制器。
3? 測(cè)試
測(cè)試是軟件開發(fā)中必不可少的一個(gè)環(huán)節(jié),將游戲軟件運(yùn)行在Windows 10系統(tǒng)上,主要針對(duì)包括關(guān)卡及視角轉(zhuǎn)換、場景顯示、聲音播放、參數(shù)計(jì)算四個(gè)方面進(jìn)行調(diào)試和檢查,找出存在的Bug。在實(shí)際測(cè)試過程中,狀態(tài)欄及任務(wù)管理器顯示正常,無閃退現(xiàn)象;關(guān)卡選擇按鈕響應(yīng)正常,界面跳轉(zhuǎn)流暢;在允許范圍內(nèi),能夠?qū)巧M(jìn)行有效的控制,動(dòng)畫播放序列匹配玩家輸入操作;游戲場景及相關(guān)物品顯示清晰,光源充足,無明顯暗角;游戲聲音播放清楚;游戲中參數(shù)顯示正確,無亂碼現(xiàn)象。如圖5所示,游戲運(yùn)行正常且參數(shù)顯示正確。
4? 結(jié)? 論
經(jīng)過對(duì)相應(yīng)功能模塊和界面的反復(fù)測(cè)試和調(diào)試,實(shí)現(xiàn)的這款基于PC端的跑酷游戲,能夠滿足一般玩家的日常游戲體驗(yàn)。軟件安裝簡單,運(yùn)行流暢,界面的跳轉(zhuǎn)和輸入響應(yīng)迅速,背景聲音與音效播放正常,游戲參數(shù)顯示正確。游戲中還有一些地方值得優(yōu)化:本游戲軟件目前還是一款單機(jī)游戲,對(duì)其進(jìn)行聯(lián)網(wǎng)可以擴(kuò)大受眾,提高玩家的粘性;增加排行榜等類似設(shè)計(jì)可以使玩家獲得目標(biāo)感,更容易深層次地參與到游戲之中;相關(guān)場景設(shè)計(jì)過于單調(diào),后續(xù)可以適當(dāng)穿插一些3D動(dòng)態(tài)特效和聲音效果,增強(qiáng)玩家感官體驗(yàn)的同時(shí),提高游戲的娛樂性。
參考文獻(xiàn):
[1] 孟恬恬.休閑類手游的設(shè)計(jì)實(shí)現(xiàn)與游戲性分析 [D].北京:北京印刷學(xué)院,2017.
[2] 李靜.微時(shí)代下休閑類手機(jī)游戲設(shè)計(jì)研究 [D].無錫:江南大學(xué),2015.
[3] 吳洪晨.基于UE4的ACT類游戲的設(shè)計(jì)與實(shí)現(xiàn) [J].產(chǎn)業(yè)科技創(chuàng)新,2019,1(2):86-88.
[4] 掌田津耶乃.UnrealEngine4藍(lán)圖完全學(xué)習(xí)教程 [M].北京:中國青年出版社,2017.
[5] 尹鑫.基于UE4的塔防射擊游戲設(shè)計(jì) [J].信息與電腦(理論版),2018(4):93-94.
[6] 朱悅.基于UE4的射擊類手機(jī)游戲系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) [D].武漢:華中科技大學(xué),2018.
作者簡介:楊成義(1985.09—),男,漢族,湖北孝感人,講師,碩士研究生,研究方向:群決策支持系統(tǒng);梁毓偉(1998. 08—),男,漢族,廣東東莞人,本科,研究方向:計(jì)算機(jī)科學(xué)與技術(shù)。