Pose missing when relative path library override is changed and relinked on some characters #97954

Closed
opened 2022-05-08 10:45:34 +02:00 by Hannah Ümit · 5 comments

System Information
Operating system: Windows 10
Graphics card: RX 480 8G
CPU: i5 6400

Blender Version
Broken: blender-3.2.0-beta+daily.1b566b70c163

Pose missing when relative path library override is changed and relinked on some characters

Exact steps for others to reproduce the error
Save character in asset browser as a collection
Link character in work file
Use library override to pose the character (No keyframes are made yet)
Save work file
Change work file directory
Relink character
Pose is missing

**System Information** Operating system: Windows 10 Graphics card: RX 480 8G CPU: i5 6400 **Blender Version** Broken: blender-3.2.0-beta+daily.1b566b70c163 **Pose missing when relative path library override is changed and relinked on some characters** **Exact steps for others to reproduce the error** Save character in asset browser as a collection Link character in work file Use library override to pose the character (No keyframes are made yet) Save work file Change work file directory Relink character Pose is missing
Author

Added subscriber: @Hannah-Umit

Added subscriber: @Hannah-Umit
Author

Screenshot 2022-05-08 110700.png These values disappear once I relink the model. The difference between this model and another model that does retain it's pose is that the model that loses the information is inside a collection. The other one is not.

![Screenshot 2022-05-08 110700.png](https://archive.blender.org/developer/F13057722/Screenshot_2022-05-08_110700.png) These values disappear once I relink the model. The difference between this model and another model that does retain it's pose is that the model that loses the information is inside a collection. The other one is not.

Added subscriber: @mont29

Added subscriber: @mont29

Changed status from 'Needs Triage' to: 'Archived'

Changed status from 'Needs Triage' to: 'Archived'

Unfortunately there is no bug here, there is simply no way to preserve this information in that case. What happens is this:

  • Armature data-block remains linked, there is not override of it.
  • Pose bones are stored in the Object data-block, however this is kept in sync with the bones defined in its Armature obdata data-block.

So when the library goes missing, so does the Armature obdata, and the (override) local Armature object has to update itself to a zero-bones armature, deleting all pose information stored in its posebones.

When animated, situation is different, since the values are stored in fcurves in the animation, which do support being invalid (i.e. affecting non-existent data), so in that case animated pose can survive the loss of library.

The only way to not lose data here would be to not save the working file, go fix the library so that it is available again at the exact same path as previously, and then re-open the main working file.

NOTE: this is a fairly annoying limitation of current armature object design, which is becoming very problematic nowadays with library overrides... I will add a warning in the documentation about it. Addressing the root of the issue should be part of a complete redesign of the Armature object data structure.

Unfortunately there is no bug here, there is simply no way to preserve this information in that case. What happens is this: * Armature data-block remains linked, there is not override of it. * Pose bones are stored in the Object data-block, however this is kept in sync with the bones defined in its Armature obdata data-block. So when the library goes missing, so does the Armature obdata, and the (override) local Armature object has to update itself to a zero-bones armature, deleting all pose information stored in its posebones. When animated, situation is different, since the values are stored in fcurves in the animation, which do support being invalid (i.e. affecting non-existent data), so in that case animated pose can survive the loss of library. The only way to not lose data here would be to not save the working file, go fix the library so that it is available again at the exact same path as previously, and then re-open the main working file. NOTE: this is a fairly annoying limitation of current armature object design, which is becoming very problematic nowadays with library overrides... I will add a warning in the documentation about it. Addressing the root of the issue should be part of a complete redesign of the Armature object data structure.
This repo is archived. You cannot comment on issues.
No Milestone
No Assignees
2 Participants
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: archive/blender-file#97954
No description provided.