While trying to pause a level sequence playback at a specific time with the level blueprint, calling the Set Playback Position seems to be timing dependent and incorrect translates when calling Set Playback Position. Here is how to reproduce it. I’m using the 4.12.5 release on Windows 10.
First create a simple scene with a sphere and add a level sequencer to the scene. Open the level sequencer editor and create a simple movement animation as seen in the image below. Next add an Event track and place a event at the 1.0 second mark(30 frames).
Now open the level blueprint and drag the level sequence into it. Create an “Event BeginLevel” event and wire up the level sequence to play as shown in the image below. Next create a custom event with the same name as the event from the level sequence editor. Mine was named Event1. Now wire that event to Pause the animation and then add the SetPlaybackPosition call with a time of 1.0 second. Ignore the Branch and Delay shown in the blueprint for the moment.
Now if you play this, you will see sphere move as expected and then jump at the very end to what seem a random position. Note that the position is not on the animation track at all.
Stop playback and now add the Branch and Delay(1 sec) node as seen in the blueprint above and use the Is Playing for the Branch condition. Also set a breakpoint on the Delay node. Now play again and note that the breakpoint is not hit. The animation is indeed paused. So why does the Set Playback Position not work on a paused animation? IDK. I feel like this is a bug. Now change the blueprint to just do the Delay without the Branch. Now when running, the final position is as expected. Note that my screen capture below shows it still running but it does end up in the correct place. I really don’t think adding a delay is a good solution for this problem.
So why would there be a timing issue when calling Set Playback Position? Why would the animation ever go off track regardless of paused or not? Help.