【UE5.1 角色练习】16-枪械射击——瞄准
目录
效果
步骤
一、瞄准时拉近摄像机位置
二、瞄准偏移
三、向指定方向射击
四、连发
效果

步骤
一、瞄准时拉近摄像机位置
打开角色蓝图,在事件图表中添加如下节点,当进入射击状态时设置目标臂长度为300,从而拉近视角。

但是这样切换视角距离有些生硬,我们可以通过时间轴节点来做个过渡

两个时间曲线均从(0,0)到(0.2,1)

此时效果如下,可以看到在切换射击状态时,视角会逐渐拉近或拉远

二、瞄准偏移
为了解决角色只能朝左右射击无法上下射击的问题,我们需要在鼠标上下移动视角的时候将枪口也进行上下移动。
1. 在“AnimStarterPack”资源包中找到一个名为“Aim_Space_Hip”动画序列

可以看到该动画序列是角色上下左右端枪的姿势

2. 通过IK重定向器将该动画序列重定向给我们的角色

此时我们就拥有了适配角色骨骼的动画序列

下面我们需要对这个动画进行拆解,分别拆解成角色向上、下、左、右瞄准的动画。
复制3份动画序列“Aim_Space_Hip”,这里分别命名为“Aim_Space_Hip_Center”、“Aim_Space_Hip_CenterDown”、“Aim_Space_Hip_CenterUp”,分别表示角色向正前方、正下方和正上方端枪的动画序列。

3. 打开动画序列“Aim_Space_Hip_Center”。将时间轴指针移动到第4帧,然后移除第5帧之后的所有帧(包括第5帧)

可以看到此时该动画序列就只有4帧

同样的方法,我们可以像这样制作角色向正下方、正上方端枪的动画序列。但是这里我们再使用另一种方法来创建角色向正下方、正上方端枪的动画序列。
4. 再次打开动画序列“Aim_Space_Hip”,将指针移至第10帧,可以看到此时角色向正上方端枪,然后点击“创建资产-》创建动画-》当前姿势”

可以看到创建的动画就只有一帧,就是角色向正上方端枪的动画

同样的方法,在“Aim_Space_Hip”中的第20帧找到角色向正下方端枪的动画,然后创建动画序列“Aim_Space_Hip_CenterDown”

同样的方法再创建角色向左中、左上、左下、右中、右上、右下端枪的动画序列

5. 选中这9个动画序列,然后鼠标右键点击“通过属性矩阵进行批量编辑”

选中这9个动画序列,然后将“Additive动画类型”设置为“网格体空间”

6. 打开角色的动画蓝图

创建一个瞄准偏移混合空间

这里命名为“AimOffset2D_Rifle”

打开“AimOffset2D_Rifle”,水平、垂直坐标的名称和范围

将9个动画序列放置在相应的位置上



像混合空间一样,此时我们修改预览点的坐标位置,就可以看到角色不同的端枪姿势

7. 再次选中这9个动画序列,然后鼠标右键点击“通过属性矩阵进行批量编辑”

“基础姿势”为“选择的动画帧”

“基础姿势动画”设置为角色端枪待机的动画“Idle_Rifle_Hip”


8. 再次回到瞄准偏移“AimOffset2D_Rifle”中会发现预览姿势不太对劲

因此我们需要将“预览基础姿势”设置为角色端枪待机的动画序列“Idle_Rifle_Hip”,此时预览姿势就正常了。

9. 在动画蓝图的动画图表中,双击进入状态“IdleRifle”

将瞄准偏移作为该状态的输出姿势

可以看到瞄准偏移还需两个输入值,因此我们在动画蓝图中创建两个浮点类型变量,分别命名为“Yaw”和“Pitch”

然后将这两个变量值输入到瞄准偏移中

为了验证是否有效,我们可以修改Pitch的默认值为30

此时运动游戏,可以看到角色在进入射击状态后,枪口向上偏移了一些

双击进入状态“RunRifle”

添加如下节点

此时我们在动画预览编辑器中修改“Yaw”和“Pitch”的值可以看到角色向着指定的方向端枪

若增加角色移动速度也可以看到同样的效果

三、向指定方向射击
打开角色蓝图在事件图表中添加如下节点,用鼠标指向远方的方向减去角色自身的方向就可以得出动画蓝图中变量“Yaw”和“Pitch”的值



然后我们需要在进入射击状态时显示鼠标,因此删除如下节点

此时运行可以看到角色端枪的方向会随着鼠标的移动而移动

我们将鼠标瞄准的场景位置提升为一个变量,用于表示射击目标的位置

之前我们子弹发射的方向只是角色向前的方向

现在我们可以通过变量“AimTarget”来设置子弹发射的方向

此时我们就实现了鼠标指哪打哪的效果(并不是精确射击)

四、连发
当我们按下鼠标左键准备发射子弹前添加一个时间轴

设置时间轴为循环

这样当我们按下鼠标左键后,就会一直发射子弹了。如果感觉子弹发射的频率太高,我们可以添加一个延迟

此时我们按住鼠标组件不动就可以连发了

相关文章:
【UE5.1 角色练习】16-枪械射击——瞄准
目录 效果 步骤 一、瞄准时拉近摄像机位置 二、瞄准偏移 三、向指定方向射击 四、连发 效果 步骤 一、瞄准时拉近摄像机位置 打开角色蓝图,在事件图表中添加如下节点,当进入射击状态时设置目标臂长度为300,从而拉近视角。 但是这样切…...
04OLED简介和调试方法
OLED简介和调试方法 调试方式串口调试显示屏调试其他调试方法总结: OLED简介硬件电路OLED驱动函数 keil调试模式进入方法keil调试界面窗口简单功能说明更加强大的功能 调试方式 电脑想看什么变量可以直接打印到屏幕,但是单片机很多时候由于成本和电路结构…...
“LNMP环境搭建实战指南:从零开始配置CentOS 7下的Nginx、MySQL与PHP“
目录 1.前言 2.准备工作 2.1.环境信息 2.2.关闭SELinux和firewalld 3.安装Nginx 3.1.运行以下命令,安装Nginx 3.2.运行以下命令,查看Nginx版本 4.安装MySQL 4.1.更新秘钥 4.2.配置MySQL的YUM仓库 4.3.安装MySQL 4.4.查看MySQL版本 4.5.启动…...
院内导航:如何用科技破解就医找路难题
自2019年开始“院内导航”被纳入医院智慧服务评估体系以来,到2023年改善就医服务升级的部署,每一步都见证了我国医疗卫生体系向智能化、人性化迈进的坚实步伐。 面对庞大复杂的医院环境与日益增长的就诊需求,如何让患者在茫茫人海中迅速找到就…...
C++基础篇(1)
目录 前言 1.第一个C程序 2.命名空间 2.1概念理解 2.2namespace 的价值 2.3 namespace的定义 3.命名空间的使用 4.C的输入输出 结束语 前言 本节我们将正式进入C基础的学习,话不多说,直接上货!!! 1.第一个C程…...
云视频监控中的高效视频转码策略:视频汇聚EasyCVR平台H.265自动转码H.264能力解析
随着科技的快速发展,视频监控技术已经广泛应用于各个领域,如公共安全、商业管理、教育医疗等。与此同时,视频转码技术作为视频处理的关键环节,也在不断提高视频的质量和传输效率。 一、视频监控技术的演进 视频监控技术的发展历…...
xcode配置swift使用自定义主题颜色或者使用RGB或者HEX颜色
要想在xcode中使用自定义颜色或者配置主题色,需要在Assets中配置,打开Assets文件,然后点击添加Color Set: 输入颜色的名称,然后选中这个颜色,会出现两个颜色: Any Appearance表示亮色模式下使用…...
相同含义但不同类型字段作为join条件时注意事项
假设表A和表B中都有表示学号的stu_id字段,但该字段在表A和表B中类型分别为bigint和string。当直接通过该字段进行join时,一般情况下可以得到我们预期的结果。 select a.stu_id from a as r join b as l on r.stu_id l.stu_id 但是如果学号长度较长的…...
数据结构(3.8)——栈的应用
栈在括号匹配中的应用 流程图 代码 #include <stdio.h> #include <stdlib.h> #define MaxSize 10typedef struct {char data[MaxSize];int top; } SqStack;// 初始化栈 void InitStack(SqStack* S) {S->top -1; // 初始化栈顶指针 }// 判空 bool StackEmpty(…...
前端面试题35(在iOS和Android平台上,实现WebSocket协议有哪些常见的库或框架?)
在iOS和Android平台上,实现WebSocket协议有许多成熟且被广泛使用的库和框架。下面是一些推荐的选项: iOS 平台 SocketRocket 简介:这是由Facebook开源的库,专门为iOS和Mac OS X设计,提供WebSocket连接的功能。它基于S…...
Mysql如何高效ALTER TABL
ALTER TABLE 缺点 MySQL 的ALTER TABLE 操作的性能对大表来说是个大问题。 MySQL MySQL 执行大部分修改表结构操作的方法是用新结构的 创建一个,空表从旧表中查出所有数据插入,新表然后删除旧。表这样操作可能需要花费很长,时间 如内果存不…...
vue3+vite搭建第一个cesium项目详细步骤及环境配置(附源码)
文章目录 1.创建vuevite项目2.安装 Cesium2.1 安装cesium2.2 安装vite-plugin-cesium插件(非必选)2.3 新建组件页面map.vue2.4 加载地图 3.完成效果图 1.创建vuevite项目 打开cmd窗口执行以下命令:cesium-vue-app是你的项目名称 npm create…...
LiteOS增加执行自定义源码
开发过程注意事项: 源码工程路径不能太长 源码工程路径不能有中文 一定要关闭360等杀毒软件,否则编译的打包阶段会出错 增加自定义源码的步骤: 1.创建源码目录 2. 创建源文件 新建myhello目录后,再此目录下再新建源文件myhello_demo.c 3. 编…...
《Nature》文章:ChatGPT帮助我学术写作的三种方式
图片翻译 ** 文章内容** 忏悔时间:我使用生成式人工智能(AI)。尽管在学术界关于聊天机器人是积极力量还是消极力量的争论不休,但我几乎每天都使用这些工具来完善我所写论文中的措辞,并寻求对我被要求评估的工作进行替…...
防火墙安全策略与用户认证综合实验
一、实验拓扑 二、实验需求 1.DMZ区内的服务器,办公区仅能在办公时间内<9:00-18:00>可以访问,生产区的设备全天可以访问 2.办公区不允许访问互联网,办公区和游客区允许访问互联网 3.办公区设备10.0.2.10不充许访问DMZ区的FTP服务器和HT…...
vue学习day05-watch侦听器(监视器)、Vue生命周期和生命周期的四个阶段、、工程化开发和脚手架Vue cli
13、watch侦听器(监视器) (1)作用:监视数据变化,执行一些业务逻辑或异步操作 (2)语法: 1)简写语法——简单数据类型,直接监视 ① Watch:{ 数…...
数字人+展厅互动体验方案:多元化互动方式,拓宽文化文娱新体验
数字化创新已成为推动展厅可持续发展,创造全新消费体验,满足游客多元化需求的关键力量。 “数字人数字互动展厅”可以适应年轻一代的文化传播与多媒体互动新体验趋势,打造新生代潮玩聚集地,促进文化创意传播与互动体验场景创新&a…...
在Spring Boot项目中集成监控与报警
在Spring Boot项目中集成监控与报警 大家好,我是微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 1. 引言 在当今的软件开发中,监控和报警系统是保证系统稳定性和可靠性的重要组成部分。Spring Boot…...
opencv实现目标检测功能----20240704
早在 2017 年 8 月,OpenCV 3.3 正式发布,带来了高度改进的“深度神经网络”(dnn)模块。 该模块支持多种深度学习框架,包括 Caffe、TensorFlow 和 Torch/PyTorch。这次我们使用Opencv深度学习的功能实现目标检测的功能,模型选用MobileNetSSD_deploy.caffemodel。 模型加载…...
音视频解封装demo:使用libmp4v2解封装(demux)出mp4文件中的h264视频数据和aac语音数据
1、README 前言 本demo是使用的mp4v2来将mp4文件解封装得到h264、aac的,目前demo提供的.a静态库文件是在x86_64架构的Ubuntu16.04编译得到的,如果想在其他环境下测试demo,可以自行编译mp4v2并替换相应的库文件(libmp4v2.a&#…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
