Is it possible to preload essential assets, then load on demand on runtime whatever the game needs?

So I have lots of meshes, texture and sounds assets that really add up. The thing is, the player only uses 10%-20% of them at a time. The rest are not required. There is a base of, lets say 5% (like day/night cycle) that is always used and needed and I call it “essential” but the rest is on demand / required by a particular level or case.

What I would like is some information regarding how to preload what I need, so the user can see progress bars, then when I load a level, add another loading screen with whatever that particular level needs.

Then, again, if possible, while in a level, and something needs to be spawned but the assets are not loaded at the time, have it load, then spawn.

Thank you!

bumping my question because I really need it.

You should take a look at sublevels. You could put all the meshes / assets which you do not need immediatly there, and then load them via blueprints.

how to preload the entire level? not only loading screen.