How to activate event in level blueprint from level sequencer?

I have created some nice behaviors in the level blueprint which activate on a keyboard binding. I now am trying to create a sequence where I want the event to trigger when it is reached in the sequence.

For this I generate blueprint interface functions, call the event from the level, and from the sequencer. I have read and tried some of the following approaches but they don’t seem to work. Apparently something has changed starting in 4.24 and on…

Any help is greatly appreciated.

Update: Made a tutorial video showing the method below. Cheers! UE4 - Sequencer Events & Level Blueprints - YouTube


Note:

  • This requires the Blast Plugin to be enabled to call Blueprint Interface functions from the Sequencer Blueprint.

  • If something isn’t working and you think it should… make sure to compile and save, especially on the Sequencer Blueprint.


I have discovered the secret sauce. It may have very well been the same as being described in a few of those other posts but perhaps some of the simple details were missing. IDK. In any case, they put me on the right path. Below is the successful solution for 4.25.

Step 1

Create a blueprint interface. Go to your content browser and in the folder of your choice, right-click>Blueprints>Blueprint Interface and rename to a super cool name like “BPI_Events”:.

Then click add new function with your favorite name (green button) .

Compile and Save

Step 2

Go to your level blueprint and under Class Settings>Implemented Interfaces, search for BPI_Events and add it. Now add an event to your Event Graph by right-clicking and search for your function (e.g,. ToggleR) and add the “Event” version.

Compile and Save

Step 3

Go to your level sequence and click “Track” and add Event. Add an event and double click the event to go the the Sequence blueprint.

Compile and Save

Step 4

Ignore any sequence event added. Add a function in the sequence blueprint and give it another super cool name (e.g., Class Interface) then drag of the execute node and search for the function (e.g., ToggleR). Be sure to add the “function” and not the “Class” (says Interface call next to it). You have the right one if it says “Target is Sequence Director”.

Drag the target node from the function onto the function input block to add it as an input.

Compile and Save

Step 5

Go back to the sequence and right-click on your event and go to “Properties”. Switch the Event reference to your function (e.g. ,Class Interface) and make sure to set the “Pass Bound Object” to “Target”.

Compile and Save

Step 6

Test it out. It should work now!

1 Like

This helped me. UE4 - Sequencer Events & Level Blueprints - YouTube

Can anyone confirm that this works in UE5? I followed the written steps here and then I tried the video, and can’t get either to work.

Is anyone else as confused as I am about why it’s so unreasonably convoluted to trigger a BP from sequencer? I feel like I must be missing something.

1 Like

Right there with you. Just came to this and its stupidly obtuse. I have been doing VFX for 20 years, and this is beyond dumb.

2 Likes

I’m trying to do the same thing myself. I’m actually surprised how hard this is.

I can kindof understand since sequences seem decoupled from the level itself, and you can drag any sequence into any level. But it is a bit strange since I tried dragging a sequence into a different level once and had to actually reassign the actor references to new actors in the new level. I assumed it’d somehow figure it out from actor names, but it seems like sequences have a hard reference to a specific actor in a specific level anyway, so not really sure why a level sequence also can’t easily call level blueprints directly.

I also tried dragging a level blueprint function into the level sequence graph, and this put the sequence asset into some bad state where I couldn’t save the file. Must’ve been doing something weird with circular references. Unreal itself didn’t prevent me from performing this operation by disallowing the drag drop operation into this graph. Usually unreal fails to allow dragging things into incompatible blueprints.

I did end up having to create an interface for the level blueprint. In UE5 if I just make an event track not bound to any object, it seems to pass the main level itself as the reference into my function, and it does call the level blueprint that way. It basically requires multiple layers of function calls to get to the level blueprint. Maybe it’s a UE5 thing, but I didn’t have to do anything with a blast plugin, but I may check that out later.

Created an event track not bound to a specific actor.
Made sure to pass the bound object to the level sequence event’s parameter (Which I guess ends up being the level blurpint).

Calling the interface function since I can’t directly reference the level blueprint as a type in the level sequence.

Created an interface that has all the level blueprint functions.

Made all my level blueprint functions implement the interface.

Now I can try to create weapon reloading animations within the engine and control rig.

I actually noticed my method I described above is kinfof random. It sometimes works and sometimes doesn’t and I have to try to PIE multiple times while running the sequence manually before it somehow occasionally binds the level blueprint to the right parameter.

And that’s every time I add a new keyframe where I call the event. It’s not the event track itself that binds to the level blueprint. I’m now looking for an even more reliable way to call the level blueprint.

I also found more evidence that this should be easier. The level blueprint has a way of binding to a specific actor that is repsonsible for playing the level blueprint in the level in the first place.

This is if I enable a PIE session
image

This is in editor only if I click the same button:
image

Somehow I eventually manage to make it so the technique I described above has the event track properly link up to the level blueprint so even when I’m not in PIE mode and editing my animation in sequencer, I can drag the playhead forward and trigger the scripts to play. There’s an options for a track to run when played in reverse but dragging the playhead backwards in the editor doesn’t trigger that.

I’m considering a different method where I don’t use level blueprints at all for what I’m doing due to how flaky this is. First of all, If I was working on a cutscene for my game I’d expect to be able to run level blueprints easily from the sequence editor of all things. Second of all, I’m mostly doing this to create animations for my character reloading a gun using the new control rig feature so I can stop using ART in maya because support for that has died long ago. I have a few basic scripts that when things work, it properly makes my characer show/hide the gun he’s supposed to hold during animations, and the magazine he’s reloading. It all works when things do work, but to get it to work is really finnicky and random.

Here’s a video of it somehow working but I’m never sure how to make it work and it just randomly starts to work. The magazine is able to attach itself to the gun and the character’s hand, and hide itself whenver triggered because the script keyframes managed to bind the level bluprint as the target. Not sure what I did to make this work, but somehow the parameter passed to the blueprint scripts in the sequence director blueprint happen to be a reference to the level blueprint. (Also please keep in mind this animation is about 50% complete and is in no way a reflection of my ability to make a weapon reloading animation.)

And here’s a video of it not working. I’ve tried what I tried before but the paramter to the script being the bound object is somehow “None” instead of the level blueprint, so it’s not running the attach magazine script. And if you pay attention to my mouse cursor, I’m hilghligthing the magazine not being where it should be on the gun due to the bound parameter being “None” instead of the level blueprint. (Here I’m taking an animation I previously made in Maya and the ART tool running on the UE4 Mannequin and recreating it in Unreal’s tools on the UE5 mannequin. It’s almost like tracing/rotoscoping. Retargetting didn’t work due to a new skeleton structure I’m experimenting with.)

Also maybe I’ll try the blast plugin instead. And if anyone is interested in how I even managed to do what I did I can put out a youtube tutorial for that too. Doing this in Unreal is very challenging in 5.0.2 but it took some clever tricks. Might be easier in later versions of Unreal when they fix a lot of things in regards to space switching and other such things. It definitely required modifying the control rig and creating a lot of custom control rig controls that don’t come with metahuman or lyra or the 3rd person template.

If unreal allowed space switching with objects not in the control rig itself, this kind of animation would be trivial to make.