Version: 2022.3
音频性能分析器
音频剪辑

立体混响声音频

立体混响声是一种音频,它提供可以完全环绕听众的声音表示。它可为遥远环境声音提供音频天空盒,尤其适用于 360 度视频和应用程序。

立体混响声以多声道格式存储。立体混响声以更加通用的方法来表示声场,而不是将每个声道映射到特定扬声器。您可以根据听者的方向(例如 VR 中用户的头部旋转)旋转声场。您还可以将声场解码为与扬声器设置相匹配的格式。

选择立体混响声音频解码器

要在项目中选择立体混响声音频解码器,请打开项目的 Audio 设置(菜单:Edit > Project Settings > Audio)。从项目的可用解码器列表中选择 Ambisonic Decoder Plugin。Unity 没有内置解码器,但一些 VR 硬件制造商在其音频 SDK 中为 Unity 提供了解码器。查看您的目标平台制造商的文档,了解是否提供了适用于您的项目的解码器。

音频设置中的立体混响声选项
音频设置中的立体混响声选项

导入立体混响声音频剪辑

要导入立体混响声音频剪辑,请导入多声道 B 格式 WAV 文件(按照 ACN 组件排序并采用 SN3D 标准化)。在音频剪辑的 Inspector 窗口中,启用 Ambisonic

音频剪辑 Inspector 中的 Ambisonic 选项
音频剪辑 Inspector 中的 Ambisonic 选项

通过音频源播放立体混响声音频剪辑

要通过音频源播放立体混响声音频剪辑:

  • 将 WAV 文件指定为音频源上的音频剪辑
  • 禁用 Spatialize 选项。在播放某个立体混响声音频剪辑时,该剪辑会自动通过项目的选定立体混响声音频解码器来解码。解码器将剪辑从立体混响声格式转换为项目的选定扬声器格式。在此解码操作过程中,解码器还根据音频源和音频监听器的方位来处理空间定位问题。

在 Unity 播放立体混响声剪辑时,会解压缩文件(如果需要),然后通过立体混响声解码器解码以将其转换为项目的选定扬声器模式。然后应用音频源的效果。

注意: 立体混响声音频剪辑的混响区会被禁用。

音频插件接口更改

For information on how to author a plugin, see the Unity User Manual pages on the Native Audio Plugin SDK and Audio Spatializer SDK. You should also download the Audio plugin SDK.

立体混响声音频解码器的 AudioPluginInterface.h 有两项更改:

  • 有一个新的效果定义标志:UnityAudioEffectDefinitionFlags_IsAmbisonicDecoder
  • 一个新的数据结构:UnityAudioAmbisonicData

UnityAudioEffectDefinitionFlags_IsAmbisonicDecoder

在插件扫描阶段,此标志通知 Unity 此效果是立体混响声解码器。然后 Unity 允许在您音频的 Project settings 设置中将该解码器显示为立体混响声解码器选项。

definition.flags |= UnityAudioEffectDefinitionFlags_IsAmbisonicDecoder;

UnityAudioAmbisonicData struct

The UnityAudioAmbisonicData struct is similar to the UnityAudioSpatializerData struct that Unity passes into spatializers, but with the addition of an ambisonicOutChannels integer. For more information on the UnityAudioSpatializerData struct, see the Audio Spatializer SDK documentation on spatializer effect meta data.

对于 UnityAudioAmbisonicData 结构,ambisonicOutChannels 应该设置为 DefaultSpeakerMode 的声道数。立体混响声解码器放在 Unity 音频管线中非常靠前的位置,ambisonicOutChannels 告知插件 Unity 需要使用多少个输出声道。

如果您要播放一阶立体混响声音频剪辑(包含 4 个声道),而您的扬声器模式是立体声(只有 2 个声道),则为立体混响声解码器的进程回调传入的输入和输出声道数将为 4。ambisonicOutChannels 字段将设置为 2。插件应将其空间定位数据输出到前 2 个声道,并将另外 2 个声道清零。

Unity 立体混响声源框架可以支持一阶立体混响声。插件接口包含用于支持双耳立体声、四声道输出的信息,但由插件自行决定支持哪些输出。最初,立体混响声解码器插件支持一阶立体混响声源和双耳立体声输出。不支持二阶立体混响声。

框架中未提供任何特定于不同立体混响声格式的内容。如果剪辑的格式与立体混响声解码器插件的预期格式相匹配,立体混响声应该可以正常工作。Unity 的首选立体混响声格式是 B 格式(按照 ACN 组件排序并采用 SN3D 标准化)。


  • 2017–08–10 页面已发布
  • Unity 2017.1 中的新功能 NewIn20171
音频性能分析器
音频剪辑