【U3D】初识Behavior Designer行为树(一)

来源:互联网 发布:两组数据找相同的差异 编辑:程序博客网 时间:2024/06/04 20:00

本系列文章由@萌萌的一天 出品,未经博主允许不得转载。  


Behavior Designer行为树插件介绍

       Behavior Designer是U3D AssetStore上很优秀的一款插架,它在基于Behaviour Tree相关原理的基础上拓展出了更加复杂的模块,并且运用了很强大的人工智能技术。第一个将Behaviour Tree概念应用到游戏的产品是Xbox上的《Halo 2》,之后更多的游戏开发者选择应用Behavior Tree而不是Hierarchical FSM来控制人工智能。下面说说行为树的概念吧。

       简单来说,行为树就是将所有可能发生的状态进行模块化,将状态抽象成一个个的行为,然后在每个行为之间可以增加复合节点(Composites Node)进行每个节点之间逻辑控制,装饰节点(Decorator Node)进行子节点状态的控制,行为节点(Action Node)进行具体行为的处理,条件节点(Conditionals Node)用于判断该条件是否成立等。关于上述节点的具体内容会在之后进行详细的解释,接下来说说如何在U3D中使用Behavior Designer这款插件。

行为树插件下载方式

        Behavior Designer这款插件可以很容易得在AssetStore上搜索到,目前售价是$75,推荐商用者从官方的平台上进行购买和使用,便于今后的功能维护和持续更新等。


不过对于初学者来说,75美元可能太贵。下面放出一份1.5.5版破解版插件下载地址:

点我点我点我       提取码:hms9

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Behavior Designer行为树的简单使用

将包导入到Unity中之后,我们可以看到在菜单面板上出现了“Tools”一项,通过点击它下边的“Behavior Designer”--->

"Editor",我们就可以如下的行为树面板了。





左侧面板表示行为树中的各种节点,比如有我们之前介绍的复合节点(Composites Node)、装饰节点(Decorator Node)、行为节点(Action Node)、条件节点(Conditionals Node)等,下级中的每一种选项都代表这不同的节点功能。

右侧面板是行为树逻辑主窗口,你添加的每一种行为都会显示在这个面板底下。当我们在游戏中选中任意一个Gameobject,之后我们可以通过右键点击面板--->点击"Add Behavior Tree",给这个物体上添加一个行为树,此时我们会发现这个物体上也会自动挂上一个叫做Behavior Tree的脚本组件,点击"Open"可以方便快捷的打开行为树主窗口。



接下来用一个简单的例子来说明行为树是的具体创建过程,比如让一个坦克在两点之间自动巡逻。

我使用了Unity官方的一个模型场景,首先在场景中创建一个坦克,以及坦克即将要巡逻的两个点WayPoint1,WayPoint2,比如下图的方式:


点击坦克,从菜单上的“Tool”进入行为树逻辑主窗口进行行为树创建(或者直接添加BehaviorTree组件)。之后从左侧面板下找到“Patrol”(巡逻)行为,添加到主窗口,并设置相应的行为属性(移动速度,转身速度,巡逻点等)。


注意Patrol行为的说明,它是使用NavMesh进行模拟巡逻的。


所以我们需要给坦克添加NavMesh组件,并且还要对整个场景的Navigation进行烘焙。

设置完之后,我们发现坦克就可以正常的在两点之间巡逻了:



以上只是一个行为树使用的简单例子,可能新手对里面有一些东西,比如节点属性、NavMesh等不太理解,这些会在之后的博文中会做详细的解释。

总之欢迎大家能够踊跃进行讨论,欢迎各种交流指正~~~~~~~~~~~~~





2 0