커뮤니티 Q&A

Audiokinetic의 커뮤니티 Q&A 포럼에 오신 것을 환영합니다. 이 포럼은 Wwise와 Strata 사용자들이 서로 도움을 주는 곳입니다. Audiokinetic의 직접적인 도움을 얻으려면 지원 티켓 페이지를 사용하세요. 버그를 보고하려면 Audiokinetic 런처에서 Bug Report 옵션을 사용하세요. (Q&A 포럼에 제출된 버그 보고는 거절됩니다. 전용 Bug Report 시스템을 사용하면 보고 내용이 담당자에게 정확히 전달되어 문제 해결 가능성이 크게 높아집니다.)<segment 6493>

빠르고 정확한 답변을 얻으려면 질문을 올릴 때 다음 팁을 참고하세요.

  • 구체적인 내용을 적어주세요: 무엇을 하려는지, 혹은 어떤 특정 문제에 부딪혔는지 설명하세요.
  • 핵심 정보를 포함하세요: Wwise와 게임 엔진 버전, 운영체제 등 관련 정보를 함께 제공하세요.
  • 시도한 방법들을 알려주세요: 문제 해결을 위해 이미 어떤 단계를 시도해봤는지 설명해주세요.
  • 객관적인 사실에 초점을 맞추세요: 문제의 기술적 사실을 중심으로 설명하세요. 문제에 집중할수록 다른 사람들이 더 빠르게 해결책을 찾을 수 있습니다.

0 투표

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.

General Discussion (100 포인트) 로 부터

Please sign-in or register to answer this question.

...