Mirroring joint names does not work in skeletonMeshEditor.
Steps to Reproduce
Mirroring joint names does not work in skeletonMeshEditor.
To repro
- Open skeletonMeshEditor using a SKM that uses bone names like “L_arm_clavicle_env”, for example “Robot simple” from the Agora samples pack
- Click Skeleton -> Edit Skeleton
- Delete “R_arm_clavicle_env”
- Select “L_arm_clavicle_env”
- Under Mirror set left string to “L_”, right string to “R_”
- Click Mirror
- BUG: The joint chain is mirrored correctly in terms of axes but the names are all wrong. The side prefix was not replaced correctlty and the numbers changed without the user requesting this. See attached image
- Feature request: Please add a section on the “Skeleton” tab to rename joints using add/remove/search/replace operations. That would help in general
I think this might be related due to skinning being on the mesh already. When deleting “R_arm_clavicle_env” the SKM editor seems to hold on to the deleted bones in the background, presumably to maintain weight. But then it fails to correctly reassign weights to the new joints that were mirrored.
What I was trying to do was to adjust the joint orients on the L_ side, then mirror to the R_ side. I thought the quickest would be to delete R_ side, and mirror. But it’s causing issues.
Hey there,
Unfortunately, the intended workflow is that when you delete a skinned bone chain like that, we move all the skinning to the next possible parent joint. The editor view looking like it is holding on to weighting data like that, is a bug. If the character skinning is intended to be mirrored as well, then the designed workflow would be to mirror the skinning post a delete like that.
Dustin
[mention removed] that makes more sense. Is this filed as a bug already?
I think I would have totally understood what’s happening had the weighting been shifted and the chain actually deleted, rather than being kept in memory somehow to maintain weighting. Its one of those things where software tries to be helpful, but if it doesn’t quite work it ends up being more confusing than the simpler behavior you described.
Yep this is filed: https://issues.unrealengine.com/issue/UE-364085
