Swimming Breast Stroke

Hey. I want to create a more realistic swimming animation from a first person perspective. The tutorials on-line show how to make a volume swimmable but the swimming speed for the characters are constant no matter the animation. I want to create swimming based on the animation the character is in.
i.e. When arms are coming back to retracted position from full extension, add acceleration on top of existing velocity. When arms are fully retracted, no acceleration, reduce velocity but maintain some of the initial directional speed.
Show I do this by firing an event during a frame of the animation then using that to determine the underwater velocity of the character? And is there a function for doing maths on component vectors so I can figure out the residual speed?

Best way would be to modify the max speed of the character via a ‘Curve’ that you modify to ‘fit’ the animation.

Even when walking, characters have a constant velocity - but the animation tricks us into thinking it doesn’t.