4.Misc Fixes and Changes - 03/05/2021
List of compiled changes since last update
*Special note*: As of 4.26.1 the engine finally has resolved the majority of the Instanced UObject bugs. This means that grip scripts are finally about as stable as I wanted them to be with far less (or no) workflow issues.
It also fixed inclusive nativization of the example templates BPs.
Plugin Changes:
Added new controller event “OnGripTransform Changed” as the first step towards looking into looking at some hand friendly interface changes.
Changed seated mode to not require a parent component when standing, that requirement was legacy with the old seated setup and is no longer needed. The examples all filled it in anyway so it was never noticed.
Changed the hit detection in the MeleeGripScript to be more accurate using a local space bounding box instead of world space.
Added a patchwork fix around a strange engine issue where client auth throwing would never fully resolve with some specific replication settings on an object.
Fixed velocity injection being wrong in several movement modes. This is an important change for games using falling (or jumping) heavily.
Fixed a weird issue with deny walking off ledges sometimes failing a static floor check and falling off.
Corrected Exponential smoothing on the character movement component to work correctly at all times now. It is now default turned on.
Added a bDisableSimulatedTickWhenSmoothingMovement boolean to the character movement component. Will skip the local movement estimation when smoothing is enabled, this is now default turned on. This was made as most VR pawns have no speed accell / decell and it was very noticeable when the estimated position was projected forward but the client received a notice that movement had stopped (thus having to “rewind” position back again. This acceleration difference over FPS pawns just made that character feature not work as well.
Fixed the simpleVRcharacter using an incomplete replication class and not working correctly in multiplayer. The port to the new movement replication in 4.26 was incomplete on the simple char and I forgot to go back and finish it.
Fixed the VRButton to use a different world time retrieval function so that when the game is paused the (minimum toggle time) would continue to function correctly.
Added a new OptionalRepSkeletalMeshActor, whose sole purpose currently is to be used with the templates grasping hands (and objects like them). It overrides the base classes replication so that it retains initial location and attachment replication but ignores past that. Letting the hands be replicated and in level and simulating but locally controlled on all ends.
Added GetCurrentNavigationPathPoints function to the VRBaseCharacter per a users request. If a navigation operation is active it spits out the current path that the pawn is following.
Fixed the VRCapsules rendering so that it displays correctly in more situations (simulating physics, ect).
Fixed an offset in the VRStereoWidgetComponent.
Template Changes:
Set the template example character to deny swimming during seated mode so that entering a physics volume can’t unseat it.
Added an example throw switch lever in the example template that utilizes two grips to follow a master rotation unlocked hand attachment and still move the lever. This is a quick and dirty hack to free an axis of the grasping hand.
Fixed physical grasping hands in multiplayer
Added a gameplay tag that when on an object will have the grasping hands ignore attachment to it.