2020.11.23.1311 - Reflection Probe improvements, user voice configuration, more
A bunch of additions, tweaks and fixes for Reflection Probes! You can now bake them using LogiX, allowing you to make automated setups! Any developer interfaces and non-persistent objects are now also excluded and the bug where sometimes the excluded items appear should be gone.
I've also added a system for configuring user's voice in your worlds, you can now configure every property (volume, rolloff, distances and more) and even drive them with LogiX, allowing to create worlds with customized audio setups. The user voice now also scales with their size, so you should be able to hear large users easier now. All fully configurable of course.
A bunch of other tweaks and bugfixes as well, for example when recording a voice message your laser won't get interrupted by things in the world anymore and all other sounds will get attenuated.
[h2]New Features:[/h2]
- Reflection Probes can now be individually baked from LogiX, using BakeReflectionProbe node (under Rendering)
-- It's STRONGLY recommended to wait for OnBakeComplete before baking another probe when baking multiple ones, as it's relatively a heavy process
-- The probe must be a Baked type, Realtime reflection probes can't be baked
- Added BakeReflectionProbes LogiX node, which allows mass-baking of the probes
-- Functionality and parameters are same as in the Reflection Probe Wizard
-- You will receive impulse before each probe bakes (before the delay) and after it has baked
-- It provides indication on which probe is currently being baked
- Added DistanceSpace for AudioOutput, which allows switching the space of the distance metrics to Local from Global (based on request by @Shifty | Quality Control Lead, @H3BO3 and others)
-- This will make the MinDistance and MaxDistance scale with the global scale of the Slot it's on
-- You can use new MinScale and MaxScale fields to clamp the global scale, so the distances will stop scaling at certain point
- Added AvatarAudioConfiguration component (under Users/Common Avatar System/Audio) which provides voice mode configuration if placed within user's hierarchy (based on request by @ChrisWarner103 (DelVR))
-- This allows configuring all audio settings (range, falloff, spatialization...) for Normal, Shout and Broadcast. Mute and Whisper cannot be overriden.
-- All properties are driven locally. By driving the properties on this component you can divergently drive the voice properties of the user
-- Ensure there's only one instance on the avatar, when multiple instances are present, behavior will be undefined.
-- When not present, the default/per-avatar settings are used instead
-- Note that you cannot add this dynamically to the user, it needs to be present before avatar is equipped
- Added AutoInject reference to CommonAvatarBuilder, which will duplicate target slot and place it on each spawned user
-- It's placed right at the root of the user, at the same level as avatar and body nodes
-- You can use this to place AvatarAudioConfiguration on the users to create custom audio configuration in your worlds, as well as any custom LogiX (e.g. for game worlds)
- Added UserSpawn event node (requested by @ChrisWarner103 (DelVR), @Turk, @Rukio, @Shadow Panther [RU/EN, UTC+3] and others)
-- This is based on a new internal UserSpawn event, which fires anytime user should be spawned - when then initially join and anytime they get deleted and respawned again.
-- You don't need to use OnUserJoin at all when using this node, unless you speciflcally want to be informed when the user joins the session
[h2]Tweaks:[/h2]
- User's voice range is now scaled with the size of the user, making it easier to hear them when they're large
-- By default the minimum scale is clamped to 1 (you might see a different value on the AudioOutput as it's compensated by the avatar's scale) so small users are still audible
- When baking reflection probes, any developer interfaces (e.g. Inspectors) as well as any Non-Persistent objects are now excluded (based on feedback from @Kulza)
- When recording a voice message, all sounds (including other voices) are attenuated (based on suggestion by @Hayden (PolyLogiX Studio))
-When recording a voice message, the userspace laser will take priority, fixing cases where it would get interrupted by another user walking in front of you or a piece of environment (based on report by @Veer | Chief Moderation Officer)
- Recategorized avatar audio related components under Users/Common Avatar System/Audio
- Added a mechanism to correct locale keys in all locales and applied corrections to all current locales (based on report by @rampa_3 (UTC +1, DST UTC +2))
- Merged Japanese locale additions by @Aesc
- Merged Korean locale additions by @MirPASEC
- Merged Esperanto and Chinese locale additions by @Melnus
- Merged Russian locale additions by @Shadow Panther [RU/EN, UTC+3]
[h2]Bugfixes:[/h2]
- Baking Reflection Probes now render in one go to prevent certain faces from showing culled objects (e.g. Users or Gizmos appearing in the baked result, as reported by @Shifty | Quality Control Lead)
- Added guard when rendering thumbnail for saved items, to avoid any errors in this process from preventing the save from completing (item will save without a thumbnail, but it will save)
- Fixed invalid indexing operations for SyncTypeList, causing exceptions when trying to find particular elements
- Fixed incorrect Pico Neo 2 headset controller integration when using SteamVR streaming, Neos should now be completely usable with this headset (requested by @Kagifa)

I've also added a system for configuring user's voice in your worlds, you can now configure every property (volume, rolloff, distances and more) and even drive them with LogiX, allowing to create worlds with customized audio setups. The user voice now also scales with their size, so you should be able to hear large users easier now. All fully configurable of course.
A bunch of other tweaks and bugfixes as well, for example when recording a voice message your laser won't get interrupted by things in the world anymore and all other sounds will get attenuated.
[h2]New Features:[/h2]
- Reflection Probes can now be individually baked from LogiX, using BakeReflectionProbe node (under Rendering)
-- It's STRONGLY recommended to wait for OnBakeComplete before baking another probe when baking multiple ones, as it's relatively a heavy process
-- The probe must be a Baked type, Realtime reflection probes can't be baked
- Added BakeReflectionProbes LogiX node, which allows mass-baking of the probes
-- Functionality and parameters are same as in the Reflection Probe Wizard
-- You will receive impulse before each probe bakes (before the delay) and after it has baked
-- It provides indication on which probe is currently being baked
- Added DistanceSpace for AudioOutput, which allows switching the space of the distance metrics to Local from Global (based on request by @Shifty | Quality Control Lead, @H3BO3 and others)
-- This will make the MinDistance and MaxDistance scale with the global scale of the Slot it's on
-- You can use new MinScale and MaxScale fields to clamp the global scale, so the distances will stop scaling at certain point
- Added AvatarAudioConfiguration component (under Users/Common Avatar System/Audio) which provides voice mode configuration if placed within user's hierarchy (based on request by @ChrisWarner103 (DelVR))
-- This allows configuring all audio settings (range, falloff, spatialization...) for Normal, Shout and Broadcast. Mute and Whisper cannot be overriden.
-- All properties are driven locally. By driving the properties on this component you can divergently drive the voice properties of the user
-- Ensure there's only one instance on the avatar, when multiple instances are present, behavior will be undefined.
-- When not present, the default/per-avatar settings are used instead
-- Note that you cannot add this dynamically to the user, it needs to be present before avatar is equipped
- Added AutoInject reference to CommonAvatarBuilder, which will duplicate target slot and place it on each spawned user
-- It's placed right at the root of the user, at the same level as avatar and body nodes
-- You can use this to place AvatarAudioConfiguration on the users to create custom audio configuration in your worlds, as well as any custom LogiX (e.g. for game worlds)
- Added UserSpawn event node (requested by @ChrisWarner103 (DelVR), @Turk, @Rukio, @Shadow Panther [RU/EN, UTC+3] and others)
-- This is based on a new internal UserSpawn event, which fires anytime user should be spawned - when then initially join and anytime they get deleted and respawned again.
-- You don't need to use OnUserJoin at all when using this node, unless you speciflcally want to be informed when the user joins the session
[h2]Tweaks:[/h2]
- User's voice range is now scaled with the size of the user, making it easier to hear them when they're large
-- By default the minimum scale is clamped to 1 (you might see a different value on the AudioOutput as it's compensated by the avatar's scale) so small users are still audible
- When baking reflection probes, any developer interfaces (e.g. Inspectors) as well as any Non-Persistent objects are now excluded (based on feedback from @Kulza)
- When recording a voice message, all sounds (including other voices) are attenuated (based on suggestion by @Hayden (PolyLogiX Studio))
-When recording a voice message, the userspace laser will take priority, fixing cases where it would get interrupted by another user walking in front of you or a piece of environment (based on report by @Veer | Chief Moderation Officer)
- Recategorized avatar audio related components under Users/Common Avatar System/Audio
- Added a mechanism to correct locale keys in all locales and applied corrections to all current locales (based on report by @rampa_3 (UTC +1, DST UTC +2))
- Merged Japanese locale additions by @Aesc
- Merged Korean locale additions by @MirPASEC
- Merged Esperanto and Chinese locale additions by @Melnus
- Merged Russian locale additions by @Shadow Panther [RU/EN, UTC+3]
[h2]Bugfixes:[/h2]
- Baking Reflection Probes now render in one go to prevent certain faces from showing culled objects (e.g. Users or Gizmos appearing in the baked result, as reported by @Shifty | Quality Control Lead)
- Added guard when rendering thumbnail for saved items, to avoid any errors in this process from preventing the save from completing (item will save without a thumbnail, but it will save)
- Fixed invalid indexing operations for SyncTypeList, causing exceptions when trying to find particular elements
- Fixed incorrect Pico Neo 2 headset controller integration when using SteamVR streaming, Neos should now be completely usable with this headset (requested by @Kagifa)


