VR Expansion Plugin

I am working in UE5.1 and trying to get teleportation to work.
Currently everything works great while testing in-engine as a single player. However when packaging the application and joining a session as a client the ‘Perform Move Action Teleport’ node does not seem to do anything.

‘Perform Move Action Snap Turn’ and ‘Add Movement Input’ both work just fine and the movement is also being replicated to the other client/server. Due to I am not sure what the problem is.

Are you calling it on the server side? Teleport move action should be called on the client side.

Also are you sure its that node and not that you didn’t turn on client side navigation mesh generation and the actual teleport implementation is failing to find a valid surface?

It turned out to be the client side navigation mesh, thank you very much for the quick reply!

And in general, thanks for the great work on the plugin.

Hi there,

Great plugin! Awesome to see so many examples of the capabilities of VR showcased in one place.

I’m currently working with the Vive Focus 3 in UE5.1 and I’m looking into implementing hand gestures. I have two questions:

  1. I got the GraspingHandManny to correspond to my hand gestures but there’s a rotational and positional offset. In the image below is GraspingHandManny compared to what I’m getting from OpenXRHandTracking in purple (which is correct). Exactly where could I adjust

  2. Is there somewhere an example of a more minimal setup to what I’m trying to achieve? I’m honestly kinda lost in the GraspingHandManny blueprint

I think that a new version of the plugin is prob happening because 5.1.1 dropped last week
On the discord he said there were still some issues with the grasp.
But I think they are probably focused on a version for the 5.1.1 patch atm

1 Like

The manny hand is attached to the motion controller and the provided pose for the motion controller in hand tracking mode is not the same as the hand trackings actual location. You would want to adjust the meshes actual relative offset to the motion controller, or manually position the mesh to the hand tracking information by setting its world location.

I really don’t get why they didn’t standardize hand tracking to their “universal tracking root” when tacking the extension on and passing the pose out but it is what it is for now.

You can ditch the grasping hand all together and just use a raw mesh with the OpenXRHandPoseComponent to drive them in the same BP if you want, the grasping hand does a lot of extra things.

No new version of the plugin, it already runs in 5.1.1 with no changes.

The gripping issues are with physical hands since chaos still has many skeletal mesh bugs. Normal hands work fine.

1 Like

Hi,

When I set up a Physics Lever (ie. a Lever with IsPhysicsLever=true), it seems to just become an unconstained object when I grab it. I would expect it to remain constrained, like an object with a PhysicsConstraint, on the axis of the lever.

Is there a way to set that up without using separate PhysicsConstaints?

What I want to achieve is a Lever with a child connected. When I grab the child, the lever can move along the allowed axis.

Hi,

I’m trying out the different lever modes however when I swap the lever to XY it doesn’t move. I have the same problem with the Flightstick XY however it does still yaw. I’m probably being an idiot but I’d love some help

The XY lever works find over here. Make sure you have Lever Limit set both Positive and Negative with a value >0, IsLocked=false.

1 Like

Thank you for the reply

I checked the settings and made sure they were setup like that and I still have the problem

I’ve done some more testing and I’m still stumped to what could be causing it. I’ve now downloaded and tried comparing my implementation to the example and they are the same

Edit:

I think maybe the issue is with the XY Lever using a rotator and my gripping setup sets it’s world rotation as 0,0,0? I’m going to take a closer look at the example/Raven’s tutorials to find what I’ve missed

You are gripping it with an empty transform… Levers work by sampling the controllers position relative to it on initial grip and then tracking it as it changes.

You should be creating a valid transform of the hand relative to it, if the initial point is zero’d on it then it cannot create what the initial rotation around the object would have been (as it is dead center on it, there is no possible rotation around it).

T.L.D.R: You need to properly implement the GripObjectByInterface function

1 Like

Ah okay, thank you for the help. I’ll try that later

Still struggling with one. Attached an example (works in the VRExpPluginExample project). Why is my lever completely ‘loose’ when I grab it?

Test.uasset (28.7 KB)

Hi, I tried to drive the example sedan. I can drive forward, but after I pulled the throttle lever backward, the sedan stopped and I can not drive any more. And the red button in the center does not work at all.
Did I miss any settings? Sorry if is a stupid question.

I’m pretty sure I replied to your previous message, the physics lever is incapable of supporting the full feature set of the current lever so I removed support for it. (I did forget to remove the boolean to turn it on, i’ll do that week).

If you want a simple physics lever just constrain a grippable static mesh component to something and sample the constraint angle. Which is also part of why I didn’t feel it was required to try and bake the physicality into the logical lever anymore.

The new chaos vehicles required some tweaks and I might have to alter how the lever sends in the data for reverse.

I thought it was already fixed (it is for the FPS testing) but I will double check, don’t know if you are on an older build or not.

The start button doesn’t really have a use for these cars as I am not changing gears.

Edit, actually I did miss a difference with the chaos vehicles on the VR side, I just uploaded a correction that fixes it.

Ah well… that would explain it :slight_smile:

Anyway… The reason I’m looking for , is that regular physics constraints are tricky to work with when you want to make things modular (like in your door example, you need a Child Actor setup). But it can be done, for sure. And it’s somehow on the edge of VR scope so I can see why you’d want to remove it.

I didn’t see your reply… But thank you for one!

Yeah for things like levers its just so simple to handle that its kind of best left up to the end user, the plugin handles all of the gripping for that and the constraint handles all of the limits.

The door is a child actor for only one reason, only root components replicate position correctly with physics and I didn’t want it to be two actors (the frame and then the door). Technically it could probably have been hacked together by using a scene comp to seperate the frame from the door and have the frame be a child component in the doors actor.

However I did make that thing a long time ago, its on my TODO to go back over the setup with chaos out now.