Animation Notify does not always fire?

So here’s the thing. I have a simple FPS thing going, I’ve got my player’s hands on screen, they’re wielding a gun and I have a reload animation I play whenever the player reloads his gun. Now I want to do the simplest of things - allow player to reload again only once the animation has finished playing.

I’ve handle player input in C++ with a simple BindAction() setup so that whenever the player presses ‘R’ I call OnReload(), which sets isReloading=true (there of course more logic in there, but I’ve disabled for now to try to figure this out).

In the reload animation I have an animation notify about 80% way through called ReloadDone.

Then in my FPS hands event graph I check for the aforementioned isReloading=true in Event Blueprint Update Animation, in which case I set a secondary boolean variable (triggerReload) to true. I also listen to the ReloadDone notify event, in which case I set isReloading=false and triggerReload=false.

Finally, in the FPS hands animation graph I have an idle and reload state, and the transition rules between the two are just checking if triggerReload is true (go to reload) or false (go to idle). Again, there are more states in there but they are irrelevant and do not get triggered.

Now this setup works fine … as long as I don’t hammer the reload key. If I do, it’s usually the 3rd reload when the hands just play the reload animation and then get stuck on the last frame, and by looking at the anim graph it’s stuck in the reload state. As I’ve literally stripped everything out of my setup, so this puzzles me greatly. It’s as if either the animation notify does not fire, or it does fire but triggerReload gets set to true immediately afterwards, meaning the transition to idle never takes place.

Any ideas what I might be doing wrong here?

I can actually reproduce the same behavior in an empty test project. Happy to put that up somewhere if anyone has the energy to take a look :slight_smile:

…and for the record this happens in 4.12 too.

It’s as if the animation notify triggers correctly, and sets the boolean to false, but before the animation graph transition kicks in the input is read and the boolean gets set back to true.

And it seems using animation montages with notifies inside them instead of just animation clips with notifies solved this problem.

I have the same problem, thanks a lot for posting the solution here! Good luck with your project :slight_smile:

Thanks, that helped me with a different issue.