耿富成
摘 要 本文以人工智能(AI)引擎與游戲場(chǎng)景設(shè)計(jì)及優(yōu)化為主要研究目標(biāo),對(duì)優(yōu)化游戲場(chǎng)景搭建技巧進(jìn)行闡述,并分析AI引擎在3D角色游戲中的設(shè)計(jì)思路。通過(guò)復(fù)雜、高效的AI引擎,將游戲中那種更為飽滿(mǎn)、真實(shí)的角色行為創(chuàng)造出來(lái),以此不斷提升角色游戲中玩家和智能角色的互動(dòng)。
【關(guān)鍵詞】AI引擎 3D 角色游戲 場(chǎng)景設(shè)計(jì)
iPhone平臺(tái)游戲、Android平臺(tái)游戲及網(wǎng)頁(yè)游戲等在近些年迅猛發(fā)展,并逐漸成為對(duì)發(fā)展游戲具有帶動(dòng)作用的新生力量。但是,當(dāng)今很多游戲都處于宣傳攻勢(shì)重于游戲內(nèi)容品質(zhì)的境況,而且玩家在游戲體驗(yàn)過(guò)程中,會(huì)逐漸提升對(duì)游戲操控性與沉浸感需求?;谶@種現(xiàn)象,使得3D游戲逐漸成為國(guó)內(nèi)游戲主要發(fā)展方向。
1 游戲場(chǎng)景的設(shè)計(jì)
在開(kāi)發(fā)游戲時(shí),貼圖和模型的合理搭建能夠?qū)㈧披惖挠螒驁?chǎng)景提供給玩家,以此提升游戲本身意境,并將游戲主題突出出來(lái)。所以,怎樣快速搭建貼圖和模型,確保游戲運(yùn)行暢通是在設(shè)計(jì)游戲過(guò)程中亟待研究與解決的重要問(wèn)題。
1.1 搭建游戲場(chǎng)景規(guī)范
一般通過(guò)Unity3D技術(shù)對(duì)場(chǎng)景中像地形、草木等基本對(duì)象進(jìn)行直接搭建,但對(duì)于游戲中裝飾性物品與主要角色等,必須從3D建模軟件中導(dǎo)入。對(duì)游戲場(chǎng)景進(jìn)行搭建時(shí),首先要對(duì)游戲環(huán)境予以創(chuàng)建,然后放置物品或者角色。Unity3D在默認(rèn)狀態(tài)下的單位為1,一般會(huì)通過(guò)修改應(yīng)用程序以與該比例相匹配,由此在資源放置時(shí)就會(huì)比較簡(jiǎn)單。
本游戲通過(guò)Maya建模,面片數(shù)要保證為32500個(gè)Polygon 面片,若大于該數(shù)量,那么物體就無(wú)法顯現(xiàn),所以應(yīng)該對(duì)模型與多邊形數(shù)量進(jìn)行合理分布。在制作完成一個(gè)三維模型后,其內(nèi)容主要包括單位、場(chǎng)景尺寸、節(jié)點(diǎn)編輯、命名、紋理、模型歸類(lèi)、紋理格式及尺寸、坐標(biāo)及材質(zhì)等一定要與相關(guān)制作規(guī)范相符。
1.2 優(yōu)化游戲貼圖
作為游戲開(kāi)發(fā)平臺(tái),Unity3D模型材質(zhì)通常會(huì)有很多特殊性需求,并非Maya中所有材質(zhì)球Unity3D都支持,Unity3D只支持像Lambet、Blin等標(biāo)準(zhǔn)材質(zhì),且還要保證貼圖尺寸為2n,貼圖尺寸最大值要在1024×1024以?xún)?nèi),烘焙過(guò)程中,對(duì)TGA格式紋理貼圖進(jìn)行設(shè)置。渲染優(yōu)化時(shí),應(yīng)該對(duì)遮擋剔除技術(shù)進(jìn)行選用,也就是說(shuō),如果其它物體遮擋該物體,且在攝像機(jī)鏡頭外,那么不會(huì)對(duì)其實(shí)施渲染。運(yùn)行遮擋剔除是用虛擬攝像機(jī)在場(chǎng)景中將物體潛在可視狀態(tài)創(chuàng)建出來(lái),以此進(jìn)一步提升游戲運(yùn)行質(zhì)量。
2 基于3D角色游戲中AI引擎的設(shè)計(jì)研究
2.1 構(gòu)建游戲AI引擎框架
2.1.1 游戲中非玩家角色的動(dòng)作控制
非玩家角色在游戲中的主要行為包括巡邏、待機(jī)、逃跑及攻擊等,每個(gè)行為下的動(dòng)畫(huà)表現(xiàn)都有所不同,以程序的方式對(duì)游戲角色動(dòng)作進(jìn)行控制。依照游戲引擎本身特性,于游戲角色模型中綁定角色動(dòng)作。此外,角色模型導(dǎo)出設(shè)置中,對(duì)游戲動(dòng)畫(huà)選項(xiàng)進(jìn)行設(shè)置后,再在3D引擎中導(dǎo)入,在一定條件下,采用程序控制的方式對(duì)動(dòng)畫(huà)剪輯進(jìn)行播放,以此控制角色動(dòng)作。
2.1.2 狀態(tài)機(jī)反應(yīng)機(jī)制
首先對(duì)AI引擎智能進(jìn)行分析:在一定范圍內(nèi),游戲AI角色巡邏,對(duì)周邊環(huán)境進(jìn)行掃視,以觀察周邊有玩家入侵與否,有時(shí)可立于原地,若無(wú)外界條件觸發(fā)則為空閑待機(jī)狀態(tài),但若在其可視范圍內(nèi)有玩家,則會(huì)主動(dòng)攻擊,圍攻玩家,以此對(duì)玩家造成傷害,如果其生命力比較低,則會(huì)自動(dòng)逃跑。根據(jù)AI角色表現(xiàn),能夠獲得AI角色的狀態(tài)及其相互轉(zhuǎn)換。
Idle 狀態(tài):該狀態(tài)為空閑狀態(tài),在平靜狀況下的基本狀態(tài)。如果無(wú)條件觸發(fā),AI角色在一段時(shí)間后就會(huì)自動(dòng)轉(zhuǎn)入Idle狀態(tài)。
Attack 狀態(tài):該狀態(tài)為攻擊狀態(tài),具體是攻擊出現(xiàn)在其視野中的玩家,對(duì)其造成傷害。如果AI角色生命力比較低,就會(huì)自動(dòng)向Escape狀態(tài)(即:逃跑狀態(tài))轉(zhuǎn)換,如果玩家在其可視范圍外,則會(huì)自動(dòng)向Patrol狀態(tài)(即:巡邏狀態(tài))轉(zhuǎn)換。
2.2 基于3D角色游戲的AI引擎尋路算法
通過(guò)特定尋路算法幫助游戲角色尋路,也就是說(shuō),根據(jù)某種規(guī)則對(duì)從起始點(diǎn)到終點(diǎn)的路徑進(jìn)行計(jì)算。本文主要分析WayPoint尋路算法,并具體應(yīng)用于角色游戲中。該尋路算法具體是將若干個(gè)路徑點(diǎn)(waypoint)進(jìn)行標(biāo)記,采用矢量線(xiàn)連接各路徑點(diǎn),確保游戲AI角色可以在某種規(guī)律下沿路徑線(xiàn)自動(dòng)尋路??墒止ぴO(shè)置這些路徑點(diǎn),也可程序自動(dòng)生成。路徑點(diǎn)尋路時(shí),游戲場(chǎng)景中,需要獲取任意兩點(diǎn)路徑,可以從目標(biāo)點(diǎn)與起始點(diǎn)各取一個(gè)路徑點(diǎn),對(duì)這兩個(gè)路徑點(diǎn)最短距離進(jìn)行計(jì)算,以此將目標(biāo)點(diǎn)與起始點(diǎn)最優(yōu)路徑計(jì)算出來(lái),這就是角色行走路徑。游戲角色在到達(dá)目標(biāo)點(diǎn)后,必須在其視野中可看到下一最優(yōu)路徑點(diǎn),由此就能夠在最優(yōu)路徑中進(jìn)行自由活動(dòng)。
3 總結(jié)
本研究分析與探討了基于3D角色游戲的游戲場(chǎng)景布置與AI引擎的設(shè)計(jì)與優(yōu)化。采用三維建模軟件實(shí)施建模后,對(duì)游戲場(chǎng)景于Unity3D中進(jìn)行優(yōu)化,結(jié)合AI引擎關(guān)鍵技術(shù)、制作過(guò)程及游戲半身,確保能夠在游戲中將游戲玩家與職能角色對(duì)抗效果充分體現(xiàn)出來(lái),整個(gè)游戲主線(xiàn)是任務(wù)關(guān)卡形式,因此要合理設(shè)計(jì)游戲非玩家角色,必須通過(guò)程序?qū)€(gè)性化敵人進(jìn)行設(shè)計(jì),以確保游戲具有真實(shí)性、挑戰(zhàn)性以及可玩性,這對(duì)3D角色游戲的設(shè)計(jì)與實(shí)現(xiàn)極具重要參考價(jià)值。
參考文獻(xiàn)
[1]JACOBS,S.Game programming gems7[M].北京:人民郵電出版社,2010:191-151.
[2]MARK DELOURA.Game programming gems1[M].北京:人民郵電出版社,2010:208-219.
[3]倪樂(lè)波,戚鵬,遇麗娜等. Unity3d 產(chǎn)品虛擬展示技術(shù)的研究與應(yīng)用[J].數(shù)字技術(shù)與應(yīng)用,2010(9):54-55.
[4]FUNGE J D.Artificial intelligence for computer games[M].北京:北京郵電大學(xué)出版社,2007:158-159.
作者單位
西安理工大學(xué)大學(xué) 陜西省西安市 710048endprint