朱閱晗 張海翔 馬文娟



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