迈布-----UE4AI自动巡逻与攻击
这个行为树给我恶心的都想吐,我用的是4.24,跟着官网做达不到那个效果,跟着视频做也达不到那个效果,跟我弄的非常不耐烦,最后终于在今天整出来了。有的地方用了一下我自己的逻辑。//诸位依靠教程的,一定得自己动脑思考,锻炼独立编码的能力,不要“过度”依赖教程,要学会举一反三
我用的是第三人称模板

OK,我来给你从1讲到8,其中一个没啥用
首先第一个,是行为树里面的一个服务,
ps:若不知道行为树服务是什么的话参考官方文档:https://docs.unrealengine.com/zhCN/Engine/ArtificialIntelligence/BehaviorTrees/BehaviorTreesOverview/index.html
里面的逻辑我当你说一下,获取玩家坐标,AI坐标,玩家到AI坐标相减画一条线,最后合一,好像叫什么Nor......,我们就记他Nor,这个是合一向量的,
之后去前方坐标,Forward,这两个东东点乘,也就是dot,然后去反余弦值,判定,是否在55°角之内,设一个if分支
如果是,则说明看见玩家了,采用追逐(Attack),如果没有,采用不追逐(Idle)
ps:若不知道点乘:https://blog.csdn.net/kebu12345678/article/details/80724336 这个博客可以参考一下。
第二个,黑板,节点:TargetActor,Object类型,底下要设为Actor;枚举类型:目的是定义AI攻击还是不攻击(巡逻),两种状态,Idle,Attack,均为枚举类型
那么第一个蓝图,行为树服务蓝图就可以设置黑板值了,蓝图SetBlackBoardASObject,新建一个变量,类型为BlackBoardKey,名字TagetActor,把它和蓝图SetBlackBoardASObject键值连上,还有个Object就是GetPlayerCharacter,我是凭记忆写的不一定正确,把它和Object连上。
设置枚举,SetBlackBoardAsEnum,枚举在黑板上确认使用上图第5个,也就是AI_Enum,枚举选项选择那个Attack,不是idle。因为已经发现玩家了,应该是攻击
忘了说了第一个一开始调用的是 事件 Tick AI,我是凭记忆写的,每秒更新AI,
在if那个false分支上,重复上面的,调用Idle,好像还有个事件,再次调用AI,好像是A打头的,事件 A...... AI......
在那里再调用一遍SetBlackBoardAsEnum 值为Idil
在这里设置速度,因为我是默写,所以把思路写下来:
首先先GetMovementComponent,castToMoveComponentCharacter,SetMaxWalkSpeed,
我头疼就头疼在这儿,因为我一设置单独的速度task,或者函数,寻路就不成功,所以我把它给设置到服务里了。

这个是行为树,我追逐玩家和巡逻的行为树,
第4个,控制蓝图,一定要把AIcharacter类里面的AI控制改为这个我们新建的AI控制,我这个是AI_Controller,设置的话在组件图标中最上面的,细节面板应该能看到,第8个就是我的character,我把第三人称那个给拷贝了一份,然后清空里面的事件。摄像机和弹簧臂我都给删了。
控件蓝图需要写一个EventBegin,就是默认三个事件中的最上面的那个,让RunBehaviourTree与他连接。
别忘了把BehaviourTree设置为我们新建的Tree,我这个是AI_BT,蓝图节点有选项的,选择我们建的蓝图就可以了
第6个巡逻,我不写了,太累了,上图讲一下重点。

主要用到MoveToLocation,移动到坐标,下面的三个是检测移动成没成功,成功后,FinishExcute结束事件,我觉得没有必要,直接一个结束事件得了
ReceiveExcuteAI,这个节点是此任务运行时,就是行为树指到到你这个任务时出发的,上面4个是设置速度的,那个GetRandomLocation...的是获取随机坐标,
我直接用ActorLocation。
上面那个树节点MoveTo是移动到,选择器上的装饰器设置如下:


开发一定要自己动脑,不要“过度”依赖教程
后记:Nav...mesh打头的在编辑器界面左面搜索,这个是路径追踪,让它覆盖游戏中的所有物体,然后按下P键即可设置完毕,设置完是绿色的。
迈布-----UE4AI自动巡逻与攻击的更多相关文章
- 分布式拒绝服务攻击 DDoS
分布式拒绝服务(DDoS:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒 ...
- 基于Armitage的MSF自动化集成攻击实践
基于Armitage的MSF自动化集成攻击实践 目录 0x01 实践环境 0x02 预备知识 0x03 Armitage基础配置 0x04 Nmap:Armitage下信息搜集与漏洞扫描 0x05 A ...
- Armitage攻击winxp——P201421410029
实验简介 实验所属系列: 安全工具使用 实验对象:本科/专科信息安全专业 相关课程及专业: linux基础.网络安全 实验类别: 实践实验类 预备知识 Armitage基本介绍 Armit ...
- Linux下防御DDOS攻击的操作梳理
DDOS的全称是Distributed Denial of Service,即"分布式拒绝服务攻击",是指击者利用大量“肉鸡”对攻击目标发动大量的正常或非正常请求.耗尽目标主机资源 ...
- 如何配置Linux系统防火墙,以防止DDOS攻击?
虚拟主机服务商在运营过程中可能会受到黑客攻击,常见的攻击方式有SYN,DDOS等.通过更换IP,查找被攻击的站点可能避开攻击,但是中断服务的时间比较长.比较彻底的解决方法是添置硬件防火墙.不过,硬件防 ...
- 自动化中间人攻击工具subterfuge小实验
Subterfuge是一款用python写的中间人攻击框架,它集成了一个前端和收集了一些著名的可用于中间人攻击的安全工具. Subterfuge主要调用的是sslstrip,sslstrip 是08 ...
- MetaSploit攻击实例讲解------Metasploit自动化攻击(包括kali linux 2016.2(rolling) 和 BT5)
不多说,直接上干货! 前期博客 Kali linux 2016.2(Rolling)里Metasploit连接(包括默认和自定义)的PostgreSQL数据库 Kali linux 2016.2(Ro ...
- 技术报告:APT组织Wekby利用DNS请求作为C&C设施,攻击美国秘密机构
技术报告:APT组织Wekby利用DNS请求作为C&C设施,攻击美国秘密机构 最近几周Paloalto Networks的研究人员注意到,APT组织Wekby对美国的部分秘密机构展开了一次攻击 ...
- DoS攻击种类
DoS攻击有许多种类,主要有Land攻击.死亡之ping.泪滴.Smurf攻击及SYN洪水等. 据统计,在所有黑客攻击事件中,syn洪水攻击是最常见又最容易被利用的一种DoS攻击手法. 1.攻击原理 ...
随机推荐
- Python 编程语言要掌握的技能之一:善用变量来改善代码质量
如何为变量起名 在计算机科学领域,有一句著名的格言(俏皮话): There are only two hard things in Computer Science: cache invalidati ...
- 物联网架构成长之路(47)-利用GitLab实现CI持续集成
0.前言 前段时间,考虑到要练习部署一套CI/CD的系统.一开始考虑到Jenkins,随着这两天的了解,发现最新版的GitLab已经提供有CI/CD集成了.所以本次博客,干脆一步到位,直接用GitLa ...
- Django2.0--创建缓存表
创建缓存表 在项目的虚拟环境下(若有),执行:python manage.py createcachetab
- nmap中的详细命令
nmap全部参数详解-A 综合性扫描端口:80http 443https 53dns 25smtp 22ssh 23telnet20.21ftp 110pop3 119nntp 143imap 179 ...
- 新闻实时分析系统-HBase分布式集群部署与设计
HBase是一个高可靠.高性能.面向列.可伸缩的分布式存储系统,利用Hbase技术可在廉价PC Server上搭建 大规模结构化存储集群. HBase 是Google Bigtable 的开源实现,与 ...
- SpringSecurity环境下配置CORS跨站资源共享规则
一.CORS简述 要说明CORS(Cross Origin Resourse-Sharing) 跨站资源共享,就必须先说同源策略.长话短说,同源策略就是向服务端发起请求的时候,以下三项必须与当前浏览器 ...
- Jenkins修改默认主目录及数据迁移
前言 在使用Jenkins做持续集成的初期,未能预估项目量的大小.于是乎,配置都是使用的默认配置,而Jenkins的默认主目录放在了服务器的根目录下. 随着时间的推移,项目量的持续增加,在运维过程中就 ...
- MySQL查询字段类型为json的数据
测试表如下: /* Navicat Premium Data Transfer Source Server : Source Server Type : MySQL Source Server Ver ...
- Chapter 06—Basic graphs
三. 柱状图(Histogram) 1. hist():画柱状图 ·breaks(可选项):控制柱状图的小柱子的条数: ·freq=FALSE:基于概率(probability),而非频率(frequ ...
- EF分页查询
/// <summary> /// 分页查询 + 条件查询 + 排序 /// </summary> /// <typeparam name="Tkey" ...