State Machines historically speaking has been used in video games since forever as to the need to be able to move a 3d character in 3d space so is still around today as it simply works but not all that well if there is also a need for more complex animation requirements as movement requires as close to real time interaction but the problem is when the character has to preform two state changes at the same time.
Example: The Player is running but has to preform a reload of the weapon at the same time. The problem here is of course the moment you change the locomotion state, say from a run to a walk, the state change needed for the reload is cut off due to the change of the migration path. Bottom line there is no real efficient way of being able to switch “two” needed state changes directly with in a state machine between a locomotion state change and an action state change.
To break it down a bit more.
Locomotion requires dynamic state changes as to the movement of the player as in if the state needs to change from moving back and forwards.
Or
If a movement key is no longer being pressed the player defaults to an idle state.
An action state needs to respond to the pressing of a key once to activate the state and needs to run in full unless overridden by another action state,if allowed.
This could be a reload, a punch, casting a magic spell, or any other state change that does not require the animation used for the locomotion state.
To do this you add what is called layering, as in animation layering, and is easy enough to do using the many different layering nodes that are available in UE4 for just this purpose.
So
If you have your player moving around in the desired manner consider that part done and move on to learning the different ways you can layer in the needed action states. .