未来遥不可及,往日似水流年。亦如费里斯•布勒 (Ferris Bueller) 所说:“生活快速向前,时光转瞬即逝。如不偶尔驻足停留,就可能会错失良辰。”距离 Wwise 2021 推出已有一段时间,我想借此机会梳理一下如何在新版设计工具中设定 Audio Object。在本文中,我将向各位介绍经过重新调整的音频管线,并从虚拟声境的视角展望互动音频的未来。虽然没有什么比实实在在的体验更加真切,但并不妨碍我们设想日后的音频创作前景,并朝着提高输出的空间定位精度不断努力。站在教育、技术和创新的交汇点,创作者可统合协调来打造沉浸感,并尽情感受由此带来的愉悦体验。
Wwise 2021.1 音频管线
Wwise 2021.1 音频管线允许设定三条声音输出路径(Audio Objects、Main Mix 和 Passthrough Mix),并直观地显示信号流以便清楚地了解所作输出决策,以此控制声音在 Wwise 设计工具当中和连接到 Wwise Runtime 时的传送。这些输出决策将从 Wwise 一直延续到 Audio Device。最后,依据终端定义的输出设置传送声道配置(Main Mix 和 Passthrough Mix)和 Audio Object(如可用)。如需详细了解相关背景知识,请参阅 Wwise Help 文档的了解基于对象的音频章节。
跨平台 System Audio Device
将 Audio Devices ShareSets 移到了 Project Explorer 的 Audio 选项卡,System Audio Device 现在包含与设置和性能分析相关的信息。
刚一打开 Wwise 2021.1,可能就会发现 Audio Devices ShareSets 的位置做了调整。我们将其移到了 Project Explorer 内 Audio 选项卡的最上面。这样便于查看声音从 Actor-Mixer Hierarchy 和 Interactive Music Hierarchy 到 Master-Mixer Hierarchy 再到 Audio Device 以供终端输出的传递过程。
改进后的跨平台 System Audio Device 还在 Audio Device Editor 中暴露了多项属性,其可依据给定终端上提供的不同输出配置灵活地进行设定。另外,在实施性能分析时,Device Info 窗格还会显示从终端收到的信息,以便在设计当中查看其初始化状态。
附注:终端
终端是指负责对音频进行最终处理和混音以供发送到耳机或扬声器的系统设备(比如负责在平台操作系统层面处理音频的组件)。在游戏初始化时,会将终端的音频配置(如 2.0、5.1、Windows Sonic for Headphones 或 PS5 3D Audio)告知 Wwise,以便其按照终端的预期格式渲染音频。
Audio Device 输出
三种输出类型:Main Mix、Audio Objects 和 Passthrough Mix。
为了便于终端一并接收不同格式的声音,我们在对 System Audio Device 进行改进时增添了三种目标输出类型:
- Main Mix(基于声道)– Main Mix 或 Spatialized Bed 是声音的中间表示形式,其位置按照基于声道的格式(如 5.1、7.1、7.1.4、Ambisonics)进行渲染。这样在 System Audio Device 中启用 3D Audio 并由终端初始化时会生成适合利用 Binaural Technology 实施虚拟化(根据理想的扬声器位置进行虚拟定位)并加以处理的混音。
- Audio Objects(单声道)– Audio Object 具有单独的 Metadata (如位置、散布等),其可由终端用来依据所选输出配置提供最佳空间分辨率。在 System Audio Device 中启用 3D Audio 并由终端初始化时,这些 Audio Object 可作为 System Audio Object 进行渲染(参见音频对象如何提高空间精度的第 1 部分)。
- Passthrough Mix(立体声)– Passthrough Mix 为立体声配置。无论是否在 System Audio Device 中启用 3D Audio 并由终端初始化,其都可在终端生成适合旁通 Binaural Technology 的混音。
示例场景:虚拟声境
颜色编码:Main Mix(绿色)、Audio Objects(粉色)和 Passthrough Mix(橙色)。
此示例场景探究了虚拟声境的声音实现:以充满生机、富有环境声的茂密森林为环境背景,利用空间渲染技术(包括 System Audio Object)经由耳机输出。
不同 System Audio Device 输出类型的编码方案:
- Audio Objects = 粉色
- Main Mix = 绿色
- Passthrough = 橙色
这样不仅可以明确地显示每一输出类型的传递路径,而且还可在 Master-Mixer Hierarchy 下构建相应通路,以便充分利用 "Same as parent" Audio Bus 配置,并支持 Audio Device 基于 Output Settings 来定义配置。
附注:As Parent
As Parent 意味着此总线将沿用其父总线的总线配置。Master Audio Bus 的总线配置以隐式方式设为 Parent,因为其要沿用关联音频输出设备的总线配置。如果将 Audio Bus 或 Aux Bus 设为 Parent 或 Audio Objects 以外的配置,就会强制在这一层级实施子混音。另请参阅:了解声部管线和了解总线配置
跟其他开发一样,刚开始体验到的是一个无声世界,必须进行相应设定才能听到声音。
首先从基于声道的实现开始,森林的声境逐渐变得鲜活起来。为此需要将背景环境声混音为 7.1 声道配置,接着在终端由耳机实施虚拟化和双耳处理(可选)。然后,通过 Audio Bus 上提供的 7.1.4 声道配置引入基于高度的声音,来进一步扩展基于声道的虚拟化声音场景。最终,借助包含整个球体的 Ambisonics 声道配置,对虚拟森林背景环境声进行高达五阶的空间化表示,从而在水平面上下 360 度范围内呈现声音。
附注:虚拟化
声道配置可结合 HRTF 处理由耳机实施虚拟化。比如,可按照标准距离和角度将 7.1 声道配置虚拟地置于听者头部周围,然后通过双耳处理来模拟扬声器的定位。
设定 Main Mix
Wwise Main Mix 管线。
对于由 Audio Device 输出到 Main Mix 的声音,将混音为由终端初始化、由 Audio Device 定义或由 Audio Bus Configuration 定义的声道格式。随后由 Audio Device 将基于声道的音频发送到终端,并依据用户定义的输出配置(扬声器、耳机或带有双耳处理效果的耳机)进行渲染。最后将此基于声道的 Main Mix 直接输出到指定的扬声器配置,或者运用不同终端提供的 3D Audio 技术来通过耳机实施虚拟化并加以处理。比如,Windows Sonic for Headphones、Sony PlayStation 5 3D Audio、Dolby Atmos for Headphones 或 DTS Headphone:X。
Wwise 中的 "Same as main mix" Bus Configuration。
在虚拟森林声境内,我们要配置音频管线中的背景环境声,来让其作为 Main Mix 的一部分进行传送。
在 Wwise 中,可按照以下步骤来设定 Main Mix:
- 步骤 1:创建一条 Audio Bus 作为 "Ambient_Backgrounds" Master Audio Bus 的子对象。
- 步骤 2:将 Bus Configuration 设为 Same as main mix。
- 步骤 3:将 Actor-Mixer Hierarchy 下用于 Main Mix 的声音输出到 "Ambient_Backgrounds" Master Audio Bus。
对于作为森林背景环境声的一部分表示的声音,将输出到此总线并依据 System Audio Device 的 Main Mix 声道配置(由 Main Mix Headphone/Speaker Configurations 定义或由终端初始化)进行混音。
Main Mix 可灵活地渲染为由终端定义的输出配置并满足不同听觉环境的需求。藉此,可进行高达五阶 Ambisonics 的渲染和 7.1.4 的混音配置,从而将具有位置的声音作为 Spatialized Bed 的一部分加以表示,以便在可能的情况下充分运用 3D Audio 技术。
设定 Audio Object
Wwise Audio Object 管线。
对于作为 Audio Object 由 Audio Device 输出的声音,将保留为单独的 Audio Object 以便将相关 Metadata(如位置和散布)传给终端。随后由 Audio Device 将基于对象的音频发送到终端,并依据用户定义的输出配置(扬声器、耳机或带有双耳处理效果的耳机)进行渲染。在适用情况下,可运用不同终端提供的 3D Audio 技术来通过耳机定位和处理 Audio Object。比如,Windows Sonic for Headphones、Sony PlayStation 5 3D Audio、Dolby Atmos for Headphones 或 DTS Headphone:X。
附注:了解基于对象的音频节选
System Audio Device 是唯一一种支持 Audio Object 的内置 Wwise Audio Device。System Audio Device 会根据终端的性能和 System Audio Device 设置决定要将哪些输出发送到终端。
System Audio Device 将按照以下规则选择是将 Audio Object 输出到 Main Mix、Passthrough Mix 还是 System Audio Object:
>只有满足以下所有要求才会将 Audio Object 作为 System Audio Object 输出到终端:
- 其具有 3D 位置。
- 其 Speaker Panning / 3D Spatialization Mix 被设为了 100%。
- 其所有声道均在听者平面上。
- 有足够的 System Audio Object 可供容纳其所有声道。换句话说,在实施性能分析时,Audio Device Editor 中显示的 System Audio Objects Used 不得超过 Available System Audio Objects。
- 注意:最好不要超出 Available System Audio Objects 的最大限值。对于输出到 Main Mix 的其余 Audio Object,可能会进行不同的处理,最终产生明显的变化。System Audio Object 采用先进先出的优先次序进行分配。
>只有满足以下所有要求才会将不符合上述要求的 Audio Object 输出到 Passthrough Mix:
- 其采用单声道或立体声声道配置。
- 其没有任何 3D 位置。
>不符合上述全部要求的 Audio Object 将被输出到 Main Mix。
Wwise 中的 "Audio Objects" Bus Configuration。
现在回到虚拟森林声境当中,我们来配置各种森林动物的声音,以便在可能的情况下将其表示为单独的 Audio Object。
在 Wwise 中,可按照以下步骤来设定 Audio Object:
- 步骤 1:创建一条 Audio Bus 作为 "Ambient_Audio_Objects" Master Audio Bus 的子对象。
- 步骤 2:将 Bus Configuration 设为 Audio Objects。
- 步骤 3:将 Actor-Mixer Hierarchy 下要作为 Audio Object 保留给终端的声音输出到 "Ambient_Audio_Objects" Master Audio Bus。
在终端支持并启用 3D Audio 且支持 System Audio Object 时,Audio Object 将由 System Audio Device 传到终端。森林动物的声音要输出到此总线并依次传到 Master Audio Bus 和 Audio Device,然后由终端渲染为用户定义的输出配置(扬声器、耳机或带有双耳处理效果的耳机)。若 System Audio Object 的数量达到启用 Audio Object 的终端允许的最大限值,则将 Audio Object 渲染为基于声道的配置(由终端或 Audio Device Headphone/Speaker Configuration 定义)。
附注:为何使用 Audio Object 而非 Ambisonics?简而言之,Audio Object 可提供最佳空间渲染且不考虑处理成本,Ambisonics 则具有固定的成本(声道数固定)且要兼顾成本和空间分辨率。另请参阅:Wwise 中的 Ambisonics:概述和将 Ambisonics 用作空间音频的中间表示形式(针对 VR)。
Audio Object 既可保证最佳空间定位精度,还可灵活满足不同输出配置的需求。为此,须将 Metadata(包括 3D 位置)保留给 Audio Device,同时确保不会在混音过程中将其销毁。对于没有 3D 位置的 Audio Object,将由 Audio Device 混音到 Main Mix。
设定 Passthrough Mix
Wwise Passthrough Mix 管线。
对于由 Audio Device 输出到 Passthrough Mix 的声音,将混音为由终端针对 Passthrough Mix 初始化的声道格式,同时确保不使用 3D Audio 技术进行处理。在不支持或未启用 3D Audio 时,对于输出到 Passthrough Mix 的声音,将依据 System Audio Device 的 Main Mix 声道配置(由 Main Mix Headphone/Speaker Configuration 定义或由终端初始化)进行混音。
Wwise 中的 "Same as passthrough mix" Bus Configuration。
接下来,我们继续在虚拟声境内实现音频:添加一些戏外音乐(存在于故事背景[即森林]之外的音乐),以此搭配森林环境中的现有声音。
在 Wwise 中,可按照以下步骤来设定 Passthrough Mix:
- 步骤 1:创建一条 Audio Bus 作为 "Music_Passthrough" Master Audio Bus 的子对象。
- 步骤 2:将 Bus Configuration 设为 Same as passthrough mix。
- 步骤 3:将频率内容保持不被终端处理的音乐输出到 "Music_Passthrough" Master Audio Bus。
随后对音乐进行混音并依次输出到 Master Audio Bus 和 Audio Device,进而将声音传到终端以便实施混音,同时确保不使用 3D Audio 技术进行处理。
通过设定 Passthrough Mix,可确保不在终端使用 3D Audio 技术处理全频和原始声道配置的声音或音乐。至于哪些声音或声音部分应保持不被滤波,主要还是看互动场景的内容和意图。
另辟蹊径
除了可以做出显式输出决策之外,还可灵活运用 Master-Mixer Hierarchy 的继承机制,来充分发挥给定输出配置的优势。下面我们就来说说如何结合 Audio Object 和不同的 Reverb 输出方式来使用效果器。
效果器和对象处理器
将效果器应用于 Audio Object
我们对 Master-Mixer Hierarchy 中的效果器进行了重构。现在允许处理单独的 Audio Object,而无需将音频源混音为声道配置。这意味着每个通过 Audio Bus 传送的 Audio Object 都会收到一个效果器实例并保留相应的 Metadata。这跟 Actor-Mixer Hierarchy 中的效果器处理方式类似,即在到达 Master-Mixer Hierarchy 之前将效果器单独应用每个声部。
Master-Mixer Hierarchy 下每个 Audio Object(带有效果器)的 CPU 处理成本要根据所需结果来权衡,同时还要兼顾可用资源的数量。通过做出有关 Audio Bus 声道配置的显式决策,可针对特定平台进行不同的处理,从而有效减少效果器实例的数量。
Wwise Compressor
为了允许效果器单独处理每个 Audio Object,以便优化 Audio Object 的处理并降低 CPU 成本,我们对 Wwise Compressor 进行了重写。在将对应 Audio Bus 的 Bus Configuration 设为 Audio Objects 时,Wwise Compressor 会统一收集并评估 Audio Object,而非在 Audio Bus 的输出端将其混音为声道配置。为此,首先要测定总体的音量,然后将最终的音量偏置应用于每个 Audio Object,以便在 Audio Bus 的输出端保留相应的 Metadata。
“Audio Bus 单独处理每个 Audio Object”和“Wwise Compressor 统一收集、评估并处理各个 Audio Object”。
接下来,我们继续在森林环境示例中使用 Wwise Compressor:通过控制森林动物声音的动态范围,来在背景环境声和各种环境元素之间取得更好的平衡。为此,可将 Wwise Compressor 用在 "Ambient_Audio_Objects" Audio Bus 上,进而输出虚拟声境内的森林动物声音。
Reverb
通过向森林动物声音添加 Reverb,可在虚拟声境中对其进行位置标定。藉此,依据 Game Auxiliary Sends 属性设置输出 Actor-Mixer Hierarchy 下的声音,同时将声音的副本输出到关联的 Aux Bus,进而使用像 Reverb 这样的效果器进行处理。
Aux Bus 既可针对特定声道配置来配置,也可沿用由终端初始化的配置。对于后者,可选用以下三种 Bus Configuration:
- Same as parent:Audio Bus 或 Aux Bus 将沿用其 Parent Bus 的配置。若该总线和 Master Audio Bus 没有显式设定 Bus Configuration,则使用由 Master Audio Bus 设定的配置。
- Same as main mix:Audio Bus 或 Aux Bus 将沿用由终端和 System Audio Device 设定的 Main Mix 配置。若该总线和 Master Audio Bus 没有显式设定 Bus Configuration,则使用由终端和 Audio Device 为 Main Mix 设定的配置。
- Same as passthrough mix:Audio Bus 或 Aux Bus 将沿用由终端在 System Audio Device 上设定的 Passthrough Mix 配置。若该总线和 Master Audio Bus 没有显式设定 Bus Configuration,则使用由终端和 Audio Device 为 Passthrough Mix 设定的配置。
在兼顾双耳处理的情况下构建 Reverb 时,须考虑是否要由在 Audio Device 设置中激活并启用 3D Audio 的终端来处理 Reverb。无论做出哪种选择,都会涉及到一些创作方面的考虑。下面我们将展示两种场景来阐释 Reverb 的不同输出方式。
在 Wwise 设计工具中,首先创建 "Reverb_Forest" Aux Bus 作为父级 "Reverb_Environmental" Audio Bus 的子对象。
Reverb:Passthrough Mix
在 Wwise 中将 Environmental Reverb 配置为使用 "Same as passthrough mix" Bus Configuration。
在本例中,"Reverb_Forest" Aux Bus 使用 "Same as passthrough mix" Bus Configuration,因而会沿用由终端在 Audio Device 上设定的声道配置。对于输出到 "Reverb_Forest" Aux Bus 的声音,将生成适合在终端旁通 Binaural Technology 的混音。借助 Passthrough Mix,可保留 Reverb 效果器并确保不使用 3D Audio 进行进一步的处理,从而在保证全频表示的情况下避免应用额外的滤波。
Reverb:Main Mix
在 Wwise 中将 Environmental Reverb 配置为使用 "Same as main mix" Bus Configuration。
除此之外,也可将 "Same as main mix" Bus Configuration 用于 "Reverb_Forest" Aux Bus,然后沿用 Audio Device 的 Main Mix 声道配置。对于输出到 "Reverb_Forest" Aux Bus 的声音,将生成适合在终端使用 Binaural Technology 进行处理的混音。通过将 Main Mix 用于 Reverb,可由在 Audio Device 设置中激活并启用 3D Audio 的终端来进行额外的处理。而且,还可用于具有位置的 Reverb,并应用必要的双耳处理。
自定义 Metadata:Wwise System Output Settings
Wwise System Output Settings 的自定义 Metadata。
Property Editor 中增添了新的工作流程,方便设定 Metadata 并与 Wwise 管线中的声音绑定。首先,我们可以指定与 Wwise System Output Settings 相关的 Metadata 类型。对于 Actor-Mixer Hierarchy 或 Master-Mixer Hierarchy 下的所有 Wwise 对象,都可将显式 Mix Behavior 作为声音 Metadata 的一部分定义为 Custom 或 ShareSet。也就是说,对于输出到采用 Master Mix 内某项 Bus Configuration 的 Audio Bus 的声音,可沿用 Audio Device 的 Main Mix 或 Passthrough Mix 配置。这样方便依据声音类型灵活地组织声音,同时保证自由地输出特定声音或一组声音,并让其沿用与 Audio Bus 不同的混音配置。
Wwise 层级结构输出路径
Wwise 层级结构中的耳机输出路径。
为了便于了解 Actor-Mixer、Master-Mixer 和 Audio Device 的声音输出路径,我们对层级结构进行了相应调整,来自下而上地展示声音从 Wwise 到启用了 Audio Object 的终端的信号流。
Wwise 层级结构输出路径 – Audio Object
Wwise 层级结构中的 Audio Object 输出路径。
"Ambient_Fauna" Actor-Mixer 将输出到 "Ambient_Audio_Objects" Audio Bus,其 Bus Configuration 被设为了 Audio Objects,以便将声音作为 Audio Object(包括 Metadata)从 Audio Device 传到激活了 3D Audio 的终端。一旦终端收到 Audio Object,便会将其位置混音为输出配置,并决定是否针对耳机进行双耳处理。
Wwise 层级结构输出路径 – Main Mix
Wwise 层级结构中的 Main Mix 输出路径。
"Ambient_Background" Actor-Mixer 将输出到 "Ambient_Backgrounds" Audio Bus,其 Bus Configuration 被设为了 Same as main mix,以便从 Audio Device 传送声音并将针对 Main Mix Headphone/Speaker Configuration 定义的属性应用于终端。Main Mix 会生成适合使用 Binaural Technology 加以处理的混音,并依据 3D Audio 的可用性和激活情况决定是否在终端对声道配置实施虚拟化并针对耳机进行双耳处理。
Wwise 层级结构输出路径 – Passthrough Mix
Wwise 层级结构中的 Passthrough Mix 输出路径。
Interactive Music Hierarchy 下的 "Music_Passthrough" Music Playlist Container 将输出到 "Music_Passthrough" Audio Bus,其 Bus Configuration 被设为了 Same as passthrough mix,以便从 Audio Device 传送声音并生成适合在终端旁通 Binaural Technology 的混音。
"Ambient_Fauna" Actor-Mixer 使用 Game Defined Auxiliary Send(输出到由 Reverb_Forest 游戏定义的 Aux Bus)。在此,将使用 Reverb 对声音进行处理并从 Audio Device 传送,最终生成适合在终端旁通 Binaural Technology 的混音。
结语
随着 Wwise 2021.1 的推出,我们得以对支持空间化的终端进行设定,并尝试运用这一新的互动音频格式。在本文的第一部分,我们探讨了相关底层技术及应用背景。在第二部分,介绍了如何在 Wwise 中进行设定以获得最佳空间表示效果。在第三部分,展示了 Wwise 创作者如何在创作当中灵活地运用这一技术。各位可通过 Wwise Launcher 下载最新版本的 Wwise,并尝试设定 Audio Object 来满足不同的创作需求。
以上便是在 Wwise 中设定 Audio Object 的 9 个简单步骤。
评论