Allow worlds/Udon to officially control the local listening position and orientation (consistent on Desktop and VR)
tyunta
Current problem:
Some worlds use an AudioListener-based workaround to simulate moving the user's ears to another point in the world, for example for dummy-head ASMR style effects.
However, on Desktop, when the listening position is moved this way, distance and volume appear to follow the moved listening point, while directional localization (left/right directionality) still remains tied to the player's original viewpoint. As a result, the gimmick does not work correctly on Desktop.
The same gimmick works as intended in VR.
I have also confirmed a difference in PPC° between VR and Desktop in the Audio Sources Debug View. I can provide screenshots and other supporting material if needed.
Use cases
- ASMR / dummy-head style "ear-level" audio presentation using a listening point placed in the world
- Observer camera / special viewpoint gimmicks where the visual viewpoint and listening point should be separated
- Audio-driven experiences where distance and direction should be designed around a specific in-world ear position
Requested change
Instead of relying on unsupported AudioListener-based workarounds, I would like an official and safe way for worlds/Udon to control the local user's listening position and orientation (listener transform).
Requirements:
- It should work consistently on both Desktop and VR
- Directional localization should update correctly, not just distance attenuation / volume
- It only needs to affect the local user
- Network synchronization is not required
Why the current workaround is insufficient
- AudioListener is not part of the allowlisted world components, so it is not an officially supported component for worlds
- Because of that, platform differences (such as Desktop vs VR) and future breakage are difficult to avoid
- VRChat already has official functionality such as Audio from Camera, which changes where audio is heard from
- For that reason, it would be very helpful to have a similarly official and safe way for worlds to specify a local listening point
Scope / non-goals
- This is not a request to bypass normal audible range, occlusion, or existing voice distance rules
- This is not a request to force other players' listening positions to change
A local-only solution is sufficient
- This is not intended for eavesdropping or expanding what a player is allowed to hear beyond normal rules
Possible safety constraints would be fine, for example:
- Explicit per-world opt-in
- Local-only behavior
- Existing distance attenuation and audibility rules remain unchanged
Minimal repro
Minimal repro world:
Repro steps:
- Join in VR → the gimmick works as intended, with both distance and direction matching the moved ear/listening position
- Join on Desktop → distance / volume follows the moved listening position, but directional localization still remains based on the original player viewpoint
If needed, I can also provide the following on request:
- A VR vs Desktop comparison video
- Debug View screenshots (Audio Sources: PPC°, Dist, lG/rG dB, d)
- VRChat version / build number
Log In