Sequencer: Fix keyframing transform track when only setting a keyframe on one transform track.

[CL 2684964 by Max Chen in Main branch]
This commit is contained in:
Max Chen
2015-09-09 13:34:18 -04:00
committed by Max.Chen@epicgames.com
parent 859f1c7967
commit dfe199da24
2 changed files with 18 additions and 13 deletions

View File

@@ -15,6 +15,14 @@ struct MOVIESCENE_API FKeyParams
bAutoKeying = false;
}
FKeyParams(const FKeyParams& InKeyParams)
{
bCreateHandleIfMissing = InKeyParams.bCreateHandleIfMissing;
bCreateTrackIfMissing = InKeyParams.bCreateTrackIfMissing;
bAddKeyEvenIfUnchanged = InKeyParams.bAddKeyEvenIfUnchanged;
bAutoKeying = InKeyParams.bAutoKeying;
}
/** Create handle if it doesn't exist. */
bool bCreateHandleIfMissing;
/** Create track if it doesn't exist. */

View File

@@ -89,19 +89,16 @@ bool UMovieScene3DTransformTrack::AddKeyToSection( const FGuid& ObjectHandle, co
UMovieScene3DTransformSection* NewSection = Cast<UMovieScene3DTransformSection>( FindOrAddSection( InKey.GetKeyTime() ) );
// key each component of the transform
if (KeyType & F3DTransformTrackKey::Key_Translation)
{
NewSection->AddTranslationKeys( InKey );
}
if (KeyType & F3DTransformTrackKey::Key_Rotation)
{
NewSection->AddRotationKeys( InKey, bUnwindRotation );
}
if (KeyType & F3DTransformTrackKey::Key_Scale)
{
NewSection->AddScaleKeys( InKey );
}
FTransformKey Key(InKey);
Key.KeyParams.bAddKeyEvenIfUnchanged = InKey.KeyParams.bAddKeyEvenIfUnchanged && (KeyType & F3DTransformTrackKey::Key_Translation);
NewSection->AddTranslationKeys( Key );
Key.KeyParams.bAddKeyEvenIfUnchanged = InKey.KeyParams.bAddKeyEvenIfUnchanged && (KeyType & F3DTransformTrackKey::Key_Rotation);
NewSection->AddRotationKeys( Key, bUnwindRotation );
Key.KeyParams.bAddKeyEvenIfUnchanged = InKey.KeyParams.bAddKeyEvenIfUnchanged && (KeyType & F3DTransformTrackKey::Key_Scale);
NewSection->AddScaleKeys( Key );
return true;
}