Attack animations and combos

Attack animations



The basic attack animation for two swings, three frames per swing. I noticed that the animation does not look very smooth so I looked at some free assets I've used in the past and noticed that they have much more frames per swing compared to the three I have. Adding a few more frames in each swing should make it look better, especially since I had this idea of an effect in the game that quickens or slows the speed of the player's attacks.


Attack combos

Attack combos use an enumeration list of different attacks to determine which attack to play next. The animation blueprint plays the first attack and if the attack input is pressed again during the animation, the enumeration is set to attack number two, which is played after the first attack finishes. If there is no attack input, the first animation transitions to walk and idle, and the combo is finished while the state of enumeration is reset.

The attack event called by attack input. switch event changes the enumeration to the next attack of the combo.

The attack combo could also be extended further by adding more states in the enumeration and then updating the switch event to change the enumeration to the following attack. No further calls for animations are needed as those are handled in the transitions in the animation blueprint.

Transition conditions from Attack01 to Attack02 in the animation blueprint.

The reset the enumeration is handled in an animation notify that plays at the end of each attack animation. If the enumeration has not changed to a follow-up attack it resets the player state (more of this later) and current attack. If there is a follow-up attack, then the notify does nothing, and a similar check is made at the end of the follow-up attack's animation.

Animation notify at the end of the attack animation checks if the combo should end.

The only issue at the moment is that the input for a follow-up attack has to be pressed during the ongoing attack animation which is not a very long window. Ideally window to continue the attack should linger on for a short amount of time even after the animation is finished. For example, the window for the next attack input could be extended by having the animation notify start a short timer that then does what the notify currently does if no further inputs are made.