Home

Awesome

Udon Voice Utilities

Total downloads

<!-- TOC --> <!-- TOC -->

What is UVU?

UdonVoiceUtils is a selection of scripts and prefabs that can modify player audio settings in real time.

TL;DR

Jump to Installation to get started... but I really recommend you read the given information here :)

Example use cases

  1. Increasing players voice range with e.g. a microphone
  2. Separating players using audio zones/rooms
  3. Muffling players behind walls
  4. Muffling players standing behind other players
  5. Scaling voice ranges depending on avatar height
  6. Adding reverb to player voices and all audible audio
  7. Creating complex stage setups with private backstage areas
  8. Focusing player voices when they face you or you face them
  9. Dividing players for competitive games using voice channels

Where is it being used?

You can request to have your world added by sending Guribo a message on Discord or by creating a ticket on this repository. Please provide the following information or use the template here on GitHub:

  1. World name
  2. World ID (optional, may be used for placing a portal in a tutorial world)
  3. Your name to be displayed (optional if the current VRChat name shall be used)

Note: I won't accept worlds that are not submitted by the world creator themselves

Getting started

Since UdonVoiceUtils 1.0.0 the package can be added to your projects via the VRChat Creator Companion.

Versioning

This package is versioned using Semantic Version.

The used pattern MAJOR.MINOR.PATCH indicates:

  1. MAJOR version: incompatible API changes occurred
    • Implication: after updating backup, check and update your scenes/scripts as needed
  2. MINOR version: new functionality has been added in a backward compatible manner
    • Implication: after updating check and update your usages if needed
  3. PATCH version: backward compatible bug fixes were implemented
    • Implication: after updating remove potential workarounds you added

Installation

  1. Install/Add VRChat World SDK 3.7 to your project
  2. Install/Add CyanPlayerObjectPool to your project: https://cyanlaser.github.io/CyanPlayerObjectPool/
  3. Install/Add TLP UdonVoiceUtils to your project: https://guribo.github.io/TLP/
  4. Start your project and open the scene Packages/tlp.udonvoiceutils/Runtime/Scenes/Demo.unity
  5. With ClientSim enabled, click the Play button in Unity
  6. Check for any errors in the console (only one regarding AudioListener is expected)
  7. If there is any problems, please check the Troubleshooting section below
  8. To set up your own world, start with the Minimal Scene Setup

Additional Notes:
Please follow the official guides created by VRChat to create a Unity World Creation project using the VRChat Create Companion.
The example scripts and prefabs can be found in Packages/tlp.udonvoiceutils/Runtime/Prefabs/Examples.

Please check out the Wiki for additional information on the available components, features and prefabs before creating your own worlds. It mentions limitations and things to take into account when integrating UVU into a VRChat world.

To see (and hear) how any of these features can be used feel free to test the example world with a friend or visit the public version in VRChat.

Minimal scene setup

  1. In your Project windows in the search window type in "TLP_"

  2. Filter the search results using the Dropdown menu, select: In Packages

  3. Add TLP_Essentials prefab to your scene to get the core components

    • Note: WorldVersionCheck inside the prefab is optional and can be deleted from the scene
  4. Add TLP_PlayerAudioController - core system of UVU (mandatory)

    • Alternatively you can use the prefab TLP_PlayerAudioCompleteWithUi if you want the menu as well
  5. The minimum setup is now complete, but has no effect on any player by default.

  6. From here on out you can either modify the global settings or add some of the example prefabs and connect them to the controller to create what you need. In addition, you can also create your own custom solutions that rely on UVU's audio overriding capabilities.

Troubleshooting

Errors after installation

  1. Make sure Cyan.PlayerObjectPool is added to your project!
  2. You might have updated to a version of UdonUtils that is not yet compatible with UdonVoiceUtils
    1. Remove UdonVoiceUtils and UdonUtils from your project via the Creator companion
    2. Add ONLY UdonVoiceUtils again (This will install the latest compatible version of UdonUtils for you as well)

Something is not working in the world

  1. Always playtest in the Unity editor using client sim!
  2. Check in the console for any errors
    1. Note that there should only be a single error regarding an AudioListener, which is expected and by design
  3. Errors produced by my TLP packages can be clicked on and they will highlight the GameObject in your scene hierarchy that produced the error
  4. Always start with the first error at the top!
  5. Read the error messages, they usually tell you what is wrong.
    1. Usually it is something like <Variable> is not set
    2. Check that script and look for the variable name mentioned
    3. Set the missing variable, usually the related script that needs to be set there is part of the prefab
    4. Sometimes it makes sense to just start fresh with a clean prefab!

Occlusion is not working

  1. Make sure your colliders are on the Environment layer!
  2. Walls must have a collision surface on either side to work in both directions!
    1. This is the case when using e.g. basic BoxColliders

FAQ

Can I use MeshColliders for occlusion?

YES

How can I change the default/globally active settings?

  1. Navigate to your PlayerAudioController prefab in your scene
  2. Find the GameObject Configurations/LocalConfiguration inside it
  3. Change its settings to your liking (this GameObject holds the active settings)
  4. when using the menu: apply the same settings to the Configurations/DefaultConfiguration GameObject (this allows resetting the global settings back to your particular default values)

References

Changelog

All notable changes to this project will be documented in this file.

[3.0.1] - 2024-12-22

โš™๏ธ Miscellaneous Tasks

[3.0.0] - 2024-12-14

๐Ÿš€ Features

[2.0.1] - 2024-12-11

๐Ÿ› Bug Fixes

[2.0.0] - 2024-12-11

โš™๏ธ Miscellaneous Tasks

[2.0.0-rc.2] - 2024-11-02

๐Ÿš€ Features

[2.0.0-rc.1] - 2024-08-21

๐Ÿš€ Features

๐Ÿ› Bug Fixes

๐Ÿšœ Refactor

๐Ÿ“š Documentation

๐Ÿงช Testing

โš™๏ธ Miscellaneous Tasks

[1.0.1] - 2024-08-18

๐Ÿ“š Documentation

โš™๏ธ Miscellaneous Tasks

[1.0.0] - 2024-05-25

โš™๏ธ Miscellaneous Tasks

[1.0.0-rc.6] - 2024-05-16

๐Ÿš€ Features

๐Ÿ› Bug Fixes

๐ŸŽจ Styling

[1.0.0-rc.5] - 2024-05-12

๐Ÿ“š Documentation

[1.0.0-rc.4] - 2024-05-10

โš™๏ธ Miscellaneous Tasks

[1.0.0-rc.3] - 2024-05-03

๐Ÿš€ Features

๐Ÿ“š Documentation

โš™๏ธ Miscellaneous Tasks

[1.0.0-rc.1] - 2023-11-19

๐Ÿš€ Features

๐Ÿ› Bug Fixes

๐Ÿšœ Refactor

๐Ÿ“š Documentation

๐Ÿงช Testing

โš™๏ธ Miscellaneous Tasks

[0.8.0] - 2022-02-27

๐Ÿš€ Features

๐Ÿ“š Documentation

๐Ÿงช Testing

โš™๏ธ Miscellaneous Tasks

[BPAv0.8] - 2021-09-26

๐Ÿš€ Features

๐Ÿ› Bug Fixes

[BPAv0.7] - 2021-08-06

๐Ÿš€ Features

๐Ÿ› Bug Fixes

๐Ÿงช Testing

[BPAv0.7_beta] - 2021-07-12

๐Ÿš€ Features

๐Ÿ› Bug Fixes

๐Ÿšœ Refactor

[BPAv0.6] - 2021-06-12

๐Ÿš€ Features

๐Ÿšœ Refactor

[BPAv0.5] - 2021-04-10

๐Ÿš€ Features

๐Ÿ› Bug Fixes

โš™๏ธ Miscellaneous Tasks

[BPAv0.4] - 2021-03-15

๐Ÿš€ Features

[BPAv0.3] - 2021-01-15

๐Ÿš€ Features

๐Ÿ› Bug Fixes

[BPAv0.2] - 2020-12-19

๐Ÿš€ Features

๐Ÿšœ Refactor

[BPAv0.1] - 2020-11-21

๐Ÿš€ Features

๐Ÿ“š Documentation

<!-- generated by git-cliff -->