Slowing Down Movement Speed of an Actor Along Spline - Circular Dependency

Hi ClockworkOcean,

Here are screenshots of the relevant blueprint scripts:

To summarize, at the top level, I have two timeline components that execute at the same time from some trigger. The EnemyPawnMover has a simple linear float curve with a slope of 1, while the EnemySpeedOverTime can have any custom curve that the designer wants.

EnemyPawnMover updates Track Alpha, which is used by FollowEnemyTrack to determine Actor Location and Rotation along the spline.

EnemySpeedOverTime updates EnemySpeedMultiplierOut, which is used by UpdateTrackDuration to adjust the Actor’s speed on the fly. The resulting speed is used to set the TrackDuration.

UpdateTimeline uses the TrackDuration to update the PlayRate of the timeline components.

The safeguard is there to prevent the Actor from getting stuck if the designer ever sets the custom float curve value to 0.

Hope it all makes sense.