Maniphest T74061

Bone poses not updating while having multiple constraints
Closed, Archived

Assigned To
Germano Cavalcante (mano-wii)
Authored By
Anže (koko_ze)
Feb 21 2020, 3:45 AM
Tags
  • BF Blender
Subscribers
Anže (koko_ze)
Germano Cavalcante (mano-wii)

Description

System Information
Operating system: Windows-10-10.0.18362-SP0 64 Bits
Graphics card: GeForce RTX 2080 Ti/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 442.19

Blender Version
Broken: version: 2.83 (sub 4), branch: master, commit date: 2020-02-20 12:28, hash: rBd95e9c7cf80a

Short description of error

The position of the bones doesn't get updated as it should.
I'm not sure if it's a bug but it definitly shouldn't be a feature.

Exact steps for others to reproduce the error
Make this rig:


It's kind of like a parent loop but it shouldn't be there because the constraits that work in "0 mode" are disabled in the "1 mode" and vice versa.

Event Timeline

Anže (koko_ze) created this task.Feb 21 2020, 3:45 AM
Germano Cavalcante (mano-wii) closed this task as Archived.Feb 21 2020, 8:05 PM
Germano Cavalcante (mano-wii) claimed this task.
Germano Cavalcante (mano-wii) added a subscriber: Germano Cavalcante (mano-wii).

See the console:

Dependency cycle detected:
  OBArmature/B/BONE_CONSTRAINTS() depends on
  OBArmature/A/BONE_DONE() via 'Limit Distance'
  OBArmature/A/BONE_READY() via 'Ready -> Done'
  OBArmature/A/BONE_CONSTRAINTS() via 'Constraints -> Ready'
  OBArmature/B/BONE_DONE() via 'Limit Distance'
  OBArmature/B/BONE_READY() via 'Ready -> Done'
  OBArmature/B/BONE_CONSTRAINTS() via 'Constraints -> Ready'
Dependency cycle detected:
  OBArmature/C/BONE_CONSTRAINTS() depends on
  OBArmature/B/BONE_DONE() via 'Limit Distance'
  OBArmature/B/BONE_READY() via 'Ready -> Done'
  OBArmature/B/BONE_CONSTRAINTS() via 'Constraints -> Ready'
  OBArmature/C/BONE_DONE() via 'Limit Distance'
  OBArmature/C/BONE_READY() via 'Ready -> Done'
  OBArmature/C/BONE_CONSTRAINTS() via 'Constraints -> Ready'
Detected 2 dependency cycles

So, this is a dependency cycle problem.
Undefined behavior of rig when it has dependency cycle is not a bug.
There is possibility that it is a fake/avoidable dependency cycle, if you are sure this is the case we can reopen this report (and I will call someone who is familiar with this area).

Something similar is described on T66582

Anže (koko_ze) added a comment.Feb 22 2020, 1:30 AM

Ok then I guess it's not a bug. I thought that it was a bug because I thought that Blender should treat those constraints as non-existant when turned off and it just didn't.

I'm not educated enough on what a dependency cycle is to know if it were fake/avoidable.

As far as it goes for this other report that you have mentioned (https://developer.blender.org/T66582) it's basically the same thing just with different constraints.