Importing a skeletal mesh with extra bones to an existing skeleton asset requires saving random animations

If I have an existing skeleton asset with meshes and animations already assigned, whenever I want to add a new skeletal mesh with some extra bones, the editor asks me to resave a whole lot of animations for that skeleton. Whichever animations need to be saved seems completely random, as far as I can tell, but it is quite a lot of them.

This isn’t a problem per se, it does not seem to affect the actual animations and I can even close the editor without saving the animations assets themselves and not see any noticeable problems, but it always worries me a bit that something might have gone wrong. Does anyone why this is happening, or is there a way to prevent it?

If you’re importing a Skeletal Mesh that has additional bones and setting the new Mesh’s Skeleton in the import settings to the existing skeleton, you are effectively adding additional bones to the existing skeleton. If you do this with multiple meshes with different additional bones, you’ll end up with a skeleton asset that has numerous bones that may not always be used. This will result in the transform of all additional bones being calculated every frame on other assets that use the skeleton, even if a particular mesh doesn’t utilize those bones. Your existing Skeleton’s bone hierarchy will also inflate.

Since extra bones are being added, the animations need to be re-saved to account for the changed bone hierarchy. You can prevent this by importing the new Skeletal Mesh without selecting the existing skeleton, then setting the new imported Skeleton as compatible with the existing one; this way they’ll stay independent, but you can still share animations between them.

If you aren’t getting the “failed to merge bones” error with the current method you’re using, setting them as compatible should work fine.

If the animation data was being changed I would expect ALL existing animations to require saving (and again, they seemingly do not actually require saving, it’s just the editor asking to save the animations but I can chose not to with no noticeable negative effects).

I’ve been trying to figure out what is the logic behind which animations are being updated. So far all I can tell is assets that are not referenced in blueprints/aim offsets/blend spaces etc. never need to be resaved.

Just to be clear the changes to the skeleton structure are minimal, it’s all the same but I might add a bone or two for a ponytail, so it’s not practical to have to set up an entirely new skeleton just for this.

Resaving the animations isn’t really a problem, I’m just wondering what I’m missing because the process seems unnecessary

It may be that the animations are getting empty bone tracks added to them as the new skeletal mesh adds the additional bones, and only the animations that are directly referenced by other objects are being checked, especially if those BP/AO/BS assets are in current use. However, that’s just a guess; I don’t know exactly how it works internally.

A couple of bones isn’t an issue, unlike the metahuman facial rigs that have hundreds; with current hardware speeds, it’s more about organization and project complexity than anything else.