讓我們繼續(xù)學(xué)習(xí)吧念搬。
關(guān)于藍(lán)圖系統(tǒng)
現(xiàn)在我們的香蕉已經(jīng)有模有樣了咏花,但是如果把它放置在一個(gè)上旋轉(zhuǎn)會(huì)更有意思迹冤。而要?jiǎng)?chuàng)建一個(gè)轉(zhuǎn)臺(tái)操刀,我們需要用到藍(lán)圖棚壁。
用最簡單的話來首陆赋,藍(lán)圖代表著一個(gè)”事物“轧膘。我們可以用藍(lán)圖來創(chuàng)建游戲?qū)ο蟮亩ㄖ苹袨榘芨弧S螒驅(qū)ο罂梢允菍?shí)物(比如轉(zhuǎn)臺(tái))讥此,也可以是某種抽象的概念拢锹,比如健康系統(tǒng)。
想要設(shè)計(jì)一輛會(huì)飛的汽車嗎暂论?用藍(lán)圖吧面褐。想要設(shè)計(jì)一個(gè)飛豬?用藍(lán)圖吧取胎。想要一個(gè)發(fā)光的貓咪展哭?用藍(lán)圖吧。
和材質(zhì)類似闻蛀,藍(lán)圖使用的也是基于節(jié)點(diǎn)的系統(tǒng)匪傍。這就意味著使用藍(lán)圖系統(tǒng)開發(fā)要做的就是創(chuàng)建節(jié)點(diǎn),然后在節(jié)點(diǎn)之間創(chuàng)建關(guān)聯(lián)觉痛,不需要寫一行代碼~役衡!
注意:如果你是個(gè)代碼狂魔,那么當(dāng)然可以選擇使用C++薪棒。
而且在虛幻4的4.18版本中手蝎,使用藍(lán)圖創(chuàng)建的游戲是可以轉(zhuǎn)化為C++代碼的。
盡管藍(lán)圖用起來很貼心很方便俐芯,但是在執(zhí)行效率上當(dāng)然是不如C++代碼的棵介。所以如果我們需要用到某種復(fù)雜的算法,那么就必須考慮使用C++吧史。
但即便你是個(gè)代碼狂魔邮辽,那么也仍然可以考慮使用藍(lán)圖系統(tǒng),大不了兩個(gè)一起用嗎贸营。
小編推薦大家加一下這個(gè)群:594353854 群里已經(jīng)幾百人了 大家遇到啥問題都會(huì)在里面交流吨述!而且免費(fèi)分享零基礎(chǔ)入門資料 開發(fā)資料一整套!是個(gè)非常好的學(xué)習(xí)交流地方钞脂!也有程序員大神給大家熱心解答各種問題揣云!很快滿員了。欲進(jìn)從速哦冰啃!各種PDF等你來下載邓夕!全部都是免費(fèi)的哦肋层!只為幫助大家快速入門,所以小編在群里等你們過來一起交流學(xué)習(xí)呢翎迁!
使用藍(lán)圖系統(tǒng)有以下的好處:
(1)通常來說栋猖,使用藍(lán)圖開發(fā)要比C++快。
(2)藍(lán)圖更便于項(xiàng)目的組織汪榔。我們可以把節(jié)點(diǎn)很方便的分隔成不同的區(qū)域蒲拉,比如功能和graph。
(3)如果你是個(gè)3D美術(shù)設(shè)計(jì)人員痴腌,
或者需要跟3D美術(shù)設(shè)計(jì)人員密切合作雌团,那么使用藍(lán)圖系統(tǒng)會(huì)更便于修改項(xiàng)目。
通常來說士聪,建議大家使用藍(lán)圖系統(tǒng)來創(chuàng)建對(duì)象锦援。當(dāng)我們需要用到比較復(fù)雜的算法,或者需要提升運(yùn)行效能時(shí)剥悟,可以將其轉(zhuǎn)換為C++代碼灵寺。
打開項(xiàng)目
在上一課的內(nèi)容中我們已經(jīng)保存了項(xiàng)目。因此区岗,當(dāng)需要重新打開項(xiàng)目時(shí)略板,首先還是打開Epic Games Launcher,然后點(diǎn)擊Launch按鈕打開引擎慈缔。
等待加載完成后叮称,會(huì)看到類似下面的界面:
點(diǎn)擊Open即可打開項(xiàng)目。此時(shí)你會(huì)看到我們之前的游戲場景不見了藐鹤,只有在Content Browser中雙擊打開FirstMap才能進(jìn)入游戲場景瓤檐。
為了方便起見,我們可以對(duì)項(xiàng)目做一點(diǎn)設(shè)置娱节。點(diǎn)擊工具欄上的Setting挠蛉,選擇Project Settings,
在打開的新界面中括堤,從左側(cè)選擇Maps&Modes碌秸,然后在Default Map處將Editor Startup Map和G
ame Default Map右邊的屬性選擇為FirstMap绍移,也就是我們?cè)谏弦徽n中所保存的游戲場景悄窃。關(guān)閉虛幻編輯器,從Epic Games Launcher中重新打開引擎蹂窖,然后打開項(xiàng)目轧抗,就會(huì)自動(dòng)打開之前所創(chuàng)建的游戲場景了。
創(chuàng)建藍(lán)圖
在虛幻4引擎中切換到Content Browser瞬测,然后點(diǎn)擊Add New横媚,從列表中選擇Blueprint Class纠炮。
此時(shí)會(huì)彈出一個(gè)窗口,提示讓我們選擇藍(lán)圖的父類灯蝴。關(guān)于父類和繼承的概念恢口,我們會(huì)在后面詳細(xì)介紹,這里只需要知道穷躁,當(dāng)我們選擇某一種父
類后耕肩,藍(lán)圖系統(tǒng)將繼承該父類的所有變量、函數(shù)和組件问潭。在繼續(xù)之前猿诸,建議大家仔細(xì)閱讀以下每個(gè)父類的描述。
注意狡忙,對(duì)于Actor,Pawn和Character來說梳虽,Character繼承自Pawn,而Pawn又繼承自Actor。此外灾茁,Player Controller也繼承自Actor窜觉。
簡單來說,Pawn北专,Character和Player Controller也是Actor竖螃。
考慮到我們這里要添加的轉(zhuǎn)臺(tái)會(huì)在游戲場景中的固定位置,Actor類顯然最合適逗余。因此我們?cè)谶@里選擇Actor特咆,并將新的藍(lán)圖類命名為Banana_Blueprint。
最后录粱,雙擊Banaba_Blueprint打開這個(gè)藍(lán)圖文件腻格。
如果你看到的是類似下面的界面,那么請(qǐng)點(diǎn)擊Open Full Blueprint Editor啥繁,
完全狀態(tài)下的藍(lán)圖編輯器如下圖所示
其中各個(gè)區(qū)域的作用如下:
1.Components區(qū):
包含了當(dāng)前組件的列表菜职。
虛幻4中的組件和Unity3d中的組件有一定的類似之處,但又有一定的區(qū)別旗闽。
2.My Blueprint區(qū):
這個(gè)部分用于慣例藍(lán)圖中的graph酬核,函數(shù)和變量。我們可以按住鼠標(biāo)右鍵不放适室,拖動(dòng)鼠標(biāo)以平移嫡意,也可以通過鼠標(biāo)滾輪來縮放視圖。
3.Graph區(qū):
該部
分是藍(lán)圖系統(tǒng)的精華所在捣辆。這里會(huì)顯示藍(lán)圖中所有的節(jié)點(diǎn)和邏輯機(jī)制蔬螟。
當(dāng)然,要注意此時(shí)我們選擇的是Event Graph
4.Details區(qū):
該部分用于顯示所選擇項(xiàng)目的具體屬性
5.Viewport區(qū):
當(dāng)我們?cè)谶x項(xiàng)卡上選擇的是Viewport汽畴,那么就可以看到帶有視覺元素的所有組件旧巾。我們可以使用和主編輯器類似的操作在移動(dòng)和查看視覺元素耸序。
創(chuàng)建轉(zhuǎn)臺(tái)
想要?jiǎng)?chuàng)建轉(zhuǎn)臺(tái),我們需要兩個(gè)部分:底座和display。我們可以使用組件來創(chuàng)建這兩個(gè)部分鲁猩。
什么是組件坎怪?
如果把藍(lán)圖系統(tǒng)比喻成一輛車,那么組件就是組成車的各種零部件廓握,比如車門芋忿、車輪和引擎都是組件的例子。
不過組件并不局限于實(shí)際的物體疾棵。
舉例而言戈钢,為了讓汽車移動(dòng),我們需要添加一個(gè)移動(dòng)組件是尔。為了讓汽車飛行殉了,我們又需要添加一個(gè)飛行組件。
學(xué)過Unity3d的朋友可能會(huì)對(duì)其中的組件系統(tǒng)有一定的了解拟枚。雖然和虛幻4中的組件系統(tǒng)有一定的差異薪铜,但大致的作用是類似的。
添加組件
如果我們需要查看組件的可視化元素恩溅,那么就需要切換到Viewport視圖隔箍。點(diǎn)擊Viewport選項(xiàng)卡以切換到該視圖。
注意:DefaultSceneRoot組件在游戲運(yùn)行的時(shí)候并不會(huì)顯示脚乡,它只會(huì)顯示在編輯器中蜒滩。
轉(zhuǎn)臺(tái)包含了兩個(gè)組件:
(1)Cylinder:
一個(gè)簡單的白色圓柱體,它將構(gòu)成底座奶稠。
(2)Static Mesh:
該組件將顯示香蕉的模型
為了添加底座俯艰,讓我們?cè)谒{(lán)圖編輯器中找到Components面板,點(diǎn)擊Add Component锌订,然后選擇Cylinder竹握。
此時(shí)在Viewport視圖中可以看到多了一個(gè)圓柱體。
當(dāng)然現(xiàn)在它的高度有點(diǎn)超出預(yù)期辆飘,我們需要把它變得扁平一點(diǎn)啦辐。按下鍵盤上的R鍵,然后把圓柱體的高度降低蜈项,具體的尺寸大小不是那么的重要芹关,因?yàn)槲覀兒罄m(xù)隨時(shí)都可以繼續(xù)調(diào)整。
現(xiàn)在該是添加模型的時(shí)候了战得。
返回Components面板充边,左鍵單擊空白區(qū)庸推,以取消選中Cylinder組件常侦。這樣確保我們所添加的下一個(gè)組件不會(huì)關(guān)聯(lián)到Cylinder組件上浇冰。
注意:
如果你不這么做,那么所添加的下一個(gè)組件就會(huì)關(guān)聯(lián)到Cylinder組件上聋亡。這就意味著所添加的新組件將繼承Cylinder組件的比例肘习。因?yàn)槲覀冊(cè)?jīng)調(diào)整過圓柱體的比例,那么新添加的組件比例也會(huì)被調(diào)整坡倔。
接下來漂佩,點(diǎn)擊Add
Component,從列表中選擇Static Mesh罪塔。
為了顯示香蕉投蝉,需要選中Static Mesh組件,然后在Details面板中點(diǎn)擊Static Mesh右側(cè)的下拉列表征堪,然后選擇Banana_Model瘩缆。
接下來需要把香蕉移動(dòng)到合適的位置。按下鍵盤上的W鍵佃蚜,然后把香蕉向上移動(dòng)到合適的位
置庸娱。
點(diǎn)擊藍(lán)圖編輯器工具欄上的Compile按鈕和Save按鈕,以保存所做的修改谐算。
好了熟尉,現(xiàn)在我們已經(jīng)在藍(lán)圖中添加了所需的視覺元素。
在下一課的內(nèi)容中洲脂,我們將學(xué)習(xí)如何讓轉(zhuǎn)臺(tái)旋轉(zhuǎn)斤儿。