True first person: Head snapping on turn; Turning on spot

I’m currently working on a true first person setup but run into some problems.
I want, when the player stands still and moves his mouse, that the feet does not move, only his upper body.
This could be achieved easily with an aim offset and the option Use Controll Rotaion Yaw deactivated.

The camera (and therefore the head) is pointing at the controller direction (Control Rotation) through the aim offset and the entire actor is pointing at the feet direction (so when moving forward in the direction of movement and when moving backwards in the opposite direction of movement).
I’m also not using a blendspace for moving, because there is only one animation for moving sideways in each direction so when moving at the front left (W + A key) or to the back right (S + D key) it would blend a forward with a backwards moving animation which looks awfull. So I only use one forward moving and one backwards moving animation.

Here is my main problem at the moment:
When you move 90° degrees in one direction (A or D ke) and then move in the opposite direction, the character needs to turn 180°. When doing so with the functions RInterp To (Speed 7.5) and SetActorRotation the head is snapping for shortly (= moving very fast back and forth for a short time).

Questions:

  1. Why is this happening and how to avoid it? When turning, the actor is rotated and at the same time the aim offset is applied, too, to keep the head pointing at the right direction.
  2. Is this setup optimal at all or is there a better solution for a true first person setup? To use an aim offset for yaw I need to uncheck Use Controll Rotaion Yaw or otherwise I would need to counter rotate the mesh (or animation) when standing still.
  3. In which direction should the actor point? Direction of movement or control rotation?
  4. When making a 180° turn, how can I specify in which direction I want to turn?

What works best for me is seperating the torso from the legs.
For the upper body I use an animator with lots of IK and Procedural animations to support different weapons and so on.
For the lower body I use a fully animated body with root motion. So the feet always connect perfectly.
2D Blendspace for 8 Directions + Custom Turn in Place and Stopping Animations.

With a system like that I usually dont end up in a situation where I have to manually turn the root.
Also It works pretty well in multiplayer bc you already have the full body animation set up half way.

  • I have it enabled
  • For Basic Movement I use Direction and Speed
  • And I dont recommend using mixamo animations. No IK and no Root bone. There are workarounds but its not optimal. If you dont have access to custom animations, you might want to have a look at the paragon assets. there are lots of good animations
  • Do you have Use Control Rotation Yaw enabled or disabled?
  • What are the two axis for the blendspace? Direction and speed?
  • Splitting the animations in upper and lower body is a good idea. That way I might be able to use the animation from Mixamo with the default ones.
  • Why is it important, that animations have a root and IK bones? Do you need extra IK bones for any form of IK?
  • Regarding the Paragon animations: So it is possible to blend two different animations together, for example a leg animation from Paragon and a weapon holding animation from the animation pack?
  • I had used a 2D blendspace with direction and speed, however the problem was, that it wouldn’t blend the speed proportional: At 0 speed I had an idle animation and at 270 speed a walk animation. However the animation at 270 speed would not play at it’s normal rate, but slower…