Hey, I am implementing an animation blueprint for an AI which is used for sword combat. I’ll explain the behavior I want before I go into what I have so that you get a better idea of what I want. I will have a sword combat with an AI in first person. Now, in a situation where AI is attacking and is in the middle of an attacking animation sequence, I want the AI to cancel that animation based on player’s attacking motion and play a blocking animation instead. I have the blocking working, but the blocking only starts once the attack animation sequence has completed. However, this is too slow for a combat system.
Now here is my animation blueprint, I am using booleans to go into animation states and resetting them using animation notification’s events. All the states except idle_walk_run are plain animation sequences while the idle_walk_run state is a blend space 1D.
Now imagine that I want to switch from Attack_Top_S to Block_Front_S as the player attacked me, I am setting the Block_Front boolean variable which allows the transition. But this can’t happen till the player comes back to idle.
If I make a transition between attack and block, then the animation notification for attack animation won’t trigger, thus not resetting the boolean as that animation event takes place at the end of the animation sequence (something else requires it to be there).