public JsonAnimator(Animator animator_, ResourceMapper resMap)
        {
            animator = animator_;
            if (!animator_)
            {
                throw new System.ArgumentNullException("animator_");
            }
            name       = animator.name;
            skeletonId = resMap.skelRegistry.registerSkeleton(animator.transform, true);

            //var skel = resMap.getSkeletonById(skeletonId);
            var skelTransform = resMap.skelRegistry.getSkeletonTransformById(skeletonId);
            //var root = PrefabUtility.FindPrefabRoot(skelTransform.gameObject);

            //var meshKey = new MeshStorageKey(
            var skinRends = animator.GetComponentsInChildren <SkinnedMeshRenderer>();

            skinMeshIds = skinRends.Select((arg) => resMap.getOrRegMeshId(arg, skelTransform)).ToList();

            var runtimeAnimator = animator.runtimeAnimatorController;
            var editorAnimator  = runtimeAnimator as UnityEditor.Animations.AnimatorController;

            animatorControllerId = resMap.getAnimatorControllerId(editorAnimator, animator);

            humanBones = gatherHumanBones(animator);
        }