VR Movement in Real Life to In-Game

Slayemins " is locking the camera in place and manually moving the pawn with HMD movements and then moving the controllers root component backwards by the HMDs relative location on tick. This has many downsides, one of which being that it breaks anything that relies on the relative position of the HMD (IE: Chaperone component) as well as being entirely unsuited to multiplayer unless you inject the HMD movement directly into the characters saved movements or velocity (pretty bad, you can then suffer rollbacks from direct HMD movement which feels terrible). It doesn’t need to be an engine modification, the function he is modifying is virtual and you can just subclass it and re-write it locally.

It doesn’t actually require a custom override of the camera component to achieve though, you can offset it by the location instead. Jonas has been using this entirely in blueprint with velocity injection based on current max move speed and no acceleration.

Most people like MuchCharles utilize two actors and sync them up, this works for the most part, however there are specific sections of the character movement that really need overhauls for VR as they behave undesirably (wall sliding for one). Also manual rotation gets more complicated in this scenario as you will have to update both actors. However this is likely the most accessible method.

For my plugin I specifically move the visual representation and physics thread representation of the root capsule to the HMDs relative location and run all character movement logic with the offset included so that it remains a single actor and doesn’t inject HMD movement directly into character movement (they are rewound and replayed in case of collisions). This has its own downsides in that it took significant (near total) customization of the character/character movement to achieve and that there are separate “world locations” for the character, the root and the VR location (although that retains Epics desired relative offset workflow). I also use the direct driving solution as an alternative option but have started suggesting that people not use that character if possible.

There is no perfect fix, for single player the direct character driving by HMD is likely fine, for multiplayer it gets more complicated. You are working with a small space in a large world problem with roomscale.