陳麗萍
(蚌埠醫(yī)學(xué)院,安徽 蚌埠 233000)
[文章編號]1671-802X(2016)04-0029-04
游戲引擎技術(shù)基礎(chǔ)
陳麗萍
(蚌埠醫(yī)學(xué)院,安徽 蚌埠 233000)
介紹游戲引擎的作用、功能和分類,著重介紹虛幻3游戲引擎,對游戲開發(fā)者進(jìn)行開發(fā)選擇提供參考借鑒。
游戲引擎;Unity3D;虛幻;虛擬現(xiàn)實(shí)
游戲引擎是指一些已編寫好的、可編輯的電腦游戲系統(tǒng)或者一些交互式實(shí)時(shí)圖像應(yīng)用程序的核心組件,是一個(gè)為運(yùn)行某一類游戲的機(jī)器設(shè)計(jì)的能夠被機(jī)器識別的代碼(指令)集合[1]。這些系統(tǒng)為游戲設(shè)計(jì)者提供編寫游戲所需的各種工具,其目的在于讓游戲設(shè)計(jì)者能容易和快速地做出游戲程式,而不用由零開始。
游戲引擎像一個(gè)發(fā)動(dòng)機(jī),控制著游戲的運(yùn)行。一個(gè)游戲作品可以分為游戲引擎和游戲資源兩大部分。游戲資源包括圖象,聲音,動(dòng)畫等部分,游戲引擎則是按游戲設(shè)計(jì)者的要求順序的調(diào)用這些資源。
游戲引擎有很多內(nèi)容,比如渲染引擎、腳本引擎、物理引擎、網(wǎng)絡(luò)引擎、動(dòng)畫效果、人工智能、場景管理、音效處理等。
經(jīng)過不斷的改進(jìn),游戲引擎已經(jīng)發(fā)展為一套由多個(gè)子系統(tǒng)共同構(gòu)成的復(fù)雜系統(tǒng),從游戲建模到光影特效、場景動(dòng)畫,從物理碰撞檢測到游戲聯(lián)網(wǎng),基本上包含了游戲開發(fā)中所有的重要環(huán)節(jié)。其主要功能有以下幾方面:
(一)控制光影效果
光影效果,即游戲中的人和物受到其中光源的影響方式與結(jié)果。游戲的光影效果是受引擎控制的,其中基本的光學(xué)原理如折射、反射,動(dòng)態(tài)光源等特殊效果都是通過各個(gè)引擎的編程來實(shí)現(xiàn)的。
(二)引入動(dòng)畫系統(tǒng)
游戲中常見的動(dòng)畫系統(tǒng)有兩種:骨骼動(dòng)畫系統(tǒng)和模型動(dòng)畫系統(tǒng)[2]。引擎預(yù)先在游戲中植入這兩種動(dòng)畫系統(tǒng),動(dòng)畫師使用這些系統(tǒng)對游戲人物設(shè)計(jì)復(fù)雜多樣的動(dòng)作造型。
(三)提供物理系統(tǒng)
物理系統(tǒng)是引擎的一個(gè)重要功能,它可以使物體的運(yùn)動(dòng)遵循固定的規(guī)律,其中碰撞探測是物理系統(tǒng)的核心部分,它可以探測游戲中各物體的物理邊緣。當(dāng)兩個(gè)3D物體發(fā)生相撞,它可以避免其相互穿過的笑話,比如當(dāng)游戲人物與墻發(fā)生碰撞的事件,該人物既不會(huì)把墻撞倒,也不會(huì)從墻中穿越,就是因?yàn)榕鲎蔡綔y系統(tǒng)會(huì)根據(jù)人物和墻各自的特點(diǎn)來確定兩者的相互作用關(guān)系。
(四)進(jìn)行游戲渲染
引擎的最重要的功能還包括渲染,游戲美工在游戲三維建模完成后,會(huì)根據(jù)模型不同的面進(jìn)行材質(zhì)貼圖,再通過渲染引擎實(shí)時(shí)計(jì)算光影、音效、動(dòng)畫等各種效果并將其輸出在屏幕上。因?yàn)檫@種實(shí)時(shí)性,所以渲染引擎是所有引擎中最復(fù)雜的,它的好壞直接決定著游戲的最終輸出效果。
(五)支持游戲聯(lián)網(wǎng)
引擎還有一個(gè)重要的職責(zé)就是負(fù)責(zé)處理玩家與電腦之間的互動(dòng),包括響應(yīng)鼠標(biāo)、鍵盤、游戲手柄等外設(shè)的信息。對于支持聯(lián)網(wǎng)的游戲,在引擎中還集成了網(wǎng)絡(luò)代碼,便于客戶端與服務(wù)器之間進(jìn)行通信。
引擎就好比游戲的框架,框架搭好后,模型師、動(dòng)畫師、特效師就可以輕易地往里面填充各自相關(guān)內(nèi)容,3D游戲的開發(fā)過程更是如此。因?yàn)橐娴闹谱鲿?huì)占用大量的游戲開發(fā)時(shí)間,為了降低成本、縮短開發(fā)周期、減少風(fēng)險(xiǎn),大多數(shù)開發(fā)者愿意采用現(xiàn)成的第三方引擎來從事自己的游戲開發(fā),而不是自主研發(fā)自己的引擎,這就引發(fā)和產(chǎn)生了一個(gè)巨大的第三方引擎授權(quán)市場。[2]市場上游戲引擎十分繁多,目前在市場上應(yīng)用的3D游戲引擎主要有:
(一)Havok引擎
Havok引擎是Havok公司開發(fā)的一款物理引擎,全稱為Havok游戲動(dòng)力開發(fā)工具包(Havok Game Dynamics,SDK),簡稱為Havok,其被廣泛用于三維設(shè)計(jì)(3D MAX)和游戲開發(fā)中,這款引擎是最早支持DirectX 9的物理引擎之一,也是目前世界上最快、最方便的跨平臺(tái)游戲圖形解決方案,也是目前應(yīng)用最為廣泛的物理引擎之一。
Havok是用C/C++語言開發(fā)而成,可以在微軟的windows操作系統(tǒng)、Xbox、Xbox360、任天堂的GameCube與Wii、新力的PS2、PS3與PSP、蘋果的Mac OS X、Linux等操作系統(tǒng)或游戲主機(jī)上使用。由于Havok的開放性以及不依賴特定硬件支持的特點(diǎn),很多游戲大作都采用Havok引擎。自從Havok引擎發(fā)布以來,采用Havok引擎開發(fā)的游戲已超過280種。
(二)寒霜引擎(Frostbite)
寒霜引擎是瑞典DICE游戲工作室為著名電子游戲產(chǎn)品《戰(zhàn)地》系列設(shè)計(jì)的一款3D游戲引擎,該引擎從2006年起開始研發(fā)。
寒霜引擎的特色是可以運(yùn)作龐大而又有著豐富細(xì)節(jié)的游戲地圖,可以利用較低的系統(tǒng)資源渲染地面、建筑、雜物的全破壞效果。寒霜引擎能夠?yàn)檫h(yuǎn)景提供精細(xì)的模型和貼圖,為游戲中的晝夜更迭、遠(yuǎn)方的地平線提供逼真的效果,且較合理地分配系統(tǒng)資源,不會(huì)占用過大的內(nèi)存,深受游戲開發(fā)者的青睞。
(三)Unity3D
Unity3D是由丹麥Unity公司開發(fā)的游戲開發(fā)工具,作為一款跨平臺(tái)的游戲開發(fā)工具,從一開始就被設(shè)計(jì)成易于使用的產(chǎn)品[3]。它使用了PhysX的物理引擎,支持JaveScript、C#、Boo腳本,還可使用插件。Unity包含了功能強(qiáng)大的游戲引擎。它可以支持所有平臺(tái)、具有先進(jìn)的延遲照明系統(tǒng)、頂級的光照貼圖技術(shù)、引入了腳本調(diào)試、應(yīng)用范圍廣泛等出色功能使它不僅在游戲行業(yè),也在建筑業(yè)、醫(yī)療成像和其他領(lǐng)域被廣泛地使用。
Unity的擴(kuò)展,為很多行業(yè)帶來了廣泛利益,如產(chǎn)品生成模擬,建筑漫游,軍事訓(xùn)練,醫(yī)療培訓(xùn)和直覺反應(yīng)測試等。
(四)虛幻引擎
虛幻引擎是全球領(lǐng)先的游戲開發(fā)商和引擎研發(fā)商Epic Games的核心產(chǎn)品。最新的開發(fā)版本是虛幻引擎4,但目前市面上大多數(shù)游戲的開發(fā)還是使用虛幻引擎3開發(fā)。虛幻引擎3是一套為DirectX9/ 10 PC、Xbox 360、PlayStation 3平臺(tái)準(zhǔn)備的完整的游戲開發(fā)構(gòu)架,提供大量的核心技術(shù)陣列、內(nèi)容編輯工具,支持高端開發(fā)團(tuán)隊(duì)的基礎(chǔ)項(xiàng)目建設(shè)[4]。虛幻引擎3具有較高的易用性,特別在數(shù)據(jù)生成和程序編寫的方面十分方便,游戲美工可以在可視化環(huán)境中非常便利地開發(fā)游戲的多個(gè)數(shù)據(jù)資源,而不需要依賴程序員的協(xié)助;虛幻引擎3還能夠?yàn)槌绦騿T提供一個(gè)先進(jìn)的應(yīng)用程序框架,它具有良好的可擴(kuò)展性,常用于測試和發(fā)布各種不同類型的游戲。
1.程序特點(diǎn)
在虛幻引擎中為了讓游戲開發(fā)的程序員們能夠更好地進(jìn)行編寫,提供了3個(gè)非常具體的編寫實(shí)例和百分之百開放的源代碼、編輯器、Max/Maya的輸出插件,以及一些公司內(nèi)部開發(fā)游戲所使用的游戲代碼。
虛幻的游戲播放腳本語言提供了許多自動(dòng)化的原數(shù)據(jù),供游戲開發(fā)人員參考和使用。引擎不僅可以兼容多種文件格式,還允許游戲的關(guān)卡、任務(wù)編輯人員在編輯器中直接察看游戲腳本的內(nèi)容、屬性并直接進(jìn)行修改。
虛幻引擎3提供了統(tǒng)一化的編碼標(biāo)準(zhǔn),適用于PC機(jī)的匯編及可以支持的下一代控制平臺(tái),所有游戲開發(fā)所需要的內(nèi)容和數(shù)據(jù)文件都能在這些可以支持的控制平臺(tái)中兼容。這樣可以極快地增強(qiáng)開發(fā)的內(nèi)容和數(shù)據(jù)在轉(zhuǎn)化和測試工作中的效率。
2.渲染效果
它具有64位色高精度動(dòng)態(tài)渲染管道,提供了完美的顏色精度,并且支持如景深、光暈等各種后期特效。同時(shí)支持幾乎所有基于像素的光照與渲染效果,如光線衰減函數(shù)、采用預(yù)計(jì)算的陰影遮罩技術(shù)、虛擬貼圖。其支持的所有陰影技術(shù)都是可視化的,并且可以按照美工的意愿自由混合。所以角色能夠在虛幻引擎3中使用陰影技術(shù)產(chǎn)生動(dòng)態(tài)的軟陰影。
虛幻引擎3擁有強(qiáng)大的材質(zhì)系統(tǒng),使得美工可以在實(shí)時(shí)圖形化界面中建立任意復(fù)雜的實(shí)時(shí)Shader,材質(zhì)框架是模塊化的,程序員不僅可以加入新的Shader程序,還可以隨意加入Shader組件與其他組件連接,從而實(shí)現(xiàn)Shader代碼的動(dòng)態(tài)合成。
采用了剛體物理系統(tǒng),支持游戲者和游戲中的物體、布娃娃角色動(dòng)畫以及復(fù)雜碰撞等物體交互方式,能夠賦予物體一定的質(zhì)量、形狀等特性,從而獲得逼真的力學(xué)動(dòng)態(tài)效果。在虛幻引擎3提供的編輯工具UnrealEd中內(nèi)建可視化物理建模工具,能夠?qū)ξ矬w的屬性進(jìn)行實(shí)時(shí)修改,包括游戲者控制、人工智能和網(wǎng)絡(luò)。在地圖編輯方面,使用了利用高度圖直接生成地表高度的地圖編輯器,可以對不同的地面層進(jìn)行不同的材質(zhì)融合,使得地形變化豐富,美術(shù)的制作效率更高。《半條命2》、《Pain Killer》等著名游戲均采用了這個(gè)物理引擎,才取得了驚艷的效果。
3.動(dòng)畫系統(tǒng)
動(dòng)畫系統(tǒng)包括4個(gè)部分:
(1)混合控制器,對動(dòng)畫物體進(jìn)行多路混合。
(2)數(shù)據(jù)驅(qū)動(dòng)控制器,主要是封裝動(dòng)畫數(shù)據(jù),不管是采用動(dòng)作捕捉還是手工制作的。
(3)物理控制器,與剛體動(dòng)態(tài)引擎相連接,以便游戲者和NPC對力的物理響應(yīng)。
(4)過程動(dòng)畫控制器,通過C++或UnrealScript實(shí)現(xiàn)一些特性,比如讓一個(gè)NPC的頭部和眼睛跟蹤一個(gè)在關(guān)卡中行走的游戲者,或使一個(gè)角色根據(jù)健康情況和疲勞度作出不同動(dòng)作等。
4.游戲性系統(tǒng)
豐富的多級別AI系統(tǒng),設(shè)計(jì)者使用可見的AI腳本工具創(chuàng)建復(fù)雜的交互性游戲設(shè)定,例如游戲者目標(biāo),通用的游戲事件觸發(fā)器和交互式過場動(dòng)畫。
三維聲源位置設(shè)置多普勒效應(yīng),多普勒效應(yīng)是指當(dāng)發(fā)聲物體在運(yùn)動(dòng)時(shí),聲音的音調(diào)會(huì)隨著物體移動(dòng)速度而改變其高低——聲音頻率的變化,這個(gè)原理也被運(yùn)用在聲卡3D發(fā)聲原理之中。
在UnrealEd中的可視化音效工具可以為聲音設(shè)計(jì)者提供對音效的全面控制,包括聲音強(qiáng)度、順序、循環(huán)、過濾、調(diào)制、變調(diào)和隨機(jī)化。聲音參數(shù)被從代碼中分離開,使設(shè)計(jì)者可以控制所有的與游戲、過場動(dòng)畫和動(dòng)畫序列相關(guān)的聲音。
5.網(wǎng)絡(luò)及聯(lián)機(jī)
引擎的互聯(lián)網(wǎng)架構(gòu)和局域網(wǎng)架構(gòu)很好地支持PC機(jī)及各種操作平臺(tái),支持不同操作平臺(tái)之間的聯(lián)機(jī)對戰(zhàn)。
虛幻引擎底層游戲網(wǎng)絡(luò)傳輸是基于UDP的并能夠?qū)⒖煽亢筒豢煽總鬏敺绞浇Y(jié)合,來對游戲感進(jìn)行優(yōu)化,即使在低帶寬和高延遲的環(huán)境下也能保證游戲的速度和性能。
6.UnrealED內(nèi)容創(chuàng)建工具
Uneral編輯器(UnrealEd)是一個(gè)“所見即所得”的數(shù)據(jù)生成工具,它對游戲?qū)ο笕缬螒蛘摺PC、物品、光源的可視化放置與編輯等,帶有完全的實(shí)時(shí)預(yù)覽。它還包含一個(gè)數(shù)據(jù)驅(qū)動(dòng)的編輯框架,允許關(guān)卡設(shè)計(jì)者自定義任何游戲?qū)ο?允許程序員通過腳本使用新的自定義的屬性。其編輯界面如圖1所示。
圖1 Uneral編輯器
虛幻引擎3被作為一個(gè)可以在PC和下一代家用游戲主機(jī)上編譯的統(tǒng)一的代碼基礎(chǔ)。所有游戲組件和數(shù)據(jù)文件都可以在各種平臺(tái)上兼容,便于在PC上代碼和資源的快速周轉(zhuǎn),在家用機(jī)和PC上進(jìn)行游戲測試等。
總的來說,虛幻引擎3是一個(gè)非常優(yōu)秀的引擎,占有全球商用游戲引擎近80%的市場份額。它提供的功能非常先進(jìn),幾乎融合了目前頂級顯卡中提供的所有功能,在這樣的技術(shù)背景下,這款引擎帶來了非常絢麗的效果,其制作的作品的畫面足以震撼每一位觀眾。
一個(gè)游戲能否給消費(fèi)者帶來盡可能完美的感官上的享受成為一個(gè)游戲能否獲得成功的最基本的因素。對于游戲中最為流行的3D游戲來講,開發(fā)游戲的難度是隨著游戲容量不斷攀升的。如何能夠迅速的開發(fā)出一個(gè)高質(zhì)量的游戲就成為業(yè)界十分關(guān)注和討論的熱點(diǎn),而采用游戲引擎和游戲內(nèi)容分離的方式是目前最好的一種解決方案。作為游戲中的靈魂,游戲引擎的成功與否將決定一系列游戲的最終效果,這也是游戲引擎開發(fā)在行業(yè)供不應(yīng)求的根本原因。虛幻引擎3在目前的商業(yè)游戲引擎中仍占有舉足輕重的地位,依然是游戲開發(fā)商進(jìn)行游戲開發(fā)特別是第一、第三人稱動(dòng)作、射擊游戲開發(fā)的不二選擇。
[1]穆 俊.計(jì)算機(jī)游戲設(shè)計(jì)原理以及游戲引擎的設(shè)計(jì)思想[J].硅谷,2014,(3).
[2]倪泰樂.使用游戲引擎制作動(dòng)畫的方法研究,新聞研究導(dǎo)刊[J],2015,(10).
[3]李 雷,張俊楷.談Unity游戲開發(fā)教學(xué)改革與實(shí)施對策[J],時(shí)代教育,2015,(7).
[4]李 強(qiáng).基于游戲引擎技術(shù)的三維動(dòng)畫的制作研究,科技展望[J],2014,(21).
(責(zé)任編輯:魏樹峰)
A Brief Introduction to the Game Engine Technology
CHEN Li-ping
(Bengbu Medical College,Bengbu 233000,China)
The roles,functions and classifcation of the game engine are introduced.The Unreal 3 Game Engine is presented,which provides good reference for game developers.
game engine;Unity3D;unreal;virtual reality
TP391.41
A
2016-06-11
陳麗萍(1974-),女,安徽祁門人,工程師,研究方向:計(jì)算機(jī)信息管理、數(shù)字媒體技術(shù).E-mail:mingyang80@163.com.
安徽電子信息職業(yè)技術(shù)學(xué)院學(xué)報(bào)2016年4期