今天要和大家介紹的是有關Unreal Engine 4 中的核心功能「Blueprint藍圖」。
那什麼是藍圖呢? 我們可以理解為「積木式編程語言」。
積木式編程語言的好處在於只需要懂一些物件導向觀念,邏輯判斷就可做出一個小系統。
對於純Code苦手的小夥伴們可說是一大神器呀~
那TDAT接下來要和大家分享的是70個初心者要懂的Blueprint Node!

1.Print string node,位於 BP分類「Utilities」→「String
」
此node雖然遊戲中用不到,但對於Bug測試可以起到化腐朽為神奇的功效。
粉紅色的String變數用於接受需要列印的String,
第一個紅色的bolean變數用來選擇是否將String列印到螢幕上,
第二個紅色的bolean變數用於選擇是否將此次列印輸出到Log裡,
藍色的變數用於調整列印String的顏色,
最下面的浮點變數決定列印的內容將會在螢幕上停留多少秒 。
它的功能是將你所做的UI呈現到螢幕上,它會根據UI的原始尺寸平鋪到螢幕上。
User Widget類型輸入變數需要連接你需要的UMG控制項藍圖,
你可以通過add 一個你的UMG控制項藍圖的變數來使它更加靈活。不過在這之前你必須先用create node生成它。
下面的整型變數為它的“優先順序”意思就是當多個UI直接重疊時他會覆蓋在“優先順序”低的上面
如果你不想讓血條出現在遊戲功能表裡面,請設置這一項。
3.Delay node位於 BP分類「Untilities」→
「Flow Control」內
這個 node非常實用,它的作用是延遲。
浮點的輸入變數用於決定延遲的秒數。
4.Event tick,位於BP分類「Add Event」內
每一幀都會執行一次。
輸出的浮點數則是當前遊戲的MS值
MS:網路延遲,越低越好
總之這是一個非常常用的 node,但要限制使用它的次數。
因為每一幀都執行計算會較大的耗費電腦的記憶體。
遊戲開始時它將被執行一次,
注意它被執行的時間在函數檢索之後。
如果用在除關卡藍圖或遊戲控制器藍圖之外的一般藍圖,
需要將其放置在場景中才可以被使用。
6.Possess node位於BP分類「Pawn」內
用於人物之間的切換。
如果在遊戲中你死亡的話,你首先需要生成一個「Pawn屍體」。
然後使用此 node附身上去,最後銷毀自己本來的「Pawn屍體」實現復活功能。

上面的遊戲控制器變數需要輸入你當前的遊戲控制器,
下面的Pawn變數,則是你需要附身的「Pawn屍體」。
整個過程你可以理解為,將一個舊玩偶的操作器拿下來,接到另一個沒有操作器的新玩偶上。
當然,你可以使用此 node,附身到任何關卡上存在的pawn上。
它只存在於伺服器之中,當然,如果遊戲是單機則無需考慮此項。
一般此 node與Spawn Actor
node一同使用,詳情請見
7.Un possess node,位於BP分類「Pawn」內
它的功能是將遊戲控制器與「pawn」之間斷開連接(鎖鏈)。
僅此而已,它同possess node一樣,並不會刪掉原有的「pawn」。
如果你沒將輸入寫進遊戲控制器裡面,而是直接寫進了「pawn」裡面
那麼此時視角將無法移動,因為遊戲控制器已經與此「pawn」斷開連接了。
遊戲控制器變數輸入當前正在使用的controller,通常用get player controller來獲取。
它用於刪除場景中已經存在的Actor,因為pawn是Actor的子類。
所以此 node也可以刪除人物,可以與possess node搭配使用。
此 node會徹底刪除掉場景中的Actor並立即釋放記憶體。
也可以使Actor的子類。
9.Detach from Controller Pending Destroy node位於BP分類「Pawn」內
它的功能與un possess node類似,不同的是unpossess node的輸入值是控制器,
二者在功能上並沒有什麼本質上的差別,
都是使控制器與所控制的「pawn」斷開連接。
「Flow Control」內
它的作用我想在整個程式設計世界都佔有重要位置,
它是一個判斷式。
比如:這個事件是True嗎?
如果是True的,就走上面這條路,
如果不是True的,就走下面那條路。
在你覺得有必要走那條判斷的時候,直接控制開關就行了。
快捷鍵:於藍圖區中按住鍵盤B鍵後滑鼠點擊左鍵。
它用來判斷所輸入的遊戲控制是否是存儲在本地端的。
根據我的實驗,在正常模式下它始終返回為True。
在多人模式下伺服器會返回True,並且返回False。而用戶端則返回為True。
我據此推測在多人模式下伺服器會單獨分成兩部分,
一部分是純伺服器(看不到),另一部分類似與用戶端,
儘管它倆全都顯示的名字是(伺服器)
這就可以解釋為什麼會有三個返回值輸出。
「User Interface」→「Animation」內
它的作用就是判斷UI的控制項藍圖裡面你自己製作的UI Animation是不是處於播放狀態,如果在播放UI Animation,它會返回True。
上面的User widget引用輸入,用來確定需要判斷的是哪個控制項藍圖。
如果想得到上面的引用,請先使用create node生成目標控制項藍圖,如果沒有事先生成,你將無法得到上面的變數。(如果你將此 node存放在控制項藍圖內則保持預設即可,同時在其他藍圖裡設置生成這個控制項藍圖。)
如果想得到下面的引用,請直接將此 node存放在控制項藍圖內,這樣可以直接引用UI Animation的變數。(因為我發現UI Animation似乎無法被其他藍圖引用?這只是我的一個猜測)
如果你想創建一個UI Animation,請在控制項藍圖裡找Animation窗口,並創建Animation。
「User Interface」→「Animation」內
它的功能與Is Animation Playing node相似,這兩個 node存放的位置也相同。
你可以使用它來判斷所輸入的「控制項藍圖變數」是否正在播放UI Animation,如果在播放,就返回True。
與Is Animation Playing node不同的是,
此 node判斷的是控制項藍圖內所有的UI Animation,如果你的UI Animation
很多的話建議使用Is Animation Playing node。但此 node更具靈活,打破了UI Animation變數無法在其他藍圖引用的缺點。
因此,此 node可以再控制項藍圖以外的地方使用,並輸出結果與Is Animation Playing node相同。
同樣的是你需要事先生成這個「控制項藍圖」(用create node)。
14.ause Animation node位於BP分類
「User Interface」→「Animation」內
它的作用是在播放UI Animation的過程中另其暫停。
上面的User widget引用輸入,用來確定需要判斷的是哪個控制項藍圖。
右邊的浮點輸出值為:暫停前已播放的UI Animation的時間(秒)。
同樣的是你需要事先生成這個「控制項藍圖」(用create node)。
「User Interface」→「Animation」內
它的作用是播放指定的UI Animation。
User widget引用輸入,用來確定需要判斷的是哪個控制項藍圖。
同樣的是你需要事先生成這個「控制項藍圖」(用create node)。
Start at Time浮點類型的輸入變數,用於輸入你想在第幾點幾秒以後播放UI Animation(默認為0)
Num Loops to Play整型的輸入變數,用於輸入你想播放幾遍相同的UI Animation,當值為0時為迴圈播放。
Play Mode枚舉類型的輸入變數,下面下拉清單的選項分別為
→Forward(正方向播放)
→Reverse(反方向播放)
→Ping Pong(先正再反)
「User Interface」→「Animation」內
它與Play Animation node的功能極其相似。其功能請參照Play Animation node。
與之不同的是此 node多了一個浮點類型的輸入變數,(End at Time)。
我覺得是Play Animation node的升級版,它可以限定播放UI Animation的範圍,而不是直接播放全部,儘管Play Animation node
已經擁有限定開始時間的功能了。
個人理解: node功能多,所需要執行的效率就越低。所以推薦使用Play Animation node,而不是此 node。
「User Interface」→「Animation」內
它的功能是反方向播放所選定的UI Animation。
(我認為這個 node非常的沒用,因為Play
Animation node已經擁有相同且更為高級的功能了)
不過我認為它的效率一定要高於Play Animation node
上面的User widget引用輸入,用來確定需要反向播放的是哪個控制項藍圖。
用來確定需要反向播放的UI Animation。
同樣的是你需要事先生成這個「控制項藍圖」。 (用create node)。
18.Set Num Loops to Play node位於BP分類「User Interface」→「Animation」內
它的功能是給播放的UI Animation設置播放次數,當整形變數為零時迴圈播放。
此 node更像Play
Animation node功能的一個Branch。它的功能與其完全一樣。
上面的User widget引用輸入,
用來確定需要播放的是哪個控制項藍圖。
用來確定需要播放的UIAnimation。
同樣的是你需要事先生成這個「控制項藍圖」(用create node)。
19.Stop Animation node位於BP分類
「User Interface」→「Animation」內
它的作用是停止播放中的UI Animation。
它與Pause Animation node的功能類似,不過他並沒有輸出變數。
下面的In Animation引用輸入,用來確定需要停止播放的UI Animation。
同樣的是你需要事先生成這個「控制項藍圖」(用create node)。
「Utilities」→「Key」內
它的功能用於顯示所輸入的Object因為在虛幻4裡Object是所有藍圖的基類(頭)。
所以它可以用於輸出任何藍圖的名稱並轉換成String。
你可以用Print String node將它顯示出來。
這個功能通常用於測試項目,
比如你想知道是誰被碰撞了,誰被撿起了。
另外如果需要應用此 node必須應用所輸入的藍圖。如果是“Actor”你必須將其拖拽到關卡中,以便此 node使用。
或者利用個別 node的輸出充當此 node的輸入。
它的功能同樣是顯示藍圖類的名字,
你會發現它與上一個 node只有輸入變成了紫色。
你可以直接通過下拉清單選擇你需要輸出名字的「Class」
你會發現此 node可以選擇比另一個更多的東西。而前面的僅限「Asset」
具體有什麼樣的差別,可以通過兩個 node的下拉清單更清楚的看到。
可能你找到的是append array。
它的作用是將兩個Array合併,意思就是把下面的Array複製一份,按順序填加進上面Array的末尾。
同時下面的Array保持不變~
首先,你要懂得什麼是Array, Array是很多相同變數的組合,
比如玩家清單就是一堆String的組合。它記錄了很多玩家的名字
它的功能是打亂Array的順序,
此 node並不會對Array內的變數做出改變。
Array內的變數們也是有自己的順序和編號的;
比如
-----------Array = 「第一個」,「第二個」,「第三個」
-----------其中,「第一個」編號為0,「第二個」編號為1,「第三個」編號為2
此 node會打亂這個順序~~
Array打亂順序也是一個程式設計基礎的功能,這個是永久打亂。
25.Resize node位於BP分類「Utilities」→「Array」內
它的功能是設置Array的長度。
node採用多退少補的原則,Array輸入為需要設置的Array,不限種類。
(大家不要以為這個 node只能整形Array用哦)
當Array內部的變數個數(這裡用元素個數代替),小於所設置的整形個數,則在Array的最末尾補足所設置的整型數。
(自動補充的元素的值全部預設為零,需要重新設置;如果是booleanArray。默認為False)
當Array元素個數,大於所設置的整形個數,則 node將自動刪掉多餘的元素。
你也可以將整型值設置為負數,那樣不會有任何變化。
此 node通常用於在不知道將要有多少資料使用時,首先設置一個峰值,以免溢出。
它用來判斷所選Array一共有幾個元素(變數)。
因為電腦數數是從“0”開始的,所以右側的整型輸出值會比正常個數少一個。
如果你想知道一個房間裡到底有幾個玩家,就可以用到這個 node。
Array這類 node如果用到好可以做到化腐朽為神奇的功能。
其次,Array也分一維,二維,三維,
(由於個別情況使用方便給Array弄出等級)
就像家譜一樣,和類的繼承有點相似,如果你要記錄棋盤上的棋子。這時一維Array(正常Array)就顯得捉襟見肘了,因為你不知到一個棋子它具體的編號(因為棋子是一個平面),如果用一維Array可能
棋子=58
如果用二維Array就可以~
棋子=【6】【4】(第六行第四個)
這樣你就可以更直觀的直接知道你選定的棋子的Array編號了。
我認為多維Array僅僅説明編寫者分清楚而已,他們本質是一樣的。
通常只用到三維,再往上就沒什麼必要了。
27.Contains ltem node位於BP分類「Utilities」→「Array」內
它的作用是檢查Array裡有沒有這個元素(變數)。
上面的是需要檢查的Array。
下面是輸入需要檢查的元素。
如果Array裡面有這個元素,就輸出True,如果沒有就輸出False。
當然,你也可以引入一個變數來充當所需要判斷的元素。
28.Find item node位於BP分類「Utilities」→「Array」內
它的作用是查找所選元素存在於Array的第幾個位置(當然也是減一的)
上面的輸入用於檢測需要判斷的Array。
下面的輸入用於輸入需要判斷的元素。
如果輸入的元素不存在於Array之中,那麼返回-1(這個功能和contains node重複)
如果輸入的元素在Array裡有多個則按照Array元素的順序0,1,2,3......來。
首先被檢測到的元素返回編號。直接停止向下面的檢測~~
也就是說如果
Array = 【“野”,“格”,“炸”,“彈”,“棒”】
他們的編號分別是0,1,2,3,4
如果我檢測“Yee”則直接返回-1。
29.remove index node位於BP分類
「Utilities」→「Array」內
它的作用是指定編號,刪除Array裡的元素。
上面的輸入用於檢測需要刪除元素的Array。
下面的整型輸入用於輸入需要刪除的元素編號。
如果被刪除的元素不是最後一個元素,則將後面的元素統一向前移動一個單位。
相當於把一張牌從一堆牌中抽走,
剩下的牌會自動覆蓋在原來的牌之上。
Array node有的是輸入Array的元素編號,
有的是直接輸入元素值,使用前請注意。
它的功能是,在Array內刪除指定的元素。
上面的輸入用於檢測需要刪除元素的Array。
下面的輸入用於輸入需要刪除的元素。
同樣,它也會檢測這個元素在沒在這個Array裡面,
如果刪除成功boolean值將會返回True,刪除失敗(Array裡沒有這個元素)則返回False。
當你指定的元素被發現在Array裡存在多個相同的元素時,也一併刪除。
它的作用是輸出所選Array的長度。
讓人哭笑不得的是此 node輸出的內容是從1開始計算的......
而last index node是從0開始計算的,所以其結果正好比此 node少1。
此 node不太會用到,鑒定完畢。
它的功能是在所選Array的最後add 一個元素。
上面的輸入用於檢測需要add 元素的Array。
下面的輸入用於輸入需要add 的元素。
右側的整型輸出的是所add 的元素所在的編號,(也就是說Array的元素個數)
如果有一個玩家上線了,就把玩家清單裡的元素add 一個。
你想這個新元素存在什麼位置都行,
但經過我實驗,你必須輸入原有最大編號以內的數值
(超出這個數會沒有任何反應,我也不知道為啥)
第一個輸入想要add 變數的Array。
第二個輸入想要add 的元素變數。
第三個輸入想要add 的位置。
Array = 【“a”,“b”,“c”,“d”,“e”】
它的編號為 0,1,2,3,4
這時我add 一個編號為2的元素“g”
所以原本的2,3,4就向後移了一位變成了
Array = 【“a”“b”“g”,“c”,“d”,“e”】
「Utilities」→「Array」內
它的作用是add 所輸入的元素(變數)到數值。
不過他用了一個更為特別的方法,此 node會檢測Array裡存不存在所輸入的元素變數。
如果沒有,就在Array的末尾add 這個元素(變數)
另外,如果add 成功的話則輸出此元素的編號
(如果你不知道你想獲取的元素是第幾號,就請不要用這個 node)。
藍圖 node裡面也有很多以「get」開頭的 node,他們的作用都是獲取東西
他們的輸出值可以像微血管似得,將藍圖直接連接的更為緊密。
它的作用是將Array的元素,按照編號的順序,一項一項的不間斷輸出,俗稱「遍歷」。
眾所周知,Array是由很多元素組成的,但是,你沒有辦法將很多的元素同時列出。
電腦只會按照順序將Array裡的所有元素依次輸出,這個過程很快,你可能無法感覺到,不過他們的確是有順序的(這裡忽略時間)。
我想把玩家清單全部列印到螢幕上面,首先此 node會找到第一個玩家輸出,然後回去再尋找第二個玩家,再輸出。
並依次進行,直到最後一個元素被輸出才結束(這叫迴圈)
(你甚至可以弄個上百萬元素的Array,這對電腦來說就是幾秒的事)
左邊輸入需要(遍歷)迴圈輸出的Array。
右邊的LoopBoby(不管這個 node工作完不完成,直接開啟下一個)
completed(在遍歷結束時調用)
Array
index(依次輸出上面所輸出來的變數的編號)
「Utilities」→「Array」內
它的作用是ForEachLoop node的升級版,
你會發現它比ForEachLoop node多了一條輸入。
這條輸入可以隨時停止遍歷,不過我覺得沒麼用,
其一,你不知道是遍歷Array快,還是連接這個輸入的 node快(沒准你想停下的時候人家早就遍歷完了)
它的功能是通過輸入的變數組合出一個Array來。
你可以通過點擊右下角的加號來add 一個輸入
(你還可以刪掉多餘的輸入,滑鼠懸浮在輸入變數上面右鍵,可以刪除)
當然,你也可以僅通過一個變數就生成一個Array。
生成後Array的順序也與之前左側的輸入順序一致
另外add 一個小知識:如果你正在測試,可以將變數node處點擊右鍵,「Watch This Value」可以輕鬆查看變數的值,方便測試。
它的作用有點特別。
首先你向Array裡add 了一個元素,(按照所輸入的編號位置)
那麼此位置上原有的元素將被刪除,替換成你所給定的元素。
其次,他還有一個功能,你注意到了那個紅色的boolean了嗎?當你將它點為“True”的時候。
如果你填寫的編號在超出了Array的長度,則依然add 這個元素,然後 node會自動幫你補齊中間的編號,(這些補齊的元素為預設值)
(如果你沒有使這個boolean為True,則不會有自動填充的功能,如果超出了Array的長度則沒有反應)
另外填寫負值也是沒有反應的。
如果你勾選boolean值變數就會擁有resize
node的功能。
「Utilities」→「Array」內
下面的紫色的node輸入你想查找的Actor。
(注意,你輸入的就是過濾之後剩下的,而不是將紫色輸入的過濾掉)
你可能疑惑,為什麼紫色的明明是藍圖類,為啥可以被當成Atcor來篩選呢?
你會發現在下拉清單中,不符合Actor類的藍圖全部都不見了。
我也是弄了挺長時間才弄明白這個 node的意思。
你的輸入Array的類型也變成了Actor,作為輸出的Array,它已經被刪去了多餘的元素,只剩下你所選的那個紫色的Actor元素。
它的功能是給予Actor使用按鍵的許可權。
有另一個對應的node「Disable Input」取消Actor使用按鍵的許可權。
通常,能用按鍵觸發的藍圖只有關卡藍圖和控制器藍圖。在其他藍圖你用按鍵是沒有任何反應的。當然,你還是必須事先將其丟進場景裡面。
此 node的上面輸入需要按鍵功能的Actor藍圖,通常用「self」自己。(哪裡用放哪裡,就無需管它)
下面是控制器
(我覺得是需要獲取控制器使用按鍵的許可權吧)
一般也用get player controller來連接。
所以「self」可以代替改類,也就是該藍圖。
「Components」→「Activation」內
這並不意味著它會刪除掉這個元件。
像是暫停鍵一樣,不同的元件連接它所顯示的效果各不相同。
小人保持一個動作像一個小丑,因為你的Animation藍圖是在Mesh裡面設置的。
其實應該還有很多效果沒有顯示出來。只要是所連接元件的功能全部被停止了,
如果你連接攝像機元件,你會發現攝像機失效了。等等…...
總之,它的功能就是暫停元件,如果你希望遊戲世界的時間停止可以用此node。
你會發現非常非常多的此 node,他們負責將類型轉換到名字上面寫到的藍圖類上。
這邊的藍圖可選太多,TDAT挑只其中一個做為參照。
首先,為什麼要使用這個功能;有些功能是個別藍圖特有的,比如關卡藍圖與控制器藍圖就具有輸入按鍵的權利。
其實你也可以使用Enable Input node來使其他藍圖類也擁有這個功能,不過這不是這個node的重點。
(另外說一句,變數通常只能在本藍圖生效,引用只有在Actor放置到場景中才能被其他藍圖使用。)
當然你得實現將變數設置為全域變數才行(點開小眼睛)
類型轉換只能是轉換到所連接的輸入端的子類才能成功,如果你需要這個藍圖類裡面的變數,你可以通過Get node獲取的它的父類引用。
這個過程叫做藍圖的通訊,稍後我還會介紹另外幾種通訊方法,他們是藍圖的微血管。
右側有一個cast failed,意思是轉換失敗時調用,這也意味著此 node不會一直成功,這取決於
連接的輸入端是不是他的父類,如果你想知道某 node的輸出到底是什麼(比如碰撞檢測,碰到Actor與Pawn的輸出絕對不是一樣的)。
我一發子彈打到了石頭上,將石頭這個輸出的引用連接到此 node的輸入上(比如你想給怪物減血)那麼就會轉換失敗。
因為石頭類不是怪物類的父類。(這是模糊的一個使用方法)
(明確的使用方法就是直接用Get node獲取到它的父類,這會一直成功,而不用管cast failed輸出了。)
右下的引用輸出在成功轉換後會開始輸出,這就可以為所欲為的使用此 node代表的藍圖類裡面的一切了。
「Math」→「Vector」內
大家知道金黃色變數代表向量型資料,你可以把向量理解成在空間裡一條帶箭頭的直線。
最原始的時候這條線的起點就是0,0,0(也就是你點擊一下Actor出現的坐標軸的那個點)
當你創建一個向量類型的變數後,你可以改變這個座標,
於是從原點,到達你輸入的點,二者連線,之間的長度就是此 node的輸出值。
向量型變數還可以將它顯示3D控制項,在場景中生成一個小菱形體以便確定位置,你可以把值調為原點來仔細揣摩一下上述的意思。
(當然前提是你需要點一下小眼睛把這個變數暴露出來)。
這個長度就叫做向量的(膜長),高中的數學知識。它可以用在遊戲裡測量距離,在官方實例Example
Content中Blueprints_Advanced關卡裡有一個會變長的籬笆,就是應用了向量的知識。
它的功能是輸入一個浮點型,將其四捨五入變成一個整型。
總之不要忽視它的用途,
其實這個 node非常有用。
「Rendering」→「Material」內
作用:設置某StaticMesh(靜態網格體)的某個材質通道的材質
目標:要設置的StaticMesh(靜態網格體)
Element Index:目標如果是多維材質,指定要設置哪個通道
Material:可以是基本材質,也可以是材質實例
作用:第一次輸入則輸出A,第二次輸入則輸出B。
Is A:如果輸出的是A則返回True,否則返回False。
作用:給骨架網格物體播放Animation。
目標:要設置的骨架網格物體(人物模型)
New Anim to Play:設置Animation序列(可以是Animation蒙太奇)(可以是混合空間)。
人物Animation主要還是Animation藍圖,個別用的少的動作可以用此 node。
Animation蒙太奇是Animation加聲音或特效,做技能用。
混合空間用於多個Animation混合,可以讓Animation不會那麼生硬。
49.Get actor transform node位於BP分類
「Utilities」→「Transformation」內
作用:獲取Actor的3D變換(Transform)一個橙色的變數。
這個橙色的變數是一個「結構體」,它包含了Actor的位置,旋轉,縮放。
如果你想單獨修改其中一個值請先將其用break node打開,修改後再用make node裝好。
「Components」→「Timeline」內
此 node一共有五個一樣的,分別為不同目標使用。
作用:將時間軸引用設置為迴圈。
時間軸一般用於靜態網格物體,如果需要此 node的功能,我覺得是風吹在旗子上,旗子會一直飄動。
(因為旗子不會停下來,所以需要此 node設置一下)。
「Components」→「Timeline」內
同樣,他也有很多名字相同的 node。
52.Stop node位於BP分類
作用:使時間軸立即停止(不是返回原點)
53.Play node位於BP分類「Components」→「Timeline」內
作用:讓處於停止狀態的時間軸恢復播放(可以與stop node搭配使用)。
停止和恢復時間軸的搭配使用是一個很有意思的效果。
54.Reverse node位於BP分類「Components」→「Timeline」內
作用:反向播放時間軸。
(從使用那一刻開始立即反向播放,而不是跳到最後再反向播放)
「Components」→「Timeline」內
功能:從被使用的那一刻起,讓時間軸跳到最末尾,然後反向播放它。
「Components」→「Timeline」內
功能:從頭開始播放時間軸。
不過我認為這個功能並不是很常用。
57.Set new time node位於BP分類
「Components」→「Timeline」內
作用:發射一條射線用於檢測碰撞。
Start:這條射線的起始位置。
End:這條射線的結束位置。(兩點確定一條直線)
Trace Channel:用於檢測的東西是什麼類型。
「visibility」可見的,
「camera」相機。
Trace Complex:是否檢測複雜的碰撞
Actors to Ignore:這個一個Array,用於忽略檢測其中的Actor。
Draw Debug Type:這條射線的狀態
下拉清單內選項分別為:
「none」不顯示射線,
「for one frame」只顯示一瞬間射線,
「for duration」根據最下方的浮點值確定顯示射線的時間,
「persistent」一直顯示這條射線。
Ignore Self:檢測的時候忽略檢測自身。
Trace Color:未檢測之前那段的顏色
Trace Hit Color:檢測到之後的那段顏色
Draw Time:僅僅Draw Debug
Type為「for duration」值時可用。
Out Hit:檢測的輸出,如果沒有則為空,這個結構體包含相當多的東西。
Return Value:如果檢測到符合要求的就輸出True,沒有檢測到就輸出False。
它與LineTraceByChannel node的功能一樣,都是射線檢測。
不同的是Trace Channel的枚舉變成了Object Types的枚舉Array。
我覺得兩者之間的差別在於,所檢測的物件不同。
你可以看到此 node上的物件已經變成了Array,意思是同時可以檢測多種,而前者只能同時檢測一種,且二者檢測的種類也發生了變化,因為我也不是很明白,所以不能對枚舉的每個詞彙代表的意思做出正確的解釋。
這就可以解釋為啥創建一個枚舉,只需依次寫入名稱就行了,不用管其他的東西,因為其他的東西全是在函數裡面定義的。
「Components」→「Timeline」內
不過兩個boolean值實在不知道幹啥用的。
「Components」→「Timeline」內
作用:設置時間軸的長度,(只能在執行時間軸之前使用,另外設置的長度還必須比原本的低)。
總之不會常用。
作用:設置時間軸定義長度的方法。
TL Last Key Frame----以0到最後一個關鍵幀為True實播放長度。
「Components」→「Timeline」內

作用:判斷所選時間軸是不是在播放狀態,如果是,返回True。
64.Is reversing node位於BP分類
「Components」→「Timeline」內

作用:判斷所選時間軸是不是在反向播放,如果是,返回True。
「Components」→「Timeline」內
66.Get timeline length node位於BP分類
「Components」→「Timeline」內
作用:輸出時間軸的長度,返回幾秒。
作用:獲取時間軸當前播放到第幾秒,取到小數點後六位。
「Utilities」→「Flow
Control」內
作用:按一定順序調用右側的代碼。
Reset重置,當所有代碼被執行後如果沒有設置迴圈執行,則需要此輸入設置重置。否則只執行一輪。
Loop,是否迴圈調用。
Start Index,首次執行哪一條。
「Utilities」→「Flow
Control」內
Target:需要替換的Mesh元件,一般直接引用 藍圖即可,類型會自動轉換成Mesh元件。
New Mesh:想替換成什麼模型。
Return Value:如果成功則輸出True,一般都會
成功。(我沒有遇到過輸出False的時候)
※成功替換後可能會失去材質※
「Math」→「Random」內
作用:在最小值與最大值之間取隨機值,並輸出。



































































































































講解詳細,圖文並茂,感謝分享,努力學習中
回覆刪除非常感謝!
回覆刪除感謝~很詳細
回覆刪除太感謝了!
回覆刪除