藍(lán)圖篇
目錄
藍(lán)圖基礎(chǔ)邏輯
知識(shí)點(diǎn)1:藍(lán)圖是可視化編程
知識(shí)點(diǎn)2:藍(lán)圖是面向?qū)ο蟮木幾g型可視化編程語言
知識(shí)點(diǎn)3:關(guān)卡藍(lán)圖和藍(lán)圖類的區(qū)別
知識(shí)點(diǎn)4:藍(lán)圖數(shù)據(jù)類型
知識(shí)點(diǎn)5:節(jié)點(diǎn)的介紹
知識(shí)點(diǎn)6:引腳的介紹
知識(shí)點(diǎn)7:節(jié)點(diǎn)的執(zhí)行順序
知識(shí)點(diǎn)8:節(jié)點(diǎn)的類型
知識(shí)點(diǎn)9:節(jié)點(diǎn)的注釋
知識(shí)點(diǎn)10:添加小白人第三人稱來操作
藍(lán)圖可視化編程——開關(guān)門互動(dòng)實(shí)現(xiàn)
節(jié)點(diǎn)1:OnActorBeginOverLap
節(jié)點(diǎn)2:OnActorEndOverLap
節(jié)點(diǎn)3:時(shí)間軸
創(chuàng)建門的藍(lán)圖類——Actor和組件的區(qū)別、門和軸心點(diǎn)修改
節(jié)點(diǎn):旋轉(zhuǎn)
藍(lán)圖可視化編程——按鍵實(shí)現(xiàn)開關(guān)門
節(jié)點(diǎn)1:
藍(lán)圖可視化編程——鼠標(biāo)點(diǎn)擊實(shí)現(xiàn)開關(guān)門
藍(lán)圖基礎(chǔ)邏輯
?????? 在藍(lán)圖的內(nèi)容里,我們主要用到的是側(cè)邊欄和中間的視口區(qū)域,上半部分的工具欄中就有今天課程的主要內(nèi)容“藍(lán)圖”兩個(gè)字,單擊鼠標(biāo)左鍵展開分項(xiàng),選中關(guān)卡藍(lán)圖再次單擊鼠標(biāo)左鍵,進(jìn)入的這個(gè)界面就是關(guān)卡藍(lán)圖的編輯界面。
藍(lán)圖菜單創(chuàng)建時(shí)有三種:關(guān)卡藍(lán)圖、游戲模式、藍(lán)圖類
1.關(guān)卡藍(lán)圖:用于制作當(dāng)前游戲場(chǎng)景的程序。
2.游戲模式:與制作中的游戲整體相關(guān)的設(shè)置、動(dòng)作,在最初階段基本不用,了解如何開發(fā)Unreal Engine后才加以使用。
3.藍(lán)圖類:類集中處理幾個(gè)相關(guān)的功能及數(shù)據(jù)的小型程序。制作復(fù)雜程序時(shí),創(chuàng)建類會(huì)是結(jié)構(gòu)整體一目了然。
知識(shí)點(diǎn)1:藍(lán)圖是可視化編程
知識(shí)點(diǎn)2:藍(lán)圖是面向?qū)ο蟮木幾g型可視化編程語言
面向?qū)ο?/strong>:我打麻將,你打麻將,他打麻將
對(duì)象執(zhí)行動(dòng)作
面向過程:打麻將(你,我,他)
拆解成動(dòng)作,把數(shù)據(jù)丟進(jìn)去
知識(shí)點(diǎn)3:關(guān)卡藍(lán)圖和藍(lán)圖類的區(qū)別
?????? 關(guān)卡藍(lán)圖是用于創(chuàng)建游戲中的關(guān)卡或場(chǎng)景的工具。它允許游戲開發(fā)者在藍(lán)圖中創(chuàng)建對(duì)象、設(shè)置物理屬性、添加游戲邏輯等,以構(gòu)建一個(gè)完整的游戲關(guān)卡。
?????? 藍(lán)圖類是用于創(chuàng)建重復(fù)使用的代碼、函數(shù)和算法的工具。它允許游戲開發(fā)者在藍(lán)圖中創(chuàng)建自定義類、定義函數(shù)和變量等,以便在游戲中被多次調(diào)用和重復(fù)使用。
?????? 關(guān)卡藍(lán)圖和藍(lán)圖類的區(qū)別在于它們控制的范圍和可修改程度不同。關(guān)卡藍(lán)圖只控制當(dāng)前關(guān)卡中的對(duì)象和行為,可以實(shí)時(shí)修改;而藍(lán)圖類定義了游戲?qū)ο蟮乃行畔?,在游戲過程中不可以修改,但可以在不同的關(guān)卡中使用。
知識(shí)點(diǎn)4:藍(lán)圖數(shù)據(jù)類型
- 紅色橫杠對(duì)應(yīng)的布爾型(Boolean)是表示真或假。二者選其一的狀態(tài)時(shí)使用。
- 綠色橫杠對(duì)應(yīng)的整型(Int也可記做Integer),用于聲明整數(shù)類型的數(shù)據(jù)
- 淺綠色橫杠對(duì)應(yīng)的浮點(diǎn)型(Float),用于聲明帶有小數(shù)點(diǎn)的數(shù)據(jù)。
- 玫紅色橫杠對(duì)應(yīng)的字符串型(String)
知識(shí)點(diǎn)5:節(jié)點(diǎn)的介紹
任何一種類型的節(jié)點(diǎn),都由三部分組成。標(biāo)題,輸入部分,輸出部分。
01.標(biāo)題
節(jié)點(diǎn)的上方,顯示著節(jié)點(diǎn)的標(biāo)題。標(biāo)題部分會(huì)根據(jù)節(jié)點(diǎn)的類型而顯示不同的顏色。所以,看到顏色就知道該節(jié)點(diǎn)屬于哪種類型了。
02.輸入部分
顯示在節(jié)點(diǎn)左側(cè)的引腳,用于從其他節(jié)點(diǎn)接受數(shù)據(jù)。通過這些引腳與上游節(jié)點(diǎn)連接,獲取必要的數(shù)值。
03.輸出部分
顯示在節(jié)點(diǎn)右側(cè)的引腳,用于傳遞數(shù)值到其他節(jié)點(diǎn)。舉個(gè)例子,將本節(jié)點(diǎn)計(jì)算后的結(jié)果值,傳遞給下游的節(jié)點(diǎn)。下游節(jié)點(diǎn),將以此值作為輸入部分。
知識(shí)點(diǎn)6:引腳的介紹
? 在虛幻4引擎里程序的實(shí)現(xiàn)都是通過節(jié)點(diǎn)連線傳遞信號(hào)的方式執(zhí)行的,我們看到的這兩個(gè)節(jié)點(diǎn),都有白色的三角形引腳,統(tǒng)稱為執(zhí)行引腳,同時(shí)左側(cè)的執(zhí)行引腳稱為輸入引腳,右側(cè)的執(zhí)行引腳稱為輸出引腳,BeginPlay節(jié)點(diǎn)并沒有左側(cè)的輸入表示他是純輸出節(jié)點(diǎn),它的作用是在按下播放鍵,也就是游戲開始時(shí)釋放一個(gè)信號(hào)到通過信號(hào)線連接的下一個(gè)節(jié)點(diǎn)的輸入引腳,使其產(chǎn)生作用,同時(shí)下一個(gè)節(jié)點(diǎn)再執(zhí)行完本身的功能后會(huì)繼續(xù)沿著連線向下下個(gè)節(jié)點(diǎn)傳遞信號(hào),指到信號(hào)線終止,則該段邏輯執(zhí)行完畢。
-
在關(guān)卡藍(lán)圖中單擊右鍵展開節(jié)點(diǎn)搜索欄
-
鍵入BeginPlay,大小寫沒關(guān)系,選擇事件BeginPlay,單擊鼠標(biāo)左鍵選中
-
再次右鍵展開節(jié)點(diǎn)搜索欄,鍵入PrintString,選擇背景灰化的PrintString節(jié)點(diǎn)
-
鼠標(biāo)左鍵按住BeginPlay節(jié)點(diǎn)右側(cè)的白色三角形引腳拉出一條信號(hào)線,連接到PrintString節(jié)點(diǎn)左側(cè)的白色三角形引腳上
-
同時(shí)將PrintString節(jié)點(diǎn)中間的Hello修改為想要在屏幕上打印的話,例如:Hello,藍(lán)圖
-
-
知識(shí)點(diǎn)7:節(jié)點(diǎn)的執(zhí)行順序
-
在事件圖表中,節(jié)點(diǎn)的執(zhí)行順序是:從左至右。排布節(jié)點(diǎn)的時(shí)候,也是將最先執(zhí)行的放在最左邊,然后依次向右側(cè)排列,這樣會(huì)比較容易連接。
-
知識(shí)點(diǎn)8:節(jié)點(diǎn)的類型
-
01、事件節(jié)點(diǎn)
事件節(jié)點(diǎn)標(biāo)題部分為紅色,當(dāng)用戶操作或在游戲場(chǎng)景中發(fā)生了某件事時(shí),就會(huì)觸發(fā)事件。(信號(hào))例子:?jiǎn)?dòng)游戲、用戶操作鼠標(biāo)和鍵盤、角色發(fā)生某種沖突時(shí)等等
Begin play事件(事件開始運(yùn)行)就是事件節(jié)點(diǎn)
02、執(zhí)行節(jié)點(diǎn)
執(zhí)行節(jié)點(diǎn)標(biāo)題部分為藍(lán)色,作用于具體處理業(yè)務(wù)邏輯的節(jié)點(diǎn)。左右兩側(cè)都有白色三角形標(biāo)志,因此,在整個(gè)執(zhí)行流程中,它可以承接上游并且呼出下游。
Print String(打印字符串)節(jié)點(diǎn)就是執(zhí)行節(jié)點(diǎn)
03.讀取節(jié)點(diǎn)
讀取節(jié)點(diǎn)標(biāo)題部分為綠色,作用是向其他節(jié)點(diǎn)傳遞必要的信息,節(jié)點(diǎn)的右側(cè)有用于接收讀取值的項(xiàng)目(通常顯示為Return Value),沒有白色五角星標(biāo)志,不能從事件連接到該節(jié)點(diǎn)。
Get Date(獲取日期)節(jié)點(diǎn)就是讀取節(jié)點(diǎn)
部分節(jié)點(diǎn):
1.BeginPlay:事件節(jié)點(diǎn),游戲一運(yùn)行就觸發(fā)。
2.make Literal String 節(jié)點(diǎn):輸入自身想要輸入的字符串,與print String 節(jié)點(diǎn)進(jìn)行連接,可以進(jìn)行顯示。
String 可以替換為其他格式。
3.print String 節(jié)點(diǎn):
InString:要輸出到日志的字符串
Print to Screen :是否輸出打印到屏幕
Print to Log :是否輸出打印到日志
Text Color:更改輸出的字符串顏色
Duration:顯示的時(shí)長,如果是負(fù)數(shù),將從配置加載。
與Print String節(jié)點(diǎn)類似的還有Print Text節(jié)點(diǎn)。
知識(shí)點(diǎn)9:節(jié)點(diǎn)的注釋
添加注釋:右鍵添加注釋
多個(gè)添加注釋框選:多個(gè)同時(shí)添加注釋,就會(huì)模塊化
-
知識(shí)點(diǎn)10:添加小白人第三人稱來操作
給小白人一個(gè)場(chǎng)景控制權(quán):細(xì)節(jié)——自身——poss——player 0
藍(lán)圖可視化編程——開關(guān)門互動(dòng)實(shí)現(xiàn)
生活中的感應(yīng)門是怎么運(yùn)作的,感應(yīng)門先是會(huì)有個(gè)感應(yīng)裝置感應(yīng)到人的靠近,門自動(dòng)打開,當(dāng)人遠(yuǎn)去,門又會(huì)自動(dòng)關(guān)閉,那么游戲中的門也是同理,再ue4中叫做盒體觸發(fā)器。
現(xiàn)實(shí)生活中的感應(yīng)器——ue4的盒體觸發(fā)器。
需知名詞:關(guān)卡藍(lán)圖——寫一些場(chǎng)景的互動(dòng)、事件、碰撞(在另一篇文章:【虛幻4】UE4初學(xué)者系列教程基礎(chǔ)篇-全中文新手入門教程)
所需節(jié)點(diǎn):
節(jié)點(diǎn)1:OnActorBeginOverLap
觸碰開始時(shí)執(zhí)行事件<進(jìn)入?yún)^(qū)域觸發(fā)事件>
節(jié)點(diǎn)2:OnActorEndOverLap
觸碰結(jié)束時(shí)執(zhí)行事件<退出區(qū)域觸發(fā)事件>
節(jié)點(diǎn)3:時(shí)間軸
案例1開關(guān)門的互動(dòng)顯示
-
所需:添加新項(xiàng)目——內(nèi)容包——strarter Content——SM Door
-
(剛剛添加會(huì)穿模,需要添加碰撞,來阻擋角色)
-
-
碰撞:打開門的模型。碰撞——添加盒體簡(jiǎn)化碰撞(添加碰撞后,player0就走不過門了)
-
調(diào)整碰撞大?。嚎旖萱IR縮放+拉動(dòng)大小(碰撞大小即player0碰到門后走不動(dòng)的范圍)
-
盒體觸發(fā)器:模式——基本——盒體觸發(fā)器
-
(開門的操作即出現(xiàn)在盒體觸發(fā)器的范圍內(nèi),綠色邊框)
-
將門修改成可移動(dòng):選中門后——變換——可移動(dòng)
-
點(diǎn)擊盒體觸發(fā)器——工具欄——藍(lán)圖——打開關(guān)卡藍(lán)圖——右鍵
-
-
點(diǎn)擊門——?jiǎng)?chuàng)建門的引用——set actor rotation——z軸修改成85度(告訴系統(tǒng),讓門這個(gè)目標(biāo)圍繞z軸進(jìn)行85度的旋轉(zhuǎn))
-
-
(保存運(yùn)行后會(huì)發(fā)現(xiàn),player0靠近門/盒體觸發(fā)器 就會(huì)打開)
????????但是這時(shí)候我們會(huì)發(fā)現(xiàn),門開的很生硬,并且不能關(guān)閉,那么我們就需要添加時(shí)間軸來讓門緩緩的開啟,并且連接上?OnActorEndOverLap節(jié)點(diǎn),讓小白人離開盒體觸發(fā)器的區(qū)域的時(shí)候,門可以關(guān)閉。
-
新建時(shí)間軸——雙擊添加浮點(diǎn)型軌跡——右鍵添加關(guān)鍵幀1(時(shí)間0,值0)——添加關(guān)鍵幀(時(shí)間2,值85)(值是按照旋轉(zhuǎn)的角度)
-
-
右鍵關(guān)鍵幀1,點(diǎn)擊自動(dòng),右鍵關(guān)鍵幀2,點(diǎn)擊自動(dòng)(為了平緩開門的動(dòng)作)
-
-
連接線條
創(chuàng)建門的藍(lán)圖類——Actor和組件的區(qū)別、門和軸心點(diǎn)修改
當(dāng)畫面中的東西較多的時(shí)候,將每一個(gè)門都創(chuàng)建一個(gè)觸發(fā)器再編寫關(guān)卡藍(lán)圖,會(huì)讓工作量變得很大,所以可以創(chuàng)建一個(gè)Actor來方便后面的操作。
理解:Actor可以理解為類別
所需節(jié)點(diǎn):
節(jié)點(diǎn):旋轉(zhuǎn)
SetActorRotation(設(shè)置Actor旋轉(zhuǎn)):self整個(gè)藍(lán)圖類旋轉(zhuǎn),目標(biāo)是Actor,不論有多少組件都旋轉(zhuǎn)
SetRelativeRotation(設(shè)置相對(duì)旋轉(zhuǎn)) 和SetWorldRotation(設(shè)置場(chǎng)景旋轉(zhuǎn)),旋轉(zhuǎn)的是藍(lán)圖類里的單個(gè)組件
SetRelativeRotation(設(shè)置相對(duì)旋轉(zhuǎn)):設(shè)置相對(duì)位置的旋轉(zhuǎn),相對(duì)位置如門和門框的位置是沒有變化的,單個(gè)組件以自身軸旋轉(zhuǎn)
SetWorldRotation(設(shè)置場(chǎng)景旋轉(zhuǎn)):世界坐標(biāo)是不會(huì)被改變的,坐標(biāo)永遠(yuǎn)是0,0,0,單個(gè)組件以世界軸的旋轉(zhuǎn),世界坐標(biāo)永遠(yuǎn)不會(huì)被改變,不會(huì)受物體改變而改變
案例1——開關(guān)門的互動(dòng)顯示
-
右鍵——藍(lán)圖類——Actor——新建Door_BP——雙擊打開(Actor內(nèi)有很很多組件,就可以理解為人的衣服和帽子褲子)
-
添加組件1——Skeletal Mesh(靜態(tài)網(wǎng)格=模型)——取名DoorFrame
-
Static Mesh——SM_DoorFrame
-
添加組件2——Skeletal Mesh(靜態(tài)網(wǎng)格=模型)——取名Door
-
Static Mesh——SM_Door
-
?
-
添加box Collision(盒體碰撞(盒體觸發(fā)器))——調(diào)整碰撞盒子的大小(將盒體碰撞和門放在同一級(jí),若是沒有放在同一級(jí)門動(dòng)的時(shí)候觸發(fā)盒子也會(huì)移動(dòng),門一旦打開,人在移動(dòng)后的觸發(fā)盒子范圍內(nèi)就沒有辦法關(guān)門了)
-
編寫事件圖表——單擊box——事件——on Component Begin Overlap——on Component End Overlap——時(shí)間軸——添加關(guān)鍵幀1(0,0)——添加關(guān)鍵幀2(1.5,75)——長度2——右鍵自動(dòng)(在碰撞盒子內(nèi)on Component Begin Overlap,離開碰撞盒子的范圍on Component End Overlap)
-
設(shè)置相對(duì)位置的旋轉(zhuǎn):
SetRelativeRotation:設(shè)置相對(duì)位置的旋轉(zhuǎn),相對(duì)位置如門和門框的位置是沒有變化的,單個(gè)組件以自身軸旋轉(zhuǎn)
SetWorldRotation:世界坐標(biāo)是不會(huì)被改變的,坐標(biāo)永遠(yuǎn)是0,0,0,單個(gè)組件以世界軸的旋轉(zhuǎn)
SetActorRotation:self整個(gè)藍(lán)圖類旋轉(zhuǎn),不論有多少組件都旋轉(zhuǎn)
藍(lán)圖可視化編程——按鍵實(shí)現(xiàn)開關(guān)門
游戲操作中一般都是用鍵盤開關(guān)門
案例——游戲按鍵e打開門
所需節(jié)點(diǎn):
節(jié)點(diǎn)1:Enable Input(啟用輸入)
2.Disable Input(禁用輸出)
3.Get Player Controller(獲取玩家控制器)
【以上三個(gè)組合總而言之就是規(guī)定了一個(gè)控制角色(Get Player Controller),確定了藍(lán)圖可以接受或拒絕操作該角色的玩家從鍵盤發(fā)出的指令:?jiǎn)⒂幂斎耄‥nable Input)、禁用輸入(Disable Input),一旦該角色滿足了觸發(fā)條件,就啟用輸入或者禁用輸入,即該角色可以獲得或者喪失從鍵盤(這個(gè)案例是,下面那個(gè)案例是鼠標(biāo),總結(jié)總結(jié)應(yīng)該接受從設(shè)備輸入)輸入按鍵的權(quán)利,然后觸發(fā)后面亂七八糟東西的】
4、E(E按鍵)
5、Gate(在Open或Close滿足時(shí))的前提下然后輸入E(Enter)的時(shí)候觸發(fā)事件
6、Flip Flop(不斷的翻轉(zhuǎn),A和B輪流執(zhí)行,第一次調(diào)用執(zhí)行A,第二次B,第三次A…)
7、SetRelativeRotation(設(shè)置相對(duì)位置的旋轉(zhuǎn))
藍(lán)圖可視化編程——鼠標(biāo)點(diǎn)擊實(shí)現(xiàn)開關(guān)門
案例——鼠標(biāo)點(diǎn)擊開門
1.添加On Clicked(點(diǎn)擊時(shí)),點(diǎn)擊Door——事件——On Clicked(點(diǎn)擊模型后會(huì)觸發(fā)事件)
2.打開世界設(shè)置——窗口,世界設(shè)置——Game Mode
?
?
3.人物靠近后顯示鼠標(biāo)
文章來源:http://www.zghlxwxcb.cn/news/detail-758368.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-758368.html
到了這里,關(guān)于【虛幻4】UE4初學(xué)者系列教程(藍(lán)圖篇)-全中文新手入門教程(含藍(lán)圖節(jié)點(diǎn)詳細(xì)介紹,即時(shí)更新~)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!