System Information
Windows 10, NVIDIA GeForce GTX 1060 3GB
Blender Version
Broken: 2.79 (sub 0), branch: master, hash: 5bd8ac9
Short description of error
When joining (CTRL+J) two armatures, bones with the same name will get something like ".001" appended to the name. However this does not behave the same as if we have changed the name of the bones manually before joining. The bones with keyframes (or animations) will fail to update accordingly as the name of the bones gets changed. The bone constraints get lost. (This also causes naming problems on weighted meshes)
Exact steps for others to reproduce the error
Based on a (as simple as possible) attached .blend file with minimum amount of steps
- Start with empty scene
- Shift+A > Armature > Single Bone
- Press: Tab E Esc G Z 1 Enter
- Goto "Pose Mode" and select all bones
- In "TimeLine": Pick "Rotation" keying set, and set key at frame 1
- Move to frame 250
- Make some changes to the bones
- Select all bones and set key
- Goto "Object Mode" and duplicate the armature (place the new one beside the old one)
- For each armature: Select it and run "Bake Action" (uncheck "Only selected"), Pick Pose and OK
- Navigate to "NLA Editor"
- Push down the both actions as new NLA strips
----- Done preparations, This is exactly what's done in BlenderCommunityBugReport.blend
Bug:
- Select both armatures, press: Ctrl+J, now one of the animations will fail
Workaround:
- Change the name of the bones in one of the armatures so that no bones have the same name across the armatures
- Select both armatures, press: Ctrl+J, now both of the animations will work
One more thing:
If there are some meshes weightpainted for the bones. The "auto name change" will break the constraints, while "manual name change" will retain them.