OK guys, I was about to lose my mind over this, but I finally (FINALLY) managed to wrap my head around how to call Blueprint Actor Events inside of the Level Sequencer.
As I’m producing a lot of 3D motion graphics inside UE at the moment, it goes without saying that using events in order to trigger secondary animations is incredibly powerful and I have wanted to start using them for over two weeks now.
Finding out about the ins and outs of this process took far too long and was at times incredibly frustrating, due to a lack of clear documentation on the issue. In order to remedy that, I wanted to outline the whole process here. Rest assured, I’ll pop back to this post plenty of times myself in the future to get a refresher when things don’t work. But most importantly, I do think this will help others looking to get their events to show up in the editor.
First of all, you need to do all of the ‘animation coding’ work inside your Blueprint Actor’s ‘Event Graph’ NOT the ‘Construction Script’, as the latter will only be called once at the beginning, so it’s no good for ‘firing’ animations all over your Sequencer timeline. However, the Construction Script is good to set the ‘initial state’ of your Blueprint Actor. I’ve attached a screenshot of how a simple event could look like (in this case quickly turning on a point light and then turning it off again), using the Event Graph. Mind you, this setup does include a tiny bit of Construction Script (see second screen shot) to ensure your light starts with an Intensity of ‘0’ (so it is turned off at the beginning).
Then you will need to drag the Blueprint Actor into your level and add it to Sequencer. You then have to add an Event Track to this Blueprint Actor in Sequencer.
On this Event Track, you can now ‘bind’ the event(s) you’ve created to indidual ‘event keyframes’.
Here is where the internet left me standing in the rain. Despite following a dozen tutorials on the topic, I simply couldn’t get my events to actually ‘show up’. My events either wouldn’t fire at all or get stuck in weird ‘random states’.
I was pulling my hair out, until it finally hit me! The trick is, that - in order to see your Sequencer events firing in the editor - you have to hit the ‘Play’ button to ‘run’ your level, before hitting play in Sequencer. What a simple solution!? Once you’re ‘playing’ the level everything works as expected.
Yet none of the tutorials explicitly mentioned that. To all you Blueprint mavericks out there, this will be super-obvious, but for someone coming from the good old CG animation world, this wasn’t the place I was looking, as I was under the assumption that using the Sequencer was the ‘non linear equivalent’ to pressing the Play/Run button (essentially a tool integrated into UE to use it more in line with DCCs such as Blender or Houdini to create CG animations, as compared to making games). In short, I was convinced that using either of them was mutually exclusive. It goes without saying that I was very wrong…
Now, in order to RENDER this out in a way that mirrors the preview you saw during ‘play mode’, you have to tick the ‘Run Construction Script in Sequencer’ option in your Blueprint’s ‘Class Settings’. Mind you, you don’t want to tick this while you still intend to preview your Blueprint animations, as ticking it will stop your animations from showing up in ‘Play’ mode (as if things already weren’t complicated enough).
Either way, once you tick ‘Run Construction Script in Sequencer’, your render should match what you saw before, while ‘simulating’ in the editor.
It goes without saying that this took far too long for something so simple. If anyone of the Epic team reads this, it’d be great to see an in-depth tutorial about this, so that other people don’t have to go through the same ordeal. Or, just pay for a couple of lunches and I’ll happily do the tutorial myself
OK, rant over
The Blueprint Actor’s Event Graph Setup:
The Blueprint Actor’s Construction Script Setup:
Adding the Blueprint Actor to Sequencer with an Event Track:
Being in ‘Play Mode’ to preview Events while playing your animation in Sequencer:
Ticking ‘Run Construction Script in Sequencer’ before rendering out your animation via the Movie Render Queue (in order to have your final quality animation match your preview):