虛幻引擎的游戲邏輯開發(fā)提供了兩種方式,一種是用C++切威,另一種是用虛幻獨(dú)有藍(lán)圖( 可視化腳本系統(tǒng))伍宦。當(dāng)然在好多的游戲開發(fā)當(dāng)中是C++和藍(lán)圖兩種方式結(jié)合使用,但是對于沒有C++基礎(chǔ)的童鞋也可以只通過藍(lán)圖就可以完成游戲邏輯的實(shí)現(xiàn)啃憎。
什么是藍(lán)圖
虛幻引擎中的藍(lán)圖可視化系統(tǒng)是一個(gè)完整的游戲腳本系統(tǒng)芝囤,其理念是使用基于節(jié)點(diǎn)的界面從虛幻編輯器中創(chuàng)建游戲可玩性元素,該系統(tǒng)非常靈活且非常強(qiáng)大辛萍,因?yàn)樗鼮樵O(shè)計(jì)人員提供了一般僅供程序員使用的所有概念及工具悯姊。它是一種特殊類型的資源,為關(guān)卡設(shè)計(jì)師和游戲開發(fā)人員提供了一種在編輯器中快速創(chuàng)建及迭代游戲可玩性的工具贩毕。
藍(lán)圖的用法
藍(lán)圖系統(tǒng)是完全繼承在虛幻4引擎中的悯许,有專門的藍(lán)圖編輯界面。當(dāng)你開始創(chuàng)作一個(gè)藍(lán)圖的時(shí)候辉阶,一般會(huì)指定什么時(shí)候執(zhí)行邏輯先壕,要執(zhí)行什么樣的邏輯。什么時(shí)候執(zhí)行是通過事件節(jié)點(diǎn)來指定谆甜,執(zhí)行什么樣的邏輯是通過你按照想要的邏輯方式把各種需要的節(jié)點(diǎn)連接在一起來表達(dá)垃僚。其中的連線有兩種類型,一種是用來指定執(zhí)行流程(流程控制線)规辱,一種是用來指定數(shù)據(jù)的傳遞(數(shù)據(jù)傳遞線)谆棺。
如下圖在事件節(jié)點(diǎn)“Event BeginPlay”處拉出一跟流程控制線,連接到函數(shù)節(jié)點(diǎn)“Print String”上罕袋,則是指定了要在游戲開始或該藍(lán)圖創(chuàng)建時(shí)(事件節(jié)點(diǎn)“Event BeginPlay”的功能)執(zhí)行輸出字符串(函數(shù)節(jié)點(diǎn)“Print String”的功能)的邏輯改淑。然而要輸出怎么樣的字符串則有下面的數(shù)據(jù)傳遞線來輸入,這里用了一個(gè)提供兩個(gè)浮點(diǎn)數(shù)相加功能的函數(shù)節(jié)點(diǎn)實(shí)現(xiàn)對100.0和200.0兩個(gè)浮點(diǎn)數(shù)相加炫贤,并把相加結(jié)果(浮點(diǎn)數(shù))輸出溅固,最后提供給函數(shù)節(jié)點(diǎn)“Print String”。但是函數(shù)節(jié)點(diǎn)“Print String”接收的是String類型的數(shù)據(jù)兰珍,所以用了一個(gè)類型轉(zhuǎn)換的節(jié)點(diǎn)把浮點(diǎn)數(shù)結(jié)果轉(zhuǎn)換為字符串以后再輸入到函數(shù)節(jié)點(diǎn)“Print String”侍郭。仔細(xì)的同學(xué)可能發(fā)現(xiàn)了圖中有三個(gè)函數(shù)節(jié)點(diǎn),有一個(gè)有白色的可以連接流程控制線的引腳,另外兩個(gè)則沒有亮元,這是因?yàn)楹瘮?shù)節(jié)點(diǎn)有純函數(shù)和非純函數(shù)兩種猛计,具體的區(qū)別在此處就不展開了(以后的文章中詳細(xì)講解)。圖中這些節(jié)點(diǎn)都是虛幻引擎已經(jīng)提供的爆捞,當(dāng)然我們也可以按照我們的需求來自定義這些節(jié)點(diǎn)以擴(kuò)張藍(lán)圖系統(tǒng)可實(shí)現(xiàn)的功能奉瘤,所以從這個(gè)層面來說藍(lán)圖可以實(shí)現(xiàn)任何的游戲邏輯,我們當(dāng)然就可以只用藍(lán)圖就開發(fā)出我們的游戲(邏輯部分)煮甥。