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嘛

猜你喜欢

转载自www.cnblogs.com/reluctante1/p/12918843.html