So I see variations of this question all over the place, but no satisfying answers, so here goes.
When using root motion to move your character in Unreal Engine the Velocity property of the Movement Component returns the velocity of the animation/root bone and not the actual velocity of the character. These two things are the same when there are no obstacles, but if the character is blocked by something and just walking in place (i.e facing a wall so he can't move forwards) the Velocity property is still returning the velocity of the animation/root bone as if it was moving through the wall unhindered, even though the actual velocity of the character is now zero.
Is there some (easy and performant) way to calculate the actual velocity of the character?