Hey DVSN,
What you’re seeing is a result of Get Forward Vector being connected to Get Control Rotation. If you open up MyCharacter Blueprint, you can see what I’m talking about; InputAxis MoveForward node is attached to Add Movement Input node, which in turn grabs forward vector according to Pawn’s rotation. problem is that when player aims down or up, forward vector is not aligned with x axis (as Get Right Vector is, as you already pointed out).
To left of Movement Input section of MyCharacter Blueprint is Mouse Input section. InputAxis LookUp node is attached to Add Controller Pitch Input. problem with that is we don’t want to rotate entire Pawn because that adjusts our forward movement. Rather, we just want camera and arms mesh component to rotate.
So how do you adjust this? Let’s disconnect InputAxis LookUp node from Add Controller Pitch Input. Then, set up following:
What we’re doing here is setting relative rotation of a component of pawn instead of whole pawn. In your Components tab, attach your FirstPersonCamera component to Mesh1P, and attach Mesh1P to Mesh.
Now when you move mouse up and down, you’re just rotating arms mesh and camera component. rest of nodes we’re using are clamping rotation so you can only look up and down to desired degree. Let me know if you have any specific questions on how this is working.