在Unreal 中使用 Wwise Reflect模拟基 于几何信息的动态早 期反射

空间音频 / Wwise 技巧和工具

在 Wwise 2017.1引入的空间音频新特性中,Wwise Reflect 插件 能让用户听到实时计算出的游戏中的墙上和物体上的声音反射,以此帮用户去感受所在的空间。我们拿第一人称游戏作为例子吧。当您的角色发出声音时,声音会在您所在的房间墙上反射。这些反射会由于房间的形状和听者的位置而不同。离墙远的反射延迟会比离墙近的要大。这一行为可以使用全新的 Wwise Reflect 插件来模拟。在这篇博客中,我们会指引您进行所需的步骤,用Unreal集成和Wwise Audio Lab(WAL)使用 Wwise Reflect得到沉浸式的声学渲染。即将上市的WAL是一款第一人称Unreal游戏,它能让您在玩的同时实验我们的功能。

Wwise工程

Wwise工程中我们需要设置在几何空间中反射的声效WAL第一人称的角色持有一个发球器它的所有声音都放在下图中的Weapon Actor-Mixer Reflect插件应插入到一条辅助总线上。想要让武器的声音连在通到辅助总线的同时应用Reflect我们需要在Property Editor中的General Settings里启用Use game-defined auxiliary sends(使用游戏定义的辅助发送)

1ActorMixerUseGameDefinedAuxSends.png

然后我们需要添加一个带有Reflect插件的辅助总线。在我们的示例中,该辅助总线名为FirstPerson,如下图所示。

2MasterMixerHierarchy.png

该辅助总线需要勾选Enable Positioning(启用定位)并使用2D选项。Reflect已经完成了3D的定位;我们可不想让Wwise在此基础上再给它定位一次。

3AuxBusPositioning.png

WAL

在游戏中,我们需要制定房间中声音反射的墙。在Unreal集成中,Surface Reflector(表面反射器)组件就是用于这个目的。为了方便, Unreal集成也带有已附带该组件的AkSpatialAudioVolume;您需要至少勾选Enable Surface Reflectors。在WAL中,我们会把这些空心几何体(volume)之一放置在一个称作包厢(mezzanine)的建筑上,如下图所示。

4MezzanineIntViewport.png

这个包厢可以很方便地用一个空心立方体表示。每个反射表面会进行编号,我们可以在下图看得更清楚。包厢本身还没有表面反射器的空心体;我们回头会在本博客末尾讲到这一点。

5MezzanineIntNumbersViewport.png

在该组件的Acoustic Surfaces(声学表面)部分,您可以对每个表面应用不同的Acoustic Texture(声学材质)Acoustic Textures模拟的是频率相关的吸声属性,是用滤波器和增益来实现的。比如,金属房间内的反射听起来和木头房间的不一样。目前,您可以先将Acoustic Texture设置为None,直到把早期反射声设计到满意为止。材质设置为None会完全反射声音的所有频率;也不会应用任何滤波器。

6MezzanineIntAcousticSurfaces.png

想要将武器设置为使用Reflect插件,我们需要更改附带在第一人称角色上的AkComponent选项。在组件细节中的Spatial Audio下面,我们需要将FirstPerson辅助总线添加到Early Reflection Aux Bus(早期反射辅助总线)。您也可以使用这些属性更改算法计算的最大反射阶数。比如,一个二阶反射,指的就是在两个反射面上发生反射的声音。该组件的一个有趣的功能就是Debug Draw(调试绘制)选项。启用这些选项后,您能看到从组件到非声障反射面(声音将在上面反射)的射线。这些被射线触及的表面也会在屏幕上显示名称。这在为Reflect混音时很有帮助;它能帮助你看到哪些三角被发送到了插件。在下一部分我们会更多讲到这一点,同时还会展示Reflect Plug-in Editor。

7WeaponAkComponentPropertiesBP.png

在以下的图中,您能看到为包厢中武器组件画出的一阶反射。其中一张图是表现玩游戏的视角,另一张是用第三人称观察玩家时的视角。

8DebugDrawFirstOrder2.png

9DebugDrawFirstOrder.png

以下是我们使用二阶反射所得到的反射结果示例。

10DebugDrawSecondOrder.png

Wwise Reflect

目前,我们可以将游戏连接到Wwise并开始混音。使用Profiler布局的Voices Graph来找到FirstPerson Auxiliary Bus。如果您采用的声音太短,则可能需要在Performance Monitor里移动游标来倒退时间。在包厢中,WAL的 Voices Graph 看起来会接近下图的样子。

11VoiceGraphWeaponFire01Mezzanine2.png

我们会在未来的博客中详细介绍该图,但现在我们先双击FirstPerson Auxiliary Bus,该总线被标记为使用Wwise Reflect Effect。这样做会打开Auxiliary Bus Editor(辅助总线编辑器)并让您打开Reflect Effect Editor。我们现在可以尝试插件的各种参数,为我们的早期反射调出令人满意的混音结果。

正如您在下图中所见,Wwise Reflect中的反射被描述为虚像源(image source)。虚像源代表着发声体的虚像,该虚像位于反射面背后的相等距离处;就好像反射面是镜子一样。虚像源和听者之间的连线与墙相交处跟声音的反射点一致。此路径的长度同声音在墙上反弹到达听者的距离一致。读者如果好奇,可以在Wwise Reflect documentationWwise SDK documentation了解Wwise Reflect使用的更多信息。

12WALFP1stOrderReflectEffectEditor.png

当连接到游戏并追踪采集时间时,如果武器发出了声音,您会看到反射出现在Wwise Reflect Effect Editor列表以及曲线图的标志上;这意味着这些反射目前正在发声。以下清单中的不同栏显示了反射的名称,发出被反射声音的游戏对象名称,发出声音进行滤波所使用的材质,以及声音传播到达听者的总距离。正如您在上图中所见,反射的名称就是AkSpatialAudioVolume 的名称、反射面序号和反射面三角形序号串在一起 。为了调试,您也可以启用另两栏:图像源ID,它是各条反射独有的;还有游戏对象ID,它能区分两个可能名称一样的游戏对象。

反射的混音是通过更改图中的曲线完成的。随着声音在空间中传播,它频谱上的能量会有不同程度的损失,我们能使用Distance Attenuation(距离衰减) (Image Source vs. Listener) 曲线为此过程建模。在我们那个第一人称的示例中,该曲线会依据角色到包厢墙壁的距离来改变反射的音量。在上方的Effect Editor图中,当角色远离墙壁时该曲线会转而让反射音量降低。如果想模拟空气吸声,您可以调整Distance Low-pass Filter(距离低通该滤波器)和Distance High-pass Filter(距离高通滤波器)曲线。比如,可以调节为让高频(相对于低频)衰减得更快。

为了更方便地调节这些曲线,您可以减慢声速(以游戏单位/秒为单位),来让反射声区别于干声。您也可以通过点击列表中的按钮来静音或者solo(单放)反射。这些静音或solo按钮只在这个Effect ShareSet范围内起效。比如,如果您solo其中一条反射,则将不会听到该辅助总线上的其它反射,但您还是会听到其它总线或辅助总线上的声音。比较好的做法是:先solo插入了Wwise Reflect效果器的总线,然后再静音或solo反射。

当solo Reflect辅助总线并solo房间中的一面墙时,您可以在游戏中走动,并更改曲线,以便反映您想要的距离衰减。在曲线上使用标志来表示反射的距离会为这个过程提供很大帮助。.

如果同时有太多反射,或者只想看到solo的反射,您可以使用筛选条。您可以按名称、游戏对象名称、材质,甚至ID来筛选反射。在筛选条的左边有静音和solo重置按钮。有时,静音或solo的反射不再活跃,这时您就可以使用这些按钮来进行重置。

下一步做什么?

既然有了满意的早期反射混音,那么您就可以将Acoustic Textures添加到反射面来创造不同房间的多样性。在2017.1中,您可以使用Factory Presets(工厂预设值)的Acoustic Textures。它们位于Virtual Acoustics下的ShareSets中。

包厢的墙壁都是木质的。在AkSpatialAudioVolume上添加材质时,每种材质颜色不同,并且显示出来的将会是材质的名称而不是反射面序号 。

13MezzanineIntWoodViewport.png

以下是根据包厢中使用的材质而产生的不同。

木质包厢

无回声包厢

毡毯包厢

既然我们已经完成了一个房间的混音,那么是时候为我们的游戏添加更多空心体了。在包厢中,我们可以为这层楼添加一个空心体。但是,正如您所见,这层楼的形状不能简单地用立方体表示。解决这个问题的一个简单办法是为这层楼的大部分空间添加一个空立方体,再为小阳台添加一个空梯形。这时,只有地板的反射面是启用的,所以我们不会从其它表面得到反射。这个方案的唯一缺点是栏杆不会反射声音。一切都取决于您游戏的需求。

14MezzanineFloorVolumesViewport.png

我们也在建筑物的整个外表面添加了砖块材质的空心体,来模拟当我们在室外时包厢的反射。

15MezzanineExtViewport.png

 

在未来的博客文章中,我们会讲到Wwise Reflect的实现,它对于3D总线的依赖,以及它如何与其它插件协作。

 

Subscribe

 

其他资源:

在 Unreal中使用空间化音频

Wwise Reflect文档

 

塔丽•凯克里基安(THALIE KEKLIKIAN)

软件研发工程师,R&D

Audiokinetic

塔丽•凯克里基安(THALIE KEKLIKIAN)

软件研发工程师,R&D

Audiokinetic

塔丽•凯克里基安毕业于电子工程专业,同时拥有通用GPU计算硕士学位。她从事了一段时间在GPU上优化图形处理算法的工作,现在加入了Audiokinetic的研发团队,负责实现空间音频解决方案。萨利喜爱游戏(从桌游到在Twitch上直播的游戏)和DIY,比如制作自己的cosplay。

 @thalieloz

评论

留下回复

您的电子邮件地址将不会被公布。

更多文章

你的空间音频试验田:Wwise Audio Lab

火花...

24.10.2017 - 作者:西蒙.阿什比(Simon Ashby)

推陈出新:Wwise 2018.1 改进了 Positioning 选项卡

Wwise 2018.1.0 在原有基础上做了一些功能更新,其中包括对 Positioning(定位)选项卡的改进。经过重新设计,我们进一步明确了相应术语,更好地利用了屏幕空间,并为 Wwise...

14.3.2019 - 作者:纪尧姆·雷诺 (GUILLAUME RENAUD)

SoundSeed Grain 的开发历程

很长时间以来,由于粒子合成器在声音设计上的广泛应用,我们一直都想为 Wwise 开发一款通用的粒子合成器插件。这样就可以利用它生成各种各样的声音,来为游戏设计提供丰富灵活的支持。 我记得几年前曾在...

12.8.2019 - 作者:路易斯-扎维尔·布法尼 (Louis-Xavier Buffoni)

Wwise八个易忘小操作

大家好,我是来自深圳创梦天地乐逗的音频设计师洪伟森,主要负责自研部门的游戏音效设计与制作,和Wwise项目整合工作。...

2.3.2020 - 作者:洪伟森

atmoky Ears | 针对耳机为 Wwise 开发的空间音频插件

atmoky Ears 一站式解决方案允许通过耳机为用户提供逼真的空间音频体验。它具备无可比拟的感知品质和效率,能将每一空间音频混音打造到极致。atmoky Ears...

15.12.2021 - 作者:马库斯•扎恩施姆 (Markus Zaunschirm)

Wwise 2023.1 对 WAAPI 的更新

Wwise 2023.1 包含自 2017 年引入 API 以来对 Wwise Authoring API (WAAPI) 最大幅度的更新。如果还没看过 Wwise 2023.1...

1.8.2023 - 作者:伯纳德 罗德里格 (Bernard Rodrigue)

更多文章

你的空间音频试验田:Wwise Audio Lab

火花...

推陈出新:Wwise 2018.1 改进了 Positioning 选项卡

Wwise 2018.1.0 在原有基础上做了一些功能更新,其中包括对 Positioning(定位)选项卡的改进。经过重新设计,我们进一步明确了相应术语,更好地利用了屏幕空间,并为 Wwise...

SoundSeed Grain 的开发历程

很长时间以来,由于粒子合成器在声音设计上的广泛应用,我们一直都想为 Wwise 开发一款通用的粒子合成器插件。这样就可以利用它生成各种各样的声音,来为游戏设计提供丰富灵活的支持。 我记得几年前曾在...