How to get root motion from animations made in blender?

I’ve made some animations in blender and I would like them to drive the character’s movement through root motion.

In blender, my rig’s root moves moves all other bones, and I have animated it to move forward with the walk cycle:

When I export this to Unity (via .fbx), the animation preview shows the walk cycle moving forward:

I’ve also made sure the box to allow root motion is checked in the animation controller, and assigned the root bone as the root node in the rig options.

Having looked at examples of root motion controllers and assets, I cannot see where they differ from mine. Any help would be very much appreciated.

In case anyone has the same problem, I didn’t come to understand it but I made it go away by changing the rig type to “generic”, applied the changes, and then changed it back to “humanoid”.
It seems that importing from blender can be a little inconsistent, and changing the rig type forces it to try again. Or perhaps I made some unwitting changes that were erased when the rig type was changed.