Unreal Engine 5.1 AI行为树基础入门

news2024/10/6 6:49:00

ai行为树理解起来其实是npc根据自身一些情况进行一些逻辑执行,而这些逻辑是我们使用ai行为树去实现的。
ai行为树需要一个寻路网格体边界体积,在ue引擎中,体积Actor分为多种,寻路网格体边界体积只是其中的一种。
关于其它的体积,可以在官网网站查看
在这里插入图片描述
通过上面的介绍,我们可以得知,这种体积可以生成一个角色可以移动的区域,实现自动寻路,而ai行为树会需要很多这种移动的行为,比如npc去寻找敌人并攻击。
可以在体积列表下找到寻路网格体边界体积
在这里插入图片描述
然后设置体积的缩放,让体积包围住整个可以移动的区域,按p键可以查看区域。
在这里插入图片描述
如果你需要一些动态物体的阻挡,那么需要将网格体更新设置成动态
在这里插入图片描述

在蓝图中使用导航数据

AI MoveTo节点使用
Pawn 需要自动移动的角色
Destination 一个明确的位置
Target Actor 一个明确的对象可以和位置二选一设置
Acceptance Radius 和目标的距离半径内
Stop on Overlap 进入目标半径后是否停止寻路
在这里插入图片描述

首先实现一个跟随主角的效果,只需要通过AI MoveTo节点,便可以实现设置跟随主角,设置定时器,更新位置即可,
在这里插入图片描述
我又有灵感,制作了另外一个版本,根据距离如果超过一定距离以后,再去跟随
在这里插入图片描述
实现随机位置移动,获取半径能氪抵达的随机位置,一种需要调用,另一种不需要
在这里插入图片描述

相关组件的介绍

要实现AI行为树去控制角色,那么需要创建几个文件:
在这里插入图片描述

AIController AI控制器,作为AI的入口,用来去驱动Pawn或Charactor的行为,修改设置在黑板里的数据。
在AI控制器内,可以添加一些AI感知组件,更好的处理一些操作。
在这里插入图片描述
使用AI控制器需要在角色蓝图上设置。
在这里插入图片描述
BehaviorTree 行为树里面主要行为控制,根据数据判断进行逻辑运行。ai控制器可以选择去使用哪个行为树去运行,你需要在ai控制器内指定运行的行为树
在这里插入图片描述

BlackboardData 黑板数据主要存储一些变量,AI控制器主要去修改,行为树用于去进行逻辑判断。黑板的数据需要在行为树内指定,然后才可以在行为树内使用。
在这里插入图片描述

行为树需要从根部向下添加选择器(Selector) 节点
在这里插入图片描述
合成(Composites) 节点是流控制的一种形式,决定了与其相连的子分支的执行方式。

  1. 选择器(Selector) 从左到右执行分支,通常用于在子树之间进行选择。当选择器找到能够成功执行的子树时,将停止在子树之间移动。举例而言,如果AI正在有效地追逐玩家,选择器将停留在那个分支中,直到它的执行结束,然后转到选择器的父合成节点,继续决策流。
  2. 序列(Sequence) 从左到右执行分支,通常用于按顺序执行一系列子项。与选择器节点不同,序列节点会持续执行其子项,直到它遇到失败的节点。举例而言,如果我们有一个序列节点移动到玩家,则会检查他们是否在射程内,然后旋转并攻击。如果检查玩家是否在射程内便已失败,则不会执行旋转和攻击动作
  3. 简单平行(Simple Parallel) 简单平行节点有两个"连接"。第一个是主任务,它只能分配一个任务节点(意味着没有合成节点)。第二个连接(后台分支)是主任务仍在运行时应该执行的活动。简单平行节点可能会在主任务完成后立即结束,或者等待后台分支的结束,具体依属性而定。

以上摘自官网 https://docs.unrealengine.com/4.27/zh-CN/InteractiveExperiences/ArtificialIntelligence/BehaviorTrees/BehaviorTreeQuickStart/
接下来的实现也是基于官方的,如果有需要,请移至官方查看。

任务可以在行为树上面的栏目选择创建
在这里插入图片描述
创建出来的任务,官方推荐使用BTT作为前缀
在这里插入图片描述
创建的任务中,添加事件接收执行AI,然后在后面可以执行一些逻辑,记得任务完成以后,要设置完成执行,不管成功不成功。
在这里插入图片描述

使用AI行为树实现官方案例

首先在黑板里面创建相应的变量
在这里插入图片描述
然后再ai角色蓝图内使用AI控制器
在这里插入图片描述
然后在AI控制器内设置使用行为树
在这里插入图片描述
然后增加视觉感知
在这里插入图片描述
设置检测中立方是因为按归属设置需要C++源码,然后在主角蓝图上面设置tag检测
在这里插入图片描述
在AI控制器中事件点击目标感知更新时回调
在这里插入图片描述
在更新时,判断是否为玩家标签,然后判断是否获取成功,设置分支
在这里插入图片描述
如果失败了,设置定时器,然后设置了每4s调用一次事件
在这里插入图片描述
如果获取了玩家角色实例,那么清除掉定时器,然后设置黑板的值。这样,行为树可以根据黑板的值进行逻辑运行。
在这里插入图片描述
注意这个黑板是黑板对象,不是黑板组件
在这里插入图片描述
然后行为树按照官方设置,注意节点右上角的数字,是当前的执行顺序。
在这里插入图片描述
根节点是选择跟
在这里插入图片描述
追逐玩家节点增加了一个装饰器黑板,观察器中止设置为both,是在黑板的值未改变之前,中止掉其它所有的执行,观察的值则是黑板上写的变量是否看到玩家,这个值改变时,会重新运行这个节点。
在这里插入图片描述
追逐玩家序列节点下面有三个任务,它们会按照顺序执行,找到玩家会朝向玩家,然后修改移动速度,并朝向玩家移动。
在这里插入图片描述
追逐玩家任务节点是我们自己实现的一个任务,在里面实现了对当前ai持有者的速度修改
在这里插入图片描述
然后就是第二个节点巡逻,第一个设置速度和位置,第二个节点朝向巡逻目标移动,移动成功后,等待3s-5s
在这里插入图片描述
第一个节点就是自定义任务,里面随机了一个可以移动到的节点,如果没有随机到的话,就原地移动。
在这里插入图片描述

接下里就是执行的问题
在这里插入图片描述
追逐玩家是需要黑板上的能够看到玩家这个值,如果这个值为false,会触发整个ai重新运行,然后直接跳到巡逻序列,巡逻序列会一直执行下去,直到能够看到玩家的值改变。
所以,追逐玩家,优先级最高,每次都是先运行,不可运行才会去巡逻,第十个等待在这个逻辑里面是运行不到的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/642765.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

leetcode:448. 找到所有数组中消失的数字(python3解法)

难度:简单 给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。 示例 1: 输入:nums [4,3,2,7,8,2,3,1] 输出&…

初识网络之https的加密与解密

目录 一、https协议的概念 二、加密的概念 三、为什么需要加密 四、常见的加密方式 1. 对称加密 2. 非对称加密 五、数据摘要(数据指纹) 六、数据签名 七、加密方案 1. 方案一:只使用对称加密 2. 方案二:只使用非对称加…

院士大咖齐聚蓉城,论道“疑难眼眶病学术论坛”

“全国疑难眼眶病诊疗带教基地”成立,力促“病有所医 ” 大咖云集,这是一场眼科界领军人汇聚一堂,聚焦疑难眼眶病突破性学术成果及前沿技术的高规格论坛; 规模空前,这是一场围绕眼眶病诊疗技术议题深入探讨交流,为我国…

行为型设计模式08-职责链模式

🧑‍💻作者:猫十二懿 ❤️‍🔥账号:CSDN 、掘金 、个人博客 、Github 🎉公众号:猫十二懿 职责链模式 1、职责链模式介绍 责任链模式(Chain of Responsibility Pattern)…

seatunnel入门案例,集群模式

目录 安装部署 解压 环境变量 安装plugin 添加资源jar包 SEATUNNEL 配置文件 env:环境设置 source:数据源设置 sink:数据去向设置 transform: 数据转换设置 运行方式 seatunnel 引擎(zeta) 本地模式 集群模式 安装部署 解压 tar…

Centos7在Nginx中配置SSL证书

我的环境 阿里云轻量应用服务器(Linux, Centos7.9 x64) 一、申请免费SSL证书 一年可以创建20个 下载证书(我是Nginx服务器) 下载到本地后,打开有两个文件: 二、将SSL证书文件上传至服务器 通过WinScp拖…

图像sensor的特性和驱动解析

1、更换OV9712并且做配置更改和测试 1.1、更改配置脚本 修改Hi3518E_SDK_V1.0.3.0\package\mpp\sample\Makefile.param 1.2、测试运行 运行官方SDK sample的测试版本(打包到本地) 运行ORTP传输的测试版本(RTP实时预览) 1.3、更…

如何高效合理规划每天的工作?

如何高效合理规划每天的工作? 〇、基本原则 梳理工作,明确目标。(SMART法则)轻重缓急,排优先级。(四象限管理法则)要事第一,尽管去做。(GTD 理论)限时deadl…

新买的电脑怎么用U盘重装系统?新买的电脑用U盘重装系统教程

新买的电脑怎么用U盘重装系统?用户新买了电脑,想知道怎么用U盘来重装新买的电脑,用U盘来重装电脑其实非常简单,用户需要准备一个U盘,然后完成U盘启动盘的安装,接着按照以下分享的新买的电脑用U盘重装系统教…

[Hadoop安装配置 ]

目录 前言: 执行步骤: 1 创建好目录文件,上传Hadoop版本压缩包,一般都是tar.gz 结尾包 1.1这里压缩包可以直接拖拽到指定虚拟机目录下, 例如xshell连接指定虚拟机, 然后可以拖拽,如果拖拽不了,那就需要设置一下配置, 或者 使用 xftp工具 连接xshell 然后上传文件 2 解压…

pandas---数据合并(concat、append、merge)

1. concat函数 pd.concat([data1, data2], axis1) 按照行或列进行合并,axis0为列索引,axis1为行索引。 df1 make_df([1, 2], [A, B]) df2 make_df([3, 4], [A, B]) display(df1, df2) # 默认上下合并,垂直合并 pd.concat([df1, df2]) …

【机器学习】——学习的基本分类:算法模拟的根本出发点!

目录 引入 一、分类 1、基于学习策略的分类 2、基于所获取知识的表示形式分类 3、按应用领域分类 4、综合分类 二、研究领域 引入 机器学习是继专家系统后人工智能的又一重要研究领域!机器学习是研究计算机怎样模拟或实现人类的学习行为,以获取新…

前端面试经验技巧分享

👩 个人主页:不爱吃糖的程序媛 🙋‍♂️ 作者简介:前端领域新星创作者、CSDN内容合伙人,专注于前端各领域技术,成长的路上共同学习共同进步,一起加油呀! ✨系列专栏:前端…

NVIDIA的StyleGAN、StyleGAN2、StyleGAN3系列论文解读,梳理基于风格的生成器架构

通俗来讲就是,张三造假币(Generator生成器),然后用验钞机去验证真假(Discriminator辨别器),如果是假的就继续提高造假技术,直到验钞机检验不出来为止,也就是说一个造假一个验假(验钞机也需升级),两者互相学…

Redis集群部署

Redis集群部署 1.单机安装Redis2.Redis主从集群2.1.集群结构2.2.准备实例和配置2.3.启动2.4.开启主从关系2.5.测试 3.搭建哨兵集群3.1.集群结构3.2.准备实例和配置3.3.启动3.4.测试 4.搭建分片集群4.1.集群结构4.2.准备实例和配置4.3.启动4.4.创建集群4.5.测试4.5.测试 本章是基…

安全 --- 内网基础知识(01)

内网基础知识 (1)概念 内网也称局域网(Local Area Network,LAN)是指在某一工作区域内由多台计算机互联形成的计算机组,一般是方圆几千米内。局域网可实现文件管理、应用软件共享、打印机共享、工作内的历…

新一代绿色智慧数据中心电气规划设计与常识(一)

绿色智慧数据中心 随着大数据、云计算、人工智能、区块链、ChatGPT等技术加速创新,数字文化产业发展动力强劲,不断解锁新兴业态。近年来,各级政府重要会议中也多次强调“新基建”今后一段时期驱动新一轮产业革命的战略性新兴产业&#xff0c…

软件测试06:软件测试原则和黑盒测试用例设计方法

软件测试原则 所有测试的标准都是建立在用户需求之上软件测试必须基于"质量第一"的思想去开展各项工作,当时间和质量冲突时,时间要服从质量事先定义好产品的质量标准,只有有了质量标准,才嫩如果根据测试的结果&#xf…

今年找工作真的好难啊,一秒泪崩

在入行前端开发之前,我看过了很多从学校毕业之后一事无成的人,而我心气比较高,接受不了自己也一样浑浑噩噩地过。偶然机会接触到了前端开发,觉得很有意思,思考再三之后,决定去做这件自己喜欢又能有所成就的…

散热差、设计古板,因循守旧的联想Thinkpad还能获得忠粉的青睐吗?

拥有航天梦想的联想ThinkPad,在5月18日的新品发布会上,再次与中国航天太空创想达成了合作,将整场发布会的格调提升到了没有“边际”的高度。 发布会上,联想ThinkPad宣布了几款新品的面世,产品性能的升级和优化必不可少…