Page MenuHome

Fix T73486: Keying Set "Whole Character" does not key all properties
Needs RevisionPublic

Authored by Jacques Lucke (JacquesLucke) on Jan 29 2020, 1:55 PM.



In particular a custom property named ["parent"] was not included in
this keying set. This was due to a name collision with the PoseBone.parent

This might not be the correct fix, because I do not know how to make a
custom property non-animatable. Is this possible today? In rB35fedac5
the check for is_animatable was added. That was in 2011, I'm not sure
if the way custom properties are handled changed since then.

Another related commit: rB4d0643a185.

Diff Detail

rB Blender
fix-keying-whole-character (branched from master)
Build Status
Buildable 6431
Build 6431: arc lint + arc unit

Event Timeline

Sybren A. Stüvel (sybren) requested changes to this revision.Jan 31 2020, 11:15 AM

Please don't include cleanups and functional changes in the same diff. It makes it unnecessarily hard to understand what functionally has changed.

I'm all for simplification of our code, but a change like this can have far-reaching consequences. @Jacques Lucke (JacquesLucke) did you test this on some production rigs to see if it breaks anything? Does it still work correctly for keying regular (i.e. not 'custom'/ID) properties? Looking at the BUILTIN_KSI_WholeCharacter class, it looks like 'custom' in the name doCustomProps is misleading; it is expected to key all properties that are not loc/rot/scale/bbone.

About is_animatable, this is False for example for bpy.props.PointerProperty properties, so it's probably a good idea to keep testing for it.

This change feels like it requires properly designing & testing new behaviour, as currently the code is simply not allowing overlap between real property names and custom property names. As such, I wouldn't consider T73486 a bug but rather a known issue.

This revision now requires changes to proceed.Jan 31 2020, 11:15 AM