Description

The cause was that the information remained in Rows Disabled of Track even though it returned to one Track by the delete operation from the state where there was a child Track of multiple rows.

As a result, the result of Track->IsRowEvalDisabled will be unintended. For example, SSequencerSection :: OnPaint.

As far as I've investigated, the following fix code can solve this issue.


"Engine\Source\Runtime\MovieScene\Public\MovieSceneTrack.h"
// add
MOVIESCENE_API void ClearRowEvalDisabled(); 

"Engine\Source\Runtime\MovieScene\Private\MovieSceneTrack.cpp"
// add
MOVIESCENE_API void UMovieSceneTrack::ClearRowEvalDisabled()
{ 
   RowsDisabled.Empty();
} 

"Engine\Source\Editor\Sequencer\Private\DisplayNodes\SequencerTrackNode.cpp"
void FSequencerTrackNode::UpdateInnerHierarchy()
{
...  
const int32 MaxRowIndex = Track->GetMaxRowIndex(); 
if (MaxRowIndex == 0) 
{ 
   // Single row, perhaps with a top level key area 
   if (SubTrackMode != ESubTrackMode::None) 
   { 
      RequestReinitialize(); SubTrackMode = ESubTrackMode::None;
      
      // add 
      Track->ClearRowEvalDisabled();  
      
      ClearChildren(); 
   }  
UpdateSections(); 
}

...
}
Steps to Reproduce
  1. Add two Audio track
  2. Mute the first track
  3. Delete the muted track

expect : the remain track is not muted
result : the remain track is muted, and user can't unmute it

Have Comments or More Details?

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

0
Login to Vote

Fixed
ComponentUE - Anim - Sequencer
Affects Versions4.27
Target Fix5.1
Fix Commit19373982
Main Commit19402242
CreatedFeb 4, 2022
ResolvedMar 14, 2022
UpdatedMar 16, 2022
View Jira Issue