How are people handling camera location vs. actor location for gameplay / collision?

I’m not exactly happy with the solutions I’ve come up with for this so far, so I’m curious what other people are doing.

Basically, I have my Pawn, which contains various components, collision, etc. including the Camera that is the HMD. The problem is as I move around, that impacts the HMD (and motion controllers) but not the rest of the Actor.

Is everyone making the Camera the base of their actor, and keeping the collision (presumably rotation locked) attached to that?

Are you “snapping” the Actor transform to the camera and zeroing out the camera transform to keep it consistent?

Is there some magical function that handles all of this and I just somehow missed it in my searching?

Some people are handling it by two actors, syncing between a VR actor and a character, some are manually sweeping collision bodies.

I have two versions in my plugin that you could reference, the “simple” one zeros the camera out and applies its linear movement to the character, the “advanced” one moves the capsules physics and rendering location to the hmd and re-writes all of the character movement logic to use the offset (to maintain true roomscale).

There is no “built in” way of doing it though in engine.

Ok so at least I know I wasn’t missing something.

I’m currently using the “sweep the capsule to where it should be” method - if it passes the test I pop it, if not I leave it at the current position and fade out the player’s view (you’re in collision and so shouldn’t be there). Just wasn’t sure if there’s a more correct way to handle this… sounds like no.

Not too many other ways to handle it, you can allow interpenetration and just darken the view but it ends up having edge cases you have to handle regarding exiting on the correct side. You can go the purely physical route as well but it has its own issues to tackle.