本文主要讲述如何在Unity项目中使用空间声音。本文涵盖了所需的插件组件以及Unity声音组件和属性设置以实现空间声音。
在Unity中启用空间声音
在Unity中实现空间声音需要使用声音插件来实现。插件被打包到Unity,所以需要在设置菜单中Edit > Audio > Spatializer启用Microsoft HRTF拓展。微软空间声音组件目前取样频率只能支持到48000,所以需要把System Sample Rate属性设为48000,以避免在系统输出设备没有设置为48000的情况下发生HRTF组件错误。
你的Unity项目现在已被配置为使用空间声音。
需要注意的是,当在系统版本低于Windows 10的设备上使用Windows 10 SDK创建HoloLens应用时,空间声音将不会在编辑器和设备上工作。
在Unity中使用空间声音
通过调整音频源组件(Audio Source组件)的三个属性设置,即可在Unity中使用空间声音。下面的步骤将配置您的音频源组件的空间声音。
· 在项目面板中,选中一个附有Audio Source组件的对象
· 在检视面板中,修改Audio Source组件的属性:
· 检查Spatialize属性
· 设置Spatial Blend模式为3D(数值1)
· 展开3D Sound Settings,并将Volume Rolloff设置为Custom Rolloff
现在在项目中就已经存在了你的真实的声音。
强烈推荐开发者要熟悉了解空间声音设计指南(Spatial Sound design guidelines),它会帮准你快速的无缝集成空间声音到项目中,同时能尽可能的沉浸到你所创建的体验中。
设置空间声音
微软空间声音插件提供了一些额外的参数设置用来额外控制声音模拟。这些参数分别是最大最小增益、单位增益距离和模拟空间大小。
最小增益(Minimum Gain)
任意距离上的最小增益,范围(-96,+12),默认值是-96分贝。
最大增益(Maximum Gain)
任意距离上的最大增益,范围(-96,+12),默认值是+12分贝。
单位增益距离(Unity Gain Distance)增益是0分贝的距离,单位为米,范围(0.05,无穷大),默认值是1米。
空间大小(Room Size)
空间大小是由空间声音模拟的。大致的空间大小划分为:small小型(从办公室到小型会议室),medium中型(大会议室),large大型(礼堂)。你可以将空间大小属性设为none来模拟户外空间。默认空间大小是small。
示例
HoloToolkit为Unity提供了一个静态类来实现简单的空间声音设定。这个类可在HoloToolkit\SpatialSound文件目录下找到,可以从项目中的任何脚本调用。建议你将这些参数设置在您的项目中的每个Audio Source组件上。下面代码演示了设置Audio Source空间大小:
直接从Unity访问以上参数
如果你不想使用HoloToolkit提供的工具,以下方法可以让你直接修改HRTF参数。你可以把以下代码复制/粘贴进SetHRTF.cs脚本中,并将此脚本附加到任何Audio Source对象上。它允许你修改HRTF插件的重要参数。