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