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