The solution to the problem of Blender exporting the armature object as the top (root) of the skeleton can be solved by commenting out just two lines from the python script “C:\Program Files\Blender Foundation\Blender\2.79\scripts\addons\io_scene_fbx\export_fbx.py”.
Probably a good idea would be to make a backup of export_fbx.py before making this edit.
Search for these lines of code in export_fbx.py:
else:
# the armature object is written as an empty and all root level bones connect to it
fw('
Connect: "OO", "Model::%s", "Model::%s"' % (my_bone.fbxName, my_bone.fbxArm.fbxName))
This is the code that is adding the extra bone. Comment it out like below:
#else:
# the armature object is written as an empty and all root level bones connect to it
# fw('
Connect: "OO", "Model::%s", "Model::%s"' % (my_bone.fbxName, my_bone.fbxArm.fbxName))
Save export_fbx.py and restart Blender if it’s running. You should not have the extra armature as root bone problem now when exporting skeletal meshes and animations to Unreal Engine 4.