Sunday, April 15, 2012

3ds Max vs Maya: Part 1 - the Curve/Graph Editor

Originally, I wanted to do only one post about the differences between both 3D packages, but when I started I realized that it will take more than just one post. Hopefully, it will be only two... Or three. :P

A lot of things have been said about which program is better: 3ds Max or Maya. I have some colleagues that prefer Max, while others die for Maya. And whenever one of each get together, a long (and sometimes heated) discussion starts, with no clear winner.

The choice of software sometimes depends on which software you learn first and which one you constantly use. However, that's not always the case. I know some animators (like me, for instance) that learned 3D on one of them, but prefer the other. Truth is, when you get use to the specific workflow of one them (i.e. shortcuts, viewport handling, technical issues), it's hard to change it, or it seems the other one is missing features "so obvious" that the software becomes useless.

In this post I'll try to cover most of the differences from an animator point of view. I will not be talking about modeling or rendering or lighting or anything else not related to animation, since I don't know all the features of each package (which are a LOT!).

Another thing that is worth to mention is that I'm comparing both programs on the same "yearly" version. I'm using the 2010 version of both 3ds max and Maya, so maybe some of the features I mention here have been upgraded in recent versions. If so, put it in the comments!

Finally but no less important, this is my point of view. Take it as that, just one opinion. If you disagree with what I say, that's cool.

So, into the review...

Graph Editor

Both, Maya's Graph Editor (left) and 3ds Max Curve Editor

First in line is every animator best friend: the good ol' Graph Editor, a.k.a. Curve Editor in 3ds Max. In general, both editors do the job right but there are some small differences that are actually not so small for some people.

Tangent Selection

In the Curve Editor (CE) in 3ds Max, the tangents are part of the key, in the sense that if you want to move the tangents, the key must be selected. In the Graph Editor (GE) in Maya, the tangents are independent objects from the keys. So in order to move a tangent, you have to select a key and then select the tangent. Basically, in 3ds max it's easier to select the tangents, but in Maya you can select (and adjust) multiple tangents at the same time.

Breaking Tangents

Another difference in the tangent handling is the way you break them. In the CE, if you want to move one tangent independently from the other one, you just have to press SHIFT and that's it. In GE, there is a button in the toolbar called "Break Tangents" (see image), which is a command to break the tangents of the selected key.

Breaking tangents toolbar in Maya

So it might seem like an additional step, but the problem in the CE comes when you want to unify the broken tangents while keeping the changes you did when you broke them. In GE, you just press the "Unify Tangents" and it's done. In 3ds Max, you'll have to follow this procedure.

Tangent types

The tangent type toolbar is a bit different for both programs (see image).

Tangent type icon comparison
The CE gives you the option to change each tangent to a different type (ease-in ease-out, linear, etc) from the toolbar by means of drop-down buttons (just click-hold a button and more options will appear), but changing the tangent type to something different than Auto or Custom will make the tangents disappear. In the GE, you will have to select the tangent first and then select the type of tangent you want, but in this case the tangents will never disappear.

Another thing regarding this topic is that there are some types of tangents that vary from one software to the other. While in the GE you have more variety (spline, plateau, clamped) - and in my opinion, better naming-, in the CE you'll find auto, custom, fast, slow and smooth.

Buffer curves

This is a feature that is present only in Maya, and for most animators, is a game changer. The Buffer curves allow you to take a snapshot of the f-curve at that moment in time. When you start modifying your curve, you can always go back and forth between the current curve and the snapshot (even when playing the animation) and compare how the changes affected the animation, and go back in case you screw it up.

Buffer Curves demonstration

It's worth mentioning that buffer curves are not saved with the file, so once Maya is closed, they're gone.

3ds max does not have a feature like this.

Selecting the whole curve

The only way to select the whole curve in 3ds max is to select all the keys that are part of the curve. In Maya, the curve is another object (separated from the key and the tangent). Selecting the whole curve by, well, selecting it can be very useful, but it's also very easy to select it by mistake.

f-Curve Scaling

Scaling keys is one of the things that mostly differ between both 3D packages. In 3ds max, there are two different types of scaling : Scale Keys and Scale values. The first one is used to scale keys in time only (horizontal scaling), while the second one scales the values of the keys (vertical scaling).

When scaling values, the curve is scaled from a reference point, i.e. whenever you select the scale tool, a yellow-ish reference line will appear in the CE and it will serve as your reference point to scale the curve (or keys, if you want to select only a couple of keys).

Scale Values reference line in 3ds Max

The problem with this feature is that the line will always stay in the same place no matter what you select. So let's say you scale some keys in the Y-Rotation axis between 270 and 360 degrees. If you want to scale some other keys in the Z-Translation between -200 and -300, you'll have to drag the scale reference all the way down by yourself (one workaround is to close and re-open the CE, so the reference line position will reset to its default position). It would be nice if the reference line pops closer to whatever you have selected.

When scaling keys (horizontally), the position of the time slider will serve as the reference line.

In Maya, the same scale tool that you use to scale polygons and other things in the viewport, works in the GE. So taking the same previous example, you only have to select your keys (or f-curve) and scale them as you would in the viewport (BTW, tangents can't be scaled). On this feature, I see a clear winner.

The Euler Filter!

It's worth to note that both programs have the the Euler Filter command (most 3ds Max users don't know about it, that's why I'm mentioning it), it's just that in 3ds max, it's hidden under the Utilities menu, while in Maya is found in the Curves menu. To my knowledge, both filters work properly.


The Zoom tool is another feature that I found works better in Maya than in 3ds Max because you use the same zoom hotkey that is used in the viewport for the GE (that would be the default "f" key, that comes from the english word "Frame").

However, there are some things that I like in the CE. For example, when you have a key selected from a specific axis and you select another axis, the CE will automatically zoom to the key in that same frame, so you don't have to re-zoom every time you select a different axis (there is the Auto Frame option in the GE, but is not quite the same). Another nice feature is that in the CE you can zoom only in time (horizontally) but not in values (vertically).

For my taste (and my current workflow) I prefer the more simple "f" key.

Out-of-Range values vs. Infinity

They do the same thing: Replicate the f-curve over time so you can adjust you walk cycles (or any cycle, for that matter).

Out-of-Range window in 3ds Max

Infinity options in Maya

Basically, both tools work the same way, but there is one very small difference that make me go to Maya for this one, though it's something most people won't find it's a problem at all: in 3ds Max, when a f-curve is on cycle mode, you won't be able to add keys after the last key on the cycle. Instead, it will add a key to the equivalent frame inside your cycle. You still can add keys however, by copying an existing key and moving it on to a different frame, but you can't just hit "k" and add a key. For me, this limitation is sometimes annoying, and I feel like it's just too much work for something so simple.

In Maya, you can add keys to your cycle wherever you want. Freedom is priceless, I guess.

Bake animation

This is something that is only present in Maya and for me is not a game changer. Basically, it allows you to "bake" an animation, i.e. add a key per frame to a certain object in order to preserve the animation.

You can get the same feature in 3ds Max through a script (google it, there are a couple of scripts available), or by saving your animation through "Animation\Save Animation..." and selecting the "Key per Frame" option. Then you reload the animation into your scene.

That's pretty much it for the Graph/Curve Editor. In all honesty, I believe Maya beats 3ds Max in this area. Not by much, but it wins. The simplicity in tools like Zoom, Scale and the Buffer Curve, makes me wonder what is Autodesk waiting to implement those in 3ds Max.

Next post I'll take into one of the most used tools by animators: The Timeline (or TimeSlider).



Kiko Buyo said...

Thanks Ricardo for creating a page for me to get a better perspective on both tools from an animators point of view, this makes my life easier then going through the trial an error, and looking for an answer in forms to see if I am missing a step in my work flow.

Kiko Buyo

Kiko Buyo said...
This comment has been removed by the author.
Ricardo Ayasta said...

Thanks Kiko! Glad it helped you out!

Kevin Phelps said...

hi ricardo, do you know if theres any way to "insert keys" in the CE for multiple curves as you can in mayas GE with the "i" hotkey? I know you can grab the "add keys" tool in the CE but it only adds it to a single curve at a time.

Ricardo Ayasta said...

Hey Kevin!

You can add keys in several ways in 3ds max, but as far as I know (at least in version 2010) you can't add keys on each axis independently. Well, you can, but it's through the Add Keys tool in the Curve Editor. However, I have a couple of suggestions that you might want to try.

First, try the Add Keys tool in the Dope Sheet instead of the Track View. It's waaaaaay much easier. You can switch fairly easy between one and the other, or you can have the Dope Sheet opened in one of the viewports.

If you still don't like to click each axis, you can add a key in the selected transform (lets say, Position) and then delete the keys you don't want, like delete the Z if you only want the X and Y axis keyed. You can add a key to one transform at a time in two ways (that I know):
- by moving the Track Slider to the selected frame and right-clicking on it. A "Create Key" dialog will appear and you can select which transform you want to key.
- By adding keys through the Motion Panel. In the Parameters section, under the PRS Parameters, you have two menus: Create Key and Delete Key, each with a button for Position, Rotation and Scale. When you click one on the Create side, a key is inserted (again, on all axis). Notice that the button is greyed and the Delete Key button becomes highlighted.

Another thing you can do is look for a script. Probably someone had the same problem and did a script to make our lives easier.

I'm planning to do a customization post for 3ds max and Maya, just to show how I setup the UI in order to make my life easier, but it might take a little while since I have other things in the oven ;)

Let me know if this helps.


mayowa60 said...

good day. i've been trying to use my curve editor to animate but the view port doesn't update as i move the keys on the curve editor. i really need to know if it's possible to make the object move as the keys are moving. thanks

Ricardo Ayasta said...

Hi mayowa60,

Generally, moving a key in the curve editor will update only the selected viewport. If that's not the case, there are a lot of things to consider: how heavy is the scene (lots of characters, high topology, etc), your viewport settings or even the type of viewport renderer you're using (Legacy or Viewport 2.0). Heck, sometimes even having motion trails in the wrong controller makes Maya lag a lot!

Any of these things might affect the performance of the viewport. Hard to tell without more info.

Good luck!