Description

Due to the following code in [Link Removed] (CL-11585172), it is always set to Break even if the Tangent value is continuous.

ArriveTangent = LeftTangent * (ArriveTimeDiff);
...
LeaveTangent = RightTangent * (LeaveTimeDiff);
...

//instead we manually check to see if the tangents are the same or different, if different then broken.
if (FMath::IsNearlyEqual(ArriveTangent, LeaveTangent))
{ 
   NewTangentMode = RCTM_User;
}
else
{ 
   NewTangentMode = RCTM_Break;
}

Since ArriveTangent and LeaveTangent are multiplied respectively, even if the tangent value is the same, it does not pass the test by IsNearlyEqual.

Therefore, even if the export data is User, the Import data will be Break. Comparing using the tangent values before multiplication solves this issue.

export 

[Image Removed]

import

[Image Removed]

The obvious difference in curves is due to [Link Removed]

Steps to Reproduce
  1. Open attached project
  2. Open Level Sequence Asset in Contents
  3. Export FBX Animation of Cine Camera Actor of the Level Sequence
  4. Import the exported FBX to the Level Sequence

expect : Curve interpolation setting is User as well as export data

result : Curve interpolation setting is Break

Have Comments or More Details?

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

0
Login to Vote

Fixed
ComponentUE - Anim - Sequencer
Affects Versions4.26
Target Fix4.27.1
Fix Commit17272176
Main Commit17272176
Release Commit17279409
CreatedAug 20, 2021
ResolvedAug 23, 2021
UpdatedDec 1, 2022