Bone Constraints lagging even in render

Hi! I’m having a problem with the bouncing ball rig I’m trying to make.

The bone constraints are lagging even in render and I don’t find work around.

I’m trying to make the top controller pointing to the center controller and the bottom pointing to the center controller too. Up to now, no problem I guess!

The problem is that I also have to get my center controller having the average of the rotation of my top and bottom controller… As soon as I try to implement this last step, it makes a dependency loop and it makes it laggy. Here is my blend file! Anyone has an idea? If you enter in pose mode, the center orientation bone should be selected. I also included an animation thatshows the problem. To remove thisproblem, just remove the drivers in the rotation of the bone in pose mode!

Any ideas? o.O

Here is the blend file!

You’ve answered your own question here. You made a dependency loop! The lag in animation is a common issue caused by dependency loops and it can even show up in renders as you have observed. The solution is to fix the dependency loop. Dependency loops are never acceptable.

Here is an idea: Remove the rotation driver on the MiddleOrientation bone like you said. Duplicate MiddleOrientation and parent the duplicate to the original. This duplicate can have the driver (though constraints might be better) and you can parent other stuff to it (EDIT: except for the top and bottom controllers, of course). This would eliminate the loop.

1 Like

I might be wrong but as soon as they are in the same hierarchy, it will create a loop, no?

I don’t think so. I just tried it on your rig! To visualize this, write down all the names of the bones in your rig on a piece of paper. If a bone uses another bone as a parent, constraint target, or driver target, that’s a dependency. For every bone, draw an arrow pointing to each bone it depends on. This will create a logical chart of the dependency paths. These paths may cross, converge, or branch out, but they must never go in a circle. That’s a dependency loop. Everything else is fine.

Hi there! I’ve just tried your solution, but it is still lagging…

Maybe did I dosomething wrong?

  1. I duplicated the middle orientation bone and named it MiddleOrientationVector.
  2. I parented it to the original middle prientation vector.
  3. I changed the bone constaint on both top and bottom orientation bone so they both point to MiddleOrientationVector
  4. I created a driver to the middle orientation bone (the original one) that makes the average of the rotation of both top and bottom orientation.

The lag came back so I tried with contraints… Still laggy! :frowning:

Sorry for the delay in responding. It sounds like you didn’t fix the dependency loop. The original parent should not have the driver on it. The duplicate must get the driver. The bone that has the driver should only be a child. It may not be used as a target by the other bones, or that creates a loop!

Sorry! It is my turn to be a late poster! Lol! So, I retried and it did work! Thanks!