Why this character rig is soo sloow?

(Antonio Marcus) #1

Hi, all!
I’ve made this book character and rigged him, but there’s a delay and the motion is not being responsive.
The rendered animation is deleyed too.
I heard about ciclic dependency, but I didn’t figure out how to solve this problem yet.

Any of you guys can help me?
I’m new to rigging.

Here is the blend file, if you want to see for yourself.


Book2.blend (8.19 MB)

(Jason van Gumster) #2

Moved from “General Forums > Blender and CG Discussions” to “Support > Animation and Rigging”

(JA12) #3

The terminal gives a detailed list of dependency cycles. Something else might make it slow but these are prime suspects

Dependency cycle detected:
  BookImagination depends on rig through Driver.
  rig depends on BookImagination through Shrinkwrap.

Dependency cycle detected:
  MCH_spine depends on rig through Armature Modifier.
  MCH_empty.topUp depends on MCH_spine through Vertex Parent.
  rig depends on MCH_empty.topUp through Copy Transforms.

Dependency cycle detected:
  MCH_CageMesh depends on rig through Armature Modifier.
  BookImagination depends on MCH_CageMesh through Mesh Deform Modifier.
  rig depends on BookImagination through Shrinkwrap.

Dependency cycle detected:
  MCH_frontalbendingAxis depends on MCH_CageMesh through Parent.
  MCH_CageMesh depends on MCH_frontalbendingAxis through SimpleDeform Modifier.

Dependency cycle detected:
  MCH_lateralbendingAxis.001 depends on MCH_CageMesh through Parent.
  MCH_CageMesh depends on MCH_lateralbendingAxis.001 through SimpleDeform Modifier.

(Antonio Marcus) #4

Thank you, JA12! I never checked the terminal. Very useful.
Now I’m preparing my heart to re-build the rig from scratch!
Do you guys think it’s rather best to rebuild everything or try to adress each problem?
What would you normaly do, JA12?


adress each problem is my advice to learn how to fix and avoid for future rig constructions.

(Antonio Marcus) #6

I did this and my rig is working now!
Indeed, each cyclic dependency has its own solution.

Some I solved just by deleting unecessary things, other I had to rebuild part of the rig.
In the most complex case, I did a experimental rig project to experiment with new setups.

Now I solved the main problem by creating three separated armatures for this character.
And there’s another issue:
How to make a proxy of the three armatures in the linked group, at the same time?
Is that possible in blender? If no, whats the point of multi-armature solutions?

My file: Book4_v3.blend (3.75 MB)

(Antonio Marcus) #7

I figured it out!

The fact: actually, I was being a dumb while making a proxy.
Everytime I make a proxy of one armature, this armature name is recorded in blender’s memory to use the next time I trigger the make-proxy command (CTRL+ALT+P).
This name is used as a filter in the searchbox for objects, so no other object appears other than the armature I just made proxy.
Solution: leave the search box blank and you will see all the objects of the scene again, including other armatures! :wink:

Thank you all who helped me to grow in rigging!


Is there a reason why you use multiple armatures ? Its not wrong the RENE rig on blender market use the same approach.

(Antonio Marcus) #9

Actually, I used it because I cannot see another solution.

I wanted the rig of the belly to deform the belly of the book character, without deforming his spine. Ok.

But at the same time the rig of the belly has to change it’s position and rotation according to the spine of the book.

And the defomations of the spine and of the belly should not see one another, or the spine weights will enter in conflict with the belly weights and won’t allow a realistic deformation for neither of them.

Besides that, when I tried to do this inside one rig, it created cyclic dependencies (I was using nulls to transfer the deformation generated by the spine to the belly bones).

But if one can show me how to do this without multi-armatures, it would be amazing!

(Antonio Marcus) #10

Aaaand there’s another issue with linking the rig, this time with a Pivot modifier, look: