AI学习当中,不学习行为树基本概念就不能明白具体实例中的操作意义,但是没有经过具体实例实验,又觉得基本概念抽象难以理解。建议先泛读(1)(2)后再对具体的细节进行死磕,能较深的理解行为树的具体概念。第一节对行为树的基本概念做个简要的介绍,第二节对行为树的官方案例做进一步分析。个人的学习顺序(2)->(1)       ->(2),请感兴趣的同学根据自己的喜好自行调整阅读顺序。

一、AI学习中的两大概念

1.行为树

行为树是驱动AI运动以及做出AI决策的一棵逻辑树。

图一

2.Blackboard

行为树中所需的数据都存储在Blackboard里。

二、行为树中的几大节点

1.Root节点

Root节点是行为树的根。

特点:

(1)只能有一个连接

(2)无法被Decorator或Sevice节点附着

(3)Root没有自身属性,选中后可以显示行为树的属性,如:Blackboard资源。

2.Composite节点

Composite是行为树分支的非Root非叶子节点,即对分支以及分支的执行方式进行定义。

有三种类型的Composite节点:

(1)Selector

(2)Sequence

(3)SimpleParallel

3.Task节点

Task节点是行为树的叶子节点,也是行为树的执行节点,可用来执行具体的任务。如:移动AI,发出噪音等。

4.Decorator节点

Decorator节点是行为树中的条件判断语句。它们可以附着在Composite节点或者Task节点上,实现分支数的调整以及Task节点的执行与否。如:判断的AI当前距离与玩家的距离是否小于阈值。图中的蓝色框图都是Decorator节点。需要注意的是:图中的Blackboard Based Condition是Decorator节点是判断Blackboard中的某个key值是否被set,而Blackboard里的数据去Blackboard
asset中查看。

5.Service节点

Service节点是行为树中Tick的存在。它们附着在Composite节点上,而且只有当Composite节点的分支被执行时,Service节点才会按所定义的频率进行执行。Service节点通常对Blackboard的值进行更新和修改,如:检测AI附近是否有玩家,有的话将Blackboard里定义的bool变量bIsEnemyNearBy置为True。

UE4的AI学习(1)——基本概念的更多相关文章

  1. UE4的AI学习(2)——官方案例实例分析

    官方给出的AI实例是实现一个跟随着玩家跑的AI,当玩家没有在AI视野里时,它会继续跑到最后看到玩家的地点,等待几秒后如果仍然看不到玩家,则跑回初始地点.官方的案例已经讲得比较详细,对于一些具体的函数调 ...

  2. AI - 学习路径(Learning Path)

    初见 机器学习图解 错过了这一篇,你学机器学习可能要走很多弯路 这3张脑图,带你清晰人工智能学习路线 一些课程 Andrew Ng的网络课程 HomePage:http://www.deeplearn ...

  3. AI学习经验总结

    我的人工智能学习之路-从无到有精进之路 https://blog.csdn.net/sinox2010p1/article/details/80467475 如何自学人工智能路径规划(附资源,百分百亲 ...

  4. 【摸鱼向】UE4的AI模块探索手记(1)

    前言 之前实现了自主创作的角色导入进UE4并成功控制其进行一系列动作,但目前的样子距离基本的游戏架构还差了一个很大的模块:NPC,而这部分是由电脑来进行自动控制,所以,我有一句话不知当讲不当讲(对,我 ...

  5. Oracle RAC学习笔记:基本概念及入门

    Oracle RAC学习笔记:基本概念及入门 2010年04月19日 10:39 来源:书童的博客 作者:书童 编辑:晓熊 [技术开发 技术文章]    oracle 10g real applica ...

  6. Java IO学习笔记:概念与原理

    Java IO学习笔记:概念与原理   一.概念   Java中对文件的操作是以流的方式进行的.流是Java内存中的一组有序数据序列.Java将数据从源(文件.内存.键盘.网络)读入到内存 中,形成了 ...

  7. Prolog学习:基本概念 and Asp.net与Dojo交互:仪器仪表实现

    Asp.net与Dojo交互:仪器仪表实现 项目中需要用到仪器仪表的界面来显示实时的采集信息值,于是便遍地寻找,参考了fusionchart和anychart之后,发现都是收费的,破解的又没有这些功能 ...

  8. Python学习:基本概念

    Python学习:基本概念 一,python的特点: 1,python应用场景多;爬虫,网站,数据挖掘,可视化演示. 2,python运行速度慢,但如果CPU够强,这差距并不明显. 3,严格的缩进式编 ...

  9. DeepLearning.ai学习笔记汇总

    第一章 神经网络与深度学习(Neural Network & Deeplearning) DeepLearning.ai学习笔记(一)神经网络和深度学习--Week3浅层神经网络 DeepLe ...

随机推荐

  1. Performance testing test scenarios

    1 check if page load time is within acceptable range2 check page load on slow connections 3 check re ...

  2. js this小记

    在JavaScript中,this 对象是在函数被调用时动态定义的. JS中有三种方法来设置this对象: someThing.someFunction(arg1, arg2, argN) someF ...

  3. 改变自己从学习linux开始

    刚刚高中毕业,进如大学的时候,总以为摆脱了束缚可以无拘无束的玩耍了.当时真的就是和众多大学生一起,像撒欢的野马,每天逃课,上网,泡吧,不把学习当一会事,学校里教授讲的各种知识也没有听在心里,前两年玩的 ...

  4. 【BZOJ3817/UOJ42】Sum(类欧)

    [BZOJ3817/UOJ42]Sum(类欧) 题面 BZOJ UOJ 题解 令\(x=\sqrt r\),那么要求的式子是\[\sum_{d=1}^n(-1)^{[dx]}\] 不难发现,对于每个\ ...

  5. FreeRTOS不允许在中断服务程序和临界段中执行不确定的性的操作

    举例 等待事件标志组的任务,要是在中断服务程序中设置事件标志组,但不知道当前有多少个任务在等待此事件标志,这个操作即为不确定性操作,为了不在中断服务程序中执行此不确定性操作,只在中断服务程序中给一确定 ...

  6. java.net.SocketException: Connection reset 硬件防火墙也有罪?

    今天早上例行进行远程备份,可是我却发现,整个备份过程无法顺利完成. 在备份的过程中不断的抛出异常: java.net.SocketException: Connection reset 奇怪,在之前的 ...

  7. Pycharm激活、配置以及快捷方式 | 图解

    访问flyai.club,一键创建你的人工智能项目 来源 | Python (python6359) Pycharm可以去官网下载 Pycharm的安装激活 jar包的目的就是让截获截止时间并骗过py ...

  8. 常用nginx rewrite重定向-跳转实例:

    1,将www.myweb.com/connect 跳转到connect.myweb.com rewrite ^/connect$ http://connect.myweb.com permanent; ...

  9. 在子类中调用父类的方法super

    1.没有super之前,在子类里面需要父类里面的逻辑,但是我们是通过派生(自己定义了一个init,增加了一条line) class vehichle:#定义一个交通工具的类 Country=" ...

  10. JWT简介

    JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案,本文介绍它的原理和用法. 一.跨域认证的问题 互联网服务离不开用户认证.一般流程是下面这样. 1.用户向服务器发送用户名和密 ...