Thank you Mathew for all your precious advices. You have no idea how much your videos helped me. Again thanks a lot !
@BarbaNeggra6 жыл бұрын
WOW! You solved a great problem! My game was taking so much to load all the levels, now they load sooo quick!! Thanks!
@da_cat3 жыл бұрын
Wait a minute ... you're the same guy fom the official EPIC lessons :D
@knerf9993 жыл бұрын
wait whaaaaat!?
@duke2222228 жыл бұрын
Is there a way to show loading progress?
@itsxfields420x45 жыл бұрын
Most certainly now how it's done wish I knew
@urbantwilight5 жыл бұрын
In order to calculate loading progress, you will need C++ (see below). This asset has Loading Progress built in: www.unrealengine.com/marketplace/loading-screen-system The C++ code is available as a free plugin: indiebrothers.itch.io/ue4-loading-screen-system-plugin-unreal-engine-4
@Nick-Nasti6 жыл бұрын
This is a great video. I do have an issue: My sub-level doesn't seem to invoke its GameMode. Yes, the world settings in the sub-level are correct. The sub-level works perfectly on its own but when loading from the persistent level it does not. ANSWER: Turns out that you either have to have the same GameMode in both or have to use OpenLevel.
@BourkeDaniel9 жыл бұрын
Hi Mat I was wondering if you could help me to understand how to create the load next streaming level blueprint interface function that you used in the start button on the main menu. Thanks again for all your help
@MathewWadsteinTutorials9 жыл бұрын
+Daniel B Hello. If you are referring to creating a general Blueprint Interface then this video, kzbin.info/www/bejne/fZDLfYihopypapY , covers that subject. All of the files I used are in included in the link above in the description as well if you need to look at them directly. If this does not help then is there any more detailed info?
@valkyriesound38884 жыл бұрын
@@MathewWadsteinTutorials Can this be pinned please? I was struggling for a couple days not realising where I was going wrong :')
@mrknrb6 жыл бұрын
Thank you very much for the tutorials, these are far the best on youtube!
@BitterBatProductions3 жыл бұрын
Would it be better to put the Load Stream Level event inside of the persistent level so that it is always loaded and can always be called from within other levels, like if you want to return to main menu?
@BitterBatProductions3 жыл бұрын
or maybe rather a separate blank level that is always loaded that contains it since the persistent level isn't actually streamed in. This is what I did, and it makes it easier to return back to the menus and all.
@FoxRedTail4 жыл бұрын
I fucking love you, I was looking for loading screen solutions and you just solved a huge procedural generation issue of mine. Thanks so much!
@nathansmiddy6 жыл бұрын
would it be possible to add images of each level during loading?
@perschistence26513 жыл бұрын
Why do you get the Game Instance and then cast it to AnimatedLoadingGameInstance?
@TerceSecreTGames2 жыл бұрын
Because if you just get the Game Instance, you get the standard one by default, so you have to cast to your own created Game instance. It works the same when you have a Master Material and you create an instance of it.
@frostkazuma20046 жыл бұрын
hi there, i am confused howd you make the "Event Load Next Streaming Level " ? i cant seem to make it, plsss heeeelp
@frostkazuma20046 жыл бұрын
nevermind found how lol
@Demicakes6 жыл бұрын
how? :P
@Demicakes6 жыл бұрын
nvm i got it :P
@Gordoxgrey5 жыл бұрын
Ffs can you guys post the answers instead of saying "Found it" and not helping anyone else
@supernerd92844 жыл бұрын
To anyone who may find an answer to this question useful. It has to do with the UMGtoLevelBP interface. You have to go to class settings on the Animated loading main menu level blueprint and add in the interface to be able to call the event.
@thorchen13009 жыл бұрын
Hey Mathew, i watched the video, and i have a problem with game instance part. When in the MainMenu click event graph, i grab a game instance by call "get game instance" and next when i cast it to my self's child game instance, it's always cast failed,and when i click the button in mainmenu, it can't transfer to next level.I checked my blueprints, and i'm sure i have made a blueprint class to inherit the gameinstance,so i don't know why my cast to child game instance always failed. Any idea about that?
@MathewWadsteinTutorials9 жыл бұрын
+thor chen I am guessing that it is not set as the default Game Instance which is causing the issue. I re watched the video and noticed I did not specifically say that so I put a note in there and hopefully that will help out. You need to go into your Project Settings -> Maps & Modes -> Game Instance and set that to the one you created for your project.
@fase_nerd8 жыл бұрын
I´m also having a situation here. I don´t know how to add "Load Next Streaming Level". How i create that?
@evertonguerino Жыл бұрын
Hello Mathew or anyone.. when i hit the "start" on the main menu nothing happens. What could be? I checked every steps 3 times and everything is correct😢
@chiboreache8 жыл бұрын
So what if I want to loading level while a loading level? Or at least playing prerendered video? because rolling circle is too boring for me ~_~
@MathewWadsteinTutorials8 жыл бұрын
If you are using Streaming levels you can have anything happen while the other levels are loading in the background. There is a movie player system in the engine so you could play a video clip if you want.
@chiboreache7 жыл бұрын
Sounds nice, going to google, thanks
@DominikMorse4 жыл бұрын
Thanks for a great idea! However to completely avoid fps drops and to achieve as good as possible smoothness of the level streaming I had to do the following: 1. Setup Persistent level 2. Setup Sub-Levels (in my case L_LoadingScreen and L_Game) 3. GameMode::BeginPlay Get Game Instance and call to load levels 4. GameInstance::OpenLevel(L_LoadingScreen), then LoadPackageAsync This way I could load the map data (3GB) to the memory and I had smooth 144 fps all the time, because LoadPackageAsync run in the background and I setup function to notify me when its done. 5. GameInstance::OnLoadedPackageAsync - notify GameMode that game level is loaded, OpenLevel(L_Game) I tried the way you show in the video and I noticed quite a lot of fps drops. My way I achieved stable fps. The only con is that all the logic is pure C++
@thefourhorsemengamin8 жыл бұрын
hey mat, i'm receiving an error at minute 7:19 where i am connecting level to load (purple node) to level name in load stream level (blue node) im recieving an error stating it is not a animatedloading game_c therefor target (from purple node) must have a connection i think its related to the cast to animkatedloadinggame cyan node since mine doesent have that red success thing under it
@MathewWadsteinTutorials8 жыл бұрын
+4 Horse Men Gaming I am using the Pure version of the Cast to node. If you are not using the pure version you might have execution pins, the white arrows at the tops of the nodes, that need to be hooked up. If you want to convert a Cast node to pure you can right click and select pure at the bottom and it will change it from needing to be executed (with the white wire pins at the top) to not needing to be hooked up like I have it.
@thefourhorsemengamin8 жыл бұрын
+Mathew Wadstein Hey, mat thanks for getting back to me, figured it out thank you so much for getting back to me, i managed to follow all of this to have it function perfectly in my prototype game ill have a video up soon on my channel showcasing me reaching a new milestone in my prototype today for a uni project ill link the video when i finish the edit. Again thank you so much for the tutorial and the reply helped so much
@shamanik13206 жыл бұрын
I wanted to verify something with you. Was reading docs and it said new volumetric lightmap doesn't work with streaming, so I'd have to use old system if I used level streaming right? Thanks for all of your work!!
@abdelrhmanhassan752 жыл бұрын
what the custom function of the "AnimatedLoadingGameState" important for , because when i use the "AnimatedLoadingGameState" as a game state class , some functions of my game dose not work , and i cant edit my Default Game state "GameStateBase" because its made with C++ , and i am not expert with C++ , and is there any chance that i can contact you on discord ?
@umutyldrm68388 жыл бұрын
Can you explain the difference between creating a new level (File>New Level) and in the levels window the ones that you create under the persistent level? I believe second one is level streaming and also can be called sublevels of that persisten level right ? I am trying to look all the docs and videos related to this subject but there is no explanation about it. every video is about level streaming. i don't get it why the names are the same, because creating new level is very different from level streaming i think.
@MathewWadsteinTutorials8 жыл бұрын
The quick answer is there is no difference. The longer answer is there is still no difference. A Level can contain any amount of sub levels and that includes 0 which is the default. When you create a level using the File New or you create one using the Levels window it is creating the same thing, a "Level", the biggest difference would be when you create it in the Level window it knows you want to add it as a "Sub Level" to the current open level. You can open up any level, go to the Levels Window, and then add an existing level you create as a "Sun Level" at any time. Level Streaming is just how you get things to show up if you are using Sub Levels. You could, it would be weird, but you could have a Level with 5 sub levels and just have them hidden and never using Level Streaming to ever actually load them. This would not do any more than having no sub levels but functionally you would not see any difference. As an example you could create a Level, add a Sub Level to it (so Level1 has a Level2 as a sub level), and then just open up Level2 and never use Level1 again and it would be fine and Level2 would work just like a normal level all by itself. Basically a Level is a Level with or without any Sub Levels and they are created the same way.
@knerf9993 жыл бұрын
maaan these are so helpfull. thanks for your tutorials man!
@MJTheJetPlane2 жыл бұрын
What does Should Block on Load do?
@ZacharyMcLellanMusic9 жыл бұрын
What kind of variable is it?
@MathewWadsteinTutorials9 жыл бұрын
+Zachary McLellan What kind of variable is which one?
@ZacharyMcLellanMusic9 жыл бұрын
+Mathew Wadstein Nevermind I got it, it was the one that you just promoted. :)
@chidubemgerald86116 жыл бұрын
I have a persistent map with three child maps, in one of the childmaps say map1, I spawned 3 actors during game time, I want to control the spawned actors through mouse inputs and also through UMG but I can't do that, I have tried passing message across the actor blueprint and streamed level using interface, but that method isn't working, it seems onclick events on the actor isn't working on streamed levels, I really need help to acheive this.
@imagine-games66778 жыл бұрын
what is inside of the interface blueprint UMGtoLevel BLuePrint, you never actually show whats in there, or am I missing something? Without that I can't create that custom event ...
@MathewWadsteinTutorials8 жыл бұрын
Sorry about not showing it on stream. All the Interface contains is the Function named LoadNextStreamingLevel and each streaming map has that interface implemented in its Class Settings
@fase_nerd7 жыл бұрын
What did you implement in the functions? It didn´t work just calling the function .
@Qwiggalo5 жыл бұрын
@@fase_nerd I think you're having the problem I'm having, when you create the Load Next Streaming Level node you can't connect Get Streaming Level to the Target. Fix this by dragging off the Return Value on the Get Streaming Level node and search for the Load Next Streaming Level node that way. And yes, this is old af.
@rowel97854 жыл бұрын
Hello, thank you for this wonderful tutorial. Does this run beginplay once all levels are loaded or the actors inside the specific level that just finished? Do i have to create an event where everything is loaded and fire it fo to all the actor involved?
@LDT7Y6 жыл бұрын
If you're creating a huge open world game split into seperate continents, split further into seperate zones or cities, then do you build the persistent map of the entire zone/city and then chop it up into the sub-levels using box triggers before adding the loading screen? Or did you build each of the sub-level areas as seperate maps and then somehow get the edges of the terrain to all fit together seamlessly? I want loading screen for each continent and each 'instance' level (which I'm building as individual maps). But I just want the sub-levels to act like one larger section of the world. Trying to get the terrain to all match for lots of small individual parts seems impossibly difficult!
@thefourhorsemengamin8 жыл бұрын
hey mat, i was interested in how you would re-script the animated loading screen to incorporate 3 more additional levels to load in since the remote event load level only loads in 1 of my streaming levels. sorry to bug but ive tried duplicating the (Load stream level node) & (call remote event node) to load my additional streaming levels like foliage & sky but it just wont spawn on start up.
@MathewWadsteinTutorials8 жыл бұрын
+4 Horse Men Gaming I just tested using the project and did not seem to have any real issues. Inside of the AnimatedLoadingLoadingScreen level blueprint I made the following change: I created 2 new maps and added them to my levels window as new sub levels in my main persistent level map. After the Load Stream Level node I added in 2 more nodes and loaded up 2 more levels that I created for this test. I then hooked it back up to my delay, remove from parent, remote event, and unload stream level. You only need one remote event as what this does is simply call the LoadLevel event in this example any any levels that are loaded that has that event name will fire. If you are just using the other levels for art related stuff, like foliage and sky, then you would only need one LoadLevel event in your main scene (if you need this at all).
@thefourhorsemengamin8 жыл бұрын
+Mathew Wadstein holy shit i just tested it know on my other monitor, and it worked i feel so freaking giddy right now !
@thefourhorsemengamin8 жыл бұрын
+Mathew Wadstein man i really cant thank you enough dude, can i credit you on my game ? i dont know what title to put in though
@MathewWadsteinTutorials8 жыл бұрын
+4 Horse Men Gaming No need for credit all the info and code I give out is free to do whatever you want with =)
@nogvirtualstudio69845 жыл бұрын
Thank you for this great tutorial. I'm trying to do this for my game but I'm facing a problem. For example inside your AnimatedLoadingMap2 can you create more streaming levels? So when you are inside AnimatedLoadingMap2 you can load some parts of the level using a collision box? Because right now for me is not working. If I start the game from AnimatedLoadingMap2 it will work, but if I start AnimatedLoadingMainMenu is not working.
@MrSephiroth4114 жыл бұрын
hi mathew! thanks for the vid it helped me a lot. i have one problem though. if i stream a sublevel and spawn a actor in it, the actor actually gets not unloaded with the unload stream level node. the result is if i switch to my second sub level the spawned actors appear still there. do i have to delete them manually? or shouldn't unloading the level remove the spawned actors as well?
@HatPeasyCat4 жыл бұрын
When i migrate this, nothing works anymore. Also when i put things in maps it also breaks.
@ErvinJesse6 жыл бұрын
My Cast To Game Instance fails for some reason, can't figure out why
@berthuntZ7 жыл бұрын
Create UMG node? Is that a custom function? I can't seem to find it.
@berthuntZ7 жыл бұрын
nevermind. Found it
@TeoZarkopafilis9 жыл бұрын
Hey Mathew, is there a trick about calculating the delay? It doesn't seem as a best practise. having constant loading times
@MathewWadsteinTutorials9 жыл бұрын
+Teo Zarkopafilis Well the delay is only in there as I really have nothing to load up during my scenes and I wanted the example to show the screen actually works. You could technically just remove the delay as it is firing after the completed event fires off from the load stream level node and at that point you would want to actually play your game I think. Alternately you could have a callback from the new level after it does anything you need it to do and have it close out the loading screen or update it if you have a progress bar for example. You might actually load up lets say 20 streaming levels, each with a purpose like lighting and terrain or a chunk of your map and then update the load screen after each completes with the progress percent.
@TeoZarkopafilis9 жыл бұрын
Alright. So in which place should I call the event to remove the widget and level?
@MathewWadsteinTutorials9 жыл бұрын
+Teo Zarkopafilis well using the code as is right now just remove the delay and after the streaming level loads it will work fine. Your larger levels will show a longer load screen and your smaller levels will have a smaller one. If you want to have your level do something then remove the loading screens and map you can pass the widget to the new map by a function and then have that function unload the loading screen and remove the widget.
@TeoZarkopafilis9 жыл бұрын
+Mathew Wadstein I mean, is everything loaded when the begin play event on the level bp triggers?
@MathewWadsteinTutorials9 жыл бұрын
+Teo Zarkopafilis oh no that is why we have to use the remote event as relying on the begin play event to be fired when everything is loaded can cause issues. If you put any of your code in the remote event that we call its fairly safe to assume everything is loaded up at that point as it fires after the load stream level has completed and that function is available in the new level.
@chronicenigma6964 жыл бұрын
Now that UMG isnt around, how do we get the loadnextstreamingevent?
@TonOfHam4 жыл бұрын
UMG is still around and is one of the most robust features in Unreal, it's not going anywhere anytime soon. loadnextstreamingevent is an interface function that Matthew created, not part of UMG.
@Kiotenhariyo9 жыл бұрын
Your video's are great - reference them often as I forget what I learned the day before! Everything worked great for my project... but... Question: The "Warning!" on your LoadNextStreamingLevel Function... log reports a Warning 'ReturnValue' is already a 'Level Streaming'... Since everything works great as is... do you know if this is a bug, I cannot find this warning referenced anywhere in the forums etc... again thanks for all your efforts!
@MathewWadsteinTutorials9 жыл бұрын
+Kiotenhariyo John as far as I can tell this is just a bug. I have yet to have any issues from it or a way to get the warning to disappear
@Kiotenhariyo9 жыл бұрын
+Mathew Wadstein very good. appreciate the response. great work.
@BourkeDaniel9 жыл бұрын
Great video!! exactly what I have been looking for.
@MathewWadsteinTutorials9 жыл бұрын
+Daniel B Awesome that is good to hear. If there's any specific things you would like to see covered feel free to go to the about page on KZbin here and put them in the Google Doc I have linked.
@brayannavas47478 жыл бұрын
Which type of variable is UIWidget?
@MirrorsEdgeGamer017 жыл бұрын
I think might just be a reference type; I'm not sure really though?
@todortodorov73895 жыл бұрын
For those who have trouble - right click on the blue "Return Value" in the Create Widget node and select promote to variable.
@fase_nerd8 жыл бұрын
How did you create Load Level function to spawn player?
@MathewWadsteinTutorials8 жыл бұрын
LoadLevel is just a Custom Event I created so I could call it when I need it. You would just right click in the Event Graph and Add Custom Event.
@fase_nerd8 жыл бұрын
I´ve changed, instead of Custom Event, simply "Event Begin Play", it worked while simulating, but when packing, it doesn´t work at all. The only problem at this moment is the spawning. Other things, i can´t create "Load Next Streaming Level".
@fase_nerd8 жыл бұрын
Please could you explain the Function that you created in "UMG to Level BP".
@AdamSweeney857 жыл бұрын
Can you please make a tutorial on how to make levels with multiple entrances and exits, so that the player will spawn at a specific point when using a certain exit/entrance door? like in Resident Evil.
@MathewWadsteinTutorials7 жыл бұрын
Done, see the livestream from 2/24/2017
@convolution2238 жыл бұрын
So with this, I place every level in my game into the "Persistent Level" map, right?
@MathewWadsteinTutorials8 жыл бұрын
+0vrStart That would be correct. Level Streaming only has access to the Levels in the Persistent Level.
@convolution2238 жыл бұрын
thanks, just making sure i understood. and since we're controlling the stream, it doesn't really impact performance to do it like that right?
@MathewWadsteinTutorials8 жыл бұрын
+0vrStart Performance might be impacted but as far as I can tell it is minimal if any. The other advantage of using streaming levels is you can separate your level at design time to make it easier to work on as well.
@convolution2238 жыл бұрын
True. Thank you!
@convolution2238 жыл бұрын
+Mathew Wadstein Hey, I just ran into a problem trying this. When I drag in the first pre-created level, it's fine. But when I drag in the second level, it places it inside the first level. Like they're overlapping, they occupy the same space. Is this supposed to happen? Should I just try to move everything around to fit it all together or what?
@johnpeoplefox8 жыл бұрын
Great video! You deserve my sub, any many others too! Can you please do a video on a basic climbing system with animations with blueprints, and a woodcutting system with no animations?
@FitGameDeveloper5 жыл бұрын
Thanks, as always! Unfortunately, these do not work in VR. For that, "splash screens" need to be used instead.
@abdelhaksaouli88022 жыл бұрын
the system does not work if it is standalone
@kingvandit82348 жыл бұрын
very nice and good tutorial!
@Pearest2 жыл бұрын
Thanks, i havent ever seen a real loading screen tutorial only a fake loading screen, LOADING, delay(5.0), openlevel(shitty level)
@pencilgun49346 жыл бұрын
Hi Mathew just wondering if you have a pretty big game 15 levels does that mean if I use level streaming for all the maps that my initial loading time will be pretty long? I think its has to load all the levels when the game starts first. Is that correct? Thank you!
@MathB_Official8 жыл бұрын
sorry to say but you did not show how to make the persitent level, wich contain all the other level, I never did level streaming before and thats pretty much why I was watching the video so... yeah. You only showed what I knew how to do.
@MathewWadsteinTutorials8 жыл бұрын
+M B Sorry this video did not have the info you were looking for. I have 3 other videos covering level streaming in general as this one was aiming to be more specific and did not cover all of the basics. If the other videos do not help you as well you can make a persistent level the same way you would make any other level. A Persistent level is the same as any other map it just has other maps associated with it in the level window. You would open your map that is your "Persistent Level", open the Level Window, then drag in any other maps you want as sub levels in your persistent level.
@MathB_Official8 жыл бұрын
yess thanks for the reply, I did not know you had other videos (found this one via google) Level streaming is a weird thing really x) Force you to have the same gamemode over the map used for the main menu and the map you play in, this is kinda weird but I got it working.
@WilliansBenites5 жыл бұрын
and from an intro and then a menu and go to the levels as it would be .. the errors I have are 1.- when I start the game continues playing the music of the menu and I can not control the character 2.- save the levels when I change to level 2 and in the menu recognize that there is already a saved game and that when you continue to go to level 2 kzbin.info/www/bejne/gmWtlJ-coMeUg8k
@scan-the-world3 жыл бұрын
Great Video! For any noobs like me who struggle to show that extra "Leves" tab next to World Outliner, you have to click Windows and select Levels - docs.unrealengine.com/en-US/Basics/Levels/LevelsWindow/index.html
@scan-the-world3 жыл бұрын
Also Noobie Help - By Super Nerd "To anyone who may find an answer to this question useful. It has to do with the UMGtoLevelBP interface. You have to go to class settings on the Animated loading main menu level blueprint and add in the interface to be able to call the event."
@RexArtTv5 жыл бұрын
How would put your own custom loading animation?
@vincentschulz93556 жыл бұрын
I love this guy
@erdemarslan24708 жыл бұрын
perfect just perfect
@Shamimreza5 жыл бұрын
Its a problem always you shows what you have done already. It would be great if you would just start it from scratch.