Anim Notify not firing, not sure why

so I have no idea why the string OFF isn’t printing, it makes no sense. and yes I checked the animation has it. ON fires though. any ideas?

1 Like

That’s how they work.
They fire IF they can. With no guarantees.

So why does it not fire, and how do I make it happen?

Is it too close to the end of the animation? That was once a problem I had with these notifications.

Midn you, they removed 99% of the explanation and just left you a warning

Due to their synchronous nature and the precision resulting from it, Branching Points are more performance expensive than Queued. You should only use them when an event must be fired at a precise moment along the animation timeline, such as jumping directly to another animation that matches up frame-to-frame. If being off by a frame (or some percentage of one) is not important, you should use Queued instead.

Basically look the docs over. Find where to change from que to branching point and you should be set.

Btw, from a design standpoint changing collision is a really bad idea.
You may want to rethink the way you work it.

Toggle a bool and prevent the event from firing is likely much faster/better/optimized/and reliable.

How do I make an event that when the Boolean changes though it performs an action? I know I can’t put it in the tick because performance but idk how else you’d be able to do it besides an anim notify

This is more of a BP ask rather than animation.

In terms of “making a boolean stop execution”
You literally just put a branch node and use only the relevant true/false execution pin
or you “return” whatever function if the boolean is true/false depending on what your needs are.

The function/event/whatever will still execute, but the code within will not - which is what you are after here.

For the rest, there’s many ways to skin a cat:
The most efficient one is to get the animation toggle a boolean when needed or to use a Notify State.
Notify State is a good solution because it includes a start, an end, and a tick.
You won’t necessarily need to use tick part, but the start and end can set the bool to true and false just fine.

Anim Notify States (Notify States) work much like the standard Notifies above. They have 3 distinct events: a begin, a tick, and an end. They start straightforward, firing at the moment the Notify begins and ends, and the Event Graphs in them fire off when their time comes up in the animation. The tick fires off every animation update until the end event is hit. The major difference between normal Notifies and Notify States is that Notify States are self-contained Blueprints.

Additional things to considered with Notify States:

  • You are guaranteed to start with a Notify Begin Event.
  • You are guaranteed to end with a Notify End Event.
  • You are guaranteed to have Notify Tick wrapped between a Notify Begin and a Notify End event.
  • The order between different Anim Notifies (normal or state) is not guaranteed. If you put two Anim Notify States next to each other, the first one is not guaranteed to end before the next one starts. Only use this for individual actions which do not rely on other Notifies.
  • Negative play rates are supported. Notify Begin is still called first regardless, and Notify End called last.

The alternative to notifies is direct animation time.
You can “GetInstanceCurrentStateElapsedTime” in C++ for non montage things
and “Montage_GetPosition” for montage things.
This returns the float (time) the playback is at.
You can then, if > X / bool = true;
(obviously this would be done on tick, or “while” something).

Decide which way to go.
Knowing Regular notify won’t cut it if you need to actually toggle OFF within the same animation/montage.

There’s also the 3rd option.
React to user input, not animations. IF attack button was pressed, toggle to check sweep of collisions.
Having it NOT be related to a montage playing or animations CAN be beneficial. Just depends on what you are doing.

I have experienced this statement, then I found that the issue was placing another skeletonmesh that uses compleately another skeleton that will not receive animnotification from that original skeletons animation clip

I was having the same issue, here’s what I was doing wrong:

When in the anim_notify BP I was creating a normal function, but I needed to create a “Received Notify” function.


Let me know if this helps.

EDIT: Sorry I just realized you were having a slightly different issue. For your situation, are you using an anim_notify or an anim_notify_STATE bp?