Skip to main content

VRC Spatial Audio Source

使用 VRC_SpatialAudioSource 为 Unity Audio Source 组件添加 3D 空间化效果。

添加时,VRC_SpatialAudioSource 会自动添加一个 Unity Audio Source 组件。

此组件可用于虚拟形象和世界。

image

Unity 编辑器界面​

该组件生成两个 Unity Gizmos,显示:

  • Far(远)
  • Near(近)

此外,Audio Source 组件会生成一个"Volumetric Radius"(体积半径)gizmo。

Gizmos 的外观如下: 此图像中的组件有点过时,但 gizmos 是一样的。 该组件包含所有属性的工具提示。将鼠标悬停在属性名称上可查看简短描述。

衰减机制​

所有单位均为米。音频强度的衰减默认大致为平方反比,如下图所示:

你可以使用 Audio Source 上的图形覆盖曲线。此曲线决定了音频在给定距离处的强度。

在接近 Far 值的范围内,音频可能会根据你的设置更快地衰减。

使用 2D 音频​

2D 音频是指无论你在世界中的哪个位置,音频的音量都是恒定的。这可以用于已经录制为空间化源的背景噪音(实地录音)或背景音乐。

如果你愿意,可以使用 2D 虚拟形象音频,只需禁用组件中的 Use Spatialized Audio 选项。除非你选择使用不同的音频衰减曲线,否则强度仍会随距离衰减,只是不会被空间化。

尽管如此,我们不建议使用 2D 音频。 所有真实世界的声音都有明显的点声源或体积声源。如果你仍想使用 2D 音频,请确保:

  • 取消勾选 VRC_SpatialAudioSource 上的 Use Spatialized Audio
  • 将 Audio Source 上的 Spatial Blend 调整为 100% 2D

虚拟形象上的空间音频​

VRChat 支持在虚拟形象上使用 VRC_SpatialAudioSource,但有一些限制。这些限制是为了防止滥用和恶意声音。

除了这些限制外,VRC_SpatialAudioSource 在虚拟形象上的工作方式与在世界中完全相同。

warning

不要忘记为虚拟形象的音频源添加 VRC_SpatialAudioSource!否则,VRChat SDK 将创建该组件并选择默认设置,你可能会遇到意外的、未记录的、不希望出现的行为。

如果你使用现有虚拟形象的 Audio Source,请确保它有一个 VRC_SpatialAudioSource 组件!

组件属性​

VRC_SpatialAudioSource 组件具有以下属性:

info

不支持在运行时通过动画调整这些属性。这些值在初始化时设置。

对于与空间化设置无关的属性(如音调),Audio Source 的动画属性仍应有效。

属性描述
Gain额外的音量增益(0-24 dB)。默认情况下,世界音频源获得 10dB 增益。虚拟形象音频源的最大增益限制为 10dB。
Far远半径,以米为单位,超出此范围音量衰减至静音。默认设置为 40m。虚拟形象音频最大限制为 40m。
仅在 VRC_SpatialAudioSource 上勾选"Use Spatializer Falloff"复选框时,Far 才会覆盖音频源曲线。
Advanced: Near近半径,以米为单位,音量在此开始衰减。我们建议将其保持为零以实现逼真有效的空间化效果。默认为 0m。
仅在 VRC_SpatialAudioSource 上勾选"Use Spatializer Falloff"复选框时,Near 才会覆盖音频源曲线。
Advanced: Volumetric Radius音频源通常被模拟为点声源,但更改此值可以使声音看起来来自更大的区域。应谨慎使用,主要用于需要在经过时听起来"宏大"的远距离音频源。
为获得最佳效果,听音者不应过于接近半径。除非你知道自己在做什么,否则将其保持为零。默认为 0m。
Volumetric Radius 的值应始终小于 Far。
Advanced: Use AudioSource Volume Curve使用 AudioSource 的'3D Sound Settings'音量曲线。如果未勾选,使用平方反比衰减。建议保持禁用以确保逼真和真实的空间化效果。
默认为 False。
Advanced: Enable Spatialization取消勾选以禁用默认的平方反比衰减曲线,转而使用音频源的空间化设置。
默认为 True。

虚拟形象限制​

你被允许调整虚拟形象上 Audio Sources 的衰减曲线。只需将 Use AudioSource Volume Curve 设置为 True,在 Audio Source 中调整曲线,VRChat 将使用该衰减曲线代替默认的平方反比曲线。

但是,如上所述,虚拟形象上的 VRC_SpatialAudioSource 组件有一些限制。这些限制在运行时强制执行。

  • Gain 不能超过 10db
  • Far 不能超过 40m

玩家音频可以覆盖这些设置。

note

在虚拟形象上,最好禁用和启用 Audio Source 组件,而不是整个游戏对象。

曲线压缩​

如果你尝试在 Far 距离比正常情况下更短的世界中播放具有自定义衰减曲线的虚拟形象音频,VRChat 将通过更改虚拟形象音频源的"Max Distance"设置来"压缩"曲线。你可以在 Unity 中调整音频源上的"Max Distance"范围来看效果。

虚拟形象音频压缩器​

VRChat 在虚拟形象音频通道上使用压缩器,以防止声音变得恶意响亮。这不应影响具有合理音量水平的虚拟形象音频源的正常使用。

避免触发压缩器的提示​

如果你的虚拟形象上有音频,你可以提前对音频做一些处理,以确保不会触发压缩器。

  1. 尽量使用"干"音频文件——即没有效果的音频文件。混响和延迟最容易导致压缩器"抽吸"。
  2. 在音频文件中留出一些余量。换句话说,不要让波形充满范围的顶部和底部。在 Audacity(或其他波形编辑器)中,将音频标准化在 -6 到 -12db 之间。
  3. 尽量避免波形中出现极高的峰值和极短的起音——也就是说,不要突然将音频"泵"到非常高的水平。如果你进行归一化处理,这应该会从文件中移除。

在旧场景中替换 ONSP​

在构建控制面板中使用"Enable 3D Spatialization on all AudioSources"按钮现在会将任何 ONSPAudioSource 转换为 VRC_SpatialAudioSource 组件。其中一些源在转换后可能需要调整。