Currently FNotifyNodeInterface directly references notifies that live within the related anim sequence. This can cause intermittent crashes when notifies are removed as the UI can still reference these widgets (via things like tooltips) but the notifies referenced no longer exist. The callstack attached crashes because FNotifyNodeInterface::NotifyEvent.Notify is invalid but it seems that the entire NotifyEvent is invalid so crashes can also happen elsewhere (for example, when calling MakeTooltipFromTime in GetNodeTooltip).
Full fix for this would probably be to cache all the values that FNotifyNodeInterface is currently getting from NotifyEvent when it's constructed. However, to do that we would need to be able to update the cached values and there don't seem to be any delegates that currently catch every change to a notify. OnNotifiesChanged_Lambda in FAnimTimelineTrack_NotifiesPanel::GetAnimNotifyPanel catches some but not a change of colour, for example.
Only reproduces intermittently (possibly more in Development than Debug builds):
FNotifyNodeInterface::GetNodeTooltip E:\dev\main\Engine\Source\Editor\Persona\Private\SAnimNotifyPanel.cpp (207) SAnimNotifyNode::GetNodeTooltip E:\dev\main\Engine\Source\Editor\Persona\Private\SAnimNotifyPanel.cpp (1605) TBaseSPMethodDelegateInstance<...>::Execute E:\dev\main\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h (281) TAttribute<...>::Get E:\dev\main\Engine\Source\Runtime\Core\Public\Misc\Attribute.h (251) SToolTip::IsEmpty E:\dev\main\Engine\Source\Runtime\Slate\Private\Widgets\SToolTip.cpp (92) FSlateUser::UpdateTooltip E:\dev\main\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateUser.cpp (1236) FSlateApplication::TickPlatform E:\dev\main\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp (1592) FSlateApplication::Tick E:\dev\main\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp (1527) FEngineLoop::Tick E:\dev\main\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp (5911) GuardedMain E:\dev\main\Engine\Source\Runtime\Launch\Private\Launch.cpp (188)
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-208706 in the post.
0 |
Component | UE - Anim - Runtime |
---|---|
Affects Versions | 5.3.2 |
Target Fix | 5.5 |
Fix Commit | 36258569 |
---|
Created | Mar 1, 2024 |
---|---|
Resolved | Sep 13, 2024 |
Updated | Sep 18, 2024 |