用behaviac框架开发行为树 — unity篇

一、介绍

Behaviac官网:

behaviac – Tencent behaviac, Game AI, Behavior Tree, Finite State Machine, Hierarchical Task Network, BT FSM HTN, 腾讯开源, 游戏AI, 行为树,有限状态机,分层任务网络https://www.behaviac.com/

        behaviac是游戏AI的开发框架组件,也是游戏原型的快速设计工具。支持全平台,适用于客户端和服务器,助力游戏快速迭代开发 。

        编辑器可以运行在PC上,操作方便直观可靠,支持实时和离线调试;编辑器可以导出xml,bson等多种格式,更可以导出C++、C#源码,提供最高效率。

        运行时支持全平台,有C++和C#两个版本,原生支持Unity。

        已被多款知名游戏及更多其他预研项目使用。

        所有代码,包括编辑器和运行时全部开源:GitHub - Tencent/behaviac: behaviac is a framework of the game AI development, and it also can be used as a rapid game prototype design tool. behaviac supports the behavior tree, finite state machine and hierarchical task network(BT, FSM, HTN)https://github.com/Tencent/behaviac

        Behaviac框架不仅支持行为树BT,还支持有限状态机FSM、和另外一个设计模式 — HTN (Hierarchical Task Network 分层任务网络)等。

二、开发框架

三、调试

        behaviac也是支持断点调试。在游戏运行的时候,behaviac编辑器可以连上游戏,实时的查看行为树的运行情况、变量的当前值,并且还可以设置断点等;注意的是端口号需要一致。

四、示例 —— 卡丁车

需求:需要设计一个卡丁车, 遇到弯道就漂移,直道就一直直行。

第一步:打开BehaviacDesigner编辑器。

第二步:新建工作区。

第三步:新建Agent实例—player,声明method,生成声明代码。

(智能体(Agent):意思是一个被AI操控的对象物体)

 

 第四步:新建行为树,拖拽节点,赋值对应method。

 第五步:行为树xml、cs代码导出。

第六步:实现cs代码中已声明的method。

注意:自己的代码需要添加在“///<<< BEGIN WRITING YOUR CODE”和“///<<< END WRITING YOUR CODE”之间,以便编辑器下次生成代码的时候,可以自动合并手工添加的内容和生成的内容。

第七步:挂载 player 脚本 到对应的GameObject 上。

第八步: 运行,调试。 

运行效果如下:

 五、对比 Behavior Designer 插件

六、总结

behaviac框架开发行为树 :

优势:

  • 支持全平台,不仅可以用在客户端,也可以用在服务器端。一套逻辑,可以根据情况分别在客户端,服务器运行,避免重复开发。
  • 支持实时和离线调试,可以设断点,查看或修改变量
  • 编辑器可以导出xml,bson等多种格式,更可以导出C++,C#源码,提供最高效率

劣势:

  • 对于新手不是很友好。可视化和调试方面可以做得更好。

猜你喜欢

转载自blog.csdn.net/DeveloperZZW/article/details/122331223