MultiWorldManagerでのクラッシュについて相談です

お世話になっております。

開発してるゲームのWindows環境にてMultiWorldManagerないでのクラッシュがあり対処について相談させてください。

一回しか起きておらず再現しないため何が問題なのかまだ絞り込めてないのですが

MultiWorldManagerでのCheckに引っかかっていてなぜこのような状況になるのかが​分かっておらずです。

対処しておけるのならば対処して起きたいので、なにか方法があれば教えていただきたいです。

よろしくお願い致します​

​↓クラッシュ直前のLog

[2026.03.04-03.40.56:133][959]LogAudio: Warning: Could not initialize hardware. Tearing down anything that was set up during initialization
[2026.03.04-03.40.56:133][959]LogAudioMixer: FMixerPlatformXAudio2::StopAudioStream() called. InstanceID=3
[2026.03.04-03.40.56:133][959]LogAudio: Warning: FAudioDevice::Init Failed!
[2026.03.04-03.40.56:134][959]LogAudio: Display: Destroying Audio Device 3: could not be initialized. Check AudioDeviceModuleName and AudioMixerModuleName in [Platform]Engine.ini.
[2026.03.04-03.40.56:143][959]LogWindows: Error: appError called: Assertion failed: AudioDeviceHandle.IsValid() [File:C:\projects\Engine\Plugins\Marketplace\MultiWorld\Source\MultiWorld\Private\MultiWorldManager.cpp] [Line: 634]
 	[インライン フレーム] Test-Win64-Test.exe!ReportAssert(const wchar_t *) 行 1826	C++
 	Test-Win64-Test.exe!FWindowsErrorOutputDevice::Serialize(const wchar_t * Msg, ELogVerbosity::Type Verbosity, const FName & Category) 行 84	C++
 	Test-Win64-Test.exe!FOutputDevice::LogfImpl(const wchar_t * Fmt, ...) 行 70	C++
 	[インライン フレーム] Test-Win64-Test.exe!FOutputDevice::Logf(const wchar_t[49] &) 行 249	C++
 	Test-Win64-Test.exe!AssertFailedImplV(const char * Expr, const char * File, int Line, void * ProgramCounter, const wchar_t * Format, char * Args) 行 150	C++
 	Test-Win64-Test.exe!FDebug::CheckVerifyFailedImpl2(const char * Expr, const char * File, int Line, const wchar_t * Format, ...) 行 676	C++
>	Test-Win64-Test.exe!UMultiWorldManager::InitializeWorld(const FMultiWorldHandle & InWorldHandle) 行 634	C++
 	Test-Win64-Test.exe!UMultiWorldManager::PostLoadWorld(TSoftObjectPtr<UWorld> MapAsset, const FMultiWorldLoadParameters & LoadParams, UWorld * LoadedWorld) 行 739	C++
 	Test-Win64-Test.exe!UMultiWorldManager::LoadWorldAsync::__l2::<lambda>(const FName & PackageName, UPackage * Package, EAsyncLoadingResult::Type Result) 行 360	C++
 	[インライン フレーム] Test-Win64-Test.exe!Invoke(UMultiWorldManager::LoadWorldAsync::__l2::void <lambda>(void) &) 行 47	C++
 	[インライン フレーム] Test-Win64-Test.exe!UE::Core::Private::Tuple::TTupleBase<TIntegerSequence<unsigned int>>::ApplyAfter(UMultiWorldManager::LoadWorldAsync::__l2::void <lambda>(void) &) 行 309	C++
 	Test-Win64-Test.exe!TBaseFunctorDelegateInstance<void __cdecl(FName const &,UPackage *,enum EAsyncLoadingResult::Type),FDefaultDelegateUserPolicy,`UMultiWorldManager::LoadWorldAsync'::`2'::void <lambda>(void)>::ExecuteIfSafe(const FName & <Params_0>, UPackage * <Params_1>, EAsyncLoadingResult::Type <Params_2>) 行 870	C++
 	[インライン フレーム] Test-Win64-Test.exe!TDelegate<void __cdecl(FName const &,UPackage *,enum EAsyncLoadingResult::Type),FDefaultDelegateUserPolicy>::ExecuteIfBound(const FName &) 行 570	C++
 	[インライン フレーム] Test-Win64-Test.exe!FAsyncLoadingThread2::FCompletedPackageRequest::CallCompletionCallbacks() 行 3231	C++
 	Test-Win64-Test.exe!FAsyncLoadingThread2::ProcessLoadedPackagesFromGameThread(FAsyncLoadingThreadState2 & ThreadState, bool & bDidSomething, TArrayView<int const ,int> FlushRequestIDs) 行 7969	C++
 	Test-Win64-Test.exe!FAsyncLoadingThread2::TickAsyncLoadingFromGameThread(FAsyncLoadingThreadState2 & ThreadState, bool bUseTimeLimit, bool bUseFullTimeLimit, double TimeLimit, TArrayView<int const ,int> FlushRequestIDs, bool & bDidSomething) 行 8040	C++
 	Test-Win64-Test.exe!FAsyncLoadingThread2::ProcessLoadingFromGameThread(FAsyncLoadingThreadState2 & ThreadState, bool bUseTimeLimit, bool bUseFullTimeLimit, double TimeLimit) 行 9275	C++
 	Test-Win64-Test.exe!FAsyncLoadingThread2::ProcessLoading(bool bUseTimeLimit, bool bUseFullTimeLimit, double TimeLimit) 行 3504	C++
 	Test-Win64-Test.exe!ProcessAsyncLoading(bool bUseTimeLimit, bool bUseFullTimeLimit, double TimeLimit) 行 314	C++
 	Test-Win64-Test.exe!StaticTick(float DeltaTime, bool bUseFullTimeLimit, float AsyncLoadingTime) 行 874	C++
 	Tews-Win64-Test.exe!UGameEngine::Tick(float DeltaSeconds, bool bIdleMode) 行 1742	C++
 	Tews-Win64-Test.exe!FEngineLoop::Tick() 行 5936	C++
 	[インライン フレーム] Test-Win64-Test.exe!EngineTick() 行 61	C++
 	Test-Win64-Test.exe!GuardedMain(const wchar_t * CmdLine) 行 180	C++
 	Test-Win64-Test.exe!GuardedMainWrapper(const wchar_t * CmdLine) 行 118	C++

[Attachment Removed]

お世話になっております。ログの記載 Plugins\Marketplace\MultiWorld\Source\MultiWorld\Private\MultiWorldManager.cpp を拝見しますと、これはFab等で入手なされた外部のプラグインであるように思われますので、エンジン側でこの動作における妥当性の検証は困難です。プラグインの提供元にお問い合わせ頂くか、ご自身でデバッグして頂き解消して頂く必要がございます。

一般的なケースとして AudioDeviceHandle が NULL になる条件を推測するとしたら、MultiWorldManager が RequestAudioDevice() で専用デバイスを要求したのち、FAudioDevice::Init() が失敗してFAudioDeviceManager がそのデバイスを破棄し、無効な FAudioDeviceHandle を返すケースが起きているかと思われます。Windows プラットフォームで発生したとした場合、XAudio2 初期化失敗、オーディオサービス状態不良、ドライバ/デバイス異常などのケースや、MultiWorld が CreateDedicatedAudioDevice=true で新規デバイスを作ろうとして失敗するケース、などを推測し、原因を更に調べて頂く必要がございます。もし専用デバイスが必要ないのであれば、MainWorld のAudioDeviceを使うようにフォールバック処理を入れるなどで対処可能ではないかと推測しますが、このプラグインに関しては一切の情報を持ち合わせていないため、基本的には弊社でこれ以上調査することは難しい状況です。

[Attachment Removed]