王宇 李丹丹
摘要:本文針對有養(yǎng)殖需求但沒有時(shí)間養(yǎng)殖的上班族,設(shè)計(jì)開發(fā)一款植物養(yǎng)成類游戲來滿足他們需求,使他們可以隨時(shí)體驗(yàn)養(yǎng)成類游戲樂趣,是本游戲設(shè)計(jì)開發(fā)初衷?!爸参镳B(yǎng)成記”手機(jī)單機(jī)養(yǎng)成類游戲使用UnrealEngine4引擎,可以快速實(shí)現(xiàn)游戲的設(shè)計(jì)與開發(fā),構(gòu)建多平臺部署。為其他有創(chuàng)意的游戲設(shè)計(jì)開發(fā)者快速高效的實(shí)現(xiàn)游戲創(chuàng)意提供了一種思路。
關(guān)鍵詞:手機(jī)游戲;養(yǎng)成類游戲;游戲引擎UE4
中圖分類號:TP317 文獻(xiàn)標(biāo)識碼:A 文章編號:1005-5312(2018)18-0162-02
一、引言
快節(jié)奏的生活讓上班族很難有時(shí)間養(yǎng)植物,但對植物的喜愛又使人們希望在空余時(shí)間養(yǎng)殖植物,于是植物養(yǎng)成游戲順應(yīng)著人們的需求而誕生。截止2017年6月,根據(jù)互聯(lián)網(wǎng)絡(luò)信息中心統(tǒng)計(jì),中國手機(jī)游戲用戶已超過3.8億。
由此可見,針對上班族制作的手機(jī)游戲有著潛在的巨大市場與經(jīng)濟(jì)效益。本游戲是基于UnrealEngine4(以下簡稱UE4)軟件平臺,結(jié)合運(yùn)用SpeedTree以及Maya軟件制作的安卓端的單機(jī)植物養(yǎng)成類游戲。
二、核心技術(shù)簡介
UnrealEngine4是一款用于三維場景構(gòu)建的虛擬現(xiàn)實(shí)軟件。其強(qiáng)大的渲染功能、可視化系統(tǒng)、全新的工作流程、深入的工具集以及完全的C++源碼使得該引擎迅速成為3D游戲制作的首選軟件。開發(fā)者使用游戲引擎進(jìn)行游戲開發(fā)能夠降低開發(fā)成本、縮短開發(fā)周期、提高游戲品質(zhì)并降低風(fēng)險(xiǎn),從而高效的實(shí)現(xiàn)開發(fā)者的創(chuàng)意。
SpeedTree的樹木類建模功能和大量的模型庫,為游戲提供了數(shù)百種植物品種。通過SpeedTree制作出植物的生長動畫可以使玩家能夠感受植株變化的樂趣。Maya主要制作場景天空盒以及盆栽等基本模型,UE4強(qiáng)大的可視化藍(lán)圖實(shí)現(xiàn)游戲所需的所有的交互功能。
三、系統(tǒng)設(shè)計(jì)分析
(一)游戲機(jī)制
養(yǎng)成游戲作為一種“造夢”的游戲類型,可玩性是由游戲機(jī)制產(chǎn)生的,游戲機(jī)制涵蓋物理機(jī)制、內(nèi)部經(jīng)濟(jì)、漸進(jìn)機(jī)制、戰(zhàn)術(shù)機(jī)動和社會互動。
本文主要涉及游戲的物理機(jī)制與內(nèi)部經(jīng)濟(jì)來產(chǎn)生與增強(qiáng)游戲的可玩性。本游戲的物理機(jī)制是指玩家可對盆摘進(jìn)行移動、縮小與放大等改變物體位置的操作;內(nèi)部經(jīng)濟(jì)則由植物的健康值體現(xiàn):玩家對植株進(jìn)行澆水、除草等操作來積累植物的健康值,當(dāng)植株的健康值達(dá)到一定數(shù)值時(shí),植株便會成長。
(二)系統(tǒng)模塊設(shè)計(jì)
根據(jù)上班族群體的特點(diǎn),本游戲設(shè)計(jì)分5個模塊:
1.游戲模塊
每周登陸一次,澆水使植物保持存活狀態(tài);每天登陸,查看植物每天的變化并鏟除每日出現(xiàn)的雜草,增加植物的健康值。
2.雜草隨機(jī)生成模塊
負(fù)責(zé)生成一定數(shù)量的雜草,隨機(jī)排列在電子花盆中。
3.數(shù)據(jù)存儲模塊
用于游戲用戶登陸的數(shù)據(jù)保存,獲得系統(tǒng)時(shí)間差,實(shí)現(xiàn)用戶再次登入時(shí)記錄前一天的數(shù)據(jù)。
4.交互模塊
負(fù)責(zé)游戲界面旋轉(zhuǎn),負(fù)責(zé)灑水動畫、除草動畫。
5.音效模板
負(fù)責(zé)管理游戲的各種音效,如:游戲背景音效、灑水音效、除草音效等。設(shè)計(jì)模塊,如圖1所示。
玩家主要可進(jìn)行澆水、除草操作,享受陪伴植物生長以及收獲成果的過程。游戲場景為一矩形界面,屏幕中央放置著電子盆栽。操作方法為點(diǎn)擊游戲圖標(biāo)進(jìn)行對應(yīng)播種、除草、灑水操作。
在進(jìn)行游戲操作時(shí),玩家每點(diǎn)擊一個物體,系統(tǒng)都需要判斷此物體是玩家所種植的植物還是為增加游戲真實(shí)性隨機(jī)生成的雜草。若物體判定為植物,玩家可進(jìn)行的操作便是給其澆水;若為雜草,玩家所進(jìn)行的操作便是清除雜草。
(三)界面設(shè)計(jì)
游戲啟動后首先呈現(xiàn)在玩家面前的是歡迎界面,歡迎界面最基本、也最主要的元素是游戲的標(biāo)識、進(jìn)入游戲以及退出游戲按鈕。這些元素能讓玩家明白游戲名稱以及是否進(jìn)行游戲,如圖2所示。
游戲界面為矩形,屏幕中央放置著電子盆栽。玩家在游戲過程中有暫停的需求,暫停時(shí)可進(jìn)行游戲音效管理、刷新游戲、退出游戲等動作。使用Triggers觸發(fā)事件從操作界面彈到暫定界面,進(jìn)行相應(yīng)動作。
四、系統(tǒng)實(shí)現(xiàn)
(一)植物變化實(shí)現(xiàn)
在“植物養(yǎng)成記”游戲中,玩家登陸游戲達(dá)到一定時(shí)長時(shí)會發(fā)現(xiàn)植物的微小變化,直至達(dá)到設(shè)定的植物周期后,玩家便可收獲植物并獲得獎勵。本文以SpeedTree(Trunk生長)實(shí)現(xiàn)了APP效果。導(dǎo)出10幀的生長動畫,導(dǎo)入MAYA,再進(jìn)行模型導(dǎo)出,將對應(yīng)的模式導(dǎo)入U(xiǎn)E4利用藍(lán)圖實(shí)現(xiàn)變化交互,制作出demo可以快速高效實(shí)現(xiàn)植物變化實(shí)現(xiàn)。
(二)交互實(shí)現(xiàn)
交互實(shí)現(xiàn)即本游戲設(shè)計(jì)界面在UE4中使用C++代碼實(shí)現(xiàn)自動旋轉(zhuǎn)花盆、獲得時(shí)間差,再次登陸時(shí)會呈現(xiàn)植物不同與上一次登陸的成長狀態(tài)。
1.自動旋轉(zhuǎn)物體
函數(shù)在Tick()生成類中運(yùn)行,開頭需引入頭文件:#include"Engine/World.h"
核心代碼如下:
voidUBoxComponent::TickComponent (float DeltaTime,ELevelTickTickType,F(xiàn)Ac torComponentTic kFunc tion*ThisTickFunction)
{
Super::TickComponent
(DeltaTime, TickType, ThisTickFunction):
2.獲得登陸與退出的時(shí)間差
本游戲在UE4中創(chuàng)建SaveGame對象的實(shí)例或者副本存儲時(shí)間差數(shù)據(jù),玩家點(diǎn)擊開始按鈕通過SaveGameToSlot將SaveGame對象保存到磁盤驅(qū)動器中的文件里,點(diǎn)擊退出按鈕時(shí)亦是如此。玩家登入達(dá)到一定時(shí)間,植物會產(chǎn)生生長細(xì)微的變化。為實(shí)現(xiàn)這種變化可以使用了選擇結(jié)構(gòu)算法。
(三)隨機(jī)生成實(shí)現(xiàn)
區(qū)域內(nèi)實(shí)現(xiàn)隨機(jī)生成一定數(shù)目的雜草功能,使用了UE4提供的藍(lán)圖可視化腳本。
除草交互設(shè)計(jì)由以下兩個部分組成:
1.生成雜草
每日在游戲界面花盆區(qū)域內(nèi)指定區(qū)域隨機(jī)生成隨機(jī)大小一定數(shù)量的雜草。通過這種隨機(jī)邏輯設(shè)計(jì),即可以實(shí)現(xiàn)游戲中雜草的隨機(jī)排列,也為植株留下生存空間,避免在植株種植的位置生成雜草。
2.清除雜草
在界面中,選中雜草觸發(fā)出現(xiàn)相應(yīng)的操作圖標(biāo),點(diǎn)擊圖標(biāo)便可進(jìn)行相應(yīng)操作。
在藍(lán)圖中RandomStream(隨機(jī)流)能重復(fù)生成隨機(jī)數(shù)并應(yīng)用隨機(jī)數(shù)。根據(jù)函數(shù)功能的不同,輸出不同類型的隨機(jī)值。本文采取隨機(jī)輸出(Min,Max)范圍內(nèi)的一個浮點(diǎn)型。利用MakeVector容器保存隨機(jī)流函數(shù)Random Float in Range from Stream所構(gòu)成的平面區(qū)域信息,使得SpawnActor即本文中的雜草,能在特定區(qū)域內(nèi)隨機(jī)生成一定數(shù)量的雜草。
(四)操作實(shí)現(xiàn)
本游戲的操作主要是對植物進(jìn)行灑水、對盆栽中的雜草進(jìn)行清除,使用了UE4中可視化腳本系統(tǒng)藍(lán)圖,以實(shí)現(xiàn)清除雜草和灑水動作(以除草為例),需要在UMG中制作按鈕控件,添加Triggers事件,通過DestroyActor節(jié)點(diǎn)摧毀已生成的雜草。
(五)游戲輸出
游戲demo制作完成后,需對游戲進(jìn)行打包,使其能夠獨(dú)立于軟件而運(yùn)行。進(jìn)行測試,運(yùn)行效果良好,初步達(dá)成實(shí)驗(yàn)?zāi)康摹?/p>
五、結(jié)語
本文詳細(xì)敘述“植物養(yǎng)成記”游戲基于UE4游戲引擎的設(shè)計(jì)思路與技術(shù)實(shí)現(xiàn)細(xì)節(jié)。
本游戲的邏輯設(shè)計(jì)清晰,提供玩家澆水、除草兩種主要操作,讓上班族在零散時(shí)間內(nèi)享受閑適舒服的游戲環(huán)境,并使玩家體驗(yàn)到植物養(yǎng)成的喜悅,為實(shí)現(xiàn)植物養(yǎng)成游戲提供了高效快捷的方法,這種使用UE4設(shè)計(jì)與開發(fā)的方法,能為游戲開發(fā)者實(shí)現(xiàn)創(chuàng)意提供借鑒與參考意義。