VR Expansion Plugin

The PRA doesn’t need a relative transform from the camera, the PRA is intended to be a proxy camera that you can set things relative to instead, it also does’t need sockets, you can store direct relative transforms to it instead or just a plain scene component if you want an object to pull a location from.

For example, if you add a holster at X:100 Y:0 Z:0 on the PRA it will float 100 units in front of you at all times. If you want to lerp something into place without problems when rotating then attach it on release to the PRA, and lerp it over time to the holster location IN RELATIVE SPACE not world space, that way it still rotates with you so you can’t just spin in circles to prevent it ever reaching its target (Lerp from current relative location to holsters relative location).

If your location is different when de-taching then you need to consider world space when moving the object to the hand, as soon as you detach the object it is no longer in relative space to the PRA but to either its new parent or the world so if you are using a stored variable then it is wrong, so either lerp to the hand in world space, or convert the location prior to detach to relative to the skeletal meshes new parent and lerp in there or do like the above and lerp it in relative space to the PRA and only once it is within a radius of your intended location do you attach it to the new parent (probably best for the same reasons as above, handles body rotation better, lerp from current relative position to controllers WorldTransform.GetRelativeTransform(PRA->ComponentTransform)).

The problem isn’t the PRA’s behavior, you appear to be thinking about how to achieve your desired effect slightly incorrectly.