Using/Chaining multiple HDAs to work on one UE4 landscape?

   4733   3   2
User Avatar
Member
36 posts
Joined: 10月 2018
Offline
Hey!

I have a basic workflow question about working with UE4 landscapes and Houdini.

Here's what I'm after:
  • I got a UE4 landscape I input into an HDA to calculate Erosion, Noise, Distortion etc.
  • The output of that first HDA should be input into an HDA where i can use curves to draw paths (which modifies the heightfield again)
  • This should be chained multiple times to have multiple paths with different properties
  • After the paths creation I wanna input the latest heightfield into an HDA that generates spawning assets
  • Then use this in a new HDA and generate cliffs in a separate HDA


Is this possible?
In my first couple of tests, the landscape in UE4 was distorted and streched and kinda looked weird in general.
Also I didn't see any projection from my paths onto the terrain - just size changes (like it's 2 x X-Axis, 1 x Y-Axis in size - so square landscape anymore)

Can I just assign the generated heightfield output from one HDA into the input of another HDA?
Or how is this supposed to work?

Also: Are the layers also passed between HDAs in Unreal? Like one HDA 1 generates a mask and HDA 2 uses that mask to spawn points?

My goal is to create a modular system for Unreal with multiple HDAs for different purposes - all working in a chain on one UE4 landscape.
This way the map designer has a couple of HDA tools to work on the landscape without ever leaving Unreal.

Thanks in advance!
Best,
Ron

PS: I'm using version 2 of the Houdini Engine Plugin for UE4
User Avatar
Member
17 posts
Joined: 12月 2019
Offline
The same question.

Attachments:
02.PNG (201.9 KB)

User Avatar
Member
38 posts
Joined: 1月 2018
Offline
I want to know about it, too. I think it will be great if we can edit the node graph and chain them inside UE4.
User Avatar
Member
1 posts
Joined: 12月 2024
Offline
Hey Ron,

It sounds like you're building a pretty intricate system for procedural landscape design in Unreal Engine with Houdini, and that’s awesome! Let me try to address your questions one by one:

1. Chaining HDAs together
Yes, you can absolutely chain multiple HDAs in Unreal. The output of one HDA (such as a modified heightfield) can be passed as input to the next HDA, allowing for a sequence of operations. For this to work properly:

Make sure the type of input/output is compatible between the HDAs (for example, heightfield data should be passed from one heightfield operation to another).
In Houdini, the "heightfield" data type is particularly important when modifying terrain, as it encapsulates both the heightmap and associated layers (like masks).
2. Landscape distortion and stretching
The issue you’re describing with the landscape getting distorted and stretched likely stems from a mismatch in the terrain resolution or scaling between the different HDAs. When you’re working with landscapes in Unreal, make sure the resolution and scale of the terrain (in terms of the number of grid cells) are consistent across all the HDAs.

In the first HDA, ensure you are not altering the landscape’s resolution or transforming it in ways that lead to unexpected stretching. You should aim to preserve the aspect ratio of the landscape as you pass data between HDAs.
3. Projection of paths onto the terrain
To project curves (paths) correctly onto the terrain in Houdini, you need to use tools that can ensure the curves are placed in the 3D space relative to the heightfield. The curves should be deformed to follow the shape of the terrain:

Use a heightfield projection node to align curves or points to the surface of the heightfield.
Make sure the curves' input is normalized correctly based on the terrain's resolution and bounds, or they might not map correctly.
4. Layer data passing between HDAs
Yes, you can pass layers (such as masks or textures) between HDAs. Layers (including masks) can be treated as inputs/outputs in Houdini. When one HDA creates a mask, that mask can be used in subsequent HDAs for things like spawning assets or applying additional modifications.

You can expose those layers as inputs and outputs in the Houdini Asset parameters.
When exporting the heightfield from one HDA, ensure that any associated layers (like masks or erosion data) are also output.
5. Final Modular System Setup
For your modular landscape system in UE4:

Create each HDA as a separate, reusable tool (like an erosion tool, a path tool, an asset spawner, etc.), which takes in a heightfield and outputs a modified heightfield or a set of assets.
In Unreal, each of these HDAs can be added to the landscape workflow without breaking the pipeline, and the landscape can be adjusted dynamically in UE4.
For the landscaping Tucson [legacylandscaper.com] process, a similar modular system could be used where terrain is modified through erosion, paths, and other features, creating a more dynamic and flexible approach to designing desert landscapes or rugged terrains.

Final Tip
When testing your HDAs in Unreal, it’s good to start simple and then build complexity incrementally, ensuring that data flows correctly between HDAs and the landscape itself doesn't distort unexpectedly.
Edited by legacylandscaper - 2024年12月31日 10:51:17
  • Quick Links