Changing gain on camera position in VR with HTC Vive


I am using HTC Vive Pro Eye with SteamVR in Unreal Engine 4.23.

Everything works so far.

Now, I need to change the speed gain along the Y axis in VR.

I mean, if the person walks let say 1 m in the room along the Y axis, he would experience in VR, a translation of let say 1.2 m.

I tried to implement it changing the scale of the transform on an inherited PlayerCamaraManager subclass, but it does not seem to work.

I wonder if that would be possible to do under blueprint without having to modify the SteamVr plugin ?

I can always capture the camera position and then translate the scene by a factor a 0.2 and it would work, but it creates a latency. It has to be done inside a PlayerCameraManager, a PlayerPawn or something like that.

Maybe should I create a MotionController capturing the HMD and attach a camera to it in a PlayerPawn ?

Regards !


From the VR template, I modified the scaling of the VROrigin node in the HMDLocomotionPawn.

It does almost what I wanted, but I want the scaling of optic flow to happen in the direction of the forware vector, not in the coordinate system of the room.

I need the scaling to be applied only in the direction of the forward vector.

How could I achieve this by only modifying the scene graph of of the class ?

I know if I do it inside the eventgraph, it will cause a delay.

By just modifying only the scene graph, everything happens in the GPU and it is much faster.