Rolling stops at 90 degrees - Character Movement Component

I have a small problem, when using the below nodes, my character stops rotating at around 90 degrees. And the controls get a little wonky (But that’s an issue for another time).

Anyone know how to make a character rotate fully without issue?

Make sure the roll constraints on your controller are set to -180 and 180:

This seems to do it, any thoughts on how to reorient the camera once I perform the roll? It now thinks “Left” is up.

Can you post a screenshot of your yaw and pitch handling?

Sure thing

Do you want your character to roll, but not your camera? Are you using a camera spring arm?

Yes, both character and camera. It’s ship with a camera sitting behind it (3rd person). On a spring arm now.

Gotcha. Unfortunately, if you’re looking for full 6 degrees of freedom w/ a flying character (spaceship,etc.), you’re gonna have to ditch driving input through the controller (ie. using the AddControllerInput functions). Those functions all assume you’re controlling a character that can’t flip all the way around in every direction. I spent a lot of time trying to get around that, but ultimately had to set the characters rotation directly (ie. NOT the character’s controller rotation) using quaternion calculations.

Also, another bummer is I haven’t come across anyone that’s pulled that off just using blueprints. Reason being is that you need to use quaternions to calculate rotation deltas, as they can avoid Gimbal Lock issues and those math functions aren’t exposed in blueprints.

IMHO, with the amount of people wanting to create games w/ flying ships in UE4, there should be better support outside of code…but for now, I think you’ll need to get in code to implement this.

Not really going to ditch anything. Rotation works great, it’s just the camera that seems misaligned. I’ve got things setup so I can make changes via code now.

Right…well, if you don’t want 6DoF and you just want your yaw/pitch input to work properly once you rotate roll, you’ll have to translate your input to account for that roll. One of the things about AddControllerInput is it assumes yaw is always left/right and pitch is always up/down on the world horizon…not the local player horizon.

I’ll make a separate question addressing this issue.