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); }
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); }
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); }
public static string SaveInstance(DynamicUMADnaBase instance) { return(UnityEngine.JsonUtility.ToJson(DynamicUMADna_Byte.FromDna(instance))); }