《Unreal Engine 4蓝图可视化编程》一2.3 添加音效和粒子效果

2.3 添加音效和粒子效果

既然我们已经拥有了更好的玩家移动和射击属性,将我们关注的点转向敌方目标。现在的效果是射击目标圆柱体后圆柱体会变成红色。然而,目前没有任何可以被玩家完全摧毁的目标。

我们可以通过添加蓝图逻辑来添加更多的与目标之间的交互,比如在击中目标两次及以上时销毁物体,同时增加玩家的奖励,一旦目标被摧毁,就产生一个令人满意的声音和视觉效果。

2.3.1 为目标状态添加分支

我们需要保证CylinderTarget蓝图中有使目标圆柱体的状态变化逻辑。打开Blueprints文件夹中的CylinderTarget蓝图,找到事件Hit节点组。当我们的子弹击中目标圆柱体时,这些节点通知圆柱体改换红色材质。为了在圆柱体被击中两次后给圆柱体添加改变圆柱体行为的能力,我们需要为蓝图添加一个检查圆柱体被击中次数的计数器,然后根据状态显示不同的结果。如图2.13所示操作,可以帮助我们完成这个功能。

为了在蓝图中创建多结果的条件逻辑,我们要利用分支(Branch)节点。这里的分支节点使用一个布尔变量作为输入。由于布尔变量的值只有真或假两种情况,分支节点只能产生两种结果。这两种节点可以通过连接的其他节点的输出执行引脚执行,代表真通道和假通道。

创建分支的第一步时定义你的布尔变量代表什么,并且哪些情况会将条件值从假改变为真。我们要创建一个表示目标被击中的初始状态,然后当目标再次被击中时被摧毁。开始创建一个Primed布尔变量吧。

回忆之前在我的蓝图(My Blueprint)面板定义的变量,读者应该看到了之前为速度和方向定义的两个变量。单击加号(+)按钮添加变量,新的变量类型默认为布尔型,所以就不用去修改了,将它重命名为Primed并勾选可编辑使得在外部也能修改变量。最后,编译、保存蓝图。因为我们并不希望目标在一次都没被击中的情况下就处于primed状态,所以我们将变量的默认值设为假(false)(编译保存后默认值的勾选框不勾选)。

既然有了Primed布尔变量,将它从我的蓝图面板拖放到事件图表中,选择获取选项。这个将从变量中获取状态数据(真/假),同时也让我们能够在蓝图中使用它。从Primed节点的输出引脚拖出红色引线到事件图表,搜索并添加分支节点。

最后,我们可以将分支节点添加到事件Hit蓝图节点组。按住[Alt]键单击节点之间的连线,断开类型转换为FirstPersonProjectile节点和Set Material节点的连接。先将Set Material节点暂时拖放到一边,然后连接类型转换为FirstPersonProjectile节点的输出执行引脚和分支节点的输入执行引脚,现在将在目标圆柱体被击中时都调用分支来进行判断。

既然我们已经将分支节点激活,就需要给目标圆柱体一些指令来响应每个状态。我们希望创建的目标可以有这3种状态:默认(Default)、击中一次(Primed)和销毁(Destroyed)。由于销毁一个actor不能执行任何行为,所以在目标销毁后就不能有任何行为发生。因此,我们只需要关注默认、击中一次这两种状态。

首先来完成默认状态。由于这个分支监听当圆柱体在每一次被击中后圆柱体上发生的事件,所以我们希望执行之前添加的改变材质事件。如果目标现在还没有被击中,并且现在被第一次击中,那么我们需要将材质转换为红色。此外,我们也要将Primed布尔变量设为真(True)。通过上述设置,当目标圆柱体再一次被击中时,分支节点把行为传递到其他执行队列,节点的假(False)执行队列如图2.14所示。

将Set Material节点移到分支节点的右边,将分支节点的假(False)输出执行引脚与节点Set Material的输入执行引脚相连。从我的蓝图面板中拖出Primed变量至事件图表,选择设置选项,将Primed变量的输入执行引脚与Set Material节点的输出执行引脚相连,并勾选设置节点的Primed选项。这个操作将保证当目标被第二次被击中时,分支的判断结果为真。

2.3.2 触发声音效果、爆炸、销毁

下一步就是去定义从分支节点的真分支触发的动作序列。在之前早些时候,按照我们的定义,正在摧毁一个目标时希望能够完成3件事:听到爆炸声响、看到爆炸的效果、将目标对象从游戏世界中移除。我们先从经常忽视的,但是非常关键和影响游戏体验的声音元素开始。

我们可以设计的最基本的交互就是:在游戏世界中的某个位置立即播放一个“.wav”声音文件,并且这个功能可以完美地按照我们的意愿运行。从分支节点的真执行引脚拖出引线,搜索Play Sound at Location节点,如图2.15所示。

Play Sound at Location是一个简单的节点,其承载一个声音文件和一个位置输入,并在该位置上播放声音。这个项目中有几个默认的声音文件资源,单击Sound输入引脚旁的选择资源,用户可以从下拉菜单中看到声音文件的列表,找到并选择Explosion01作为爆炸音效。

既然我们已经选择了声音资源,就需要定义在哪里播放这个声音。还记得怎样通过设置目标圆柱体的网格组件设置视野吗?可以使用与之相类似的方法来进行设置,提取出位置信息,然后将位置向量与声音节点直接连起来。然而,事件Hit触发器把这个事情简化了。

事件Hit节点的输出引脚之一为Hit Location。这个引脚包含了被事件Hit节点检测到的游戏世界中两个对象发生碰撞的位置信息。这个位置是产生爆炸效果的绝好位置,从事件Hit节点的Hit Location引脚拖出引线与Play Sound at Location节点的Location引脚相连接。

编译、保存、最小化蓝图后,在UE4编辑器中单击播放按钮进行测试。射击某一个移动目标使它变红,然后接下来的每一次射击都将产生一个爆炸音效。

既然我们的爆炸声音效果已经起作用了,现在开始添加视觉效果并销毁圆柱体,参照图2.16进行设置。

从Play Sound at Location节点的执行引脚拖出引线至事件图表的空白区域,搜索并添加Spawn Emitter at Location节点。

Spawn Emitter at Location节点看起来与Play Sound at Location节点类似,不过它还多了旋转输入引脚和Auto Destroy开关。在Emitter Template下方的下拉菜单中,找到并选择P_Explosion效果。这是FPS模板中自带的另一个标准资源,它将在发射器被添加的地方产生一个令人满意的爆炸效果。

因为我们希望爆炸效果与爆炸音效在同一个位置生成,从事件Hit节点的Hit Location引脚拖出引线与Spawn Emitter at Location节点的Location引脚相连接。爆炸是一个从所有的角度看都一样的三维效果,所以我们可以暂时不管Rotation输入引脚。Auto Destroy开关决定粒子发射器是否能被多次触发,一旦这个粒子效果被创建,我们就将包含这个粒子发射器的actor销毁,所以我们勾选Auto Destroy。

最后,我们希望在爆炸的声音和视觉效果完成后,从游戏世界中移除目标圆柱体。从Spawn Emitter at Location节点的输出执行引脚拖出引线,搜索Destroy Actor节点(为了找到这个节点,你可能需要暂时地将情境关联取消勾选)并添加。这个节点只有一个目标输入,默认为self。由于这个蓝图包含了我们想摧毁的圆柱体对象,并且self就是我们想摧毁的,所以我们不需要对这个节点进行设置。

注意 提示 

Emitter(发射器)是一个在特殊位置产生粒子效果的对象。粒子效果收集了很多小的对象,将它们结合起来创建液体、气体或其他不能触摸的效果,比如水的冲击、爆炸或光束。

扩展整个事件Hit节点序列的注释,并且更新上面的文本描述,写清楚这个节点组完成了哪些功能,如图2.17所示。

当你完成了注释的添加,请编译、保存,最小化蓝图后,在UE4编辑器中单击播放按钮进行测试。当你使用枪发射子弹击中目标圆柱体两次后,将看到爆炸效果并听到爆炸音效。

时间: 2024-12-02 06:04:51

《Unreal Engine 4蓝图可视化编程》一2.3 添加音效和粒子效果的相关文章

《Unreal Engine 4蓝图可视化编程》一2.2 制作瞄准镜效果

2.2 制作瞄准镜效果 现代FPS的核心元素就是以瞄准镜的形式将FOV(field of view,视野)呈献给玩家.这是一个很重要的因素,给游戏带来了精确感和控制感.现在将这一功能的简化版添加到项目中. 在事件图表中靠近Mouse input节点组的空白区域单击鼠标右键,搜索输入动作Zoom(InputAction Zoom)触发器节点并添加.我们希望修改FirstPerson- Camera组件中的FOV值,于是到组件面板中找到FirstPersonCamera并将它拖入事件图表中. 从Fi

《Unreal Engine 4蓝图可视化编程》一第1章 使用蓝图进行对象交互

第1章 使用蓝图进行对象交互 Unreal Engine 4蓝图可视化编程 当开始开发一个游戏时,你想到的第一步应该是建立一个原型.幸运的是,虚幻引擎4和蓝图让基本的游戏功能实现起来比以往任何时候都更容易.这样用户便可以很快地开始测试自己的想法.为了让大家熟悉虚幻编辑器(Unreal Editor)和蓝图(Blueprint),我们将使用一些自带的资源和蓝图建立游戏玩法机制. 本章我们将学习以下内容. 创建新的项目和关卡. 在关卡中置入对象. 通过蓝图改变对象的材质. 使用蓝图编辑器链接所有的蓝

《Unreal Engine 4蓝图可视化编程》一导读

前 言 Unreal Engine 4蓝图可视化编程 游戏引擎(例如虚幻引擎4)作为强大的商业游戏的制作工具,越来越受传统游戏工作室以外的新老游戏开发者所欢迎.虚幻引擎为过去10年中发布的许多最受欢迎的控制台和PC游戏提供了动力,最新版本的虚幻引擎尽可能地包含了开发者所需的工具.这些工具中最具变革性的是蓝图可视化编程系统,其允许非专业程序人员创建和实现游戏机制.用户界面(User Interface,UI)和交互. 本书采用分步方法,指导读者使用可视化的蓝图节点构成蓝图行为,并将它们链接在一起以

《Unreal Engine 4蓝图可视化编程》一第2章 升级玩家的技能

第2章 升级玩家的技能 Unreal Engine 4蓝图可视化编程 在本章中,我们将通过修改玩家控制器(player character)蓝图,来扩展在第1章中创建的射击交互的核心部分.FPS模板中玩家控制器的蓝图--特别是当它与上一章相对简单的目标圆柱体的蓝图比较时--乍一看很复杂.我们将会分析玩家控制器蓝图并将它分解为很多部分,弄明白每个部分的功能,以及它们组合在一起时能够控制角色和射击的原因. 我们可以很容易且快速地使用现有的资源来照着搭建这个蓝图,甚至不需要花时间去思考它是如何完成这些

《Unreal Engine 4蓝图可视化编程》一1.7 小结

1.7 小结 本章通过UE4蓝图创建了第一个原型,迈出了游戏开发的第一步! 在本章中,利用FPS模板创建了一个工程和一个初始关卡.然后设置了一个目标,通过改变自身颜色来响应子弹的射击.最后,设置了一个蓝图,能够快速地创建很多移动的目标.读者在本章所学到的这些技巧,将为后续章节创建更加复杂的交互性行为打下扎实的基础. 你或许会希望花更多的时间来调试游戏原型,包括布局.目标移动速度.由于我们将继续游戏开发,后续很多时候都在候选效果面前徘徊并作出选择.蓝图可视化编程最好的地方就是可以快速地让用户测试自

《Unreal Engine 4蓝图可视化编程》一1.1 创建项目和关卡

1.1 创建项目和关卡 在开始创造游戏元素之前,我们需要创建一个项目,这个项目将包含游戏的内容.为了获取虚幻引擎4(Unreal Engine 4,以下简称UE4),并开始设定我们的项目,需要打开Epic Games launcher,通过它便可以从UE4官网下载UE4引擎.单击Epic Games launcher的UE4标签.如果你是第一次在你的计算机中使用虚幻引擎,你将会看到灰色的未安装(Not Installed)按钮.在Launcher的左侧,会看到一些选项. 工作标签可以让你选择已经

《Unreal Engine 4蓝图可视化编程》一1.4 创建第一个蓝图

1.4 创建第一个蓝图 现在游戏世界中放置了一个圆柱体,在当圆柱体被击中时,我们需要为圆柱体赋上前一节创建的材质.最后一个交互是游戏逻辑判断圆柱体被选择,然后将圆柱体的材质改变为红色材质.为了创建这一行为并添加到圆柱体上,我们需要创建一个蓝图.创建蓝图的方式有很多种,但是为了简便,我们可以创建蓝图并直接添加给圆柱体.为此,确保在场景中选中了CylinderTarget对象.单击细节面板顶端的蓝色蓝图/添加脚本(Blueprint/Add Script)按钮,将可看到路径选择窗口. 在这个项目中,

《Unreal Engine 4蓝图可视化编程》一2.1 通过扩展蓝图添加加速技能

2.1 通过扩展蓝图添加加速技能 开始探索FirstPersonCharacter蓝图,以使玩家在关卡中移动时拥有更多的战术选项.没做修改前,玩家还只是局限在一个速度进行移动.我们可以通过蓝图节点监听按键的动作来进行调整,将调整移动速度功能附加在CharacterMovement蓝图组件中. 2.1.1 分解角色移动蓝图 现在我们打开FirstPersonCharacter蓝图.它与第1章的Cylinder- Target_Blueprint蓝图位于同一个文件夹下.在内容浏览器中找到FirstP

《Unreal Engine 4蓝图可视化编程》一1.5 制作移动标靶

1.5 制作移动标靶 既然我们有目标来响应玩家的射击,则可以添加一些挑战性的东西来让项目像一个游戏,一个简单的方法是为目标制作移动的标靶.为了完成这个功能,首先我们需要将目标actor是设为可移动的,然后需要通过蓝图设置逻辑.这样便可以控制目标移动.我们的目标是使目标圆柱体在关卡中来回移动. 1.5.1 改变actor的移动性和碰撞 为了让目标移动,首先需要改变actor的移动性(Mobility)为可移动(Moveable).这个操作将允许对象在玩游戏时可以被操纵.在UE4编辑器的世界大纲视图