NLA-Strip Corrupted after reopening file with library override #102662
Operating system: Windows-10-10.0.22621-SP0 64 Bits
Graphics card: NVIDIA GeForce RTX 3070/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 517.40
Broken: version: blender-3.5.0-alpha
Short description of error
NLA-Strip Corrupted aufter opening file again in case of library override
- Download files
- Open file #102662.blend (contains overridden object and armature with 2 actions)
- In NLA editor, move both strips by 116 frames
- Save file
- Reopen file
First strip wil have incorrect length and start frame. This does not happen if both strips are in different NLA tracks.
Changed status from 'Needs Triage' to: 'Confirmed'
If I drag translate them, it resets, if I move the clips with the frame start attribute by typing the value in and hitting enter it is fine, if I just drag it or I use the G key and save/reopen then it does the strip end change.
If you by hand set the short strip back to the right length, when you save and open the file the second strip is now moved over and the first strip is longer by the amount it was shortened, so it saves wrong and changes twice.
Something isn't getting sett correctly in the override.
I found out where the corruption came from. The override system uses RNA to update properties one-by-one, and the RNA code trying its best to keep things consistent / valid. This is very much desired behaviour while a human is editing the data.
Instead of setting both start and end of all strips, and then doing a 'sanitize this' call, it's done per property. That means that the strip is moved into another strip, which is not allowed.
Once all the overrides have been applied the situation is valid again, but while setting each property, temporarily things get invalid.
I'm working on a solution.
Deleting a branch is permanent. Although the deleted branch may exist for a short time before cleaning up, in most cases it CANNOT be undone. Continue?