-
Notifications
You must be signed in to change notification settings - Fork 8
Voice Directionality
Head rotation affects voice and avatar audio range. When a player faces toward or away from you, their voice range changes.
| Setting | Effect | Range |
|---|---|---|
ListenerDirectionality |
Reduces range when you face away from the speaker | 0-1 |
PlayerDirectionality |
Reduces range when the speaker faces away from you | 0-1 |
Both are independent — you can enable one, both, or neither.
The system uses dot products between head forward vectors and the direction between players. Each dot is normalised to [0,1] and offset by the directionality value, so the relationship between directionality and range reduction is non-linear.
- Listener effect: dot(listener forward, direction to speaker) — facing toward = full range, facing away = reduced range
- Player effect: dot(speaker backward, direction to listener) — speaker facing away = reduced range
- Both effects are multiplied together for the final range multiplier
The effect is continuous — the range scales smoothly based on the angle between head facing and direction.
| Value | Effect |
|---|---|
0.0 |
No directionality — range unchanged regardless of head rotation |
0.5 |
Moderate — facing away reduces range by ~50% |
1.0 |
Full — facing away can reduce range up to 100% |
The mapping is non-linear due to dot product normalisation —
0.5does not mean exactly 50% reduction at all angles.
Set different directionality per zone — e.g., strong directionality on stage, none in lounge.
See PlayerAudioOverride for field details.
Set default directionality for all zones.
See PlayerAudioConfigurationModel for field details.
Sliders for both settings in the settings menu.
See PlayerAudioView for UI details.
- Stage/Performance: high directionality — audience hears performers clearly, chatter behind them is quiet
- Social Lounge: low directionality — easy conversation from any angle
- Hide and Seek: high directionality — hard to locate players by sound alone
- Architecture — how directionality fits in the update loop
- PlayerAudioOverride — per-zone settings
- 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