Ejemplo n.º 1
0
    public static Avatar CreateAvatar(GameObject root, UMA.UmaTPose umaTPose)
    {
        HumanDescription description = CreateHumanDescription(root, umaTPose);
        Avatar           res         = AvatarBuilder.BuildHumanAvatar(root, description);

        return(res);
    }
Ejemplo n.º 2
0
 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;
 }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        /// <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);
        }
Ejemplo n.º 5
0
 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;
 }
Ejemplo n.º 6
0
 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;
 }
Ejemplo n.º 7
0
    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;
    }
Ejemplo n.º 8
0
        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;
        }
Ejemplo n.º 9
0
        /// <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);
        }
Ejemplo n.º 11
0
    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);
    }
Ejemplo n.º 12
0
        /// <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);
        }
Ejemplo n.º 13
0
 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;
 }
Ejemplo n.º 14
0
        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);
        }
Ejemplo n.º 15
0
        /// <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);
        }
Ejemplo n.º 16
0
 void OnEnable()
 {
     source = target as UmaTPose;
     source.DeSerialize();
 }
Ejemplo n.º 17
0
 public static Avatar CreateAvatar(GameObject root, UmaTPose umaTPose)
 {
     HumanDescription description = CreateHumanDescription(root, umaTPose);
     Avatar res = AvatarBuilder.BuildHumanAvatar(root, description);
     return res;
 }
Ejemplo n.º 18
0
        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);
        }
Ejemplo n.º 19
0
        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;
        }
Ejemplo n.º 20
0
		/// <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;
		}
Ejemplo n.º 21
0
 public static Avatar CreateAvatar(UMAData umaData, UmaTPose umaTPose)
 {
     HumanDescription description = CreateHumanDescription(umaData, umaTPose);
     Avatar res = AvatarBuilder.BuildHumanAvatar(umaData.umaRoot, description);
     return res;
 }
Ejemplo n.º 22
0
		/// <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;
		}
Ejemplo n.º 23
0
		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;
		}