/// <summary>
        /// This can be used to loop an animation without having to set up a state machine explicitly
        /// For a more sophisticated control use AddController()
        /// </summary>
        public void playAnimationLoop(SSSkeletalAnimation anim, float transitionTime = 0f,
                                      int[] topLevelJoints = null)
        {
            _hierarchy.verifyAnimation(anim);
            var loopSM = new SSAnimationStateMachine();

            loopSM.addState("default", anim, true);
            loopSM.addAnimationEndsTransition("default", "default", transitionTime);
            if (topLevelJoints == null)
            {
                topLevelJoints = _hierarchy.topLevelJoints;
            }
            var loopController = new SSAnimationStateMachineSkeletalController(loopSM, topLevelJoints);

            addController(loopController);
        }