Currently, there are several places in FAnimInstanceProxy and FAnimNode_Base (and derived classes) that rely on FindFunctionByName in order to resolve transitions, evaluate pins, etc.
This can happen on worker threads, and can occasionally cause crashes.
FExposedValueHandler::Initialize (called in FAnimNode_Base::Initialize) is one example.
Might be worth looking for similar calls that may also be thread unsafe.
Code task entered as bug
UE4Editor-Core.dll!FDebug::AssertFailed() Line 332
UE4Editor-CoreUObject.dll!TSparseArray<TSetElement<TPair<FName,UFunction * __ptr64> >,TSparseArrayAllocator<FDefaultAllocator,FDefaultBitArrayAllocator> >::AllocateIndex() Line 70
UE4Editor-CoreUObject.dll!TSet<TPair<FName,UFunction * __ptr64>,TDefaultMapKeyFuncs<FName,UFunction * __ptr64,0>,FDefaultSetAllocator>::Emplace<TPairInitializer<FName const & __ptr64,UFunction * __ptr64 const & __ptr64> >() Line 484
UE4Editor-CoreUObject.dll!UClass::FindFunctionByName() Line 4107
UE4Editor-CoreUObject.dll!UObject::FindFunctionChecked() Line 1117
UE4Editor-CoreUObject.dll!UObject::execVirtualFunction() Line 2257
UE4Editor-CoreUObject.dll!UObject::ProcessInternal() Line 925
UE4Editor-CoreUObject.dll!UFunction::Invoke() Line 4477
UE4Editor-CoreUObject.dll!UObject::ProcessEvent() Line 1308
UE4Editor-Engine.dll!FExposedValueHandler::Execute() Line 520
UE4Editor-AnimGraphRuntime.dll!FAnimNode_BlendSpacePlayer::Initialize() Line 55
UE4Editor-Engine.dll!FPoseLinkBase::Initialize() Line 132
UE4Editor-Engine.dll!FPoseLinkBase::Initialize() Line 132
UE4Editor-Engine.dll!FAnimNode_StateMachine::SetState() Line 909
UE4Editor-Engine.dll!FAnimNode_StateMachine::Initialize() Line 265
UE4Editor-Engine.dll!FPoseLinkBase::Initialize() Line 132
UE4Editor-AnimGraphRuntime.dll!FAnimNode_ApplyAdditive::Initialize() Line 15
UE4Editor-Engine.dll!FPoseLinkBase::Initialize() Line 132
UE4Editor-AnimGraphRuntime.dll!FAnimNode_BlendListBase::Initialize() Line 25
UE4Editor-Engine.dll!FPoseLinkBase::Initialize() Line 132
UE4Editor-Engine.dll!FPoseLinkBase::Initialize() Line 132
UE4Editor-Engine.dll!FAnimNode_StateMachine::SetState() Line 909
UE4Editor-Engine.dll!FAnimNode_StateMachine::Update() Line 445
UE4Editor-Engine.dll!FPoseLinkBase::Update() Line 190
UE4Editor-Engine.dll!FAnimNode_SaveCachedPose::PostGraphUpdate() Line 96
UE4Editor-Engine.dll!FAnimInstanceProxy::UpdateAnimationNode() Line 40
UE4Editor-Engine.dll!FAnimInstanceProxy::UpdateAnimation() Line 762
UE4Editor-Engine.dll!USkeletalMeshComponent::PerformAnimationEvaluation() Line 1357
UE4Editor-Engine.dll!FParallelAnimationEvaluationTask::DoTask() Line 107
UE4Editor-Engine.dll!TGraphTask<FParallelAnimationEvaluationTask>::ExecuteTask(TArray<FBaseGraphTask *,FDefaultAllocator> & NewTasks, ENamedThreads::Type CurrentThread=6) Line 868
UE4Editor-Core.dll!FTaskThreadAnyThread::ProcessTasks() Line 1255
UE4Editor-Core.dll!FTaskThreadAnyThread::ProcessTasksUntilQuit(int QueueIndex) Line 1149
UE4Editor-Core.dll!FTaskThreadBase::Run() Line 621
UE4Editor-Core.dll!FRunnableThreadWin::Run() Line 74
UE4Editor-Core.dll!FRunnableThreadWin::GuardedRun() Line 31
How does TextureRenderTarget2D get TArray<uint8> type data?
Why does the REMOVE method of map container remove elements have memory leaks?
UMG RichText not appear image when packaged
How to delete some elements correctly when deleting an array loop?
What is the difference between Camera and CineCamera?
How to implement springarm components to scale according to mouse position in spawn?
What does the number in the custom node error Material.ush(2153,1-34) mean?
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-43461 in the post.
0 |
Component | OLD - Anim |
---|---|
Affects Versions | 4.13, 4.14, 4.15 |
Target Fix | 4.16 |
Created | Mar 29, 2017 |
---|---|
Resolved | Mar 30, 2017 |
Updated | May 18, 2020 |