Overriding FOV / Implementing Zoom in VR

Hi guys!

I’ve had an interesting problem I’ve been trying to solve.

A feature I’m working on is a binoculars feature for a game. I’m using the FOV to do the zooming in and out by overriding the cameramanager class and manipulating the FOV (with a multiplier) while the binoculars are active.

However, in LocalPlayer (after the FOV has been calculated), the FOV is completely replaced if a headset is present. I get why this happens, the FOV of the headset should be gospel, but there are situations where this may need to be overriden. Because the value is entirely replaced, the game mechanic just won’t work in VR at all. I’ve tried a load of different ways of implementing this, but it’s boiled down to modifying the engine itself which I want to avoid.

Anyone ever tried to do this or something similar and had any results? I’ve tried different ways without changing the FOV (like just moving the camera - going through geometry, argh!) with no luck :frowning:

I have doubts you can do it this way without making the player sick. In general seems a challenging thing to do in VR. I guess the only correct way would be to move the binoculars up to the camera and have the player actually look through the lenses with a zoomed view rendered into them, maybe render to texture or something?