Hey guys, I’ve got a small ‘understanding’ issue with timelines inside a Blueprint actor. I’ve set up my Blueprint in a way that there’s a ‘reset’ event at the start of sequencer to reset the timeline animation back to its initial state.
However, when I’ve got sequencer in ‘playback loop’ mode the Blueprint actor animation starts to ‘snap’ on the second and following rounds of playback (as you can see from the video below).
From what I can see, it’s because the timeline hasn’t finished playing yet. If I wait a couple of seconds before playing sequencer again, the animations behave as expected.
However, I don’t want to wait! So how can I force the timeline nodes for the Blueprints to be finished and reset to their respective start positions when sequencer loops back to the start?
I think I’d stick to timelines or use the sequencer.
It sounds like your problem is because the timeline has not finished by the time the sequencer restarts. I guess you could increase the speed of the timeline?
Thanks for the quick reply. I hear your suggestion. I guess my question is, why the timeline doesn’t adhere to the ‘reset event’ that fires first in my sequencer.
It clearly tells the timeline node to move its playhead back to ‘0’. So just going by the ‘event logic’ all the timelines of my Blueprints should be reset to their beginning state at the start of the sequence. Or am I missing something?
Have you tried using the ‘open gate’ event instead? ( because that actually restarts the timeline ).
Thanks for the suggestion. Yes, that would make sense, but as you can see from my video above, I need the individual Blueprint Actors to start their animations at specific times across the sequence. So starting each Blueprint Actor’s event track with the “OpenGate” event would mean they would all animate simultaneously, which isn’t what I need unfortunately.
I mean, while I have you here, the reason why I ventured out so deep into event-driven animation in UE, is because for some reason you can’t render out keyframed animations based on Construction Script.
In my tests I’ve got a perfectly good Blueprint Actor set up with an “Offset” variable exposed in Sequencer that lets me drive the opening of each gate with keyframes. Works like a charm in the editor and I don’t need to hit the “Play” button to run the game in order to see what’s going on. It’s essentially the ‘logical’ way to animate if you come from the C4D/Blender/Houdini world.
BUT, for some reason - that I don’t understand and that nobody seems to be mentioning online - you cannot export these animations as a movie file / image sequence. Unless there is a way and I’ve just been too thick to find them
I must admit, I’m not quite getting it. Almost certainly because I’m missing the point.
I’m assuming each BP has it’s own timeline, in which case it’s fine to use the ‘play from start’ event.
I also have to disappoint you again with your second question: I did tinker with the sequencer extensively at one point and decided for two reasons not to use it:
-
It’s not ( or wasn’t ) location independent. If you decide you need to rotate your tunnel or move it, meh, you have to redo the whole thing.
-
Problems with the sequence <-> blueprint dialogue. I do see a lot of people asking this sort of stuff.
As far as I know, you have to render online, ie you have to play the sequence to render it.
I’m gonna re-read this post now, see if I can actually say anything useful…
Ok, my new question is: have you tried putting a print here to check the event is being called?
No I haven’t. Will do that now.
On your other question above, I’m using the same BP Actor three times in my level (i.e. they are ‘instances’ of the same BP actor item in the Content menu), so they essentially share the same timeline.
But by using the Event Track functionality, I can decide when this timeline starts (in Sequencer).
Ok, I can confirm that resetting the timeline works. I’m now going into sequencer world…
So, I tested this and yes, the “Print” node that I put after the “ResetGate” event fires three times when Sequencer loops back to the start. So essentially it should work.
As you can see in the video, it does work for the first “Gate”, but fails to have an effect on the two copies that follow behind.
I have to say, I think only you can see the jumps in the vid. I’ve looked several times, also in slo-mo…
Still tinkering here…
Ok, it works for me.
I’m starting to think that maybe it’s not a sequencer issue, and that it’s related to the code you have to the right of the timeline. Can you show that?
First of all, thanks so much for helping me out on this one!
Secondly, here’s proof that I’m not going insane
First round - the gates are in first position, i.e. ‘open’.
Second round - the second and third gates start in their ‘closed’ position (i.e. the position they assume at the end of their animation), then suddenly ‘jump’ back to their first position.
Ok, but can you show this code?
Yep, sorry. Photoshop didn’t play ball. Here you go:
And the timeline just has 0-1 inside?
The timeline looks like this:
The lowest value is ‘0’, the highest is ‘1.2’ (so that I’ve got a bit of ‘overshoot’ in the animation).
A more compact way of doing the same thing, although I don’t think it will make any difference to the problem
You needed the IsValid, because using LENGTH will give you a nonexistent index. You can always use LASTINDEX.
Thanks for all the info. I’ll try that out now. But as you said, this is not going to fix my ‘timeline issue’, right?
I would try setting a max of 1 in the TL, it may be the problem…