Hello, Sarchasm,
If I understand right, I had a similar problem to yours: Getting 3D coordinates from screen space but at an arbitrary distance from the camera and represented as a plane instead of a distorted segment of a sphere, ie correcting the camera perspective. You might think of it as the inverse problem to yours. After a few misguided attempts I think I found an answer.
If you had a plane that intersected the position of your player pawn and was perpendicular to the forward vector to the camera, you would like to get the 3D coordinates corresponding to the perceived touch position, but on that plane, correct? Then you would have the distance from your pawn to the point of that plane where you appeared to touch.
If you try Deproject Screen to World you will see that it gives you a range of 3D coordinates that represent a plane at 10 unreal units ahead of the camera. And you also get a World Direction vector, that you can multiply by a distance and add to the world position, to get a 3D coordinate that corresponds to the 2D point but a certain distance ahead. The problem is that if you trace that and see it in one of the ortographic cameras you will notice that you are no longer getting a plane, but a curve or a sphere, varying on depth depending on where you are in 2D relative to the center of the screen. That is because the World Direction is calculated from the position of the camera to the position of the 2D projected point, and the distance is fixed and not compensating that.
What I found is you can intersect that trace with a Line Plane Intersection (the plane easily represented as an origin & normal). The Plane Origin would be your pawn position, and the plane normal would be the camera’s forward vector multiplied by -1.
The distance by which you want to multiply the World Direction will need to be larger than the distance from the pawn to the camera. You can get that vector length and you multiply it by two, so that your line will always be able to reach the plane.
Then, on the Line Plane Intersection you can use the camera’s position as the line start and the deprojected coordinate as the line end. You will now get an intersection point corresponding and limited to that plane where your pawn is located. You can test that by tracing from the camera to the intersection point. You will notice that you now get a plane corresponding to the visible pixels of the screen but at an arbitrary distance, instead of a sphere.
Subtract the intersection point and the pawn’s position, and the length of the resulting vector is the distance you want.
Here are my blueprints:
Here, assume that the var Distance from Camera is the distance from your pawn to the camera, on the axis corresponding to the forward vector of the camera.
This is the result of trace of all the possible coordinates viewed trough an orthographic camera. You will notice that i am now getting a nice plane with no camera distortion.