基于行为树的AI 与 Behavior Designer插件

Composites
这里的"组合" 全名应该被成为“组合节点控制(管理)类目”,顾名思义在此条目下若干个选项都被称之为“控制类节点”,用以从最高的纬度去规范行为树的流程。具体细分为如下几种
Parallel 并行节点 此节点下属所有节点将一起进行,其中某一个执行返回false 则Parallel节点返回false
Parallel Selector 并行选择节点 此节点下属所有节点只要有一个返回success,则Parallel Selector节点返回success
注意: 以上二节点都是并行的,也就是说同时执行所有下属节点
Priority Selector 优选选择节点 此节点下属所有节点依次执行直到返回success
Random Selector 随机选择节点 此节点下属所有节点随机执行直到其中某一个返回success
Ramdom Sequence 随机选择列队节点 此节点下属所有节点随机执行直到其中一个返回false
Selector 选择节点 此节点下属所有节点依次执行直到返回true
Selector Evaluator 计算选择节点(姑且这样叫把,这个名词翻译的优点拗口) 此节点下属所有节点依次执行直到返回success,有一种情况使其返回running状态并中断,就是有节点被打勾了
Sequence 顺序节点 此节点下属所有节点依次执行直到返回false

Decorators
装饰节点应为Composites的分支节点,而装饰节点一般用来修饰判断,比如这个修饰可以是 “直到...成功”,“直到...失败”

Conditional Evaluator 条件计算节点 此节点下属节点执行直到返回success,有一种情况使其返回running状态并中断,就是有节点被打勾了

Interrupt 中断(开关)节点 此节点第一次执行为true第二次为false
Inverter 逆变节点 此节点的子节点如返回success他可将结果改为false反之也可
Repeater 重复节点 此节点可设置该节点下子节点重复执行的次数
Return Failure / Return Success 我就不解释了
Task Guard Task意为任务Guard意为守卫,那么这个节点是告诉我们可以用他来限定该节点的子节点不能同时被两项或以上的任务访问,换而言之该节点可以设置它的子节点能同时被几个任务(其余的节点)访问,类似于多线程访问统一资源我们所使用的Lock。
Until Fuilure / Until Success 直到...返回false/知道...返回Success 这两项我想也没有必要说明了,但看字面上的意思足够说明一切了。
Actions
动作或行为,如“攻击” “追逐”
Action有三大类,第一类为基础的API,第二类为基本的Monobehavior操作 如Animator,Animation,Behavior 等等,第三类为辅助API 都是使用反射处理,当然这个大类隐含着性能的损耗要谨慎使用
此处仅选必要的API解释,其余的相信你可以看懂
Behavior Tree Reference 此节点允许此节点的脚本中重写GetExternalBehaviors方法,也就是你可以在运行时指定一个行为树在当前节点下运行!(动态指定行为树)
Preform Interuption 此节点允许用户中断在节点列表中添加的任务(可以有很多任务)
Restart Behavior Tree 重启行为树
Stop Behavior Tree 终止行为树
另外 Action 一般我们程序需要扩展给策划配置 后文将提到如何自行扩展Action。
Conditionals
用于条件对比,例如 “是否为空” “是否是处于某状态” “是否接收到消息” “是否等于某数值”

作为行为树组建中最容易理解的Conditionals,在其基本API中大多以 "Is has XXX" 开头,顾名思义即可
如何扩展(程序)
创建一个自定义行为(Action)或是节点

相关文档
http://www.opsive.com/assets/BehaviorDesigner/documentation.php?id=5
使用运行时(Runtime)设置的数值
在编辑器中设置的数值有两种一种是在使用功能性节点的时候节点中需要预设的数值,另一种是全局可访问到的数值
添加wait节点的暂停时间
添加全局可访问的数值
非运行时可以使用刚才设置的float数值
当然也可使用全局数值
说完了使用编辑器访问数值现在该使用运行时动态获取这些数值了,代码很简单
相关文档
http://www.opsive.com/assets/BehaviorDesigner/documentation.php?id=54
基于行为树的AI 与 Behavior Designer插件的更多相关文章
- 【转】利用Behavior Designer制作敌人AI
http://www.unity.5helpyou.com/3112.html 本篇unity3d教程,我们来学习下利用Behavior Designer行为树插件来制作敌人AI,下面开始! Beha ...
- 做游戏长知识------基于行为树与状态机的游戏AI(一)
孙广东 2014.6.30 AI. 我们的第一印象可能是机器人,如今主要说在游戏中的应用. 现代的计算机游戏中已经大量融入了AI元素,平时我们进行游戏时产生的交互都是由AI来完毕的.比方在RPG游戏中 ...
- Unity教程之-基于行为树与状态机的游戏AI
AI.我们的第一印象可能是机器人,现在主要说在游戏中的应用.关于AI的相关文章我们在前面也提到过,详细请戳这现代的计算机游戏中已经大量融入了AI元素,平时我们进行游戏时产生的交互都是由AI来完成的.比 ...
- Unity火爆插件Behavior Designer行为树插件学习
如果要让游戏里的角色或者NPC能执行预设的AI逻辑,最简单的用IF..ELSE...神器既可以实现, 但是再复杂的一般用经典的状态机来切换状态,但是写起来比较麻烦.相对的,行为树(Behavior T ...
- unity行为树制作AI简单例子(1)
用行为树来制作AI是非常方便的,今天就给大家简单介绍一下行为树的强大之处. 所用插件 Behavior Designer v1.421 最开始 我使用过Rain插件,不过用过Behavior Desi ...
- Behavior Designer中的内置消息机制
最近在用Behavior Designer,其中需要用到消息机制,看了一下其中自带了这套东西 注册 Owner.RegisterEvent<string>("Message&qu ...
- 基于trie树做一个ac自动机
基于trie树做一个ac自动机 #!/usr/bin/python # -*- coding: utf-8 -*- class Node: def __init__(self): self.value ...
- 查找(四)-------基于B树的查找和所谓的B树
关于B树,不想写太多了,因为花在基于树的查找上的时间已经特么有点多了,就简单写写算了,如果以后有需要,或者有时间,可以再深入写写 首先说一下,为什么要有B树,以及B树是什么,很多数据结构和算法的书上来 ...
- 基于R树索引的点面关系判断以及效率优化统计
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 在之前的博客中,我分别介绍了基于网格的空间索引(http:// ...
随机推荐
- 浮动和margin负值 三列布局
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- 反片语(Ananagrams,Uva 156)
输入一些单词,找出所有满足如下条件的单词:该单词不能通过字母重排,得到输入文 本中的另外一个单词.在判断是否满足条件时,字母不分大小写,但在输出时应保留输入中 的大小写,按字典序进行排列(所有大写字母 ...
- 【01】CSS3 Gradient 分为 linear-gradient(线性渐变)和 radial-gradient(径 向渐变)(转)
CSS3 Gradient 分为 linear-gradient(线性渐变)和 radial-gradient(径 向渐变).而我们今天主要是针对线性渐变来剖析其具体的用法.为了更好的应用 CSS3 ...
- JavaScript学习总结(12)——2016 年 7 个顶级 JavaScript 框架
当涉及到Web开发时,JavaScript框架往往是一些开发人员和企业最受欢迎的平台.可能,你有机会尝试过一两个顶级的JavaScript框架,但你仍然有点不确定哪个才是最佳的最值得掌握的,或者哪个值 ...
- POJ 1226 Substrings
Substrings Time Limit: 1000ms Memory Limit: 10000KB This problem will be judged on PKU. Original ID: ...
- Codeforces Round #240 (Div. 2) D
, b2, ..., bl (1 ≤ b1 ≤ b2 ≤ ... ≤ bl ≤ n) is called good if each number divides (without a remainde ...
- RSA的共模攻击
实验吧题目:http://www.shiyanbar.com/ctf/1834 参考:http://hebin.me/2017/09/07/%e8%a5%bf%e6%99%aectf-strength ...
- 中庸之道(codevs 2021)
题目描述 Description 给定一个长度为N的序列,有Q次询问,每次询问区间[L,R]的中位数. 数据保证序列中任意两个数不相同,且询问的所有区间长度为奇数. 输入描述 Input Descri ...
- [bzoj1617][Usaco2008 Mar]River Crossing渡河问题_动态规划
River Crossing渡河问题 bzoj-1617 Usaco-2008 Mar 题目大意:题目链接. 注释:略. 想法:zcs0724出考试题的时候并没有发现这题我做过... 先把m求前缀和, ...
- 洛谷——P1082 同余方程
P1082 同余方程 题目描述 求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解. 输入输出格式 输入格式: 输入只有一行,包含两个正整数 a, b,用一个空格隔开. 输出格式: 输 ...