How add event on Animation end on blueprints?

I create amin bp, and add bind, but it’s not workeng. Why???

Not 100% sure, but i think maybe “bind event on montage end” should specify what montage it is bound to?

thank you for your answer, I learn more informations and I thought I need animation, because I think montage not suitable in this case.

I need dynamic loading 3d models and animations, I don’t now how to create montage in runtime and is it necessary at all use montage.

How to create event: “on animation end” or some of them? Although may be I will need create new forum post

Depends on what the purpose actually is.

If you need it to work on a state machine, then you just create a transition notify.
Those “events” are currently always called by the engine - unlike regular notifies.

The event will allow you to call in custom code for gameplay or whatever else you require. Generally without missfiring as far as I tested personally.

If you need it to work with a montage, the approach you were using is correct, you just need to define the montage to check
Much worse for performance mind you.

Use the play montage node that comes with the time remaining pin.
Promote it to a local variable, plug that local variable to a delay (attach the exec pin off the montage to the delay).
Run the rest of your code after the delay.

This can cause obvious problems with looping montages and a few other situations, so the event path you were following previously is usually a better option.

Now the other thing to note is a cpp custom class.
You can derive your own custom blueprint callable function by taking the code out of “get relevant animation time remaining” and modifying it for your needs.
Usually, it requires a skeletal mesh animation blueprint reference (which is avaliable within the character but you need to cast to it and save the result).

The last thing worth noting.
If you add the same animation curve name to all animations and set the value to 0 at the end, you can hack this by checking the curve values… this is probably the worse performance option out there, but it is easy to implement…