I started an empty project and made an FPS camera from scratch. There is one problem though: When looking at my feet WHILE walking, the character slows down (slows down more then more downwards the camera faces) and when I look 180 degrees down the character can’t even walk anymore. How is that solved? The online tutorials that I found didn’t cover that.
I think you are not moving aligned to the world, you are trying to move downwards because you are looking down and not only up. Of course in this situation physics is stopping you from falling downwards.
Instead of using the control’s forward vector (which is in fact pointing downwards if you are looking down) use the pawn’s forward vector. If that doesn’t work for you, you could cross your world-aligned “up” vector and your control’s “right” vector which will give you the real forward vector.
Hope that helps
GetControlRotation already uses the pawn’s rotation instead of the actor rotation. This probably doesn’t work because of the camera setting: “Use pawn control rotation”.
This one (crossing with world-up vector) allows me to move while facing down. But disables strafing. I don’t know how to get strafing to work after crossing:
Cross to get the Forward vector, continue using “right” as your world direction for the right direction
Hey so, when you “get control rotation” break that result, then in “get forward rotation” just plug the Z into the Z (so plug yaw into yaw). Don’t just plug the rotation into the “get forward” and “get right” vectors. This solution works with both get forward vector and get right vector.
This is how I ended up making a working system. And since this post is so high on the recommended when you search for this problem I thought I would put it here.
(use the split pins thing to get the yaw isolated)