Description

The Section reference in ISequencerSection::GetSectionHeight can be in the process of garbage collection during an undo of a section addition- this causes things like GetTypedOuter<UMovieSceneTrack>() returning nullptr.

This seems to be because post undo, update code is called on the virtual geometry before the view model node tree is rebuilt.

Steps to Reproduce

See UDN at: https://udn.unrealengine.com/0D5QP00000QbSfN0AV?fromCase=1. 

 

And I can also reproduce the assert in the FCinematicShotSection::GetSectionHeight()

  • clone the repo: https://github.com/EpicGames/UnrealEngine
  • select 'release' branch
  • Setup.bat
  • GenerateProjectFiles.bat
  • set configuration to 'DebugEditor'
  • add the modification in FCinematicShotSection::GetSectionHeight()
  1. GetSubSectionObject().GetSequenceID();
  2. // and/or
  3. UMovieSceneCinematicShotTrack* track = Section->GetTypedOuter<UMovieSceneCinematicShotTrack>();
  4. check( track );
  • build/start
  • create a new c++ project
  • set configuration to 'DebugEditor' in c++ project
  • build/start the c++ project
  • reproduce the steps in the first post:
  1. create a level sequence
  2. add a shot track
  3. insert shot
  4. select the new section
  5. Ctrl+C
  6. Ctrl+V
  7. Ctrl+Z -> assert in GetSequenceID() or check()

 

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-220769 in the post.

0
Login to Vote

Fixed
ComponentUE - Anim - Sequencer
Affects Versions5.4.3
Target Fix5.5
Fix Commit35245566
CreatedAug 1, 2024
ResolvedAug 1, 2024
UpdatedOct 15, 2024
View Jira Issue