when making attack animations, its good practice to remove frames to make it feel snappier and more responsive. If you move your hand super fast in front of you, your brain doesnt register any inbetweens, its the start and ending that make it feel like its moved. This means you can cut out any frames inbetween and still make it feel like its moving if you make good recovery (after impact) and build up animation (before impact) For player controls, there is usually no build up so that you dont experience any delay. However, enemies should have build up so that a player can predict their attack.
I use this a lot for Westward where the player has no input delay while the boss has build up frames for their attacks.
For these all ive done is remove frames (and also made the impact frame white for style)
This first one I kept the initial delay - however this delay could be coded into holding B to make it feel more like an actual spear attack
This one is a more standard attack with no delay


