-
Notifications
You must be signed in to change notification settings - Fork 8
How to Set Up Microphone
Guribo edited this page Jul 11, 2026
·
5 revisions
Step-by-step guide for adding a pickupable microphone that extends voice range.
-
TLP_PlayerAudioController prefab in your scene at
Packages/tlp.udonvoiceutils/Runtime/Prefabs/Core/TLP_PlayerAudioController.prefab -
TLP_Essentials prefab at
Packages/tlp.udonutils/Runtime/Prefabs/TLP_Essentials.prefab
- Add the
PickupMicrophoneprefab atPackages/tlp.udonvoiceutils/Runtime/Prefabs/Examples/PickupMicrophone.prefab - The prefab includes all required components (VRC_Pickup, PlayerAudioOverride, MicModel, PickupMicActivation, PickupMicrophone, MicView)
- Test immediately — pick up the object to activate the microphone
- Create a new empty GameObject (name it e.g.
Microphone) - Add a VRC_Pickup component
- Configure pickup settings:
-
Allow Holding By:
Any(orRight/Leftfor hand-specific) -
Allow Teleport:
Allow(for comfortable pickup)
-
Allow Holding By:
- Add an UdonBehaviour component
- Set Program Source to
PlayerAudioOverride - Configure voice range and other settings as needed
- Set a Privacy Channel Id if the microphone should be channel-specific (e.g.,
1) - Set Priority higher than the room override so the mic takes precedence
- Add a MicModel component — holds
UserIdandIsOnstate - Add a MicActivation component — defines activation logic:
-
PickupMicActivation— activates when picked up, deactivates on drop -
InteractMicActivation— press Use to toggle on/off, or enableHoldUseToTalkfor push-to-talk behavior
-
- Add a UdonBehaviour component
- Set Program Source to
PickupMicrophone - Assign fields:
-
PlayerAudioOverride→ the override on this GameObject -
MicModel→ the MicModel component -
MicActivation→ the MicActivation component
-
- Enable ClientSim
- Click Play
- Pick up the microphone — your voice range should increase
- Drop the microphone — voice range returns to normal
- If using channels, verify the microphone channel matches the room channel
- Microphone channel ID matches room channel ID → players in the room can hear the microphone
- Microphone channel ID differs from room channel ID → microphone is isolated from the room
- Channel ID
-1= no privacy (audible to all)
The microphone system uses MVC:
-
MicModel — holds
UserIdandIsOnstate, notifies listeners on change -
MicController — MVC controller (extends
Controller) - MicView — MVC view for mic UI display
- MicActivation — abstract base class for activation logic
- PickupMicrophone — component reference
- Tutorial #1 — custom zone creation (includes mic setup concepts)
- Private Voice Channels — channel behavior
- How to Set Up Voice Channels — channel setup
- 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