Пример #1
0
 public HandProxy(HandPool parent, Hand hand, Chirality repChirality, ModelType repType) :
     base(hand.Id, hand, repChirality, repType)
 {
     this.parent         = parent;
     this.RepChirality   = repChirality;
     this.RepType        = repType;
     this.MostRecentHand = hand;
 }
        protected virtual void OnEnable()
        {
            provider = requireComponent <LeapProvider>();
            pool     = requireComponent <HandPool>();

            provider.OnUpdateFrame += OnUpdateFrame;
            provider.OnFixedFrame  += OnFixedFrame;
        }
Пример #3
0
 public HandRepresentation(HandPool parent, Hand hand, Chirality repChirality, ModelType repType)
 {
     this.parent          = parent;
     HandID               = hand.Id;
     this.RepChirality    = repChirality;
     this.RepType         = repType;
     this.MostRecentHand  = hand;
     this.PostProcessHand = new Hand();
 }
Пример #4
0
        void AutoRigMecanim()
        {
            //Assigning these here since this component gets added and used at editor time
            AnimatorForMapping = gameObject.GetComponent <Animator>();
            HandPoolToPopulate = GameObject.FindObjectOfType <HandPool>();
            Reset();

            //Find hands and assign RiggedHands
            Transform Hand_L = AnimatorForMapping.GetBoneTransform(HumanBodyBones.LeftHand);

            if (Hand_L.GetComponent <RiggedHand>())
            {
                RiggedHand_L = Hand_L.GetComponent <RiggedHand>();
            }
            else
            {
                RiggedHand_L = Hand_L.gameObject.AddComponent <RiggedHand>();
            }
            HandTransitionBehavior_L       = Hand_L.gameObject.AddComponent <HandDrop>();
            RiggedHand_L.Handedness        = Chirality.Left;
            RiggedHand_L.SetEditorLeapPose = false;

            Transform Hand_R = AnimatorForMapping.GetBoneTransform(HumanBodyBones.RightHand);

            if (Hand_R.GetComponent <RiggedHand>())
            {
                RiggedHand_R = Hand_R.GetComponent <RiggedHand>();
            }
            else
            {
                RiggedHand_R = Hand_R.gameObject.AddComponent <RiggedHand>();
            }
            HandTransitionBehavior_R       = Hand_R.gameObject.AddComponent <HandDrop>();
            RiggedHand_R.Handedness        = Chirality.Right;
            RiggedHand_R.SetEditorLeapPose = false;

            //Find palms and assign to RiggedHands
            RiggedHand_L.palm           = AnimatorForMapping.GetBoneTransform(HumanBodyBones.LeftHand);
            RiggedHand_R.palm           = AnimatorForMapping.GetBoneTransform(HumanBodyBones.RightHand);
            RiggedHand_R.UseMetaCarpals = UseMetaCarpals;
            RiggedHand_L.UseMetaCarpals = UseMetaCarpals;

            findAndAssignRiggedFingers(UseMetaCarpals);

            RiggedHand_L.AutoRigRiggedHand(RiggedHand_L.palm, RiggedFinger_L_Pinky.transform, RiggedFinger_L_Index.transform);
            RiggedHand_R.AutoRigRiggedHand(RiggedHand_R.palm, RiggedFinger_R_Pinky.transform, RiggedFinger_R_Index.transform);
            if (ModelGroupName == "" || ModelGroupName != null)
            {
                ModelGroupName = transform.name;
            }
            HandPoolToPopulate.AddNewGroup(ModelGroupName, RiggedHand_L, RiggedHand_R);

            modelFingerPointing_L = RiggedHand_L.modelFingerPointing;
            modelPalmFacing_L     = RiggedHand_L.modelPalmFacing;
            modelFingerPointing_R = RiggedHand_R.modelFingerPointing;
            modelPalmFacing_R     = RiggedHand_R.modelPalmFacing;
        }
Пример #5
0
        private void FixModelPool()
        {
            HandPool handPool = factory as HandPool;

            for (int i = 0; i < handPool.ModelPool.Count; i++)
            {
                if (handPool.ModelPool[i].modelsCheckedOut.Count != 0)
                {
                    for (int j = 0; j < handPool.ModelPool[i].modelsCheckedOut.Count; j++)
                    {
                        IHandModel model = handPool.ModelPool[i].modelsCheckedOut[j];
                        handPool.ModelPool[i].ReturnToGroup(model);
                    }
                }
            }
        }
Пример #6
0
        public HandProxy(HandPool parent, IHandModel handModel, Hand hand) :
            base(hand.Id)
        {
            this.parent    = parent;
            this.handModel = handModel;

            // Check to see if the hand model has been initialized yet
            if (handModel.GetLeapHand() == null)
            {
                handModel.SetLeapHand(hand);
                handModel.InitHand();
            }
            else
            {
                handModel.SetLeapHand(hand);
            }
            handModel.BeginHand();
        }
Пример #7
0
 public void AutoRig() {
   HandPoolToPopulate = GameObject.FindObjectOfType<HandPool>();
   AnimatorForMapping = gameObject.GetComponent<Animator>();
   if (AnimatorForMapping != null) {
     if (AnimatorForMapping.isHuman == true) {
       AutoRigMecanim();
       RiggedHand_L.StoreJointsStartPose();
       RiggedHand_R.StoreJointsStartPose();
       return;
     }
     else {
       Debug.LogWarning("The Mecanim Avatar for this asset does not contain a valid IsHuman definition.  Attempting to auto map by name.");
     }
   }
   AutoRigByName();
   RiggedHand_L.StoreJointsStartPose();
   RiggedHand_R.StoreJointsStartPose();
 }
Пример #8
0
 public void AutoRig()
 {
     HandPoolToPopulate = GameObject.FindObjectOfType <HandPool>();
     AnimatorForMapping = gameObject.GetComponent <Animator>();
     if (AnimatorForMapping != null)
     {
         if (AnimatorForMapping.isHuman == true)
         {
             AutoRigMecanim();
             RiggedHand_L.StoreJointsStartPose();
             RiggedHand_R.StoreJointsStartPose();
             return;
         }
         else
         {
             Debug.LogWarning("The Mecanim Avatar for this asset does not contain a valid IsHuman definition.  Attempting to auto map by name.");
         }
     }
     AutoRigByName();
 }
Пример #9
0
 // Use this for initialization
 void Start () {
   HandPool = GetComponent<HandPool>();
   disableAllGroups();
   CurrentGroup = 0;
 }
Пример #10
0
        public override void UpdateHand()
        {
            //Update the spheres first
            updateSpheres();
            GameObject[] gameObjects = gameObject.scene.GetRootGameObjects();
            int          i           = 0;

            for (i = 0; i < gameObjects.Length && !gameObjects[i].ToString().StartsWith("LeapHandController"); i++)
            {
                ;
            }

            HandPool handpool = gameObjects[i].GetComponent <HandPool>();

            float differenceX = palmPositionSphere.position.x - gameObjects[i].transform.position.x + shiftX;
            float differenceY = palmPositionSphere.position.y - gameObjects[i].transform.position.y;
            float differenceZ = palmPositionSphere.position.z - gameObjects[i].transform.position.z;

            Vector3 vec = new Vector3(0, 0, 0);

            if (handpool.lockX)
            {
                vec.x = -differenceX;
            }
            else
            {
                vec.x = differenceX * 2;
            }

            if (handpool.lockY)
            {
                vec.y = -differenceY;
            }
            else
            {
                vec.y = differenceY * 2;
            }

            if (handpool.lockZ)
            {
                vec.z = -differenceZ;
            }
            else
            {
                vec.z = differenceZ * 2;
            }

            for (i = 0; i < _cylinderTransforms.Count; i++)
            {
                Transform cylinder = _cylinderTransforms[i];

                cylinder.Translate(vec);
            }

            for (i = 0; i < _serializedTransforms.Count; i++)
            {
                Transform sphere = _serializedTransforms[i];

                sphere.Translate(vec);
            }


            updateCylinders();
        }
Пример #11
0
        void AutoRigByName()
        {
            List <string> LeftHandStrings = new List <string> {
                "left"
            };
            List <string> RightHandStrings = new List <string> {
                "right"
            };

            //Assigning these here since this component gets added and used at editor time
            HandPoolToPopulate = GameObject.FindObjectOfType <HandPool>();
            Reset();

            //Find hands and assigns RiggedHands
            Transform Hand_L = null;

            foreach (Transform t in transform)
            {
                if (LeftHandStrings.Any(w => t.name.ToLower().Contains(w)))
                {
                    Hand_L = t;
                }
            }
            if (Hand_L != null)
            {
                RiggedHand_L                   = Hand_L.gameObject.AddComponent <RiggedHand>();
                HandTransitionBehavior_L       = Hand_L.gameObject.AddComponent <HandEnableDisable>();
                RiggedHand_L.Handedness        = Chirality.Left;
                RiggedHand_L.SetEditorLeapPose = false;
                RiggedHand_L.UseMetaCarpals    = UseMetaCarpals;
                RiggedHand_L.SetupRiggedHand();

                RiggedFinger_L_Thumb = (RiggedFinger)RiggedHand_L.fingers[0];
                RiggedFinger_L_Index = (RiggedFinger)RiggedHand_L.fingers[1];
                RiggedFinger_L_Mid   = (RiggedFinger)RiggedHand_L.fingers[2];
                RiggedFinger_L_Ring  = (RiggedFinger)RiggedHand_L.fingers[3];
                RiggedFinger_L_Pinky = (RiggedFinger)RiggedHand_L.fingers[4];

                modelFingerPointing_L = RiggedHand_L.modelFingerPointing;
                modelPalmFacing_L     = RiggedHand_L.modelPalmFacing;

                RiggedHand_L.StoreJointsStartPose();
            }
            Transform Hand_R = null;

            foreach (Transform t in transform)
            {
                if (RightHandStrings.Any(w => t.name.ToLower().Contains(w)))
                {
                    Hand_R = t;
                }
            }
            if (Hand_R != null)
            {
                RiggedHand_R                   = Hand_R.gameObject.AddComponent <RiggedHand>();
                HandTransitionBehavior_R       = Hand_R.gameObject.AddComponent <HandEnableDisable>();
                RiggedHand_R.Handedness        = Chirality.Right;
                RiggedHand_R.SetEditorLeapPose = false;
                RiggedHand_R.UseMetaCarpals    = UseMetaCarpals;
                RiggedHand_R.SetupRiggedHand();

                RiggedFinger_R_Thumb = (RiggedFinger)RiggedHand_R.fingers[0];
                RiggedFinger_R_Index = (RiggedFinger)RiggedHand_R.fingers[1];
                RiggedFinger_R_Mid   = (RiggedFinger)RiggedHand_R.fingers[2];
                RiggedFinger_R_Ring  = (RiggedFinger)RiggedHand_R.fingers[3];
                RiggedFinger_R_Pinky = (RiggedFinger)RiggedHand_R.fingers[4];

                modelFingerPointing_R = RiggedHand_R.modelFingerPointing;
                modelPalmFacing_R     = RiggedHand_R.modelPalmFacing;

                RiggedHand_R.StoreJointsStartPose();
            }
            //Find palms and assign to RiggedHands
            //RiggedHand_L.palm = AnimatorForMapping.GetBoneTransform(HumanBodyBones.LeftHand);
            //RiggedHand_R.palm = AnimatorForMapping.GetBoneTransform(HumanBodyBones.RightHand);

            if (ModelGroupName == "" || ModelGroupName != null)
            {
                ModelGroupName = transform.name;
            }
            HandPoolToPopulate.AddNewGroup(ModelGroupName, RiggedHand_L, RiggedHand_R);
        }
Пример #12
0
    void AutoRigByName() {
      List<string> LeftHandStrings = new List<string> { "left", "_l" };
      List<string> RightHandStrings = new List<string> { "right", "_r" };

      //Assigning these here since this component gets added and used at editor time
      HandPoolToPopulate = GameObject.FindObjectOfType<HandPool>();
      Reset();

      //Find hands and assigns RiggedHands
      Transform Hand_L = null;
      foreach (Transform t in transform) {
        if (LeftHandStrings.Any(w => t.name.ToLower().Contains(w))) {
          Hand_L = t;
        }
      }
      RiggedHand_L = Hand_L.gameObject.AddComponent<RiggedHand>();
      HandTransitionBehavior_L = Hand_L.gameObject.AddComponent<HandEnableDisable>();
      RiggedHand_L.Handedness = Chirality.Left;
      RiggedHand_L.SetEditorLeapPose = false;
      RiggedHand_L.UseMetaCarpals = UseMetaCarpals;

      Transform Hand_R = null;
      foreach (Transform t in transform) {
        if (RightHandStrings.Any(w => t.name.ToLower().Contains(w))) {
          Hand_R = t;
        }
      }
      RiggedHand_R = Hand_R.gameObject.AddComponent<RiggedHand>();
      HandTransitionBehavior_R = Hand_R.gameObject.AddComponent<HandEnableDisable>();
      RiggedHand_R.Handedness = Chirality.Right;
      RiggedHand_R.SetEditorLeapPose = false;
      RiggedHand_R.UseMetaCarpals = UseMetaCarpals;

      //Find palms and assign to RiggedHands
      //RiggedHand_L.palm = AnimatorForMapping.GetBoneTransform(HumanBodyBones.LeftHand);
      //RiggedHand_R.palm = AnimatorForMapping.GetBoneTransform(HumanBodyBones.RightHand);
      RiggedHand_L.SetupRiggedHand();
      RiggedHand_R.SetupRiggedHand();

      if (ModelGroupName == "" || ModelGroupName != null) {
        ModelGroupName = transform.name;
      }
      HandPoolToPopulate.AddNewGroup(ModelGroupName, RiggedHand_L, RiggedHand_R);

      RiggedFinger_L_Thumb = (RiggedFinger)RiggedHand_L.fingers[0];
      RiggedFinger_L_Index = (RiggedFinger)RiggedHand_L.fingers[1];
      RiggedFinger_L_Mid = (RiggedFinger)RiggedHand_L.fingers[2];
      RiggedFinger_L_Ring = (RiggedFinger)RiggedHand_L.fingers[3];
      RiggedFinger_L_Pinky = (RiggedFinger)RiggedHand_L.fingers[4];
      RiggedFinger_R_Thumb = (RiggedFinger)RiggedHand_R.fingers[0];
      RiggedFinger_R_Index = (RiggedFinger)RiggedHand_R.fingers[1];
      RiggedFinger_R_Mid = (RiggedFinger)RiggedHand_R.fingers[2];
      RiggedFinger_R_Ring = (RiggedFinger)RiggedHand_R.fingers[3];
      RiggedFinger_R_Pinky = (RiggedFinger)RiggedHand_R.fingers[4];

      modelFingerPointing_L = RiggedHand_L.modelFingerPointing;
      modelPalmFacing_L = RiggedHand_L.modelPalmFacing;
      modelFingerPointing_R = RiggedHand_R.modelFingerPointing;
      modelPalmFacing_R = RiggedHand_R.modelPalmFacing;
    }
Пример #13
0
    void AutoRigMecanim() {
      //Assigning these here since this component gets added and used at editor time
      AnimatorForMapping = gameObject.GetComponent<Animator>();
      HandPoolToPopulate = GameObject.FindObjectOfType<HandPool>();
      Reset();

      //Find hands and assign RiggedHands
      Transform Hand_L = AnimatorForMapping.GetBoneTransform(HumanBodyBones.LeftHand);
      if (Hand_L.GetComponent<RiggedHand>()) {
        RiggedHand_L = Hand_L.GetComponent<RiggedHand>();
      }
      else RiggedHand_L = Hand_L.gameObject.AddComponent<RiggedHand>();
      HandTransitionBehavior_L =Hand_L.gameObject.AddComponent<HandDrop>();
      RiggedHand_L.Handedness = Chirality.Left;
      RiggedHand_L.SetEditorLeapPose = false;

      Transform Hand_R = AnimatorForMapping.GetBoneTransform(HumanBodyBones.RightHand);
      if (Hand_R.GetComponent<RiggedHand>()) {
        RiggedHand_R = Hand_R.GetComponent<RiggedHand>();
      }
      else RiggedHand_R = Hand_R.gameObject.AddComponent<RiggedHand>();
      HandTransitionBehavior_R = Hand_R.gameObject.AddComponent<HandDrop>();
      RiggedHand_R.Handedness = Chirality.Right;
      RiggedHand_R.SetEditorLeapPose = false;

      //Find palms and assign to RiggedHands
      RiggedHand_L.palm = AnimatorForMapping.GetBoneTransform(HumanBodyBones.LeftHand);
      RiggedHand_R.palm = AnimatorForMapping.GetBoneTransform(HumanBodyBones.RightHand);

      //Find Fingers and assign RiggedFingers
      RiggedFinger_L_Thumb = AnimatorForMapping.GetBoneTransform(HumanBodyBones.LeftThumbProximal).gameObject.AddComponent<RiggedFinger>();
      RiggedFinger_L_Thumb.fingerType = Finger.FingerType.TYPE_THUMB;
      RiggedFinger_L_Index = AnimatorForMapping.GetBoneTransform(HumanBodyBones.LeftIndexProximal).gameObject.AddComponent<RiggedFinger>();
      RiggedFinger_L_Index.fingerType = Finger.FingerType.TYPE_INDEX;
      RiggedFinger_L_Mid = AnimatorForMapping.GetBoneTransform(HumanBodyBones.LeftMiddleProximal).gameObject.AddComponent<RiggedFinger>();
      RiggedFinger_L_Mid.fingerType = Finger.FingerType.TYPE_MIDDLE;
      RiggedFinger_L_Ring = AnimatorForMapping.GetBoneTransform(HumanBodyBones.LeftRingProximal).gameObject.AddComponent<RiggedFinger>();
      RiggedFinger_L_Ring.fingerType = Finger.FingerType.TYPE_RING;
      RiggedFinger_L_Pinky = AnimatorForMapping.GetBoneTransform(HumanBodyBones.LeftLittleProximal).gameObject.AddComponent<RiggedFinger>();
      RiggedFinger_L_Pinky.fingerType = Finger.FingerType.TYPE_PINKY;
      RiggedFinger_R_Thumb = AnimatorForMapping.GetBoneTransform(HumanBodyBones.RightThumbProximal).gameObject.AddComponent<RiggedFinger>();
      RiggedFinger_R_Thumb.fingerType = Finger.FingerType.TYPE_THUMB;
      RiggedFinger_R_Index = AnimatorForMapping.GetBoneTransform(HumanBodyBones.RightIndexProximal).gameObject.AddComponent<RiggedFinger>();
      RiggedFinger_R_Index.fingerType = Finger.FingerType.TYPE_INDEX;
      RiggedFinger_R_Mid = AnimatorForMapping.GetBoneTransform(HumanBodyBones.RightMiddleProximal).gameObject.AddComponent<RiggedFinger>();
      RiggedFinger_R_Mid.fingerType = Finger.FingerType.TYPE_MIDDLE;
      RiggedFinger_R_Ring = AnimatorForMapping.GetBoneTransform(HumanBodyBones.RightRingProximal).gameObject.AddComponent<RiggedFinger>();
      RiggedFinger_R_Ring.fingerType = Finger.FingerType.TYPE_RING;
      RiggedFinger_R_Pinky = AnimatorForMapping.GetBoneTransform(HumanBodyBones.RightLittleProximal).gameObject.AddComponent<RiggedFinger>();
      RiggedFinger_R_Pinky.fingerType = Finger.FingerType.TYPE_PINKY;

      RiggedHand_L.AutoRigRiggedHand(RiggedHand_L.palm, RiggedFinger_L_Pinky.transform, RiggedFinger_L_Index.transform);
      RiggedHand_R.AutoRigRiggedHand(RiggedHand_R.palm, RiggedFinger_R_Pinky.transform, RiggedFinger_R_Index.transform);
      if (ModelGroupName == "" || ModelGroupName != null) {
        ModelGroupName = transform.name;
      }
      HandPoolToPopulate.AddNewGroup(ModelGroupName, RiggedHand_L, RiggedHand_R);

      modelFingerPointing_L = RiggedHand_L.modelFingerPointing;
      modelPalmFacing_L = RiggedHand_L.modelPalmFacing;
      modelFingerPointing_R = RiggedHand_R.modelFingerPointing;
      modelPalmFacing_R = RiggedHand_R.modelPalmFacing;
    }
Пример #14
0
        void AutoRigMecanim()
        {
            //Assigning these here since this component gets added and used at editor time
            AnimatorForMapping = gameObject.GetComponent <Animator>();
            HandPoolToPopulate = GameObject.FindObjectOfType <HandPool>();
            Reset();

            //Find hands and assign RiggedHands
            Transform Hand_L = AnimatorForMapping.GetBoneTransform(HumanBodyBones.LeftHand);

            if (Hand_L.GetComponent <RiggedHand>())
            {
                RiggedHand_L = Hand_L.GetComponent <RiggedHand>();
            }
            else
            {
                RiggedHand_L = Hand_L.gameObject.AddComponent <RiggedHand>();
            }
            HandTransitionBehavior_L       = Hand_L.gameObject.AddComponent <HandDrop>();
            RiggedHand_L.Handedness        = Chirality.Left;
            RiggedHand_L.SetEditorLeapPose = false;

            Transform Hand_R = AnimatorForMapping.GetBoneTransform(HumanBodyBones.RightHand);

            if (Hand_R.GetComponent <RiggedHand>())
            {
                RiggedHand_R = Hand_R.GetComponent <RiggedHand>();
            }
            else
            {
                RiggedHand_R = Hand_R.gameObject.AddComponent <RiggedHand>();
            }
            HandTransitionBehavior_R       = Hand_R.gameObject.AddComponent <HandDrop>();
            RiggedHand_R.Handedness        = Chirality.Right;
            RiggedHand_R.SetEditorLeapPose = false;

            //Find palms and assign to RiggedHands
            RiggedHand_L.palm = AnimatorForMapping.GetBoneTransform(HumanBodyBones.LeftHand);
            RiggedHand_R.palm = AnimatorForMapping.GetBoneTransform(HumanBodyBones.RightHand);

            //Find Fingers and assign RiggedFingers
            RiggedFinger_L_Thumb            = AnimatorForMapping.GetBoneTransform(HumanBodyBones.LeftThumbProximal).gameObject.AddComponent <RiggedFinger>();
            RiggedFinger_L_Thumb.fingerType = Finger.FingerType.TYPE_THUMB;
            RiggedFinger_L_Index            = AnimatorForMapping.GetBoneTransform(HumanBodyBones.LeftIndexProximal).gameObject.AddComponent <RiggedFinger>();
            RiggedFinger_L_Index.fingerType = Finger.FingerType.TYPE_INDEX;
            RiggedFinger_L_Mid              = AnimatorForMapping.GetBoneTransform(HumanBodyBones.LeftMiddleProximal).gameObject.AddComponent <RiggedFinger>();
            RiggedFinger_L_Mid.fingerType   = Finger.FingerType.TYPE_MIDDLE;
            RiggedFinger_L_Ring             = AnimatorForMapping.GetBoneTransform(HumanBodyBones.LeftRingProximal).gameObject.AddComponent <RiggedFinger>();
            RiggedFinger_L_Ring.fingerType  = Finger.FingerType.TYPE_RING;
            RiggedFinger_L_Pinky            = AnimatorForMapping.GetBoneTransform(HumanBodyBones.LeftLittleProximal).gameObject.AddComponent <RiggedFinger>();
            RiggedFinger_L_Pinky.fingerType = Finger.FingerType.TYPE_PINKY;
            RiggedFinger_R_Thumb            = AnimatorForMapping.GetBoneTransform(HumanBodyBones.RightThumbProximal).gameObject.AddComponent <RiggedFinger>();
            RiggedFinger_R_Thumb.fingerType = Finger.FingerType.TYPE_THUMB;
            RiggedFinger_R_Index            = AnimatorForMapping.GetBoneTransform(HumanBodyBones.RightIndexProximal).gameObject.AddComponent <RiggedFinger>();
            RiggedFinger_R_Index.fingerType = Finger.FingerType.TYPE_INDEX;
            RiggedFinger_R_Mid              = AnimatorForMapping.GetBoneTransform(HumanBodyBones.RightMiddleProximal).gameObject.AddComponent <RiggedFinger>();
            RiggedFinger_R_Mid.fingerType   = Finger.FingerType.TYPE_MIDDLE;
            RiggedFinger_R_Ring             = AnimatorForMapping.GetBoneTransform(HumanBodyBones.RightRingProximal).gameObject.AddComponent <RiggedFinger>();
            RiggedFinger_R_Ring.fingerType  = Finger.FingerType.TYPE_RING;
            RiggedFinger_R_Pinky            = AnimatorForMapping.GetBoneTransform(HumanBodyBones.RightLittleProximal).gameObject.AddComponent <RiggedFinger>();
            RiggedFinger_R_Pinky.fingerType = Finger.FingerType.TYPE_PINKY;

            RiggedHand_L.AutoRigRiggedHand(RiggedHand_L.palm, RiggedFinger_L_Pinky.transform, RiggedFinger_L_Index.transform);
            RiggedHand_R.AutoRigRiggedHand(RiggedHand_R.palm, RiggedFinger_R_Pinky.transform, RiggedFinger_R_Index.transform);
            if (ModelGroupName == "" || ModelGroupName != null)
            {
                ModelGroupName = transform.name;
            }
            HandPoolToPopulate.AddNewGroup(ModelGroupName, RiggedHand_L, RiggedHand_R);

            modelFingerPointing_L = RiggedHand_L.modelFingerPointing;
            modelPalmFacing_L     = RiggedHand_L.modelPalmFacing;
            modelFingerPointing_R = RiggedHand_R.modelFingerPointing;
            modelPalmFacing_R     = RiggedHand_R.modelPalmFacing;
        }