-
- Downloads
Fix #102662: NLA-Strip Corrupted after reopening file w/ lib override
Mark `NlaStrip.frame_{start,end}` and `NlaStrip.frame_{start,end}_ui` as to-be-ignored for the library override system, and add a new set of RNA properties `frame_{start,end}_raw` that the library override system can use. Versioning code ensures that overrides on `frame_{start,end}` are altered to be applied to the `..._raw` counterpart instead. 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. However, when the library override system is doing this, it is not replaying the individual steps (that each end in a valid configuration), but just setting each property one by one. As a result, the intermediate state can be invalid (for example moving one strip into another) even when the end result is perfectly fine. This is what the `..._raw` properties do -- they set the values without doing any validation, so they allow the library overrides system to move strips around. This assumes that the result of the override is still valid. Logic to detect invalid situations, and reshuffle the NLA strips if necessary, is left for a future commit as it is related to #107990 (NLA Vertical Reorder). Additionally, this commit adds functions `BKE_lib_override_library_property_rna_path_change()` and `BKE_lib_override_library_property_search_and_delete()` to the library override API. The former is used to change RNA paths of property overrides, and the latter is used to remove a property override identified by its RNA path.
Showing
- source/blender/blenkernel/BKE_lib_override.h 21 additions, 0 deletionssource/blender/blenkernel/BKE_lib_override.h
- source/blender/blenkernel/intern/lib_override.cc 35 additions, 0 deletionssource/blender/blenkernel/intern/lib_override.cc
- source/blender/blenloader/intern/versioning_300.cc 69 additions, 0 deletionssource/blender/blenloader/intern/versioning_300.cc
- source/blender/makesrna/intern/rna_nla.c 33 additions, 0 deletionssource/blender/makesrna/intern/rna_nla.c
Loading
Please register or sign in to comment