2020.11.6.439 - Procedural Line graph mesh, Audio loopback capture, tweaks, more
Sorry for smaller build today, but here are some more goodies! There are two new components which allow easily rendering graphs! The full potential of the mesh one will be unlocked with access to collections so you can fill it with any data you want, but there's another helper component that lets you easily graph history of any value.
There are some more internal additions as well for sound devices (capturing desktop output audio and Neos' own audio output) that will be important for some future features as well as improvements to default audio device detection.
A bunch of other tweaks and fixes as usual too!
[h2]New Features:[/h2]
- Added LineGraphmesh procedural RectMesh, which generates a line graph based on a series of values, with configurable value range
- Added ValueGraphRecorder, which updates a graph renderer with history of a source float value (requested by @ProbablePrime)
-- To use, you need to assign both TargetArray and TargetArrayOffset, which will be filled with data
-- Optionaly you can assign RangeMin and RangeMax, to have the component automatically update the displayed range based on the values (with configurable adjust threshold and multipliers)
-- By default it will drive targets, but this can be optionally disabled if required, resulting in only a single RecordingUser updating the targets
- Neos now supports using audio output devices as an input on Windows using loopback capture
- Added internal loopback audio capture, which captures Neos' own audio output (this is mostly for internal use, like recording in-game audio and later on for echo cancellation)
- BakeMesh and BakeClip methods on procedural meshes and clips are now exposed as impulse targets for LogiX (based on feedback by @Kal, @Cyro and @Aegis_Wolf | Art Director)
- Added FinishHandling to TextEditor, which determines on how is the target string updated after editing finishes (requested by @Earthmark):
-- Leave As Is (leaves it unchanged)
-- Null on Empty (sets target to null if string is empty after editing ends)
-- Null on Whitespace (sets target to null if string is just whitespaces or empty after editing ends)
- Neos Exit messages can now refer to the local user using $LocalUser variable (requested by @Blaze)
[h2]Tweaks:[/h2]
- Added OnAnimationFinished impulse to SetUserScale (requested by @Shifty | Quality Control Lead)
- When triggering change in user's scale, any currently running scale animation is cancelled (based on report by @Turk)
- Inspector now lists SyncArray members without showing the actual data (this allows the references to be assigned)
- Improved detection of the system default audio input device (previously reported by @Cyro)
-- This only affects new users, if you already have one setup, then it'll stay
- Upgraded to Unity 2019.4.14f1 (from 2019.4.13f1)
- Merged Japanese, Esperanto and Chinese locale updates by @Melnus
- Merged Czech locale updates by @rampa_3 (UTC +1, DST UTC +2)
[h2]Bugfixes:[/h2]
- Fixed in-memory audio writing constantly overwriting the first block of audio samples
- Fixed DefaultUserScale updating user's default scale when not equipped, by simply becoming part of their hierarchy (reported by @Shifty | Quality Control Lead)
- Fixed FocusWorld and OpenWorld nodes not working in Userspace (reported by @ProbablePrime)
- Re-applied fix for ColliderUserTracker loosing the track of user when switching between different locomotion types (e.g. Fly to Walk/Run) (reported by @ChrisWarner103 (DelVR))
-- This fix was previously disabled due to @Turk's MMC submission depending on the buggy behavior

There are some more internal additions as well for sound devices (capturing desktop output audio and Neos' own audio output) that will be important for some future features as well as improvements to default audio device detection.
A bunch of other tweaks and fixes as usual too!
[h2]New Features:[/h2]
- Added LineGraphmesh procedural RectMesh, which generates a line graph based on a series of values, with configurable value range
- Added ValueGraphRecorder, which updates a graph renderer with history of a source float value (requested by @ProbablePrime)
-- To use, you need to assign both TargetArray and TargetArrayOffset, which will be filled with data
-- Optionaly you can assign RangeMin and RangeMax, to have the component automatically update the displayed range based on the values (with configurable adjust threshold and multipliers)
-- By default it will drive targets, but this can be optionally disabled if required, resulting in only a single RecordingUser updating the targets
- Neos now supports using audio output devices as an input on Windows using loopback capture
- Added internal loopback audio capture, which captures Neos' own audio output (this is mostly for internal use, like recording in-game audio and later on for echo cancellation)
- BakeMesh and BakeClip methods on procedural meshes and clips are now exposed as impulse targets for LogiX (based on feedback by @Kal, @Cyro and @Aegis_Wolf | Art Director)
- Added FinishHandling to TextEditor, which determines on how is the target string updated after editing finishes (requested by @Earthmark):
-- Leave As Is (leaves it unchanged)
-- Null on Empty (sets target to null if string is empty after editing ends)
-- Null on Whitespace (sets target to null if string is just whitespaces or empty after editing ends)
- Neos Exit messages can now refer to the local user using $LocalUser variable (requested by @Blaze)
[h2]Tweaks:[/h2]
- Added OnAnimationFinished impulse to SetUserScale (requested by @Shifty | Quality Control Lead)
- When triggering change in user's scale, any currently running scale animation is cancelled (based on report by @Turk)
- Inspector now lists SyncArray members without showing the actual data (this allows the references to be assigned)
- Improved detection of the system default audio input device (previously reported by @Cyro)
-- This only affects new users, if you already have one setup, then it'll stay
- Upgraded to Unity 2019.4.14f1 (from 2019.4.13f1)
- Merged Japanese, Esperanto and Chinese locale updates by @Melnus
- Merged Czech locale updates by @rampa_3 (UTC +1, DST UTC +2)
[h2]Bugfixes:[/h2]
- Fixed in-memory audio writing constantly overwriting the first block of audio samples
- Fixed DefaultUserScale updating user's default scale when not equipped, by simply becoming part of their hierarchy (reported by @Shifty | Quality Control Lead)
- Fixed FocusWorld and OpenWorld nodes not working in Userspace (reported by @ProbablePrime)
- Re-applied fix for ColliderUserTracker loosing the track of user when switching between different locomotion types (e.g. Fly to Walk/Run) (reported by @ChrisWarner103 (DelVR))
-- This fix was previously disabled due to @Turk's MMC submission depending on the buggy behavior


