I've read all I could find on dependency cycle issues in Blender, tried everything suggested in related posts: enabled new dependency graph, unchecked stretch in IK setting, checked Extra Object Update and Extra Data Update on IK controls and bones. Nothing seem to work, still getting a lag in animation and the following console output:
Default dependency graph:
Dependency cycle detected: WristMarker depends on Armature through Bone Parent. indexIKpole.L depends on WristMarker through Parent. Armature depends on indexIKpole.L through IK.
New dependency graph:
Dependency cycle detected: 'OBindexIKgoal.L.TRANSFORM_LOCAL()' depends on 'OBWristMarker.TRANSFORM_FINAL()' through 'Parent' 'OBWristMarker.TRANSFORM_FINAL()' depends on 'OBWristMarker.OBJECT_UBEREVAL()' through 'Temp Ubereval' 'OBWristMarker.OBJECT_UBEREVAL()' depends on 'OBWristMarker.TRANSFORM_PARENT()' through 'Temp Ubereval' 'OBWristMarker.TRANSFORM_PARENT()' depends on 'OBWristMarker.TRANSFORM_LOCAL()' through '[ObLocal -> ObParent]' 'OBWristMarker.TRANSFORM_LOCAL()' depends on 'OBArmature.wrist.L.BONE_DONE()' through 'Bone Parent' 'OBArmature.wrist.L.BONE_DONE()' depends on 'OBArmature.wrist.L.BONE_READY()' through 'Ready -> Done' 'OBArmature.wrist.L.BONE_READY()' depends on 'OBArmature.wrist.L.BONE_POSE_PARENT()' through 'Pose -> Ready' 'OBArmature.wrist.L.BONE_POSE_PARENT()' depends on 'OBArmature.forearm.L.BONE_DONE()' through '[Parent Bone -> Child Bone]' 'OBArmature.forearm.L.BONE_DONE()' depends on 'OBArmature.POSE_IK_SOLVER()' through 'IK Solver Result' 'OBArmature.POSE_IK_SOLVER()' depends on 'OBArmature.arm.L.BONE_READY()' through 'IK Chain Parent' 'OBArmature.arm.L.BONE_READY()' depends on 'OBArmature.arm.L.BONE_POSE_PARENT()' through 'Pose -> Ready' 'OBArmature.arm.L.BONE_POSE_PARENT()' depends on 'OBArmature.arm.L.BONE_LOCAL()' through 'Bone Local - PoseSpace Lin k' 'OBArmature.arm.L.BONE_LOCAL()' depends on 'OBArmature.POSE_INIT()' through 'PoseEval Source-Bone Link' 'OBArmature.POSE_INIT()' depends on 'OBindexIKgoal.L.TRANSFORM_FINAL()' through 'IK' 'OBindexIKgoal.L.TRANSFORM_FINAL()' depends on 'OBindexIKgoal.L.OBJECT_UBEREVAL()' through 'Temp Ubereval' 'OBindexIKgoal.L.OBJECT_UBEREVAL()' depends on 'OBindexIKgoal.L.TRANSFORM_PARENT()' through 'Temp Ubereval' 'OBindexIKgoal.L.TRANSFORM_PARENT()' depends on 'OBindexIKgoal.L.TRANSFORM_LOCAL()' through '[ObLocal -> ObParent]'
Maybe there is something fundamentally wrong with my rig? I haven't rigged in a long time in Blender or any other program for that matter. In the past I did some rigs in Maya and Cinema4D and, as far as I can recall, I used similar parenting technique without issues.
I have an arm rig for this test. I have one IK chain from forearm to shoulder, another one from index finger tip to index finger base. I have an empty called
wristmarker parented to wrist bone. I have
indexIKpole parented to the
wristMarker, so that when the whole arm moves, finger position stays relative to the wrist.
Appreciate any help.