Deleting parent bone canvas not updated

When removing a parent bone, the bone is removed from the Parameters panel, but it still appears in the canvas because child bones keep referencing the deleted bone as their parent.

The deleted bone is no longer visible in the hierarchy panel, but the child bones still behave as if the deleted bone is their parent.

Steps to Reproduce

  1. Create a skeleton: 1 – 2 – 3 – 4 – 5
  2. Delete bone 3.
    test_parent.zip (787.7 KB)

Actual Behavior

  • Bone 3 is removed from the panel.
  • Bone 4 still keeps bone 3 as its parent.
  • Bone 3 still appears in the canvas.

Expected Behavior

  • Reparent children (set parent to None ) for bone (4)
  • Delete the entire subtree (like in Spine software )

the alternative solution is change parent manually

1 Like

What about to forbid the deletion at first and offer the choice to the user?

Something like “Hey, you are about to mess everything, what would you like to do?”
Then to propose the alternatives (and to propose to do a proper backup before ^^)

1 Like

Yes, showing a delete confirmation message

The question now is:
Should we delete only the selected bone and reparent its children to None (which would disconnect the skeleton and result in multiple root bones) or should we delete the entire subtree?

This is where we could provide the alternatives.
Reparent to None (make them independant)
Reparent to Bone 4 to Bone 2 (the original parent of Bone 3)
Delete the subtree

But we also need to check the consequences and apply it to all the Kaypoints/Keyframes that are impacted.
Otherwise there will be other side-effects bugs

2 Likes

Should we give the user these three options when deleting a bone that has children, or should we define one default behavior for this situation?

@ice0 @rodolforg @Svarov @mohamed.Adhamc

I’d go for the default behavior, and that would be “delete the subtree”. Currently we already have a “reparent” action, so if someone wants to split the skeleton into “two”, s/he could reparent to None first. I suppose this latter case wouldn’t be a common need.

@KonstantinDmitriev ? @Svarov ?

1 Like