This is great. Keeping UVs at 90 degrees never occurred to me but it makes so much sense it seems obvious in retrospect
Unless I'm mistaken, this is how Shadow of the Colossus handles the fur on the Colossi
Awesome breakdown Simon!
At SIGGRAPH 2015 we met with Robert Magee and Bill Self of Side Effects Software. We learned in detail about the tool, the use of Houdini in games, the procedural nature of Houdini, and some of the biggest AAA game that have used Houdini.
My name is Robert Magee and I’m the Product Marketing Manager at Side Effects Software. I’ve been there for about 13 years and I’ve been in the industry for about 20 years. I basically work with the software and try to help customers learn more about it, what it can do, and help understand what the customer needs and then communicate that back to the company as well.
I’m Bill Self, I’m Public Relations and Marketing at Side Effects Software. One of the big things I do is tell our customer’s stories and convey them on our website and show the community what people are creating with Houdini from games content to commercial and feature films.
Houdini is a procedural node-based solution for animation, visual effects, and game making. This means that everything you do in Houdini creates a node. You create a box, you get a node. You PolyExtrude the box, you get a node. You twist the box, you get a node. A lot of other packages have this as construction history, but that construction history eventually gets wiped away.
In Houdini, you keep it around and it becomes part of your ultimate workflow. Because of this, what you can often do is create these networks of nodes that define a pipeline or workflow, and then they can be shared with other people. So let’s say I want to have particles coming off of an object, or I want to take a character and turn him into vampire dust. I can set up a network for how to do that, and once I’m finished I can give it to my colleague and he can take the same network and he can turn his character into vampire dust very quickly and easily because this pipeline, this recipe how to do it, is packaged up and shared.
We’ve taken it one step further, where you can take those networks and wrap them up into a single node, promote parameters that you think would be relevant to artists and then you share this new asset to other people. An example of this would be city building tools. You might have an asset where it can build streets, or one that builds buildings, or another asset that puts streetlights in. These assets can be built by somebody who’s a bit more experienced and then they can be handed off to an artist who can work with those.
One of the things that happened on the games side was, we had all these wonderful things, but people wanted to work with these things inside their game engines. Not so much at runtime, but while I’m creating content, I don’t want to just export this from Houdini, but I want to be able to build my roads in Unity or Unreal. Because of this we created the Houdini Engine. It’s a plugin for any number of apps. Currently we have Maya, Cinema 4D, Unity, and Unreal. This plugin allows you to take those wrapped up assets I was talking about, and open them inside these other apps.
So I can be in the Unreal Engine, open up these other assets, and have all the other top level controls that I would have had in Houdini. What I do is as I manipulate it, under the surface the Houdini Engine processes the results and feeds them back to Unreal. It allows all the power of Houdini but within the more comfortable user interface. This is built around the Houdini Engine API, and this API is available to customers. If you have a AAA studio that has a game engine of their own, they can create their own plugin and get exactly the same workflow.
We’ve essentially created the Unreal and Unity plugins more as proof of concept to help people. Also what it does is allow indie artists and indie developers to get involved as well. We sell the Houdini Engine on the Unity store. They can also get it from our store. We have a few assets that people can download and try.
Versions of Houdini
The different versions of Houdini that exist are broken down more in terms of where you are in your development. We have a free version called Houdini Apprentice, it has virtually all the features except it doesn’t work with the Houdini Engine, but it does allow you to learn Houdini, develop networks and nodes, and so forth. It also has a render watermark and a limited render size 1280×720.
The next level up is Houdini Indie, it’s available for $200/year US dollars. if you’re making less than $100,000 you can use this product. It has pretty much all the features, limited render size 1920×1080 and no render watermark, but it will give you access to the engine in Unity, Unreal, Maya, and etc.
From there are our commercial versions Houdini and Houdini FX. Houdini is focused a bit more on animation, lighting, rendering, and modeling. Houdini FX is all of that plus – particles, pyro effects, fluids, crowds, and any simulation. The indie one has all the features but the commercial one can be used on bigger projects.
Procedural Calculations used to Build the Assets
The procedural nature of Houdini is about using very simple nodes that pass information onto each other. So if you have a box, that box passes to the next node and the next node, looks at the information there and does something to it and passes it on to the next node and so on.
One way to get those group of polygons into the next node is to select them. So you select polygon 2 and it’s going to feed in. Another way to do it is to create procedural techniques. I’m going to group everything in this zone and any polygons in this zone go into group A and group A will now be PolyExtruded. So there’s these ways of creating procedural techniques that allow you to make a change early on in the chain and it propagates all the way through. That’s the key, being able to make changes at any stage and they’ll propagate through and give you a different result.
Advantages of Mantra
Mantra is a render engine, photorealistic PBR render. It can handle lots of data and has a real production oriented workflow and how it sets things up. A lot of our customers have sort of grown used to it over time, given us a lot of feedback, and now it’s used more and more. There was one movie that came out in 2014 called The Book of Life that was all rendered in Mantra. It was usually used more for rendering visual effects, but it can be used for more than that as well.Mantra is a “get on the CPU and work hard” sort of thing. It’s got motion blur and depth of field and everything else. Plus we do a lot of volume rendering and volumes aren’t generally supported real-time because they’re heavy duty stuff.
Houdini in Games
A growing number of AAA customers are using Houdini right now, but their projects haven’t come out yet. Guerrilla Games have been using us for quite a few years for some of their Killzone games. There was also a studio in Canada we profiled on our website recently called Frima Studio that used us for a mobile game. That’s an interesting story because what they had was 2D elements and they had a game designer which created a whole bunch of cubes that they used to map out the world, but once they finished they needed to bring that in and texture it and get it all ready. So they built a system where they could bring these cubes in automatically in Houdini and merge them together, automatically create an edge and it could assign texture maps automatically.
They got this nice look and feel and this whole flow of this game and it was all done procedurally in Houdini and then they spit out the graphics for use in the game. That was a fascinating story because you’d think Houdini was for 3D games, but it was actually a 2D game that fed into it as well. With Frima Studio they could create an immense world, where things could be populated by vegetation and the vegetation was created procedurally so they didn’t have to do it by hand. It just basically enabled them to fill this big world with vegetation. Saving thousands of hours on level building.
Looking at EA’s SSX, a downhill snowboarding game. What they did was they wanted to use real topographic data of mountains. What they did was brought the data in and they procedurally plotted points down the mountain. They would have about 10 or 12 runs for a typical game for those sorts of titles, but by going procedurally they did over 300. By plotting the course they could actually do a procedural test of the course. They would run a procedural character down the course, and if it was too steep or too fast or didn’t make sense, they would move onto the next one. That’s how they were able to quickly go down the landscape and test a bunch of things quickly and easily. You’re not paying a super high price for making changes. And this is critical for artists in a way it frees up creativity because you don’t have to worry about the implications of a change. A change doesn’t hurt you, it helps you and makes your game and creativity better.
Future of Houdini
On the games side it’s to continue to work with the AAA customers to find out what their needs are and try to translate some of those back to the indie gamers. For Houdini itself we’re also starting to put more bread and butter tools. We just announced Houdini 15, our latest version coming out in October. We’ve added traditionally modeling tools like poly bridge and improved our PolyExtrude and edge sliding. We’ve added something called 2d expand which is useful for making procedural roads for cities.
As game artists get involved we’re going to make sure that those bread and butter tools are in place for them. Beyond that, it’s looking at ways of running the engine on the cloud and ultimately running procedurally at runtime. For now, Houdini is a creation engine that runs in the game editor to help game makers work more quickly and iterate faster. It is not yet a runtime solution but we’re looking towards that in the long-term future.