1. 程式人生 > >UE4的AI學習(2)——官方案例例項分析

UE4的AI學習(2)——官方案例例項分析

http://blog.csdn.net/a393134314/article/details/52301309

AI學習當中,不學習行為樹基本概念就不能明白具體例項中的操作意義,但是沒有經過具體例項實驗,又覺得基本概念抽象難以理解。建議先泛讀(1)(2)後再對具體的細節進行死磕,能較深的理解行為樹的具體概念。第一節對行為樹的基本概念做個簡要的介紹,第二節對行為樹的官方案例做進一步分析。個人的學習順序(2)->(1)       ->(2),請感興趣的同學根據自己的喜好自行調整閱讀順序。

一、AI學習中的兩大概念

1.行為樹

行為樹是驅動AI運動以及做出AI決策的一棵邏輯樹。

                   

圖一 

2.Blackboard

行為樹中所需的資料都儲存在Blackboard裡。

二、行為樹中的幾大節點

1.Root節點

Root節點是行為樹的根

特點:

(1)只能有一個連線

(2)無法被Decorator或Sevice節點附著

(3)Root沒有自身屬性,選中後可以顯示行為樹的屬性,如:Blackboard資源。

2.Composite節點

Composite是行為樹分支的非Root非葉子節點,即對分支以及分支的執行方式進行定義。

有三種類型的Composite節點:

(1)Selector

(2)Sequence

(3)SimpleParallel

3.Task節點

Task節點是行為樹的葉子節點,也是行為樹的執行節點,可用來執行具體的任務。如:移動AI,發出噪音等。

4.Decorator節點

Decorator節點是行為樹中的條件判斷語句。它們可以附著在Composite節點或者Task節點上,實現分支數的調整以及Task節點的執行與否。如:判斷的AI當前距離與玩家的距離是否小於閾值。圖中的藍色框圖都是Decorator節點。需要注意的是:圖中的Blackboard Based Condition是Decorator節點是判斷Blackboard中的某個key值是否被set,而Blackboard裡的資料去Blackboard asset中檢視。

5.Service節點

Service節點是行為樹中Tick的存在。它們附著在Composite節點上,而且只有當Composite節點的分支被執行時,Service節點才會按所定義的頻率進行執行。Service節點通常對Blackboard的值進行更新和修改,如:檢測AI附近是否有玩家,有的話將Blackboard裡定義的bool變數bIsEnemyNearBy置為True。