public static Avatar CreateAvatar(GameObject root, UMA.UmaTPose umaTPose) { HumanDescription description = CreateHumanDescription(root, umaTPose); Avatar res = AvatarBuilder.BuildHumanAvatar(root, description); return(res); }
public static Avatar CreateAvatar(UMAData umaData, UmaTPose umaTPose) { umaTPose.DeSerialize(); HumanDescription description = CreateHumanDescription(umaData, umaTPose); //DebugLogHumanAvatar(umaData.umaRoot, description); Avatar res = AvatarBuilder.BuildHumanAvatar(umaData.umaRoot, description); return res; }
public static Animator CreateAnimator(UMAData umaData, UmaTPose umaTPose, RuntimeAnimatorController controller, bool applyRootMotion, bool animatePhysics, AnimatorCullingMode cullingMode) { var animator = CreateAnimator(umaData, umaTPose, controller); animator.applyRootMotion = applyRootMotion; animator.animatePhysics = animatePhysics; animator.cullingMode = cullingMode; return(animator); }
/// <summary> /// Creates a human (biped) avatar for a UMA character. /// </summary> /// <returns>The human avatar.</returns> /// <param name="umaData">UMA data.</param> /// <param name="umaTPose">UMA TPose.</param> public static Avatar CreateAvatar(UMAData umaData, UmaTPose umaTPose) { umaTPose.DeSerialize(); HumanDescription description = CreateHumanDescription(umaData, umaTPose); //DebugLogHumanAvatar(umaData.gameObject, description); Avatar res = AvatarBuilder.BuildHumanAvatar(umaData.gameObject, description); return(res); }
public static void CreateAnimator(GameObject root, UmaTPose umaTPose, RuntimeAnimatorController controller,bool applyRootMotion, bool animatePhysics,AnimatorCullingMode cullingMode) { umaTPose.DeSerialize(); var animator = root.AddComponent<Animator>(); animator.avatar = CreateAvatar(root, umaTPose); animator.runtimeAnimatorController = controller; animator.applyRootMotion = applyRootMotion; animator.animatePhysics = animatePhysics; animator.cullingMode = cullingMode; }
public static Animator CreateAnimator(UMAData umaData, UmaTPose umaTPose, RuntimeAnimatorController controller, bool applyRootMotion, bool animatePhysics, AnimatorCullingMode cullingMode) { umaTPose.DeSerialize(); var animator = umaData.umaRoot.AddComponent<Animator>(); animator.avatar = CreateAvatar(umaData, umaTPose); animator.runtimeAnimatorController = controller; animator.applyRootMotion = applyRootMotion; animator.animatePhysics = animatePhysics; animator.cullingMode = cullingMode; return animator; }
public static void CreateAnimator(GameObject root, UMA.UmaTPose umaTPose, RuntimeAnimatorController controller) { umaTPose.DeSerialize(); var animator = root.AddComponent <Animator>(); animator.avatar = CreateAvatar(root, umaTPose); animator.runtimeAnimatorController = controller; animator.applyRootMotion = true; // animator.animatePhysics = false; // AnimationMode. animator.cullingMode = AnimatorCullingMode.AlwaysAnimate; }
public static HumanDescription CreateHumanDescription(UMAData umaData, UmaTPose umaTPose) { var res = new HumanDescription(); res.armStretch = 0; res.feetSpacing = 0; res.legStretch = 0; res.lowerArmTwist = 0.2f; res.lowerLegTwist = 1f; res.upperArmTwist = 0.5f; res.upperLegTwist = 0.1f; res.human = umaTPose.humanInfo; res.skeleton = umaTPose.boneInfo; res.skeleton[0].name = umaData.umaRoot.name; SkeletonModifier(umaData, ref res.skeleton); return res; }
/// <summary> /// Creates a Mecanim human description for a UMA character. /// </summary> /// <returns>The human description.</returns> /// <param name="umaData">UMA data.</param> /// <param name="umaTPose">UMA TPose.</param> public static HumanDescription CreateHumanDescription(UMAData umaData, UmaTPose umaTPose) { var res = new HumanDescription(); res.armStretch = 0; res.feetSpacing = 0; res.legStretch = 0; res.lowerArmTwist = 0.2f; res.lowerLegTwist = 1f; res.upperArmTwist = 0.5f; res.upperLegTwist = 0.1f; res.skeleton = umaTPose.boneInfo; res.human = umaTPose.humanInfo; SkeletonModifier(umaData, ref res.skeleton, res.human); return(res); }
/// <summary> /// Creates a Mecanim human description for a UMA character. /// </summary> /// <returns>The human description.</returns> /// <param name="umaData">UMA data.</param> /// <param name="umaTPose">UMA TPose.</param> public static HumanDescription CreateHumanDescription(UMAData umaData, UmaTPose umaTPose) { var res = new HumanDescription(); res.armStretch = umaTPose.armStretch == 0.0f ? 0.05f : umaTPose.armStretch; // this is for compatiblity with the existing tpose. res.legStretch = umaTPose.legStretch == 0.0f ? 0.05f : umaTPose.legStretch; res.feetSpacing = umaTPose.feetSpacing; res.lowerArmTwist = umaTPose.lowerArmTwist == 0.0f ? 0.5f : umaTPose.lowerArmTwist; res.lowerLegTwist = umaTPose.lowerLegTwist == 0.0f ? 0.5f : umaTPose.lowerLegTwist; res.upperArmTwist = umaTPose.upperArmTwist == 0.0f ? 0.5f : umaTPose.upperArmTwist; res.upperLegTwist = umaTPose.upperLegTwist == 0.0f ? 0.5f : umaTPose.upperLegTwist; res.skeleton = umaTPose.boneInfo; res.human = umaTPose.humanInfo; SkeletonModifier(umaData, ref res.skeleton, res.human); return(res); }
public static HumanDescription CreateHumanDescription(GameObject root, UMA.UmaTPose umaTPose) { var res = new HumanDescription(); res.armStretch = 0; res.feetSpacing = 0; res.legStretch = 0; res.lowerArmTwist = 0.2f; res.lowerLegTwist = 1f; res.upperArmTwist = 0.5f; res.upperLegTwist = 0.1f; res.human = umaTPose.humanInfo; res.skeleton = umaTPose.boneInfo; res.skeleton[0].name = root.name; SkeletonModifier(root, ref res.skeleton); return(res); }
/// <summary> /// Creates a new animator for a UMA character. /// </summary> /// <returns>The animator.</returns> /// <param name="umaData">UMA data.</param> /// <param name="umaTPose">UMA TPose.</param> /// <param name="controller">Animation controller.</param> public static Animator CreateAnimator(UMAData umaData, UmaTPose umaTPose, RuntimeAnimatorController controller) { var animator = umaData.gameObject.AddComponent <Animator>(); switch (umaData.umaRecipe.raceData.umaTarget) { case RaceData.UMATarget.Humanoid: umaTPose.DeSerialize(); animator.avatar = CreateAvatar(umaData, umaTPose); break; case RaceData.UMATarget.Generic: animator.avatar = CreateGenericAvatar(umaData); break; } animator.runtimeAnimatorController = controller; return(animator); }
public static Animator CreateAnimator(UMAData umaData, UmaTPose umaTPose, RuntimeAnimatorController controller, bool applyRootMotion, bool animatePhysics, AnimatorCullingMode cullingMode) { var animator = umaData.umaRoot.AddComponent<Animator>(); switch (umaData.umaRecipe.raceData.umaTarget) { case RaceData.UMATarget.Humanoid: umaTPose.DeSerialize(); animator.avatar = CreateAvatar(umaData, umaTPose); break; case RaceData.UMATarget.Generic: animator.avatar = CreateGenericAvatar(umaData); break; } animator.runtimeAnimatorController = controller; animator.applyRootMotion = applyRootMotion; animator.animatePhysics = animatePhysics; animator.cullingMode = cullingMode; return animator; }
public static Animator CreateAnimator(UMAData umaData, UmaTPose umaTPose, RuntimeAnimatorController controller, bool applyRootMotion, bool animatePhysics, AnimatorCullingMode cullingMode) { var animator = umaData.umaRoot.AddComponent <Animator>(); switch (umaData.umaRecipe.raceData.umaTarget) { case RaceData.UMATarget.Humanoid: umaTPose.DeSerialize(); animator.avatar = CreateAvatar(umaData, umaTPose); break; case RaceData.UMATarget.Generic: animator.avatar = CreateGenericAvatar(umaData); break; } animator.runtimeAnimatorController = controller; animator.applyRootMotion = applyRootMotion; animator.animatePhysics = animatePhysics; animator.cullingMode = cullingMode; return(animator); }
/// <summary> /// Creates a Mecanim human description for a UMA character. /// </summary> /// <returns>The human description.</returns> /// <param name="umaData">UMA data.</param> /// <param name="umaTPose">UMA TPose.</param> public static HumanDescription CreateHumanDescription(UMAData umaData, UmaTPose umaTPose) { var res = new HumanDescription(); res.armStretch = 0; res.feetSpacing = 0; res.legStretch = 0; res.lowerArmTwist = 0.2f; res.lowerLegTwist = 1f; res.upperArmTwist = 0.5f; res.upperLegTwist = 0.1f; //var animatedBones = umaData.GetAnimatedBones(); //if (animatedBones.Length > 0) //{ // List<SkeletonBone> animatedSkeleton = new List<SkeletonBone>(umaTPose.boneInfo); // foreach (var animatedBoneHash in animatedBones) // { // var animatedBone = umaData.GetBoneGameObject(animatedBoneHash).transform; // var sb = new SkeletonBone(); // sb.name = animatedBone.name; // sb.position = animatedBone.localPosition; // sb.rotation = animatedBone.localRotation; // sb.scale = animatedBone.localScale; // animatedSkeleton.Add(sb); // } // res.skeleton = animatedSkeleton.ToArray(); //} else //{ res.skeleton = umaTPose.boneInfo; //} res.human = umaTPose.humanInfo; SkeletonModifier(umaData, ref res.skeleton, res.human); return(res); }
void OnEnable() { source = target as UmaTPose; source.DeSerialize(); }
public static Avatar CreateAvatar(GameObject root, UmaTPose umaTPose) { HumanDescription description = CreateHumanDescription(root, umaTPose); Avatar res = AvatarBuilder.BuildHumanAvatar(root, description); return res; }
public static HumanDescription CreateHumanDescription(UMAData umaData, UmaTPose umaTPose) { var res = new HumanDescription(); res.armStretch = 0; res.feetSpacing = 0; res.legStretch = 0; res.lowerArmTwist = 0.2f; res.lowerLegTwist = 1f; res.upperArmTwist = 0.5f; res.upperLegTwist = 0.1f; var animatedBones = umaData.GetAnimatedBones(); if (animatedBones.Length > 0) { List <SkeletonBone> animatedSkeleton = new List <SkeletonBone>(umaTPose.boneInfo); foreach (var animatedBoneHash in animatedBones) { var animatedBone = umaData.GetBoneGameObject(animatedBoneHash).transform; var sb = new SkeletonBone(); sb.name = animatedBone.name; sb.position = animatedBone.localPosition; sb.rotation = animatedBone.localRotation; sb.scale = animatedBone.localScale; animatedSkeleton.Add(sb); } res.skeleton = animatedSkeleton.ToArray(); } else { res.skeleton = umaTPose.boneInfo; } // List<HumanBone> animatedHuman = new List<HumanBone>(); // foreach (HumanBone bone in umaTPose.humanInfo) { // int animIndex = System.Array.IndexOf(umaData.animatedBones, bone.boneName); // if (animIndex > -1) { // animatedHuman.Add(bone); // } // else { // int traitIndex = System.Array.IndexOf(HumanTrait.BoneName, bone.humanName); // if (HumanTrait.RequiredBone(traitIndex)) { // animatedHuman.Add(bone); // } // } // } // List<SkeletonBone> animatedSkeleton = new List<SkeletonBone>(); // foreach (SkeletonBone bone in umaTPose.boneInfo) { // int animIndex = System.Array.IndexOf(umaData.animatedBones, bone.name); // if (animIndex > -1) { // animatedSkeleton.Add(bone); // } // } // res.human = animatedHuman.ToArray(); // res.skeleton = animatedSkeleton.ToArray(); res.human = umaTPose.humanInfo; res.skeleton[0].name = umaData.umaRoot.name; SkeletonModifier(umaData, ref res.skeleton); return(res); }
public static HumanDescription CreateHumanDescription(UMAData umaData, UmaTPose umaTPose) { var res = new HumanDescription(); res.armStretch = 0; res.feetSpacing = 0; res.legStretch = 0; res.lowerArmTwist = 0.2f; res.lowerLegTwist = 1f; res.upperArmTwist = 0.5f; res.upperLegTwist = 0.1f; var animatedBones = umaData.GetAnimatedBones(); if (animatedBones.Length > 0) { List<SkeletonBone> animatedSkeleton = new List<SkeletonBone>(umaTPose.boneInfo); foreach (var animatedBoneHash in animatedBones) { var animatedBone = umaData.GetBoneGameObject(animatedBoneHash).transform; var sb = new SkeletonBone(); sb.name = animatedBone.name; sb.position = animatedBone.localPosition; sb.rotation = animatedBone.localRotation; sb.scale = animatedBone.localScale; animatedSkeleton.Add(sb); } res.skeleton = animatedSkeleton.ToArray(); } else { res.skeleton = umaTPose.boneInfo; } // List<HumanBone> animatedHuman = new List<HumanBone>(); // foreach (HumanBone bone in umaTPose.humanInfo) { // int animIndex = System.Array.IndexOf(umaData.animatedBones, bone.boneName); // if (animIndex > -1) { // animatedHuman.Add(bone); // } // else { // int traitIndex = System.Array.IndexOf(HumanTrait.BoneName, bone.humanName); // if (HumanTrait.RequiredBone(traitIndex)) { // animatedHuman.Add(bone); // } // } // } // List<SkeletonBone> animatedSkeleton = new List<SkeletonBone>(); // foreach (SkeletonBone bone in umaTPose.boneInfo) { // int animIndex = System.Array.IndexOf(umaData.animatedBones, bone.name); // if (animIndex > -1) { // animatedSkeleton.Add(bone); // } // } // res.human = animatedHuman.ToArray(); // res.skeleton = animatedSkeleton.ToArray(); res.human = umaTPose.humanInfo; res.skeleton[0].name = umaData.umaRoot.name; SkeletonModifier(umaData, ref res.skeleton); return res; }
/// <summary> /// Creates a new animator for a UMA character. /// </summary> /// <returns>The animator.</returns> /// <param name="umaData">UMA data.</param> /// <param name="umaTPose">UMA TPose.</param> /// <param name="controller">Animation controller.</param> public static Animator CreateAnimator(UMAData umaData, UmaTPose umaTPose, RuntimeAnimatorController controller) { var animator = umaData.gameObject.AddComponent<Animator>(); switch (umaData.umaRecipe.raceData.umaTarget) { case RaceData.UMATarget.Humanoid: umaTPose.DeSerialize(); animator.avatar = CreateAvatar(umaData, umaTPose); break; case RaceData.UMATarget.Generic: animator.avatar = CreateGenericAvatar(umaData); break; } animator.runtimeAnimatorController = controller; return animator; }
public static Avatar CreateAvatar(UMAData umaData, UmaTPose umaTPose) { HumanDescription description = CreateHumanDescription(umaData, umaTPose); Avatar res = AvatarBuilder.BuildHumanAvatar(umaData.umaRoot, description); return res; }
/// <summary> /// Creates a Mecanim human description for a UMA character. /// </summary> /// <returns>The human description.</returns> /// <param name="umaData">UMA data.</param> /// <param name="umaTPose">UMA TPose.</param> public static HumanDescription CreateHumanDescription(UMAData umaData, UmaTPose umaTPose) { var res = new HumanDescription(); res.armStretch = 0; res.feetSpacing = 0; res.legStretch = 0; res.lowerArmTwist = 0.2f; res.lowerLegTwist = 1f; res.upperArmTwist = 0.5f; res.upperLegTwist = 0.1f; //var animatedBones = umaData.GetAnimatedBones(); //if (animatedBones.Length > 0) //{ // List<SkeletonBone> animatedSkeleton = new List<SkeletonBone>(umaTPose.boneInfo); // foreach (var animatedBoneHash in animatedBones) // { // var animatedBone = umaData.GetBoneGameObject(animatedBoneHash).transform; // var sb = new SkeletonBone(); // sb.name = animatedBone.name; // sb.position = animatedBone.localPosition; // sb.rotation = animatedBone.localRotation; // sb.scale = animatedBone.localScale; // animatedSkeleton.Add(sb); // } // res.skeleton = animatedSkeleton.ToArray(); //} else //{ res.skeleton = umaTPose.boneInfo; //} res.human = umaTPose.humanInfo; SkeletonModifier(umaData, ref res.skeleton, res.human); return res; }
public static Animator CreateAnimator(UMAData umaData, UmaTPose umaTPose, RuntimeAnimatorController controller, bool applyRootMotion, bool animatePhysics, AnimatorCullingMode cullingMode) { var animator = CreateAnimator(umaData, umaTPose, controller); animator.applyRootMotion = applyRootMotion; animator.animatePhysics = animatePhysics; animator.cullingMode = cullingMode; return animator; }