Procedural Rocks with Houdini and UE4

Technical artist Yvo von Berg has recently started experimenting with meshes in Houdini. In our exclusive interview, he discusses some of the ways you can create game content in Houdini and use it in UE4.

Rocks_Unreal_Env_03

Introduction

This project is part of my experiments with creating art content in a more procedural way. CG, games and VFX production are complex, and there are typically a lot of steps necessary to create content. It is always a creative process, which requires multiple iterations to get things right. When the workflow is slow, your iteration process will be slow as well. When your workflow is flexible and allows these changes to happen, you will have a better work environment. How can we re-shape, or improve our pipeline? I believe that procedural content is the key to a successful pipeline. Houdini is an excellent package to create procedural content because it is node-based, so all steps are recorded into separate nodes, and can be edited at any point. 

This particular experiment is about the process of creating organic shapes – rocks for example. Can we create a tool to test a new workflow for organic elements?

Rocks_Unreal_Env_00

Rocks_Unreal_Env_01

Rocks_Unreal_Env_02

Rocks_Unreal_Env_06

Rocks_Unreal_Env_07

Houdini

Houdini Engine is a product created by SideFX. Already well-known in the VFX industry, it’s getting more and more popular in game dev as well. The cool thing is you can use Houdini Engine as a plugin in your DCC app or game engine (Maya, Unreal etc). This means that you can use the same tools / Houdini Digital Assets in all of these supported applications. The rock tool works exactly the same in Maya as in Unreal. This is great because there is no need to port tools to different packages. From the artist point of view, Houdini Engine makes it easy to work in a procedural way – eg. quickly change the layout of a building or scatter props. Art assets become “smart” – as opposed to static – and help automate the dull or repetitive tasks.

Rocks_Houdini_Breakdown_00

These are all the settings on my WIP rock tool: This is the UI for the artist.

  • Subdivide Parameter
  • Noise Parameters
  • Scaling Options
  • UV Angle, Scale, Projection Settings
  • Save to Preset

Rocks_Unreal_Env_04

Same UI in Unreal Engine.

Stones

This image shows the main graph, which is the inner working of the Houdini Digital Asset:

These different nodes represent actions, just like in any other 3D software. To explain how this works we will take a look at the subdivision node. The subdivision iteration value is ‘exposed’ to the main UI. The artist is now able to change the subdivision value.

Rocks_Houdini_Breakdown_01

Rocks_Houdini_Breakdown_02

Nodes in graph:

  • Box / Cube : We start with a simple default cube mesh,
  • UV projection: Just like in your DCC software, a way to create your UV coordinates. But in Houdini it is recorded as a node. So you can easily change the settings, move, or delete the node.
  • Subdivide: Apply a subdivision on the cube mesh.
  • Attribvop: Network to modify geometry attributes. The noises are added to displace the mesh. After some small experiments I discovered that the following combination of noises works great for rock shapes: Worley Noise ( main shape ) + turboNoise + Verono Noise.

Rocks_Houdini_Breakdown_03

  • Transform: Transformations like moving, rotations, scale operations.
  • Material node: I linked a Substance material using the Houdini Substance plugin (doesn’t really work in combination with Houdini Engine I tried to expose values from the substance to the tool UI, but you can load the Substance material as a separate asset in your DCC app/Engine).
  • Python node: Yes, you can run Python in Houdini! This node is responsible for two things:
    • Lock/Disable the settings when the subdivision value is greater than 5 (Similar to Substance you have to take into account that all of your operations are realtime. So when you want to change a lot of values on a high poly mesh, your tool might get a bit slow). Just lower the subdivision value to edit again.
    • Save all the values to a presetRock.txt file. Next step would be to load the preset and set all the new values. I’m currently working on that.

Achieving Control Over Procedural Tech

In this current stage it is possible to create a variety of rock shapes – the artist can change the look by manipulating two main settings: The noise for the shape + Substance or any other material editor. Because rocks in the real world are very organic shapes, procedural noise works really well. It is possible to polish the rocks generated by the tool in a sculpt software like Zbrush – this depends on the artist and the project.

I think I can make the control even better and add some kind of handles or curves that the artist can use to ‘push’ and ‘pull’ the rock shape. Also on the to-do list is to test if I can use the internal Houdini Baker in a Houdini Engine asset and to do some more tests with other mesh operations, maybe create inputs for other meshes to use as a boolean for the shape? Or clamp the rock height to easily create cliffs or icebergs. Endless possibilities. Speedtree for rocks?

UE4 Integration

In order to use Houdini Digital Assets you have to install Houdini Engine first. After that it is just a matter of importing the Houdini asset. More information about Houdini Engine and Unreal can be found here.

Rocks_Unreal_Env_05

Materials

For this particular asset I used Substance Designer for the material creation, because it is great for procedural material creation. It is also possible to create procedural materials using Houdini, but I haven’t tried it yet. Because the rock shape is procedural the UV node is important for the final look. That’s why I’ve exposed the angle of the projection and the different projection modes, so the artist can get the best fit for the UVs.

Very simple Substance material with a second layer for the rock layered look.

substanceMaterial

Applications of Houdini Engine in game development

In my opinion, procedural art content is an important development, and through improved workflows it can help make any artist happy. Possible use cases: asset placement / scattering buildings and props for a city environment, smart road/rails systems, quick asset variations – and more. Just like for example Substance Designer, Houdini is a tool to help the artist. You still need good art skills to produce good looking art, but it makes the process a lot easier and more exciting. I can’t wait to discover more about Houdini!

Yvo von Berg, Technical Artist

INTERESTING LINKS

GETTING TO KNOW HOUDINI WITH ALEXANDER WEIDE

3D ENVIRONMENT CREATION WITH HOUDINI

USING HOUDINI IN GAME DEVELOPMENT WORKFLOW

Join discussion

Comments 0

    You might also like

    We need your consent

    We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more