UE4_简易AI_格挡/人物受击

时间:2024-04-17 10:01:43

格挡

给每把武器选一个格挡时受击的动画,添加到武器的dataTable里面

 

 下面就是逻辑部分,添加了如下的蓝图节点。

在播放受击动画之前先判断一下是否处于格挡状态,如果处于格挡状态,就播放相应的格挡受击动画。

 

 

另外,格挡的时候所受伤害为不格挡时应受伤害的一半

 

 又改了一下,用来看玩家收到的伤害是多少,新建了一个变量叫takenDamage,用来存放我们受到的伤害,减少生命值就直接用HP-takenDamage。

发现有武器时是正常的,但是空手格挡不会减免伤害

找到了bug所在,没有武器时,连接的节点是下面这一溜,也就是无格挡时的伤害判断

 

 

所以武器不存在的时候也要加一个判断,是否格挡,格挡的话走上面的LaunchCharacter,不格挡的话走下面

 

 

 

还有个不好的地方,就是我们可以提前格挡,AI攻击后的一瞬间反击,这个有点bug,格挡的意义就不存在了,所以要设置在玩家挨打后的一秒内不得进行攻击

 

 

 

玩家受击喷血/音效

 

 

增加玩家挨打时的视野摇晃(这是一个很好玩的东西

 

 新建好打开,右面这些就是我们可以调的参数

Rot Osc是相机的旋转值摇晃,

Loc Osc是相机的Location摇晃

FOV Osc是缩放值摇晃

 

 大概设置成这样就可以用了

 

 

用下面这个节点调用刚刚的 camera shake

 

 然后就有赞爆的效果了

 

Ai翻滚

新建一个变量,范围是0-1,代表Ai受到攻击前翻滚的概率,同时可以把他提升为public,这样在外面就可以直接改了,

然后,根据这个DodgePercent随机生成一个布尔值,如果是true,就让Ai随机播放一个翻滚动画,如果是false,就执行正常的挨揍逻辑。

delay限制他不能翻滚后立刻攻击