I am currently working on a VR experience for the Vive in which I need to take accurate screenshots on player input from a camera held in the player’s hand.
I attempted to do this by moving a camera actor in the world to the World Location and World Orientation of the controller, switching to it using Set View Target With Blend, taking the screenshot using the console command HighResShot, then switching back to the pawn’s Camera Manager, using a white flash to cover the transition. However, when I set the new camera actor as active, the actual rendered view was offset by the position and orientation of the HMD, which caused very bizarre results. I tried compensating for this by moving the camera actor to account for this displacement, but have been unable to find a way to make this function in all scenarios.
I’d like to know if I can disable the VR positional & orientation tracking through Blueprint, so that I can set the view to ‘this camera and exactly this camera exactly where it appears in the world’ for the split-second required to take the screenshot, after which I can reset it to behave normally again. Alternatively, I’d be happy to learn how to take a screenshot through a camera that isn’t being rendered to the screen (render to texture is too low resolution) and save it out as an external file.
Does anyone have any thoughts on how this could be accomplished?