コミュニティQ&A

Audiokineticのコミュニティ主導のQ&Aフォーラムへようこそ。ここはWwiseとStrataのユーザのみなさまがお互いに協力し合う場です。弊社チームによる直接のサポートをご希望の場合はサポートチケットページをご利用ください。バグを報告するには、Audiokinetic LauncherのBug Reportオプションをご利用ください。(Q&AフォーラムではBug Reportを受け付けておりませんのでご注意ください。専用のBug Reportシステムをご利用いただくことで、バグの報告が適切な担当部門に届き、修正される可能性が高まります。)

最適な回答を迅速に得られるよう、ご質問を投稿される際は以下のヒントをご参考ください。

  • 具体的に示す:何を達成したいのか、またはどんな問題に直面しているのかを具体的に示してください。
  • 重要な詳細情報を含める:Wwiseとゲームエンジンのバージョンやご利用のOSなど詳細情報を記載してください。
  • 試したことを説明する:すでに試してみたトラブルシューティングの手順を教えてください。
  • 事実に焦点を当てる:問題の技術的な事実を記載してください。問題に焦点を当てることで、ほかのユーザのみなさまが解決策を迅速に見つけやすくなります。

+3 支持
Hello,

we are getting this error when generating sound data in UE 4.26 (Wwise 2021.10).  Does anyone else have same problem? We don't use event based packaging.

 

Assertion failed: IsInGameThread() [File:B:/UnrealEngineSourceBuild/Engine/Source/Runtime/Engine/Private/StreamableManager.cpp] [Line: 584]

UE4Editor_Core!AssertFailedImplV() [b:\unrealenginesourcebuild\engine\source\runtime\core\private\misc\assertionmacros.cpp:102]
UE4Editor_Core!FDebug::CheckVerifyFailedImpl() [b:\unrealenginesourcebuild\engine\source\runtime\core\private\misc\assertionmacros.cpp:458]
UE4Editor_Engine!FStreamableHandle::ReleaseHandle() [b:\unrealenginesourcebuild\engine\source\runtime\engine\private\streamablemanager.cpp:584]
UE4Editor_AudiokineticTools!AkSoundDataBuilder::~AkSoundDataBuilder() [D:\Dev\payback-game\Plugins\Wwise\Source\AudiokineticTools\Private\AssetManagement\AkSoundDataBuilder.cpp:95]
UE4Editor_AudiokineticTools!<lambda_98943428dbac4f04fd156ca3b2654230>::~<lambda_98943428dbac4f04fd156ca3b2654230>()
UE4Editor_AudiokineticTools!UE4Function_Private::TFunction_UniqueOwnedObject<<lambda_98943428dbac4f04fd156ca3b2654230>,1>::`scalar deleting destructor'()
UE4Editor_AudiokineticTools!UE4Function_Private::IFunction_OwnedObject_OnHeap<<lambda_98943428dbac4f04fd156ca3b2654230> >::Destroy() [D:\Dev\UnrealEngine\Engine\Source\Runtime\Core\Public\Templates\Function.h:148]
UE4Editor_AudiokineticTools!TGraphTask<TFunctionGraphTaskImpl<void __cdecl(void),0> >::ExecuteTask() [D:\Dev\UnrealEngine\Engine\Source\Runtime\Core\Public\Async\TaskGraphInterfaces.h:887]
UE4Editor_Core!FTaskThreadAnyThread::ProcessTasks() [b:\unrealenginesourcebuild\engine\source\runtime\core\private\async\taskgraph.cpp:1065]
UE4Editor_Core!FTaskThreadAnyThread::ProcessTasksUntilQuit() [b:\unrealenginesourcebuild\engine\source\runtime\core\private\async\taskgraph.cpp:888]
UE4Editor_Core!FTaskThreadAnyThread::Run() [b:\unrealenginesourcebuild\engine\source\runtime\core\private\async\taskgraph.cpp:965]
UE4Editor_Core!FRunnableThreadWin::Run() [b:\unrealenginesourcebuild\engine\source\runtime\core\private\windows\windowsrunnablethread.cpp:86]
Radek Karnik (990 ポイント) General Discussion
Same here. Really want to know.
Though we are using the event based pipeline.

回答 1

0 支持
Hi, we had this same issue. We use event based packaging and here is what we found and our approach to fix it.

The sound data builder AkSoundDataBuilder holds a handle for an asset it has loaded, this handle have to be released on the game thread as there are checks to see if IsInGameThread() is true when releasing it. We found it was released on a background thread so we fixed this by changing the code in ~AkSoundDataBuilder() to dispatch the cleanup to the game thread like below:
AkSoundDataBuilder::~AkSoundDataBuilder()
{
    // The handle can not be released on this thread, move and release it on the game thread.
    auto requestAsyncCleanupTask = FFunctionGraphTask::CreateAndDispatchWhenReady([handle = MoveTemp(loadedAssetsHandle)] {
        if (handle.IsValid())
        {
            handle->ReleaseHandle();
        }
    }, GET_STATID(STAT_EventPlatformDataEventGroup), nullptr, ENamedThreads::GameThread);
}

Hope this helps anyone else with this issue.
Gustav L. (250 ポイント)
...