虚幻5|给武器添加碰撞检测与伤害

news2024/11/27 10:41:08

本章内容衔接上两章,需要完成上两章才能用本章内容

虚幻5|角色武器装备的数据库学习(不只是用来装备武器,甚至是角色切换也很可能用到)-CSDN博客虚幻5|普通攻击,使用接口更方便-CSDN博客

如有疑问,可访问上章内容,

一,打开武器网格体添加插槽

1.如果武器没有上碰撞,记得给武器添加简单碰撞或复制碰撞,打开武器网格体左上角有碰撞选择,可添加碰撞

2.点击右侧的插槽管理器,添加两个插槽,一个是检测开始,一个是检测结束,分别放在能受到伤害的范围

二,碰撞检测

1.创建一个actor组件,取名为武器碰撞组件

2.打开武器碰撞组件

创建一个组件,类型为基元组件,命名为碰撞组件

3.创建函数,命名为设置碰撞对象

并把刚刚的碰撞组件拖入

4.增加一个布尔变量,命名为是否碰撞?

5.再增加三个函数,命名为可以碰撞,禁用碰撞,清空碰撞

可以碰撞

禁用碰撞

清空碰撞,重点理解

6.打开武器碰撞组件的事件图表

先编写白线,再编写蓝线,其他颜色的线都是后面才链接的

注意,radius半径要再细节处设置其默认值。创建数组里的敌人,下面有

创建数组的敌人,我们需要到项目设置里添加,如果你看过我的高光添加的文章里也有,我这里再写一次

7.项目设置里添加新的碰撞对象

打开最左上角的编辑->选中项目设置->找到碰撞->新建object通道,命名为敌人

8.打开帧线,这样有助于我们运行时看到武器检测线,针对一帧

三,创建一个蓝图类Actor

1.打开后,组件添加一个静态网格体,

2.右侧细节栏,选择我们想要的敌人

并设置他的碰撞预设为以下

四,使用武器碰撞组件

1.打开我们创建好的武器蓝图类,武器一般是actor,属于静态网格体

2.打开,添加武器碰撞组件

3.打开我们普通攻击章节创建好的战斗组件

4.添加一个变量,装备的武器,引用我们武器的变量类型,类型名为装备的近战武器

5.创建两个函数,设置装备的武器和输出装备的武器

通过这个战斗组件的函数,获取我们的装备的武器(actor蓝图类)里添加的武器碰撞组件(actor组件),从而使用到我们的武器碰撞组件(actor组件)内的函数

设置装备的武器

输出装备的武器

五,

1.创建一个武器碰撞动画通知状态,不是通知,而是通知状态,并命名为武器碰撞动画通知状态

2.点开重载,重载两个函数,一个已接收通知开始,再重载一个已接收通知结束

3.打开函数已接收通知开始的函数

按我以下步骤,编写蓝图

首先mesh comp链接 get owner,获取拥有者

从获取拥有者链接按类获取组件,会出现两个一样的,我们选第二个

在按类获取组件,选择类,选择我们的战斗组件,并链接输出装备的武器(这是调用函数)

输出装备的武器链接isvail_有效

后面就没什么要注意的了

照图片编写即可

4.打开函数已接收通知结束的函数

复制粘贴我们已接收通知开始函数的内容,把可以碰撞(调用函数)改成禁用碰撞

既然我们设置好这些通知,我们就要用,一般都是用在动画蒙太奇里的,这又是个知识点

六,在蒙太奇里使用通知

1.在上一章写普通攻击里,我们也用到的蒙太奇里添加新的通知轨道。

在通知轨道里放上我们创建好的武器碰撞通知,如果通知轨道不够,可以添加通知轨道。

这武器碰撞通知调用的是我们的已接收开始的通知和已接收结束通知

武器碰撞通知的长度拉取范围是攻击打中敌人的阶段,这个看你是什么武器,尝试调整

其他攻击的蒙太奇都一样,看你需要

七,

1.打开我们的角色蓝图,找到装备武器的后面

添加以下蓝图

为什么呢?原理是当我们拿

 

最后我们要设置碰撞对象,还没有设置,对象(武器)该做什么都知道了

运行一下,如果攻击,武器出现红色框框,说明程序运行成功

八,打开武器碰撞组件

1.编写事件图表

九.传递命中结果的内容

1.在武器碰撞组件的事件图表后面,也就是上面第八点的蓝图后面了

添加一个事件分发器,命名为命中

2.选中该事件分发器,右侧细节处,增加输入

3.编写以下蓝图

事件分发器命中拖入调用即可

十.使用调用命中

1.打开装备的武器的Actor蓝图类进行编写(武器的actor蓝图类且含有武器碰撞组件)

选中武器碰撞组件

2.右侧细节处,往下滑找到命中的事件

没有的话,可能你没有编译

3,点击+符号,获取事件蓝图,编写以下蓝图

十一,使用命中事件

1.打开敌人的角色蓝图,编写以下蓝图进行测试

给敌人添加背打击到彪血的特效

写完这些就方便了,我们可以使用任何武器都可以进行检测

只需要在武器表数据(有这一章内容)去添加武器及其信息,以及在武器的网格体上添加检测开始和检测结束的插槽即可,如下

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

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

相关文章

TinyGPT-V:微型视觉语言模型【VLM】

AI技术正在不断融入我们的日常生活。人工智能的一个应用包括多模态化,例如将语言与视觉模型相结合。这些视觉语言模型可以应用于视频字幕、语义搜索等任务。 本周,我将重点介绍一种名为 TinyGPT-V(Arxiv | GitHub)的最新视觉语言…

QT:Telnet客户端与服务器的创建

客户端 telnetClient类 #ifndef TELNETCLIENT_H #define TELNETCLIENT_H#include <QObject> #include <QTcpSocket>class TelnetClient : public QObject {Q_OBJECTpublic:explicit TelnetClient(QObject *parent nullptr);~TelnetClient();// 连接到指定的主机…

智慧节能节水设备远程监控解决方案

智慧节能节水设备远程监控解决方案&#xff0c;作为现代物联网技术与环保理念深度融合的产物&#xff0c;旨在通过高度集成的传感器网络、大数据分析及云计算平台&#xff0c;实现对各类节能节水设施的精细化管理和实时监控&#xff0c;从而大幅度提升资源利用效率&#xff0c;…

eNSP 华为三层交换机实现VLAN间通信

华为三层交换机实现VLAN间通信 三层交换机&#xff1a; <Huawei>sys [Huawei]sys SW-3 [SW-3]vlan batch 10 20 [SW-3]int vlan 10 [SW-3-Vlanif10]ip address 192.168.10.254 24 [SW-3-Vlanif10]int vlan 20 [SW-3-Vlanif20]ip add 192.168.20.254 24 [SW-3-Vlanif20]in…

Qt登录窗口设计

widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QIcon> //图标类 #include <QPushButton> #include <QLineEdit> //行编辑 #include <QLabel> #include <QTextEdit> #include <QMovie>class Widge…

专业名词理解(一):鲁棒性和泛化能力

目录 前言 一、鲁棒性&#xff08;Robustness&#xff09; 二、泛化能力&#xff08;Generalization&#xff09; 总结 前言 鲁棒性&#xff08;Robustness&#xff09;和泛化能力&#xff08;Generalization&#xff09;是机器学习和人工智能模型的重要特性&#xff0c;它…

CDD数据库文件制作(四)——服务配置(0x11)

目录 1.子功能创建2.会话切换配置2.1.根据诊断调查表进行信息提取(0x1101)2.2.会话转换配置(0x1101)2.3.根据诊断调查表进行信息提取(0x1102)2.4.会话转换配置(0x1102)2.5.根据诊断调查表进行信息提取(0x1103)2.6.会话转换配置(0x1103)2.7.会话切换配置完成后效果图…

R9 9900X R9 9950X评测:看完觉得7800X3D更香了

原文转载修改自&#xff08;更多互联网新闻/搞机小知识&#xff09;&#xff1a; R9 9900X R9 9950X评测&#xff1a;能效提升&#xff0c;温度下降 R9 9900X R9 9950X基础规格 注&#xff1a;评测信息来自外媒Wccftech 老规矩&#xff0c;先介绍一下这两款锐龙9000旗舰CPU的…

【笔记1-7】Qt bug记录:error C2371: QStringList重定义;不同的基类型,Qt6无法使用QStringList

在Qt5工程升级到Qt6的过程中&#xff0c;出现了QStringList重定义的问题 一开始尝试在其他文件中使用QStringList&#xff0c;结果是Qt5.9.4版本怎么使用都没有问题&#xff0c;而Qt6.7.2在其他文件中写同样的代码也会有问题 通过调查Qt源码&#xff0c;发现是Qt6对qcontainer…

栈与计算—— 150、227、224※

150. 逆波兰表达式求值&#xff08;中等&#xff09; 给你一个字符串数组 tokens &#xff0c;表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意&#xff1a; 有效的算符为 、-、* 和 / 。每个操作数&#xff08;运算对象&a…

web前端之实现一只可爱的小杰尼乌龟、伪元素、动画

MENU 前言效果图htmlstyle 前言 代码段使用HTML和CSS创建一个“杰尼龟”的动画。 效果图 html <div class"squirtle"><div class"tail"></div><div class"body"><div class"stomach"></div><d…

了解数据库中常用存储引擎数据结构(1)

目录 引言 存储引擎和存储结构 两者的关系 存储结构 分类 1. 按数据组织方式分类 2. 按索引结构分类 3. 按存储介质分类 4. 按数据分布方式分类 5. 按数据冗余和备份分类 存储结构需要的特性 BTree 补充知识&#xff1a;Lock和Latch的区别&#xff08;存储引擎并发…

干货分享|如何使用Stable Diffusion快速打造瞬息全宇宙?

Deforum也是一款文生视频插件&#xff0c;它把提示词跃迁和运镜结合到一起&#xff0c;生成的视频让人仿佛穿越不同时空&#xff0c;因此又被称作瞬息全宇宙。本节将介绍使用Deforum生成视频的方法。 在使用Deforum时&#xff0c;由于设置参数非常多&#xff0c;初次使用时很难…

【C语言篇】编译和链接以及预处理介绍(下篇)

文章目录 前言#和###运算符##运算符 命名约定#undef命令⾏定义条件编译#if和#endif多个分支的条件编译判断是否被定义嵌套指令 头文件被包含头文件被包含的方式本地文件包含库文件的包含 嵌套文件包含 其他预处理指令 写在最后 前言 本篇接前一篇【C语言篇】编译和链接以及预处…

fvm 管理多个 flutter 版本

前言&#xff1a; flutter SDK 版本更新还是比较快的&#xff0c;新的特性带来了新的体验&#xff0c;更新频繁也是好的事情。一方面说明 flutter 社区活跃&#xff0c;另一方面 说明 flutter 进化的脚本并没有停下。这样也会带来另一个问题&#xff0c;如果多个项目 使用了不…

详解Python 66 个内置函数!附代码

大家好&#xff0c;想掌握Python编程语言&#xff0c;从零基础的小白晋升为大神&#xff1f;没问题&#xff01;接下来我们将以轻松有趣的方式&#xff0c;逐一解锁Python的66个内置函数&#xff0c;每一步都将结合实际应用场景、函数功能解析及简洁代码演示&#xff0c;带你深…

超全面!Midjourney用户手册中文版!详解模型、命令、参数与高级用法

前言 引言 大家好&#xff0c;我是包大。 最近正在上手体验目前网上很火的 AI 绘画工具 Midjourney&#xff0c;在优设和 B 站上找了很多教程来看&#xff0c;现在基本可以上手用它生成很多好玩的图片了。 这里私心推荐一下优设网的 AI 绘画专题&#xff0c;专题里已经积累了…

Docker详细讲解

2013年发布至今&#xff0c; Docker一直广受瞩目&#xff0c;被认为可能会改变软件行业。 但是&#xff0c;许多人并不清楚 Docker 到底是什么&#xff0c;要解决什么问题&#xff0c;好处又在哪里&#xff1f;今天就来详细解释&#xff0c;帮助大家理解它&#xff0c;还带有简…

【Linux操作系统】进程概念

目录 一、进程概念1.1 什么是进程 二、task_struct内容分类2.1 标识符2.2 进程状态2.2.1 进程排队2.2.2 关于进程状态的表述——运行、阻塞、挂起2.2.3 Linux中具体的进程状态2.2.4 孤儿进程 2.3 进程优先级 三、Linux的调度与切换3.1 进程切换3.2 进程调度 四、环境变量4.1 ma…

产品文档全攻略:分类、价值及创建技巧

作者 | Josh Fechter 产品文档是产品附带的资料。这些文档包含产品工作的详细信息、使用指南、免责声明以及与产品相关的其他重要详细信息。 产品文档是一个广义的术语&#xff0c;并不仅仅是为了供消费者使用。产品文档还包括供内部组织使用的产品或服务的信息。这些文档文件…