Wwise SDK 2021.1.10
Spatial Audio

简介

Spatial Audio 模块提供了一些和空间音频相关的服务,特别是:

  • 为已知几何空间的 Reflect 计算声像源;
  • 通过控制 3D 总线对 Room(房间)和 Portal(门户)的声音传播进行建模;
  • 对声音在几何构造上的传播进行建模;
  • 方便地访问 Wwise Reflect 的原始 API。

在幕后,它:

  • 通过管理游戏对象及其属性(位置、辅助发送、声障和声笼)来控制 3D 总线;
  • 控制 Spatial Audio 游戏对象的单点/多点定位和辅助发送;
  • 运行几何声音反射、衍射和透射算法;
  • Multi Editor;

它是一个与 Wwise 声音引擎协同使用的 SDK 组件(如以下流程图所示)。

SpatialAudioFlow

Spatial Audio 服务

Spatial Audio 暴露了 3 类服务,具体可参见以下对应章节:

使用房间和门户 利用简单的上层几何抽象概念对其他房间内发声体的声音传播进行建模。Geometry 直接使用三角形来计算镜像声源以结合 Wwise Reflect 模拟动态早期反射,或者计算几何衍射。另外,Spatial Audio 还提供有一些辅助函数,方便直接访问 Wwise Reflect 的原始 API(参见 使用原始镜像声源 章节)。

API 设置

Spatial Audio 功能和定义可以在 SDK/include/AK/SpatialAudio/Common/ 中找到。 它的主要功能是在名字空间 AK::SpatialAudio 内提供的。

初始化

使用 AK::SpatialAudio::Init() 来初始化 Spatial Audio。

在使用 Spatial Audio 时,必须明确指派一个游戏对象为 Spatial Audio Listener。为此,需要调用 AK::SpatialAudio::RegisterListener() 来传入所需听者的 ID。另外,还要把该游戏对象注册到声音引擎中,并将其指派为听者。如需进一步了解声音引擎中的 Listener,请参阅 集成 Listener

警告: Spatial Audio 仅支持一个顶层听者。

Spatial Audio Emitter

如果某个声音有若干设置与设计工具中启用的 Spatial Audio 相关,那么游戏对象在播放该声音时就会成为 Spatial Audio Emitter:

  • 若要启用房间混响,则须针对该声音在 General Settings(常规设置)选项卡中启用游戏定义的辅助发送。
  • 若要启用反射处理,则须针对该声音在 General Settings 选项卡中指派早期反射总线。
  • 若要启用衍射和透射处理,则须针对该声音在 Positioning 选项卡中勾选 Enable Diffraction and Transmission 复选框。

您可以使用 AK::SoundEngine::SetPosition 将游戏对象(无论是发声体还是听者)的位置传给声音引擎。Spatial Audio 会直接从声音引擎检索位置信息,来确定声源位置以进行反射和衍射处理。

警告: Spatial Audio 不支持 3D Position Automation。仅使用游戏对象的实际位置计算传播路径。

终止

Spatial Audio 会在 Wwise 声音引擎终止时自动终止。

参见