Quaternion solution to mouse look pitch and yaw

Yeah, I think understand what you’re saying. Even if you want to keep the local Gimbal Locks, you’ll need to implement them outside of using the AddPitchInput & AddYawInput functions. There are too many assumptions/limitations made with those functions. My suggestion:

  1. Apply all rotation logic to the Character, not the Controller (note you’ll probably want to slam the Controller rotation to be the same as the Character rotation after applying the new delta every frame, cause other systems are probably relying on that).
  2. Implement your own Gimbal Lock restrictions based on the player’s local space.