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; }
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); }
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; }
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; }
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; }