虚幻5|简单的设置角色受到伤害,远程攻击机关设置,制作UI,低血量UI

news2024/11/14 20:52:52

虚幻5|制作玩家血量,体力(还未编辑,只用于引用)-CSDN博客

需完成制作玩家血量及体力部分

一.给角色添加死亡动画

1.为了保证角色在播放死亡蒙太奇的时候,不会重新播放,而是保持原来倒地的姿势,需要给动画蒙太奇取选如下

2.打开角色蓝图找到引用down up函数的事件,事件任意伤害

如下整体图

范围内随机浮点就是在0到1的范围内取小数,如果大于等于0.5执行真,播放向前倒地动画

否则播放侧倒地动画

加入设置碰撞已启用,当播放dead动画的时候,就不会再此受击而播放此动画。就是人物死了,但还是受到击打就又播放动画,就会很鬼畜

网格体和胶囊体都要设置

二,陷阱打中主角,造成伤害

1.创建一个Actor蓝图

2.打开后添加一个骨骼网格体组件,两个box collision组件,一个box组件用于触发机关,一个用于给机关添加碰撞,防止人物穿模机关

3.碰撞预设的设置

骨骼网格体机关的碰撞预设是NO Collision

触发机关的碰撞预设如下

机关box的碰撞预设如下

只写这个红圈,是远程机关的蓝图布置,远程不需要在触发时直接受到伤害,远程机关触发,只需要将子弹射出,要受到伤害就需要给子弹射出的蓝图写入应用伤害蓝图

tag标签,我们需要给主角添加标签,在主角的角色蓝图,选中BP_CB(自身),右侧细节栏就可以找到,之前也有讲过就不多说了

如果你写了下面全部的蓝图基本上是应用了近战机关的触发并直接造成伤害

我这里只讲远程触发机关,并受到伤害,近战触发机关,自己也可以衍生

三.子弹打到主角,使主角受到伤害

1.再创建一个蓝图,跟上面的一样是Actor

2.打开后创建一个sphere和静态网格体,还有一个发射物组件

3.设置如下

包裹子弹就行

设置发射速度,选中发射物组件,右侧细节栏

sphere的碰撞预设,如果你没有子弹对象类型,可以在编辑>项目设置>碰撞>新建object

静态网格体的碰撞预设

打开事件图表,编辑如下蓝图

看好红圈位置,在位置处生成发射器是击中主角,出血特效

tag标签,我们需要给主角添加标签,在主角的角色蓝图,选中BP_CB(自身),右侧细节栏就可以找到,之前也有讲过就不多说了

四.制作UI,低血量UI

1.创建一个UI控件蓝图,命名为Player_LowHP

2.再导入一个血量爆在屏幕的纹理

3.打开UI,设置如下

放入一个画布画板和图片作子级

选中图片image_55,右侧细节栏,编辑如下

锚点,展开后选择,全填充的

添加素材,并调整透明度

调整一下大小,让爆血不会太大

4.制作动画

改一下图片名称Blood

再添加一个动画,命名为LowHP

添加一个轨道,颜色和不透明度

设置长度,A:0-0.2,0.5-0.5,1-0.2(0秒的时候,A为0.2;...)

5.添加动画

打开玩家数据Actor组件

找到,down hp的函数,降低血量的函数

找到血量小于百分之25的后面,或者是播放血量小于25时,血量跳动动画的后面,编写如下

Num loops to play为0,是使动画循环播放

接着,把LowHP_UI有效链接到后面的branch

运行测试一下,发现降低血量可以达到,提示效果,但是我血量超过百分之25后,还在播放就不可理了

改进一波

6.打开玩家数据Actor组件,还是原来的地方,打开UP hp函数,增加血量的函数

运行一下,发现我们回血量后,没有动画了,但再次降低到百分之25,就没有低血量动画了

分析:由于上面的,我们的从父项移除,移除的不是前面的有效get变量,而是控件,因为从父项移除的目标是控件,变量还是存有值的

所以再到down hp的函数,到LowHP_UI变量的有效,必须要绕过创建控件

如图

运行后,发现血量扣到负数了,我们只需要显示0即可,修改如下,在down hp函数最后面加

7.给远程机关添加音效,我这是ak47,一般枪声,但我没有枪声,就用人物受到伤害的音效吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2074419.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Renesa Version Board开发RT-Thread 之WIFI创建Client

概述 本文主要介绍使用Renesa Version Board中WIFI功能,该模块基于RW007模块设计,RT-Thread软件架构已经实现该硬件相关的驱动接口。笔者基于该模块的相关接口在LWIP软件框架的基础上实现Client功能。实现数据的发送和接收。 1 WLAN 框架简介 参考文档…

【Java】—— Java面向对象基础:使用Java创建和打印员工对象信息

在Java中,类的定义和使用是面向对象编程的核心。本文将通过一个简单的例子来展示如何定义一个员工类(Employee),并在测试类中创建员工对象,为这些对象的属性赋值,并打印出它们的信息。 定义员工类&#xff…

大模型微调

文章目录 前言一、使用的库二、数据预处理1.引入库2.读入数据3.对数据进行预处理4.转换为json格式文件 三,使用算子分析数据并进行数据处理四,划分训练集和测试集五,编写训练脚本开始训练六,进行模型推理人工评估总结 前言 这是使…

网络优化|单源最短路|Dijkstra|Floyd|Matlab

图和网络可以用来描述集合元素和元素之间关系。大量的最优化问题都可以抽象为网络模型加以解释,描述和求解。 图与网络模型在建模时具有直观、易理解、适应性强等,广泛应用在管理科学、物理学、化学、计算机科学、信息论、控制论、社会科学以及军事科学等…

C# 循环访问目录树详解与示例

文章目录 一、目录树遍历的概念二、使用System.IO命名空间三、DirectoryInfo和FileInfo类四、递归遍历目录树五、示例:列出目录树中的所有文件和文件夹六、异常处理七、迭代方法八、总结 在C#中,访问文件系统是常见的需求之一。有时我们需要遍历目录树以…

嵌入式开发技术进步带来新机遇

嵌入式开发作为信息技术领域的重要分支,随着科技的不断进步,正迎来新的机遇。本文将从人工智能、物联网、边缘计算等方面探讨嵌入式开发技术的进步如何带来新的发展机遇,并展望未来的发展趋势。 一、引言 嵌入式系统是一种特殊的计算机系统&…

unreal engine5中character角色和怪物交互时发生穿模

UE5系列文章目录 文章目录 UE5系列文章目录前言一、原因定位二、解决方法 前言 在 Unreal Engine 5 中,角色“穿模”通常指的是角色模型与其他物体(如墙壁、地面或其他对象)发生不正确的穿透或重叠现象。这可能是由多种原因造成的&#xff0…

C++ | Leetcode C++题解之第372题超级次方

题目&#xff1a; 题解&#xff1a; class Solution {const int MOD 1337;int pow(int x, int n) {int res 1;while (n) {if (n % 2) {res (long) res * x % MOD;}x (long) x * x % MOD;n / 2;}return res;}public:int superPow(int a, vector<int> &b) {int an…

C# 泛型类型的约束详解与示例

文章目录 一、泛型约束概述二、泛型约束详解与示例1. 类约束2. 接口约束3. 引用类型约束4. 值类型约束5. 无参数构造函数约束6、多重约束7、默认构造函数约束8、基类和接口的组合约束 三、总结 在C#编程语言中&#xff0c;泛型是一种非常强大的特性&#xff0c;它允许我们编写可…

NetSuite 2024.2 学习笔记

NetSuite一年两次的发版&#xff0c;每次都会带来一些新的东西。这对于顾问来说&#xff0c;应该成为必修课。 每个版本发版内容的学习时长&#xff0c;大约在20小时左右。包括&#xff1a; •Release Notes通读 •Release Preview环境申请 •热点功能验证 •New Release学习笔…

vue中video视频路径改变,dom不更新问题

效果展示 视频切换前 视频切换后 完整代码 <template><!-- 设置v-if只在路径有值时&#xff0c;标签才存在 --><video v-if"state.videoSrc ! null" controls><source :src"state.videoSrc" type"video/mp4"></…

Java | Leetcode Java题解之第372题超级次方

题目&#xff1a; 题解&#xff1a; class Solution {static final int MOD 1337;public int superPow(int a, int[] b) {int ans 1;for (int e : b) {ans (int) ((long) pow(ans, 10) * pow(a, e) % MOD);}return ans;}public int pow(int x, int n) {int res 1;while (n…

Pytorch实现CIFAR10训练模型

文章目录 简述模型结构模型参数、优化器、损失函数参数初始化优化器损失函数 模型训练、测试集预测、模型保存、日志记录训练测试集测试模型保存模型训练完整代码 tensorboard训练可视化结果train_loss测试准确率测试集loss 模型应用模型独立应用代码api.py预测结果 简述 使用…

leetcode1232一点小问题

解法 a x 2 − x 1 y 2 − y 1 &#xff0c; b y 1 − a x 1 a\frac{x_{2}-x_{1}}{y_{2}-y_{1}} &#xff0c;by_{1}-ax_{1} ay2​−y1​x2​−x1​​&#xff0c;by1​−ax1​ d y n − y n − 1 x n − x n − 1 d\frac{y_{n}-y_{n-1}}{x_{n}-x_{n-1}} dxn​−xn−1​yn​…

【初阶数据结构】链表题的证明

环形链表题目方法的证明 证明1&#xff1a;为什么快指针每次⾛两步&#xff0c;慢指针⾛⼀步可以相遇&#xff0c;有没有可能遇不上&#xff0c;请推理证明&#xff01; 证明二&#xff1a;为什么相遇点&#xff08;meet&#xff09;和头结点&#xff08;head&#xff09;到入环…

sql server导入mysql,使用工具SQLyog

概述 需要将sql server的数据导入到mysql中&#xff0c;由于2种数据库存在各种差异&#xff0c;比如表字段类型就有很多不同&#xff0c;因此需要工具来实现。 这里使用SQLyog来实现。 SQLyog安装 安装过程参考文档&#xff1a;https://blog.csdn.net/Sunshine_liang1/article/…

USART之串口发送+接收应用案例

文章目录 前言一、电路接线图二、应用案例代码三、应用案例分析3.1 USART模块初始化3.1.1 RCC开启时钟3.1.2 GPIO初始化3.1.3 配置USART3.1.4 开启中断、配置NVIC3.1.5 开启USART 3.2 USART串口收发模块3.2.1 Serial_SendByte&#xff08;发送一个字节数据&#xff09;3.2.2 US…

JVM对象创建和内存分配机制深度解析

一、对象创建方式 1、new关键字 这是最常见的创建对象的方式。通过调用类的构造方法&#xff08;constructor&#xff09;来创建对象。如&#xff1a;MyClass obj new MyClass()。这种方式会触发类的加载、链接、初始化过程&#xff08;如果类还未被加载过的话&#xff09;&…

递归搜索与回溯专题篇一

目录 组合 目标和 组合总和 字母大小全排列 组合 题目 思路 解决这道题利用DFS&#xff0c;决策树是怎样的&#xff1f;以n4&#xff0c;k3为例&#xff1a; 因为每个数只用到一次&#xff0c;因此需要剪枝&#xff0c;将出现重复数字的枝剪掉&#xff0c;因为组合中元素的…

Vue中的this.$emit()方法详解【父子组件传值常用】

​在Vue中&#xff0c;this.$emit()方法用于触发自定义事件。它是Vue实例的一个方法&#xff0c;可以在组件内部使用。 使用this.$emit()方法&#xff0c;你可以向父组件发送自定义事件&#xff0c;并传递数据给父组件。父组件可以通过监听这个自定义事件来执行相应的逻辑。 …