If the Wait Task is completed for the first frame, it may not return to the root node even after Finish. This can be avoided by increasing the wait time of the Wait Task (see CaseOK.mp4).
When this issue appears, UBehaviorTreeComponent::RequestExecution() is called before PendingUnregisterAuxNodesRequests.Ranges is reset.
LogBehaviorTree (Log) > skip: request by [0:10] that is in pending unregister aux nodes range [[0:9]...[0:11]]
Visual Debugger Log:
LogBehaviorTree (Verbose) Deactivate node: NewBehaviorTree::MyTask[4] LogBehaviorTree (Verbose) Search node update[Remove]: NewBehaviorTree::Blackboard Based Condition[2] LogBehaviorTree (Verbose) Deactivate node: NewBehaviorTree::Sequence[3] LogBehaviorTree (Verbose) Unregistering aux nodes up to [0:2] LogBehaviorTree (Verbose) Testing node: NewBehaviorTree::Selector[0] LogBehaviorTree (Verbose) Child[1] "NewBehaviorTree::Selector[6]" execution allowed by NewBehaviorTree::Blackboard Based Condition[5] LogBehaviorTree (Verbose) Search node update[Add]: NewBehaviorTree::Blackboard Based Condition[5] LogBehaviorTree (Verbose) Search node update[Add]: NewBehaviorTree::MyServise_2[7] LogBehaviorTree (Verbose) Testing node: NewBehaviorTree::Selector[6] LogBehaviorTree (Verbose) Child[0] "NewBehaviorTree::Sequence[9]" execution allowed by NewBehaviorTree::Blackboard Based Condition[8] LogBehaviorTree (Verbose) Search node update[Add]: NewBehaviorTree::Blackboard Based Condition[8] LogBehaviorTree (Verbose) Testing node: NewBehaviorTree::Sequence[9] LogBehaviorTree (Log) Update: Remove for auxiliary node: NewBehaviorTree::Blackboard Based Condition[2] LogBehaviorTree (Log) Update: Add for auxiliary node: NewBehaviorTree::Blackboard Based Condition[5] LogBehaviorTree (Log) Update: Add for auxiliary node: NewBehaviorTree::Blackboard Based Condition[8] LogBehaviorTree (Log) Update: Add for auxiliary node: NewBehaviorTree::MyServise_2[7] LogBehaviorTree (Verbose) NewBehaviorTree::Blackboard Based Condition[8], ConditionalFlowAbort(always when passing) pass:0 executingBranch:0 abortPending:0 => skip LogBehaviorTree (VeryVerbose) BT(61830) schedule next tick 0.000000, asked 0.000000. LogBehaviorTree (Verbose) NewBehaviorTree::Blackboard Based Condition[5], ConditionalFlowAbort(always when passing) pass:0 executingBranch:0 abortPending:0 => skip LogBehaviorTree (VeryVerbose) BT(61830) schedule next tick 0.000000, asked 0.000000. LogBehaviorTree (Log) Execute task: NewBehaviorTree::Wait[10] LogBehaviorTree (Log) Task NewBehaviorTree::Wait[10] finished: InProgress LogBehaviorTree (Log) Task NewBehaviorTree::Wait[10] finished: Succeeded LogBehaviorTree (Log) Execution request by NewBehaviorTree::Wait[10] (result: Succeeded) LogBehaviorTree (Log) > skip: request by [0:10] that is in pending unregister aux nodes range [[0:9]...[0:11]] LogBehaviorTree (VeryVerbose) BT(61830) schedule next tick 0.000000, asked 0.000000.
When looking at the behavior tree, unable to leave the Wait node.
Request a info about UE-127172 bug tracker
How does TextureRenderTarget2D get TArray<uint8> type data?
Why does the REMOVE method of map container remove elements have memory leaks?
How do I set a material as a post-processing material?
How to delete some elements correctly when deleting an array loop?
UMG RichText not appear image when packaged
What is the cause of the packaging error falling back to 'GameUserSettings' in ue5?
What is the difference between Camera and CineCamera?
How does TArray loop correctly remove elements in blueprints?
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-126602 in the post.
2 |
Component | UE - AI - BehaviorTree |
---|---|
Affects Versions | 4.26, 4.27 |
Target Fix | 5.0 |
Fix Commit | 14384911 |
---|---|
Main Commit | 14384911 |
Created | Sep 14, 2021 |
---|---|
Resolved | Nov 29, 2021 |
Updated | Apr 22, 2022 |