Static Meshes render too slowly when changing rooms

When I walk into a different room in my building, the meshes in the new room take a few milliseconds to load, causing a noticeable flicker.

For example, the instant I go to new room it looks like this:
picture 1

Then after a few milliseconds the meshes finish loading:
picture 2

It’s pretty brief but since the sky is really bright, it basically makes big white flashes when changing rooms. Any ideas on what’s causing it? Performance wise it’s running at 60 fps.

Hellor rbk1234,

The short pause you are seeing is expected when using level streaming because your computer is calculating the assets and lighting information to load. This process is near instant and a useful way to hide the level being loaded is to block the players line of sight. Some games use a loading screen to do this, while others use geometry or a cinematic to distract the player from being able to see the streaming. In your case a short wall extruding out in front of the players view would work fine.

Level Streaming Trigger

In my case I set the level streaming trigger halfway up a hill so the player cannot see the level that gets loaded. By the time the player reaches the top of the hill, the level is loaded and the player is none the wiser as to whether or not it was there before climbing the hill.

Streamed Level

Here you can see where the level is loaded and you are unable to view the trigger volume on the hill. These pictures were took while in the Viewport and not during PIE (Play in Editor) mode. If I press play the streamed level disappears until it is called to open using the level blueprint.

Level Streaming with Blueprints

Above is another method using doors to load and unload levels. Take a look at the tutorial to see if it also helps clarify some questions you may have about Level Streaming.

Cheers,

Andrew Hurley

Hi Andrew,

I set up an ‘Always Loaded’ level with all of the building’s outer walls (so that they would always be rendered). Unfortunately that didn’t seem to work because I can still see the walls rendering (and the sunlight pouring through) when I switch rooms. Here’s my setup for the ‘Always Loaded’ level:

level

Did I forget to do something? I shouldn’t need a LevelStreamingVolume because it’s supposed to be always loaded right?

Lastly, what did you mean by “In your case a short wall extruding out in front of the players view would work fine”?

I’ll try to explain my problem a little more thoroughly:

All of this takes place in a large building I made. And basically whenever I walk into a new room, all of the walls for the new room take a split second to load. It’s very noticeable because all of the sky flashes for the brief second while the walls load.

I want to make it so that the walls are always loaded (this is a small level so performance shouldn’t be hurt too much). So I made the ‘Always Loaded’ level and added the walls to that level but it doesn’t seem to work. The walls still take that split second to load when I walk into a new room.

You basically need a way to hide the level streaming in from players view. You wouldn’t add this wall to the level being streamed in, but rather to the ‘Persistent Level’. For a better understanding have a look at the video tutorial a user created as well as the ‘Content Examples’ project. It contains an example level that provides a literal walk through of level streaming.

Introduction to Level Streaming

**Content Examples Level Streaming Map**

Let me know if you are still confused about Level Streaming after taking a look at the two resources I have provided.

Thank you,

Andrew Hurley

Hi Andrew,

Thanks for the help, but I’m still not able to get the walls of my building to always be streamed.

I’ve been using that tutorial, and it says in part 1.1 that if you put objects in a level and set that level to ‘Always Loaded’, they should always be loaded. Correct?

Because I put my walls in an ‘Always Loaded’ level and yet they are still for some reason streaming in as I walk through my building.

Also, I tried the other way where the walls are in the Persistent Level, but they are still streaming in as I walk from room to room.

Bottom line is, all I want is for the walls of my building to always be loaded. I don’t want them streaming in later. I’ve tried to accomplish this based on the tutorials you linked (by putting the walls in an ‘always loaded’ level, and I’ve also tried putting the walls in the ‘persistent level’), but for some reason it’s not working.

Hey rbk1234,

‘Always loaded’ means it will always be loaded and visible. This can be controlled through blueprints to change its visibility and ‘is loaded’ state. One suggestion I have would be to make sure your ‘Current Level’ is the ‘Persistent Level’, select the walls you wish to be in the persistent ‘always loaded’ level, and right click on the ‘Persistent Level’ and choose the ‘Move Selected Actors to Level’ option.

Move Actors to Level

41040-levelsmenu.png

If this suggestion does not work for you try taking a look at a similar post from another user here on the AnswerHub. There are suggestions in there in which you can try as well.

Unloading Level with Blueprints

Let me know if neither of these suggestions contained the fix you are looking for, or if you need further assistance.

Thanks,

Andrew Hurley

Hi Andrew,

Having the walls in the persistent level does not seem to fix it. They are still loading and unloading during play.

In fact, by default everything is in the persistent level (default), and I still have the issue.

Hey rbk1234,

At this point I would need to see your project to troubleshoot further. If you would like you can take your Content, Config, and Uproject files, zip them into a folder, and upload them to an external drive or cloud storage space. If the content is private then you can send me the link via a Private Message on the Forums, otherwise you can send me the link in your reply here on the AnswerHub.

Cheers,

Andrew Hurley