public virtual void UpdateUMABody(UMAData umaData) { if (umaData) { umaData.skeleton.ResetAll(); // Put the skeleton into TPose so rotations will be valid for generating avatar umaData.GotoTPose(); umaData.ApplyDNA(); umaData.FireDNAAppliedEvents(); umaData.skeleton.EndSkeletonUpdate(); UpdateAvatar(umaData); } }
public virtual void UpdateUMABody(UMAData umaData) { if (umaData) { umaData.FirePreUpdateUMABody(); // umaData.skeleton.ResetAll(); // I don't think this needs to be called, because we overwrite all that in the next call. // Put the skeleton into TPose so rotations will be valid for generating avatar umaData.GotoTPose(); umaData.ApplyDNA(); umaData.FireDNAAppliedEvents(); umaData.skeleton.EndSkeletonUpdate(); UpdateAvatar(umaData); } }
public virtual void UpdateUMABody(UMAData umaData) { if (umaData) { umaData.FirePreUpdateUMABody(); umaData.skeleton.ResetAll(); // I don't think this needs to be called, because we overwrite all that in the next call. // Put the skeleton into TPose so rotations will be valid for generating avatar umaData.GotoTPose(); umaData.ApplyDNA(); umaData.FireDNAAppliedEvents(); umaData.RestoreSavedItems(); // This has to happen for some reason, or the default models heads cave in. umaData.skeleton.EndSkeletonUpdate(); UpdateAvatar(umaData); } }