虚幻4蓝图快速入门(二)
藍(lán)圖用戶指南
由于藍(lán)圖就是個(gè)可視化的腳本系統(tǒng),那么一個(gè)程序語言中的基本概念也就都存在。下面我們簡單來介紹下藍(lán)圖中的一些基本概念。
變量
概述
Variables(變量) 是存放一個(gè)值或引用世界中的一個(gè)Object或Actor的屬性。這些用戶界面 內(nèi)部訪問,或者通過設(shè)置使得可以在外部進(jìn)行訪問, 以便應(yīng)用放置在關(guān)卡中的藍(lán)圖實(shí)例的設(shè)計(jì)人員可以修改它們的 值。
?
變量顯示為圓角方框,方框內(nèi)包含了變量的名稱:
變量類型
您可以創(chuàng)建各種類型的變量,包括數(shù)據(jù)類型的變量(比如布爾型、整型及浮點(diǎn)型)及用于存放類似于Object、Actor及特定類的引用型變量。 您還可以創(chuàng)建每種變量類型的數(shù)組。每種變量類型都進(jìn)行了顏色編碼,以方便識別。
藍(lán)圖數(shù)組
和變量值一樣,藍(lán)圖也可以在數(shù)組中存儲數(shù)據(jù)。如果您不熟悉編程術(shù)語,您可以把數(shù)組想象成為存在于一個(gè)單元中的一組變量。
?
數(shù)組僅能存放一種類型的值。比如,布爾型數(shù)組僅可以存放布爾值。
?
數(shù)組變量包含一個(gè)3x3 的帶顏色網(wǎng)格,表明它們是數(shù)組,不是正常的變量。在沒有連接的數(shù)組中,其網(wǎng)格的中心是黑的。一旦連接后,整個(gè)網(wǎng)格將會可見,如下所示。
數(shù)組索引
同時(shí)需要注意的一點(diǎn)是,數(shù)組中的值的索引值是 從0開始的 ,這意味著第一個(gè)索引是 0 而不是1。
流程控制
概述
Flow Control (流程控制)使得能在藍(lán)圖中清楚地控制執(zhí)行的流程。 此種控制可以多種形式進(jìn)行,基于某些值為真的情況來選擇圖表的某個(gè)分支來執(zhí)行,多次執(zhí)行某個(gè)特定分支,以特定順序執(zhí)行多個(gè)分支,等等。 默認(rèn)的流程控制操作包括了分支(if語句),循環(huán)(for和while語句),門,及序列。
開關(guān)節(jié)點(diǎn)
開關(guān)節(jié)點(diǎn)讀取數(shù)據(jù)輸入,并會基于該輸入值來從匹配的(或可選的默認(rèn))執(zhí)行輸出中發(fā)送執(zhí)行流程。 可用的開關(guān)有以下幾種類型: Int (整型),String (字符串型), Name (名稱型),以及 Enum (枚舉型)。
?
一般而言,開關(guān)節(jié)點(diǎn)會根據(jù)其估算的數(shù)據(jù)類型擁有執(zhí)行輸入以及數(shù)據(jù)輸入。 輸出均為執(zhí)行輸出。 Enum 開關(guān)會自動從 Enum 屬性中生成輸出執(zhí)行引腳,而 Int, String 及 Name 開關(guān)擁有可自定義的輸出執(zhí)行引腳。
程序中的switch關(guān)鍵字,但是它支持更多的類型。
標(biāo)準(zhǔn)流程控制節(jié)點(diǎn)
這些節(jié)點(diǎn)提供了一系列方法來控制執(zhí)行的流程
Branch
在面對單個(gè) True/False 判定的情況下,Branch(分支)節(jié)點(diǎn)是一種創(chuàng)建基于判斷的流程的簡單方式。 在執(zhí)行后,分支節(jié)點(diǎn)會查找附加的布爾變量的輸入值,并在合適的輸出節(jié)點(diǎn)下方來輸出執(zhí)行脈沖值。其實(shí)就是if-else分支。
DoN
DoN節(jié)點(diǎn)將會 N 次觸發(fā)執(zhí)行脈沖。 在達(dá)到限制后,它將會停止所有的輸出執(zhí)行,直到脈沖被傳入其 Reset (重置)輸入。
?
例如,您可以啟動車輛20次,然后在綁定到 Reset (重置)輸入的加油事件被激活前,無法再次啟動車輛。
DoOnce
DoOnce節(jié)點(diǎn)-正如名稱所顯示的-將會僅僅觸發(fā)執(zhí)行脈沖一次。 在之后,它將會停止所有的輸出執(zhí)行,直到脈沖被傳入其 Reset (重置)輸入。 該節(jié)點(diǎn)等同于DoN節(jié)點(diǎn)中 N = 1 的情況。
?
我們舉例來說,您可以對一扇開啟的門的節(jié)點(diǎn)網(wǎng)絡(luò)設(shè)置DoOnce,這樣這扇門將僅僅開啟一次。 不過您可以綁定一個(gè)觸發(fā)事件到Reset(重置)輸入,這樣會導(dǎo)致在觸發(fā)器被激活時(shí),門會再次打開。
FlipFlop
FlipFlop節(jié)點(diǎn)取入執(zhí)行輸出并在兩個(gè)執(zhí)行輸出間切換。 其第一次被調(diào)用時(shí),將會輸出A。 第二次被調(diào)用時(shí),將會輸出B,然后再是A,然后又是B,循環(huán)往復(fù)。 該節(jié)點(diǎn)同時(shí)有布爾變量輸出,使您可以追溯輸出A何時(shí)被調(diào)用。
ForLoop
ForLoop節(jié)點(diǎn)的工作原理等同于標(biāo)準(zhǔn)的代碼循環(huán),將會在開始和結(jié)束之間的每個(gè)索引觸發(fā)執(zhí)行脈沖。就是C++中的for循環(huán)可視化版本。
ForLoopWithBreak
ForLoopWithBreak節(jié)點(diǎn)包含了能中斷循環(huán)的輸入引腳,除此之外,它運(yùn)行的方式與ForLoop節(jié)點(diǎn)非常相似。
Gate
Gate(門)節(jié)點(diǎn)用來開啟和關(guān)閉執(zhí)行流。 簡單來說,Enter輸入取入執(zhí)行脈沖,同時(shí)門的當(dāng)前狀態(tài)(開啟或關(guān)閉)將會決定這些脈沖是否從Exit輸出中傳出。
MultiGate
MultiGate取入單個(gè)數(shù)據(jù)脈沖并將其傳送到任意數(shù)量的潛在輸出。 這個(gè)過程隨機(jī)按順序發(fā)生,可能會循環(huán)
Sequence
Sequence (序列)節(jié)點(diǎn)使得單個(gè)執(zhí)行脈沖能按順序觸發(fā)一系列事件。 節(jié)點(diǎn)可能有任意數(shù)量的輸出,所有的輸出引腳都會在序列節(jié)點(diǎn)一獲得輸入時(shí)就被調(diào)用。 它們將總是按順序被調(diào)用,但不會有任何延遲。 對一般用戶來說,輸出引腳看起來好像被同時(shí)觸發(fā)了一樣。
WhileLoop
只要特定值為 true ,則WhileLoop節(jié)點(diǎn)將會輸出一個(gè)結(jié)果。 在循環(huán)的每個(gè)迭代中,它會查看其輸入布爾值的當(dāng)前狀態(tài)。 一旦它讀取到 false ,該循環(huán)中斷。
函數(shù)
Functions(函數(shù)) 是屬于特定 藍(lán)圖 的節(jié)點(diǎn)圖表,該節(jié)點(diǎn)圖表可以執(zhí)行或者從 藍(lán)圖 中的另一個(gè) 圖表中進(jìn)行調(diào)用。函數(shù)具有一個(gè)單一的入口點(diǎn),由和該函數(shù)具有相同名稱的一個(gè)節(jié)點(diǎn)指定, 該節(jié)點(diǎn)包含了一個(gè)單一的執(zhí)行輸出引腳。當(dāng)從另一個(gè)圖表調(diào)用函數(shù)時(shí),會激活該輸出執(zhí)行引腳, 促使執(zhí)行連接網(wǎng)絡(luò)。
訪問修飾符
當(dāng)創(chuàng)建函數(shù)時(shí),您可以指定可以訪問及不能訪問這些函數(shù)的其他對象。這可以通過設(shè)置 Access Specifier(訪問修飾符) 屬性來完成,該屬性可以在選中函數(shù)的 詳細(xì)信息 面板中找到。跟C++中一樣,有Public Protected Private三種類型。
純函數(shù)和非純函數(shù)
函數(shù)可以是 純函數(shù) 也可以是 非純函數(shù) 。主要的區(qū)別是純函數(shù)不會以任何方式修改狀態(tài)或者類的成員, 而非純函數(shù)可以自由地修改狀態(tài)。純函數(shù)一般用于 getter 函數(shù) 或者僅輸出一個(gè)數(shù)據(jù)值的操作符。
非純函數(shù)必須通過在事件圖表中將執(zhí)行線連接到函數(shù)調(diào)用節(jié)點(diǎn)來顯式地執(zhí)行。 非純函數(shù)通過使用以下這些方式之一進(jìn)行指定:
- 在代碼中定義的函數(shù)的函數(shù)聲明中指定 BlueprintCallable 關(guān)鍵字。
- 將通過 藍(lán)圖編輯器 添加的函數(shù)的 Pure(純函數(shù)) 復(fù)選框保留為未選中狀態(tài)。
純函數(shù)連接到數(shù)據(jù)引腳上,當(dāng)需要依賴于純函數(shù)的數(shù)據(jù)時(shí),編譯器會自動地執(zhí)行這些函數(shù)。這意味著 對于每個(gè)連接到純函數(shù)上的節(jié)點(diǎn),都會調(diào)用一次純函數(shù) 。純函數(shù)通過使用以下這些方式之一進(jìn)行指定:
- 在代碼中定義的函數(shù)的函數(shù)聲明中指定 BlueprintPure 關(guān)鍵字。
- 選中通過 藍(lán)圖編輯器 添加的函數(shù)的 Pure(純函數(shù)) 復(fù)選框。
創(chuàng)建函數(shù)
在藍(lán)圖中創(chuàng)建函數(shù)
在 Graph(圖表) 模式,從 My Blueprint(我的藍(lán)圖) 選卡下,點(diǎn)擊New Function (新建函數(shù))按鈕。
在藍(lán)圖接口中創(chuàng)建函數(shù)
在 Blueprint Interface(藍(lán)圖接口) 中創(chuàng)建函數(shù)同在 Class Blueprint(類藍(lán)圖) 或 Level Blueprint(關(guān)卡藍(lán)圖) 中創(chuàng)建函數(shù)一樣,但是實(shí)現(xiàn)是有很大差別的。
在 Graph(圖表) 模式,從 My Blueprint(我的藍(lán)圖) 選卡下,點(diǎn)擊New Function (新建函數(shù))按鈕。
編輯函數(shù)
一旦創(chuàng)建了函數(shù),您就需要定義其功能。這個(gè)過程需要兩步:
- 創(chuàng)建必要的輸入和輸出參數(shù)
- 在您的輸入和輸出之間創(chuàng)建節(jié)點(diǎn)網(wǎng)絡(luò)來定義函數(shù)行為。
調(diào)用函數(shù)
一旦您創(chuàng)建并定義了您的函數(shù)后,就可以在您的事件圖表中調(diào)用它。要想創(chuàng)建一個(gè)調(diào)用您的函數(shù)的節(jié)點(diǎn):
- 從 我的藍(lán)圖 選卡中拖拽您的函數(shù)到事件圖表內(nèi)的空白處
- 在事件圖表中右擊,或者從適當(dāng)?shù)膱?zhí)行引腳或數(shù)據(jù)引腳拖拽鼠標(biāo)來打開關(guān)聯(lián)菜單。在關(guān)聯(lián)菜單中搜索您的函數(shù),然后選中它來添加函數(shù)調(diào)用節(jié)點(diǎn)。
轉(zhuǎn)載于:https://www.cnblogs.com/ghl_carmack/p/5922190.html
總結(jié)
以上是生活随笔為你收集整理的虚幻4蓝图快速入门(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 家庭装修中,什么时候需要无极调光呢?
- 下一篇: 瓦南中心村没产证能买房吗