Determine if Matinee is finished *WITHOUT* using the level blueprint

So, I have a matinee that runs a short cutscene in my level. It can run multiple times depending on what the player does. When the player has achieved certain conditions in the level, and runs this cutscene again, I want to run some code when the cutscene finishes. This construct is set up with a lot of inter-blueprint communication, and to keep things nice for general use, there are a few constraints here. Most of these I can deal with, but one is causing problems:

How can I determine when the matinee cutscene is finished, without hooking events through the level blueprint?

Because all the conditions I need to test are locally calculated, and transmitted around between blueprints, it becomes very difficult to access everything I need from the level blueprint. I need a local solution, and it seems to be a gaping hole in functionality if such a solution doesn’t exist. This isn’t an isolated case either, this model is something that will be necessary a lot, so I’d rather not have to bind events to each and every matinee I place if I can avoid it.

Can anyone help me solve this issue?

That didn’t answer my question at all. The matinee actor does not seem to contain information about the current state of the cutscene, and usually requires a “MatineeController” to be placed in the level blueprint.

Matinee is a Actor which is placed on the level (it has movie clapper icon) its a AMatineeActor, there for you can get it as any other actor as well as set it in to variable.

It definitely contains matinee state, it’s matinee itself (did you actully look up the link i posted?) in fact you can access a lot of infrmation out of matinee in blueprint (blue file icon means varable or function is exposed to blueprint). I didn’t knew about controller, it’s blueprint thing, but from C++ you can normally manipulate matinee state from matinee actor.

Look it at it it really seems there few variables are unexposed which would be needed to detect end, you can only set position. But it’s not a issue from C++. I guess you will need to post feature request in feedback forum if you can’t do C++, they could make a delegate event instead of that controller

I did, but as I made clear in my question, I’m working heavily with blueprints. Jumping into C++ for this has the same issues as using the level blueprint. All the variables managing matinee state are not exposed to blueprints.

Yeah, that’s not the question I was asking. You can control a matinee from blueprints very easily, but I want to detect when the matinee has finished playing, and run some other code when that happens.

Use an event track in the Matinee actor to fire off an event at the end of the sequence.

Use less wordy questions if you already know the answer to half of what you’re asking, before getting angry with people taking time to help you.

I’m not angry, I’m just not finding the answers helpful. This also won’t work, by the way, because this requires the use of the level blueprint to read that event.
I find more information generally leads to faster and more accurate answers, but it seems not in this case.

You can use a very simple setup where the Matinee Controller for its event track fires directly into an Event Dispatcher.

Everything else, as far as controlling the actor, can be handled through your other BPs via storing it as a local variable there.

Is there a reason you are wanting to avoid using like 6 nodes total in the level BP, between storing the Matinee actor as a variable in another BP and using an Event Dispatcher for the event track? I’m not seeing how this is such a “gaping hole in functionality”

Well, that’s my current work around, but it’s not “6 nodes total”. As I said, I’m intending to use this many times per level, so I have to manually hook up this event for every cutscene using this method, which rapidly becomes a chore. Yes, I can manage this way, but I’d rather have a scalable solution, which is provided by most cutscene engines, and I’m surprised that Unreal doesn’t support it, and has a very strange pseudo-event system tacked on, rather than having it nicely unified with the existing event system.

And I do know I can manage controlling the actor from a variable, that’s exactly what I’m doing to play the cutscene in the first place. A message passed from one blueprint triggers a second to play the cutscene, and I’m looking for a way that second blueprint can pass messages to a third blueprint when it finishes. At the moment, I have an event dispatcher registered, which is called by the “Finished” node in the matinee controller in the level blueprint, but this is a rather untidy solution.

I found it weird as well when first using Matinee event tracks.

As long as you have a system setup where your necessary BPs and instances are stored in the level BP on Begin Play or whatever you need, so all that casting is already taken care of, you just create a custom event in the BP you’re wanting the Matinee event to go to, pull it out of your level BP variable, hook it up to the Matinee controller, and bam.

That’s 2 extra nodes per Matinee event, vs if it were possible to get the Matinee controller directly from a different BP.

It’s weird but not that bad.

EDIT: I’m not trying to imply you don’t know any of this or haven’t done it, but simply suggesting just in case :slight_smile:

I’m grabbing a matinee controller and a level reference object in the level blueprint. The reference object is my matinee controller blueprint, on which I just call an event when the matinee controller calls the Finished event. Then I can put all the code I need in my matinee controller blueprint. It’s just a pain that I have to do this every time I need a matinee controller to operate in this way.

Yeah that’s identical. Too bad dude :confused:

+1 feature request for “IsFinished” “GetPlayBackPosition” type of functions for matinee variables in blueprint.
+1 feature request for EventDispatcher variables that can be queried from the matinee actor variable to bind events in blueprints, instead of using the level script

Matinee actors having their own BP with an Event Graph and all that would be pretty sweet

Yeah its very strange that you cannot do this in a normal blueprint. I also wish we could access a list of event track keys from a Matinee Actor reference in ANY blueprint, not just the level blueprint.