Houdini 20.5 Unreal Landscapes

Landscape Scatter by layer

On this page

This workflow covers how to import Unreal landscape layers to spawn points using the Heightfield Scatter SOP. There’s an advanced workflow that covers how to use the unreal_foliage attribute to create Foliage Actors using Instances.

A few key things you will learn in this workflow:

Setup landscape in Unreal

  1. Create your landscape using Landscape mode.

  2. Create new material and name it LandscapeScatter_Material.

  3. In the material graph, click ⇥ Tab and create two Constant3Vector.

    1. Change the color to red for the first constant.

    2. Change the color to pink for the second constant.

  4. Click ⇥ Tab and create a LandscapeLayerBlend.

    1. In the details panel, select the + symbol next to Layers to add two Array elements.

    2. In Index 0, expand the dropdown tab and change the name to base.

    3. In Index 1, change the name to grass.

  5. Connect the Red Constant color white output to the Layer base input.

    1. Connect the Pink Constant color white output to the Layer grass input.

    2. Connect the Landscape Layer Blend output to the Base Color input.

  6. In the Outliner, select your landscape.

  7. In the Details Panel, apply your material to the Landscape Material.

  8. In Landscape Mode, go to Paint Tab and locate Target Layers. You should see your materials.

  9. Select your weight-blended layer.

    • If you don’t have one, click the + symbol and create a Weight-Blended Layer (normal) for both materials.

  10. Select your grass layer and paint a section of your landscape that will be scatttered.

Your landscape is now ready for Houdini.

Send Landscape to Houdini

  1. In the Houdini Engine main menu, select Open Houdini Session Sync.

    • A new Houdini application should open.

  2. In the Outliner, your Landscape and select Send to Houdini.

  3. In Houdini, you should now see three nodes in the subnetwork.

    • If you want to work with a reference from Unreal, it’s safest to work in the UnrealContent node.

  4. Enter the UnrealContent subnetwork, then enter the Landscape Geometry node to work in the Surface Operator network view.

You are now ready to setup Heightfield scatters on your referenced Unreal landscape.

Create scatter on Landscape

  1. Create a Heightfield Scatter SOP and connect the input1 and input2 to the output of the Landscape Object Merge.

  2. In the Heightfield Scatter SOP node’s parameters, do the following:

    • In Mask Layer, change the name to grass.

    • Turn off the Keep Incoming Scatter Points and Keep Incoming Terrain parameters.

    • In Randomize Yaw, enter 180.

  3. In your scene view toolbar, change the Object Visibility setting to Hide Other Objects.

    • Two references were created when you sent your landscape from Unreal.

  4. Create an Object Merge SOP and connect the output to input3 of the Heightfield Scatter SOP node.

  5. Select the Object Merge SOP and Heightfield Scatter SOP. Then create a Subnetwork SOP and name it Landscape_Scatter.

  6. Enter into the Landscape_Scatter subnetwork.

Export settings for HDA

  1. Select the Heightfield Scatter SOP and Object Merge SOP, then the Landscape_Scatter subnetwork in the View toolbar and select Create Digital Asset.

  2. In the pop-up window, change the Asset Label name to Landscape Scatter.

    • You can change the other settings to your preference.

  3. In the Edit Operator Type Properties pop-up window, locate the Existing Parameters tab.

    • You can expose parameters from your Heightfield SOP nodes to change them in Unreal Engine.

  4. In your Object Merge SOP, drag the Object1 parameter into the Existing Parameters tab.

    • In the Parameter Description pane, rename the Label parameter to instanced_objects.

  5. In your Heightfield Scatter SOP, drag the following parameters in to the Existing Parameters tab:

    • mask layer, Outer Radius, Falloff, and Match Normals with Terrain

  6. Select Acccept.

Setup scatter in Unreal

  1. In Unreal, import the Landscape_Scatter HDA.

  2. the HDA and select Instantiate at the origin.

  3. In the Outliner, select the Landscape_Scatter HDA. Then locate the Details Panel.

    • You can also see the exposed parameters of Coverage, Outer Radius, etc. from Houdini as options.

  4. In Houdini Inputs, change the dropdown from Geometry Input to World Input.

  5. Select Start Selection, select your Unreal Landscape, then selecet Use Current.

    • You should now see your landscape in the Current Selected Actors window.

  6. In Houdini Parameters, locate instanced objects and select a static mesh from the dropdown menu.

  7. Select Rebuild.

    • You should now see your static mesh generated on the painted grass section.

  8. Select Bake.

    • You should see a new actor created in the Outliner from the scattered static mesh.

You have completed the scatter layers workflow. You can continue below for an advanced method to use scatter as foliage actors.

Use scatter as foliage actor

This workflow is a continuation of the scatter layers and allows you to use instances as foliage actors with the unreal_foliage attribute. See Attributes and Groups for more information.

  1. In Houdini, create a Attribute Create SOP and connect the input to the output of the Heightfield Scatter SOP node. Then connect the output to the Ouput SOP node.

  2. In the Attribute Create SOP node’s parameters, do the following:

    • In Name, enter unreal_foliage.

    • In Type, select Integer.

    • In Default, change the first box to 1.

    • In Value, change the first box to 1.

  • the Landscape_Scatter subnetwork in the View toolbar and select Save Node Type.

Foliage actor setup in Unreal

  • In Unreal, delete the old HDA and actors in the Outliner.

  • In the Content Browser, select the Landscape_Scatter HDA and select Reimport.

  1. In the Outliner, select the Landscape_Scatter HDA. Then locate the Details Panel.

  2. In Houdini Inputs, change the dropdown from Geometry Input to World Input.

  3. Select Start Selection, select your Unreal Landscape, then selecet Use Current.

    • You should now see your landscape in the Current Selected Actors window.

  4. In Houdini Parameters, locate instanced objects and select a static mesh from the dropdown menu.

  5. Select Rebuild.

    • You should now see an InstancedFoliageActor in your outliner.

  6. Change into Foliage Mode.

    • You should see your static mesh as one of the foliage options.

  7. Change into Landscape Mode and paint another section using the grass layer.

  8. Change into Selection Mode, select your Landscape_Scatter HDA from the outliner and select Recook.

    • The newly painted area should now populate with the foliage actor.

See also

Landscapes

Getting Started

Landscape Splines

Workflow

Landscapes allows you to create and manipulate terrain and natural environments in Houdini using its procedural node-based workflow. You can then bring them into Unreal Engine to further edit, render, and bake them. The landscapes generated in Houdini can be highly detailed and dynamic to create complex terrains.

Features and capabilities

  • Use Houdini Heightfield tools to simulate erosions such as Hydro, Thermal, Flow, and more

This video shows a few landscape features used by Far Cry 5 using Houdini:

  • Houdini Engine for Unreal reads landscapes as a heightfield, points, or mesh

  • Create landscape layers, create textures, and material generation

  • Take landscapes from Unreal and use Houdini Engine to convert it into a static mesh

  • Houdini’s scattering capabilities

  • Use PDG to split up large worlds into smaller sizes for faster simulations and help with team collaboration

  • Landscapes exposes the inputs and outputs to seamlessly communicate between other HDAs

    • An example is you can use a river tool controlled by a curve. The landscape can influence the curve to guide its path while the river tool causes erosion to the landscape.

Associated information

Here are some nodes and concepts you may need to understand before creating landscapes: