1. Neos VR
  2. News
  3. 2021.9.22.1431 - (Un)Escape string node, Proportional duration tween, bugfixes

2021.9.22.1431 - (Un)Escape string node, Proportional duration tween, bugfixes

Hello everyone! Another small build with a few more goodies. There's new Escape & Unescape nodes for strings, which can be useful when parsing escaped strings (e.g. from a JSON input). The Tween node also has a new "ProportionalDuration" mode which adjusts the tween duration based on the actual distance between the tweened values.

There's a number of bugfixes as well, notably some fixes for the dynamic bone chain system causing crashes in some cases and number of smaller fixes found in logs from reports.

[h2]New Features:[/h2]
- Added Escape String and Unescape String nodes
-- These perform string escaping and unescaping so it can be used as input/output string literal in a number of languages (e.g. C, C#, JSON and others)
-- Implementation currently wraps System.Text.RegularExpressions.Regex.Escape/Unescape, but can be expanded in the future
- Added FormatLocaleString LogiX node (under Assets)
-- This allows formatting a string from a given locale resource
-- Currently arguments aren't supported, as those require collection support first
- Added LocaleMessageCount LogiX node which outputs number of messages in a given locale resource
- Added DefaultValue & DefaultReference to ParentValueLink and ParentReferenceLink (requested by @guheheP, GH #3060)
-- These allow providing custom default values when there's no current parent value
- Added "ProportionalDuration" input to the Tween node
-- This scales the duration of the tween based on the distance between the tweened values - if they're closer it'll take shorter, if they're further away it'll take longer
-- For values and vectors, linear distance is used
-- For quaternions, angular distance is used (in radians)
Tweaks:
- RTF tags are now stripped when tags are auto-generated from a record's name (reported by @Enverex, GH #3061)

[h2]Optimizations:[/h2]
- DynamicBoneChain collisions from players that are currently inactive are now ignored and not tracked by the system, resulting in some performance savings when combined with culling systems
- Collision Listener Components on Slots that only have one Collider now use less memory, avoiding memory allocations

[h2]Security:[/h2]
- Admin buttons for WorldDetail UI will no longer generate outside of the userspace

[h2]Bugfixes:[/h2]
- Fixed invalid deallocation of player dynamic bone colliders when the player exits world, is respawned or otherwise deallocated
-- This fixes random world crashes (reported by @Shifty | Quality Control Lead , GH #3064)
-- This should potentially also fix collisions randomly persisting in the world after user leaves (reported by @3x1t_5tyl3, @Sox, @Lexevo and @epicEaston197, GH #2958)
- Fixed RaycastTouchSource throwing exceptions when the hierarchy is scaled to zero, resulting it invalid raycast directions (found in a log from @xn--qm8h, GH #3063)
- Fixed collision listener components sometimes not unregistering events (found in a log from @xn--qm8h, GH #3063)
-- This fixes exception and increased resource usage due to them trying to process events that they shouldn't
- Fixed DataPreset throwing exceptions when it has null entries (found in a log from @Enverex, GH #2914)
- Fixed regression in "Bake To Static Mesh" failing to bake skinned meshes with blendshapes (reported by @kazu0617 Neos:kazu, @GonGon, GH #3059)