Blender Asked by Ascalon on November 5, 2021
I have a complex character rig. Its a Rigify rig base, but with a bunch of other stuff i’ve added, like a custom face rig. Somewhere in the process of building it all, the performance has gone down. Its now quite slow when attempting to pose things. The rig is slow on its own even when all armatures are disabled, so I know the problem is somewhere in the rig.
I’m trying to find out if there’s any tools or debug options that can help me narrow down what part of the rig is causing the slow performance. I don’t know if its one problem driver or constraint causing a big slow down, or a bunch of things contributing.
Of course, I can delete parts of it a bit at a time and see if that helps, and then narrow it down from there. But if there’s some better way to approach this, I’d like to know!
To begin with, are you sure that the rig itself is a problem? I mean what if you delete everything except the armature(s)? Will it remain being hard for FPS of your scene. I've made & seen different rigs, including very complex, but I've never seen FPS going down because of Armature constraints/drivers/whatever. But OK, if the rig is the problem, I'd start with these suggestions:
cyclic dependencies: bone/object/property A somehow depends on bone/object/property B while bone/object/property B somehow depends
on bone/object/property A (constraints, drivers, parent-child
relationships - and take hierarchy into account, because it's often
quite not obvious, that 10th child of bone A depends on 12th child of
bone B & vice cersa); you can check if there any cyclic dependencies
in your file by toggling the command line, it will be shown there
along with some other helpful info: errors, missing paths, lost
drivers and so on;
action constraints: I've noticed that among all the constraints Action constraints are the hardest ones - especially when there are 100+ of them (I had even much more when made the rig with large amount of facial emotions);
drivers with complex logic: large expressions with many variables and modifiers can potentially slow down FPS;
driven shape keys: if you use shape keys with drivers on them, it can
really slow down the scene, I had mesh with 50+ driven shape keys and
it had been freezing my FPS like hell, and when I tried to delete
them all, FPS increased from 5 to 30;
other complex modifiers: OK, let's say there's no more Armature modifiers and our mesh is no longer connected to its rig (well, at least - it's no longer obviously connected); but what about other modifiers? Lattice, Mesh Deform, Laplacian Deform and other deformers like that can catastrophically reduce your FPS.
So, there's no scripted way to find the bottleneck of Mesh-Rig relationships, and I just tried to mention some of the approaches I use in my work.
Answered by Arthur Shapiro on November 5, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP