That is what I don’t understand. I tried with the swimming position you asked help before and I didn’t need to do that. I didn’t touch the rotation of the root bone because all the animation was in a single direction. What I did was rotate the hip bone over the root bone to have a “swimming position”. Then, on Unreal, when I marked the “root motion” check, the animation was correct.
Perhaps I am wrong, but I understand the root motion like the origin where Unreal “begins” the animation, so if Unreal has a loop animation, the root bone serve as the origin (in rotation and position) for the next loop. So, in the first loop, Unreal expects a root bone on (0,0,0) and with no rotation. In a lineal movement, the rotation of the root bone isn’t used, because the movement (not the mesh) doesn’t change direction, only position. If there is a walk (or swim, or run…) that changes the direction of the movement (ex: a turn of 90º), then the root movement must turn, but not because the mesh turned, but because the movement did and Unreal must begin the next animation turned 90º.
That is what I understood of root motion, so I really don’t understand why you rotate the root bone on the origin.
I may be really wrong of how root motion works because I am just learning it, so if some Blender/Unreal expert may explain it, I would be grateful.