-
Notifications
You must be signed in to change notification settings - Fork 8
Occlusion
Guribo edited this page Jul 5, 2026
·
5 revisions
How occlusion works and why it muffles audio.
Occlusion muffles audio when obstacles (walls, buildings, other players) are between the listener and the speaker. This creates realistic audio — voices sound quieter when someone is behind a wall.
The system uses raycasting from the listener's head toward the emitter's head. Hits along the ray determine how much audio is muffled.
| Hits | Meaning | Result |
|---|---|---|
| 0 | Clear line of sight | Full clarity (1.0) |
| 1 | One obstacle hit | Check distance — if > 1m from emitter, full clarity; otherwise apply obstacle/player clarity |
| 2 | Two obstacles hit | If both are players → player clarity; otherwise → environment hit clarity |
-
Environment occlusion: walls, buildings, floors — uses
AudioObstacleclarity or global fallback -
Player occlusion: other players standing between listener and emitter — uses
playerClaritysetting - Environment dominates: when any environment hit exists, player occlusion is ignored
This means a wall always takes precedence over a player blocking the sound path.
| Strategy | Behavior |
|---|---|
DefaultPlayerOcclusion |
Raycast-based, supports AudioObstacle per-obstacle clarity |
NullPlayerOcclusion |
No occlusion (passthrough) — useful for testing or worlds that don't need occlusion |
- AudioObstacle — per-obstacle configuration
- How to Set Up Occlusion — step-by-step setup guide
- DefaultPlayerOcclusion — raycast strategy details
- Architecture
- Occlusion
- Voice Directionality
- Height Scaling
- Audio Processing Pipeline
- Private Voice Channels
- WorldAudio Subsystem
- WorldAudio Limitations
- Set Up Occlusion
- Set Up Voice Channels
- Set Up Reverb
- Set Up Height Scaling
- Set Up Voice Directionality
- Set Up Microphone
- Set Up WorldAudio Emitters
- Enable Debug Mode
- Tutorial #1: Custom Voice Override Zone
- Tutorial #2: Private Voice Channels
- Tutorial #3: Setting Up World Audio
- PlayerAudioController
- PlayerAudioOverride
- PlayerAudioOverrideList
- PlayerAudioView
- PlayerAudioConfigurationModel
- SyncedPlayerAudioConfigurationModel
- VoiceUtils
- IgnoredPlayers
- AudioObstacle
- DefaultPlayerOcclusion
- NullPlayerOcclusion
- PlayerOcclusionStrategy
- Privacy Channel Reference
- AdjustableGain
- DynamicPrivacy
- PickupMicrophone — MVC microphone system with MicModel/MicController/MicView
- VoiceOverrideTriggerZone
- VoiceOverrideRoom