Download

enum EAnimAssetCurveFlags deprecated?

How should I deal with these deprecated flags? I need to know if my curves are driving materials or morph targets… what replaces them?


enum EAnimAssetCurveFlags
{
    AACF_NONE                           = 0,
    AACF_DriveMorphTarget_DEPRECATED    = 0x00000001,
    AACF_DriveAttribute_DEPRECATED      = 0x00000002,
    AACF_Editable                       = 0x00000004,
    AACF_DriveMaterial_DEPRECATED       = 0x00000008,
    AACF_Metadata                       = 0x00000010,
    AACF_DriveTrack                     = 0x00000020,
    AACF_Disabled                       = 0x00000040,
}

I found this line in AnimCurveTypes.h

AACF_DriveMaterial_DEPRECATED = 0x00000008 UMETA(Hidden), // This has moved to FAnimCurveType:bMaterial. Set per skeleton. DO NOT REMOVE UNTIL FrameworkObjectVersion.MoveCurveTypesToSkeleton expires.

I got it sordid out, LOL. Here it is, if anyone needs it…how to tell if your anim curves are driving any animated materials:


FAssetRegistryModule& AssetRegistryModule = FModuleManager::LoadModuleChecked<FAssetRegistryModule>("AssetRegistry");
TArray<FAssetData> AssetData;
AssetRegistryModule.Get().GetAssetsByPath(*ContentBrowserPath, AssetData, true);
for (FAssetData Asset : AssetData)
{
    if (Asset.AssetClass == "Skeleton")
    {
        Skel = LoadObject<USkeleton>(nullptr, *Asset.ObjectPath.ToString(), NULL, LOAD_None, NULL);
        SmartContainer = Skel->GetSmartNameContainer(USkeleton::AnimCurveMappingName);
        TArray<USkeleton::AnimCurveUID> CurveUids;
        SmartContainer->FillUidArray(CurveUids);
        for (USkeleton::AnimCurveUID Id : CurveUids)
        {
            FName CurveName;
            SmartContainer->GetName(Id, CurveName);
            bMaterial = false;
            bMaterial = SmartContainer->GetCurveMetaData(CurveName)->Type.bMaterial;