smooth animation transitions with AnimationState