1. 程式人生 > >UE4 行為樹資料

UE4 行為樹資料

結束 chang ORC 無法 sites mes task mov 其他

Composites

Select 選擇

從左往右執行其子節點,直到一個達成,則 Select 達成並返回上層,否則失敗並返回上層

Sequence 隊列

從左往右執行其子節點,直到一個失敗,則 Sequence 失敗並返回上層,否則達成並返回上層

Simple Parallel 模擬並行

包含一個main task和一個sub tree, main task支持一個 Task 節點,用於執行一個主線行為,sub tree 支持一個行為樹,伴隨 main task 執行,返回結果是main task的執行結果

Task

Task 節點用於執行具體的動作,引擎內置的 Task 常用的有 Wait 、 Move To 、 Is At Location

等等,Task 一般是自行實現的AI具體的行為邏輯,其中的代碼與普通藍圖代碼一樣

Task 中的常用事件

  • Event Receive Execute / Event Receive Execute AI
    定義該 Task 的主體邏輯代碼,如果沒有特殊需求,則必須以 Finish Execute 節點結束,因為只有 Finish Execute 節點才能想上層返回執行結果,否則該 Task 如果不被打斷將不會執行完成

    如果同時存在 Event Receive Execute 和 Event Receive Execute AI 兩個事件,優先執行 Event Receive Execute AI 事件

  • Event Receive Abort / Event Receive Abort AI
    當前任務被打斷時觸發該事件,用來處理突發情況對當前行為的影響,如果沒有特殊需求,則必須以 Finish Abort 節點結束,以結束該任務節點的執行

    如果同時存在 Event Receive Abort 和 Event Receive Abort AI 兩個事件,優先執行 Event Receive Abort AI 事件

Decorator 裝飾器

Decorator 類型的節點用作條件判斷(類似於程序中的基本流程控制),附著於 Composites 或 Task 節點上

常用 Decorator 條件

Blackboard 判斷指定的黑板的鍵值是否符合判斷條件

  1. Notify Observer:規定條件重新評估的時機
    On Result Change:適用於範圍性檢測,當檢測的值越界時進行重新評估該條件產生的結果
    On Value Change:適用於精確檢測,當檢測的值發生變化時進行重新評估該條件產生的結果
  2. Observer Aborts
  3. Key Query
  4. Blackboard Key:用於檢查的黑板的鍵。對可返回None的數據類型(如物體)作用最佳,因為其他類型的數據可能返回其初始化值(0、false 、 {0,0,0}等)
  5. Node Name

Composite 復合

通過 Composite Decorator 節點可設置比內置節點更高級的邏輯,但無法達到完整藍圖的復雜程度

  1. Composite Name:行為樹圖表中顯示的節點名稱
  2. Show Operations:使操作以純文本方式列於節點上

Loop 環

循環指定的次數或無限循環

  1. Num Loops:循環的次數
  2. Infinite Loop:是否進行無限循環
  3. Node Name:行為樹圖表中顯示的節點名稱

Conditional Loop 有條件的環

帶條件的循環,如果Blackboard上指定的鍵值滿足條件則進行循環

  1. Node Name:行為樹圖表中顯示的節點名稱
  2. Key Value
  3. Blackboard Key:用於檢查的黑板的鍵。對可返回None的數據類型(如物體)作用最佳,因為其他類型的數據可能返回其初始化值(0、false 、 {0,0,0}等)

Cone Check

檢測指定的位置或Actor是否在椎體範圍內,返回bool結果

  1. Cone Half Angle:椎體的半角。對於90度的椎體而言,這個值應該設置為45度
  2. Observer Aborts
  3. Cone Direction:錐形口的朝向
  4. Observer:被檢查的位置或Actor,確定是否在錐形內
  5. Inverse Condition:結果是否翻轉(true變為false,false變為true)
  6. Node Name

CoolDown 冷卻

會鎖定一個節點或分支的執行,直到冷卻時間結束

  1. Cool Down time:Cooldown decorator 鎖定此節點執行的冷卻時間(以秒計算)
  2. Observer Aborts
  3. Node Name

Does Path Exist

確定路徑是否可由以下兩個矢量組成:Blackboard Key A 和 Blackboard Key B (判定SelfActor與TargetPawn是否存在一條可以到達的路徑,返回bool結果)

  1. Blackboard Key A:路徑中的第一個位置
  2. Blackboard Key B:路徑中的第二個位置
  3. Path Query Type,路徑計算類型:NavMesh Raycast 2D 非常快,Hierarchical Query 快,Regular Path Finding 慢
  4. Inverse Condition:結果是否翻轉 (true變為false,false變為true)
  5. Observer Aborts
  6. Filter Class:確定使用的導航數據。如果設為None,則將 使用默認的導航數據
  7. Node Name

Force Success

強制使所附著的節點返回執行成功結果

  1. Node Name

UE4 行為樹資料