行为树
行为树常被用来实现游戏中的AI。每次执行AI ,都会从根节点遍历整个树,父节点执行子节点,子节点执行完后将结果返回父节点。下面是基本的四个节点:
1 *顺序节点(Sequence):属于组合节点,顺序执行子节点,只要碰到一个子节点返回false,则返回false,否则返回true,类似于程序中的逻辑与。
2 *选择节点(Selector):属于组合节点,顺序执行子节点,只要碰到一个子节点返回true,则返回true,否则返回false,类似于程序中的逻辑或。
3 *条件节点(Condition):属于叶子节点,判断条件是否成立。
4 *执行节点(Action):属于叶子节点,执行动作,一般返回true。
关于更多关于行为树概念上的东西,大家很容易找到相关的资料,这里不再最赘述,主要是通过一个实际的例子来看行为树在AI上的应用。
这是AI文字表达的方式:
如果不是情人节,我们的Avatar将去球场打球,如果是情人节,他将带上一束花去见他的女友,但是他可能没带钱,所以他要先回家拿钱,然后去花店买花,再去 见他的女友,如果女友还在约会地点,则将花送给女友。
下面是用行为树表达的方式:
上面的图让我们能很容易指导我们的代码编写,我们需要完成所有的叶子节点,然后将他们按照图示,放到相应的组合节点中去,然后不停的遍历整个行为树。
我使用AS3完成了下面的demo,去实现上图中的行为树AI(如无法观看请下载最新的FlashPlayer)。
在Flash中,蓝色的圆表示AI控制的Avatar,你可以通过点击不同选择框来改变当前的条件,Avatar会根据条件做出不同的反应。
行为树很适合做AI编辑器,我们定义好一些条件和动作,策划人员通过简单的拖拽和设置即可实现复杂的游戏AI。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!