How to keep reticle pointing at same place during FOV change

Hello, hopefully someone can help out, this is bending my mind a little bit.

I’m making an FPS game, have a few bits set up already including a reticle. This is positioned lower than half way down the screen to give a better feel, however, this is becoming a problem now that i want to zoom for long range weapons.

I am trying to zoom by affecting the camera FOV as it also comes with a nice reduction in peripheral vision, problem is, when i switch the FOV I am now looking at a different spot (i believe the centre of the viewport is looking at the same place but due to my reticle being offset, that is now looking too high).

Does anyone out there have some handy tips/math for adjusting the camera pitch by the right amount?

I guess really I’m after a way to make the camera look at something but with an offset to a point on the screen. I think if it comes to it i’d rather have zoom and have the reticle centre screen but i’m a big fan of the way it makes it feel so i’d like to keep it if possible.

Here’s the view pre-zoom:

Here’s the view after zoom:

I’d like to adjust the position during the zoom so that the reticle stays on the dummy’s head.

Any help would be awesome.

Since you are changing the FOV and your reticle is not centered it is always going to move like this. If the FOV change is constant, then you can just adjust the reticle position in your widget until it is correct when zoomed in. Now you have your original and your zoomed in positions. When you switch FOVs send a message you widget blueprint to switch positions as well, then when you zoom back out you switch back. If the zooming is animated you can use a widget animation to make the switching smooth as well.