Page MenuHome

Pose bone ID property driver causes dependency cycle
Confirmed, NormalPublicBUG

Description

System Information
Operating system: Windows-10-10.0.19041-SP0 64 Bits
Graphics card: GeForce GTX 1080/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 456.71

Blender Version
Broken: version: 2.92.0, branch: master, commit date: 2021-02-24 16:25, hash: rB02948a2cab44
Worked: n/a

Short description of error
Two bones with ID properties of same name cause dependency cycle when one drives the other.
Workaround exists by prefixing property names.

Exact steps for others to reproduce the error

  • Add armature with 2 bones
  • In pose mode, give each bone a custom property with the same name (!)
  • Add a driver to one of the properties
  • Use "Single Property" variable and enter the data path of the other bone's property (e.g. pose.bones["Bone1"]["prop"])

Depsgraph will report a dependency cycle, apparently it cannot distinguish between bones:

Dependency cycle detected:
  OBArmature1/Parameters Component/DRIVER(pose.bones["Bone2"]["prop"]) depends on
  OBArmature1/Parameters Component/ID_PROPERTY(prop) via 'RNA Target -> Driver'
  OBArmature1/Parameters Component/DRIVER(pose.bones["Bone2"]["prop"]) via 'Driver -> Driven Property'
Detected 1 dependency cycles

Using unique property names can be used to work around this, e.g. by prefixing each property with the bone name.

Example file:

Event Timeline

Germano Cavalcante (mano-wii) changed the task status from Needs Triage to Confirmed.Thu, Apr 1, 10:58 PM
Germano Cavalcante (mano-wii) changed the subtype of this task from "Report" to "Bug".

I can confirm.
Since the property is specific to the bone, its name should not conflict with the other's property name.