UE4_简易AI_基础移动

Posted reluctante1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UE4_简易AI_基础移动相关的知识,希望对你有一定的参考价值。

首先,要给AI一个8方向的基础移动动画,

之前已经做了一个了,就是我们所控制人物的八个方向的移动,直接复制用就行了

就下面这个

技术图片

 

 

做了些调整,首先把 Ai的最大移速改成了600,然后在180处添加了八个方向的走路动画,把跑步的动画移到了360处。

技术图片

 

 

找到之前为AI设置idel的动画蓝图,

技术图片

 

删掉,新建一个状态机

 技术图片

 

把刚刚的弄好的混合空间拖进来,

 技术图片

 

 双击打开,需要传入两个变量,速度和方向

技术图片

 

 在事件蓝图里把这两个值设置一下

技术图片

 

 然后拖出来一个nav碰撞体,在盒子里,AI是有导向的,也就是AI只能在这个大盒子里移动,在盒子外无法移动。

技术图片

 

 在Ai的蓝图里,先把最大移动速度改到360,目前这个逻辑就是让他一直向右运动。

技术图片

 

 

把昨天写的伤害流血音效之类的整理一下,右键重叠到节点

技术图片

 

 

 新建一个变量,类型为character,用来存放AI的目标character(一般就是玩家)

然后使用find look at rotation节点,通过两个坐标值计算出方向(起点是AI,终点是target character)

技术图片

 

 

然后就是要让AI 知道,谁是target character 

在Ai里添加一个角色感知,PawnSensing

技术图片

 

 技术图片

 

 添加这个事件,on see pawn,我们把Ai第一个看到的角色设置为target character技术图片

 

 技术图片

 

 所以,综合一下,这个蓝图 的效果就是,

AI一直面向我们player

AI一直向右走

结合就是AI 面向我们转圈

(感觉自己是太阳,他俩是行星...)

技术图片

 

 

 这两个AI一次死盯着我们,如果想改变一下,让他们慢慢转向我们,可以用一个类似 lerp 的节点  rinterp to

技术图片

 

 比较一下AI自己和目标的距离,如果大于10米,就把AI的最大速度改到360(跑步状态),如果小于10米,就设为180(走路状态)

技术图片

 

 发现切换速度的时候比较僵硬,是从180一下到了360

所以也加一个逐渐减少的过程

技术图片

 

 没有问题了,把后面关于改变移动速度的打包成一个节点

技术图片

 

 

 

另,这是当看不到目标时 随机移动的蓝图

delay3秒是因为要让他每3秒重新选一个点移动,因为最开始的事件是event tick嘛

技术图片

 

以上是关于UE4_简易AI_基础移动的主要内容,如果未能解决你的问题,请参考以下文章

UE4 C++ 实现简易背包

python——基础篇-简易文件上传

UE4中使用蓝图实现简易的游戏暂停功能

这是一份简易的ACM模板

简易先进先出队列-自用

PowerApps_创建一个简易的计算器