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
If you want the Override to affect the entire scene, enable the
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.
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_PlayerAudioOverridemust use the
Is Triggeroption 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!
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 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.
Dynamic Adjustment via Animations
Adjusting these properties via animations during runtime is not supported. These values are set at initialization.
Low "Far" Ranges
Voice Farset 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
VRC_PlayerAudioOverrideregion 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
OnTriggerExitcallback 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_PlayerAudioOverridewhile 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.
|Global||If 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.
|Region||This field takes a GameObject with a Collider-class component on it. The collider must have |
Empty by default.
|Region Priority||Higher 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 Gain||An additional boost to voice volume. Can be 0-24db.|
|Voice Far||The maximum range at which voice can be heard. At values close to this range, voice is going to be pretty quiet.|
|The near radius, in meters, where volume begins to fall off.|
It is strongly recommended to leave the
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
Voice Disable Lowpass Filter
|Disable the lowpass distance filter. May be useful for non-standard ranges.|
|Avatar Gain Limit||Limit for avatar audio gain (decibels). Setting this to -1 (or any negative value) will mute all avatar audio.|
|Avatar Far Limit||Limit for avatar audio max range (meters). If this is set to zero, all avatar audio will be muted.|
Avatar Near Limit
|Limit for avatar min range (meters). See note on Voice Near.|
Avatar Volumetric Radius Limit
|Limit for avatar volumetric audio (meters). See note on Voice Volumetric Radius.|
Avatar Force Spatial
|Force spatial avatar audio.|
Avatar Allow Custom Curve
|Allow avatar audio to use AudioSource Volume Curve for falloff. Otherwise, Inverse Square falloff is enforced.|
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.
|Region||N/A for default settings when no |
When a new
|Advanced: Voice Near||0|
|Advanced: Voice Volumetric Radius||0|
|Advanced: Voice Disable Lowpass||True|
|Avatar Gain Limit †||10|
|Avatar Far Limit †||40|
|Advanced: Avatar Near Limit †||40|
|Advanced: Avatar Volumetric Radius Limit †||40|
|Advanced: Avatar Force Spatial||False|
|Advanced: Avatar Allow Custom Curve||True|
† To reiterate, these are limits, not boosts.
- All player voice gets an addition 6db boost relative to other sounds. This is on top of any
Gainyou apply with the
- Don't overlap regions with the same priority. That will result in spooky undocumented behavior.
Updated 10 months ago