行为树要点记录

官网:https://www.behaviortree.dev

节点状态

  • SUCCESS:成功
  • FAILURE:失败
  • IDLE:节点还未执行
  • RUNNING:正在运行

控制节点:

包含至少一个子节点
1)Fallback:
(ReactiveFallback与连续检查条件有关)
1,在勾选第一个子节点之前,节点状态变为RUNNING。
2,如果一个子级返回失败,则回退会勾选下一个子级。
3,如果最后一个子级也返回FAILURE,则所有子级都将halted,并且序列返回FAILURE。
4,如果一个孩子返回成功,它就会停止并返回成功。所有的孩子都halted了。
2)Sequences:
(ReactiveSequence与连续检查条件有关)
1,在tick第一个子节点之前,节点状态变为RUNNING。
2,如果一个孩子返回SUCCESS,它会勾选下一个孩子。
3,如果最后一个子级也返回SUCCESS,则所有子级都将halted,并且序列返回SUCCESS。

修饰节点:

仅包含一个子节点
1,InverterNode
子节点成功则返回FAILURE,Running则返回Running
2,ForceSuccessNode
仅返回SUCCESS和RUNNING
3,ForceFailureNode
仅返回FAILURE和RUNNING
4,RepeatNode
勾选子项最多N次,其中N作为输入端口传递,只要子项返回SUCCESS。
如果子级返回FAILURE,则中断循环,在这种情况下,也返回FAILURE。
RUNNING则返回RUNNING
5,RetryNode
勾选子项最多N次,其中N作为输入端口传递,只要子项返回FAILURE。
如果子对象返回SUCCESS,则中断循环,在这种情况下,也返回SUCCESS。
RUNNING则返回RUNNING

ActionNodes and 条件节点:

不包含子节点

XML格式的行为树:

//类似于HTML格式,具体内容百度或看官网,很详细~
<root main_tree_to_execute=""></root>
<BehaviorTree ID="">
	<ReactiveSequence name="顺序执行">
		<Condition ID="" message1="" message2="{message2}"/>
		<Action ID=""/>
		<Subtree ID="" />
	</ReactiveSequence>
</BehaviorTree>

<TreeNodesModel>
	<Condition ID="">
		<inout_port name="message1"/>
		<inout_port name="message2"/>
	</Condition>
</TreeNodesModel>

表示树的开始,其中main_tree_to_execute表示要执行的树

其他

  • 行为树中,如果只tickRoot()一次,只会执行一个ActionNode,执行完毕后行为树结束,所以一般放在循环中;

记一笔

  • 若要在当前树与子树之间传递端口值,需使用[端口值=“端口值”]的形式,双引号内不要带花括号!!!如<SubTree ID=“树ID” 端口值=“端口值”/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值