Move common animation logic to BaseCharacterController