Understanding Maya Nodes System for Beginners by a Beginner
If you are an experienced Maya user, you definitely have read and heard about nodes, but it’s an all mysterious subject, why they call an entry in a list a node? Isn’t nodes supposed to have links and be part of a graph? If you are like me, your first encounter with nodes happened using the Attribute Editor, this all gets even more confusing if you have any coding experience.
But fear not, there’s actually a graph behind everything in Maya and we can visualize it using the Node Editor. On this article, you’ll learn what are nodes, their connections, and attributes in Maya, why you should care and how to use this knowledge in a practical way with two examples.
I’m no Maya expert by any means, this article is part of a public notebook that I hope can be useful for you to read as it was for me to write.
So, what exactly are nodes in Maya?
In its essence, everything you create in Maya is a node. The user interface is “just” an easier way they give you to create interesting data using their nodes. Nodes are the most fundamental structure in Maya, they are the cornerstone of how it works.
An object that you can see on a scene is a combination of nodes. Let’s take a basic primitive, a cube,
it’s formed by
shadingEngine, and its
transform. If you delete the object’s
construction history you’ll lose the
polyCube node since it was used to create the mesh in a flexible
way, after deleting it you end up with a leaner albeit inflexible object.
Nodes and its Attributes
Nodes need data to do their magic, and attributes are the data they need. Attributes can be plain values like numbers and colors, but they can also represent the connection between nodes. The transform nodes, for example, holds the position, rotation, scaling and hierarchy information all through its attributes.
Maya has several different ways to present attributes to the user, the Attributes Editor and the Channel Box being two very common and handy ones. What's important to take away from this is that all these user interface windows are displaying the same underlying data, each task has a more appropriate way to handle the editing and visualization of that data.
Nodes and the Construction History
Since we’ve just touched this subject in the previous section, let’s elaborate a bit on it.
Having nodes is great, but accumulating a lot of them uses RAM and CPU that could be slowing down Maya. Unfortunately, it’s also a common source of bugs. On several occasions what you’re trying to accomplish simply doesn’t work because you have a construction history, the tip is, if something isn’t working no matter what, try deleting the object’s construction history.
Even if everything is still working, once you’re happy with your model, it’s generally advised to delete its construction history (select the object and press Alt+Shift+D). This will remove all the steps you’ve used to create this object and you’ll end up with only the essential, the shape and transform nodes, but you can also have more, like shading and rigging. Construction history can even be turned off in the status line.
How knowing about nodes is useful?
Being the origin of everything, nodes are particularly useful for scripters and for advanced Maya users. You can add totally new functionality by creating nodes. Some connections between nodes and attributes are also best set using the Nodes Editor.
You’ll also have access to secret nodes like the one shown in this video
Dependency graph and Scene Hierarchy
All nodes are part of the dependency graph (DG) and the scene hierarchy. The DG describes the initial data set, how the data flows and how it is transformed inside your scene, each and every action you do on Maya results on a change on the DG or the scene hierarchy. The scene hierarchy is not strictly necessary but very useful, especially on animation. Changes in the scene hierarchy are usually made using the Outliner.
What are the other most common nodes?
Since you can’t have an object without a transform and shape nodes, these are the most common ones.
Transform nodes are responsible for storing the object’s position, rotation, scale and hierarchy (parenting) information.
A Shape node could be a
NURBS surface or many others. It’s important to realize that there’s no
such thing as a shape node without a
transform node. Finally, you’ll likely see a shading node.
For practical beginners applications, I’ve found the
transform node to be the most useful.
Example 1: Centering an object using a primitive and a temporary edge loop to later remove it and keep the primitive flexibility
Some of us modelers have the necessity to have everything perfectly in place, if something should be centered, it should be 100% centered, 99.98% won’t do it.
Let’s say you need to center two cylinders and one of them is rotated 90 degrees around the X-axis. To do that you could create an edge loop with an edge split command, change the pivot of the other cylinder and center it snapping to vertices.
Cool. You got the second object in the position you just wanted, the problem is that you now ended up with more geometry than you originally intended to for the first object. Just delete the edge loop, right? Sure, it will work, but what if you need to change the number of subdivisions of this cylinder? You simply can’t, since you have altered the structure of the original primitive, Maya won’t be able to figure out a proper way to recreate your geometry and you’ll end up with a pretty bizarre structure.
So what’s the solution? It’s a nodes article, you’ve probably guessed it… Messing up with some nodes, of course. It’s actually pretty simple in this case. You just need to delete the node that represents the edge split and you’re done. To do that first open up the node editor [Windows > Node Editor], select the object you need to remove the edge loop from in your viewport and click on the two arrows inside a rectangle icon in the Node Editor.
polySplitRing node and press delete. Now you’re able to use this cylinder again as if
you had just created it. I know that this is a corner case but might come handy. Once you understand
that everything you do in Maya is nothing more than creating and connecting these nodes (also changing
some of their attributes) you’ll start to have ideas on how to take some shortcuts or fix a few problems
that would take a lot of rework if done using the regular UI.
Example 2: Tying rotations to create a cool 2 speeds piece Spinning Top
Tying rotations seems to be the canonical example of the usefulness of the Nodes Editor. On this example, we’ll have an object separated into two transforms. One for the bottom and one for the top section. The top section will spin 3 times faster than the lower one. We’ll achieve that connecting their rotation Y attributes and a multiply nodes, in a production environment you’ll want to use a mechanical rig set up to do so, this is just an example to show you how to connect transform nodes.
Start by opening the Node Editor [Windows > Node Editor], selecting your two objects in the viewport and pressing the two arrows icon button just like we did in the previous example.
If you get more nodes than what’s shown here you can either ignore the other nodes or select them and press the icon with a few bars and a minus symbol. It’s important to not press delete, for Maya would delete these nodes from the scene, not just hide them.
You’ll now connect the rotate Y attributes by dragging and dropping. See the following video to watch me doing it. Use the unit conversion nodes that Maya automatically inserts in your graph to do the appropriate multiplication of rotation values.
You could also insert a multiplyDivide node by pressing tab if you want to be explicit about this operation to other people modifying your file (or you in the future?).
You’re now node powered
Uuh. What other node tricks will you be able to pull off? If you want to share your experiments and cool tricks with me you can find me on [email protected].
Main references for this article
- Nodes and attributes | Maya 2019 User Guide
- What are nodes and connections in Maya? | Maya Learning Channel
- A.S| Maya Tutorial for Beginners 2016| 44 - Node Editor
- Maya Nodes
- Construction History