Example #1
0
            public void ApplyDNA(UMAData umaData, UMASkeleton skeleton, int dnaTypeHash, float masterWeight = 1f)
            {
                _liveShapeWeight = _startingShapeWeight;

                //dna weight superceeds startingWeight if it exists
                if (_modifyingDNA.UsedDNANames.Count > 0)
                {
                    _activeDNA       = (DynamicUMADnaBase)umaData.GetDna(dnaTypeHash);
                    _liveShapeWeight = _modifyingDNA.Evaluate(_activeDNA);
                }
                _liveShapeWeight = _liveShapeWeight * masterWeight;
                _liveShapeWeight = Mathf.Clamp(_liveShapeWeight, 0f, 1f);

                umaData.SetBlendShape(_blendshapeToApply, _liveShapeWeight);
            }
Example #2
0
        public static DynamicUMADna_Byte FromDna(DynamicUMADnaBase dna)
        {
            var res = new DynamicUMADna_Byte();

            res.bDnaAsset = dna.dnaAsset;
            if (dna.dnaAsset != null)
            {
                res.bDnaAssetName = dna.dnaAsset.name;
            }
            res.bDnaSettings = new DNASettings[dna._values.Length];
            for (int i = 0; i < dna._values.Length; i++)
            {
                res.bDnaSettings[i] = new DNASettings(dna._names[i], (System.Byte)(dna._values[i] * 255f + 0.5f));
            }
            return(res);
        }
Example #3
0
                    public float GetUmaDNAValue(string DNATypeName, UMADnaBase umaDnaIn)
                    {
                        if (umaDnaIn == null)
                        {
                            return(0.5f);
                        }
                        DynamicUMADnaBase umaDna = (DynamicUMADnaBase)umaDnaIn;
                        float             val    = 0.5f;

                        if (DNATypeName == "None" || umaDna == null)
                        {
                            return(val);
                        }
                        val = umaDna.GetValue(DNATypeName, true);                       //implimented a 'failSilently' option here because recipes may have dna in that the dna asset no longer has
                        return(val);
                    }
            public void ApplyDNA(UMAData umaData, UMASkeleton skeleton, int dnaTypeHash, float masterWeight = 1f)
            {
                if (_poseToApply == null)
                {
                    if (Debug.isDebugBuild)
                    {
                        Debug.LogWarning(umaData.gameObject.name + " had an invalid or empty pose set in its BonePoseDNAConverters in its DNAConverterController");
                    }
                    return;
                }
                _livePoseWeight = _startingPoseWeight;

                //dna weight superceeds startingWeight if it exists
                if (_modifyingDNA.UsedDNANames.Count > 0)
                {
                    _activeDNA      = (DynamicUMADnaBase)umaData.GetDna(dnaTypeHash);
                    _livePoseWeight = _modifyingDNA.Evaluate(_activeDNA);
                }
                _livePoseWeight = _livePoseWeight * masterWeight;
                _livePoseWeight = Mathf.Clamp(_livePoseWeight, 0f, 1f);

                _poseToApply.ApplyPose(skeleton, _livePoseWeight);
            }
Example #5
0
 public static string SaveInstance(DynamicUMADnaBase instance)
 {
     return(UnityEngine.JsonUtility.ToJson(DynamicUMADna_Byte.FromDna(instance)));
 }