虚幻引擎(7)-持枪射击

2024-01-10 12:48
文章标签 虚幻 引擎 射击 持枪

本文主要是介绍虚幻引擎(7)-持枪射击,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
    • 其他介绍
    • 上一篇笔记
    • 下一篇笔记
    • 动态预览图
    • 蓝图预览
      • [1]. 角色蓝图
      • [2]. 子弹蓝图
  • 一、导入第一人称包
    • [1]. 在开始时选择
    • [2]. 创建后导入
  • 二、创建操作映射(绑定射击键)
  • 三、子弹蓝图
    • [1]. 创建子弹蓝图类
    • [2]. 添加球体
    • [3]. 添加模拟物理组件
    • [4]. 添加球形碰撞组件
    • [5].覆盖根组件
    • [6]. 设置发射速度
    • [7]. 设置反弹
    • [8]. 设置碰撞
    • [9]. 设置子弹大小
    • [10]. 子弹消失蓝图
  • 四、角色蓝图
    • [1]. 创建角色蓝图类
    • [2]. 添加枪把
    • [3]. 添加摄像机
    • [4]. 添加子弹
    • [5]. 蓝图
      • (1) 触发事件
      • (2) 生成子弹
      • (3) 获取子弹位置信息
      • (4) 获取镜头的旋转
      • (5) 将旋转与位置组合成向量
      • (6) 添加加法节点
      • (7) 创建变换
      • (8) 射击音效
  • 五、移动、视角、跳跃

前言

主要是介绍一下持枪和左键射击的内容,需使用第一人称模板。

虚幻引擎版本: 4.23.1

其他介绍

虚幻4官方文档

虚幻4中文官网

虚幻引擎蓝图API参考文档

虚幻引擎4蓝图节点-小狐狸FM

HelloCJC虚幻引擎社区

上一篇笔记

虚幻引擎(6)-过场动画

下一篇笔记

虚幻引擎(8)-射击准星

动态预览图

在这里插入图片描述

蓝图预览

[1]. 角色蓝图

在这里插入图片描述
在这里插入图片描述

[2]. 子弹蓝图

在这里插入图片描述

一、导入第一人称包

[1]. 在开始时选择

在这里插入图片描述

[2]. 创建后导入

在这里插入图片描述
在这里插入图片描述

二、创建操作映射(绑定射击键)

在这里插入图片描述

三、子弹蓝图

[1]. 创建子弹蓝图类

记得选择的是Actor类型的蓝图类
在这里插入图片描述

[2]. 添加球体

在这里插入图片描述

[3]. 添加模拟物理组件

添加一个Projectile Movement组件
在这里插入图片描述

[4]. 添加球形碰撞组件

添加一个Sphere Collision碰撞体
在这里插入图片描述

[5].覆盖根组件

如果你前几步创建正确的话,组件界面如下图
在这里插入图片描述
之后将球体Sphere拖动到碰撞体Sphere1
在这里插入图片描述
在这里插入图片描述
然后就是覆盖根组件DefaultSceneRoot了,覆盖的原因是因为根组件的某些配置可能会影响到子弹的碰撞。
拖动碰撞体Sphere1根组件DefaultSceneRoot,让碰撞体Sphere1成为新的根
在这里插入图片描述

在这里插入图片描述

[6]. 设置发射速度

如果你没有设置速度的话,发射的子弹就会像是水滴一样落下
选中模拟物理组件ProjectileMovement
在这里插入图片描述
在右侧的细节面板中找到下图红圈的配置并修改。
Initial Speed为发射时的初始速度,而Max Speed是子弹能达到的最大速度
你可以将两个速度设置成一样的值
在这里插入图片描述

[7]. 设置反弹

选中模拟物理组件ProjectileMovement
在这里插入图片描述
Should Bounce选项勾选。
在这里插入图片描述

[8]. 设置碰撞

先设置一下对应的碰撞大小
在这里插入图片描述
Sphere Radius中设置碰撞球体的半径
在这里插入图片描述
选择碰撞的方式,BlockAll表示对任何的物体都能发生碰撞
在这里插入图片描述

[9]. 设置子弹大小

选中球体Sphere
在这里插入图片描述
Sphere组件中也有碰撞的设置,因为已经在碰撞体Sphere1中设置过了,所以Sphere组件不需要设置。
在这里插入图片描述

[10]. 子弹消失蓝图

先进入事件图表,在这你可以设置蓝图,正常来说游戏内的子弹是直接触碰到物体就会直接消失,那个蓝图略微复杂点,在这里还是介绍一个子弹经过一段时间就会消失的蓝图。
如果要当子弹消失的话,需要有一个事件来触发,这就需要用到我们之前创建的射击操作映射了。
在这里插入图片描述
在这里插入图片描述
然后创建一个延迟节点,当按下射击键过一段时间后,子弹才会消失。
在这里插入图片描述
在这里插入图片描述

设置经过10秒之后,才会执行下一个节点
在这里插入图片描述
添加一个删除自身蓝图类的节点
在这里插入图片描述

在这里插入图片描述

最后将三个节点按下图顺序相连即可

在这里插入图片描述
要记得给该蓝图类编译
在这里插入图片描述

四、角色蓝图

[1]. 创建角色蓝图类

创建蓝图类时,选择Character的类型
在这里插入图片描述

[2]. 添加枪把

下图是枪把静态网格体对应的存放位置
在这里插入图片描述
点击添加组件,选择Skeletal Mesh(SK_FPGun)来创建,或者是创建了Skeletal Mesh之后,再进行添加Mesh

在这里插入图片描述
在这里插入图片描述
在视口中调整枪把的位置和方向,枪把方向为蓝色箭头的方向
在这里插入图片描述

[3]. 添加摄像机

在这里插入图片描述
在这里插入图片描述

[4]. 添加子弹

这里的子弹仅仅是为了确定子弹需要生成的位置才创建的,实际射击时生成的是之前创建的bullet蓝图类,而不是此处的球体。

添加一个球体
在这里插入图片描述
调整其大小
在这里插入图片描述
调整这个球体到枪口处
在这里插入图片描述
然后将枪把SkeletalMesh球体Sphere附属到相机Camera下,如果你没有附属到摄像机下的话,之后的上下视角时仅仅是摄像机在移动,而枪把和球体还是会在原位。
在这里插入图片描述

到此组件就不需要进行调整了

[5]. 蓝图

(1) 触发事件

进入蓝图类的事件图表中,创建一个射击事件节点。
在这里插入图片描述

(2) 生成子弹

创建一个从类生成Actor的节点,如果需要查看这个节点的使用方法可以参考→虚幻引擎4蓝图节点-小狐狸233
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

因为未选定需要生成的是什么,所以默认为空

Collision Handling Override是设置蓝图类的生成方式
在这里插入图片描述
Class中选择刚刚创建的bullet蓝图类
在这里插入图片描述
然后将射击事件节点与该执行节点相连
在这里插入图片描述
如果只有这两个节点的话,没法确定生成子弹的位置、速度等信息。

所以就需要在Spawn Transform口接入一个变换,确保变换有我们所需要的位置、速度等信息。

(3) 获取子弹位置信息

创建一个获取球体Sphere位置信息的传值节点
在这里插入图片描述
弄完后长这样
在这里插入图片描述

(4) 获取镜头的旋转

如果没有获取摄像机的旋转方向的话,不管你的视角是什么方向,你的子弹都只会从一个默认的方向发射出去。
我们这时需要选择含有摄像机的GetWorldRotation节点
在这里插入图片描述
在这里插入图片描述

(5) 将旋转与位置组合成向量

RotateVector节点能够将位置和旋转进行结合
在这里插入图片描述

在这里插入图片描述

然后将节点GetWorldRotation的输出端连接到RotateVector的输入端
在这里插入图片描述

(6) 添加加法节点

在这里插入图片描述
在这里插入图片描述

将刚刚的节点与加法节点相连
在这里插入图片描述

(7) 创建变换

生成子弹的节点需要传入的是变换Transform类型,所以刚刚的向量没法直接连接。
Make Transform节点就能将向量、位置等信息转换成Transform类型再输出
创建一个MakeTransform节点
在这里插入图片描述
在这里插入图片描述

将刚刚创建的节点与该节点相连
在这里插入图片描述

最后将Make Transform的输出口与生成Actor Bullet节点Spawn Transform接口相连。
在这里插入图片描述

(8) 射击音效

前面步骤完成之后,我们的枪就可以有射击的功能了,但是这个射击不会产生相应的声音。
你如果需要射击发出不同的声音时,就需要用到节点Play Sound at Location

在这里插入图片描述

Sound接口就能够选择你所需要的音效了,这个节点执行后,会在你需要的位置播放一次音频。

在这里插入图片描述
在这里插入图片描述

选择音效
在这里插入图片描述
创建一个GetWorldLocation(Sphere)节点,Sphere为子弹的位置。
在这里插入图片描述
按下图方式进行连接
在这里插入图片描述
以上步骤完毕后,编译即可
在这里插入图片描述

五、移动、视角、跳跃

这几个蓝图的话我就直接贴蓝图了,映射和相应的蓝图节点就不介绍了。
你可以参考参考下面的博客
虚幻引擎4蓝图笔记(3)-视角移动
虚幻引擎4蓝图笔记(2)-角色移动
虚幻引擎4蓝图笔记(1)-角色跳跃
虚幻引擎4蓝图节点-小狐狸233
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这篇关于虚幻引擎(7)-持枪射击的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/590861

相关文章

MySQL常见的存储引擎和区别说明

《MySQL常见的存储引擎和区别说明》MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY、Archive、CSV和Blackhole,每种引擎有其特点和适用场景,选择存储引擎时需根... 目录mysql常见的存储引擎和区别说明1. InnoDB2. MyISAM3. MEMORY4. A

MySQL InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据

《MySQLInnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据》mysql的ibdata文件被误删、被恶意修改,没有从库和备份数据的情况下的数据恢复,不能保证数据库所有表数据... 参考:mysql Innodb表空间卸载、迁移、装载的使用方法注意!此方法只适用于innodb_fi

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

速了解MySQL 数据库不同存储引擎

快速了解MySQL 数据库不同存储引擎 MySQL 提供了多种存储引擎,每种存储引擎都有其特定的特性和适用场景。了解这些存储引擎的特性,有助于在设计数据库时做出合理的选择。以下是 MySQL 中几种常用存储引擎的详细介绍。 1. InnoDB 特点: 事务支持:InnoDB 是一个支持 ACID(原子性、一致性、隔离性、持久性)事务的存储引擎。行级锁:使用行级锁来提高并发性,减少锁竞争

Smarty模板引擎工作机制(一)

深入浅出Smarty模板引擎工作机制,我们将对比使用smarty模板引擎和没使用smarty模板引擎的两种开发方式的区别,并动手开发一个自己的模板引擎,以便加深对smarty模板引擎工作机制的理解。 在没有使用Smarty模板引擎的情况下,我们都是将PHP程序和网页模板合在一起编辑的,好比下面的源代码: <?php$title="深处浅出之Smarty模板引擎工作机制";$content=

MySQL技术内幕_innodb存储引擎

MySQL技术内幕_innodb存储引擎 INNODB innodb中如果表没有主键 表是否由 非空唯一键,有则该字段为主键没有,则自动创建一个6字节大小的指针 innodb存储引擎的所有数据都存储在表空间中,表空间由段,区,页(块)组成。 如果启用了 innodb_file_per_table, 则每张表内的数据可以单独放在一个表空间中即使启用了上面参数,共享表空间也会因为 系统事务信息

Matter.js:Web开发者的2D物理引擎

Matter.js:Web开发者的2D物理引擎 前言 在现代网页开发中,交互性和动态效果是提升用户体验的关键因素。 Matter.js,一个专为网页设计的2D物理引擎,为开发者提供了一种简单而强大的方式,来实现复杂的物理交互效果。 无论是模拟重力、碰撞还是复杂的物体运动,Matter.js 都能轻松应对。 本文将带你深入了解 Matter.js ,并提供实际的代码示例,让你一窥其强大功能

认识鬼火引擎

一、Irrlicht简介 (1)概念Irrlicht引擎是一个用C++书写的高性能实时3D引擎,可以应用于C++程序或者.NET语言中。通过使用Direct3D(Windows平台)、OpenGL 或它自己的软件着色程序,可以实现该引的完​全跨平台。尽管是开源的,该Irrlicht库提供了可以在商业级的3D引擎上具有的艺术特性,例如动态的阴影,粒子系统,角色动画,室内和室外技术以及碰撞检测等。(

一个图形引擎的画面风格是由那些因素(技术)决定的?

可能很多人第一直覺會認為shader決定了視覺風格,但我認為可以從多個方面去考慮。 1. 幾何模型 一個畫面由多個成分組成,最基本的應該是其結構,在圖形學中通常稱為幾何模型。 一些引擎,如Quake/UE,有比較強的Brush建模功能(或應稱作CSG),製作建築比較方便。而CE則有較強的大型地表、植被、水體等功能,做室外自然環境十分出色。而另一些遊戲類型專用的引擎,例

虚幻中的c++(持续更新)

文章目录 虚幻中的c++UPROPERTY参数 UFUNCTION参数 虚幻中的c++ UPROPERTY 是虚幻中用于声明属性的宏,它用于标记某个属性是一个虚幻托管的属性,并且可以在编辑器中进行访问和操作。其提供了一系列参数,用于定义属性的各种行为,例如是否可编辑、是否可序列化等。 参数 EditAnywhere:允许在编辑器中编辑该属性,包括蓝图类及其在关卡