When migrating from the version before 4.20 to the version after 4.20, opening the level sequencer will crash. I think that there is a problem with conversion from SnapTimeInterval (FixedFrameInterval_DEPRECATED) to FFrameRate. If it convert old frame of 10s(or 100s), Numerator will be 0, possibly causing "divide 0".
The below code is one of the workaround.
・UMovieScene::Serialize
else if (FixedFrameInterval_DEPRECATED != 0.f) { // Avoid 0 with RoundToInt // uint32 Numerator = FMath::RoundToInt(1.f / FixedFrameInterval_DEPRECATED); uint32 Numerator = FMath::Max( FMath::RoundToInt(1.f / FixedFrameInterval_DEPRECATED) , 1); DisplayRate = FFrameRate(Numerator, 1); }
If SnapTimeInterval is less than 1.0(1s, 60fps, etc) it will not crash.
1. Create LevelSequencer in Editor with 4.19.
2. Setting Time Snapping Interval is 10s (or 100s).
3. Close the editor and switching project to 4.20.
4. Opening the Editor and LevelSequencer.
Result:
Crash the editor.
Expect:
Open the level sequencer.
LoginId:8dca4f5549cb748e57781681ebf4da5e
EpicAccountId:fb567da00f03436dabdb32db92746435
Integer divide-by-zero - code c0000094 (first/second chance not available)
UE4Editor_Sequencer!SSequencerPlayRateCombo::GetFrameRateErrorVisibility() [d:\build\++ue4\sync\engine\source\editor\sequencer\private\ssequencerplayratecombo.cpp:94]
UE4Editor_Sequencer!TBaseSPMethodDelegateInstance<1,SSequencerPlayRateCombo,0,EVisibility __cdecl(void)>::Execute() [d:\build\++ue4\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:269]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:532]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:536]
UE4Editor_Slate!PrepassWindowAndChildren() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:1437]
UE4Editor_Slate!FSlateApplication::DrawPrepass() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:1485]
UE4Editor_Slate!FSlateApplication::PrivateDrawWindows() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:1526]
UE4Editor_Slate!FSlateApplication::DrawWindows() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:1285]
UE4Editor_Slate!FSlateApplication::TickApplication() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:1860]
UE4Editor_Slate!FSlateApplication::Tick() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:1687]
UE4Editor!FEngineLoop::Tick() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launchengineloop.cpp:3574]
UE4Editor!GuardedMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launch.cpp:166]
UE4Editor!GuardedMainWrapper() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:144]
UE4Editor!WinMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:223]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:283]
kernel32
ntdll
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-68109 in the post.
2 |
Component | UE - Anim - Sequencer |
---|---|
Affects Versions | 4.20, 4.21 |
Target Fix | 4.21.2 |
Fix Commit | 4690687 |
---|
Created | Jan 8, 2019 |
---|---|
Resolved | Jan 8, 2019 |
Updated | Apr 29, 2020 |