虚幻引擎(9)-AI随机移动
文章目錄
- 前言
- 相關(guān)介紹
- 其他介紹
- 上一篇筆記
- 下一篇筆記
- 動態(tài)預(yù)覽圖
- 一、AI可移動區(qū)
- 二、AI黑板
- 三、AI行為樹
- [1]. 創(chuàng)建
- [2]. 綁定黑板
- [3]. 序列合成節(jié)點
- [4]. 添加自定義任務(wù)
- (1) 變量
- (2) 觸發(fā)事件
- (3) 傳隨機點的坐標值至變量
- (4) 結(jié)束任務(wù)標識
- (5) 獲取AI坐標
- (6) 生成隨機點
- (7) 添加任務(wù)節(jié)點至行為樹
- [5]. 添加移動任務(wù)
- [6]. 添加等待任務(wù)
- 四、AI控制器
- 五、AI角色
前言
AI的隨機移動,不需要導(dǎo)入任何的包,下方的博客是有關(guān)AI行為樹、黑板等內(nèi)容的概念介紹
在實現(xiàn)AI隨機移動之前,可以先去了解相應(yīng)的概念
虛幻引擎版本: 4.23.1
相關(guān)介紹
虛幻引擎4-AI基礎(chǔ)概念
嗶哩嗶哩-UE4初學(xué)者系列教程-AI行為樹入門全集
其他介紹
虛幻4官方文檔
虛幻4中文官網(wǎng)
虛幻引擎藍圖API參考文檔
虛幻引擎4藍圖節(jié)點-小狐貍FM
HelloCJC虛幻引擎社區(qū)
上一篇筆記
虛幻引擎(8)-射擊準星
下一篇筆記
虛幻引擎(10)-切換控制權(quán)
動態(tài)預(yù)覽圖
一、AI可移動區(qū)
在模式的放置中搜索Nav Mesh Bounds Volume并拖動放置到地圖中
調(diào)整相應(yīng)的大小和位置
按下鍵盤的P鍵,綠色區(qū)域即為AI可移動的區(qū)域
二、AI黑板
在內(nèi)容瀏覽器中創(chuàng)建一個黑板
打開AI黑板后,新建一個鍵值,這個值是用來保存AI需要移動的目標位置信息。
三、AI行為樹
[1]. 創(chuàng)建
創(chuàng)建一個行為樹
[2]. 綁定黑板
雙擊打開行為樹將會看見一個根節(jié)點,如果你已經(jīng)創(chuàng)建了黑板的話,默認會幫你直接選定已創(chuàng)建的黑板
[3]. 序列合成節(jié)點
創(chuàng)建一個序列合成節(jié)點Sequence,這個節(jié)點的作用是先執(zhí)行左子樹,左子樹執(zhí)行完畢后將會按順序執(zhí)行相鄰的右子樹。
創(chuàng)建完畢后,將兩者相連,Sequence節(jié)點右上角出現(xiàn)0,表示該節(jié)點第一個執(zhí)行
[4]. 添加自定義任務(wù)
行為樹中有自帶一些任務(wù),要實現(xiàn)自定義的功能的話得新建任務(wù)。
創(chuàng)建完畢后會在同目錄下生成一個以BT名稱開頭的任務(wù),為了方便區(qū)分就重命名了AI任務(wù)
(1) 變量
打開任務(wù)藍圖類,創(chuàng)建一個變量用于存儲來自黑板的值
點擊剛剛創(chuàng)建的變量,變更變量的類型為Blackboard Key Selector
將這個變量變?yōu)楣?#xff0c;之后的行為樹調(diào)用時可以返回相應(yīng)的坐標信息
(2) 觸發(fā)事件
添加事件Receive Execute AI節(jié)點
當AI任務(wù)被執(zhí)行時,事件Receive Execute AI節(jié)點將會被觸發(fā)
(3) 傳隨機點的坐標值至變量
添加Set Blackboard Value as Vector節(jié)點
這個節(jié)點的作用是將位置信息傳到輸入接口Key對應(yīng)的變量的值變?yōu)閂alue坐標值。
將變量拖動到藍圖中,選擇獲取。
然后按下圖進行連接。
(4) 結(jié)束任務(wù)標識
添加Finish Execute節(jié)點
這個節(jié)點的作用是讓一個任務(wù)結(jié)束,要不然在行為樹中運行這個任務(wù)時將會停滯在該任務(wù)。
Success選擇為ON表示運行該節(jié)點之后,將標志這個任務(wù)的完成
(5) 獲取AI坐標
添加GetActorLocation節(jié)點
該節(jié)點能獲取某個物體的坐標信息并輸出
(6) 生成隨機點
添加GetRandomPointInNavigableRadius節(jié)點
這個節(jié)點主要是用來在一個已知的圓中,生成一個隨機的點并輸出該點坐標
以AI的位置為圓點,以1000為半徑的圓內(nèi),生成一個隨機點的坐標并輸出。
(7) 添加任務(wù)節(jié)點至行為樹
點開之前創(chuàng)建的行為樹,搜索剛剛創(chuàng)建的自定義任務(wù)并添加節(jié)點
任務(wù)節(jié)點只有一個輸入接口,所以任務(wù)節(jié)點沒法觸發(fā)另一個任務(wù)節(jié)點。
連接完畢后右上角出現(xiàn)一個數(shù)字,表示該節(jié)點會第2個執(zhí)行
[5]. 添加移動任務(wù)
右上角的-1表示不會被執(zhí)行
[6]. 添加等待任務(wù)
如果沒有添加等待任務(wù)的話,AI會一直來回地跑動不會停下來,要更好地觀察AI移動的話就需要添加等待任務(wù)。
四、AI控制器
在創(chuàng)建AI前需要先創(chuàng)建一個AI Controller藍圖類
創(chuàng)建完畢如下圖
在事件圖表中,創(chuàng)建如下圖的藍圖節(jié)點并連接
當AI控制器被調(diào)用時,將會觸發(fā)事件On Possess節(jié)點,執(zhí)行Run Behavior Tree節(jié)點從而調(diào)用剛剛創(chuàng)建的行為樹。
編譯保存
五、AI角色
先創(chuàng)建一個角色藍圖類
添加一個立方體到角色中,如果你需要用自己的模型時可以去看之前的筆記內(nèi)容。
虛幻引擎4藍圖筆記(4)-角色模型導(dǎo)入
點擊AI(自身),打開相應(yīng)的細節(jié)面板
在AI Controller Class中選擇你剛剛創(chuàng)建的AI控制器,
將Auto Possess AI設(shè)置成放置在場景中就會被AI控制器控制。
設(shè)置完畢后編譯保存,之后你就可以直接拖動AI的角色藍圖類到場景中使用了。
總結(jié)
以上是生活随笔為你收集整理的虚幻引擎(9)-AI随机移动的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 虚幻引擎基础入门(C++) — 【代码命
- 下一篇: Halcon几何定位