Home Website Youtube GitHub

Rig performence

Hey,

i’m doing a rig using Mgear as a base and then adding other setups ontop so this isn’t really about mgeqar performance but I still want pick your brains on the issue.

Whats strange in my case that the rig way faster in DG then in Paralell, if i just move the main control around i get 40fps DG which is great but i paralell i only get 20, does anyone have any ideas?

I have a bunch of follicle wich i now have replaced/in the process to change to the new maya rivet node. i also had over 500 constraints which i’m replacing with a “Offset parent matrix” connection.

i’m down to 300 constraints and most follicles are gone but Paralell its still as slow as before while DG is just getting faster. Is there anything in particular that parelell dosn’t like, any tips?

Side question, is there any way to have the target object not move when i do a Offset parent matrix? it pops away and i have to bring it back to the right position.

Thanks!
Calle

This might be related: Some node types block parallel evaluation. I have a script to find those things, and a 2nd snippet to disable parallel eval from attempting to evaluate them. If you run the first snippet, do you see any node types get listed?

If yes, then (after safely saving your work) try running the 2nd snippet and see if that solves the problem.

I forget if this script needs to be run each time you open the scene, or each time you open Maya. It isn’t a permanent fix. And you should still attempt to profile your rig and solve the problem for real.

# Find the nodetype that are blocking parallel evaluation.
# Then disable each type

import pymel.core as pm
import maya.mel as mel

blockingNodes = mel.eval('evaluator -name "dynamics" -valueName "disabledNodes" -query;')
blockingTypes = [str(pm.PyNode(x).type()) for x in str(blockingNodes).split('\n') if x]
print(blockingTypes)
for eachType in blockingTypes:
    mel.eval('evaluator -name dynamics -c "disablingNodes=none";')
    mel.eval('evaluator -name dynamics -c "handledNodes={}";'.format(eachType))
    mel.eval('evaluator -name dynamics -c "action=evaluate";')

Thats awesome, great way to find bottlenecks.

Unfortunately nothing got listed.
I guess i will have to try to understand whats going on in propfiler as a next step :slight_smile:

Thanks for the tip though!

@Calle are you using Maya 2020.1 or 2020.2? Because is a known issue that maybe is related.

Also if you use Parallel, try to move some frames forward to the EM state says “Ready”


note that the imate is not ready

Because of these evaluator issues, I find Maya 2019 has better interactive performance than 2020.

Hey, I’m using maya2020.2, whats the issue?
The rig has some keyed poses so i guess Paralell state is triggerd, I have it in my heads up display so i’m pretty sure. i’ll double check tonight :slight_smile:

I didn’t know maya 2020 had these issues, I’ve had some pretty severe problems with maya 2019 while animating though, animation cuves getting disconneted in the reference edits. I kinda hate maya 2019 :slight_smile: we had to go back to maya 2018 at work and totally skipped it using maya 2019, atleast or for animation.

here is more info: Regression in Manipulation Performance

I guess that is why many people still in 2018 :stuck_out_tongue: Nut I hope next 2020 update or 2021 drops soon. The issue is already fixed in the beta: Regression in Manipulation Performance

1 Like

Thanks, i just remembered that i had these problems in maya 2018 aswell, stupid me :slight_smile: that was the whole reason i went over to 2020 to be able to replace follciles with their new rivet node and also “Offset parent maxtrix” instead of parant contraints (as much as possible).

Anyway, the manipluation seems fine on my end, weird.