玩家数据的Actor组件制作:虚幻5|制作玩家血量,体力-CSDN博客
造成伤害时,显示暴击及暴击字体颜色和未暴击的字体颜色,还有释放技能连击
一.编辑暴击数据
1.打开之前创建的玩家数据Actor组件
创建一个浮点变量,命名为基础暴击,并右侧细节默认值为0.1,0.1表示10%
创建一个浮点变量,命名为基础攻击,并右侧细节默认值为5

2.创建一个函数,命名为获取暴击
编辑以下蓝图
在0到1之间,取小数,取到的小数如果小于等于基础暴击默认值的0.1就暴击,否则就不暴击

二.暴击传递及更好的区分暴击生成的数值颜色和未暴击生成的颜色
1.打开武器表数据,如果你不知道武器表数据(学习内容:虚幻5|角色武器装备的数据库学习(不只是用来装备武器,甚至是角色切换也很可能用到)_虚幻5 数据库-CSDN博客)
编辑武器的伤害浮点值
用于武器造成伤害的浮动

2.打开装备的武器的Actor蓝图类

找到事件图表,这位置

编辑以下蓝图
取消链接base damage

事件开始运行时类型转换一下

来到命中(武器碰撞组件),把应用点状伤害往右拉开以及如下

拉开后中间的位置编辑如下
使用我们刚刚转换类型的变量,引用玩家数据的基础攻击和基础暴击

最终伤害是左侧添加的一个浮点变量,一个设置成暴击最终伤害,一个是未暴击的最终伤害

由于最终伤害是branch决定的,所以以此为变量链接base damage

编辑print打印,再运行检测一下
是否暴击,如果暴击,就打印true和暴击,未暴击,打印false

4.打开敌人血量UI,设置显示伤害,转换为文本保留的小数点位数
保留一位小数,当然你可以不保留,直接0

更换显示字符串蓝图,你也可以不用,这个是拓展
之前是用上面红圈的,可以改用下面红圈的,个人感觉下面的更好

再尝试运行一下
三,传递暴击给敌人
1.创建一个敌人接收信息的接口蓝图,命名为敌人接口

打开编辑如下

2.打开含血量敌人的角色蓝图
点击类默认,添加敌人接口

双击接口得到如下

设置暴击

3,打开装备的武器Actor蓝图
找到命中事件,下面中断命中结果的hit actor(敌人)链接接收暴击,让敌人接收到暴击

放到获取暴击的后面

4.打开敌人数据Actor组件和敌人血量UI
在敌人血量UI里,找到显示血量事件,选中,在细节栏的输入处添加布尔变量,命名为暴击?

再点开敌人数据Actor组件,选中down up就是减少血量的函数,在以下位置链接蓝图

四,设置暴击颜色及改进伤害数字动画
1.打开伤害数字UI
点击最下栏处的动画二字,选中伤害数字动画
删掉之前的颜色和不透明度轨道,添加渲染不透明度轨道
渲染不透明度轨道,0------1------0的形式,透明------不透明------透明

我们也可以拉长一下时间轨道,动画变缓慢

2.点击画布画板,在细节栏处,将渲染不透明度改成1
3.打开敌人血量UI,在显示血量事件的最后面链接更改,设置渲染不透明度

4.显示血量事件的输入值暴击,链接branch

再编辑如下蓝图,下面的数字颜色是提升为变量的,set数字颜色需要分割成引脚才能设置颜色
下面蓝图之意是,如果为暴击真,显示红色字体,如果暴击假,显示白色字体

好,我们运行测试一下
四,角色技能释放
1.在蓝图,创建一个枚举,命名为角色技能分配

2.打开后添加枚举器,三样

3.再加一个枚举,命名未角色技能分配_物理,进行详细分配

编辑内容

4.打开战斗组件(Actor组件)
创建一个函数,命名为技能释放

点击函数蓝图,在细节栏,输入处,增加以下两个变量

编译一下,在技能释放函数内,编辑以下蓝图

5.打开主角的角色蓝图,在事件图表内,找到添加刀光特效部分,一般在攻击动画之后,如果你没有,学习如下虚幻5|制作刀光粒子效果_虚幻5粒子-CSDN博客
找到后,把刀光特效折叠成函数

命名为刀光

6.找到武器Weapon文件下的Partcal这是我们之前做的刀光特效
打开刀光材质

编辑如下
更好颜色主控为如下

7.回到Partical文件,创建刀光材质的材质实例

打开后,可以编辑颜色,先不编辑
我们先打开刀光效果Niagara系统
选中empty的条带渲染器,选择我们刚刚创建的刀光材质实例

左侧参数栏的用户公开,再新建一个线性颜色的用户,命名为刀光颜色
选择empty的条带渲染器,右侧细节栏,展开绑定,找到材质绑定

8.打开主角的角色蓝图,点开刚刚折叠成函数的刀光函数,选中函数,细节栏,找到输入,添加刀光颜色变量并引用线性颜色

在刀光函数后面的刀光效果变量链接一个Niagara变量(线性颜色),如下
刀光颜色变量,就是刚刚刀光函数创建的输入变量

9.打开刀光函数位置的事件图表处,将刀光颜色提升为变量

再链接刚提升的变量,设置颜色

10.添加一个输入,命名为IA_技能释放,并在输入映射添加输入操作

鼠标右键释放技能

11.打开战斗组件Actor组件
点开事件图表,找到事件开始运行,引用主角的类型

打开主角的角色蓝图,创建一个函数,命名为2连击

打开战斗组件,再打开技能选择函数,编辑如下
链接函数2连击

12.回到主角的角色蓝图里创建的2连击函数,再准备好二连击动画蒙太奇,当然,我们也可以不使用二连击,可以是多段连击或大招,随你喜欢
在后面设置刀光颜色,之前是在普通攻击后设置的,可以copy粘贴在这里

打开该动画蒙太奇,设置通知,之前普通攻击的动画也设置了通知,所以这也要设置一下
我的是多段攻击

13,打开主角的角色蓝图,在事件图表里,编辑如下
要在装备武器的时候,才能释放技能

运行一下
运行发现,在二段连击的时候,发现刀光特效会有一部分失效,你的可能没有,如果有的话,更改如下
打开主角的角色蓝图,普通攻击这块

打开战斗组件Actor组件里的技能选择函数
添加一个正在攻击?布尔set
这样有助于在释放技能的时候,无法进行普通攻击了

好了,运行一下吧
可以多添加函数释放多个技能