Procedural Foliage Tutorial Documentation with UEv5 and an Observation

A quick summary up front: If you are running through this tutorial:

and have downloaded the Open World Demo Collection from the Epic Marketplace, first note it’s been updated to 5.0, but not 5.1 as of today., There is a point in the tutorial where as part of adding a new item to the Foliage Types Array, you add a Static Mesh Foliage to it, no problem. But when you select a Static Mesh from the Open World Demo Collection (appears as KiteDemo in Content Browser) to add to the Static Mesh Foliage, be prepared to wait an hour more or less (depending on your hardware) while the engine does whatever it does for this single mesh.

I’ll say that because I’ll assume that the entire 6GB of the World Demo Collection is being processed in some manner I don’t know. But more importantly this one hour does not do everything associated when working with the Open World Demo Collection and Static Mesh Foliage. When I added a second item to the array, the interface froze again, but this time only for 5 minutes.

Could someone describe what is happening during these periods? Something significant is happening, and there are no messages produced that indicate progress.

I’ve listed this as a bug report because in many cases UE locks up, as if it is frozen, but it’s not, just the interface locks. Sometimes you see the number of shaders being processed counting down and that is great, but other times, the Interface just locks, and if you have been using UE for a while, you’ll know to be patient, and maybe it will come back. However instead of wondering, it would be much better if the Engine could be updated to indicate progress during a computation like this.
Thanks for listening

I might as well ask this here, in the last paragraph of the previously cited Tutorial, it says:
• Try using Foliage Actors instead of Static Mesh Foliage.

Is this saying use the Foliage painter vs Procedural Static Mesh Foliage? :smiley:

Hi fantam,
About your first point: the open world demo collection.
It is one that is multiple years old by now. even though it appears to “work” in ue5.
I am not 100% on what is enabled in the project by default and what is enabled by ue5 as standard. there might be some conflict/difference in the two. An explanation might be as you stated that it might be compiling certain shader’s only when the object itself is used. like sometimes when you have a new project you open a certain folder with shader’s and it suddenly starts to compile them. something similar might be happening here, but then with allot of different objects/meshes within the same folder. also perhaps “distance fields” being enabled might compile all those for all the meshes in the project. all those things could cause quite a long processing time :stuck_out_tongue:
for your second point: What i think they are trying to suggest is instead of using simple static meshes as foliage you can also use foliage actors. The difference being meshes vs actors. On a actor you could add additional blueprint logic. like “gather fruit”, “chop down tree”, play falling leaves fx etc. There are better way’s of doing these things now than there were at the time of that tutorial. because you should never have a complete forest be actors because of performance reasons. we used to simply replace “instances” with actors according to distance to player or interaction from player. hopefully this explains your questions a bit.

1 Like

Thanks for your reply. :slight_smile: I will say this is the first time I have done a tutorial, this one is listed as for 5.0 where you are directed to perform a task, the engine appears to freeze and no one associated with this thought to add a heads up, Your engine is going to appear to lock up for an hour. :grimacing:

Of possible interest, I updated the 5.0 project to 5.1 (made a copy) to see what would happen, and loading the level associate with this project it appears to once be sitting for an hour.

I will say that the tutorial is well written with outstanding illustrations, except for the lack of the warning that should be, but is not there.

Another question that pops up, is this a usual occurrence when doing the operation as described, or is it just something that occurs because I am using a collection that is years old, even if it says it is updated to v5.0? Actually you addressed the likelyhood. I’ll know when I try it with modern assets. :slight_smile:

The Open World Collection has a lot of good stuff in it, but only if it is compatible with the engine, now likely 5.0-5.1, that you are using. If everything you try to do with it (OWC) results in an extended wait, I’ll be inclined to dump it and use other assets. It’s completely anti-productive

Of note, as a reinforcement, I updated the 5.0 project associated with this tutorial to 5.1 (made a copy) to see what happens, and just loading in the associated level, makes it sit for an hour awhile the engine churns in the background.

The next step is to get some up to date foliage assets for this and keep going. :face_with_peeking_eye:

I know the exact tree you’re talking about - delete that tree and all is fine (can’t remember what it’s called though) - it really is just that one tree…

1 Like

Holy crap! Ok, I’ll try that. It was the first tree the tutorial says to select. I’ll cross my fingers. :wink:

1 Like

Happy Holidays! :smiley:
OK, I did not remove the tree, HillTree_02 Static Mesh from the project, but I did replace it, and the replacement tree took about 5 minutes to configure it to the project instead of 60 minutes. Then I added another, 5 min again. So it sounds like that tree as you said is the problem. :slight_smile:
Thanks!

Now they just need to add a note in the UE5 Document warning new students about it… :grimacing:

1 Like

Happy Holidays! :smiley:
As far as my education regarding Procedural Foliage, and related the UE Grass Tool

A couple of questions:
Regarding the Grass tool, I noticed that in the tutorial example there is a 2 layer landscape blend (Rock, Grass), and each layer uses a single texture instead of 3 texture samples I am used to seeing in a typical landscape material.

So instead of a base color, normal, and say roughness, in this Grass Tool tutorial, a single texture sample (T_GDC_Grass01_D_NoisyAlpha) is used for the grass, and a single texture sample (T_AlpinePatch001_D_alt_R) is used.

Any ideas what the “D alt R” stands for?

For a 2 layer landscape blend in this example, in Landscape paint mode, if I paint rock, rock appears and the procedural grass goes away. If I paint grass, the rock goes away replaced by the grass from the grass tool.

When I look at the texture for the landscape grass “noisy alpha” it give me the impression that it’s the grass that is meant to be seen, not the green of the underlying texture, or why just have a single texture sample as compared to a normal landscape material that utilizes at least 3 texture samples for each texture?

And the rock can be seen, so why is there just a single texture sample used, instead of the 3 texture samples for each kind of surface (rock, dirt, etc)?

Q2:
If I want to place instanced rocks, placed procedurally, would I use the Procedural Foliage Tool or would I use the Grass Tool, both, or neither?
Thanks!

Hi Fantam_Mayfly,

Happy Holidays to you too!

I’m not sure what the DaltR would stand for - but they are being used as diffuse textures - just the RGB no A so it’s pretty safe to ignore.

They will just be using Diffuse for the example - normally you would add other textures like normals as well - the example landscape is mostly hidden by foliage and rocks like you say…

Regarding which to use - I believe the grass tool is faster for setup but both should run at around the same speed in game.

1 Like

I purchased a Procedural Landscape Asset Pack from the Epic Market, that assigns foliage assets to landscape layers, and I’m trying to figure out where and how this happens. I have gone though the official Procedural Foliage Tutorial, and at this point, I’ll assume it’s obviously somewhere in the material, or material function where the foliage is directly tied to s specific landscape layer. I just have not found it yet. :melting_face:

There should be something like this in there somewhere:

1 Like

Here is the deal, I know a lot, but know even less. :wink: This post is just me talking out loud, dealing with some frustration, and I don’t expect answer from you, unless they are readily apparent from my description. What I really need to find is a tutorial on Procedural Landscapes where Foliage assets are attached to specific layers, but I have yet to locate one.

Because I purchased the MAWI Broadleaf Tree Forest Biome, it’s a procedural landscape with foliage assets assigned to landscape layers. Actually I got it on a promotion for free, and I’m still trying to figure out if they will talk to me or not as their official policy is we only talk to you if you paid $ for our asset pack. It’s impressive, but I’m seeing some holes in what was provided online as a tutorial, using a similar but different product, their Conifer forest.

https://www.mawiunited.com/docs/doc_mawi_product_ue_online.html

The associated tutorial was created using UE4. I am using UE5.1. Also I see that it was made using a Conifer forest, so not all of the file names match up. I’ve been able to work through that.

The tutorial example also uses World Creator and imports a bunch of .PNG files, including a heightmap.png into the Landscape Layers. As I don’t have World Creator, I used my own height map, but I noticed that for the Landscape layers, they also imported pngs files like stone.png, and somehow attached them to associated landscape layers.
In the tutorial using UE4, there are spaces under each landscape layer where a file can be attached. In the UE5 Interface, I don’t see a space under each landscape layer as shown in the tutorial, where you could import/attach a .png file. For example stone.png, dirt.png. Not sure what those are. They sound layer related as there are layers labeled stone and dirt.

I have no idea what these .png files are and those files are not found in the package. I might guess they are equivalent of pre-made Layer Info files? In the conversion to UEv5, I have no idea if this is a step that is already covered.

In the tutorial, when the height map was imported in, it was scaled to 1.0 for one of the settings and it made the grid large. I tried to scale my heightmap in the same manner and it got all screwed up so I reverted back to the original scalling.

In the tutorial after finishing importing the heigh map, there is a nice development with different texture variations appearing in the landscape where different textures show.

When i applied this material to my landscape, all I saw was leaves (one of the layers), no auto variation in textures, although I could still go in and paint different textures in different areas. I’m thinkiing I’m missing something here.

There is a Remove Foliage Tool- It does not work on the PFS items, I’ll assume it is intended for the layers, but not for the instanced items place by the Procedual Foliage Spawners? Not sure.

If that is the case, is there an easy way to go in and prune trees placed by a PFS that spawn in bad location, other than tring to use a blocking volume?
BTW, the MAWI replacement BaseEngine.ini causes UEv5.1 to crash. Could you update that or have a work around for that?

Regarding the DefaultEngine Ini, the author suggests using their version of the DefaultEngine.ini, but when I went looking for this file, I found 20 of them located in the different template folders.

Is the idea, that all of these DefaultEngine.inis are supposed to be replaced with your version, or is that a single master DefaultEngin.ini, that I should replace just once?

I recently discovered an AutoLandscape Material and a tutorial made by Unreal Sensei which is very good. I am closer to discovering how Procedural foliage is tied to specific Landscape Levels. I mean this material does that, but I’m hoping in the tutorial he’ll get around to talking about this as I look through the substantial variety of MFs. I’ve found the Landscape Grass Layers, just trying to figure out where they fit in the Material that ties them to a layer. Here is a tutorial link:

Even though this was made using UE4, I created a UE4 Project and then was able to import it into UE5.1. Everything seems to work.

Question about Cell Bombing. He talks a lot about Cell Bombing to remove texture repetition, and although I’ve looked for the term Cell Bombing or Texture Bombing, I’ve not found too much in UE5 documentation about this and I’m wondering if this is still a thing or as of UE5, is there a better thing to be using now?
Thanks :slight_smile:

Yes Texture/Cell Bombing is still a thing, they use it in the Matrix demo for the roads
42min:24secs in:

I’ve got a tutorial with a selection of different techniques here too:

1 Like

Ref: Procedural Foliage where specific foliage is tied to specific Landscape layers. Thanks much I think I have figured this out. :smiley:

In the Auto Landscape I am working with I have found

Material Functions that represent Landscape Layers so I see MF_A, MF_B, etc. These all have an output Node labeled “Output Material”. (A,B,C,D,E)

I found a folder with Landscape Grass Types, LG_A, B, C, D, and E. This is where the grasse, rocks, trees?, (trees maybe not) go.

When I look at the Master Auto Material, it has nodes labeled "Sample ‘Material A’, "Sample ‘Material B’ " I believe this is where those MFs pop out in the Master Auto Material.

There are 5 materials A,B,C,D,E and these all end up going to a node labeled “UMaterialExpression Landscape Grass Output”

When I open this node there are 5 array elements and as I can see each one has the LG_A, LG_B, mentioned above. So it looks like this is how the foliage types get applied to specific Landscape layers.

Now I do assume that trees can be placed in a similar way, but I don’t think the trees use the Landscape Grass Type, something else: Procedural Foliage Spawner. I need to review that, but could you place a tree in the landscape using the Landscape grass function? I think that rocks can be placed this way in a procedural landscape using Landscape Grass type…
Thanks! :slight_smile:

1 Like

That sounds like it’s nicely arranged!

Yes rocks are fine like that, but I don’t think the grass types there have collision (I could be wrong) so the tree’s could be walked through…

1 Like