Tutorial: Create a Sine with Nodes in Maya

Tutorial: Create a Sine with Nodes in Maya

Wow! It’s been more than a year since my last post here… Time flies, huh? 😕 Anyway, I’ve gotten a lot of questions about the procedural ribbon from my rigging reel, and I promised I’d do a tutorial on that, I’ll try to get that done next week or so :)

This however, is actually the thing that got me started on the procedural ribbon in the first place. My first thought was to start with getting the sine-function to work with nodes, and then work my way from there. The ribbon turned out totally different from this tutorial though, but I thought this still could be a useful technique to share.

First off, there’s several tutorials out there on how to create a sine-function in Maya, but I still haven’t seen anyone do them with nodes. The main reason you would want to do things with nodes instead of using expressions is that expressions doesn’t always evaluate when you want them to, some times you have to scrub the timeline or playback the scene to force an evaluation of the expression. That can be really cumbersome if you need to adjust attributes that affects the result of the expression without seeing the changes instantly. Also, nodes evaluate way faster than expressions :)

The concept:

This is very basic, and the concept is very well demonstrated here, the tutorial just shows you how you can use this concept on several objects, so that you can control the entire chain of object affected by the sine with one controller.

Even if you know how a sine works, there’s still something to take out of doing it this way in Maya. Instead of dealing with just the math to get this to work (which you do with expressions), you’re dealing with a more practical setup, which can be easily modified to behave however you want it to. So as long as you know the “pattern” of the mathematical function, let your rigging brain take over and do a practical setup in Maya that lets you extract the behaviour of the function.

Here’s an interesting example Disney Research Lab released a little more than a year ago:
Computational Design of Mechanical Characters

The tutorial:

I’m using the translateY to output the sine in the tutorial, but remember that if you for example use this on a joint-chain, you could just connect the output to the rotate of the joints instead.


  1. badmanjam says:

    Awesome! Your technique is inspiring.
    Thank you

  2. celia col says:

    Hello your tuto on the ribbon is great but I have a worry the last script in python for the scale of the group I have a syntax invalid while I have the same line as you. For line 1 I am on maya 2017 Please help me
    Thanks have nice day

    • Jorn says:

      As you’re getting invalid syntax, you’re most probably trying to execute the Python code from the MEL tab. In the script editor, make sure you’re running the script from the Python tab. It works in Maya 2017 here, so I’m pretty sure that should fix it :)

Leave a Reply

Your email address will not be published. Required fields are marked *