Is Exporting/Importing Foliage supported in Unreal?

I really enjoy the foliage tool in Unreal, however we are working in Maya and Houdini and would like to generate our own maps. Especially if we want to do set dressing with Rigid Body Simulations, it would be useful to bring in the **position/rotation/scaling **attributesas foliage. So my question is, is it possible to create or import custom foliage?

If not, would using instanced meshes yield the same result as using foliage?

The foliage system just uses static meshes, so you can use whatever meshes you want

I’m not actually talking about the static mesh it self, but does the “foliage” has a representation that can be constructed from a third party app like houdini? Maya? Or any other package. And the second question is, using “100” static meshes and having a foliage with “100” instances, are they behaving performance wise quite similar?

I can see this is an old post but I’m coming with more or less the same question. Is it possible to import/export your whole folliage scatter? This would open a whole word of possibilities from film/animation perspective.
This blog post shows import and export buttons but I can’t find them in 4.23, 4.24, and 4.25 https://cheneyshen.com/unreal-foliage-import-export/

For anyone who stumbles upon this, I’ve been working on the problem and have a couple python scripts that do part of it, but I just haven’t solved it fully. I can import points from Houdini via JSON and it works. I can export points created by the foliage tool and it works, but I can’t import points from Houdini and have them get exported back out.

@EJaworenko1

Read the points.
Open the foliage actor.
Ensure to copy 1 of the meshes into it for each type of foliage to use.
Add and place instances based on the point.

“The points” here is probably really a transform, since you need, location, rotation, and scale for each item.

Instead of using python, you should make it into a bluetility script.
However you may have to process small batches at a time. In .26 the loop error comes up even when the loop isnt infinite, just based on execution time.

I have all the steps you describe being done through Python, but I was thinking that might be the problem and wanted to try C++. Unfortunately, just still learning that. Creating a Blutility seems feasible, it’s just tedious that it seems you need to turn a JSON into a data table vs reading it directly. Thanks for the response!

1 Like