当前位置: 首页 > 手游 > 曙光英雄

重制虚幻射击游戏示例项目中的音频

来源:网络 时间:2023-08-20 07:34:48
导读高级技术音频设计师Adam Block为用户讲解他为虚幻射击游戏示例项目中重制音频的过程,以及他所作的改动。

嗨,我叫Adam Block。我是一个高级技术音频设计师,自2008年起就在电子游戏行业从事相关工作。我是游戏音频界的活跃分子,也是Facebook上虚幻引擎音频技巧与诀窍版的版主,我会在那里帮助对虚幻引擎中的音频有疑问的人。在我的游戏音频职业生涯的前6年,我在动视和索尼的几家工作室专职工作,参与制作了《吉他英雄》《漫威终极联盟2》《变形金刚:塞伯坦的陨落》《行星边际2》和另外几款作品。2014年,我成立了Craft Media Group,这是一家游戏音频公司,提供可伸缩的端到端游戏音频开发,以远程工作的方式参与各种规模的项目。迄今为止,我亲自参与制作的游戏已经有40多款,Craft也已经发展壮大,被那些急需资深游戏音频团队的游戏工作室视作它们的异地音频部门。这篇开发博客适合所有对虚幻引擎中的音频设计或实现感兴趣的读者。我受Epic Games聘请,为他们的射击游戏”项目执行全面的音频改进,这个项目可以通过Epic Games启动程序安装。它也是Epic被下载次数最多的初学者模板,所以如果你还没有安装它,赶快下载看一下吧。我不仅重新设计了该项目中所有的音频资源,还加入了可伸缩的蓝图逻辑,并尽我所能以浅显易懂的方式对其进行了说明,不过我也整合了一些有用的参数、系统、变量和组件,相信大多数音频设计师都乐于研究它们。我完成的设置仅仅是一种设计建议,是在虚幻引擎中进行音频实现的众多方法之一。我觉得在游戏音频界流行着一种迷思,认为要制作“次世代音频”(无论它的实际含义是什么),就必须在UE项目中整合中间件,其实并非如此。令我对未来充满希望的是,现在有越来越多的游戏音频工作者认识到了内容创作者也应该精通技术。虚幻引擎的原生工具和功能无疑已经有了重大改进,这是因为过去几年来Epic的编程和QA团队一直在实现、测试和修改它们,而且他们还有着雄心勃勃、激动人心的发展路线图。我认为自己作为专业的音频设计师,有责任发挥这些工具和技术的优势,并成为更优秀的游戏设计师,而不是依靠程序员来为自己完成往往很简单的实现任务,考虑到蓝图时代已现出曙光,我就更应该承担起这样的责任。我从2012年起就是虚幻引擎的积极拥趸,又对音频设计的艺术和实现的技术充满热情,因此受雇参加这一项目令我有受宠若惊之感。在考虑了各种因素(音频设计、实现、发现、Bug修订、试玩、开会、同步,等等)之后,我估计这份工作需要做15到20天。在加入项目之后,我不能不说,当初选中音频子关卡中的所有Actor并将它们删除是很值得的。下面就简要概述我的工作过程和一些必须时刻牢记的要点。

项目目标

该项目的主要目的是更新音景,使它听起来更现代和动感。以前的资源是被过度压缩的,对混音的处理不够好,而且资源的声音也颇为陈旧。还有一条给人印象深刻的音轨,它在频率和音量方面对耳朵的要求很是苛刻。这实际上使玩家少了许多体验游戏中各个事件的机会,最终减少了游戏的乐趣。比较大的问题有:武器声音缺乏冲击力,环境音提供的空间感和质感不足,脚步声过于沉重和响亮,而拾取物品的声音几乎像爆炸,等等。我可以逐个处理这些资源,但考虑到时间因素,而且我觉得所有资源都需要更新。所以我几乎清除了游戏中的所有声音,然后从头开始。  

这是我清除音频子关卡中所有内容的视频,这个操作让我很满足

音频(再)设计

射击游戏中的音频有一种过时的审美,而且混音不均衡。因为它至今仍是虚幻引擎的新被许可方和新用户下载最多的示例项目之一,所以它可能让这些人对使用原生音频引擎所能达到的效果产生错误印象。不仅如此,过时的声音加上不一致的实现策略,还使这个示例游戏的游戏乐趣大打折扣。各主要声音类别(例如武器、脚步、拾取)的音频资源和实现不够均衡。.wav资源的动态范围有限,在同一个频段中相互竞争。它们也缺乏个性和清晰度。音景给人感觉很苍白,因而削弱了游戏体验中的情感联系,而这正是音频在任何媒体中所扮演的主要角色。音频设计师要确保电子游戏中的任何因果都具备目的驱动的、有意义的音频设计,能够支持游戏的整体设计和剧情。由于以上问题,我认为全面改造势在必行。一连几天,我带着话筒和便携式录音机走遍了圣迭戈的不同区域,录下大量原始的音源素材。我获得的素材多种多样,包括了环境音和不同表面上的脚步声。我也在自己的工作室里录制了自定义音效,包括金属撞击和其他质感的声音。我还用不同的合成器获得了一些优质的源素材,并通过特效流程制作了各种奇特的素材,以营造充满神秘和未来气息的科幻世界氛围。 

我知道自己必然会把大部分时间花在实现以及了解项目中原有的旧系统上,其中有些系统现在仍在使用。我还花了很多时间拟定草案,确定该如何完成实现过程,以及可能需要哪些新的系统。关于这个项目有一点很令我振奋,那就是Epic的首席音频程序员Aaron McLeran和技术音频设计师Dan Reynolds基本上给了我做任何事情的自由!下面来讲述细节。

实现

这个项目中的一些玩法系统是在项目层面上用C++代码硬编码的。在其他情况下,我只需要让现有实现保持原状,仅用较新的声音内容更换SoundCue和源文件即可。例如,武器射击系统使用一个硬编码的循环声音系统。该系统引用一个仅存在于射击游戏项目中的自定义SoundCue节点;它叫Sound Node Local Player,会根据第一人称和第三人称实例化切换资源。Aaron和Dan告诉我,这通常是在较高级别的玩法代码系统中实现的,而不是在Sound Cue中实现。但是就射击游戏而言,出于工程优先事项的考虑,改变射击游戏实现本地和非本地玩家声音的方式是不可能的。我必须在没有任何程序员执行新的功能或代码工作的前提下完成重新设计。因此,我不得不继续使用这个实现方法。在其他实现情况下,比如冲击模板、毒刺和拾取,我通常单独保留它们的声音钩,仅更换声音本身及其关联Cue。对于剩下的实现工作,我觉得可以重点讲三个主要方面,它们可能会对大多数人都很有启发。这些方面包括:

重叠事件:根据重叠事件改变环境音和一次性音频。Actor蓝图:创建自定义工具,用于修改和定制。基于材质的脚步声:根据表面类型命中结果更改脚步(或其他)声音。重叠事件:我认为,重叠事件代表了虚幻引擎实现的基础框架。它们允许你根据可以放在关卡中的某些东西创建一个蓝图事件。一旦我们进入蓝图,音频控制设计师就可以通过许多功能来控制他们设计的任何音频系统。

图1.在关卡中我希望有自定义音频行为的区域放置一个笔刷Actor来触发重叠事件。

参见上面的图1,我放置了一个自定义体积(用于混响)和一个触发器(用于环境音)来匹配房间的布局。每当玩家与关卡中这些隐形的笔刷体积重叠,我们就可以做下列部分或所有操作:改变该空间中播放的房间音调或环境音床。当玩家处于该空间时,切换为在玩家的场景位置周围随机触发的、更独特的一次性声音。改变此空间内部的任何声音的混响。在该体积内部或外部开启和关闭声音。对在此体积内部或外部播放的声音使用HPF和LPF。

图2.重叠事件执行控制环境声音的逻辑。

在图2中,我演示了一个简单的蓝图脚本,它在发生重叠事件时执行。我首先执行一个检查,确保引发重叠事件的Actor和受控制的Pawn是相同/相等的。然后我通过引用检索场景中的一个音频组件,使它淡入。很简单。请注意,我之所以要检查触发体积的Actor是否正确,是因为NPC(或其他玩家通过网络连接控制的角色)可能会根据其行动改变我们本地客户端上的环境声音。不检查的话,它很快就会让人摸不着头脑。

图3.这里是一个音频逻辑,它在玩家的场景位置周围按随机矢量坐标生成一次性声音。

在图3中,我创建了一些逻辑,使用重叠事件和一个定期在玩家位置周围生成随机一次性声音的Timer By函数。生成这些声音的距离和频率完全由用户通过公用浮点变量定义,我在PIE中尝试不同的声音时,可以轻松对这些变量进行调整和迭代。当然,除此之外我在Cue中还用了标准的音高和音量变化。

图4.“BP_Audio_Spline”蓝图的音频逻辑。

Actor蓝图

如果你还没有发现它们的强大,就听我一句吧:蓝图的功效极其强大,而且开启了无数音频功能和定制机会。例如在图4中,我展示了我的工具脚本,它处理在样条离听者最近时播放声音的逻辑。下面的图5展示了一个样条声音的传播路径示例。

图5.我绘制了一个样条,它沿高层的阳台边缘分布。我的循环风声将从样条上距离玩家位置最近的点发出。这种东西的典型使用案例可能是管道中的流水,曲折的河流的循环水声,等等。你之所以需要那么做,是因为这能营造更大的分布式音源的感觉,而不是让人感到只有单点音源或一系列点音源。

图6.音频跟随玩家在样条的最近位置发出的可视演示。

在这个项目中,我把它用在了几个区域。图6显示了我在阳台边缘使用它的案例。我简单创建了一个让音频遍历的样条路径,在该路径上播放一个刮风/室外循环声音。因此,你会感觉离边缘越近,听到的风声越多。但是它的音量不会升降(也就是说,是一系列一次性声音)。

基于材质的脚步声

图7.根据线条追踪的命中结果改变脚步声的蓝图脚本。

通常,如果要根据玩家踩踏或与之交互的物理材料来改变播放的脚步声或其他音效,并不需要虚幻引擎中的代码支持。图7显示了我用于脚步声和落地声(也就是在角色跳跃后落地时播放的声音)的逻辑。只要你想使用线条追踪,获取关于命中物体的信息,然后根据该结果改变声音,就可以使用类似这样的脚本。‍‍图8.Playsound通知在动画通知触发Anim BP图事件时触发声音。图8显示了你在此动画蓝图中看到的事件被我在各种跑步和冲刺动画中设置并命名为“Footstep”的各个动画通知事件触发。在利用这种方法之前,你首先需要确保项目确实已经设置了不同表面上的物理材质。存在的物理材质类型是在项目设置中定义的。在这个范例项目中,我只使用瓷砖、青草和金属材质。但是,如果你的项目有独特的材质,比如电影《终结者》中的“液体金属”,那么你就要在项目的设置中定义它。设置完它们之后,你就能将那些表面类型分配到已经放置在关卡中的物理材质和网格体。通常环境美术为了作画已经设置好了这些材质,所以音频设计师往往只需要去看看存在哪些材质,然后使用它们。

图9.使用一个“map”变量将物理材质类型与Sound Cue关联

在图9中,我设置了一个变量类型图,在其中我关联了线条追踪的命中结果,从而根据命中的表面播放不同的声音。该蓝图脚本执行下列逻辑序列:动画通知触发一个事件它将Pawn Owner和Cast获取到Player Pawn BP然后它获取场景位置(作为我的起始矢量位置)然后它减去100单位(用作我的结束矢量位置)它使用这些坐标执行一个线条追踪如果它的线条追踪命中一个表面,那么它就告诉我那是什么表面它返回命中的物理材质,并查找我使用map变量设置的声音引用然后它使用我的map变量中的查找结果设置一个名为“Sound To Play”的声音变量最后,它引用玩家Pawn上的网格体,并生成与该网格体关联的脚步声

结语

在虚幻引擎中实现一种创意或系统往往有好几种方法。虽然通常方法本身无所谓对错,但总会有比较高效的方法。如果你是在一个团队里工作,那我建议你请程序员或设计师定期审查和批评你的蓝图逻辑,这是一般的最佳实践。你对音频以外的系统钻研得越多,在设计过程中的参与就越深入,这能让你成为与其他使用虚幻引擎的游戏设计师和开发者平起平坐的开发者。那是很酷的事。

任何人如果想进一步了解虚幻引擎音频,我建议加入我的Facebook“虚幻引擎音频技巧与诀窍”版,看一些
Udemy上的UE课程,加入虚幻引擎论坛,并研究Mathew Wadstein’s WTF Is系列之类的YouTube频道。Epic最近还发布了在线学习课程,非常值得一看。另外你也可以通过我的Linkedin联系我,或访问我的网站Craftmediagroup.com

文中提及的相关文档链接交互式配置器

https://www.unrealengine.com/zh-CN/spotlights/creating-a-digital-showroom-audi-and-mackevision-choose-ue4

射击游戏https://docs.unrealengine.com/zh-CN/Resources/SampleGames/ShooterGame/index.htmlEpic Games启动程序https://www.epicgames.com/store/zh-CN/download蓝图https://docs.unrealengine.com/zh-CN/Engine/Blueprints/index.htmlUdemyhttps://www.udemy.com/topic/unreal-engine/虚幻引擎论坛https://forums.unrealengine.com/在线学习课程https://www.unrealengine.com/zh-CN/onlinelearning-courses近期焦点

虚幻引擎4.24现已发布!

[官方直播预告] 第20期 | 后处理材质基础(下)

四月特卖:数百种商城产品五折优惠参加虚幻快车道挑战,在线学习虚幻引擎用Megascans和虚幻引擎创建数字世界两个学生创作出酷炫实时光追汽车项目精选免费商城内容 - 2020年4月UE中的相机标定、畸变模拟与矫正在线沟通虚幻引擎社区Epic Games Publishing 宣布与 gen DESIGN、Playdead 等达成合作关系虚幻MegaGrants资助计划现状和申请攻略在Project Nature的免费环境包中感受明媚春光更逼真的Twinmotion 2020.1如需获得更多虚幻引擎4的授权合作方式和技术支持,请发送邮件至EGC-Business@epicgames.com咨询;如果你想来 Epic 工作,扫描下方二维码关注我们后点击菜单栏按钮“更多”并选择“招聘”,即可了解我们的最新招聘信息。Epic Games 欢迎你的加入!长按屏幕选择“识别二维码”关注虚幻引擎“虚幻引擎”微信公众账号是 Epic Games 旗下 Unreal Engine 的中文官方微信频道,在这里我们与大家一起分享关于虚幻引擎的开发经验与最新活动。

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:704559159@qq.com

Top
加盟网