Im just beginning to work with level streaming and would be very interested in seeing a tutorial on how to keep background features (mountains, tall objects) from unloading to be able to keep the sense of scope in your levels. Thabks for the video. Keep up the good work!
That's what cells and HLODs are for. You can associate each mesh with a cell so if you want you can separate a cell only for distant objects. Besides that, build your HLODs and you will be fine for streamed out objects
This is a great question; I haven't really dived into that project. But I believe you can convert the current level into world partition by doing this : To convert your existing Levels to World Partition: In Windows, open a Command Prompt window. At the prompt, begin by navigating to the location of the UnrealEditor.exe executable file. Example: c:\Builds\Home_UE5_Engine\Engine\Binaries\Win64. Next, begin the command with the name of the .exe file that will run the commandlet, UnrealEditor.exe Add the name of the project Continue with the name of the commandlet to run, -run=WorldPartitionConversionCommandlet. Add the name of the map file that will be converted. Example CitySample.umap. Finish the command with the additional argument -AllowCommandletRendering Press Enter and the commandlet will convert the map to use World Partition.
i don't know how does that hlod and world partition stuff help making games have large worlds like rdr2. whats the point if a grid disappears/unloads from a distance. 🤔
For example, say you're wanting to show a large portion of your landscape with intricate Vistas, and foliage + some assets, instead of having to have all of those load in as unique assets and materials, you can combine them in a lower memory intensive state, until it makes sense to load in more detail. It allows you to merge these into minimal draw calls. So in this case where it's showing cells "unloaded" this is where you would then replace assets with these HLODs.
This guy is really dragging this out, like so many Devs that try to give a tutorial do. Think about it like this, level streaming used to load in things at a distance and you had to setup the triggers to call it to load where you wanted, while world partition automatically does it instead. You build a huge map, then enable World Partition and set how much is seen as you reach that point in the map and wham it works like Level Streaming. So no matter where you are at it shows whatever is in the sphere size you set for what is streamed in near you. As for all this mess he goes on about work flow and source control he is all over the place. All teams ues source control and no person is going to really work on the file at the same time or it often leads to direct conflicts on pushing and pulling files. It might be where you can enable or disable a grid so that no one else works on that spot, but most often you have one real mapper on any level at a time so no one steps on eachother's toes.
Thank you very much for sharing! But have you ever encountered the problem of the data layer being unable to save actors that have been migrated into the data layer during the production process? This is very important to me! Thank you!
No problem! And I have had some saving issues pop up in the past, but it hasn't seemed to be broken since 5.3. It's possible trying a ctrl+shift+S could work, checking to see what your unsaved actors on the bottom right show, and also unloading / loading partition cells if you are using WP.
You can create a new landscape that is large enough to encompass all of your other landscapes, and use the gizmo tool to copy and paste the other heightmaps into the new one.
I have a 1000 km2 world with 32*32 components (1024) max as recommend by unreal documentation. The map was created as a flat landscape and uses the landmass addon to create heightmap data layers so i can "stamp" my terrain. Such as mountains and such. I have another data layer that holds the height information for smoothing the landscape between patchs and the landscape. I also have a auto material for the landscape and am using a single plane with the water plugin to create the ocean. My question. When painting trees with foilage and using landscape grass types for the weeds and grass and flowers and such,.... As you can imagine my frames are starting to dip I cant seem to figure out how to load and unload components and or proxies of my landscape as well as foliage. What im trying to accomplish with world partition is to load in only a single procie of the landscape with the foilage and grass type. Nothing else so that i can actually edit things at a decent FPM. I have streaming enabled for the landscape and the foilage is spartially loaded. Still it seems like landscape proxies dometimes appear,.... Sometimes dissapear. The foulage seems to load in correctly. Its fustrating to get just a procie to load in with the assocuated foilage and grass type set to its material data
The most straightforward solution is to just use world partition, and determine what cell and region size you want. This will allow you to easily unload any areas you aren't actively working in and allows you to perform much faster. Doing this will make your landscape proxies, and you can make it so your region size correlates with your proxy size.
@@KingdomCrafter thank you for taking the time to reply. I have world partition and regions set up. The issue I'm having is with the landscape grass type spawning meshes on my textures. Seemed to slow it all down As it stands right now I have grasses spawned with the foilge paint tool and I seem to be able to load and unload those actors without issue. When the grass was done through the material it seemed to always be loaded. I just wish I knew how to get the landscape mesh itself to load and unload using the partition mini map. Seems like the landscape always wants to stay loaded in even when set to spartial :( but the foliage was the most taxing system and I have a work around..... More time consuming to pain on a huge map but I'm making due
Aboslutely, thanks for reaching out! Just out of curiosity are you using 5.3? I was running into similar foliage related issues with 5 .1, and 5.2 started to seem more stable and now in 5.3 using the world partition map and actors in those regions seem to load and unload much more reliably. It could also be worth using a PCG system with your foliage to have even more control over it if you aren't already.
Hello! Thanks for the tutorial, but I want to know how to do this when you are working in the editor, since when creating a large map, the editor lags a lot, is there a solution? Thank you!
Absolutely! And there are a few things that can slow it down outside of hardware needs. Such as a really dense landscape, so even 4k heightmaps can start to chug. There's also the amount of assets per world partition tile. I've found that working on different loaded cells can be more performant if the landscape is just too heavy
Hey, thank for the great tutorial. I have been encountering the landscape streaming proxy problem already for a long time, and only thing I can make the landscape work properly (when I try to play), is to tick Enable Streaming off, which of course causes other problems because of my huge landscape. I tried your way to naming the landscape proxies grids as the same name as the World Setting's grid (MainGrid) but even that didn't help. Would you care to have any other suggestions why the streaming proxies behave like they do? it really is starting to be pain in the ***. Thank you for your time :)
Thank you, and yeah I can definitely see that being really annoying haha. Let me dive into this a bit more and see if there's a better / other fix for this. I'm not 100% sure at the moment.
Great tutorial!! Thank you for making this, good to bookmark. However, I have a question... In one part of your video the console command you put in for debug/viz that highlights which cells are being loaded worked well, it showed green tiles being lit up. Then you created a 2nd landscape and the debug/viz was not highlighting green anymore? Is there a reason for that? The reason I ask is because I have a similar problem where my Player Controller is not showing those green cell being lit up? I can get the to light up if I create a BP and add a WPStreamingSource component to it, but my player controller does not light those cell up... I know its streaming correctly because when I deactivate streaming on my controller I the landscape does not load and I fall forever. But when I activate streaming the landscape cells load fine... Just wondering why my player controller is behaving this way (streams/loads the cells but does not highlight them green on the debug window).
That's a good question, I think this may be a UI distinction between the 3d vs 2d, and there are more console commands to visualize it a bit differently. There is also a legend you can pull up when you're visualizing as well to get a better idea. I could be wrong here, and will look into it soon when I get some time :)
@@KingdomCrafter Thanks, King! Both your landscapes were actually still using the 2d visualizer. The 3d visualizer looks like a wireframe sphere that surrounds your charter/camera and highlights cells as you move around. If you are able to find the answer to this please post it here, haha. I will too if I find the solution somewhere down the road.
Hi can you help me , i was trying to make a map... i hadded a texture file that was too big ... and boom my Uploade and dowlnod raized by 2000k even if i remove it
If you're talking about deleting the current HLODs, first i'd make sure it's an open world level, and then click on the content folder and search for HLOD. If nothing is popping up, i'd just show all folders, and you should find where it's located. If this doesn't work i'll look more into some issues it may be having.
@@KingdomCrafter my dumbass figured it out. I just wanted to delete the whole level but it wasn’t letting me but I got it to work thanks for responding🤟🏼
This does not work when creating a large map larger than 100km squared. This only works when creating a small landscape, such as a 10km square map, but then HLOD doesn't make sense. I suspect that this is due to a lack of RAM, but I have 64 gigabytes of it. Try to create a large landscape at home and generate HLOD, you will probably be surprised when you see that they have been created, but they are empty. This is a very big problem that it is impossible to generate HLOD individually to save RAM. I haven't found a solution to this problem yet.
I've noticed HLOD not feeling like a finished product in my opinion. However, thanks for bringing this up, i'll give this a test and see what we can do to maybe get a desired result. If theres not good solution atm, I may build a Houdini tool we can use to quickly make your own HLOD / Proxys
@@KingdomCrafter Well, it would be nice to create a video about it. It's a pity that HLOD is so unoptimized, like a game engine, and requires resources like a mining farm, I believe that the engine for creating games should be optimized at least for the average working machine of a game developer, otherwise with such an appetite for the engine, developers need to have server corporations to build their game, they will be afraid of it and switch to another, a more optimized game engine, although I really don't want it, I like UE.
Yeah definitely, this is the modern solution to Open World game maps in Unreal Engine. It's basically a super charged version of UE4s World Composition. The biggest factors really being collaboration for teams to get more done dynamically, and also offering better performance for intense scenes
I'm curious, would you be able to talk about how you're supposed to make optimal levels for multiplayer games? For instance, how might one go about creating an optimal large map for a multiplayer shooter, like PubG or Tarkov and such?
I've been planning a similar video; we can definitely make this happen. We can cover game type, what to think about, and how to start the block out and finally how to begin polishing that.
Excessively expensive art School or online resources/tutorials/videos. Most likely both if you want to succeed quickly. Do research about schools. Cuz...most of them are bunk money grabbers out to f$%# you.
Error d3d. How to solve? Unreal workstation. Shoukd be running better than this no? I open a level it starts off around 3g vram used. Make 2 edits. Now were at 9gbvram....delete the edits....still sits at 9gb... try to do a HLOD build...vram mem skyrockets and crashes editor.... Try reduced settings. Vram stays same. Tried 4.26. 2gb vram usage. Same assets. Sigh... i wasted months now. 5.1 seems more like an irritating sore than anything useful currently.
This may sound obvious but just thought we should check. Let's make sure you have the latest update to the engine, the latest drivers and also aren't overclocking anything. After that some ways to optimize this are in the world settings, change your quality to medium or low until you can isolate the issue.
I came to the conclusion I can't create a world. I think I'm gonna give up the project I'm on for few month and begin an other one without world. I'm not game designer so it is gonna be hard to find a good game idea without world, if someone has a hint (I can't use either things like AI, anim bp, lightning, materials, multiplayer, meta sounds, sequencer etc)
Thank you very much for sharing! But have you ever encountered the problem of the data layer being unable to save actors that have been migrated into the data layer during the production process? This is very important to me! Thank you!
In earlier versions, such as 5.1 i've had this issue. However, 5.2 and onward seem to be working fine. If you are still running into this you can DM me on Discord
Great content as always
Much appreciated! 💪
wow ..thanks for sharing..i have been looking for some answers regarding world partition.. it really helped me a lot..thanks
Glad to hear it, no problem!
Im just beginning to work with level streaming and would be very interested in seeing a tutorial on how to keep background features (mountains, tall objects) from unloading to be able to keep the sense of scope in your levels. Thabks for the video. Keep up the good work!
Absolutely and thank you, I can cover more UE landscape and streaming topics. Especially with 5.3 preview hitting here, i'll touch on those as well.
That's what cells and HLODs are for. You can associate each mesh with a cell so if you want you can separate a cell only for distant objects. Besides that, build your HLODs and you will be fine for streamed out objects
Thanks, bro, tell about how make sculpting and add water
how to enable world partition in citysample demo file.
This is a great question; I haven't really dived into that project. But I believe you can convert the current level into world partition by doing this :
To convert your existing Levels to World Partition:
In Windows, open a Command Prompt window.
At the prompt, begin by navigating to the location of the UnrealEditor.exe executable file. Example: c:\Builds\Home_UE5_Engine\Engine\Binaries\Win64.
Next, begin the command with the name of the .exe file that will run the commandlet, UnrealEditor.exe
Add the name of the project
Continue with the name of the commandlet to run, -run=WorldPartitionConversionCommandlet.
Add the name of the map file that will be converted. Example CitySample.umap.
Finish the command with the additional argument -AllowCommandletRendering
Press Enter and the commandlet will convert the map to use World Partition.
hey thanks for your reply i really appriciate @@KingdomCrafter
@@amyartsentertainment9279 right click on your map in your content browser and there is an option which converts it into an partition map.
i don't know how does that hlod and world partition stuff help making games have large worlds like rdr2. whats the point if a grid disappears/unloads from a distance. 🤔
For example, say you're wanting to show a large portion of your landscape with intricate Vistas, and foliage + some assets, instead of having to have all of those load in as unique assets and materials, you can combine them in a lower memory intensive state, until it makes sense to load in more detail. It allows you to merge these into minimal draw calls. So in this case where it's showing cells "unloaded" this is where you would then replace assets with these HLODs.
This guy is really dragging this out, like so many Devs that try to give a tutorial do. Think about it like this, level streaming used to load in things at a distance and you had to setup the triggers to call it to load where you wanted, while world partition automatically does it instead. You build a huge map, then enable World Partition and set how much is seen as you reach that point in the map and wham it works like Level Streaming. So no matter where you are at it shows whatever is in the sphere size you set for what is streamed in near you. As for all this mess he goes on about work flow and source control he is all over the place. All teams ues source control and no person is going to really work on the file at the same time or it often leads to direct conflicts on pushing and pulling files. It might be where you can enable or disable a grid so that no one else works on that spot, but most often you have one real mapper on any level at a time so no one steps on eachother's toes.
Thank you very much for sharing! But have you ever encountered the problem of the data layer being unable to save actors that have been migrated into the data layer during the production process? This is very important to me! Thank you!
No problem! And I have had some saving issues pop up in the past, but it hasn't seemed to be broken since 5.3. It's possible trying a ctrl+shift+S could work, checking to see what your unsaved actors on the bottom right show, and also unloading / loading partition cells if you are using WP.
How would I merge multiple landscapes from different heightmap imports?
You can create a new landscape that is large enough to encompass all of your other landscapes, and use the gizmo tool to copy and paste the other heightmaps into the new one.
Awesome video, hope you will make more videos on World Partition and Data Layers!🙏its very hard to find tutorials on how UE5's systems work together
Thank you, glad you liked it! And absolutely I have a few videos planned to cover more of these areas.
I have a 1000 km2 world with 32*32 components (1024) max as recommend by unreal documentation. The map was created as a flat landscape and uses the landmass addon to create heightmap data layers so i can "stamp" my terrain. Such as mountains and such. I have another data layer that holds the height information for smoothing the landscape between patchs and the landscape. I also have a auto material for the landscape and am using a single plane with the water plugin to create the ocean.
My question. When painting trees with foilage and using landscape grass types for the weeds and grass and flowers and such,.... As you can imagine my frames are starting to dip
I cant seem to figure out how to load and unload components and or proxies of my landscape as well as foliage.
What im trying to accomplish with world partition is to load in only a single procie of the landscape with the foilage and grass type. Nothing else so that i can actually edit things at a decent FPM.
I have streaming enabled for the landscape and the foilage is spartially loaded. Still it seems like landscape proxies dometimes appear,.... Sometimes dissapear. The foulage seems to load in correctly. Its fustrating to get just a procie to load in with the assocuated foilage and grass type set to its material data
The most straightforward solution is to just use world partition, and determine what cell and region size you want. This will allow you to easily unload any areas you aren't actively working in and allows you to perform much faster. Doing this will make your landscape proxies, and you can make it so your region size correlates with your proxy size.
@@KingdomCrafter thank you for taking the time to reply. I have world partition and regions set up. The issue I'm having is with the landscape grass type spawning meshes on my textures. Seemed to slow it all down
As it stands right now I have grasses spawned with the foilge paint tool and I seem to be able to load and unload those actors without issue. When the grass was done through the material it seemed to always be loaded.
I just wish I knew how to get the landscape mesh itself to load and unload using the partition mini map. Seems like the landscape always wants to stay loaded in even when set to spartial :( but the foliage was the most taxing system and I have a work around..... More time consuming to pain on a huge map but I'm making due
Aboslutely, thanks for reaching out! Just out of curiosity are you using 5.3? I was running into similar foliage related issues with 5 .1, and 5.2 started to seem more stable and now in 5.3 using the world partition map and actors in those regions seem to load and unload much more reliably. It could also be worth using a PCG system with your foliage to have even more control over it if you aren't already.
Hello! Thanks for the tutorial, but I want to know how to do this when you are working in the editor, since when creating a large map, the editor lags a lot, is there a solution? Thank you!
Absolutely! And there are a few things that can slow it down outside of hardware needs. Such as a really dense landscape, so even 4k heightmaps can start to chug. There's also the amount of assets per world partition tile. I've found that working on different loaded cells can be more performant if the landscape is just too heavy
I don't think Nanite matters here since it's a CPU optimization process right ?
Hey, thank for the great tutorial. I have been encountering the landscape streaming proxy problem already for a long time, and only thing I can make the landscape work properly (when I try to play), is to tick Enable Streaming off, which of course causes other problems because of my huge landscape. I tried your way to naming the landscape proxies grids as the same name as the World Setting's grid (MainGrid) but even that didn't help. Would you care to have any other suggestions why the streaming proxies behave like they do? it really is starting to be pain in the ***. Thank you for your time :)
Thank you, and yeah I can definitely see that being really annoying haha. Let me dive into this a bit more and see if there's a better / other fix for this. I'm not 100% sure at the moment.
@@KingdomCrafter Thanks so much, I've been spending hours in UE forums and googling but no luck so far. Hopefully I've just missed something. :P
You can go to tools and convert any map
Great tutorial!! Thank you for making this, good to bookmark. However, I have a question... In one part of your video the console command you put in for debug/viz that highlights which cells are being loaded worked well, it showed green tiles being lit up. Then you created a 2nd landscape and the debug/viz was not highlighting green anymore? Is there a reason for that? The reason I ask is because I have a similar problem where my Player Controller is not showing those green cell being lit up? I can get the to light up if I create a BP and add a WPStreamingSource component to it, but my player controller does not light those cell up... I know its streaming correctly because when I deactivate streaming on my controller I the landscape does not load and I fall forever. But when I activate streaming the landscape cells load fine... Just wondering why my player controller is behaving this way (streams/loads the cells but does not highlight them green on the debug window).
That's a good question, I think this may be a UI distinction between the 3d vs 2d, and there are more console commands to visualize it a bit differently. There is also a legend you can pull up when you're visualizing as well to get a better idea. I could be wrong here, and will look into it soon when I get some time :)
@@KingdomCrafter Thanks, King! Both your landscapes were actually still using the 2d visualizer. The 3d visualizer looks like a wireframe sphere that surrounds your charter/camera and highlights cells as you move around. If you are able to find the answer to this please post it here, haha. I will too if I find the solution somewhere down the road.
👍 awesome. If possible, please make virtual production tutorials for filmmaking
For sure, adding that to the list ✏️!
Hi can you help me , i was trying to make a map... i hadded a texture file that was too big ... and boom my Uploade and dowlnod raized by 2000k even if i remove it
very uncommon to see a guy in shape while also being a dev lol, keep it up man
Haha definitely true, thank you!
will it work in multiplayer?
Yes it should
Been a gym rat for a minute and an Unreal user for over a year. Came across this video and knew I was in the right place lol.
Haha that's awesome to hear, welcome to the community!
does your web cam need to be that big? or even in the video at all?
Did that really need to be your comment, or even a comment at all? Somethings are just what they are, for whatever that reason may be.
I cannot delete it out of my project, how does one do this?
If you're talking about deleting the current HLODs, first i'd make sure it's an open world level, and then click on the content folder and search for HLOD. If nothing is popping up, i'd just show all folders, and you should find where it's located. If this doesn't work i'll look more into some issues it may be having.
@@KingdomCrafter my dumbass figured it out. I just wanted to delete the whole level but it wasn’t letting me but I got it to work thanks for responding🤟🏼
Haha I think we all feel like that sometimes @@markymark7197 And of course, no problem!
This does not work when creating a large map larger than 100km squared. This only works when creating a small landscape, such as a 10km square map, but then HLOD doesn't make sense. I suspect that this is due to a lack of RAM, but I have 64 gigabytes of it. Try to create a large landscape at home and generate HLOD, you will probably be surprised when you see that they have been created, but they are empty. This is a very big problem that it is impossible to generate HLOD individually to save RAM. I haven't found a solution to this problem yet.
I've noticed HLOD not feeling like a finished product in my opinion. However, thanks for bringing this up, i'll give this a test and see what we can do to maybe get a desired result. If theres not good solution atm, I may build a Houdini tool we can use to quickly make your own HLOD / Proxys
@@KingdomCrafter Well, it would be nice to create a video about it. It's a pity that HLOD is so unoptimized, like a game engine, and requires resources like a mining farm, I believe that the engine for creating games should be optimized at least for the average working machine of a game developer, otherwise with such an appetite for the engine, developers need to have server corporations to build their game, they will be afraid of it and switch to another, a more optimized game engine, although I really don't want it, I like UE.
so this is how they create open world game maps?
Yeah definitely, this is the modern solution to Open World game maps in Unreal Engine. It's basically a super charged version of UE4s World Composition. The biggest factors really being collaboration for teams to get more done dynamically, and also offering better performance for intense scenes
I'm curious, would you be able to talk about how you're supposed to make optimal levels for multiplayer games?
For instance, how might one go about creating an optimal large map for a multiplayer shooter, like PubG or Tarkov and such?
I've been planning a similar video; we can definitely make this happen. We can cover game type, what to think about, and how to start the block out and finally how to begin polishing that.
Excessively expensive art School or online resources/tutorials/videos. Most likely both if you want to succeed quickly.
Do research about schools. Cuz...most of them are bunk money grabbers out to f$%# you.
Tnx
Thank you!
Error d3d. How to solve? Unreal workstation. Shoukd be running better than this no? I open a level it starts off around 3g vram used. Make 2 edits. Now were at 9gbvram....delete the edits....still sits at 9gb... try to do a HLOD build...vram mem skyrockets and crashes editor....
Try reduced settings. Vram stays same.
Tried 4.26. 2gb vram usage. Same assets.
Sigh... i wasted months now. 5.1 seems more like an irritating sore than anything useful currently.
This may sound obvious but just thought we should check. Let's make sure you have the latest update to the engine, the latest drivers and also aren't overclocking anything.
After that some ways to optimize this are in the world settings, change your quality to medium or low until you can isolate the issue.
Yea nothing overclocked. Everything up to date.
2:37
I came to the conclusion I can't create a world. I think I'm gonna give up the project I'm on for few month and begin an other one without world. I'm not game designer so it is gonna be hard to find a good game idea without world, if someone has a hint (I can't use either things like AI, anim bp, lightning, materials, multiplayer, meta sounds, sequencer etc)
You have the shortest arms of any man I've ever seen.
You can do it! Patience and working through the learning curve. Good luck!
Thank you very much for sharing! But have you ever encountered the problem of the data layer being unable to save actors that have been migrated into the data layer during the production process? This is very important to me! Thank you!
In earlier versions, such as 5.1 i've had this issue. However, 5.2 and onward seem to be working fine. If you are still running into this you can DM me on Discord