UE4的AI学习(1)——基本概念
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)——基本概念的更多相关文章
- UE4的AI学习(2)——官方案例实例分析
官方给出的AI实例是实现一个跟随着玩家跑的AI,当玩家没有在AI视野里时,它会继续跑到最后看到玩家的地点,等待几秒后如果仍然看不到玩家,则跑回初始地点.官方的案例已经讲得比较详细,对于一些具体的函数调 ...
- AI - 学习路径(Learning Path)
初见 机器学习图解 错过了这一篇,你学机器学习可能要走很多弯路 这3张脑图,带你清晰人工智能学习路线 一些课程 Andrew Ng的网络课程 HomePage:http://www.deeplearn ...
- AI学习经验总结
我的人工智能学习之路-从无到有精进之路 https://blog.csdn.net/sinox2010p1/article/details/80467475 如何自学人工智能路径规划(附资源,百分百亲 ...
- 【摸鱼向】UE4的AI模块探索手记(1)
前言 之前实现了自主创作的角色导入进UE4并成功控制其进行一系列动作,但目前的样子距离基本的游戏架构还差了一个很大的模块:NPC,而这部分是由电脑来进行自动控制,所以,我有一句话不知当讲不当讲(对,我 ...
- Oracle RAC学习笔记:基本概念及入门
Oracle RAC学习笔记:基本概念及入门 2010年04月19日 10:39 来源:书童的博客 作者:书童 编辑:晓熊 [技术开发 技术文章] oracle 10g real applica ...
- Java IO学习笔记:概念与原理
Java IO学习笔记:概念与原理 一.概念 Java中对文件的操作是以流的方式进行的.流是Java内存中的一组有序数据序列.Java将数据从源(文件.内存.键盘.网络)读入到内存 中,形成了 ...
- Prolog学习:基本概念 and Asp.net与Dojo交互:仪器仪表实现
Asp.net与Dojo交互:仪器仪表实现 项目中需要用到仪器仪表的界面来显示实时的采集信息值,于是便遍地寻找,参考了fusionchart和anychart之后,发现都是收费的,破解的又没有这些功能 ...
- Python学习:基本概念
Python学习:基本概念 一,python的特点: 1,python应用场景多;爬虫,网站,数据挖掘,可视化演示. 2,python运行速度慢,但如果CPU够强,这差距并不明显. 3,严格的缩进式编 ...
- DeepLearning.ai学习笔记汇总
第一章 神经网络与深度学习(Neural Network & Deeplearning) DeepLearning.ai学习笔记(一)神经网络和深度学习--Week3浅层神经网络 DeepLe ...
随机推荐
- 从网上整理的一些delphi字符串加密解密方法
function Encode(Str: string): string; var //加密 TmpChr: AnsiChar; i, Len: integer; begin Result := St ...
- BZOJ2049[Sdoi2008]洞穴勘测——LCT
题目描述 辉辉热衷于洞穴勘测.某天,他按照地图来到了一片被标记为JSZX的洞穴群地区.经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好两个洞穴.假如 ...
- Chrome 屏蔽广告
转载: http://blog.csdn.net/yenange/article/details/76145216 1. 上网站: http://www.adtchrome.com/ Chorme下载 ...
- bzoj 4552 [Tjoi2016&Heoi2016]排序 (二分答案 线段树)
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=4552 题意: 给你一个1-n的全排列,m次操作,操作由两种:1.将[l,r]升序排序,2 ...
- pycharm同级目录导入问题
在PyCharm2017中同目录下import其他模块,会出现No model named ...的报错,但实际可以运行 这是因为PyCharm不会将当前文件目录自动加入source_path. 在当 ...
- matplotlib fill和fill_between
import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 5 * np.pi, 1000) y1 = np.sin(x ...
- pandas merge
merge pandas的merge方法提供了一种类似于SQL的内存链接操作,官网文档提到它的性能会比其他开源语言的数据操作(例如R)要高效. merge的参数 on:列名,join用来对齐的那一列的 ...
- springboot 读取 resource文件
文件位置信息如图: import java.io.IOException; import java.io.InputStream; import java.net.URLEncoder; import ...
- JAVA过滤器的使用(Filter)
request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf ...
- NO.9: 令operator=返回一个reference to *this
1.令赋值操作返回一个reference to *this(除非你有个标新立异的理由,那就随大众- - )