Understanding the Variant Manager for Game and Enterprise Workflows | Unreal Educator Livestream

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello and welcome to this week's live stream and today we have uh understanding the variant manager for game play and enterprise workflows and we've got today a special guest uh we've got daryl obert who works with epic games in our marketing team hey daryl how you doing doing well louis thanks a lot for having me looking forward to uh sharing with you some some pretty fun workflows and also our very own tom shannon will be sharing some stuff and there he is in the tile mr tom and as usual we have mark flanagan joining the stream hello and uh so this would be an exciting stream because daryl and i have actually known each other for i don't know what 21 22 years 23 i don't even know it would have been it would have been in the 90s for sure so you know a short story um back in the mid 90s uh we were both living in new york city and we were both working in the broadcast television visual effects industry uh and at the time daryl was working for autodesk uh he was a application alias back then actually it was the autodesk it would have been alias that's right and he was working as an applications engineer for uh alias uh working with um um gosh back then it was power animator and i was working at a at a studio in the west village and daryl would come by and show us cool things with our anime and this was pre maya this was well before maya and uh and daryl would come by and we'd hang out and he'd show us cool stuff and and um and then what was it 1997 or something like that my beta comes out and and we were one of the shops that got a chance to start working with the beta of maya and so you know it was super cool back it was really exciting working with the beta of maya and we were one of the first shops working with the the pc version of maya and daryl was like one of the first guys you know doing really cool stuff with some of that team in in the maya early early maya days and and then we started doing some stuff together and you know in in new york back then it was really exciting just doing all kinds of really interesting stuff and we've just sort of known each other since then and and you've been with epic now for what two two and a half years yeah two and a half siggraph i started the day after siggraph two years ago so coming up on two and a half years but you ended up working with uh maya the maya team for 20 something years didn't you i think it was 20 23 years yeah it was a good run it's good i'm happy to be here doing real-time stuff though it's ironic because the last the last year that i was at autodesk i was actually using unreal engine to tell our story so um you know it's doing this whole journey to vr trying to tell a story about what it's like to be a 3d 3d guy 3d veteran wanting to get into this you know real-time thing and at that time the conversation was all about engines and and uh and hardware so it's how do we make it relevant and you know um it's kind of kind of that was my taste and after that i just wanted i wanted to keep working with uh real time and fortunately for me epic epic had an opportunity and i i jumped at it when i got the chance yeah so tell everyone what you do uh now here you work with the marketing team but you do a very specialized thing you work very particularly with the webinar group and you you know you we all work mark and tom and myself work with education and you work with education but you sort of work very specifically in and very focused education tell everyone on the stream what you do particularly yeah so my role uh which is similar to the role that i had for for all those years at autodesk or some of the roles i had all those years at autodesk it's technical marketing so it's it's a bit like an evangelist but you know we're still very much about the inspiration so everything that we're doing in technical marketing is we're using the tools to try to show people possibilities things that the software can do um inspire people get everybody excited about why they might want to to you know use use these real-time workflows so it's a it's it's kind of on this fine line of of you know marketing and a little bit of training but it we never go super super deep it's not it's you know the things that i'm doing aren't necessarily designed ever to be you know a curriculum based kind of very thought out educational learning it's it's more of the highlights it's kind of the cliff notes of a feature like this this is the things that you can do with it and it's a lot more of the the why than the how but there's still you're still seeing the tools in context with most most of the things i do so we do the webinars when we used to do trade shows um you know i would always be putting together uh presentations that we'd show at on the stage at the trade shows as well as the demo pods and i do a bit of pre-sale stuff um just helping out the business development team out with proof of concepts and things like that so you know it's it's kind of a marketing job but it's kind of kind of like a it's kind you're still hands on in the tools well i'll never forget because i i would always go and hang out with daryl that you know whether it was siggraph or or um you know nab or whatever it was and i would go and watch his presentations at uh you know back then it was the kinetics booth or i don't know if you ever did a kinetics booth but it was uh um autodesk booth or back in the alias days and i would always walk away and go i gotta do what he did and go home and try what you did and now it's always like how the hell did he do this one step or this other step for the next step and i'd eventually maybe figure it out or i'd send you an email or a note and say what was that thing you did step seven or step eight and and it was so was so inspiring to to see you guys uh you and a bunch of the other guys who you know we're still good friends with a bunch of them and we've gotten a chance to work with some of them uh here at epic games who you know have worked with us because so many have moved into real time but it's so great to have you on the team here and and then you know i think one of the really cool things is that i saw you do this presentation on the variant manager as part of the webinar and you know this is one of those tools inside of unreal engine that is just an amazing tool that in many ways kind of in in my opinion kind of got put in and maybe came in kind of swept in under the radar because it's a very impressive tool for those of you who have not spent a tremendous amount of time working with the variant manager i think it was meant mostly as an enterprise type tool but for those of you who who build tools using blueprint or or anything like that to change things inside of unreal engine the variant manager is built specifically to do that but you don't necessarily have to use blueprint you don't necessarily have to do as much strict coding to utilize the functionality inside of very manager now you can but it kind of does that through this beautifully crafted interface and and now it's been around for what four five three three versions of the engine 423 maybe is when it came out and it it you know they continue to invest in it it definitely has been shown a lot of love there's some new features in 426 also so it you know it's its functionality has grown its extensibility has grown and its usability has you know the ui has gotten a lot more refined over those over those several drops that it's had so it it's a great it's a great tool i use it i use it all the time in a variety of different use cases and contexts so then we started talking about doing the stream and exposing it to the education community because i think it's a great presentation tool if you are an educator or student and you're working with the education community in general to show how to switch things up how to feature your content how to maybe a feature a level how to feature the things that you're working on we thought it we wanted to make sure that anyone in the education community was aware of a tool like this and how they can utilize it both to present their material with regard to maybe enterprise content which means automotive content or design content or even architectural content but then we also realized that you know and other people have shown this as well on some youtube videos that you can use it in a gameplay capacity so tom's going to share that as well and i think daryl's going to talk about that as well so we wanted to make sure that we shared that with everyone because it's a really powerful tool set and you know maybe something that doesn't quite get featured as well as it can be and i know that we've done some videos and you guys and how many webinars have been done on on the variant manager there was quite a bit of stuff already right yeah i mean we we did one it definitely works its way into some other presentations just because it is it's just a it's a fast easy way to get something done so one of the files that i'll show you at the end is was related to our collab viewer presentation that we used and i i use a variant manager just to help you know you can just cut corners right like of course you could you could always turn on and off geometry or do material assignments or do all kinds of stuff with blueprint but the variant manager just just eliminates a lot of the the hard the hardness of that it gives you a button that does it so it kind of finds its way into a lot of my presentations just because it's such a pervasive part of my workflow well that's great so in a few minutes we're going to hand the the stream over to daryl and he's going to jump in and share the tool set and show you how it works and show some of the cool stuff he's done with it before we go there though tell us a little bit more about some of the other material that you do in the webinars tell us a little bit more in general about the webinars and some of the technical marketing stuff so that people are fully aware of the the stuff that you all do sure so the webinars we try to run one one a month and we do uh a webinar for twin motion also so we we try to do around between twin motion and and unreal proper we do about two a month they're enterprise focused normally with that said a lot of what we're doing would be applicable to a game developer also the stories that we're telling are often around workflows and features that are kind of important to enterprise customers sometimes it's myself sometimes it's matt doyle we have others that are done um by customers so it's not it's not always necessarily myself doing them but we're we're always kind of in in the back making the webinar run making sure that the topics are on point and things like that so our next our next one is coming up on this in december and it's going to be in the simulation space talking about geospatial um and you know the geospatial tools have come a long way inside of inside of unreal there's some new new collaborations with some plugins that they'll be showing to get in you know really really amazing data which is great for film and tv people as well as you know the aec space it's actually pretty a pretty good tool set so that one is going to be done by alban and you know uh we're looking for we're looking forward to that some in the past we've done within you know we'll partner with nvidia i'm just starting to spool up one that will be in february with microsoft uh we'll be doing a hololens product configurator hololens two products configurator and some of the new stuff that's in 426 around that so that'll be the next one that i work on and then you also one of the more recent ones was animating inside of unreal engine that was a great webinar for the folks that didn't get a chance to see that one talked about all the different ways you featured niagara in that you talked about how to animate vehicles inside of unreal engine you talked about you brought in a partner to talk about animating crowds in that uh that was another matt doyle one uh yeah matt doyle and the tool chef guys so the adams crowd plug-in so we often like to partner with with you know third parties uh it's it's great to have their voice out there and to show people what's possible so yeah matt covered a lot you know and that's kind of the that's very much what the webinars are you know like they're not going to be step by step by step we're just going to flood you with a bunch of stuff where it's like oh that's cool that gave me an idea i want to dig deeper into it that's you know that's kind of what they're intended to do is is to plant these seeds so that you go out there and get inspired and try try to figure some some unique workflows out on your own after you've seen them hopefully and then another one that matt did not that long ago which i really liked was an audio focused one where uh he did a convolution reverb um was that a webinar was that a yeah that was a new feature video so we also we also make new feature videos new feature videos are about a two and a half to five minute long presentation it's it's highlighting a couple of the new features that that come out with each release so for four two six we're doing like a cloud one we're doing uh enhanced media output because there's some great new work that's been done with the render queue which again is kind of an evolutionary tool it came out a couple releases ago it continues to evolve so really great way for getting extremely high quality media output with aovs now are much easier to work with so we're going to put together i think three control rig one we're doing so these are you know really really high level just this is what the tool does it's a lot of the and this is a problem that it solves it's a lot of the y and there's like a little bit of music underneath them they're you know they're there there are glimpses to what the tool does so that that audio one was a new feature video that matt did but it was it was nice i mean so that's great that's i'm sorry go ahead tom that's really cool because you i think a lot of people are often challenged to find all of the tools and kind of see what's there the barium manager is a great example of that like uh if you don't know it's there you're probably going to go write your own uh yeah but if you know it's there you're probably not and and what's even more is like i've said it before often these tools i'm like yeah yeah there's a bearing manager i'll just write my own anyways because i know that'll work and they probably something that's i i don't know um you know it can be it can be tricky even uh with people that should know better uh so so it's really cool to to do those and and to get you know explore all of these tools and and see them uh kind of used because i think that's what a lot of people just need a lot of us know what how to do it we just need to know that it's there i look forward to seeing them well i know with 4.26 dropping here you know in the next couple of weeks it's it's going to be a i think a little um overwhelming it can be overwhelming with releases of the engine when all these features come in uh how do you consume all this new stuff coming out and unreal and so uh the technical marketing team i think can be really helpful and just wrapping your head around all this new all these new features in general especially if you just kind of want to understand what they do you want to dip your toe in the you know 4 2 6 you know know tech release of what's going on you might want to try it you know you're not going to do a full immersion into maybe everything that's going to happen there but you want to understand how to use the tool what buttons to push what they do and then you'll get into it more right so i think that's kind of what you guys are doing there right exactly yeah you'll know where it is in the ui after you watch the video and you'll see it do a thing you know it'll be it'll be the cookie show version of the thing you know but you'll you'll have an idea of the intent of what the tools the problem the tools trying to solve and how it can make your day better i mean for the learning community that's super valuable because using in production teaches you a certain level getting introduced to it helps you understand how you can solve problems with it so that you know when you have a problem that that tool is available to you so you know make sure you check them out there is a full web page with all the webinars if you go to unrealengine.com i think it's forward slash webinars i think that's correct that you can get to all the webinars and if not just go to unrealengine.com and in the search bar search for the webinars it'll take you to all the webinar pages and i think that in the youtube channel there's also a playlist for the webinars and for the the quick feature videos i'm i'm not sure is there is there a i'm not sure how they organize those i think i think there is live it might be under live event i'm not sure exactly where those end up if you're if you're on linkedin there's a good chance you're gonna you're gonna see that stuff yeah flying like those new feature videos make it out through the social team pretty pretty uh if you're subscribed to facebook or linkedin or twitter there's a good chance when a new video comes out you're gonna get exposed right well awesome uh do you guys wanna anything else you wanna bring up before we hand the stream over to darrell to jump into the variant manager more cool let's get into yeah let's get into it uh everyone in the chat make sure that you tee up your questions as is daryl's jumping into the variant manager this is an extremely cool tool once again you know one of the reasons we want to talk about it is because if you are an architecture student or you're teaching design in any way or once again if you are showing your content creation stuff that you're doing this is a great way to feature your content and all the varieties of things if you're you know a character artist and you're showing all the variations of your character clothing or whatever the case is check this out this is going to be really really helpful whenever you're ready sir all right well let me uh let me start off by thanking you for including me i'm really happy to be here to show you guys this most of these projects that i'm going to be showing today actually are data that was originally made for a webinar this project that we're looking at actually was used for our multi-user editor webinar um so it was kind of built in a unique way because it had to play back uh pretty quickly but we wanted to be able to also have a high fidelity version that was very trace so there was a ray trace version in the editor as well as a vr version so the idea behind this file i'll just spend a few minutes talking to you about it just because it's kind of a fun file and i'm really happy with some of the stuff that we figured out with it so everything that we're looking at right now is is ray traced and you can see that very clearly by looking at the shadows coming across here where you've got the tree that's kind of far giving you the broad shadows based on that light angle and then obviously objects that are close are going to have this nice crisp shadow but the interesting thing about this is i move through this and i've got the the fog turned up pretty high you can kind of get a sensitivity to god raise share the screen i was just gonna ask yes i can't see your screen oh and i want to see your beautiful beautiful dress my god it wasn't me i'm not the god ray daryl's trying to be coy yeah yeah yeah and he's decided to uh verbally demonstrate his entire he's to do it through interpretive audio interpretive dance i was hoping so all right so as i was saying if i move my camera around here i know it's going to be kind of hard to see maybe through this stream but there is a sense of this kind of streaking volumetric light kind of coming across this this this file here and then of course this is the area where the trees are really far away giving us these soft shadows and then with ray trace shadows you're always going to get that that effect based on the angle of light from the sunlight you know close objects are going to have crisp shadows that then fall off you know depending on how cloudy the day is you'll have more or less you know kind of drastic version of that falloff but normally with the volumetric lighting inside of unreal if i just jump over here to another another view here as i kind of move around this guy you can see that shaft kind of coming across right here kind of burning out on that on that stuff um you know those volumetric light rays are captured in the depth map shadows so they don't work with ray tray shadows so what i've done and if we kind of jump inside of here if i kind of move over this way you can kind of see even even in even in this this space where are we oh we went up upstairs even in this space as i kind of move around this guy you know there's there's going to be this pretty pronounced effect of that volume shadow you can kind of see this this light band streaking through there and if we get in it then as i come up and down out of it you can kind of see it there so it's one of those effects sterile that you put in and then you are like constantly trying to see and then you take it out and go oh oh put that right back in uh you know it's i i always feel like volumetrics like this they add so much to the scene but sometimes they can be hard to like pinpoint uh yeah you know it's just what you expect to see like here i expect inside not to see any fog because i'm inside and then outside to see this really thick fog with those those streaks through it and that that's pretty clever there because i've struggled with that myself where i was like oh i really really want to use these god rays with these beautiful ray tray shadows yeah so the way the way the way that it works um and i've got i've got the fog cranked up you know probably a little bit higher than what's necessary just just to kind of hopefully drive home what it's doing the way it works um is this scene is a hybrid of baked lighting and dynamic lighting so everything that's outside is baked lighting all the architecture is baked lighting except the interior furniture so this furniture is actually being dynamically lit and it's really hard to see the difference between the baked lighting and the dynamically lit lighting because of the way i did the baking when i did the baking i cranked up the resolution of the volume the volume samples so if you go and you say visualize volume electric light map we get this array of spherical harmonic sample points so you're not only are you baking you know the texture maps that are going to get that gi light balanced you're also baking into each one of those spherical harmonics how that light's moving through the scene and that's what's used in the dynamic lighting process to give you the you know the non-directional light contribution that you see on all that geometry so what i did is in my world settings i just really cranked up the uh the sample size of the cell so you know they're five units and then i overdrove the memory the memory size of that also so that's what gives you this really really dense spherical harmonics which does two things it bakes the volumetric lighting into those samples so that's how we're getting the volume shadows is it's actually recorded in that in those spherical harmonics and the other benefit that it does is for this example because we wanted to be able to use the variant manager to move this furniture around but we want it to look like it's being lit with gi because we couldn't use gi you know on in vr or something like that it wasn't going to work so you get the added benefit of the the ambient light that's or the the the non-directional light that's in this scene now is also going to really be driving the look and feel of of how how this furniture works so this furniture is completely dynamically lit right like i can move it around and you know it's not baked but it looks pretty hard to tell the difference between what's baked and what's not baked with this with this workflow that's pretty awesome this is all not baked lighting it's all it's all it's all dynamic oh my gosh we're almost there that's what we call that hybrid workflows that we yeah and it's not using gi like you know now with rtx and stuff you could you could turn gi on there and you know do that in another way but that's not going to be nearly as performant as the way that we've approached it here but you're still getting all the indirect kind of that indirect skylighting that's baked into all those samples too which is why you're you know non-baked stuff really yes exactly it has it has it it has a sense of like this part of the interior's darker than this part right i can see a little bit of that blue light there that's really really remarkable i've never thought to drive those those settings quite yeah tread lightly it it definitely was like you know pretty pretty taxing on the hardware i'm not gonna lie um but it it worked you just have to be patient and now we have gpu you know the gpu light mass so um that that could potentially make this a little bit easier because you know with the old legacy light light baker it's like you don't get to see the results until the results are done and now with the gpu light baker you get this kind of you know recursive refinement approach where you get a preview right away and then it just refines and refines refines kind of like an unbiased renderer so that's pretty cool so anyway what we want to do is we want to use variant manager to rearrange this furniture this is a pretty classic use case of the variant manager to make variations of something in this example it's going to be variations of furniture so how do you do that well the first thing you do is you need to create a new level variant set so if you right click and go to miscellaneous and bring up the level variance you know create a level variant set and we'll just call this lv dto or something just give it something a little bit more meaningful and if i double click on this guy it brings up the variant manager so this is our user interface to manage the level variant sets now of course you can you can use the level variance in blueprints there's a whole whole bunch of calls and things you can do with the level variants if you want to do it all based on runtime and manage it that way you can but we've also included this variant manager which is just a nice in editor tool to um to to basically set it up and interact with it i guess it does it's kind of a two to two things that you can do so we have our variant set that we've made or our very level variant set the first thing we want to do is create a place to hold our variance so we're going to create a new variant set and you know you can give it a name if you want so we'll just hit f2 and just whatever just call it like stuff we have some stuff so now we've got this variant set stuff it needs to hold it needs to get variants and actors in there so after you've created a variant set you want to click the plus button again to create your first variant so we've got this variant and we need to populate it with actors there's several ways of doing this you could select some actors right click and say you know add selected actors pretty straightforward there when i do that it's going to bring up a list of what properties do you want to watch it's like a state machine like what what do you want to what do you want to manage with this variant manager so these are static mesh actors the list is pretty long for static mesh actors there's things like the materials that you know there's there's a ton of things that you could potentially you know play around with in this example it's pretty straightforward we're just going to do relative location and relative rotation so we'll select both those add it in there now another way of adding stuff in in this guy let's go grab this and go up here to the top of this i'm going to grab this actor so i can right click like we saw before or i can just literally drag and drop to make that connection so when we drag an actor in there obviously it's going to have less things than like a static mesh actor so for this example again we just want to get relative location and relative rotation so we'll go and we'll select those guys so we've added in some actors we've defined some properties and those properties have values okay pretty straightforward now at any time if you wanted to add in more properties like you know you started it you didn't add in all the stuff you wanted to play around with or manage with that you can always go back and and recapture new properties so it's it's very um none it doesn't it doesn't lock you in you don't you don't have to have like massive vision about what you want to do you can kind of you've got to build it up iteratively so now that we've done that this is going to be our first variant and like we'll just we're just going to leave this one with the way it is so i'll just maybe do something like this to frame it up i'm going to right click on this and i'm going to say um create a thumbnail so you can create it from a from the viewport or you could bring it in from a file and the reason we added the ability to bring icons in from files is you can and we'll see an example of this a bit later or kind of an example of this a bit later you can you can build pipeline and with python around the variant manager so the next example that we'll see i'm going to use a little bit of python to auto build a variant manager so if you're auto building a variant uh set you could in that process say oh by the way you know we always use these paint colors at bmw bring in our paint swatches and make an icon for it so stuff like that you can do i'm just going to create it from the from the viewport so this variant we're going to just call i don't know we're going to use really good names today we're going to call this variant 1. sweet so the next thing we want to do is create an alternate variation of our furniture to speed things along i'm just going to right click on top of this and say duplicate so by duplicating it we've already got all of our actors and the properties that were defined set up for so it's you know much much faster to work with so let's go ahead and start start positioning and there's lots of little things that like i said the tools gotten better to work with like when i select the actors now in the variant manager they select in in the scene in the viewport it didn't do that in the first version so there's lots and lots of stuff where like the work now is the time to start using this tool because the workflow is is pretty pretty solid now the usability is is much much higher than it than it was in the earlier version so what we're going to do is we're going to grab these guys we're going to bring them over here we'll rotate them around we're just going to create you know like a mirror of of of our scene and then we'll grab our sofa we'll push that that jute over and kind of you know spin it around or whatever and doesn't have to be the best work so you'll notice that as i'm updating these look at what's happening in in my window here there's nothing changing in these properties so one thing to keep in mind is these the variant manager and what's happening in your editor aren't really connected to each other it's kind of you have to you have to give it a push or a little bit of a kick to get it to update so because i've made those dirty it knows that they're dirty i just have to click this button to record that change so as soon as i click that button it records the change you can see those numbers update click the button there it records the change it's now updated and we can do the same thing for the sofa so we're just going to click those guys to record that data so now if i double click on this it switches it back and then double click on that guy and it switches it over so that's that's like variant manager 101 that's the first step is you know getting it in there using the a couple different ways to add your actors on there to find some properties and then you know capturing the changes that you've made in in the editor into the variant manager and it's it's now done now here's here's a cool thing um in 426 we added these things called dependencies and the reason this was added was you know for a lot of a lot of more complex configurators like an automotive configurator you might have certain options that are only available in a given trim level you've got you know crazy crazy you know uh unlimited unlimited jeep or whatever it might have four different 19-inch wheels that are only available in that in that variant so the ability to say these only are only gonna you know work and show up if this other dependency has been met so what does that look like um it's pretty straightforward like if we just go in here and frame in on the on these pillows we're gonna we're gonna go ahead and we're gonna create a new variant set so our first variant set was you know global position you know of of our stuff our next variant set that we're going to make is going to be um it's going to be like pillows or something so we've got we need another variant set oops i'm sorry i gotta create a i made another variant not another variant set let's delete that guy and create another variant set and then call that guy hello all right so we got our pillows let's go ahead and let's create a you know an option for those guys so we're going to create a variant and i'm just going to i don't know we'll just do it with two pillows that's fine so we can we can grab actually we'll do it with why not we'll grab those guys and we'll right click and say add selected actors again what do we want to grab for those it's just going to be position and rotation for relative relative location relative position so we'll we'll do that and this is cool so we've got our first variant um this is going to be like our original position so we'll call that og and what we're going to do is we're going to say this variant is is cool i like that one let's go ahead and let's let's just duplicate that guy and call it new best names ever and here let's take a snapshot of this just so at least we can see like from selected viewport there's our pillow so our new one is going to be these guys so we're going to grab this dude and this dude i'm going to put them over here and we're gonna update our position on those and we'll grab these guys here and we'll update the position for those so we've got our pillow switches that happen now and these happen irregardless of you know whatever configuration the couch is in like if the couch is in this configuration right currently they happen no matter what configuration the couch is in so if we go back here and you know switch between these two you can see they they jump back and forth but what we can do is we can go to this one and we can say you know what new is going to have a dependency so we're going to say it's dependent upon our original stuff variant and it's going to be dependent upon one so what that means is new can only happen when our couch is in is in position one so if we go to og and we go to we go to this guy oops i did this one here and we double click this it's going to force it back into that position that we made the dependency of them so that's really really what you know this this was a like a nice nice new little added feature to give it that kind of flexibility to to handle more complex uh more complex use cases uh so i've been talking for quite a while louis were there any questions that came in yes there was a question that popped in uh specifically asking what gpu you're using uh people are curious what uh sure what's your drive in here on the hardware yeah so i'm on a titan an rtx titan and then my workstation's actually an older hp that hp was kind enough to send me when uh when we did the performance evaluation changes in maya so this is probably a five-year-old xeon um they were pretty fast frequencies for the day but now i mean i'm sure a threadripper or horizon would would just crush this machine but gpu's pretty solid i'm looking for a 30 90. if anybody's got one and you know you want to send it my way christmas is coming christmas is coming he's just saying and then there was another question uh curious if there's a possibility to also lerp between these variant sets so um yeah so yeah kind of yes and no so you can actually you can actually trigger blueprints from the variant manager so it would be more like you'd use the variant manager to go off and then trigger some blueprint stuff that would then do an animated transition or like when you do a variant manager change you want to have a particle system do a little you know explosion and then the wheels change on a car or something like that so we won't show that today but it is it is flexible in the sense that you you can you can do that you can trigger an event basically you can also access metadata from it like it's continued to evolve and get more and more more and more powerful so kind of like it's not out of the box alert isn't out of the box but the functionality to you know use the variant manager to trigger a blueprint orchestrated sequence or something that you set up you you could do that great question awesome all right so that's that's like um that's the basics of the variant manager uh if you're going to use it just to manage to manage you know a scene and set up some states do a design review you know lots i'm sure you guys can figure out lots of different ways that that just in this really easily accessible anyone could do this kind of workflow uh the power that it has so let's jump over to another scene and we'll start talking about how we can do some some uh some things in run time with it and we're gonna use this this guy right here so what we've got going on in this this is another a project that um i put together for ray tracing stuff i think back in the day but what we want to do is we want to we want to get some color changes happening on this vehicle so for this one what we're going to do is i'm not really i'm not a good scripter so don't make fun of the way i you know my python is bad but it works so that's the important part we're gonna we're gonna automatically build a variant a level variant set and populate it and set everything up with up with a script so the overall idea is we go through where you know i'm just doing some wild cards so i'm finding some light wheels i'm finding some dark wheels i'm creating a you know a level variant set called procedural variant color it's going to be at my you know my my root of my game level it's going to go through and basically find the wheels it's going to toggle on and off their visibility it's going to create a variant for the light wheels a variant for the right for the dark wheels and those were just you know the names that i gave them in my in my little script up here in my python script it's going to toggle on and off the visibility so everything that we just did manually that part's going to go through and that that this chunk right here handles handles the wheels then the next thing that we're going to do is we're going to go through and we're going to load all the materials i'm going to find um i'm going to find this one here that's that's you know car paint 16 and car paint red so we're getting our materials then we're going to go through and we're going to find all the all the things that have car paint on them so that's why i'm doing this search for you know body paint there's a bunch of things that i you know had you could use you could use like you know if you brought the data in through data smith and there was you know uh some some metadata on there you could you wouldn't have to tie it to the to the actor name or you could tie it to the metadata but i just tied it to the actor name but i was you know i knew what they were and we're creating another another um another variant set called color variant set and then we're basically going through and we're doing uh we're doing just a swap from material zero from blue to red so not not a ton you know pretty pretty straightforward in what it's doing and we'll see if it works this is always this is always the fun part so go say execute python script i've already done it once so if i just run this guy into theory it should go through and it worked so we now have a red car with dark wheels which is great and it made this level variant set procedural variants color so if we double click on this guy you can see that there's our two variant sets so we have one for the wheels and we've got hre light in hre dark there's all the actors that it found using that wild card and then we have our variant set color and there's all the body parts that it found you know that are going to need to be either blue or red so you know really really awesome the fact that you can just write a little bit of python if you're doing the you know repetitive things over and over and over again there's no reason to just no reason to do that manual hopefully that makes sense so the next thing that we want to do is we want to we want to create some ui to uh it works in runtime to drive this so how do you do that it's pretty straightforward so the first thing that we're going to do is because we're going to have this happen in the editor we now need to drag this level variance set into and i'm just going to give this an order because i'm going to just call it dto we're going to drag this guy into our into our into our level okay so that we can interact with it with blueprint so we've got our little variant set in the level now first thing we're going to do is we're going to go create a widget blueprint so we'll just say w e r double click on this guy bring up our editor and we want to go ahead and we want to create a few buttons here so i'm going to create a button and we'll drag that guy in and i believe sure that i haven't let's see if i have in my content perfect so i've got my button i'm going to go in here and we're going to make a button for the blue and a button for the red um i'm not going to do all everything and the we'll just do the the car pane here so we've got our button let's go down here and go to the appearance where are these someone's slacking me is it maybe it's different different channel i thought tom was telling me you're you're looking for this right here all right if i knew i'd just interrupt you and tell you uh all right so let's just go ahead and put that there and if we're going to do our image size on this guy we're going to come up here and we're going to say size that guy down ah let's not do that those buttons are really small we'll just leave it that that's fine here we've got our little our little button it's our icon pretty straightforward and we can just put some text over here or whatever just just for fun a uh color all right so there's our button and we want to go ahead and we want to create another button that's going to be and instead of this being called oh i grabbed the border and that's what's going on that's why it looks weird i knew something was wrong button we want a button we don't want a border there we go try that again we'll drop that dude in there yeah perfect we got our blue guy instead of calling it button zero we'll just call it blue okay that's cool and then we're gonna do the same thing drop this dude down here throw some red on that guy size it up ui in the history of a car configurator what do you guys think it's pretty sweet right ah we can make it better though here let's go and let's let's go uh i'm not buying a take hand with this interface you don't like it wait i'm not buying a take-hand anyway i can't afford it but okay all right so we're gonna put blue there on the hover state and then we're gonna make this one have like you know actually you know what even better let's go back to our non-hover state this guy right here and let's go let's go to tent on this and let's let's make it like semi-transparent you know 0.5 so when we go and hover over it it's gonna it's gonna it's gonna it's gonna brighten up so we're gonna do the same thing on this guy we'll go to tent oh this is where you could spend all day just just going nuts all right so we've got you know semi-transparent buttons we've got our we've got our normal style this guy needs to have a red hover state cool so we're good with that so we got a button we've got our red hover state and then we should call this button not button one but call it red all right so we made some ui and uh nothing nothing overly sophisticated there so the next thing that we want to do is we want to go ahead and we want to um go into the graph and we want to start to wire up those buttons to change that variant set so how do you do that it's it's really pretty straightforward so we've got our blue button we're going to say let me just expand this out so it's a little bit easier going on here so on click that's going to be that's going to be what triggers it so we're going to say on click what do we want to do well we want to i'm sorry on event begin we want to first of all get our level variance sets in here so how do you do that well we need to query the information right it's in our level so what we're going to do is we're going to get in all actors of class so we'll just do a get all actors of class when we start this guy off and the class that we want to get is level variance set right so if we search for level variant set we've got that guy right so now we've got that so the next thing we need to do is that we've kind of queried it we just need to store that array of information so we're just going to do a get on this guy get a copy of that stuff and store it and we're going to store it into a variable right so we're going through we're finding our all actors level you know our level variant set all actors of class we're going to you know the index is going to be the first one that it finds it's going to get index zero if you had more than one level variance you know it's going to go through and grab them all so you can specify which one you want um and we'll give this thing a name like just are whatever doesn't really matter so the reason that we want to store it is because the get all actors of class you know there's a performance hit for that so you want to query the information do the array store and then if you were gonna you know use that over and over a thousand times it's gonna be much faster just to take that stored version of it and kind of use that so now that we've done that the next thing we wanna do is we want to branch out of this guy and we want to have it switch the variant so we've got our variant information now so we're going to go and pull out and we're going to say variant so i think if i search for variant we're gonna get the switch on variant index by name all right and we don't want um this to be the execute of that we're gonna want it to be this this button click right this is going to be what's going to drive our line we're going to have this guy drive that variant so now we need to figure out what the variant set name is and i forgot what i named it i'm sure i named it something ridiculous um because i'm a bad namer go back to our content browser here content and i i named it i used my initials so thought ahead on that one all right so and then the variant that we want to grab the variant name so we got our variant set dto and then the variant name is we want to grab we want to grab i'm sorry the variant set we want to grab is wheels it's not the level variant set the level variant sets index zero sorry if i confuse you guys on that that is wrong we want to get the variant set which is this guy so just to make sure that we don't spell anything wrong if it's not spelled correctly it doesn't work right so copy and paste copy and paste is your friend and then the variant that we want oh we're doing i'm sorry we're not doing wheels we're doing color i have blue and red balls over there we want to change the color so we'll do ctrl c ctrl v on this guy boom all right that's done and then i can spell blue i can do it i know i can spell this correctly and not have it mess up all right so that's gonna the blue button now is gonna go through it's going to you know take the first index of our of our of our get all actors of class index zero i call it first index but it's you know it's the first place in zero it's going to go and grab our color our variant set color and it's going to turn on the variant name blue very very straightforward yeah so we can just control w that guy and we can drag that into there we still want it to be color but then we're going to want to go to red ooh that's not going to work red capital r okay so we got that guy now we need to get our red button on click bring this little guy over here type those in there like that all right let's just do that because all right so in theory we compile this guy it's going to work so we've got we've got our get all actors of class we go through we find our level variant set in our in our in our scene we specify what variant name we want and then what variance that that name is is under and they're all triggered by these little buttons so compile that guy perfectly on to the next step pardon perfectly logical yeah yeah it well if it doesn't work it's user error the tool is rock solid daryl maybe not so much all right so now that we've done that we need to add that widget blueprint into our level so you could either tom loves this you could go into your level blueprint and create a widget blueprint and add it to the viewport or if you want to do clever um he's not gonna like that so i'm not gonna do that i dare you i'm gonna just say bp ui and i'm gonna create a little actor and in this guy we're gonna go in here and on event event begin play we're going to do we're going to do like a little um create a widget oh gosh i think if i start maybe if i just type widget no i don't want to cast a widget i want to create a widget and to begin play you're trying to do it the right way and now it won't let you no no no it will i just need to spell correct there you go there it is all right and then the widget that we're going to create is going to be my what did i call it would you would you i have more than one car uh car all right and then really simply just you know everything works in unreal if you just know how to spell the viewport yes add to viewport do that wire these two guys up boom boom compile close this sucker down and then uh we can close this down too we don't need to see that guy if we add our blueprint ui to our level and we hit we've play that guy and i don't have it set so that i can mouse over that so if i think i hit what do i have to do to get my mic shift f1 right yeah oh of course my car is not visible let's let's make that car visible and then hit shift f1 oh no what did i do i've got something wrong you're lord huh you've done it in front of the whole world too ah but here's here's here's the the great thing i've got a backup um i do want to jump in here to see what's going on though uh we lost your screen just in case you do know that your screen disappeared that's weird now everyone's looking at you strange i don't know color blue red yes all good and let's look at our level variance set we did that one and our widget blueprint we've got you on look at our graph here one click blue color color blue red it should work it should work compiled and saved with the compiled you've got your set names right uh i'd leave that up and see when you click the buttons if it's actually firing yeah that's oh you know that that could be that could be it i'm i don't know that the buttons work when you do the shift f1 yeah they're not they're not sitting triggers why are they not triggering all right try this let me let me i don't know i've because look i've already done it once so if we just drag it's like you've done live demos before i i i have i have i think that the yeah it's cheating to have a background it is uh wait did i not add that to the viewport you added to the viewport but you've got one called not car but something else oh it's called dto all right here let's get rid of that and then let's get rid of that and let's just drag in this guy right here and drag n that guy so if we look at this one demo this one has it should be exactly the same though so let's see we're doing get all actors of class same thing we're storing it in zero we're setting that variable yeah on the clicks this has a different um the words are different because the variant manager was different which on variant by names which yeah this should work let's see this file was pieced together from uh i i ripped out oops control that doesn't work just f1 will take you to wireframe yeah shift i hit i didn't i didn't hit shift f when i hit f1 so let's do shift f1 and hopefully this will work here oh no i think i think i know i think i know hit stop okay and drag your level variance set into the left oh did i not add it into this level i don't think so oh come on you're right i'm sure i didn't let's see now oh my gosh and you remember the first thing i said to everybody was make sure you add your level variant set in we did that in the in the architecture demo we didn't do it in this demo i thought i'd already done that stuff and i forgot i switched files so yay tom figured it out my blueprint was right [Laughter] anyway um yeah that's that's that's it in a nutshell you know it's it's pretty straightforward again like i said in the very beginning make sure you add your level variance set into the level or else it's not going to work it does it doesn't you know if it's not in the scene it doesn't know so just adding the blueprints isn't gonna to back it up and just just so that everyone's clear as to the steps again if you would be so kind sure let me let me escape out of here so step one is create your level variant set okay step two is to make sure that you add that level variance set into into your scene right so here we have demo level variant set which is this guy oops wrong wrong thing and it's important to put it into the scene so that the blueprints can interact with it because you uh before we were seeing you you can you can use this right and change the variance without one in your scene um but if you want blueprints to interact with it there needs to be something in the level to access right okay totally which is what we did the first step i did when we were in the architecture scene was i said make sure you add this in and then of course i didn't make sure to add it in when i made it and uh just so we can see what that icon looks like would you hit the g key in the viewport so that everyone sees what the the actual icon looks like oh i don't know what it looks like i think it's like a little uh i don't think it has an icon well it's not helpful [Laughter] that's not helpful at all um so to to recap create your level variant set populate it do your little programming of you know what you want to have happen where pretty straightforward there right then from that drag it into your level then you need to create a ui if you want the ui to drive it so we have our widget our widget blueprint right here which has you know it has a few buttons with hover states that are semi-transparent then in the graph it's this one has four things so it's a little more complex than when we built up but on on the beginning of the event construct you're going to do do a ghetto actor as a class to find your level variant sets you're going to store that array in a variable which i call demo car in this one and then off of that you're gonna you're gonna pull out and say switch on variant by name so that's gonna give you this box and then you need to put your your variant set name so you know body and wheels were my two and then underneath the variant set you have all your different variants that live inside of that variance that's kind of like a family right they live all inside of that and then you just take your mouse your mouse your mouse clicks on on click you know you click click uh you know on clicked drag that out and have that be what fires off this switch so this this execute is what's going to fire off that that switch so that's it yeah that makes sense oh don't stop sharing bad um cool so what else can you do with this um before we get into that daryl do you mind there's been a couple questions is this a good time to to ask yeah absolutely jump into those um there's there was a question a while back about um you know in particular or sir vox a lot asked if you can modify properties on uh blueprints that have blueprint read-only variables in other words i think the question more is like you know can you access things like skylight transmission or direct directional light soft angles you know i guess yeah in other words yeah yep could you get into some of that yeah you can and so i've got this other scene that's got this this will kind of fast forward a little bit so this one's not ray tracing uh it's using which i'm pretty happy with the way it came out so this this is um this is this was a file that we put together for the collab viewer um and because this one had to run in vr it needed to be super super fast so the thing that's kind of cool about this is i'm using sk you know screen space reflections but i've got really strategically placed like if you look at all of my reflection captures the way i like place these guys if you make a reflection capture and you try to get you know these these cube reflection captures that line up with the large panels of the car right on the edge so you can kind of see where i have that positioned you know and then inside of all the little nooks and crannies i've also got spherical ones so i'm using a variety of these reflection captures strategically placed you know like that one's only going to be to handle the reflection on the bottom side of of that diffuser same thing on the front here so you'll see that i'll have several of these you know in the front and i'm inserting them into each little each little crack right to get to get these reflections to do what i want and the beautiful thing about this is if you've ever worked with screen space reflections you know they they get really gnarly when they start to smear you know the off-screen effect right watch watch the transition like here's here's a real key marker look at this dark spot right there reflecting in the car watch the transition that's now using the reflection capture because it's off screen right you can barely see the the shift between the screen space reflection and the and the reflection captures if you're really really precise in the way you place them i mean so it feels like it's ray trace like look at the spot right that's screen space reflection and then if if now it's now it's not wow that's something because you really can't even have screen space you can if you do it like this that's the thing that's a good cool hack it won't it won't smear there's no smearing often times uh i'll oh i've set up even arc the scenes where i've spent a lot of time setting up the reflection captures and i've turned off screen space because the artifacts of screen space ended up being so distracting and your eye was brought more to the screen space or that transition like you were talking about that spinner so if i just got rid of it no one noticed that the reflections didn't perfectly line up and um you know i spent too many hours trying to get the screen space in the they do a really good job on the ground and you know the environment what they what they're not in you know like even these little areas in the car but if we didn't have the screen space reflections like this right here that wouldn't show up like that that reflection that self-reflection yeah that's kind of self-reflection and those those will smear a little bit but it's not it's not bad so um and then on this one i also have ssgi turned on which is you know the screen space gi i have turned on when i'm in desktop mode but when i go to so if we hit play on this guy you'll see that i have um it's it's using a play you can do it how many copies of unreal are you running at one time that's a lot i have a titan so it's okay all right so in desktop mode i'm in my i'm in my fly mode it's basically what we just saw but when i jump over to vr mode now i don't have my vr headset plugged in so if i just uh eject out of this guy and look at this you can see the trees are turned off i've simplified some of the lights like i've dumped it down a little bit and i've actually changed the tone mapping also because the vive is a lot it's a lot um more contrasty than like a normal monitor so i'm actually tone mapping it a little bit differently also and what's happening is i'm actually using the variant manager to help trigger that change oh that's awesome so let me let me show you what's going on with that so um if we if we look at what's going on where is this it's probably called gto yeah prop probably right [Music] oh that's that's that one where did that oh no no i need to find the variant variant all the blueprints where is it very their way to search for various manager i bet there is good filter for it there it is all right so i've got these colors and then you can see here here's my switch so my ui switch is tied into that icon right but and when i was testing it you can see that i my thumbnail that i saved was like i turned all the saturation off so what what i'm doing is i'm basically i'm switching between two different post process volumes so that's just an easy way of setting a ton of stuff right like with a post process volume you can you can change a million different things to optimize vr and i'm turning off you know i'm turning off off the properties of the sunlight and i'm changing some of these components on it which is exactly what someone was asking so i'm basically changing the shadow components i'm giving it um better shadows when it's when it's not in vr mode and i'm dumming the shadows down when it is in dr mode yeah so basically the answer to the question is you just have to expose the attribute into the variant manager and then you can drive whatever you want yeah exactly so here you can see i'm doing four cascade shadows when i'm in desktop when i'm in vr i'm doing two cascade shadows and then i'm turning off the trees and i'm doing some other stuff on the spotlights like i'm turning off the sun just expose the attributes and drive whatever you want there's another question about uh d are you aware of uh limits to the number of uh variants that you can drive or attributes uh in the variant manager not that i no um but i'm sure there i'm sure if you try hard enough you can find you can find where it breaks right probably like 256 128 you know the 512 four four yes you know something like that um there's another couple questions here that i wanted to make sure we got to uh rockdale68 asked is the variant manager also working with soft references um in order to load meshes uh that if needed and not keeping them all in memory i think everything's in memory it's a what's it everything that's in your level all the variant manager is doing is is managing what's in your level but you can use it to change levels right so you could you could use the variant manager to switch levels you can oh well you sub levels uh so you can turn on sub levels is what you're saying so the visibility potentially stream stuff out okay cool and um t lewis rs asks are there any specific performance differences using the variant manager compared to custom blueprint systems for swapping actors materials uh and the such not for not not sure i think if you're doing level swapping that's going to be how long does it take to to stream the level and or if you have it pre preset you know recached um it's it's it's yeah i don't know i don't know if what custom blueprint would be faster or slower my gut would be that it's probably faster just because it's it's kind of built in i mean yeah you know yeah i mean this kind of ties into the next question which is can you drive the variant manager from sequencer um which i imagine you know sequencers doing very similar things in many ways where it's you know pulling things in and out of scenes and driving their memory management do you know if you can drive very much so i asked hamas about it and he's then i i tried when it first came out to do it i couldn't figure it out i asked tomas who who's the product manager for it he said yeah it can do it he was going to show me them i never circled back because i just did it manually but in theory yes it can and that was early early early when i tried it may there's been so much work done to sequencer over the last few releases that it might just be like drag it in and you know click the plus sign next to it and it works i don't know here i mean we can let's see if they made it really super super super simple i don't know um i haven't played enough to say but we can certainly create a to a level one maybe uh yeah darn what do you think undo say of worked oh you still got a level one there looks like just got rid of the all right yeah i don't know i don't know how to do it if you go to the track the green button with the s with the uh bearing manager selected uh link and go to the top actor the sequencer and see if you can even there search for variant manager uh nothing comes up it's looking for actors yeah he said he could do it i'm not sure well you know what i do i'm kind of curious if you can uh can you drive parameter collections with sequencer with the variant manager i mean that could be one way is to drive the parameter collections with sequencer and i haven't tried that i normally only use those to do like wedge tests if not i imagine that it's probably on a road neck because it just makes sense that you'd be able to drive the variant manager with sequencer that just seemed like uh you know peanut butter and chocolate yeah they should they should uh they should be playing nice together yeah yeah so that's basically basically it you know i think hopefully that gives you guys a general understanding of what the tool does um and you can i'm sure find interesting use cases for it on your own your own types of projects so really quickly we talked about um driving some of your architectural scenes and your configurator for automotive scenes i'm sure that from a design general perspective and and even doing product stuff you can apply the same use cases very easily in swapping out the visibility of different design data or materials and so forth across the board you were telling me that you're working on some content now with some partners of which we will not speak uh that is pretty intense and heavy right so you can it's absolutely a production tool and you can use it with client data pretty intensely and quite heavily and and it is not just a demo tool by any means i mean you guys are working with some customers and clients with regard to helping them use it for pretty serious configurators is that appropriate to say yeah and stuff that's being driven by like plm you know so like database database like sort of that python stuff that i showed you but imagine that you know something that automates a whole lineup of cars coming in and you know auto populating itself like pretty pretty interesting stuff for sure it's uh it's it's a great it's a great tool for um for a variety of tasks for sure and it gets better every release you know like a lot of that a lot of those uh the dependencies that were added really go a long way specifically you know like for uh for helping with uh oh i'm in four to five in this version actually yeah let's jump over to four two six i can also imagine that if you are you know even in a game play scenario or you you've got a character lineup and the character has a whole bunch of different clothing outfits to swap out clothes to show all the variations of a character's you know outfit or whatever if you're doing uh some kind of you know rpg that has a character modifier you know whatever uh that uh that you have to show all the variations of weapons and clothes and stuff like that there's just tons of different things that you could do in that capacity in some kind of a light closet where you're showing your your character variations yeah absolutely so i'm in i'm i'm back into 426 and i clicked add add to sequence but i don't i don't see i think we'll have to ask tomas how to do it i'm going to have to circle back on that now i'm curious yeah we could probably figure it out in in some time here but uh i also want to make sure we observe some time to see if uh what kind of stuff tom's got cooking over there on the game outside see it tom what do you got oh he he's muted sadly he's having audio difficulties snarky comments i'm not going to say it again say it again no i shouldn't have said it the first times uh yes that's uh that's that's so cool you know the variant manager like in in those watching daryl hasn't even gotten into everything like you can like he got a little bit into like python feeding it data uh but some of the new additions i i don't know if it's 425 or 426 but now like in here you can set you can set thumbnails in the user interface but now you can even set thumbnails using blueprint so you can set up cameras in your scene and it'll automatically capture the thumbnails and then you can build a user interface that's data driven and builds itself based on the variations that are there and can even pull those thumbnails out back into umg so the barium manager is one of those tools that i think kind of started off as oh we just need to solve a bit of a problem uh but then we started kind of thinking about how we could make it into what it really could be so like like you showed with even the um the dependencies it's things like that that mean that you don't have to make your own tool like it really if you're switching things around in whatever you're doing variant manager is a really good option you know you don't have to use blueprints you don't have to you know it's very obvious and straightforward for non-technical people if you're a lighting artist whatever there's a whole bunch of options there and um and i think i think it's still is it beta experimental what's the status of it you know i'm not sure what its status is it's it's pretty rock solid and it's worth mentioning that there is a there is a product the product configurator template that's probably under the mfg tab when you start up unreal there's a product configurator template that is based on the variant manager so it's it's you know like it builds a ui for you automatically right out of the box and it's sweet so that's worth digging into to see how they put that template together because the foundation of it is the variant manager oh awesome that's fantastic i'm looking at the plug-in right now and it says it's beta so it's it's apparently not fully done so we have more stuff we're going to add to it put more in i know and you know what's wild it's like i'm i used it and learned it in like 4 25 or 24 and so you're already showing me stuff that i didn't know it could do uh and if i knew it could do those things i think i would have had an easy so when we met earlier this week uh we were talking about all of this stuff and we started talking about you know not just for enterprise people but a lot of these tools start to cross crossover and what would it look like for games and uh so i started to explore i looked out there for what people are doing and started to kind of play with an emotion uh the results are a mixed bag so let me share my screen here i'm gonna take your screen away buddy by the way i just i just went back and you you were completely right i just didn't have the uh level variance set in there i just went back to the original stuff and dragged it on and it worked follow your own advice and yeah exactly the first thing i told you guys to do make sure you add your level variant set in and now you see what happens if you don't you don't yes exactly you get on live streams and you keep going fail and fail often you'll learn from it that's why we do the do these live uh it's so instructional to see how we you know solve these problems and that we too have problems and forget to click the button so if you're just learning people have been doing this for a decade or still like what's that really obvious thing that i forgot to do you know what the best thing to do is when you when you googled how to do something and you find one of your old tutorials that you did about how to do something i do that i do that sometimes and i'm like oh i made a video recognize this website template seven years ago yeah that's that's always when there were more brain cells always a fun one and then you're like i used to know that cool neat i know other stuff so so yeah so i uh i test myself i kind of gave myself an academic uh an academic uh problem to solve here and that was really like what what can you do with the varia manager for game play uh and i looked at it in two ways both like level design mostly lighting and stuff but uh also in game play like what can it trigger what it can't what you might want to do and what you might not and i said it's kind of a mixed bag like right now it's rediscovered doesn't work with everything like i can't trigger a sequence or sequence but i can set exposed variables on blueprints and i can turn lights on and off so what i discovered was it's okay depending on what you're doing so this is my little scene that i made and i made i just made like a very basic i was trying to make a rock paper scissors game but my enemy right here can't actually kill you right now um he was gonna shoot acid in your face if you got a chance but you know didn't quite have time to get the acid effects going um so this level by the way is just all content from the infinity blades assets that are available and then i've gone and i turned on distance fields on them and so all the lighting in this scene is fully dynamic i'm really enjoying using distance fields for setting up lighting because you get this really high quality soft kind of lighting effects and you don't have to bake anything and as you move things around you get these nice i like it ray tracy kind of looks um and it's really performant so it's so fortnite really really good what's that so fortnitey yeah fortnite this is then it's exactly right this is what fortnite uses well on higher settings or on playstations etc not not the streamers the streamers turn off all of this amazing technology and you get to see the amazing flat blue world before uh but yeah this is one of the the techniques that we're using to to allow fortnite to have such good indirect lighting because as you can see as i you know delete and move these walls around all the lighting updates and so that was important because i was working on kind of changing the lighting out using the variant manager so i wanted to let's start with that let me take a look at lighting tests and i think this is just kind of the most obvious boringly obvious use so i've just been playing around with different variations you know like i'm a level artist and i know i've got to go show this uh to uh you know the team for review and i want to give them some options and i could previously set up lighting levels or there's a bunch of different things i could do with streaming levels and those those are good but they they require a bit of technical knowledge like i kind of have to know about streaming levels and where all these panels are and so variant manager i think is is a really good option here so what i've done is really just set up a bunch of different lighting setups so you know i wanted to see what if the lava was red uh what if it was kind of this other lava and it flowed to the right instead and so i was just able to really quickly go around and look at different lava options and then i wanted different lighting options as well so i've got my lighting here and i'm controlling it tiny so i'm controlling you know the the directional light the skylight and the exponential height fog in here um and i can change these and since i've separated these really cool is i can you know look at what's what about the red lighting with the thick fog what about that that oh yeah well that looks good like that that needs more thought um so you know in the meeting if i had more of these we could have a bunch of variations i could have different lighting sconces and different you know i could very easily as you saw in here i'm even changing the materials out so i could very easily have another set in here and i could go and replace maybe all these floor tiles and say oh we've i got these other ones from queso what do you think of these um and they all just live in the level and we can switch between them really easily and of course again you could do this at run time if you needed to change the state of all your lighting you know something dramatic happens or you leave the room and come back and now the lava's flowing a lot and the lights are really on you could go and write a big blueprint thing with a bunch of actors and toggling all of their uh their uh their properties but again you'd have to know about blueprints so i found that this was like uh this is really a really cool way of setting this up and and even just leaving these options for later because now at any point three weeks later i could be like god i got that really cool thick fog that i that i set up oh there it is okay cool and what's interesting is once you do that and you hit save that's the state of the map now so if i reopen this map or i open it during game play we're set to go that's that's it and you know if that were like the art decision you could just go and delete that level variant and no one would ever change them again i would be locked in because that was something else i wanted to know it was like i'm using this every time i open the level am i gonna have to like trigger this and like do blueprints because really i wanted to know if i'm a level artist or i'm you know a designer and i've just started an unreal and i want to be able to do this sort of thing and i'm really good at lighting and i'm using the props and stuff but man blueprints can really start to get a little tricky even just like hiding and turning things off you have to go like find the properties and know that the light has a light component and that's where the intensity is and uh you know it's it for me it seems easy but i think for a lot of people it's really intimidating to to bust into programming so this is this is a really really cool way of doing that and just like daryl showed it's super easy to set up so you know i built a level variant let's say i wanted to you know let's let's set the the fog down a bit and uh i kind of like that lighting but i want to call out um you know this doorway here so that the player knows that there's something there so i'll just like darryl said i'm going to make a new variant set i'm going to rename it and be like you know door highlights [Music] someone i want to see some options of what's going to really bring the the eyeball there so i'm going to add a variant as we will and let's go ahead and drop in some lights oh here's my place actors oh let's just shall we a pretty little point light we live right here and we're going to go ahead and this one i want to let's if that brings the player's eye to where we want so i'm going to name this let's go ahead and name this one dto yes don't start let's go ahead and add that actor uh and i've been playing around there's a couple you could do that you can also i found you can just like drag an actor and it brings that right in there oops i grabbed the wrong one that's network player start point light yellow one point light i want you to be moved and i'm obviously gonna want like the intensity and color [Music] oop now i've got my pointless play with and of course i could also hit this little record button which is also really handy so i will duplicate and now let's see what uh you know golden looks like [Music] just like the point line and i've got record on and here i'm gonna go ahead and make that really really reddish and oh i'm gonna crash unreal engine is what i'm gonna do oh boy that's that's pretty neat you make fun of my name but i didn't make it that's true you did not make it crash and uh apparently but i i didn't make zoom crash so i don't know it maybe that's worse so as you can see though where the state that i saved the level in because luckily i just hit saved is is exactly where it was so uh you know same the same stuff as daryl was doing it's really just a really cool way of setting up these variations like even now i'm like it's it's kind of hard to see when i press play i'm going to back that back that off a bit i just need to find it in my prototype folder bring in my lighting test and then i'll save my map and now i'm i've got much easier lighting all right so let me show you what's going on in this level otherwise for game play this was this was pretty interesting but this is my game play that i set up here and uh you know i wanted to do a bunch of things so let me i might as well play here and show you what's going on like i said it was going to be a basic rock paper scissors but currently my scissors here aren't doing anything um and so the idea was that you know you had like a one of those zelda levels you have to do things in the right order so if you walk over to this first uh switch the wall drops and presumably acid spidy mcgee over here would send you to your doom so let's pretend like that's the wrong thing to do and i just died from the imaginary spit so then if i come over to the second one i can see this one makes a platform move and then the third one makes the bomb explode nice and so obviously in a in in the the actual design the bomb was sitting on the platform uh and he was spitting at me but you know time and technical issues abounded like the level variant manager crashing when i change light properties but here we are so in a you know i try to punch it to experimental it's it's in beta please send bug reports hey and that's actually i'm i'm kind of joking but i'm not you know if you're getting crashes be sure to send that that stuff because we actually record all that um it's kind of weird when i like like call up engine qa on slack and i'm like i just had a crash and they like immediately pull up my law like that that dump thing that i sent um because they just type in you know tom.chan and then my email address and they see my stuff that i'm sending back to them so it's it's really helpful for us so anyway regression let us know we're recording those and we're trying to fix those and if you can like replicate a bug please hit that bug um those get really high priority for so anyway uh please use the beta stuff and uh help us make it not bad so yeah uh so you know i have a bunch of stuff in here that i wanted to see if i could trigger control and see just kind of where the limit for it was pretty interesting so first limit i found was there was really not a whole lot i could do with the sequence um i can do some things but i can't there's no way for at runtime that i can see daryl might be able to correct me to like actually call a function at runtime so i can change properties um and if those properties happen to do things when they change then it seems to happen but i couldn't seem to trigger a thing so i couldn't call like play or any of the functions on the the men or not oh i called it a matinee sequence duck sequencer oh old man just showed up there old man um so that ah bummer so i wanted to try something else so i've got this platform here and this platform is a blueprint as a platform will be and it's actually really really simple so the way i built it was uh you know there's obviously a platform and then in your level you'll see that i've got these left right and start little diamonds these are really cool if you don't know about these and you're building blueprints these are really cool these are just um start left and right which are vectors uh and then if you make them instance editable you can turn on this show 3d widget and that'll give you this 3d widget right in the scene that you can go and adjust look you'll see my vector there updating as i move it so it gives you like an inseam little widget to build your blueprints with so basically just each frame on tick oh you put something on tick just wait just oh just you wait it's gonna get worse it's not getting better this is a prototype okay stream over stream over tom put stuff on tick why didn't you put it on a timeline or a delay set to 0.001 dear god uh there's whole conversations did they call you a technical artist [Laughter] isn't this the first thing you tell everyone well and then i tell them but if it needs to happen every single frame tick might be the place for you and moving something smoothly where's michael aller where's michael allen i know i can't wait to see my emails after this stream um so yeah so on tick we're just moving it and if it gets past our start or our right it goes left and if it gets past left it starts going right so it just bounces back and forth forever but it only does that if this boolean is active and so what are what my lava level states is doing is you can see that my platform is just active or not active and then in game play just wait i told you it's going to get worse in the level blueprint that's right he's using the level blueprint too doing the same thing as daryl was doing just getting and you know the level blueprint i can cheat and get a direct reference to that that level actor because i remember to drag my my uh level variance yes you were smart i know but i also did this before i was live so i can't really explain that i started with that it was the first thing i talked about because it's so important uh so anyway so same thing you know we've got our let me bring up the the variant here so same thing we've got our uh platform moving not moving and what what i did was i wanted to you know have a toggle and so as you you know stand on the platform it moves and when you get off the platform it stops and it worked great and you know obviously this is a very super simple example oops that's the wrong one but again this is just like just one platform if i wanted to turn a light on on it if i wanted to control its speed even like uh you know i could have different variations of controlling its speed uh using this and so anytime that it's like oh i've got this like i want these these variations it might be might be useful uh in this case i'm kind of like i still had to touch blueprints uh but uh you know if you're just changing one property maybe it's not all that interesting uh but let's say you had six platforms and two lights and a swinging thing that happens when you hit that trigger and then you need them all to stop and then come back on this might be a really good solution so that you don't have to build a whole spaghetti thing you can just very easily kind of trigger things then uh let's see where what's the other one i got in here was i also wanted to see again how far it would go i wanted to set up this bomb explosion to happen through here um and unfortunately again i discovered that i could not make this explosion happen without some sort of weird blueprint trickery which at that point just like might as well make it happen um so really what i've figured out is you know during game time design time it's really really useful actually um especially if you're working with dynamic lighting and it's dynamic lighting is something that obviously is going to get much better in the future with ray tracing and ue5 etc uh you know students that are looking to like do next-gen sort of stuff real-time lighting or like this hybrid lighting that daryl was showing i think are really going to be kind of the lighting paths moving forward um and even before that you know before you bake your lighting to be able to have variations to show uh show your team and get get buy-in or even just i like having the the variations of all the little setups in there it's really cool to be able to like i did like oh i want i want that fog back ooh now i want that fog gone uh and i didn't have to go poking around to a bunch of things that's even something that that uh might even be useful in a project kind of like daryl's uh post-process switches is oftentimes when you're working on a level you want all that stuff to kind of go away all the fog and whatever so having a setting where you can kind of dial that back get to work and bring it back without having to go poke or hide a bunch of actors actually kind of kind of a cool workflow and you know obviously the tool wasn't like made for any of this uh it was made you know in the enterprise department to do enterprise stuff but because it's all the same tool set i really enjoy like taking tools that that weren't designed for what they were designed for and doing things with them but it's pretty darn rare that i get to take something designed for non-games and use try and shoehorn it into the games thing because my entire career basically has been taking game technology and applying engineering stuff and digging it into weird engineering things um so this was a really interesting challenge to go the other way and take something that was designed uh for a very different kind of mindset and see if it if it could help out then i think i think with maybe some some good guidance you know if some folks in the community want to drop some feedback about their experience trying to use it like that it i think it could probably uh probably get there i think the one thing it really needs at runtime is the ability to call a function or have an event uh that would be pretty cool but that's not really what it's designed for so it was it was it was a fun experiment to see how far i could take a tool and bend it to my will [Laughter] that's pretty cool really cool stuff thanks well you know moving into 2-6 it seems like it's getting more functionality and and you know i think that uh i don't know that i saw in the road map when it's going to come out of beta but uh knowing the developers and the programmers of tools like the variant manager i presume that it's going to get plenty more functionality added to it do you have any insight into that darrell hope you're on mute buddy still unmute yeah no i had to you were buried five five windows down 426 had had some had some new features added to it i don't know when it comes out of beta um but you know one thing one thing that you can look at is if you if you right click on top of an actor that's in a variant set you can add a function caller what wait a minute yeah no so add a function color to execute blueprint code or trigger events when the variant is switched on so that's that's how you do it no oh there it is what you were dreaming of oh it was a right click away right click away well and that's that's yeah this this you know like i said i learned this thing in like 424 and i kind of wish i hadn't yeah they added that in four to five that was a 55 thing my brain has locked into what it can do then yes so it's it's it the the amount of improvement so will you show then i was like wow this is great i wish you could do this this and so people are asking you to to actually show that tom will you actually go in your scene and show that right click so what i did so this is a a platform here this is that platform will you screen share it i'll do you're not screen sharing yeah oh you mean show them show they say if you're not screen sharing it didn't happen again all right so here's uh here's this uh platform blueprint and go ahead and remove functioncall moving i can select the platform here and right click and add a function caller there are my functions oh creep create a new function directly from here oh oh my gosh do i dare dare dare oh my gosh look at that it's got its own little uh level variant sets director just like sequencer does ah it's better than i thought so you you could literally oh man your inputs and outputs write little functions on any actor you yes we can here we go oh well shoot forget everything i just said yeah he was he was sitting there trashing the variant manager for gameplay well i mean all it needs is is a function caller so i want to see here if i go and add a function here let's go ahead and add a function inside my function i could do like you know yeah that reminder doesn't show a function oh they're oh my gosh there it is ah and so i can call my function so it's very much like sequencers uh event system uh it call it's got like its own little blueprint things have set up that's yeah absolutely and then and then so so this is actually interesting because when it does this this is running in the variant manager so i could have whatever code i wanted in here and then ah that's even cooler than i thought oh well shoot that's really wild plus one yes yeah that and that wins the the triggering everything that's uh that makes it just such a really cool uh a cool way of interacting like see now i want to know can i make a variance set sequencer in here oh man great new function oh yes level sequence at night oh my gosh oh look at that oh there it is holy guacamole oh man stop it's all there it's it it happened it's there i i could have not used the level blueprint even yes oh no i still need a hit for it well you needed the reference yes that's super powerful that is really really cool and you're in two five here you're in two five right so i am in two people yeah it's two five two five wow that is super cool oh man and then your sequencer can have events in it too so you can build a level sequence and calling it from the level from the variant yes wow that's so you can do a lot of stuff in here from a gameplay perspective yeah you could almost set this up almost as like a state manager but yeah almost it doesn't have all of the enter and exit state stuff already but um yeah that's that that really opens it up quite a bit here uh so yeah if i wanted to trigger five or six different things in the level i would definitely consider doing it this way then building a level blueprint or like um you know some complicated scene manager full of spaghetti that's that's really cool yeah absolutely because you have the clarity of being able to see everything and uh get all your attributes up there and and you don't have to manage them in and arrays of all kinds of crazy storing everything that's it's all right there yeah and if you're a visual person who's kind of used to doing things in this kind of visual way that it just really really makes sense and i love how you can just kind of keep building on it you can use it in such a simple way like i'm changing the color of the car but then once you start adding in like the data driven stuff and the dependencies and being able to you know it can call it's got its own blueprint stack built in basically that's that's enormously powerful so cool wow uh super cool well um we are approaching that magical uh hour where we are uh ending the stream soon uh are there any last questions i saw one pop through mark did you see anything that uh that we wanted to grab off the comments just looking back through looking for the question marks i saw one come in that said are you able to control um [Music] does anyone have any questions they want to pop in here before we wrap up the stream which we're going to do properly in the next a minute or two while you're all thinking of them i wanted to pop in last oh there we go week we talked about the potential of moving the stream to tuesdays we've been doing the stream on fridays but we're we've been talking to the community team who does the inside unreal stream on thursdays and so we're talking about moving this educator stream to fridays i'm sorry to tuesdays we've been doing it on fridays we're talking about moving into tuesday so we give a little bit more breathing room to the two streams that we do on unreal engine twitch channel so um please give us your feedback i'm gonna put up on the screen while i'm talking a qr code so you can take your phone and take a photograph of this qr code and this is a little survey that we've got just to give us a little feedback on the stream in general and it doesn't specifically have a question about tuesdays but if you in the additional comments at the bottom of this survey if you can just give us a little bit of additional feedback this is generally a survey about whether you're enjoying these streams how you enjoyed this particular stream uh and we really appreciate your feedback it lets uh you know our epic overlords uh know that uh you are enjoying the work that we're doing with these streams in general and that you're you know learning some things and enjoying the subjects that we choose for them so please you know take your phone go to the camera mode if you take a quick picture you can go to the web which is a question pro survey it's only like five questions so it shouldn't be too much of a you know a big deal to answer it on your phone and i'll leave it up for another 30 seconds or so and then we will jump back there was a question can we create a material change animate material change animation with level variant manager yes you can create material change animations right in other words you can get to the material properties so you can pull a material and get to some of the vector parameters and get to the scalar parameters if you create a material instance is that the correct assumption gentlemen uh yeah yeah now you can drop yes right so you it but the the appropriate workflow would be to take a material and create a material instance uh with vector and scalar parameters and uh and texture parameters and that sort of thing and then you would get access to those things yeah or or you can you can switch out materials too swap out we were oops i'm not a mute no no okay i thought i was on you yeah though you can um like in on the car we were just changing uh the assignment at the static mesh editor level too so you can you could do it that way also perfect and then there was a question uh does it work with particle effects attributes i would imagine that with niagara you can go in and change the parameters of niagara in a similar way um i haven't tried i mean niagara has definitely got the dynamic properties it goes into a material so you could probably play with that dynamic properties that comes into the material i haven't tried to do anything with niagara with it i just started playing with niagara recently tom was helping me with some niagara stuff i think you did too lewis actually yeah but i imagine that if you get uh the the properties from niagara you can drop them in like any other act or property well i think it's like pandora's box opens up once you do that function call right so yes yeah yeah absolutely i think so yeah i was looking like you can the properties that are exposed i have a strong feeling that a lot of this is tied into sequencer um a lot of the the properties that i see are exposed are very much the ones that are exposed in sequencer so kind of the ones that you'll find in the details panel that don't significantly change the state those can be those can be changed but yeah i mean with the blueprint thing anything that's exposed exposed to blueprints in that class um it could be so yeah you know if if you can get into the material instance and do stuff in blueprint you can totally do that through here but you'll still need to blueprint it yes guys i gotta do it just totally from this interface i've got a four o'clock meeting with uh with a client so i gotta run all right so much time thank you for having me love to do it again let me know if uh if i can help you all out and thanks everybody taking time to spend with us today thank you very much daryl it's been a pleasure having you and uh and look forward to seeing your next webinar absolutely yes hololens choose the next one i'm doing um cool they're so cool yeah or maybe no actually it might be data it might be data prep i think january i'm doing data prep and hololens 2 is february those are the next two that i'm doing great there's one more question uh but uh totally i gotta run if you bounce daryl um just a question about uh maybe tom you can address this one about uh skeletal mesh properties uh and modular characters i would imagine that we can do swaps on you know for instance if you're setting up a character and the character blueprint we can swap uh you know upper and lower body type things i imagine that we can do things like reaching into the character blueprints and and do manipulations of character blueprints um what's your thoughts about that just from you're working with the variant manager so you know any blueprint if you've got properties exposed not typically i'll available you know a construction script or whatever and i'll set a variable of the body match make sure it's valid and then i'll set it so i think i think i just discovered the function stuff uh i think that if you if you change any of those properties it reruns the construction script as well so uh you can kind of uh rerun stuff and change properties that way you can also you know call a function on it if you wanted to force the changes or you had a a building function that would go and assign everything and reassign the bones and gotcha i don't i don't see a reason why it wouldn't work it seems like it it should that that ability to open up a function window really really if you could do it in blueprints basically you can do it here now which is really cool awesome well perfect thank you gentlemen and again thank you to daryl obert for joining us on today's stream and thank you tom for all the great prep and thank you mark for uh joining us on the stream and helping to answer questions and and moderate in the chat and thank you all for joining us today on our friday educator stream uh remember that next friday we will not have a stream here in north america we have a holiday coming up next week and so yes i know mark you i hope you have to work now i hope you don't have to i hope you have a a nice day off to next friday but of course are going to be enjoying a holiday weekend here in north america well some of us will anyway so please stay safe and um hopefully you will join us the following friday uh and we will let you know and please fill out that survey if you took a snapshot with your phone and let us know how you're enjoying these streams and we will catch you next time in the meantime adios and thank you very much bye bye stay safe everyone
Info
Channel: Unreal Engine
Views: 6,279
Rating: 4.8809524 out of 5
Keywords: Unreal Engine, Epic Games, UE4, Unreal, Game Engine, Game Dev, Game Development
Id: cULucr6WLJw
Channel Id: undefined
Length: 118min 13sec (7093 seconds)
Published: Tue Nov 24 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.