Houdini for Groomers

Jesus FC
Lead Groom TD
Alejandro B
CG Lighting Artist

Introduction

This tutorial has an objective, to learn how to use houdini from the groomer perspective, learning how to create, handle and edit the groom. This won’t be a full in depth houdini course or a deep dive into houdini grooming. We will learn how Houdini is taking the data and how it handles it.

Even though this is not recommended workflow for production grooms, this process will help a lot to understand how Houdini works on a basic level.

We recommend that you study a little of houdini basics before jumping into this tutorial, as we are going to focus on the grooming end.

This Playbook, was created using the "Houdini for Groomers" video tutorials from Creature Garage!

Here are some of the hotkey combinations available while viewing. You can skip spacebar/alt if you are actually in the View tool:

Tumble Spacebar or Alt[Opt] - Left Mouse Button [LMB]

Pan Spacebar or Alt[Opt] - Middle Mouse Button [MMB]

Dolly Spacebar or Alt[Opt] - Right Mouse Button [RMB]

The UI vs MAYA.

Houdini is a node based program, so everything that we create will have a node that we can work with, similar to the node editor on maya for example. Here we will learn about Houdini UI for grooming.

We will mainly work with the “object context” and “out” networks.

As part of the Network Pane, right bottom corner window, we will use:

The “out” network helps us export data, such as .abc, .obj, etc.

The “Object Context” is where we will put everything and work there.

Everything that we do, is inside a object context, for example, “/geo” (geometry) and 

Regarding the viewport and navigation, as in the image mentioned we can have multiple geometry containers in our “object context”. But we have to be careful as we could be trying to edit one duplicate geo and do nothing, because it was on another container.

We can be working on container 3, while seeing objs on container 1 and that can be quite confusing if we are not used to the pipeline / workspace.

At the top of the UI we have the shelves and there we will have the “Hair Utils” and “Guide Properties”. These shelves are quite user friendly, but the more we learn we will use those less and stay within the Network Pane at the right lower corner, to avoid creating unnecessary nodes that would be created if we used the icons on the shelves.

At the left side, the toolbox contains many common tools, such as the translate, rotate, scale and other useful tools.

Also we have a tool that let’s us, “Show all objects”, to “Ghost Other Objects

and to “Hide Other Objects”.

Now, we have learned how Houdini stores the different nodes, about containers and a little about the network workflow.

WTF is wrong with the attributes.

What makes Houdini… Houdini? For someone that is not used to it. The base is that you don’t ever lose data, you can create data from everything, you will have points in a location, attributes (float 0.0,1.0 / integer 0,1.0 / strings / vectors) for your assets…

Here in Houdini we can add attributes to the primitives, such as edges, faces and others. For example should the attribute should exist on the vertex, on the curve, etc. We have an advantage here over XGen, if we know how many points our curves have and where those start and end, we can create an attribute that makes the tips to be a specific color. If the curves have 4 points from root to tip (0, 0.33 , 0.66, 1) we can establish that after 0.66 the color changes to white.

We know now, what are the different objects we see and what lies beneath them. Playing with the attributes is a great way to customize our results just as in the curve example.

Spheres, faces, points and primitives.

And finally, let’s create something on our own. “In Houdini, every action you take is stored as a node. These nodes are then “wired” into networks which define a “recipe” that can be tweaked to define a repeatable outcome where each iteration can generate unique results” - Learning Houdini, media.sidefx.com.

To start creating we will do a simple sphere and understand what happens when we create one, what we can do with it and how to access all the parameters that define it.

We can create an empty “Geometry node” if we open the “tab menu” with the “tab” key  and search for “Geometry”, this node that contains the “transform”, “render” and “miscellaneous” information.

VERY IMPORTANT: When working with grooms we have to enable the “Shade Open Curves in Viewport”, in the “miscellaneous tab” as this will render out the thickness of the groom in the viewport.

Inside this node (double click it), search for a “sphere” in the “tab menu”, and now this will create a sphere, we will be able to see it on the viewport and edit it.

If we go to the “network pane” and use the “tab” key, outside of any node, there we will type “sphere” and select the “sphere” option. This will create a “Geometry node” with the actual sphere inside it.

A “geometry node” can contain multiple geometries inside of it. And this is why we need to be very organized and conscious of where we are.

NOTE: the “tab menu” changes if you are outside or inside a node. That is why we can create a sphere inside the node without creating an extra geometry node.

One thing to keep in mind, is that you cannot create nodes of the same hierarchy level inside of each other. Example, you cannot create a camera inside a geometry node, nor can you move it inside.

Right now when we look at it, this sphere doesn’t  look like a polygon, there are no faces. For this information we need to display it. Right now the node has 3 options, “selection” the green pointer, “data” with the “i”, and at the right side “visibility” with the eye icon.

Double Clicking the node, lets us inside the node. There we have access to more information.

Here if we click the “i” for the data / information, we will see all the data, points, primitives, vertex and spheres. And let’s remember, a primitive can be an edge face, objects and multiple objects in one container

Just above the “Network Pane” we have the “parameter pane” where we can  set values, add expressions, and keyframe selected nodes. Here, having selected the sphere, we will see “Primitive Type”, right now we don’t see the mesh because we have the ”primitive type”. If we change it to Polygon we will have the triangulated representation of it, and if we select “polygon Mesh” we will see the usual mesh we are used to, mostly with quads and the same shape.

With the “Polygon Mesh” type selected, if we go for the data of it now, we will see different information, this because the “Primitive Type” defines the information used. Therefore, within the data we will see, more points, more primitives, more vertex  and a matching polycount for our polygon to our primitives.

With the “Mesh” type selected we will have simplified data, lots of points, 1 primitive, many vertex and 1 mesh.

Note: “Polygon mesh” and “Mesh” might look the same, but are different, for the PolygonMesh each face is a primitive and for the Mesh, the whole object is one primitive.

Remember a primitive can be an edge, face, object or multiple objects. Well this is where it can be quite fun but very easy to confuse. First let’s talk about selection, ok?

Here we have 3 selection options, “Points Selection”, “Edge Selection” and “Primitive Selection”. First two are quite easy to understand. But the last one is defined by the object we are going to select. 

Here we will show you the sphere with different types of primitive option and how does it affect the “Primitive Selection” tool:

The one we will mainly use while grooming, will be the “Polygon Mesh'', so how can we always have a Polygon mesh without going too deep on the contained of each object? 

We create a “convert node” and set it to “convert to” “polygons”. Now we can, for example, drag select faces!

With this information, now we know how to select the object, have on the desired type and be able to select, for example, faces of the mesh!

Finally we know how to do the basics, to create a geometry, set the correct type of geometry, to select faces, we understand primitives and how to read the data of each geometry we have in a scene!

Enough with the spheres! How to import a model.

Now that we know a little about selecting and navigating on the network, we will learn how to import geometry!

To begin with, we will search on the “tab menu” for the “file” node. NOTE: If we create a File node on the main network tab, we will create a geometry node with a file node inside. Creating a file node already inside a geometry node will just add the file node. The first you’ll see a default box, but once we load our asset it will change.

Now we will go for the desired asset on our PC, in our case we will use a model of a fox. But now we have to check out the information and we will see that we have some points, primitives, vertices. packed alembics and just below a ton of groups!

Remember we mentioned that a primitive can be multiple objects packed? Well now we have to unpack those and for that we use the “unpack” node. If your file is an alembic you can create the “alembic” node, load the asset, then for the “Load as” select the “Unpack Alembic Delayed Load Primitives”. And you can even tell Houdini how the groups will be handled, we will use for the moment “Name Group Using Transform Node Full Path”.

Now, we only have to add the “convert” node to our unpack node or to the alembic node and our object starts to behave as a normal polygon like in maya. We can check the information of the convert and will find for vertices the amount we would see in maya.

NOTE: everything called “rop_” is a node to export data!

Perfect! Now we learned the two different import methods, now you can import your fox model, your character or any supported files by Houdini, just don’t forget about the convert or unpack!

How to create a groom.

Finally, after learning the basics of how to move on houdini, we will start a groom on Houdini! A basic one, but we always start from the basics ok!

NOTE: Houdini is scale agnostic, meaning, you can always scale at any point and compensate for it, but just know your unit scale will always be 1 meter.

To start the most basic groom process we will go for the “Add Fur” on the “Hair Utils shelf”.

Then we will click on the geometry that will have the groom and then hit “Enter”.

This will create the desired nodes and add to our object a groom.

NOTE: remember we will mainly work with the Geometry Type - Polygon Mesh.

NOTE: In Maya the groom starts at the base of the SubDiv 1, in Houdini the groom starts at the base of the basic geo. Also, Maya and XGen with it’s new “Viewport 2.0” is one the best out there so don’t expect to see the same quality in the Houdini viewport

This node is the “guides” node. Mode, density and all the guide attributes.

Here are two examples on how different settings change the groom:

How do we control the groom to grow along the guides? Here in Houdini, unlike in XGen, a curve, guide and line are the same, so you can apply the guide brushes to the hair brush. So, we can manually put a guide and use a brush to sculpt it! Also we can grow the curves like hair, and we can scatter the guides on the surface, this is the method Houdini used for the example above.

Right now the curves that the hair is following, are actual nurb curves. For the moment we will ignore the deform node as we are not going to work with that node.

Now if we go to the “hairgen” node, we will learn how to deal with those patches of hair and weird interpolation. We have to change the Influence Radius and decay, and set how big and strong is the influence of all the guides. 

And now, our hairy sphere has been born! In this chapter we learned about the creation of a hair system in Houdini and the nodes that come with it. We can create this node one by one, just a reminder. Just a reminder:

Guide Groom: is the node where the guides are stored and where we have to go shape the guides!

Hair Generate: is the node where the hair is stored, there we work the distribution of the hair.

Guides and interpolation.

So why is Houdini different? Because we have all the control. So now let’s control this and edit our guides and play with the interpolation.

Before moving forward, let’s save the file to avoid losing progress.

Remember we said, we have all the control, well let’s do something just to prove it! We have right now 3 nodes, let’s rename them to the desired naming convention. And then change the geometry! If we add a Geometry Node – Grid, we can change the groom just by dragging

To continue with our guide, let’s go back to the sphere.

Now if we go back to the sphere_GC, and go inside it we will see the guides, skin and SKINVDB.

Using a “Guide brush” to edit our guides will create a path. Meaning we can delete strokes instead of CTRL+Z like we would have to do in Maya.

Weirdly, all these tools are one single node, so once we create one, we can access those within the created first node.

For this example we will start with a “Screen Brush'', if we are already inside the Guide Groom the nodes will be created. If we are outside, Houdini will look for the first Guide Groom Node and create it there, so be careful.

And now we will start with the brushing. Aswell we can change the Brush type to “Cut”, “Surface Brush”, etc. Try them out. You can accommodate the groom as a whole or on by one, but it might not be as simple as in maya, here to edit a single guide solo, we have to first, click on the selection icon on the node settings, then click the guide desired and finally hit enter.

We can also have multiple grooming systems inside our “Guide Groom”, and for this example we will recreate in this second node, the way XGen works with Guides placing.

For this new node we will set the tool to “Plant Guides”, so we can place those manually.

NOTE: Remember you can change the visibility of the hair, or most nodes, that is why in the previous image you don’t see the hair.

Now with that, we can work as in Maya XGen. We can even go a step further and add a “guide groom” node to the “hair generate” node.

With this new setup, we can edit not the guides, but the hair itself!!!

You can also duplicate the “generate hair” and have your guide curves drive multiple hairs!

Finally, now we know how to create a groom, to drive to multiple hairs from a single Guide node, how to select the guides, give shape and most importantly, we now understand the base of everything. With this knowledge we can create a groom and style it as we want. 

We learned why Houdini is so good for grooming. Node based software allows us to take full control, to manipulate the data to our advantage and thanks to that, we can create amazing works!

Conclusion

From understanding the UI, learning about the attributes, primitives,creating the first node and making the groom! We learned about the different tools that let us modify and style at our pleasure. 

Houdini can be quite scary at the beginning, we have to get used to many new concepts, some things are easier here and some are more complex, but at the end, Houdini is a great tool and now you know it too!.

Thank you for reaching the end! 

See you on the next one!

We recommend checking out some of these tutorials:

Houdini Grooming 101

Introduction to Houdini Groom

//Section Share-on 2