Character BP with root motion does not have correct world position

I’m stuggling with root motion, big time.

I have an animation of a spaceship in Maya that flies for a VERY long distance, over a mile lets say. I need to be ale to track the location of this spaceship in Unreal in order for many systems to work correctly, so it needs to be a character BP with root motion enabled. However I am having difficulty getting the root motion animation to be positioned exactly as I have authored it in Maya. It is slightly offset in x,y (i am z-up).

As an experiment to verify that my root motion animation is in the correct spot (which it currently is not), I have exported two versions of this animation from Maya:

-Version 1 (my control in this experiment) is exported from the authored world location in Maya. In Unreal, it plays as a simple animated skeletal mesh and represents the correct world space location I am looking for.
-Version 2 has been moved so that the first frame of the animation is at the origin (0.0.0) in Maya and then reexported. Meant to be played as a character BP with root motion, where I set the characters initial position to match the first frame location (as authored in maya).

When I play both of these animations at the same time in Unreal (two identical spaceships, one a skeletal mesh, and the other a character blueprint with root motion and set to flying), the root motion spaceship is off slightly from the skeletal mesh spaceship. Both spaceships start right on top of each other but once they start to move, they instantly are off slightly, by about the width of the ship itself.

I cannot for the life of my figure out how to get this working. If I disable root motion in my character BP, its rock solid, but with root motion enabled its off.

I am wondering if Unreal has a hard time with being so far from the origin of the scene, or perhaps the ship is flying too fast to keep up with? ANY suggestions or help would be greatly appreciated. Thank you!

Well lets play around with game theory.

Using root motion you do not need to use a character BP as all movement of the animation is controlled by the root of the character rig as to location, rotation and velocity so when connected using a character BP and set the animation to RM the movement component is suppose to ignore movement behavior as all of the necessary data comes directly from the animation data.

Except.

The collision capsule gets glued to the root of the characters root and the physics keeps the player in a constant state of falling. You can switch to can fly all day long and the result, as you might have already discovered, is the object will move in the X and y but never in the Z.

So

You can move the object based on direction via the root motion but the issue of moving up is a function of gravity.

As an example use the 3rd person template, select the character BP, and in the Character Movement (General Settings) change the Gravity Scale to -1. The next time you hit play your character will move left/right/back/forwards as expect but the moment you jump your character will fly up So in theory flying is like jumping but you control the effects of gravity that you could tie your root motion into as the imputed controller.

My question though is why would you want to use RM for a space ship?