Community Tutorial: Introduction to Procedural Generation plugin in UE5.4

Since Unreal is OpenSource, and we are working on the main branch of Unreal, yes it is there from 5.1. But it was an internal experimental plugin. It is still experimental with 5.2 but we are showcasing it to the outside.
And it’s in active development, so much has evolved since 5.1.
Also experimental means little support from us, but we will have some doc for the final release of 5.2

4 Likes

Perhaps it’s an overlook on our side, but Spline and Landscape spline are both supported.
They are not the same in the backend though, so you might see a few differences between the two.

1 Like

Bummer - I really would love to see a descriptor for each node and maybe a simple use case.

2 Likes

Are you able to have blueprint classes as part of the generation. So for example you could have a choppable tree class that can be harvested in place of the trees in the tutorial example?

1 Like

Documentation will be released with simple examples with 5.2

3 Likes

Adrien, could you explain how can I use Landscape splines in PCG?
Is there a possibility to add/attach some kind of parameters for each splines or segments? (that I can use later in PCG scripts)
For example one segments need a row of columns by 5 meters, the other needs only every 10 meters.

Thanks for parts 2 and 3. I have a couple questions:

  • When using difference node, is it possible to check for collisions against something more complex than a simple bounding box? Like setting a collision mesh that more closely matches the actual geometry.

  • In the example with mushrooms on a log I noticed that the result gets randomised if I simply move the PCG volume around. The log gets new random rotation and the mushrooms also get randomised. Is this intended behaviour? If so, is there a way to make the result stable? After all, here is a seed input for randomisation.

Now I cannot bind the parameters to the StaticMeshSpawner


It should be invalid

  • How do I expose StaticMeshSpawner parameters to blueprints
  • This is how I want to replace models in blueprints or levels
1 Like

I plan to talk about it in episode 4, but in the mean time, you can get your spline by tagging it, and then use “Get Spline Data”. It will work with Splines and Landscape Splines.

1 Like

IIRC we are using the point seed, that depends on the position for density noise. I’ll look a bit more to see if we can make it stable. Might need to use other techniques for that.

StaticMesh can’t be overridden on the node, since we do not support arrays in metadata.
But you can set the path to a mesh on an attribute for each point, and use the AttributeSelector on the StaticMesh Spawner.

Not sure I understand your concern here, what should be invalid?

Thank you for your answer

  • But I’m not sure I understand
  • Maybe you can demonstrate it in a video sometime
    thanks again
  • I just want to replace the StaticMeshList here in the blueprint
  • Now if I want to adjust the art,Must be adjusted in the Graph, It’s not convenient for artists
  • and that If I want to use two identical graph with different models, I have to copy the same graph to adjust, It’s stupid.
  • so Maybe there’s a better way? I’m very curious
1 Like

Could you test the landscape splines with the official 5.2.0 prev2?
I still have got “no actor” warning with these settings

How to create custom node by blueprint?

Any chance this will be as user friendly as Polygonflow’s scattering tools for UE5?

We figured out the problem. There are no tags and visibility for landscape splines in projects that do not use world partitions. Please EPIC, fix this issue.

Can we use our own generated noise textures/heightmaps? I tried the Texture sampler, but can’t really get it working. There is always a warning : ‘Out does not have compatible type…’ and no points generated in debugger.