1. Neos VR
  2. News
  3. 2021.9.9.1144 - Fix time sync issue on join, seams when splitting skinned meshes

2021.9.9.1144 - Fix time sync issue on join, seams when splitting skinned meshes

Hello everyone! Another smaller build, doing some more things for educational project, but this should have a bunch of important bugfixes!

Notably the issues with time sync should now hopefully be fixed, there was one last issue where the playback time would be offset for any new users who join the session.

I made some improvements to the unglue logic for CharacterController as well, which should improve existing behaviors and gadgets and fix some issues with older content too.

Importantly I made some improvements and fixes to the separating of avatar to parts not affected by blendshapes, fixing the cases where there would be visible seams due to lighting in the scene. If you avoided using this optmization before, it might be a good idea to try again again (I recommend doing "Bake non-driven blendshapes" then "Separate parts of mesh unaffected by blendshapes"), as it can provide a noticeable performance boost for your avatar!

[h2]New Features:[/h2]
- Reworked transition system for ScaleObjectManager
-- Added Offset transition, which applies an offset to the object during transition
-- Added Size transition as separate configuration
-- Separated Transition ranges between near and far boundaries
-- Added Exp to transition ranges, allowing to smooth in/out the transitions

[h2]Tweaks:[/h2]
- Merged latest BEPUv2 updates from source
-- This has improved Cylinder-Triangle interactions and fix for Hull-Hull interactions
- Separating skinned mesh renderer into parts affected by blendshapes and unaffected ones now properly preserves the root bone in the final setup
-- This ensures that the lighting stays the same for both meshes when using Forward rendered materials in presence of multiple lights, rather than creating visible seams (based on reports by @Kulza, @AshtonSparx, @Enverex, @Shifty | Quality Control Lead and others)
Optimizations:
- Added readonly decorators to vector, quaternion, matrix, color, bounding box and other struct type methods and properties, to prevent potential unecessary defensive copies being generated by the compiler
- Avoided reconfiguring bounds update method on every SkinnedMeshRenderer update, rather than only when it changes

[h2]Security:[/h2]
- AprilFoolsViolentExplosion will no longer run on avatars with SimpleAvatarProtection when the user doesn't have permission to use those (based on report by @Aetoriz and @あむ(Rabbuttz), Ticket #607491)

[h2]Bugfixes:[/h2]
- GitHub API now uses authorization token to fix issue where priorityIssue messages and updating of priority issues would get rate limited (based on previous report by @Lexevo and @Sox, GH #2942)
- Fixed Android builds failing (reported by @Shadow Panther [RU/EN, UTC+3], GH #2966)
- Changed unglue logic when applying forces or changing character velocity to keep Traction support but instead significantly reduce the glue force (based on reports by @TheBasementNerd (she/her), @CrowDevil I LoF Manager, and @H3BO3, GH #2978 and GH #2900)
- Increased the velocity change threshold for ungluging character controller and added compensation for the delta time (based on same issue as above)
- Fixed Context Menu flick selection pressing buttons that are disabled (reported by @Delta, GH #2979)
- Fixed BagEditor and ListEditor not unregistering events properly if modified, resulting in a potential session crash (reported by @Kulza, GH #2974)
- Fixed initial state synchronization when joining world not using the host time from the message after recent rework, resulting in playback of videos and audio to be significantly offset (based on report by @Enverex, GH #2943)
-- Also added a mechanism to properly compute the next delta time to ensure that time taken between the decoding and between the first update is accounted for, reducing possibility of another time correction being necessary a few seconds into joining the world
- Fixed regression in ChildParentAudioClipPlayer not playing sounds at all (based on report by @Earthmark, @Epsilion)
- Fixed SkinnedMeshRenderer Proxy bounds source not registering and unregistering events properly
-- This should fix Proxy bounds not working properly in some cases or lingering events after they've been removed