Hi. I’m trying to implement a hierarchy of custom properties with drivers in between them to set up a rigging system addon I’m building. These properties are stored in an Armature. Just storing them on the Armature itself however creates dependency cycles even though logically they should not be dependent on each other. As I understand it this is because the Armature object must update as a whole and is basically represented as a single node in the graph regardless of the way the relationships between its driven properties are arranged. Then I read the recently rewritten dependency graph now considers individual bones as their own nodes in the graph. So if I understand things correctly, it is possible to store properties on individual bones and create drivers between them that would avoid the dependency cycles that would arise if all properties were merely stored on the Armature itself.
This has solved most of my dep cycles and seems to work as expected. However, now I need to store a CollectionProperty on a bone and setup drivers on the members of that collection. I’m having difficulty doing this because it seems Blender cannot create a datapath to these properties when stored on a bone. Again this all works fine if said CollectionProperty is instead stored on the Armature, but then I have dependency cycles. I understand Bones aren’t derived from the same base as Objects, but I can also successfully drive custom properties placed on a Bone that are not in a collection. Does anyone have any insight?