public SmplContainer(GameObject container, StickContainer stickSkeleton) { SubContainerObject = container; stickContainer = stickSkeleton; GameObject smpl_male = SubContainerObject.transform.Find("SMPL_m_unityDoubleBlends_lbs_10_scale5_207_v1.0.0").gameObject; animator = smpl_male.GetComponent <Animator>(); CharacterRootTransform = smpl_male.transform.Find("m_avg_root"); absoluteOffsetMap = RiggingUtils.CreateOffsetMap(animator, CharacterRootTransform); }
public void MovePerson(PoseData joint_data_list) { // Remove mirroring before applying pose and readd it afterwards // Necesary because MoveRiggedAvatar function works in global coordinates Vector3 prevScale = SubContainerObject.transform.localScale; SubContainerObject.transform.localScale = new Vector3(Math.Abs(prevScale.x), prevScale.y, prevScale.z); RiggingUtils.MoveRiggedAvatar(animator, absoluteOffsetMap, joint_data_list, CharacterRootTransform, OffsetY, OffsetZ); SubContainerObject.transform.localScale = prevScale; }
public RobotContainer(GameObject container, StickContainer stickSkeleton) { SubContainerObject = container; stickContainer = stickSkeleton; GameObject robotKyle = SubContainerObject.transform.Find("Robot Kyle").gameObject; CharacterRootTransform = robotKyle.transform; animator = robotKyle.GetComponent <Animator>(); absoluteOffsetMap = RiggingUtils.CreateOffsetMap(animator, CharacterRootTransform); }