文章目录

  • 前言
    • 其他介绍
    • 上一篇笔记
    • 下一篇笔记
    • 动态预览图
    • 蓝图预览
      • [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)-持枪射击相关推荐

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

    文章目录 前言 相关介绍 其他介绍 上一篇笔记 下一篇笔记 蓝图预览 一.准星绘制 [1]. 创建HUD蓝图类 [2]. 触发事件 [3]. 绘制准星 (1) Draw Texture节点 (2) 选 ...

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

    文章目录 前言 其他介绍 上一篇笔记 下一篇笔记 动态预览图 一.创建关卡序列 [1]. 第一种创建的方法 [2]. 第二种创建的方法 二.添加摄像机 三.摄像机的属性设置 四.Sequencer界面 ...

  3. 虚幻引擎C++终极射手教程 Unreal Engine C++ The Ultimate Shooter Course

    虚幻引擎C++终极射手教程 Unreal Engine C++ The Ultimate Shooter Course MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 ...

  4. UE4: 学习虚幻引擎4的16条准则

    作为一个完全的新手,尝试去学习一个新的游戏引擎看起来会很可怕.你拥有了许多的学习教程.文件和建议,但是你却不明白怎样去开始或是以一个什么样的步骤去学习虚幻引擎4.你在不同的方向间摇摆不定,最终你会越来 ...

  5. 使用虚幻引擎 4 年,网络架构大揭秘

    作者 | Jerish 来源 | 游戏开发那些事 我从16年开始接触 Unreal,到如今已经4年了.最近看了不少关于网络同步的论文和书籍,总算是理解了 Doom 和 Quake 这种古董级游戏的发展 ...

  6. 使用虚幻引擎4年,我想再谈谈他的网络架构

    作者 | Jerish 来源 | 游戏开发那些事 我从16年开始接触Unreal,到如今已经4年了.最近看了不少关于网络同步的论文和书籍,总算是理解了Doom和Quake这种古董级游戏的发展历史,对其 ...

  7. 虚幻4皮肤材质_虚幻引擎4.5版本预览说明

    即将到来的4.5版本包含了大家翘首以待的新功能,包括了动画重定向.自动C++热重载.光照贴图UV生成以及动态载入视频贴图. 新的实时光线追踪的柔和阴影让您可以创建具有绚丽光照的动态场景,并且屏幕空间的 ...

  8. 怎么卸载虚幻4_专访Epic Games:虚幻引擎5离手游近在咫尺,中小团队也能很快上手...

    看起来表现效果十分前沿的虚幻引擎5,离实际应用并不遥远. 文/安德鲁 虚幻引擎5不是中小团队能玩得转的吧? 虚幻引擎5是针对下一代主机开发的,用到手游上是不是还遥遥无期? 前不久,虚幻引擎公布了在PS ...

  9. 时下几款著名的游戏引擎介绍,也许你只听说过“虚幻引擎”

    "游戏引擎"顾名思义,就是指一款游戏的"引擎".(好吧,我知道这句话是废话......) 让小编给大家举一个更加形象的例子:大家不妨联想一下汽车引擎. 汽车之所 ...

最新文章

  1. Ubuntu中的颜色选择器实用程序(彩色移液器)[关闭]
  2. 如何在 Outlook 中使用外出时的助理程序
  3. 详解CPU几个重点基础知识
  4. ESP3 + ESP-IDF | 串口1 - 简单的串口回环测试
  5. springboot整合ehcache+redis实现双缓存
  6. 张清:心静,写在年末
  7. Linux下C语言开发环境的搭建
  8. 时域和频域和频谱的关系
  9. 关于MATLAB给多条曲线命名和划定网格
  10. 单链表求节点个数,反转,逆序打印,合并两个有序的单链表
  11. 云更新网吧系统服务器,云更新2021最新版安装视频教程/网吧无盘系统/万能包PNP驱动...
  12. 电脑开机后过一会就关机自动重启
  13. KMS激活报错0x8007000D
  14. 【Linux】VirtualBox设置静态ip
  15. 手游族迎来360手机卫士神助攻 玩家免打扰尽情发育
  16. MVC框架简易留言板实例
  17. java高级之JDBC的基本操作知识
  18. 大规模MIMO上行信号检测基础
  19. 安卓手机MTK手机3d模型查看器源码APP下载
  20. 普通人做自媒体短视频,现在自媒体平台还有啥赛道可做的?

热门文章

  1. php 字体倾斜,CSS中font-style定义字体倾斜体样式的代码示例
  2. sublime text3使用自带插件汉化及破解(亲测有效!更新于2019.07.22)
  3. 基于SpringBoot+SpringCloud+Vue前后端分离项目实战 --开篇
  4. 用C#编写摄影测量后方交会求外方位元素
  5. i7 12700k和i9 12900k性能差多少 i7 12700k和i9 12900k玩游戏区别
  6. 微信Native支付V3版本
  7. 微信小程序源码获取与反编译方式
  8. IDEA快捷键与输入法快捷键冲突
  9. 科普 | 什么是NFT?有何价值?
  10. CSDN MarkDown编辑器支持展示文章封面啦【8月1日】