当前位置: 首页 > 工具软件 > Behaviac > 使用案例 >

behaviac行为树总结

潘嘉颖
2023-12-01

        behaviac是游戏AI的开发框架组件,腾讯有提供源码。https://github.com/Tencent/behaviac

        行为树由叶子节点和中间节点组成,从左到右依次是父子关系的节点:叶子节点主要是一些动作、条件和赋值等原子操作节点,包含了最基本的行为(如跑动、攻击等),当一个叶子节点被选择后,就会激活其对应的基本行为;中间节点主要是一些组合节点,代表逻辑单元,用于管理子节点如何执行等。

        叶子节点和中间节点主要分为五大类节点或附件:动作、条件、组合、修饰、附件等。其中,动作、条件节点为叶子节点,组合、修饰节点为中间节点,附件必须附属在这四类节点上面而不能独立存在。每个节点执行结束后,都必须将其返回值提供给父节点。节点的返回值包括三种:成功(Success)、失败(Failure)以及正在执行(Running)。

        常用节点:

  • 动作节点(Action):属于叶子节点,用于描述一个最终执行的动作。
  • 条件节点(Condition):属于叶子节点,用于描述一个条件是否成立。
  • 选择节点(Selector):属于组合节点,用于顺序执行子节点,只要它的一个子节点返回成功,则整个分支返回成功,反之返回失败,类似程序中的逻辑或(OR)。
  • 顺序节点(Sequence):属于组合节点,用于顺序执行子节点,只要它的一个子节点返回失败,则整个分支返回失败,反之返回成功,类似程序中的逻辑与(AND)。

行为树的优势如下:

  • 行为逻辑和状态数据分离,任何节点都可以反复利用。
  • 重用性高,可用通过重组不同的节点来实现不同的行为树。
  • 呈线性的方式布局,易扩展。
  • 可配置,把工作交给策划。

       behaviac组件包括编辑器(Designer)和运行时(Runtime)两大部分:编辑器主要用于编辑行为树,运行时库主要用于解释和执行编辑并导出过的行为树,运行时库需要整合到自己的游戏项目中去。

        一棵行为树首先需要设置一个Agent类型,Agent也就是游戏中的AI角色。在这棵行为树中的所有节点(主要是叶子节点),可以进一步选择Agent的属性、方法以及其他变量等进行配置。

       还可以运行时调试编辑器中的流程,很强大。

参考:http://www.behaviac.com/language/zh/overview/

 类似资料: