Page MenuHome

Cached B-Bone segment transform data is lost when mode is toggled.
Closed, ResolvedPublic

Description

Blender Version

Broken: 2.80-542725d3e973

Short description of error

Toggling the mode on the armature causes a COW update that destroys cached B-Bone segment transform data. This data is then not recomputed even if there are users that need it.

Exact steps for others to reproduce the error

  1. Open the file.
  2. In the properties panel there is a Copy Transforms constraint. Changing the head/tail value moves it along the B-Bone.
  3. Tab the armature to Object mode.
  4. Now changing the head/tail value will snap the constraint away from the B-Bone to its underlying straight shape.

This also happens with Armature modifier, but the constraint case is simpler to show.

Event Timeline

Alexander Gavrilov (angavrilov) triaged this task as Confirmed, High priority.

I debugged this enough to see that it's COW that seems to destroy the data, but I have no idea how to fix this. This issue is especially confusing because you actually need to force update the user object to see that the data is gone.

P.S. Since you don't appear in chat to discuss, you get a bug :P

Actually, when stepping in debugger, you can see that the mode change itself actually recreates the data after freeing it.

It is the changing of the head-tail setting on the constraint that is freeing the data and not re-creating it.