public bool ChangeState(StableAnimationState state)
        {
            if (_isLocked)
            {
                return(false);
            }

            if (state == ActiveState && ActiveController != null)
            {
                return(false);
            }

            var newController = _stateLookup[state];

            if (ActiveController != null)
            {
                ActiveController.Disable();
            }

            if (SwitchingFromSidewaysToFrontFacingAnimation(ActiveController, newController))
            {
                ResetSkeleton();
            }

            ActiveController = newController;
            ActiveController.Enable();

            if (ActiveController.LocksStateMachine)
            {
                _isLocked = true;
            }

            ActiveState = state;

            return(true);
        }