Spawn projectile actor on animation notify

My current implementation feels wrong. It mostly works, but I don’t like it.

Scenario: I have a character BP with a corresponding animBP, a fire animation set as an Anim Montage, and a weapon BP that’s just a static mesh where there’s socket for where the ammo comes out.

Anim montage looks like this:
fire
(upon recording this GIF, I realized that my anim notify marker was in the wrong spot. that’s been fixed now. I don’t think it’s relevant to my problem)

The weapon has a BP Interface with the FireWeapon function, and in the weapon BP, I set up the projectile spawn this way:

I want the projectile to spawn only at the moment of the notify.

I managed to get that working by adding this to the AnimBP

image

and this to the character BP

image

but this entire set-up feels… wrong somehow. I don’t think that that firing logic should be in the animBP, I don’t think that the animation should be played in the character BP.

And if you’ll see in the output

fire2

my character spawns a projectile at the wrong time (there’s also a bit of delay between pressing the fire button and firing). The only way to actually fire in a straight line is to press space enough times in a row.

I want my character to have the firing animation, spawn the projectile at the animation notify at the socket of the mesh.

What should I be actually doing? How am I really supposed to set this up?

Thanks.