NDisplay and DeprojectMousePositionToWorld

I am currently running into an odd issue. Currently, I am attempting to deproject the mouse into the world while running an ndisplay configuration.

If I perform this with a normal game engine run, this deprojection is perfectly aligned to the world. But, when I run for ndisplay, this deprojection is returning values that don’t align with the viewport I am looking into.

For example, I have a 2 node cluster with 2 standard displays on each node. Their geometry is that the two middle monitors are touching in the middle of the ndisplay configuration, each with a 15 degree offset, turning inward towards the user. The next two screens are again turned 15 degrees inward at the outer edge of each inner display. This creates a geometry that should give a 180 degree field of view within the world.

Currently, I have a camera actor tied to the player (different from the default player camera). When the mouse moves, I move this camera to match the direction, in the world, the mouse is facing. This allows the player to move this camera actor via mouse. I also project a debug line to confirm it’s correct.

The problem is as I move my mouse on the screen, with the above nDisplay setup, the camera rotates at different speeds than the mouse is moving across the screen. This causes misalignment.

From what I can tell, via math and empirical analysis, it feels like to me DeprojectMousePostitonToWorld is working as if you are moving the mouse across the nDisplay geometry instead of deprojecting into the world as per a normal run.

I attempting to find functions that can take the nDisplay geometry into account for this movement so I can get them realigned. There are several DisplayClusterRootActor functions that “look” like they would do what I want, like ::GetFlushPositionAndNormal but this seems to return a normal against the geometry in the direction of the passed world vector and the nDisplay common viewport (only 1 for us). I need a vector of the mouse projected into the world, taking into account the ndisplay geometry, so I can use this value to assign a rotation to another actor in the exact same position.

Any ideas, help, or suggestions would be greatly appreciated!