Problematic perspective issues on 3d skeleton to render 2d graphics. Help!

I am using a 3d skeleton to render 2d graphics,

my setup is as follows, I have an upright skeleton and i am creating quads to display sprites in each part of the skeleton.

The camera is a perspective camera, pointing in a top down perspective at 45º towards the character. So far so good:

the problem arises now when there is movement of raising the arm in the direction of the camera. Since the camera is angled at 45º, when the arm is raised, it will appear to stretch down during the movement, a very awkward visual. The problem seems to lie on the position of the bone itself, the perspective does cause the hand bone to go to a “lower screen position” when animating the arm to go up

here is a more detailed diagram of the issue:

I could just fake the animation, and rotate the arm further up so that it would give me the look I need, BUT

that would mess with the animation when viewed from other angles, as you see when viewed from the side, the arm displays as intended, even with the 45º topdown view, since the major distortion only happens when the transformation occurs towards the direction of the camera

I dont know how I can solve this and I would appreciate any advice. Thanks!

I mean, this is just foreshortening as would be expected. Outside of modifying the art assets or animations as you mentioned there really is nothing that can be done about it. That’s just how our three-dimensional universe works. You could try playing with the FoV of the camera - increasing or reducing the strength of the perspective might give a more aesthetic result you are after.

I’d also suggest just leaving it for a time and considering if it really is even that bad. It’s probably just odd since you are seeing it for the first time and it’s not what you expected. If it still seems off then modifying your pose or the perspective is probably the best way to ‘fix’ it.

it looks the same with any field of view,

But I understand what you mean, I will keep going with the assumption that this is what its supposed to look like and see if when the system is more dynamic it still feels wrong