behaviac是游戏AI的开发框架组件,腾讯有提供源码。https://github.com/Tencent/behaviac
行为树由叶子节点和中间节点组成,从左到右依次是父子关系的节点:叶子节点主要是一些动作、条件和赋值等原子操作节点,包含了最基本的行为(如跑动、攻击等),当一个叶子节点被选择后,就会激活其对应的基本行为;中间节点主要是一些组合节点,代表逻辑单元,用于管理子节点如何执行等。
叶子节点和中间节点主要分为五大类节点或附件:动作、条件、组合、修饰、附件等。其中,动作、条件节点为叶子节点,组合、修饰节点为中间节点,附件必须附属在这四类节点上面而不能独立存在。每个节点执行结束后,都必须将其返回值提供给父节点。节点的返回值包括三种:成功(Success)、失败(Failure)以及正在执行(Running)。
常用节点:
行为树的优势如下:
behaviac组件包括编辑器(Designer)和运行时(Runtime)两大部分:编辑器主要用于编辑行为树,运行时库主要用于解释和执行编辑并导出过的行为树,运行时库需要整合到自己的游戏项目中去。
一棵行为树首先需要设置一个Agent类型,Agent也就是游戏中的AI角色。在这棵行为树中的所有节点(主要是叶子节点),可以进一步选择Agent的属性、方法以及其他变量等进行配置。
还可以运行时调试编辑器中的流程,很强大。