Blueprint timelines: when converting an internal curve to an external curve asset, the curve asset's data isn't used until the blueprint is recompiled. This is confusing as there is no indication that the internal curve will be used until recompile.

Suggested fix: Converting to external curve should immediately make the blueprint use the external curve, or flag the blueprint as needing recompile so that on starting PIE, the blueprint will be recompiled and the external curve is used.

Steps to Reproduce
  • Create a bluerpint BP_MyTimeline and add it to the current level
  • Add a Timeline that starts on BeginPlay
  • Add a float curve to it
  • Set the duration to 100
  • Add two keyframes (0, 0) and (100, 100)
  • Back in the BP's event graph, on the Timeline's Update print out the float value
  • Start PIE and observe that the value is printed as expected, i.e. counting up
  • Back in the timeline editor, right click the internal curve and select Create External Curve
  • Save the curve as an asset CV_MyCurve
  • Without recompiling the blueprint, open CV_MyCurve and move the (100, 100) keyframe from to (100, -100).
  • Start PIE
  • Observe:
    • The value is still counting up; it's not using the curve asset's values
    • Making more changes to the curve asset also doesn't affect current PIE session
    • Now recompile the blueprint and start PIE again
    • It will use the asset's values as expected.
    • Making more changes to the curve asset affect the current PIE session
  • Expected: Immediately after converting the internal curve to external, changes to the external curve asset should be used when the timeline is played.

Have Comments or More Details?

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

Login to Vote

ComponentUE - Gameplay - Blueprint Editor
Affects Versions5.3
Target Fix5.5
CreatedAug 28, 2023
UpdatedFeb 12, 2024
View Jira Issue