VRC_PlayerAudioOverride

A region in a world where user voice and avatar audio properties can be adjusted.

🚧

Deprecated

This component is deprecated. It is not available in the latest VRChat SDK, and is either non-functional, or will no longer receive updates. It may be removed at a later date.

Use Udon Player Audio instead.

This component is used to alter a player's voice and avatar sound spatialization parameters when they enter a region. This can be used to have performers on stage project their voice further than default, or likewise, have the audience voices not carry as much. This component can also be used to change the limits for avatar-based VRC_SpatialAudioSources within the region-- you can allow higher limits, lower the limits, or even turn off avatar audio entirely in your world.

This component is used in conjunction with a Unity Trigger collider. Any collider shape may be used. In order for the VRC_PlayerAudioOverride to work, you must create a new collider! You can use any type of collider, but Box is likely the most common use case. This collider must have Is Trigger checked!

📘

Use Default Layer

You should always use the Default layer for VRC_PlayerAudioOverride.

If you want the Override to affect the entire scene, enable the Global checkbox.

When a user enters the Trigger Collider, the given spatial parameters are applied. When a user leaves the trigger, the default spatial parameters are restored. This change is immediate.

531

A VRC_PlayerAudioOverride as it appears when first added. In this state, it has no collider assigned to Region (and Global isn't checked) so it won't do anything.

Unity Editor Interface

When you add this component to a GameObject, it will have default settings loaded. No Collider will be defined in the Region property field. In order for the VRC_PlayerAudioOverride to work, you must create a new collider, and assign it to the Region property. You can use any type of collider, but Box is likely the most common use case. This collider must have Is Trigger checked!

🚧

Don't forget to enable Is Trigger!

Any collider used for VRC_PlayerAudioOverride must use the Is Trigger option on the Collider, or else it will be treated as a physics collider.

As an example, a Box Collider will have a gizmo with walls to indicate its bounds. Clicking "Edit Collider" in the Collider component will allow you to adjust the dimensions of the Override Region in the 3D view. You can also adjust the Center and Dimensions of the Box Collider component directly in the Inspector. When a player is within those bounds, they will be affected by the Override.

Notably, you can use any collider shape for VRC_PlayerAudioOverride, like a Sphere Collider or even a Mesh Collider. Add the collider to the GameObject, set Is Trigger to True, and you're good to go!

Voice Falloff Mechanics

All units are in meters. Falloff of audio intensity is roughly inverse-square, with some adjustments.

For more details specific to avatar audio sources, please see the documentation for VRC_SpatialAudioSource.

VRChat Voice Falloff Curve Adjustments

VRChat voice uses an inverse-square curve that has been slightly compressed and boosted.

This voice falloff approximates real-world behavior (ignoring occlusion, reverb, etc) and will allow users to naturally pick voices out of a crowd, while preventing issues such as close-range clipping and unexpected drops.

In addition, there is a low-pass filter on voice once you start to get closer to your Voice Far range. This is intended to turn distant conversation into "crowd-noise", and helps with improving the ability to understand many voices in crowded areas and instances. The low-pass filter begins affecting voice at 1/2 of the Voice Far value.

Component Properties

🚧

Dynamic Adjustment via Animations

Adjusting these properties via animations during runtime is not supported. These values are set at initialization.

🚧

Low "Far" Ranges

Having your Voice Far set very low (less than 20m) will result in sharp drop-offs. You probably shouldn't do that-- but if you do, keep that in mind.

❗️

Disabling / Enabling GameObject or Component

If a VRC_PlayerAudioOverride region is enabled/disabled while someone is standing in its area of influence, you may experience undocumented behavior. This is because Unity does not fire a OnTriggerExit callback if you are within a collider when it is disabled.

In short, do not attempt to toggle on / toggle off the GameObject or Components involved with VRC_PlayerAudioOverride while someone is within its area of influence.

If you instead choose to move the collider (say, into the floor) via an animation, it should work fine. Obviously, this won't work with Global regions, but in this case you can instead override with regions.

Property NameDescription
GlobalIf checked, these settings are global. Otherwise, settings only affect players who enter the trigger region.

You should only have one of these in your world! If you have more than one, VRChat will only use the first one found.

False by default.
RegionThis field takes a GameObject with a Collider-class component on it. The collider must have Is Trigger enabled. When a player enters this region, their settings are changed.

Empty by default.
Region PriorityHigher number means higher priority, can be negative.

If a high-priority region overlaps a low-priority region, the high-priority region's settings will be applied instead.
Voice GainAn additional boost to voice volume. Can be 0-24db.
Voice FarThe maximum range at which voice can be heard. At values close to this range, voice is going to be pretty quiet.
Advanced
Voice Near
The near radius, in meters, where volume begins to fall off.

It is strongly recommended to leave the Near value at zero for realism and effective spatialization for user voices.
Advanced
Voice Volumetric Radius
An audio source is normally simulated as a point source. However, changing this value allows the source to appear to come from a larger area.

This should be used carefully, and is mainly for distant audio sources that need to sound "large" as you move past them. The listener should never get close to the radius for best results. If the listener is inside the Volumetric Radius, strange behavior may result.

It is strongly recommended to leave the Volumetric Radius value at zero for realism and effective spatialization for user voices.
Advanced
Voice Disable Lowpass Filter
Disable the lowpass distance filter. May be useful for non-standard ranges.
Avatar Gain LimitLimit for avatar audio gain (decibels). Setting this to -1 (or any negative value) will mute all avatar audio.
Avatar Far LimitLimit for avatar audio max range (meters). If this is set to zero, all avatar audio will be muted.
Advanced
Avatar Near Limit
Limit for avatar min range (meters). See note on Voice Near.
Advanced
Avatar Volumetric Radius Limit
Limit for avatar volumetric audio (meters). See note on Voice Volumetric Radius.
Advanced
Avatar Force Spatial
Force spatial avatar audio.
Advanced
Avatar Allow Custom Curve
Allow avatar audio to use AudioSource Volume Curve for falloff. Otherwise, Inverse Square falloff is enforced.

PlayerAudioOverride Default Values

Values listed are the defaults for player voice when no VRC_PlayerAudioOverride is in effect, or when you create a new component. These values are subject to change.

Property NameValue
GlobalFalse
RegionN/A for default settings when no VRC_PlayerAudioOverride is in effect.

When a new VRC_PlayerAudioOverride is created, no collider is created. You'll have to make one and ensure Is Trigger is checked.
Region Priority0
Voice Gain15
Voice Far25
Advanced: Voice Near0
Advanced: Voice Volumetric Radius0
Advanced: Voice Disable LowpassTrue
Avatar Gain Limit †10
Avatar Far Limit †40
Advanced: Avatar Near Limit †40
Advanced: Avatar Volumetric Radius Limit †40
Advanced: Avatar Force SpatialFalse
Advanced: Avatar Allow Custom CurveTrue

† To reiterate, these are limits, not boosts.

Notes

  • All player voice gets an addition 6db boost relative to other sounds. This is on top of any Gain you apply with the VRC_PlayerAudioOverride.
  • Don't overlap regions with the same priority. That will result in spooky undocumented behavior.