在上一节(UE4 回合游戏项目 09- 添加人物属性值)基础上添加怪物死亡动画
效果:
步骤:
1.打开gameMode1,在事件图表中的延迟节点后新增一个应用伤害节点
Damaged Actor表示谁受伤害,这里指定为选中的敌人
Base Damage表示伤害数值是多少,这里指定为玩家的物理伤害
那么如何判断敌人是否真正受到伤害呢
2.打开roleCategory(敌人和玩家的共同父类),添加一个事件任意伤害节点,表示受到任何伤害都会触发该节点
添加如下节点,表示判断当前生命值-受到的伤害值是否<=0
添加一个变量,表示是否死亡:
如果分支为True,设置死亡变量为真
如果没有死亡,就把当前生命值减去这个伤害值
如果嫌上面的太复杂,可改用下面的节点,效果一样
接下来创建死亡动画
3.打开enemy1_AnimBP
添加一个自定义事件,命名为死亡
死亡了就要播放一个动画,播放的动画就叫做动画蒙太奇
4.找到Death这个动画
复制一份命名为Death_2
5.双击打开Death_2 ,将时间轴大致调整到这个位置
点击鼠标右键,在结尾处附加
附加100帧
然后删除0-65帧,这样就只有怪物倒在地上不动的动画了
6.添加动画蒙太奇
右键点击Death 创建-》创建动画蒙太奇
将Death_2拖至Death后面
此时将Death和Death_2动画合成为一个,但是还是会一直循环播放两段动画
7.在Death和Death_2之间右键点击新建蒙太奇片段
随便命名为1
点击1
然后再点标注区域
可以看到标注区域变为蓝色,蓝色表示一直循环播放蓝色区域
效果如下:
为了让动画图表播放当前蒙太奇的动画,还需添加slot
8.打开enemy1_AnimBP
添加一个slot节点
插槽的命名为:
与如下动画蒙太奇中标注区域保持一致
(对应的插槽播放对应的蒙太奇动画)
9.返回enemy1_AnimBP中的事件图表,在死亡后添加事件
然后添加蒙太奇播放节点
这样只要一执行死亡事件,就会一直播放蒙太奇。
10.回到roleCategory的事件图表,当角色生命值归0,就会触发死亡事件,如下图,先添加一个死亡事件,然后当死亡这个变量为True时调用死亡事件
11.打开enemy1这个roleCategory的子蓝图类的事件图表,如下图添加一个死亡事件,这样一旦父蓝图调用了死亡事件,enemy1这个子蓝图就会触发下图中的死亡事件节点
添加如下节点:主要思想就是先获取enemy1的动画蓝图,通过类型转换为enemy1_AnimBP这个节点的输出获取enemy1_AnimBP这个变量,然后当死亡事件执行时,就会调用死亡这个自定义事件
最后别忘了,在play1中设置角色的属性值
运行游戏效果如下:
但是此时如果点击倒下的敌人,玩家还是会走过去
因此还需在gameMode1中判断enemy是否死亡,如果没有死亡才可以继续攻击
还有一个问题,当点击了战斗按钮后,如果玩家想通过点击鼠标右键再次调出UI界面该怎么做?
在playercontrol中增加对鼠标右键的响应(一般playercontrol用来增加鼠标键盘的响应事件)
然后还需在gameMode1中添加鼠标右键的自定义事件
在gameMode1中调用右键点击事件
在gameMode1中继续添加如下节点,主要思想是当点击鼠标右键后判断当前菜单枚举值是否为菜单,如果不是就设置为菜单,然后显示UI