Rigging in Harmony: Joining Shapes

Posted on

I consider myself to be a bit of a nerd. There were my fellow students when I was in school that just wanted to get in an animate and draw and go…then there was me…ripping apart the software from the ground up and seeing if I could break it. I wanted to be the person that if someone went “How on earth can I do this??” I could go “I know how to make it do that!”.

I’ve noticed from working on projects and teaching Harmony and Maya, that there are lots of little things I take for granted that I’ve discovered along the way from other people and just playing with the software. You know…things where you go “Everyone knows that!”…but then you find out NOT everyone knows that?? So I thought (especially since I’ve been teaching) I would restart my blog here with random little tips I have found.

Heck, might even end up being a good resource for my students!

So I thought the first thing I would start with is all the different ways to join shapes.

I’m sure we have all had those character rigs at least once (or multiple times) that nearly crash your shot, or take an hour to upload to the studio server. But why do they do this? Most people might think the fewer nodes in the node view the better, but that’s not always the case if some nodes are doing calculations. You really have to pick your poison sometimes. Weighted deformers, cutters, and auto-patches as well as the number of composites (even type of composites) you have can ALL bog down your CPU.

Now keep in mind not everything in these posts will work in every situation. For example, some of these will not work if the z-depth is pushed forward or back. So if you chose them for on the arm, and at some point, you had to move the lower arm back to put it behind a body, the line will show. therefore, not a working option for what you need the rig to do.

Using an Auto-Patch versus Art Layers
On the front, they look the same, but to your CPU, they aren’t.

Now looking at this, the art layer method has more nodes, so you would think it’s heavier…but it’s actually not. Your CPU has to think with the autopatch, while with the layers it’s just going “Ok you go here, then you on top, then you…”

Both of these methods can also work with overlays to create things like folds in arms. Only being revealed while over the other shape.

Overlay art layer applied to create a crease
When the crease is not over the shape, it is not shown

Want to squeeze every last bit out of this for speed? (yeah it’s already light but maybe you want to save CPU memory everywhere possible) Group that stuff and save it to your library!

all the nodes put in a tidy group
inside the group

Don’t forget to right-click your library, select “Right to Modify” and then paste the group you just made into your library and name it!

Now, what are some limitations of this method? Well, as previously mentioned, z-depth layer can either become a pain for the animators or just not work period.

Element in the Foreground with an autopatch
Autopatch doesn’t work in z-depth

In this case, if you wanted to stick with the auto patch, you CAN basically cross the wires of two autopatches so they work in z-depth.

The fold is displayed on the overlay layer, which is currently disconnected for this example.
Now you can see if the circle is behind, it cuts the line of the rectangle, so no matter who is in front, the line art is cut.

One issue would still remain with this set up which is if you push the arm back, the overlay fold is also now behind the rectangle, but you can fix that by putting a peg on the overlay so you can stay in front.

The biggest limitation for me on these is that you can’t make changes to the overlay on the fly to adjust the lines. Maybe you want a fold in the arm to be longer or shorter. In these cases, I like to create a shape that isn’t visible but cuts the lines between the two shapes. This way you never have to worry about layering and you can play with the shape of folds or shape interactions.

What you end up doing is having the line art, of whatever element is on top, be cut but the area inside of the shape behind. This would be the colour art, being trimmed by the line art, which is also basically what an autopatch does. BUT the line will only be cut if it is within that area AND the patch element.

The line art of the circle is being cut by the green cutter, but only if it is within the blue rectangle.
What happens if you push the circle back? Now the cutter cuts the rectangle’s line.
Simply unplug the cutter from the composite so it does not show through. I find this better than a visibility node because the character can look cluttered otherwise. I will however add a small handle to this cutter for the animator to see that will not display when rendered.

Now, these last two methods are way above what you would need to build if a shape is simply sliding in front of another. Think long and hard about what the prop or character actually needs to do and build for that. overbuilding takes time and computer memory. And if you give an animator a prop with 50 nodes and pegs in it for something that just has to tip over, it can be overwhelming.

Another helpful tip is as you make networks of nodes that you find you are using a lot, save them to your library to save time. I have a collection of cutter groups. Even some as simple as a basic invert cutter setup. Pulling in one group is faster than grabbing two or three nodes and hooking it up.