Hello, I'd like to make a houdini tool that generates a road network for a world partition level. The goal would be the following workflow :
- Place road splines in the world partition level (they're individual actors)
- Press a button on some custom unreal tool window
- All previous existing generated road mesh actors in all world partition cells are deleted
- All of the splines get sent to the HDA generating the road networks
- The HDA generates all the road meshes, with each road split into a bunch of different meshes
- The unreal tool receives all the meshes along with data about their position in the world
- The tool then spawns the individual meshes as individual actors in their correct world positions
I'd like to later down the line have the option to only regenerate roads in the currently loaded cells among other things
Had this been a regular, smaller world I could use a Houdini Asset Actor, but I can't just have every road mesh loaded under the same actor always for performance reasons, both in editor when it comes to generating them and in game.
What are my options exactly? as far as I know houdini engine's API requires going through a houdini asset actor to process any HDA. If it was possible for me to handle the inputs & houtputs of the HDA entirely through blueprint/code I would be able to make the unreal tool myself but I'm currently at a loss.
Thanks in advance for any advice.
Generating and updating a lot of meshes for world partition
1803 2 1- PaperMartin
- Member
- 6 posts
- Joined: March 2021
- Offline
- badman
- Member
- 11 posts
- Joined: Dec. 2016
- Offline
I've been working on a road network HDA, and I'm running into similar aspects of the workflow that really bottleneck fully procedural methods.
The key to the UE5 matrix demo is using a strict grid - then the geo can all be instanced static meshes rather than bespoke geometry per street. That's not really an option in my case due to roads having curves(gasp), but I'm still slicing the road into pieces after generating. Regenerating a road network at high fidelity has taken exponentially longer as the tool develops with more features, so I'm also searching for a way to regenerate only the modified parts, but it's pretty tricky when it's all connected.
Another fun kink I discovered is that using world partition, the landscape will be offset from the position of the actors even with "maintain world position" on in the HDA input - unless you load the entire map with all partitions, which can become untenable with a large game world.
So, my experience with the workflow using HDAs and world partition, especially if your roads are not using a grid, is that it can lead to some serious bottlenecking. Maybe another layer of tools in unreal like you're proposing would resolve some of this, I'm still trying to solve these issues as well.
The key to the UE5 matrix demo is using a strict grid - then the geo can all be instanced static meshes rather than bespoke geometry per street. That's not really an option in my case due to roads having curves(gasp), but I'm still slicing the road into pieces after generating. Regenerating a road network at high fidelity has taken exponentially longer as the tool develops with more features, so I'm also searching for a way to regenerate only the modified parts, but it's pretty tricky when it's all connected.
Another fun kink I discovered is that using world partition, the landscape will be offset from the position of the actors even with "maintain world position" on in the HDA input - unless you load the entire map with all partitions, which can become untenable with a large game world.
So, my experience with the workflow using HDAs and world partition, especially if your roads are not using a grid, is that it can lead to some serious bottlenecking. Maybe another layer of tools in unreal like you're proposing would resolve some of this, I'm still trying to solve these issues as well.
- alek_volzok
- Member
- 1 posts
- Joined: Nov. 2021
- Offline
Hi badmn_ ! Houdini splines can be converted to Unreal splines, and that will make them procedural. As for the importing and manipulating World Partion chunks: take a look at my propose here https://github.com/AlekVolok/Unreal5-WP-Landscape-Demo [github.com]
-
- Quick Links