3.Initial 5.1 Patch Notes
OpenXR Expansion has been updated to use a new setup for aligning (mapping) hand tracking to skeletal meshes. It should by default work with both the UE4 skeleton and the new UE5 manny skeleton. The steamVR example hands unfortunately don’t follow skeletal bone orientation conventions and still need an addition transform. New default skeletal mappings are available for UE4 and UE5 skeletons.
Also for OpenXR the hand tracking component has a beta finger curl infer which always runs and fills out an array of curl values in the skeletal data. (I still need to set this up like the openVR tracking comp and have it be able to replicate and smooth just the curls).
AISense_SightVR has been updated to the new code base that Epic has created. It will need live testing to ensure its not broken (IE: please tell me if something broke).
Collision Ignore subsystem has had multiple backend fixes and improvements. It also has an alternative pathway to use contact modification to ignore hits which can be turned on in project settings, (off by default, currently doesn’t work perfectly due to some issues with chaos).
Hybrid With Sweep grip mode has a new project setting available which lets you globally turn on lerping out of collisions when using it (smooth exit back to non physical grip instead of the hard snap). It comes with a small performance hit as it has to trace twice for collisions instead of once. (You can thank the Vail devs for requesting this addition).
Hybrid With Sweep also now checks if the object it is sweeping into is set to IgnoreCollision from the CollisionIgnoreSubystem. This way if you ignore collision between the held object and something else it won’t attempt to simulate to avoid penetration with it.
HandSocketComponent has a new property (FilterPostFix) which lets you set a postfix string that the hand socket will require when drawing and editing bones. The new Manny skeletal hand has both hand skeletons in it and this lets you filter out the other hands bones when working with delta poses.
Welded body driver now functions when the mesh is not simulating as well.
Added a DefaultGrippableCharacterMesh setting in VRExpansionSettings in project settings. Lets you globally replace the base class of all grippable characters skeletal meshes with your own custom override of a GrippableSkeletalMeshComponent. Should be much easier to slot in custom logic for those now.
Added bSkipLerpToHandIfHeld to VRExpansionSettings, if true the global lerp to hand setup won’t trigger if the object is already held.
Added bProjectNonSimulatingGrips option for motion controlelrs for all swept type grips (including Hybrid With Sweep) where it will move the object in two steps so that collisions with objects and pending collision checks are more accurate even with locomotion. Default to false as it is slightly more expensive.
Added ClientAuthConflictResolutionMethod to motion controllers. Is an enum that lets you set what happens when two client auth attempts arrive and conflict with each other due to ping time.
Added a Yaw limit setting for the flight stick lever mode.
Fixed a base case with 1Euro filter where the std algorithm can’t handle a 0.0f delta time.
Example Template Changes:
Example template has a WIP set of grasping hands using the new Manny hands for UE5 instead of the UE4 ones. They were intended to be implemented as the default prior to 5.1’s release but it released earlier than I expected. I will make the switch early on in 5.1.
Example has been ported over to Enhanced Input and the legacy input system has been removed.
Pickup cubes in example level have been replaced with grippable static mesh base. This is to avoid people new to the plugin trying to make all grippable by manually implementing them instead of just using a grippable base class.