朱閱晗 張海翔 馬文娟
摘 要:在數(shù)字媒體專(zhuān)業(yè)實(shí)踐教學(xué)中,三維游戲設(shè)計(jì)的技術(shù)門(mén)檻是教學(xué)實(shí)施的主要障礙。虛幻UE4引擎的制作初衷是為了創(chuàng)造更加容易的內(nèi)容制作方法和編程開(kāi)發(fā)方式,為了讓所有的美術(shù)開(kāi)發(fā)人員能夠在有少量甚至沒(méi)有程序開(kāi)發(fā)基礎(chǔ)的情況下使用抽象程序助手來(lái)自由地進(jìn)行游戲創(chuàng)作,以及提供程序員高效率的模塊和可擴(kuò)展的大量架構(gòu)和插件用來(lái)創(chuàng)建、調(diào)試和完成各種類(lèi)型的游戲制作。虛幻UE4引擎在數(shù)字媒體專(zhuān)業(yè)實(shí)踐教學(xué)具有明顯的可行性,具有一定的推廣價(jià)值。
關(guān)鍵詞:虛幻引擎;游戲設(shè)計(jì);美術(shù);程序;模塊
0 前言
數(shù)字娛樂(lè)設(shè)計(jì)是數(shù)字媒體專(zhuān)用學(xué)習(xí)中的重要方向,也是數(shù)字技術(shù)與媒體藝術(shù)、設(shè)計(jì)、影視、音樂(lè)等融合產(chǎn)生的新興交叉領(lǐng)域。而三維游戲開(kāi)發(fā)[1]是數(shù)字娛樂(lè)設(shè)計(jì)中技術(shù)難度最高,用戶體驗(yàn)最好的一個(gè)技術(shù)種類(lèi),在行業(yè)中存在巨大的人才需求。三維游戲開(kāi)發(fā)由于其涉及游戲設(shè)計(jì)、三維模型設(shè)計(jì)、游戲邏輯設(shè)計(jì)、游戲引擎工具開(kāi)發(fā)等多個(gè)技術(shù)環(huán)節(jié),完整的流程需要昂貴的游戲引擎技術(shù)支持,以往只能在商業(yè)游戲公司內(nèi)部署完整游戲設(shè)計(jì)制作的流程,而在教學(xué)環(huán)節(jié)難以普及。
UE4是Epic Games公司在最新發(fā)布的業(yè)內(nèi)頂級(jí)游戲引擎,[2]在歐洲和北美已經(jīng)得到了廣泛的應(yīng)用,亞洲現(xiàn)在也漸漸地開(kāi)始發(fā)展起來(lái)。UE4具有非常棒的圖形處理能力,包括高級(jí)動(dòng)態(tài)光照,新的粒子系統(tǒng)(可以同時(shí)處理數(shù)以百萬(wàn)的粒子)等。更為重要的是,UE4已經(jīng)宣布100%源代碼開(kāi)源,而且在大學(xué)或是學(xué)術(shù)單位是可以免費(fèi)使用虛幻UE4來(lái)做課業(yè)還是畢展,學(xué)生也可以用來(lái)制作與發(fā)布自己的游戲。UE4的出現(xiàn)給在數(shù)字媒體本科專(zhuān)業(yè)學(xué)習(xí)中實(shí)現(xiàn)完整三維游戲制作提供技術(shù)可能。本文以三維漫游游戲?yàn)槔?,討論了如果使用UE4游戲引擎制作達(dá)到行業(yè)主流水平的三維游戲的技術(shù)要點(diǎn)。在整個(gè)游戲制作中,開(kāi)發(fā)人員不需要關(guān)注底層圖形圖像技術(shù),只需要專(zhuān)注與游戲內(nèi)容的設(shè)計(jì)和制作。因此,非常適合數(shù)字媒體本科專(zhuān)業(yè)的學(xué)生進(jìn)行三維游戲以及虛擬現(xiàn)實(shí)方面的專(zhuān)業(yè)技術(shù)實(shí)踐訓(xùn)練。
1 UE4的游戲設(shè)計(jì)機(jī)制
從實(shí)際開(kāi)發(fā)的角度來(lái)說(shuō),UE4具備了開(kāi)發(fā)游戲所必要的所有功能。與早期引擎(OGRE、OPENGL等)需要自己編輯文本文件,無(wú)法預(yù)覽效果相比,UE4提供了一種類(lèi)似組件的游戲構(gòu)建方法——UE4腳本(buleprint),一張腳本就像一個(gè)組件,可以被調(diào)用和組合,頗有面向?qū)ο蟮乃枷?。相比完全使用代碼來(lái)實(shí)現(xiàn)游戲的制作方法,這種可視化的游戲引擎在設(shè)計(jì)效率和效果上具有數(shù)量級(jí)的提升,在行業(yè)內(nèi)普及也是大勢(shì)所趨。同時(shí),對(duì)一些無(wú)法用腳本,UE4開(kāi)放了源碼,可通過(guò)修改源碼實(shí)現(xiàn)。
1.1 UE4游戲的構(gòu)成元素
UE4游戲的內(nèi)容包括:腳本(blueprint)、組件(Components)、角色(Actor)、關(guān)卡(level),人機(jī)交互界面(HUD,以及UI設(shè)計(jì))等幾部分內(nèi)容。[3-13]下面介紹UE4游戲引擎的重要構(gòu)成元素:
(1)腳本(Blueprints)。虛幻UE4引擎提供的腳本系統(tǒng)是一個(gè)可視化腳本設(shè)計(jì)系統(tǒng),提供一種直觀的、基于節(jié)點(diǎn)的可視化腳本設(shè)計(jì)界面,通過(guò)使用各種不同功能的結(jié)點(diǎn)把事件、函數(shù)、變量相互連接,構(gòu)成圖表,以實(shí)現(xiàn)各種復(fù)雜的游戲功能。用于創(chuàng)建新類(lèi)型的角色(Actor)及關(guān)卡腳本事件,它為關(guān)卡設(shè)計(jì)師和游戲開(kāi)發(fā)人員提供了一種全新的開(kāi)發(fā)方式。正如虛幻引擎的宗旨,讓美術(shù)開(kāi)發(fā)人員在無(wú)程序基礎(chǔ)的情況下開(kāi)發(fā)游戲,很多時(shí)候一行代碼都不需要書(shū)寫(xiě),也能夠完成大部分的操作。程序員也可以用腳本(Blueprints)來(lái)進(jìn)行游戲制作,很多情況下使用腳本(Blueprints)比寫(xiě)代碼方便很多,并且更加直觀,在邏輯的建立上也有很多方便的地方,和代碼相輔相成。
(2)組件(Components)。虛幻UE4引擎的組件是能夠提供一些具體功能操作的游戲部件。組件不能單獨(dú)存在,它可以被添加到一個(gè)角色(Actor)里,然后這個(gè)角色(Actor)就包含了該組件的功能。在腳本中的一些結(jié)點(diǎn)如果要成功執(zhí)行必須要有執(zhí)行組建,如Play結(jié)點(diǎn)的執(zhí)行對(duì)象必須是音頻或是動(dòng)畫(huà)。通過(guò)給角色(Actor)添加不同的組件,角色(Actor)可以擁有不同的功能。
(3)角色(Actor)。角色(Actor)是可以被放置到關(guān)卡(level)中的游戲?qū)ο螅渲杏职巳舾山M件(Component),一個(gè)支持平移,旋轉(zhuǎn)和縮放的通用類(lèi)腳本。角色(Actor)可以通過(guò)游戲代碼(代碼或腳本)創(chuàng)建或者生成,也通過(guò)游戲代碼(代碼或腳本)銷(xiāo)毀(Destory)。
(4)關(guān)卡(level)。關(guān)卡(Level)是UE4引擎的游戲場(chǎng)景對(duì)象,在關(guān)卡中包含若干游戲角色,若干關(guān)卡腳本,以實(shí)現(xiàn)游戲場(chǎng)景的設(shè)計(jì)。
(5)人機(jī)交互(HUD)。HUD官方給出的解釋是“抬頭顯示屏”(heads-up display),是UE4引擎的人機(jī)交互界面,UI的設(shè)計(jì)主要就在這個(gè)類(lèi)中,上面可以顯示血條,生命、彈藥,游戲時(shí)間等。
1.2 游戲運(yùn)行原理分析
UE4游戲引擎的運(yùn)行原理以level為基本單元。假設(shè)我們的游戲只有一關(guān),這一關(guān)就是一個(gè)level(關(guān)卡),關(guān)卡相當(dāng)于是一個(gè)大容器,在其中添加了各種靜態(tài)模型、NPC、觸發(fā)器什么的,這些統(tǒng)稱(chēng)為角色(Actor)。這樣關(guān)卡就構(gòu)成了基本的UE4游戲場(chǎng)景。
每個(gè)角色(Actor)都可以設(shè)計(jì)相應(yīng)的角色腳本,是一個(gè)比較獨(dú)立的個(gè)體。在關(guān)卡腳本的設(shè)計(jì)中,可以先用角色(Actor)設(shè)計(jì)成所需要的游戲元素,添加在關(guān)卡中,或者是在后臺(tái)等待被調(diào)用加入。關(guān)卡都有相應(yīng)關(guān)卡腳本(Level Blueprints),是關(guān)卡的一個(gè)游戲邏輯控制器。只要關(guān)卡在運(yùn)行,關(guān)卡腳本就一直被調(diào)用,關(guān)卡腳本驅(qū)動(dòng)了關(guān)卡中各種角色(Actor)的動(dòng)作,進(jìn)而調(diào)用其他角色(Actor),而這些被調(diào)用到了關(guān)卡中的角色(Actor)又可以調(diào)用其他角色(Actor)實(shí)現(xiàn)新的功能。如此循環(huán)往復(fù),就推動(dòng)了整個(gè)游戲場(chǎng)景的運(yùn)行。
2 三維漫游射擊游戲的具體實(shí)現(xiàn)
根據(jù)UE4游戲引擎的設(shè)計(jì)原理,本文設(shè)計(jì)實(shí)現(xiàn)了一款迷宮射擊類(lèi)游戲,簡(jiǎn)單而不單調(diào)。游戲的背景設(shè)定具有科幻色彩:“由于人類(lèi)觸碰了科學(xué)的禁忌,誕生出來(lái)的怪物——Noah.27。一種擁有自我意識(shí)的電流,Noah.27的天敵——PIPA。當(dāng)科學(xué)與魔法碰撞之時(shí),故事才剛剛開(kāi)始……”
整個(gè)游戲場(chǎng)景是一個(gè)迷宮,由有形之墻和無(wú)形之墻組成,有形之墻可以開(kāi)火擊毀后通過(guò),無(wú)形之墻會(huì)在與主角接觸后現(xiàn)形一段時(shí)間,同時(shí)減少主角能量,一路上有陷阱,觸發(fā)之后怪物會(huì)從天而降襲擊主角。游戲勝利條件是活著到達(dá)終點(diǎn)。
2.1 游戲角色
這里首先使用3DMAX[2]進(jìn)行建模,主角的建模并不困難,主要是做幾個(gè)立方體,然后用導(dǎo)角做出嘴巴和腳,眼睛使用貼圖,這樣主角就完成了。
(a)主角設(shè)定
(b)怪物設(shè)定
怪物的模型看似很復(fù)雜,但是因?yàn)槭褂玫氖前胪该鞯馁N圖,在實(shí)際游戲中會(huì)顯示的比較曖昧。在三維建模的設(shè)計(jì)中,只是用一個(gè)不規(guī)則的球形模型來(lái)實(shí)現(xiàn),然后使用網(wǎng)格平滑就可以了。
2.2 游戲關(guān)卡
場(chǎng)景的制作也只是工程量略大,首先在紙上畫(huà)好俯視圖,畫(huà)好迷宮,兩種墻的類(lèi)型要標(biāo)清楚,然后是確定場(chǎng)景中陷阱的擺放地點(diǎn)、能量包的擺放地點(diǎn)、快速存檔的地點(diǎn)。這些位置在設(shè)定的時(shí)候要分布合理,要計(jì)算好玩家到達(dá)終點(diǎn)時(shí)必須碰壁的次數(shù),需要打掉多少堵墻;權(quán)衡途徑的陷阱數(shù)量和能量包數(shù)量跟血量的關(guān)系。這里設(shè)置了兩條通往終點(diǎn)的路徑,這樣可以提高游戲的耐玩性。其次比較費(fèi)勁的地方是貼圖,動(dòng)態(tài)貼圖的制作和貼圖位置的調(diào)整都是在UE4中完成的,因?yàn)橘N圖制作并不是所見(jiàn)即所得,效果是要渲染之后才能看見(jiàn)的,所以在制作的時(shí)候要在腦海中事先模擬好效果,這樣才能提高工作效率。
2.3 主角設(shè)計(jì)(主角相關(guān)的設(shè)計(jì)請(qǐng)?jiān)敿?xì)介紹)
主角有一條能量條,3條生命,有開(kāi)火和放防護(hù)罩2種技能,都會(huì)略微扣一點(diǎn)能量,觸碰無(wú)形之墻后也會(huì)扣能量,吃路上的能量包會(huì)增加能量,打敗怪物后會(huì)掉落能量包,能量變?yōu)?之后主角死亡。
整個(gè)游戲需要制作的東西大致有:
2.4 其余輔助功能設(shè)計(jì)
其他的一些需要實(shí)現(xiàn)的功能,如UI上一些組件的實(shí)現(xiàn),包括血條的增減、準(zhǔn)心的替換、各個(gè)按鈕點(diǎn)擊時(shí)的藝術(shù)效果和延遲、加載畫(huà)面的動(dòng)畫(huà)組件制作、游戲通關(guān)和失敗的頁(yè)面提示、游戲時(shí)間、最佳通關(guān)時(shí)間、最快死亡時(shí)間的顯示等等。還有開(kāi)場(chǎng)FLASH動(dòng)畫(huà)的制作和加載,攝像機(jī)動(dòng)畫(huà)的制作和觸發(fā)等。具體的設(shè)計(jì)制作方法這里不再詳細(xì)給出。總體上來(lái)說(shuō),這些游戲內(nèi)容的設(shè)計(jì)都可以用UE4引擎的常規(guī)設(shè)計(jì)高效完成,不需要涉及抽象的程序代碼。
3 總結(jié)
本文實(shí)現(xiàn)的游戲從游戲設(shè)定的角度雖然不是一款大制作游戲,但“麻雀雖小五臟俱全”,從場(chǎng)景到UI,從3D開(kāi)場(chǎng)動(dòng)畫(huà)到結(jié)尾實(shí)時(shí)動(dòng)畫(huà),還有游戲數(shù)據(jù)的儲(chǔ)存,三維游戲設(shè)計(jì)的構(gòu)成元素都包含其中,可以作為數(shù)字媒體專(zhuān)業(yè)的動(dòng)畫(huà)、虛擬顯示、游戲設(shè)計(jì)等方向的一個(gè)精巧而全面的實(shí)踐案例。UE4游戲引擎的腳本系統(tǒng)大大降低了三維游戲制作的門(mén)檻,無(wú)須代碼基礎(chǔ),只要有正確的邏輯思維,就可以靠藍(lán)圖來(lái)實(shí)現(xiàn)自己的想法。這樣,游戲設(shè)計(jì)師可以專(zhuān)注與游戲內(nèi)容的設(shè)計(jì),使用腳本直接來(lái)實(shí)現(xiàn)自己的想法,證明可行之后再讓程序來(lái)完善即可。UE4引擎的這種制作理念讓我們把游戲制作的思維方式從“我們能實(shí)現(xiàn)什么功能”進(jìn)化到了“游戲需要什么功能”,讓設(shè)計(jì)師更重視游戲設(shè)計(jì)本身而不被代碼所束縛,在游戲中盡情地表現(xiàn)自己。通過(guò)本文案例可說(shuō)明,UE4游戲引擎作為一種先進(jìn)的三維游戲設(shè)計(jì)技術(shù),在數(shù)字媒體專(zhuān)業(yè)實(shí)踐教學(xué)中也具有顯著的可用性,具有一定的推廣價(jià)值。
參考文獻(xiàn):
[1] 彭澎,馮黎金,丁鵬. 3DS MAX與After Effects影視動(dòng)畫(huà)設(shè)計(jì)與制作教程[M].北
京:清華大學(xué)出版社,2007.
[2] EPIC . UE4官方文檔[EB/OL]. https://docs.unrealengine.com/latest/INT/.
[3] 朱玉蓮,龐少召,張紹博.中文版Flash CS6高手速成[M].北京:電子工業(yè)出版社,2013.
[4] Designing編輯部.色彩設(shè)計(jì):日本平面設(shè)計(jì)師參考手冊(cè)[M].北京:人民郵電出版社,2011.
[5] 周煒,紀(jì)春明,王志新. After Effects CS6影視后期制作實(shí)戰(zhàn)編著[M].北京:人民郵電出版社,2013.
[6] Unreal Engine 4中文社區(qū)[EB/OL]. http://bbs.sanwu.org/forum.php.
[7] 紅動(dòng)中國(guó)[EB/OL]. http://sucai.redocn.com/index.html.
[8] 日本在線配色參考[EB/OL]. http://nipponcolors.com/#nadeshiko.
[9] UI中國(guó)[EB/OL]. http://www.ui.cn/.
[10] 3D Total[EB/OL]. http://www.3dtotal.com/.
[11] TurboSquid[EB/OL]. http://www.turbosquid.com/Search/?KEYWORD=Free.
[12] Ryan Shah . Master the Art of Unreal Engine 4?Blueprints[M].Australia:Createspace,2014.
[13] Ryan Shah. Unreal Engine 4 Blueprints-PartII.5-ExtraCredits[M]. Australia:Createspace,2015.
[14] 三巫教育[EB/OL]. http://sanwu.ke.qq.com/.