
I get a lot of people who ask me how long it takes to learn Houdini and how I went about learning how to use it. Well as always it’s different for everyone. Some learn Houdini in 6 to 7 months and for some it can take years. I have been using Houdini for over 9 years now and I can honestly say I never became completely comfortable till about after a year and a half.
Now there’s a reason that it took me about a year and half to become fully comfortable in the software package. That is because I would use it on and off. I never fully dedicated myself, in the beginning, to use it fully on a project. I would switch back and forth between Maya and Houdini, using tools that I knew I could use well and that was mostly fueled by deadlines. If I didn’t have the time to fully learn something in Houdini, I would switch back to Maya and get the job done, because I was more comfortable there.
Many years later I now only use Houdini and have ended my Maya Subscription. So for me it took around 4 years to become so comfortable with Houdini that I could do anything with it. So what was the catalyst, what drove me to finally make the leap? I want to give you the 5 steps to learning Houdini Quickly based off of how I went about learning the massive application and share some of my learning stories along the way.
Step 1 – User Interface
I remember when I was first introduced to Houdini. I was working at Microsoft at the time and had discovered the website CMI VFX. On that site they had a video series of how to build procedural roads and fencing along those roads. This system would take in a user defined curve and pump out the geometry, uv’s, vertex colors, you name it! I found this to be a dream because at the time, in most of our productions we were still building everything by hand.
So if you had to make a model, you would pop open Maya, make a Low Res Mesh, Sculpt it inside of Zbrush, re-surface it to get the final game res mesh, UV that game res mesh, Bake it out in Substance Painter and finally texture it. So many steps to get to the final model and it wasn’t even rigged, animated, or in game yet. Imagine the amount of time would be needed if something had to be fixed on that model. A 3D Artist might have to go all the way back to the Zbrush model, fix some areas, re-surface that area, bake out the textures again, and re-rig it, then import it back into the game engine. Too many steps and it really reduced our iteration time. This is where I became a believer of using proceduralism for game production.
So the first step in learning Houdini Quickly is to fully grasp the user interface. Side FX, the makers of Houdini, have provided a great resource to get up and running with Houdini located here. Rohan Dalvi also has a great video on the basics of the Houdini user interface located here
I highly recommend both resources when first starting out with Houdini. It’ll take less than a couple of hours and you will know enough about the User Interface to move onto the next steps. You can also watch the Indie-Pixel Houdini UI video located here()
Step 2 - Start with SOP's
Going back to my first interactions with Houdini at Microsoft, I began to use Houdini more and more to do a lot of my mundane modeling tasks. I started to learn more about the Houdini Context called SOP’s. Now, I find this is one of those areas where beginners, to Houdini, get stuck. This is because there are so many Contexts inside of Houdini. There are SOP’s or Surface Operators, there are COP’s or Composite Operators, there’s ROP’s or Render Operators, and the list goes on. Even while I type this post Side FX is adding more Contexts to Houdini. The latest additions are TOP’s or Task Operators and LOP’s or Lighting Operators. Each of these contexts have their own set of nodes and they can be shared with other contexts or not, making it very complicated right out of the gate.
So I say start with SOP’s because that was what I did and it helped me to become familiar with learning how Nodes work in Houdini, how to generate geometry and create procedural relationships without having to code anything. This is very key.
Since I had started learning how to build my own procedural geometry using the SOP context, I got an opportunity to use Houdini on Star Wars Kinect. At the time, it was taking quite a bit of time to generate new tracks for the games Pod Racing mode. It could take days and weeks to make changes to the tracks and re-generate the rock formations or to re-arrange the modular building parts into new configurations. Plus it took a small army to make all those changes. Now I am not advocating that we replace 3D artists with proceduralism, we simply want to make our lives easier with it.
So what I did is built a whole system of modules in Houdini called HAD’s (which we will talk about later in this post) to automate the building of the tracks, its UV’s, all the vertex colors and collision meshes, even the navigation meshes. This proved to speed things up quite a bit, but we then took it to the next level and began to produce base meshes for the rocks that could be sculpted by 3D Artists, so the amount of time invested on the 3D artists side was reduced. We could pump out tons of variations of rocks and even include the procedurally generated meshes with the track tools. Meaning when we laid out a new track or revised an already existing one we would get our rocks generated and placed for us, saving a bunch of time for the level artists.
All of that was done simply using the SOP context. Most tasks in Houdini start with the SOP context, this is because you usually need some geometry to start with, whether you are making a procedural model, or destroying a building, or creating some sort of particle effect. They all start with the SOP context and make their way into the other contexts. This is why I highly recommend fully focusing on the SOP context when first learning Houdini. It’ll help you understand the major underlying concepts of working with Nodes and Context’s.
Step 3 - Attributes, Groups and Components
Once you get comfortable with using the SOP nodes in Houdini, your next most likely step is to start using groups and attributes. Plus you will start to learn more about the different components of a mesh in Houdini because it is different than most 3D applications. So let’s start with Components.
In Houdini a mesh is composed of points, vertices, primitives, and details. A point is basically the same as a vertex, if you are coming from another 3D software package but is just a bit different. A point can be a part of many triangles in your mesh, where as a vertex, in Houdini, can only be in one triangle. T learn more about Components in Houdini, check out the Side FX documentation for a full detailed description located here.
Next we have Attributes. I would say that this is one of the most powerful elements in Houdini, whether you are working in SOP’s, DOP’s, COP’s, ROP’s, etc. This is how we add and pass data around on our geometry. For each point, vertex, primitive, or detail, we can add extra data to each of those components and this is where the real power begins to develop. Once you start to understand and master attributes in Houdini, you will open up the next level in your Houdini training. It is the basis for all things procedural. It helps you pass information to other nodes to build other geometry. It helps you to create relationships between your data. It’s really unlimited as to what you can do with Attributes, which is why I love Houdini so much. If there isn’t a tool or feature in Houdini for task that I am trying to do, I’ll just make my own tool / feature. You can literally create your own geometry tools rather than waiting for Autodesk to include it in Maya or Max. While that sounds very powerful and exciting it does come with one caveat. You will need to learn vector math’s at some point to become all powerful in Houdini. This, for some, might sound scary or even boring. Well, all I can say to that is I know the felling. I felt the same way when I first started. But there will come a point where you learn to use sine and cosine and the light bulb will go off.
While I am on the topic of Math, let me get back to my story of first using Houdini on Kinect Star Wars at Microsoft. We were becoming quite successful with our little tool set we had created in Houdini and really wanted to branch out and include terrains and more advanced features. This is where the math comes into play. I finally realized I needed to learn a little bit of math to accomplish some of the advanced systems we wanted to create. So I dove in and first started with Trigonometry.
Now, Trigonometry is just a fancy word for the “Study of the Relationships of Sides and Angles in Triangles”. So don’t let it overwhelm you or scare you off. I was at first as well, but have found it to be very powerful and fun. It also has thrust me look at my art in new ways and approach things from different angles. And honestly at the end of the day it really isn’t that difficult. It just sounds difficult.
What I did was I started to learn how to use sine and cosine to modify positions of points. This lets you create waves and build circles automatically, given just a few parameters such as radius, amplitude and offset. Once you understand the uses for sine and cosine, you will almost undoubtedly want to learn some vector math. The best things to focus on, in my view, is the dot and cross products as well as learn to move points by adding and subtracting vectors. Using those basic functions you will be able to create some very impressive procedural models and systems.
With regards to the track tools for Kinect Star Wars, I began using all those math concepts to add in things like banking to the track, finding the slope of the track or terrain, placing certain props on areas of the track that had high curvature, etc. All those elements would be very difficult to build in Maya or max. Inside of Houdini, it’s a breeze once you follow these steps.
Finally we have Group in Houdini. Groups are powerful and necessary in your procedural modeling and other contexts. They allow us to partition parts of our geometry into smaller parts. This way we can work on the smaller parts and leave the other parts of the geometry alone. In Maya, this would be equivalent to separating off a chunk of geometry to do some isolated work. In Houdini we create groups so we can run different node networks on different parts of our geometry. You almost have to use groups in Houdini if you want to create sophisticated procedural systems. So I highly recommend getting comfortable with groups by reading up on the Side FX documentation located here.
Step 4 - VOP's & VEX
Once you have become comfortable with step 3, you will most likely begin to dive into VOP’s which stands for Vector Operators. Within a geometry node we can create a point vop node. You can double click on this node to jump inside of it and begin to create nodes that process vector information and really a lot more than just vector processing. The VOP nodes cover things like noises, math nodes, rotation math, conversion nodes, and more. There is so much you can do in here and if you aren’t into coding anything you will spend most of your time here in VOP’s to do all your math operations.
I highly encourage you to spend some time playing around with the examples located on this page. they will help open up the power of VOP’s for you Houdini learning.
If you are into coding, definitely start to learn VEX. VEX is a powerful language in Houdini that allows us to manipulate our geometry by writing small snippets of code. It is much faster than VOP’s but does require that you learn a little bit of coding first. I also want to state that this is not necessary to learn Houdini. I know many Houdini artists who don’t use VEX in their Day to Day work and it is only because they prefer to use VOP’. So at the end of the day using VOP’s or VEX is a personal choice. I do want to say, however, that if you do learn a little bit of VEX you will become faster and your networks will cook faster. If you use VOP’s first for a while, then learn a little VEX, you’ll begin to see that you can do the same operation in a couple lines of code rather than throwing down 20 nodes in a Point VOP, to do the same operation. So in the end it saves you time and the VEX code compiles faster. Check out the docs on the Side FX site for more info on VEX.
Step 5 - Digital Assets
We finally get to the last step. Houdini Digital Assets. The track system I developed for the Kinect Star Wars game, was all built using HDA’s. Houdini Digital Assets are basically modules that encapsulate node networks you build in Houdini. This is cool, because after you start becoming really proficient with Houdini you will start to see yourself doing the same tasks over and over again. This type of repetitive work is what proceduralism is all about. We can use HDA’s to bundle up our repetitive work so we don’t have to do it anymore. We can even create our own user interfaces for these Houdini Tools making them very powerful when working in a team environment. You can have one or two individuals creating the Houdini Digital Assets while the other team members can use those tools in their everyday work. Whereas before we needed to have a programmer create tools in Maya or Max, which could take a while. Now a Technical Artist or 3D Artist can create their own tools and free up the programming team to focus on larger tools for the projects.
Definitely read through the “Introduction to Digital Assets” documentation on the Side FX site as a start, which is located here. Once you feel comfortable with the basics, start creating more HAD’s to automate things you are doing over and over again in Houdini. Everything will fall into place after that.
Learning to create HDA’s will round out your Houdini learning experience. Once you have mastered these 5 steps I guarantee you will understand the rest of Houdini. These are the building blocks that I see necessary to going from beginner to intermediate. After that it is all about learning more about the other Contexts, more math, and learning to approach problems from different angles.
Conclusion
There we have it! If you follow these 5 steps in your Houdini training you will feel like you have a bit more of the underlying foundations in place to learn the other stuff. I find so often that individuals learn Houdini to make that big FX shot, or to destroy a million buildings all in one go, or to create interesting particle FX. But Houdini is so much more. For games in particular we can use Houdini to automate modeling and uv’ing tasks. Or to create vertex colors without having to paint them by hand. We can even go so far as to create our own procedural level building systems using the Houdini Engine for Unity or Unreal. So it’s much more than creating FX shots for movies. I’d go so far as to say it is the most powerful 3D package on the market today.
Learning these foundational steps will help you understand Houdini as a whole. At its core Houdini is built on these 5 Steps. Take a moment and section out some days or a few hours to work on each of these steps individually. When you feel you have fully grasped the concept, move onto the next step. Take your time and make sure to have fun! As always, send a message to Indie-Pixel or leave some feedback on this post. I’m always interested in hearing how others learned Houdini and the stories behind that process. Thanks so much and talk to ya soon!