您的位置:首页 > 大数据 > 人工智能

行为树-学习笔记(3)-rain插件做简单的敌人AI(2)

2016-01-05 11:38 731 查看

巡逻路径与行为树初步

资源已上传AI学习demo

巡逻路径的制作

在制作AI行为树之前,先要把巡逻路径做出来。



本次制作用到 Navigation Mesh 与 Waypoint Route 这两个组件。

首先创建 Waypoint Route



我们可点击Add 或用 快捷键 添加 巡逻点,巡逻点重叠在一起,移动开就可以,自己布置巡逻路径即可。



巡逻点就是圆圈 一共四个

再看Drop to surface 就是巡逻点贴到地面的意思。

下一步创建Navigation Mesh



这个是计算碰撞体的,检测周围不可穿越的物体之类的,比如上图中白色障碍物。

用included layers 可忽略或增加某层的检测,比如上图,意思是检测一切的物体,你可以选择。

这个检测 是有范围的,可以调整范围到合适的大小,这样计算的时间会缩短。

调好后 点击Generate Navigation Mesh

不满意可点击下面clear Navigation Mesh,重来。



看那紫色的框框就是 检测范围 自己调即可 用scale调也行。

行为树编辑初步

点击菜单栏中RAIN 中的 Behavior tree editor



右侧有create 点后出现如上图,起个名字即可

最初会出现BT节点(视为开始),和一个顺序子节点seq

右击顺序节点Create,即可创建子节点。下面介绍一下各个节点



节点分为Action与Decision,简单理解 Action 就是执行节点,Decision就是选择逻辑,决定最终执行哪个Action。

Action部分

{

Animate 播放动画

Audio 播放声音

Custom Action 执行自己写的类(自己写的类会挂载上面)

Detect 通过监视器(sensor 讲AI组件时提到过分为声音或视觉监视)捕捉对象(寻找敌人),形成对象存到 AI组件Memoery中(就是那个灯泡图标的,游戏运行时,会动态的进行)

Expression表达式 可以写一些表达式判断对错后返回true 或 false(有什么用等等再说)

Mecanim 动画状态机可以改变状态机参数来控制动画播放

Move 移动就是移动到目标(巡逻或发现敌人时可用)

Timer 延时,表达式可以用random 也可常数

Yield和协程有关自己看

}

Decision部分(决定节点执行的顺序或方法)

{

constraint 条件 达到条件执行子节点

custom decision自定义条件 自己写类

iterator 反复执行子节点一定次数

parallel 平行的执行子节点

priority 优先执行 并反复执行 子节点

random 随机执行子节点

selector 选择某个子节点执行

sequencer 按重上到下,的顺序一次执行子节点

waypointpatrol 选择对应 Waypoint Route,巡逻节点

waypointpath 对应 Waypoint network那种路线(本例中不用)

}

行为树从上到下执行完一遍后不会在执行,除非(1)执行节点选择的是forever,或是其他两种(2)选择节点,条件节点条件改变需要再次执行到子节点。



就到这里了-下次-行为树编辑巡逻功能的实现

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  unity3d ai 插件