Why are Max rigs so much slower than Maya rigs?

Become a member of the CGSociety

Connect, Share, and Learn with our Large Growing CG Art Community. It's Free!

THREAD CLOSED
 
Thread Tools Display Modes
  12 December 2007
Why are Max rigs so much slower than Maya rigs?

I don't understand it, Just about every rig I've used in Max has always been kind of slow, where as the rigs in maya, are usually pretty quick. Anyone know why?

Are there any tricks you guys can offer to speed up Max rigs? I suspect the Skin modifier has a lot to do with it. Thanks
 
  12 December 2007
Actualy the skin modifier in Max is faster then that in Maya and XSI. As for rig speed well that always was a problem mostly due to redunent calls in many of the rigging tools. Over the last couple of years all that has been cleaned up, at this point there is no reason why you should be seeing slow downs in Max rigs. Just like in Maya there are ways you should and should not build a rig.

What are the rigs like that you are using that feel slow and did you build them or some one else? If you did then what tools have you used to drive all the parts?
__________________
Paul Neale
http://paulneale.com
 
  12 December 2007
I don't know, maybe I've just had bad luck. Last year I skinned my character to the biped, and used skin morphs for corrective deformations, and the morpher modifier for some facial animation. It seemed quick enough till I'd been animating for a while, then all of a sudden it was taking me 4+ seconds to set a key on all the biped parts (this is in max 8 mind you)

The last two characters I've made, I've used Brad Noble's rig for the body, and then I used the reaction manager to hook up the floating UI for facial animation. It seems like the slowest part is setting keys. For example with Nobles rig, when I select all of the controls and key them, there's a 3-4 second lag on my system. Yet I never have this problem in maya when keying controls

For the character I'm currently working on, I built a low poly proxy mesh, that I'd use to animate with, to try to compensate for the slow rig, Unfortunantly it didn't seem to help much. So I tried disabling the skin modifier, and that didn't make a huge difference either, but if I DELETED the skin modifier all together, then it sped up the rig considerably. Granted there is a lot of geometry in the scene (400,000 polys), but I didn't think it would matter since it was hidden.

I guess what I'm after is... what are the things NOT to do when building a rig?

-Does adding more bones than is neccesary to the skin modifier slow things down?
-Does having a lot of HIDDEN geometry slow things down?
-Should I not be using the reaction manager?
-Would it be a bad idea to save out the skin weights and then re-load the skin after animation has been completed?

Sorry, I know that's a lot of questions. Any help is appreciated =D
 
  12 December 2007
400k polys is a lot for a scene to handle, especially with animation data being pushed onto a rig system. For that sort of scene I'd recommend using a proxy rig, and have your high-res skinned model in another scene and transfer the animation data to it for rendering. Just a thought.

I have experienced the slowness though, but I've also experienced it in Maya too!
 
  12 December 2007
Okay well in that case, what's the best way to go about saving and loading animation from one rig to another?

I've used File>Save Animation feature before, but it burned me once by tranfering all of the animation except for one arm. Maybe I wasn't using it properly, maybe it was a bug in the software that's since been improved? at any rate, I'd love to hear what kind of experiences others have had
 
  12 December 2007
Well you have a few things going against you. First off Brads rig is old and has lots of old methods working in it, I'm basing that on the last time that I looked through it for one of my students.

Second having skin morph turned on while animating will slow down any rig in Max or Maya. Turn it off till render time so that it doesn't have to calc in the viewport.

Reaction manager is the slowest way to connect values due to the curves that it has to calculate. This also is the same in Maya with set driven key, for the most part good Maya TD's will not use SDK's for this reason and others in major productions. If you can use a wire params you should and or instanced controllers.
__________________
Paul Neale
http://paulneale.com
 
  12 December 2007
please delete
__________________
Paul Neale
http://paulneale.com

Last edited by PEN : 12 December 2007 at 07:35 PM.
 
  12 December 2007
Originally Posted by PEN: Just like in Maya there are ways you should and should not build a rig.


I agree completely with paul, Its the way we build rigs. I have seen a good number of rigs which are very fast to animate, i have always optimised the scene by hiding the unwanted controls, organise the objects in layers, having a lo-poly version of the original mesh etc..it helps a lot to quickly start working on the scene instead of constantly have to catchup with our creativity.
Some times it the workflow we follow which makes it hard to go in the flow of our thoughts.
Actually Max and maya are kinda feels the same for me since i have optimised my workflow according to my way ( shorcuts etc) makes it lot faster to work on both.
Cheers,
Rajesh
 
  12 December 2007
I'll just chime in here on a slightly defensive note to say my rig does have its slow moments but I think it's mainly due to the trackview. Creating keys using the key button and/or dopesheet is very fast but with the curve editor is very slow.

The way max seems to work with its rigs is that when you scrub the time slider, the connections are cached to facilitate smooth scrubbing of your animation. However, when you adjust the keyframe values in the trackview, the calculations are performed from scratch again and again for each new value. It feels like there are some major inefficiencies going on when you can adjust the position of the waist of the rig in the viewport in real-time, but moving those position keys in the curve editor chugs.

The way maya works with its rigs is that calculations are all made when scrubbing, transforming and when adjusting key values but the connections move through a more straightforward hierarchy of connections (when made well) making it quicker to calculate.
The result is that in maya, if you have a complex rig, how fast it is to scrub is how fast it will to be to manipulate across the board. While in max, for a complex rig you'll always have quick scrubbing playback but adjusting keys in the curve editor will be painfully slow.

This is all of course without adding on extra mesh deformation things like skin modifiers, skin wraps, skin morphs, etc. Keeping your scene poly counts low for animation is a basic must, but also keeping your mesh deformations simple and/or being able to be turn them off when you don't need them is important.

Regarding that last line, archanex's point about deleting the skin modifier is an issue that's annoyed me for years. Skinning a character slows down a rig, but if you hide that character, the skinning is still calculated and even if you turn the skin modifier off, it's still calculated! This is unlike maya where if the skinned character is hidden, the playback speed is increased.

Max has some great rigging options but is constantly let down by its slow animation handling. The example I use is: create 100 point helpers, put some position animation on them, open up the trackview in curve editor mode, move all their keys around with interactive update turned on and it'll chug. Do the same thing in maya with 100 locators and it's real-time.

$0.02
:)

P.S. Paul's point about avoiding the reaction manager and using wiring and/or instanced controllers is bang on the money.
 
  12 December 2007
Hey Brad, I hope that you don't think I was ditching your rig. I just remember seeing some old methods in the one that I was looking at.

As for your test with the point helpers I have just tested this in Max 9 and I don't see any slow downs at all. Same speed as it was in Maya. What version of Max are you seeing the slow downs in. There has been a great amount of work done in these areas over the last several versions.

Part of the old issues came from redundent calls. Like script controllers that were being called 20 times when they only needed to be called once. There were many little things that were adding up once a complex hierarchy was trying to be calculated.

At this point the only minor slow downs I see in rigs are with spline based systems as there appears to be slow downs in the splines them selves. To get around this I script a quadratic curve that drives the spine or tenticles in a character instead of using Max splines. A pain but I'm hoping that it gets corrected soon.
__________________
Paul Neale
http://paulneale.com
 
  12 December 2007
Okay so reaction manager is slow - say I wanted to use a wire parameter method instead of using the reaction manager to set up the face GUI. The way I have it set up now, the there is a vertical shaped rectangular slider, with a zero point at the bottom. There is a separate circle shape that is used as the master control, When you move the master control to the top of the rectangle, it drives the morph target to 100%. So my question is how could I do this type of a thing using the wire parameters? I want to be able to align the master control to the zero to zero out the morpher. In my experience, you can get sort of close, but it's hard to be precise with expressions, (though my knowledge of expressions is pretty limited)


Secondly, Brad, have you or anyone else tried deleting the skin modifier and then loading the skin weights back on after animation was completed? I'm considering using this technique, I'm just a little nervous that something may not line up correctly when I go to put the skin back on. I always Key all the controls at frame -10 so that it's easy to get back to the skin pose, but it seems like by the end, that always gets altered slightly... probably just me
 
  12 December 2007
Brad what tests have you done that show that Max skin is still calculating when it is turned off? I would like to test this as I'm not seeing it in simple tests.
__________________
Paul Neale
http://paulneale.com
 
  12 December 2007
interesting thread, i always tought of max rigs as kind of slow but im not an expert at all, anyway a friend of mine, animator in PDI came to visit us a few months ago ( ilion, where i work) and he was pretty amazed on how fas our rigs are, using max...so i guess they are not so slow anymore? dunno...also i feel that handling the uvs of a dense mesh in max is so much slower than i maya...still in max2008 is still slower...whatever!
 
  12 December 2007
I'll do some tests when I get a hold of a machine with maya 8.5 and max 2008 and get back to you.

BTW, that 100 points/locators test might have been 1000 instead. I do remember doing it recently in maya 7 and 8.5 and max 8, 9 and 2008.

archanex: I do remember a few years back, we wrote a script for a project that deleted the skin modifier when it wasn't needed and added it and reloaded the weights when it was. It was written basically because of the skin modifier slow-down, but that was a few years back - probably in max 7 days. But I haven't found there to be any speed increases in current scenes where the skin modifier is turned off. Once again, I'll do some tests to get to the bottom of it.

On a side note Paul, you're right, the skeleton rig used to use #node for node storage in the CAs. Now it uses #maxobjecttab and is much quicker for it (but still not as real-time as I'd like).
:)
 
  12 December 2007
ah those pesky zeros!

actually I just did this test with 100 locators and 100 point helpers respectively, I put both position AND rotation keys on them, and as Brad was saying, Maya totally wins in this test

I had both max 9 and maya 8.5 open simultaniously btw... this was on my E6600 Core2Duo machine with a QuadroFX1500 and 4 gigs of ram, for all that's worth


Brad: What are the chances of getting a hold of that script?

Last edited by archanex : 12 December 2007 at 01:26 AM.
 
Thread Closed share thread



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
CGSociety
Society of Digital Artists
www.cgsociety.org

Powered by vBulletin
Copyright 2000 - 2006,
Jelsoft Enterprises Ltd.
Minimize Ads
Forum Jump
Miscellaneous

All times are GMT. The time now is 06:59 AM.


Powered by vBulletin
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.