Audiokinetic's Community Q&A is the forum where users can ask and answer questions within the Wwise and Strata communities. If you would like to get an answer from Audiokinetic's Technical support team, make sure you use the Support Tickets page.

WwisePicker GenerateBank tirggers AssetRegistry ensure in Wwise 2021.1.11 and UE5.1.0

0 votes

As always,

I'm upgrading wwise to version 2021.1.11.

I replaced the previous Wwise Integration (5.0 since this is the only version older than 5).

I upgraded my Wwise project version to 2021.1.11.

I open the Wwise Picker and click the Generate Sound Data button.
This ensureAlwaysMsgf() is triggered.

if (!ensureAlwaysMsgf(InFilter.ClassNames.Num() == 0, TEXT("Asset Registry Filter using ClassNames instead of ClassPaths. First class name: \"%s\""), *InFilter.ClassNames[0].ToString()))

the details:

InFilter.ClassNames[0] is "AkAudioEvent"

AkAssetBase.h - Line 69

            FARFilter Filter;
            for (FAssetIdentifier& Referencer : Referencers)
            {
                Filter.PackageNames.Add(Referencer.PackageName);
            }
            TArray<FAssetData> Assets;
            Filter.ClassNames.Add(MatchClass->GetFName());
            AssetRegistryModule.Get().GetAssets(Filter, Assets);
            for (FAssetData& AssetData : Assets)
            {
                OutFoundObjectSet.Add(TSoftObjectPtr<T>(AssetData.ToSoftObjectPath()));
            }

I notice that there is a action that adds a ClassName to Filter's ClassNames. Is that necessary?


The stack information is shown below:

UnrealEditor-AssetRegistry.dll!UE::AssetRegistry::FAssetRegistryImpl::CompileFilter::__l7::<lambda_fe6f7fdae264bb14d0f0fd5e927f2f0e>::operator()() 行 3072    C++
UnrealEditor-AssetRegistry.dll!UE::AssetRegistry::FAssetRegistryImpl::CompileFilter(UE::AssetRegistry::Impl::FClassInheritanceContext & InheritanceContext, const FARFilter & InFilter, FARCompiledFilter & OutCompiledFilter) 行 3072    C++
UnrealEditor-AssetRegistry.dll!UAssetRegistryImpl::CompileFilter(const FARFilter & InFilter, FARCompiledFilter & OutCompiledFilter) 行 3047    C++
UnrealEditor-AssetRegistry.dll!UAssetRegistryImpl::GetAssets(const FARFilter & InFilter, TArray<FAssetData,TSizedDefaultAllocator<32>> & OutAssetData, bool bSkipARFilteredAssets) 行 1790    C++
UnrealEditor-AkAudio.dll!UAkAssetBase::FindObjectsReferencingThis<UAkAudioEvent>(UClass * MatchClass, TSet<TSoftObjectPtr<UAkAudioEvent>,DefaultKeyFuncs<TSoftObjectPtr<UAkAudioEvent>,0>,FDefaultSetAllocator> & OutFoundObjectSet) 行 71    C++
UnrealEditor-AkAudio.dll!UAkAudioBank::Serialize(FArchive & Ar) 行 302    C++
UnrealEditor-CoreUObject.dll!FLinkerLoad::Preload(UObject * Object) 行 4479    C++
UnrealEditor-CoreUObject.dll!EndLoad(FUObjectSerializeContext * LoadContext, TArray<UPackage *,TSizedDefaultAllocator<32>> * OutLoadedPackages) 行 1988    C++
UnrealEditor-CoreUObject.dll!LoadPackageInternal::__l86::<lambda_545c6a9ab0d9f504d7b58729b594d774>::operator()() 行 1600    C++
UnrealEditor-CoreUObject.dll!LoadPackageInternal(UPackage * InOuter, const FPackagePath & PackagePath, unsigned int LoadFlags, FLinkerLoad * ImportLinker, FArchive * InReaderOverride, const FLinkerInstancingContext * InstancingContext, const FPackagePath * DiffPackagePath) 行 1701    C++
UnrealEditor-CoreUObject.dll!LoadPackage(UPackage * InOuter, const FPackagePath & PackagePath, unsigned int LoadFlags, FArchive * InReaderOverride, const FLinkerInstancingContext * InstancingContext, const FPackagePath * DiffPackagePath) 行 1857    C++
UnrealEditor-CoreUObject.dll!LoadPackage(UPackage * InOuter, const wchar_t * InLongPackageNameOrFilename, unsigned int LoadFlags, FArchive * InReaderOverride, const FLinkerInstancingContext * InstancingContext) 行 1838    C++
UnrealEditor-AudiokineticTools.dll!FAssetData::FastGetAsset(bool bLoad, TSet<FName,DefaultKeyFuncs<FName,0>,FDefaultSetAllocator> LoadTags) 行 519    C++
UnrealEditor-AudiokineticTools.dll!FAssetData::GetAsset(TSet<FName,DefaultKeyFuncs<FName,0>,FDefaultSetAllocator>) 行 550    C++
UnrealEditor-AudiokineticTools.dll!AkSoundDataBuilder::fillAudioBankInfoMap(TMap<FString,AudioBankInfoEntry,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<FString,AudioBankInfoEntry,0>> & AudioBankInfoMap, AkSoundDataBuilder::FillAudioBankInfoKind InfoKind, const TSet<FString,DefaultKeyFuncs<FString,0>,FDefaultSetAllocator> & PlatformsToBuild, const TSet<FString,DefaultKeyFuncs<FString,0>,FDefaultSetAllocator> & LanguagesToBuild, ISoundBankInfoCache * SoundBankInfoCache) 行 1597    C++
UnrealEditor-AudiokineticTools.dll!WwiseConsoleAkSoundDataBuilder::runWwiseConsole::__l2::<lambda_8bdf575aa82fdef997a6a3936e482a99>::operator()() 行 260    C++

 

 

How should I modify the wwise source code to avoid triggering ensureAlwaysMsgf() ?

 

--- 

update some information.

there is my modify info that is shown below.

//Filter.ClassNames.Add(MatchClass->GetFName()); // Wwise Old Source Code

FTopLevelAssetPath ClassPathName = UClass::TryConvertShortTypeNameToPathName<UStruct>(MatchClass->GetFName().ToString(), ELogVerbosity::Warning, TEXT("Compiling Asset Registry Filter"));
if (!ClassPathName.IsNull())
{
        Filter.ClassPaths.Add(ClassPathName);
}

---

 

I would appreciate your help.

asked Jan 11, 2023 in General Discussion by (100 points)

Please sign-in or register to answer this question.

...