VR Expansion Plugin

So I figured it out and it works for what I need however I had a question. Im trying to add functionality where the character can bend over but the whole body doesn’t follow not sure how to set that up since all I have is the hmd and vive hand controllers. Do I need a waist motion controller? Or is there a way around that. For some reason it wont let me post the reference images. it says they are too large. Let me see if I can add them later.

You need to handle a waist estimation with the IK. Good IK systems should already have that?

Oh okay well I followed some tutorials to get me this far so not entirely sure how to get a waist estimation going.

Hi mordentral,

I noticed while using a vrbuttoncomponent that if you alter the relative transform of it at runtime when you interact with it it hops back the place it was set originally. I haven’t tested it in depth (or looked at the code) but I was animating a button using a timer to pop up only when you stand on a platform and found that when I set the transform of button component to its “down” position in blueprint viewport what I describe above would happen. But if I set it to its “up” position then override it at runtime it works as I would expect.

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.