VR Expansion Plugin

That is because it is storing its current state so that it can handle lerping and resting positions and the over depth past the click depth.

You need to make sure to SetButtonState as well so it knows its new position. That being said, you can SetButtonState with bSnapIntoPosition as False and it will lerp itself into the new state for you so that you don’t need to manually do it.

I’m not sure if I didn’t explain myself well or if I just don’t understand… but having looked at the code I believe the reason I was getting what I was is that I was animating the relative transform of the button component to its parent so the buttons *I**nitialRelativeTransform *was no longer correct when the button was pressed. There was a panel you stand on which triggered moving the button up from the floor to hip height and also setting its opacity. So I don’t believe I could have resolved my issue using SetButtonState. I think I could have called ResetInitialLocation or probably better to have childed the button component to a scene component and altered the transform of the scene component instead.

I can’t remember if I read somewhere that you actually said to not alter the relative transform of the buttoncomponent itself and to move a parent around if you wanted to move it now I come to think about it…

Ohhh, yeah the way you wrote it, it sounded like you were trying to reset the button, not move its entire location. When finished moving it, ResetInitialLocation will make the current location its “base” location (unpressed), then you can SetButtonState to your preferred state. Also moving a scene component parent of its will work as well and not require you to use any special logic, so it may be preferrable.

Hi Mordentral,
I’ve been noticing some problems with using a remote grip by way of the custom pivot components in multiplayer. I set it up as you did in your video using the built in laser to set the location of the grip component. I also added thumb stick control so it can push or pull the actor away from you. My problem is that the client’s offset grips never seem to update on the server.

Example: I grab object on client 20 feet away using laser beam. Client is fine, but on the server it teleports to the hand. Also the thumbstick setting the grip component location just doesn’t work on client, I can see the grip sphere move, but the actor won’t. I know you said the grip components are not replicated and I’ve tried to set it up but nothing seems to work and my blueprints are turning into spaghetti. I have a hackish way to force set the location if a client is using it, but it ruins grip functionally and seems messy.

I know this problem is probably too specific, so I totally understand if I don’t hear back. I just feel like there is a simple way to update the location of the clients grip components that I’m totally missing.

Has anyone run into this horrid stuttering issue in the hmd? it seems to happen if the world scale is anything but 100.0.
Cant find whats doing it, all the transforms of the pawn and components are not actually changing from the stutter
video link:

You need to set the pivots on all clients / the server, you also need to replicate that you are moving the custom pivots. The pivot can be ANYTHING so I can’t really replicate that for you, and replication in engine is one way, server-down.

You need to tell the server that the client moved the pivot (or move it on the server and let it movement replicate down to the clients). Right now you are just moving it on the owning client only and it is staying in the same spot on everyone else.

Is that in multiplayer and did you not change world scale on the server as well? Because the CMC would report incorrect locations then.

no it wasnt multiplayer, it seems to be related to nav mesh, if i delete the nav volume and restart the editor it gets rid of it

Thats strange, so it was performance hitching?

ROJO mentioned on the discord that play in editor is currently bugged with non 100 world scales… If you close all of the tabs, including output, find in editor…etc all of them… It should work in PIE. Are you getting that outside of PIE as well? This had worked for me when i tested it… Not sure where the bug is from but that workaround worked for me.

Thanks again, and sorry for being so daft! I thought I just needed to check the component replicates box on the component I was using as the custom pivot, but it looks like I had to get “custom pivot component” from the motion controller and set it to replicate using the “set is replicated” node in the BP. Even after that I was was getting strange behavior (held objects flashing between two points) which caused me to think it wasn’t replicating properly. When I moved the custom pivot objects to be descendants of the controllers instead of the skeletal mesh it solved the problems. My guess is it has something to do with socket locations not replicating exactly on the skeletal mesh, as I was also having problems drawing the laser beam from the hand socket location instead of the motion controller. But that is not a problem with the plugin. Thanks again and I’ll leave this here in case anyone has this problem later on and searches for it. Cheers

Tried this and it resolves the issue, thanks
havent tried it in a packaged build yet, trying to get the knuckles mappings to work in a build first

How can I get the 4.22 beta?

the master /default branches are the current live engine versions, “beta” branches are shut down on release of the version they were beta for.

Ah ok, is there any date on when the 4.22 branch will be released?

I think you misunderstood me, master IS the 4.22 branch. The day that 4.22 came out it was moved over.

ohhh yikes thank you for clarifying

Pushed a new commit to both repositories

Removed Physx and Apex dependencies, massive overhaul to the new physics interface added to the engine, prep work for Chaos physics

Path notes here:


For any reason, I can’t compile the demo to learn how to use this plugin… is there any basic blueprint to start with the movement? I have the VRcharacter inside the level and I have moved it… but I don’t know if I’m doing it the way it is supposed to do. (VRMovementReference → PerformSetRotation)

So just that little question: a best easy way to do the very basic free locomotion (left-hand X / Y (strafe), and Right-hand free turn?)

Thanks again and sorry for such an elemental question. And congrats. Seems to be something that unreal had to implement natively.

hello thanks for topic need to attach it to the vehicle with the constraint, or have it constrained to a non simulating component…