Version: 6000.3
语言: 中文
Ambisonic 音频
音频参考

开发 Ambisonic 音频解码器

Ambisonic 解码器是一种音频组件,可将 Ambisonic 音频格式解码为特定的输出格式,例如立体声或环绕声。此格式取决于你的扬声器配置(菜单:编辑>项目设置(Edit Project Settings) > 音频(Audio > Default Speaker Mode),除非你的平台覆盖了此格式。

尽管 Unity 支持环境音速音频,但默认情况下它不提供内置解码器。相反,您必须选择第三方解码器,或使用您自己的解码器插件在 Unity 外部创建的一组代码,用于在 Unity 中创建功能。可以在 Unity 中使用两种插件:托管插件(使用 Visual Studio 等工具创建的托管 .NET 程序集)和本机插件(特定于平台的本机代码库)。更多信息
请参阅术语表
.

设置 Ambisonic 音频解码器插件

您可以像设置音频空间化器一种插件,用于更改音频从音频源传输到周围空间的方式。它获取源并根据 AudioListener 和 AudioSource 之间的距离和角度调节左右耳贡献的增益。更多信息
请参阅术语表
.但是,在AudioPluginInterface.h文件特定于 Ambisonic 音频解码器插件:

UnityAudioEffectDefinitionFlags_IsAmbisonicDecoder

在插件扫描阶段,UnityAudioEffectDefinitionFlags_IsAmbisonicDecoder标志通知 Unity 这是 Ambisonic 解码器效果。 要使插件能够作为 Ambisonic 解码器运行,请在效果的描述位字段中设置一个标志:

definition.flags |= UnityAudioEffectDefinitionFlags_IsAmbisonicDecoder;

Unity 在“项目设置”窗口中将插件列为一个选项(菜单:编辑>项目设置>音频> Ambisonic 解码器插件)。

UnityAudioAmbisonicData 结构体

UnityAudioAmbisonicDatastruct 类似于UnityAudioSpatializerData结构体,Unity 传递给空间化器,并包含一个ambisonicOutChannels整数。

ambisonicOutChannels 整数

Ambisonic 解码器在 Unity 的音频管道早期运行,而ambisonicOutChannels变量告诉插件 Unity 需要使用多少个输出通道。ambisonicOutChannels自动设置为DefaultSpeakerMode的频道数。

例如,如果您播放一阶 Ambisonic音频剪辑Unity 中音频数据的容器。Unity 支持单声道、立体声和多声道音频资产(最多 8 个声道)。Unity 可以导入 .aif、.wav、.mp3 和 .ogg 音频文件格式,以及 .xm、.mod、.it 和 .s3m 跟踪器模块格式。更多信息
请参阅术语表
有 4 个声道,并且您的扬声器模式是立体声(只有 2 个声道):

  • Ambisonic 解码器的进程回调传入 4 以表示输入和输出通道计数。

  • ambisonicOutChannels字段自动设置为 2。

  • 插件将其空间化数据输出到前 2 个通道,并将其余 2 个通道归零。

开发 Ambisonic 音频解码器插件的步骤

请按照以下步骤为 Unity 开发自己的 Ambisonic 音频解码器插件:

  1. 使用本机音频插件 SDK 创建自定义音频插件。

  2. 在效果的描述位字段中设置一个标志:

    definition.flags |= UnityAudioEffectDefinitionFlags_IsAmbisonicDecoder;
    
  3. 完成插件配置后,编译文件。确保它可以在您首选的平台上编译。

  4. (可选)将文件转换为.dll文件。

  5. 将插件文件移动到 Unity 项目的 Asset 文件夹中。

有关如何在 Unity 中使用 Ambisonic 音频插件的更多信息,请参阅 Ambisonic Audio

Unity Ambisonics 支持的格式

Unity Ambisonic 源框架可以支持一阶 Ambisonics。插件界面包括支持双耳立体声和quad 类似于平面但其边只有一个单位长的图元对象,它只使用 4 个顶点,并且表面定向在局部坐标空间的 XY 平面上。更多信息
请参阅术语表
输出,但插件本身决定了支持哪些输出。

最初,Ambisonic 解码器插件支持一阶 Ambisonic 源和双耳立体声输出。不支持二阶 ambisonics。

框架中没有任何特定于任何可用的不同 Ambisonic 格式的内容。如果剪辑的格式与 Ambisonic 解码器插件的预期格式匹配,则 Ambisonic 音频应该可以正常工作。Unity 首选的 Ambisonic 格式是 B 格式,具有 ACN 组件排序和 SN3D 归一化。

更多信息

有关如何开发插件的信息,请参阅原生音频插件 SDK音频空间化器 SDK。还必须下载音频插件 SDK

Ambisonic 音频
音频参考