VR Expansion Plugin

Likely final list of changes prior to 5.4 coming out (I assume it will be soon)


1 Like

Hello @mordentral

We’re having an issue getting the velocity of the client player.

Our game is multiplayer and LBE, so no movement done with input, only with real physical movement.
We are trying to get the velocity of that movement to drive the animations on the client.
Currently, we get the component velocity of the replicated camera of the vr character. This however returns a valid velocity on one frame, but then a zero velocity and the 2 next frames.

Due to that, our animation looks jittery and buggy.
Is there something we’re missing? Is this a known thing?

Thanks in advance for your time.

You are likely hitting a smoothing stop where its waiting for network updates. I don’t know what smoothing you have set on the camera but if its fast enough that it outpaces the network sends then it won’t have any velocity between updates.

You may want to use a running average on the velocity output.

1 Like

Thanks! Doing that worked for me :smiley:

@mordentral Please tell me.
I don’t need physical hands, I don’t need physical weapons, but I need the weapon to not go through the wall and when trying to cross the wall it pushes the hand in the opposite direction. What settings should I use? The behavior of AttachmentGrip suits me (in terms of the fact that the weapon does not twitch in the hands when moving), but the weapon passes through the wall. The InteractiveHybridCollisionWithSweep mode also means that the weapon in your hands does not twitch when moving, but when it comes into contact with a wall, the hand begins to twitch strongly and the weapon moves in and out of the wall. Maybe there are some other settings or modes?

You just need to balance the grip stiffness / damping better for the object you have.

In your case I would use InteractiveHybridWithSweep and just lower the grip stiffness / raise its damping until you get to the behavior you like. You would likely also be better off turning on advanced physics settings and setting the MaxForceCoefficient to 1.0 so that the constraint never gets stronger than your set stiffness.

Playing around with those should get you right to the behavior you are looking for.

1 Like

Master branch on plugin is converted to 5.4
Patch notes here: 5.4 Patch Notes – VR Expansion Plugin

Binaries will be uploaded later today

1 Like

Good afternoon! Please help me solve a problem. I am using hands with physics simulation enabled, and when I use a snap turn, the hands move smoothly into place with a delay instead of teleporting instantly. How can I fix this? I’m using the pawn from the example project. Everything works fine in the example project, but I must have changed something in the settings and can’t figure out what.

Set the snap turn node to flag the character as teleported and the hands will also teleport with it.

Hello. I recently installed the plugin and am currently trying to figure it out. Stupid question, how to set up capsule collisions in VRcharacter so that you can bend over the table without moving away from it?

ps: Maybe must i need dynamically change the height of the capsule?

There is a walking collision override option that lets you set different collision profiles for when roomscale locomoting vs actual driven locomotion. That is generally the way to go, you can clip into the table like that but it won’t let you actually driven locomote through it. I don’t have seperate head only collision setup with the character class as its not super clean to implement with rollback due to the hmd having to be client driven.

I’m migrating my project from version 4.27 to version 5.4.1 and have encountered numerous issues, but that’s not the main point right now. In UE5, the physical connections, including the behavior of physical hands, are not working well at all! Even in the demonstration project of your plugin, after using a snap turn (e.g., 45 degrees), the hands start behaving strangely. For example, the hand physics go to sleep and only activate when the distance between the controller and the physical hand reaches a certain point. What’s happening with the physics? Maybe I’m doing something wrong, but it doesn’t even work properly in the clean example project you provide. How can I make the physical hands work correctly?

Thanks for the answer, I understand.

The latest example project should have that fixed, but in short, epic broke a lot of things regarding the constraints and skeletal meshes have been constraint / attachment bugged since 5.0. For snap turn the “mark character teleport” flag needs to be on for now to avoid the hands having issues as it will re-sync them.

Chaos has at least a dozen skeletal mesh related attachment and constraint bugs that I am aware of, many of which I have reported and have been pushed off for 3 engine versions now.

You can’t just take a 4.27 project and upgrade it without porting a bunch of workarounds to work around chaos’s issues that I had to add to the blueprints for those hands (as they aren’t part of the actual plugin the changes are in the BPs, I place such fixes inside of a red comment box).

I have ported what few fixes I could to the base class that I am using for the hands, but at some point most of them are outside of the scope of a plugin and I can’t get into the private functions / deeply nested classes to override / fix the issues without engine source edits.

Just kind of is what it is until Epic takes the time to have someone sit down and correct the bugs cropping up.

For your porting reference, in UE5 so far I have had to:

  1. Turn off the physical hand collision when attached (or the held objects collision is malformed).

  2. Stop directly attaching the hand and use a proxy attachment instead to workound another bug with the physics transform and skeletal mesh.

  3. Delay a tick everywhere that the hands detach / attach to something before adding a constraint / changing simulation state as otherwise the changes are enacted on the wrong body instance.

  4. (relevant for UE4 to 5 conversions) Entirely re-weight and re-balance the constraints as chaos’s translation scalers from physx to chaos are very far off on the damping side of things.

If you were to use constraints only to hold the hands to the object and drop the attachment it may work better right up until 5.4, unknown in 5.4 since they broke constraints so badly in it.


First of all, I want to thank you for your work!!! The problem with hand teleportation seems to be resolved, but now I can’t understand why when I use HandSocket for custom grasping, even in the example project , the left hand works incorrectly. Can this be fixed somehow? Also, if you don’t move your hand for a second and keep it still, the physical hands go to sleep and wake up only when there’s a large distance between the controller and them, and they teleport back to place. Once again, I want to thank you for your tremendous work!

Not sure why your hands are going to sleep but you can alter the sleep threshold on them to keep them awake. I haven’t seen that issue since 5.0 where constraints didn’t wake up physical bodies.

The left hand works correctly in the example project, you must be using the wrong flip axis? Not sure what you mean there.