private void SetupSwayBone(Transform t)
        {
            SwayRootBone SRB = t.gameObject.GetComponent <SwayRootBone>();

            if (SRB == null)
            {
                SRB = t.gameObject.AddComponent <SwayRootBone>();
            }
            SRB.elasticity = 1.1f;
            SRB.inertia    = 0.75f;
            SRB.limit      = 1.2f;
            SRB.Reorient   = false;
            SRB.OrientOnly = false;
            SRB.enabled    = true;
        }
    public void AddJiggle(UMAData umaData)
    {
        Transform        rootBone      = SkeletonTools.RecursiveFindBone(umaData.umaRoot.transform, jiggleBoneName);
        UMABoneCleaner   cleaner       = umaData.gameObject.GetComponent <UMABoneCleaner>();
        List <Transform> exclusionList = new List <Transform>();

        if (rootBone != null)
        {
#if DYNAMIC_BONE
            DynamicBone jiggleBone = rootBone.GetComponent <DynamicBone>();
            if (jiggleBone == null)
            {
                jiggleBone = rootBone.gameObject.AddComponent <DynamicBone>();
            }

            jiggleBone.m_Root = rootBone;



            foreach (string exception in exceptions)
            {
                exclusionList.Add(umaData.gameObject.transform.FindDeepChild(exception));
            }

            jiggleBone.m_Exclusions = exclusionList;
            jiggleBone.m_Inert      = reduceEffect;
            jiggleBone.UpdateParameters();
#else
            SwayRootBone jiggleBone = rootBone.GetComponent <SwayRootBone>();
            if (jiggleBone == null)
            {
                jiggleBone = rootBone.gameObject.AddComponent <SwayRootBone>();
            }

            foreach (string exception in exceptions)
            {
                exclusionList.Add(SkeletonTools.RecursiveFindBone(umaData.gameObject.transform, exception));
            }

            jiggleBone.Exclusions = exclusionList;
            jiggleBone.inertia    = reduceEffect;
            jiggleBone.SetupBoneChains();
#endif
        }

        if (deleteBoneWithSlot)
        {
            if (cleaner == null)
            {
                cleaner = umaData.gameObject.AddComponent <UMABoneCleaner>();
            }

            UMAJiggleBoneListing listing = new UMAJiggleBoneListing();
            listing.boneName    = jiggleBoneName;
            listing.carrierSlot = slotToWatch;

            linkedRecipe = umaData.gameObject.GetComponent <DynamicCharacterAvatar>().GetWardrobeItemName(slotToWatch);

            listing.recipe = linkedRecipe;

            listing.exceptions = exclusionList;
            cleaner.RegisterJiggleBone(listing);
        }
    }