文章标签 ‘Behavior Tree’

第一部分 第二部分
行为树最后一个要讲的地方,是关于前提(Precondition),在第一部分里,我略微提到了一下,这次我们来仔细看看,再来看看关于前提的纯虚基类的定义:

1: class BevNodePrecondition
2: {
3: public:
4:[......]

继续阅读

2012年1月31日18:36 | 5 条评论
分类: 代码分享

第一部分
上一次说到了节点的基类,它描述了在行为树上一个节点的基本结构。我们知道,在行为树上有两大类的节点,一种我称之为“控制节点”,像“选择节点”,“并行节点”,“序列节点”都属于此类,这类节点负责行为树逻辑的控制,是和具体的游戏逻辑无关的,属于行为树库的一部分,并且这类节点一般不会作为叶节点。[......]

继续阅读

2012年1月29日13:59 | 没有评论
分类: 代码分享

最近一直在忙新项目的准备,甚少涉及AI的东西,所以博客也疏于更新。春节前,收到一个网友的邮件,说看了行为树的一些东西,但还是不知道如何去入手实现,我就乘着春节假期,动手写了一个简单的行为树的库,和大家一起边分析代码,边说说行为树的具体实现方法。这个库很简单,一共也就800行的代码左右,不过麻雀虽小,[......]

继续阅读

2012年1月27日18:08 | 没有评论
分类: 代码分享

自开博以来,经常会有网友发信给我,询问一些关于AI方面的问题,一般我都会尽力一一回答,也希望我的这些经验,对网友有些帮助,我想,有些问题可能是大家都会有的,所以,这一次,我会把一些网友的提问,和我的回答列在这个地方,供更多的同学参考,也欢迎一起讨论,才疏学浅,不吝赐教。

Q:你好,我在你的博客[......]

继续阅读

2011年12月19日17:09 | 4 条评论
分类: AI分享

记得以前我在博客中,提到过一种层次化的AI架构,这种架构的核心就是定义了“请求层”的概念,用来分隔决策和行为,并通过行为请求来清晰的定义了决策和行为之间的输入输出关系,不过,当我们仔细审视这个结构的时候,发现其中貌似缺失了对于某种情况的处理,这就是我今天要谈到,如何处理“被动式的行为请求”

一[......]

继续阅读

2011年11月5日13:45 | 没有评论
分类: AI分享

第一部分见这里
模式3:根据条件跳转到多个状态,包括自跳转

这是在状态机里最常见的模式,由于是基于条件的跳转,所以可以非常方便的用选择节点和前提的组合来描述,特别值得注意的是,对于自跳转而言,其实就是维持了当前的状态,所以,在构建行为树的时候,我们不需要特别考虑自跳转的转换。如下图所描述了,[......]

继续阅读

2011年9月19日21:08 | 2 条评论
分类: AI分享

选这次主题,要感谢一位网友的来信,他询问了一些如何将有限状态机转成行为树的问题,当时,我回信给了一些建议,但后来我仔细想了一下,觉得可能说得还不够全面,所以我就想通过这篇文章,来整理出一些比较典型的转化“模板”,给有这方面疑惑的朋友一些帮助,如果有朋友有一些自己的见解的,可以在后面留言,我们一起讨论[......]

继续阅读

2011年9月17日14:14 | 2 条评论
分类: AI分享

LOD(Level Of Detail)是3D渲染中用到的概念,按照wikipedia上的翻译,可以译为“细节层次”,它是一种根据与观察点的距离,来减低物体或者模型的复杂度来提升渲染效率的优化技术,因为显而易见的是,当一个物体离我们很远的时候,我们不需要用很复杂的多边形来绘制,只要用一个粗略模型或者[......]

继续阅读

2011年9月12日19:49 | 4 条评论
分类: AI分享

前置阅读推荐:1 2 3
一直在说AI可以分为决策层(Strategy Layer)和行为层(Behavior Layer),和行为层打交道最多的,就是动画了,说到动画,游戏引擎一般都会提供完整的底层的动画系统,包括如何转换数据,如何做动画Blend等等,但这些一般不属于AI程序员的工作范畴,所以[......]

继续阅读

2011年8月10日14:34 | 2 条评论
分类: AI分享

我们在学习程序的时候,都会提到一些逻辑计算方面的事情,像与(and),或(or),非(not)等,在编程语言层面也提供了相关的符号来表述逻辑的计算。我们都知道,对于AI来说,逻辑是非常重要的,一些简单的AI系统,就是由if-else搭起来的一个庞大的逻辑网,里面包含了各种预设好的可能性,最后得到一个[......]

继续阅读

2011年8月6日23:41 | 没有评论
分类: AI分享

这篇文章针对于已了解行为树和黑板的读者,如果不是很了解,请参考此处(123)。 黑板(Blackboard)是一种数据集中式的设计模式,一般用于多模块间的数据共享,我在做行为树的过程中,发现黑板非常适合作为行为树的辅助模块来使用,这次就来谈谈如何在行为树中使用黑板。 行为树的决策一般要依赖于外部[......]

继续阅读

2011年8月4日11:32 | 没有评论
分类: AI分享