Home Technical Talk

[Maya 2020] Absurdly slow performance and broken parent constraints

polycounter lvl 6
Offline / Send Message
BTDarmstad polycounter lvl 6
Greetings!

I've been having issues with Maya performing horribly for a couple of years now, but it's now becoming essentially unusable.

I used to be able to view animated characters with evaluation set to DG with no performance issues. The reason why I used that was because Parallel had a tendency to leave the skin behind if I scrubbed the timeline too much.

Now, I can barely break 3 fps with two animated game ready characters on screen with no background, and that's on a new computer with a 3090 card and a Ryzen 9 3950X. One of the most irritating things I know is when high end computer programs can't even keep up with high end hardware. Pathetic.

I have recently used parallel evaluation and viewport caching instead, and it appears that the skinning issue has been resolved - but seeing minor updates is still extremely slow, though not as bad as with DG evaluation.

All of that is just the tip of the iceberg, though, because now parent constraints are breaking up, Cinema 4D style (I can't get over how awful those were in R19, the last version of Cinema 4D I've used). No matter how I evaluate the animation, the parent constraints are all over the place. One thing I find strange is that this insane jank didn't start occurring before I added the third parent constraint to the scene, and adding it seems to affect the ones that used to work.

Made a little GIF to share the pain:


As you can see, if I move the controller and CTRL+Z, it appears to snap to the correct location, so to me, it just seems like some kind of lazy evaluation that absolutely ruins the animation.

What could be causing this, and what do I do to fix it? I would imagine the horrible performance has something to do with it, but why would the parent constraints be broken even when cached? Any performance tips in general? Anything related to rigs? I do remember once that a single shoulder joint caused the entire scene slow down immensely - and it fixed itself one day, because that's Maya for you.

Replies

  • oglu
    Options
    Offline / Send Message
    oglu polycount lvl 666
    Ok this looks like a add but its the best you could do to learn how to setup a rig for parallel. Riging Dojo are true masters. 

    https://ondemand.riggingdojo.com/OptimizingRigsforParallelEvaluation
  • oglu
    Options
    Offline / Send Message
    oglu polycount lvl 666
    There is a lot new under the hood in maya that wont work in DG mode like expected. Maya should be used in parallel and GPU mode. 

    https://download.autodesk.com/us/company/files/UsingParallelMaya/2022/UsingParallelMaya.html
  • neilberard
    Options
    Offline / Send Message
    neilberard polycounter lvl 17
    This definitely sounds like an issue with how your rig is setup. Have you tested the performance with other rigs? I just tried this with the Dude rig(headless version) using two animated refences. Getting 50 fps on cached playback for Maya 2022 with a 1070 card.
    Dude_Free Rig _Maya | ahmed shalaby: rigging and tools development (wordpress.com)
  • BTDarmstad
    Options
    Offline / Send Message
    BTDarmstad polycounter lvl 6
    This definitely sounds like an issue with how your rig is setup. Have you tested the performance with other rigs? I just tried this with the Dude rig(headless version) using two animated refences. Getting 50 fps on cached playback for Maya 2022 with a 1070 card.
    Dude_Free Rig _Maya | ahmed shalaby: rigging and tools development (wordpress.com)
    This is a rig provided by iAnimate, not my own. I have been investigating it, and one possible problem is that the character has a hidden IK/FK offset controller that randomly offsets itself from the IK controller when the third parent constraint is added, the third one being added to the character that is upside down here, while the previous two are on the other one. Another thing worth noting is that it appears to happen when both characters have their arms set to IK. I need IK in order to stabilize the arm being grabbed so it doesn't wiggle all over the place, but this glitch makes a thousand times worse, so I might just drop it and go with the far less efficient way of animating it.

    The parent constraint appears to break the IK arm, even when the parent constraint is not active.

    Can't disable that offset controller either. I tried to just delete the whole thing in the referenced rig, but it breaks the rig.



    oglu said:
    Ok this looks like a add but its the best you could do to learn how to setup a rig for parallel. Riging Dojo are true masters. 

    https://ondemand.riggingdojo.com/OptimizingRigsforParallelEvaluation

    I don't think I can fix this particular rig the way it's set up, but I'll keep this one in mind for some possible future rigging.
  • BTDarmstad
    Options
    Offline / Send Message
    BTDarmstad polycounter lvl 6
    Hey, just felt like posting an update on this, in case somebody faces the same issues at some point. I think it's just polite.

    The problem appears to be the constraints messing up Maya's hierarchy of the objects in the scene, effectively swapping parent and child. The solution I found with some help, was to simply bake the first two constraints in the scene, then proceed with the next two constraints.

    Also, as far as performance goes, this may just be anecdotal - but I got a significant performance boost by switching my computer off with the power switch. I'm not much of a computer tech guy, but it literally went from 3 fps to about 15 fps after turning off the power switch. Still way below what used to run at 24 fps in DG mode - on an old computer (!) - but it helps.
Sign In or Register to comment.