Principles of Visual Effects with VFX Graph: Episode 1 | Unity Let’s Dev

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hey everyone welcome to our first let's dab on twitch we've been teasing this for a while so i'm excited that we're finally doing it i'm hassan community manager at unity you may have seen me on a bunch of other streams where i've reviewed your youtube play games or i've done developer interviews today i have an amazing co-host it's kodrin technical artist on our rnd team kojin tell us a bit about yourself so hey everyone this is actually my first live stream ever so i'm happy to be here and happy to be part of unity as well so i'm a software there but most software dev but mostly a tech artist uh working on a team that's called vertical so anything outside the gaming but uh i been heavily interacting with vfx graph and today i'm really looking forward to sharing a bit of that knowledge with you guys so uh yeah hopefully that's uh that's a good intro yeah i'm gonna be learning along with the audience like vfx graph is something i'm extremely interested in personally i've been using the uh you know the built-in particle system uh i haven't had the chance to explore vfx graph as much but i've learned a bit from cauldron and we're going to learn a bit more today so yeah we'll be talking about the principles of visual effects we'll be using the vfx graph to explore those principles today and uh to get like to get started with the show we're going to introduce concept and the graph by creating a basic particle graph we're then going to move on and explore concepts such as sine waves noise and randomness and using texture as data and we'll do that by building and dissecting some exciting effects like potions uh we're gonna light things on fire we're gonna have autumn falling leave effect and then we're also gonna be taking suggestions from you the twitch chat so tell us what kind of effects you wanna see and we'll make them for you and we're gonna be you know we're gonna be asking you to ask for like what kind of variations to the potions you want what kind of um variations to the falling leaves effect you're going to want so we'll be asking you that during the stream so uh yeah and during the stream today we're going to be using a lot of assets from the asset store as a backdrop uh for those visual effects right and currently uh we have the asset store sale discover 2021 ongoing going on um and that's uh currently live and you can see here we have the uh it's currency live we have all of the newest and top assets in 21 and 2021 that are 50 off right so there's all kinds of assets here you know you have um all kinds of shaders you have different tools uh we're going to be using a bunch of these uh in the industry and today you know you have ethereal urp coding can you tell them about this volumetric lighting uh tool why that might be useful for them so yeah as you if you've probably worked in erp you've noticed that uh the fog tools the built-in fog that we we have is currently you know not as developed as the hdrp pipeline so there's a lot of cool packages on the access store that kind of solve that problem if you're looking for like volumetric lighting needs in your projects um and yeah like we just came across like some of these assets like ethereum europe urp really looks promising in what it delivers especially like as you know a sign is scrubbing through it is like pretty impressed uh you know uh really up to the quality also almost of almost like hdrp um but yeah feel free to check it out look at this beautiful stuff yeah yeah oh my god volumetric lighting is always nice man yeah it just takes your project to the next level honestly it's unreal so yeah scroll feel free to scroll through this page you've got a bunch of like asks that you can throw into your into your project bash things together make them your own we're doing that today uh what are we using today uh chodron i believe we're gonna be using um this quirky series at some point these little oh yeah animals we got like a bunch of packages lined up so uh really happy to be using a lot of the community created content uh we got like apocalyptic worlds we got hyper casual action props pack uh we have the dreamscape nature meadows that's to be in there as well that's a that's a popular one yeah it's used quite a lot as well and we got i think you mentioned quirky series already but mafus potions as well and uh yeah that's like at the heart of one of the core examples we're gonna be featuring yeah amazing okay great so yeah check check that out check out the sales that's going on in the asset store right now uh cojones how about you to uh intro the vfx series for us uh so this is gonna be the first of a few episodes right so let us know about that uh yeah totally uh so yeah i'll start so basically this came about when i was uh teaching vfx to uh my internal team the verticals team inside and basically reached out to the twitch hey let's do a vfx graph series where i pretty much talk about like the principles of vfx and the idea behind this uh series is going to be a series divided into three parts i think of it as episodes like one two three this is being the first one and the idea here is to uh basically approach it from a principal's first mindset so i think personally that when unity released its uh its vfx graph as uh part of as a future part of the unity engine uh they kind of released also uh a lot of over convoluted over complicated samples it was kind of hard to really dive into vfx graph um as a beginner or as a person who's been accustomed to using something like particle system you know shuriken um so really the idea here is to empower you the users by really teaching the the principles first as opposed to just teaching uh vfx graph so this is really learn principles through vfx graph not vfx graph and principles that's the gist of it and my approach to this is having three levels of a difficulty so this episode is more to carry towards beginner beginners or people looking to transition uh we're casting as wide of a net as possible sorry in advance if we can go into like really specific details at some points we tried to cover as many bases as possible and the a lot of time we had here so um yeah and yeah uh codran i know when it comes to teaching and learning you believe in the 80 20 rule of vfx that's something you told me about and i just i thought it was fascinating i'd love for you to like you i know you explained the process of learning tools to me as an annoying process and you were you believe in making it more enjoyable and fun if we focus on the right things right so tell me more about the 80 20 rule of vfx yeah so eddie 20 is not just applied to vfx and it is applied for anything it's uh what it stipulates is that in order to learn something you know really to learn it's an approach to learning and it says that really when you're learning a new software or anything twenty percent of what you learn really produces eighty percent of the output uh right now if you're a creator you're probably touching on blender maya you're probably touching on substance texture some says painter sorry uh touching all these different software and you have to like you know move things from uh apply one pipeline to the other and it can be an annoying process so i understand that because i'm a creator myself so what i really want to have at home is that i'm going to be showing you like really simple tools within vfx graph not diving in like into like the nitty gritty like back end of it too much but really just to get you started and have some results straight away and results that you can apply to actual context and gaming and to your own game really because that's what it's all about at the end yeah great yeah uh and you know since the name of the episodes is visual effects the principles of visual effects with vfx graph you know uh we might take it for granted uh about what is visual what is vfx right so let's uh let's go for it how about you explain what what is visual effects what are the effects to the audience so it might sound like very uh straightforward a little but really it's anything that adds life to it it's anything that you see that is dynamic on the screen that sort of has maybe at some times just a slight polish or it could be at the forefront the game itself right it as it can be as expressive as you want it to be and really it's you can think of it as embers on a fire system you can think of it like dust particles you can think about weather systems you can think about like silhouettes of particles emitting from each other uh anything that's fire bombs explosion um all of these are visual effects and there's uh an entire aspect dedicated to it and if you look at games like league of legends for instance right all of that the abilities that's all the effects of it so it's a it's a field in and of itself it's interesting because in a game like league of legends you know the vfx can be really front and center you know all the spells and abilities but like let's say in a game like the last of us or a god of war the vfx are there to kind of build an atmosphere and an environment and to kind of pull you in and make it immersive it's getting more immersive so they can be subtle or they can be very not so subtle right yeah and i think we're going to be doing a little bit of both today we're going to be we're going to do some subtle effects and some not so subtle effects like as we said before we're going to light things on fire um so yeah so i think we should jump in talking about uh the purpose of the first episode the vfx fundamentals and uh we should pull up uh your github repository while uh talking about this so we can explain uh visually what we're what we're gonna be uh showing teaching today basically this is a work in progress right uh right now we have it hosted on github repository our plan for the future is to host it for free on the asset store tied in with unity but um basically this is a lot of the samples without minus the third-party assets to uh that you can take really it's um under i think an mit license use it for whatever you you need to um and these are some of the samples we'll be looking at like um hassan mentioned fundamentals right and really when you're dealing with vfx there's some core things that we can start touching upon one of these things is like sine waves right how to like modulate and pace ourselves how to create like custom curves shaping functions to create interesting movements another one is if you've ever dive into vfx uh noise is a huge component of it it drives pretty much everything right so noise randomness forces i'm going to touch on that another thing is you know sometimes proceduralism is good but we want to add more you know our direction to it and this is where using data it comes in handy one of the quickest ways to use data and vfx graph that i'd like to show you today is actually baking them into textures or point caches and really creating some some of these nice burning effects that you're going to see later on as well as uh these are more advanced effects but these are some things that we're gonna touch upon in uh later episodes but don't don't occupy your mind with it and whatever we're gonna show you today here today it's gonna be a update be updated after the stream so you know feel free to revisit it because this is like i said a work in process progress amazing yeah so we're going to be we may have already posted the link to this repository in the chat in the future as codrin said this is going to be up on the asset store as a vfx essentials pack and as we go through the future episodes we're going to be coming back to this package and updating it with all the vfx uh that we make so it's going to be uh quite the thing to sink your teeth into uh in the future so look forward to that uh next we're going to talk about uh we've already talked about what visual effects are and how they might be used in games so let's look at some actual examples of vfx in games so i'm going to pull up my screen and we're going to look at our first game kodrin i believe you wanted us to look at uh ghosts of tsushima yeah absolutely so really why oh first of all one game of the year uh i don't know if they won the game of the year but i was pre it was pretty close to where it went in game of the year right it was the last of us too but really uh when it came out i think um you know it was it was really popular because you know there's so many stunning visuals that come with it and not just that the lighting the the leaves the uh atmosphere the environments uh all this is just super dynamic and it's one of those games that really pushes vfx to really its limits yeah so we just want to pull up my screen to show uh the ghost of uh tsushima there we go yeah yeah so yeah as you can see on like the screen you know there's this dual happening but also in the background you have like these falling leaves these wrestling leaves these trees and all this stuff all this is vfx driven and uh this is actually a good example that i wanted to take uh you know uh from uh because we're actually gonna be building sort of our weather system or leaf system uh today uh wireless dissecting it and you can actually after the stream just pick it up and like use it straight away uh for your own purposes and you're gonna notice that although it's as elaborate as although it looks elaborate really the the principles behind it is actually just is very simple and uh we're gonna revisit that with noise randomness and forces yeah so as you can see in in this video you have the falling leaves you have leaves on the floor and then you have leaves that are rustling moving uh at the character's feet it looks like there's more than one thing going on are we building something as let's say complex as this today or are we gonna distill it down children uh definitely not as complex as that so we're definitely gonna distill it down because i mean there's so many different systems working here with the character with the wind system as well really we're just gonna take a slice of it and i think that usually helps really understand one aspect of the system and make it more approachable for beginners or people coming from the shuriken particle system great and i believe the next uh reference you wanted us to look at was uh from death stranding so we're going to pull that up now what made you want to look at death stranding today yeah first of all i really love that game uh just because it's so out of there it's so different in a way but the reason why i wanted to take a look at it is first of all this vfx although it can be in the background it can also be embedded in the mechanic itself so if you look at sam the protagonist uh one of his uh his tools right is the uber deck the terrain scanner and what's uh nice about is that everything in that is vfx driven it's it's using what's called point caches or maybe big textures uh to sort of get these points where you should walk where you shouldn't walk where you're going to step on areas of danger or if you're getting like pinged by some scavengers um this is actually something also we're going to be looking at today how to bake some of these point cash to create a burning effect in a way but very great example great and then we were also going to be looking at uh recompile today one of our one of our partners that we often work with uh so let's talk about recompile so filling this up and i believe this recompile might relate a little bit to the potion effects we're going to make uh later today yes yes it will relate in some way uh and the reason why i brought up uh recompile aside from being a gorgeous game i think sound recommended as well um is that really this game has is the is the is the beautiful expression between game mechanics and vfx being tied in together it's not just tied into uh your abilities but also the character how he moves how he jumps how he navigates the environment and it represents a sort of a unified vision of a lot of the techniques that you're going to see over the series not just what we're going to see with sine waves and pickables or just floating things yeah like we've seen like uh in a sound screens right now but also um sign distance fields or vector fields or sort of like these nice bezier curves that allows for this like night lightning effect um this is an example of vfx being front and center as we said before right like this game is like a moving vfx like masterpiece um the next game we're going to look at that i'm going to pull up now is the last campfire which is like the opposite example of this where the vfx are a lot more subtle and uh kind of in the background right so um yeah what made you specifically select the last campfire is a good example for vfx so we're going to pull that up now yeah so last camper fire campfire sorry slowing my words uh i played it uh during winter time and it was uh also sort of this good example like you said that vfx doesn't have to be at the forefront and it can complement any game that you see out there and if you look closely at the video that's being shown right now uh you can see these like dust specs these dust mites some of these light particles shifting as as when you have like a key light on a door and really it could be about that it can be subtle and adds so much life to uh your creation and because it's a stylized game on top of that you can really really push that stylized look even with the vfx that you're putting into it and the weather system we're going to look at today we can even slow it down and make it look like what you're seeing here very subtle very nice and slow not very dynamic um but this is just to say that any game can implement it and any game has a use for it yeah okay okay i i can't really wait anymore kojon i think we need to uh jump right into it and pull up your screen and let's build uh our first let's introduce the visual effects and the visual effects graph by building our first little particle effect right absolutely let's dive into all right so imagining you guys can see my screen right [Music] now yeah yeah so this is the thumbnail that was used to promote this uh the stream but actually although it might look like very uh like there's a lot of things going on it's just this tree it's as bare bones and as simple as as it can get right and really i'm gonna try to like build it as we go but uh you know for now i just wanted you to uh pay attention a bit to the layout here because this is how i work and this is uh kind of speeds up iteration time i have my inspector here inspector is really useful as you're gonna see with uh vfx graph uh opened up the hierarchy window just to select my game object and see my exposed property and my project just to navigate a bit more of my graphs in case i need to like drag some additional stuff here and there all right and of course my game window and my scene window right here uh just so in case i don't need to navigate but anyways let's get down to it so i'm just gonna brush over and give you a quick overview of how to think about it you got four rectangles here right and these are essentially called contexts and within these contexts you get these blocks called operators operators can exist within context or can exist outside of it like this attribute here right and essentially a good way to think about it you have your spawn context it determines how much particles how many particles you want to spawn and how they should spawn you have your initialized context which is sort of like your start function if you've ever played around with scripting and unity it gets called once before the update when it you know after it spawns and this is really to uh set out your initial conditions for your particle how they should spawn then you got your update which is sort of like your void update loop uh and it's how your particles behave at runtime right and here we basically have like just some mild turbulence uh put in here and then you got your output quote-unquote render context so how are going to how are we going to how are our particles going to be displayed on our screen and encoding am i right in saying that the uh entire blocks from the context from spawn to output together is called the system exactly yeah so uh good good on you to notice that uh we're usually in a graph right now and now we you're gonna see that as soon as all these things are connected together you're gonna see like the keyword system here and you are right it is a system and within every graph you can have multiple systems working in tandem with each other is what makes it so versatile so modular and so clean to work and we're going to see more of that later in the potion uh as we're dissecting the potion how we're going to have different systems working together right absolutely in that case it's gonna be like four systems but still still uh grounded so yeah let me just quickly like disable this so we're probably gonna just create it um manually right you're going to notice that you can space press spacebar and just type in whatever context you have then you can just take one end of the note and connect it and you're going to see it's going to automatically autofill for you this case want an initialized particle and then we also want to connect an update particle context and you're going to see now our system is born but our system is not going to render anything unless we actually connect it to something called an output and you get different output contexts if you're familiar with the shading do you have an unlit and lit variation in uh vfx graph but just for the purposes of today we're just going to use an unlit variation of quads uh particle quad there we go yeah at its basis it's this we're not seeing anything yet because we haven't put anything in it just yet so we're recreating what was just on screen earlier right that really cool colorful particle effect yes yeah right there exactly yeah yeah just make sure to zoom in a bit more because i think the chat is having trouble seeing uh some of the moderators so let's like yeah exactly increase the editor size and zoom in a bit for them yeah thanks for mentioning that no it is yeah yeah so let's not worry about how our particles are spawned so how many are going to spawn continuously so for this we're just going to put a constant spawn rate and maybe we can just put it you know 64 particles per second in a way and our capacity here you can see it as our pool our memory allocation pool so for this at any time we won't we don't want our particles to surpass 4096 particles let's just say it's an arbitrary number here we had i think like a hundred thousand we're just putting four thousand uh cool so we have that now we just want to put a random velocity so as soon as our particle will spawn uh we're just gonna set its uh velocity random like we did there uh there's different attributes we're gonna go into that a bit later so if i click on on a context here you're going to notice in the inspector you have all these different attributes and essentially this is how vfx works similar to particle shurikens is that you modify these attributes to modify the output and what you're going to see in the scene editor or the the game view so for now let's just uh you know put the same thing we had here add some randomness um yeah let's make it minus one very uniform minus one to one i'm gonna see it's uh we have these things here uh they don't look like much this is because we have a default texture that it always spawns with i'm just gonna put no texture for now actually no maybe let's put uh our default particles back here right and now they're moving cool but you're going to see not really doing much so we're obviously going to need to orient them towards the camera and for this we're just going to add an orient vice camera plane so now they're always facing it's quads facing the camera right we also want to be looking is this which is called a billboard effect where no matter where you are the face space you exactly yeah you don't want it you want to turn around the effect and then see it down the side so it'll just be a line essentially you want to see the actual texture exactly and this is a good use case actually billboards uh if i just spawn them one shot without a lifetime you could do a billboard for instance and it's actually pretty cool uh use case even for vfx graph so for now let's change a bit of color right let's add something more uh sprucy in a way so we have a bigger idea of uh what's going on let's put something here maybe turn on the alpha clip away and now our particles i don't think they're dying so let's also fix that by setting a lifetime random which each particle is going to have a likelihood of having a lifetime between one and six seconds and we also have the same problem here is that we're gonna need to resize them a bit right so i'm gonna have maybe a set size over life and you can also always use attributes with what's called over life and then you get access to this really nice unique curve here and you can really modify it and suit your needs in whatever sense um and yeah like you're gonna see it's already looking close getting there it's getting to what we had in the beginning right now getting to what we had in the beginning but we don't have the nice interesting movement we had to begin nor do we have the density assigned to it so actually what do you feel is missing what what can we add before we jump into the operators can we compare the two and see how like what we might need to get from this point to that point yeah so this is what we have here yeah and notice that these particles are much more flat shaded we can fix that by doing a bit of output clipping and adjusting the brightness and they're also moving in like a turbulent fashion so we need to add some turbulence to it right and obviously they have a higher count to them so you know what let's do uh so let's increase the count let's do it and i mentioned you add operators outside of the context so we're just going to do that and let's make sure to read the operator names out loud just in case for people who are unable to read the names of the operators let's just make sure to read them out loud for the for the twitch chat absolutely so here we just add like a property a uint which you can convert to a property in this case where you can say uh variable sorry spawn rate that's a good name for it and notice what i just did here i converted one of these uh blocks into a property and we can expose it which means that when we click on particles it's gonna appear here as sort of an authoring property so you can author this on your game object and not have to jump back into the graph itself uh really cool feature about it and let's just up our capacity to 100 000 okay there we go and they seem a bit bigger maybe yeah so we just decrease the size let's decrease the size and we can like also increase the alpha threshold so we clip like the the like nice grayscale values into like uh a more uh wider uh side of like the the color space and how is that clipping working exactly so you see we here we have a texture now this texture is an alpha as an alpha texture and it has like this white dot in the middle and all these gray scale values in between until it fades yeah what alpha clip is doing is that it crushes those faded out values back to the center okay so they're more solid little dots rather than this paint though yeah exactly and so if you notice here here's the result in a way you're making them smaller too yeah and making each of those stand out great yeah and we also want to increase the brightness so we do this by multiplying the color you notice that we have each with each property you can either set multiply or add if you click on the block itself you can choose it here as well or overwrite overwrite a set so i'm going to add the flow property here just to determine our brightness i'm gonna multiply by three so we want it three times as bright you see we're getting there we're getting something here and we can convert that also to property and call it brightness so now we can author it within the game object itself and now super close now already looking so good thanks man very always my best supporter thank you so much number one fan so yeah now we have that and the only thing that's missing is obviously the turbulence we want yeah to move in an interesting way so this is one of the most popular blocks in vfx graph and if there's any operating blocks that you're going to use over and over again as the turbulence force and this is just because it's so versatile and with turbulence we're going to crank up a bit the intensity so it gets affected much more by that force and we're going to talk about these forces much later on and visually represent them in 3d space um and frequency so we want it to be more mellow like more curvier for surfaces you notice if i crank up the frequency it's going to be like very granular but we're just going to get some nice balance here right so that's what we had and there we have it you know slightly different because of the colors but yeah and that's the same effect and look at the other one really what if we turn them both on at the same time oh wow we're gonna have like duplicates yeah there you go there you go we can we can have them work in tandem and this is a beautiful thing as i mentioned these are two separate systems and you can just stack and stack and stack on top of each other right now like the previous particle system where you had to parent parents and make one a child of the other and then align them could you actually shift one off to the side so that we can more like uh show how they're actually two separate systems within the same graph good and that actually also brings up another aspect to it so output render context gets only called once at the very end of the pipeline not every frame so this gives us a lot of leeway into adding offsets for instance so in this case i just want to modify the position so we're going to add a position yeah and you notice we have zero zero here but if we just shift it a bit like this or let's look in our game view a bit and we can actually just shift it side by side there you go and you have two effects side by side within from the same graph from the same group that saves that can say we're going to show you in the next effect how that's going to save us a lot of time people in the chat are noticing my my own little visual effect in my room i had to bring the smoke effects uh on stream today you know and i noticed some people even noticing the model of my uh of my uh 3d printer reality that's right you got like a laboratory there i wish i had also a 3d printer you can come use this one any time it's good what's mine is yours um but yeah okay great so let's jump into the next section where we talk about uh sine waves and modulation absolutely now that we've built our first little graph together let's dissect uh the graphs you've already uh prepared for us awesome so we're going to go quickly into some like theory and review a bit like um like sine waves but let me just uh open my graph here called waveform and this is all included by the way and inside the github repository um this is the setup we have here and i'm going to talk right now about sine waves uh sine waves or cosine waves uh are sort of or any kind of waves in general are sort of your best friend uh when it comes to building a lot of these simple basic effects and you can imagine if you've ever played like a game like hades right you have this pickable object that floats up in the sky like a sword or a potion which we're going to build later on and this is requires sort of like a modulating force behind it because we're not going to hand author on our timeline go up go down go up when i want it to be at least at least somewhat procedural in a way right and i built some effect graphs to showcase uh some of the these things that are available to you in the vfx graph and really all these things you're seeing right now are the same graph just authored in different ways through these parameters you're seeing here but they're all using this make sure to zoom way in closer oh way in wait wait yeah way in yeah and keep it centered thanks for reminding me all the time he's always there that's why uh that's why that's the reason i'm here i'm the zoom guy yeah uh but yeah so you got a sine wave operator bladder you can use outside of the um the update context and this we're just really pushing it into a switch note to just have these different things we can switch between them and just setting the y value here uh of these uh different cubes if you notice with zoom and these are actually just spawn cubes that just follow this sine wave and sound waves are so useful for us because they go into what into shaders what's called shaping functions sometimes you want to move things in a very particular way according to some animation curves ever done animation before your curves are your bread and butter for achieving really nice smooth animations or more interesting effects and this is one of the tools that we actually have in the effects graph so what we're doing here is just we're taking vfx time uh which is a built-in operator that fetches us the total time that we have um going on in seconds i think yeah total time we're also putting a property here to multiply by the sampling speed so we can make it go faster or slower and we're also taking our position and we're adding those together to input into our sine wave so we get a put a input here sine waves have three components to them the frequency uh sorry the two components the frequency and the amplitude frequency can be expressed with this uh parameter here so high frequency is very packed it's gonna be like very jittery if you're gonna imagine a potion floating so it's gonna be like jumping up and down exactly pick me up pick me up please pick me up whereas a very low frequency is very smooth right you get these nice yeah right potion doesn't really care if you pick it up or not you know you can do it i don't care it's gonna wait for you all it's like all day yeah and then you have amplitude so how how high it goes right yeah your min and max in this case it's from zero and one but we can put it to like two and you're gonna notice based on the color as well um you know how how that behaves and keep in mind that all this time right we're also using what's whatever is outputted to you know produce a color sample because all these values are identical they are going to be between 0 and 1 and we can gradient sample so already we have a use case here of how we can use it with colors but later on we're going to show you how to use it with positions and maybe rotations if you have some use for it as well not only sine waves but you can actually author manual curves so if a sine wave isn't cutting for you or if proceduralism or sine waves or and randomness isn't cutting out for you you can also have access to sample curves and sample curves like you see here if you look at in this example you can really edit it and have different presets and really make your item move in interesting ways and more art directed ways because that's what it's all about right showing you some ways where you can empower your director or the artist itself yeah this is a literal one-to-one you can literally control the wave right and you're seeing that on the screen on the right here you're moving these cubes right together and you're controlling them with that shape and it's translating in the effects on the right there exactly exactly and these are just essentially the same graph but using uh different selectors so you know talking about reusability you have a switch statement here and you basically can just slide this thing and get uh different different channels right uh so if i select one it's going to take this curve two is going to take this curve three is going to take this curve this is great ways to think about reusability in terms of your graph because this is the power of vfx graph right you don't want to always have to duplicate systems and if you have a mind you change you don't want to have to cascade through all that mountain of parent-child relationships in your particle system you want it to flow and just change one parameter so let's let's uh illustrate that by jumping into the uh moving on to the potions great and jumping into the potion graph and actually building that together all right so uh let's actually let's actually go a bit into here all right uh show you a bit with the final result what we're aiming to achieve and this is something that i believe we built with one of the asset uh uh store packs mafus potion am that's right so this was using a maple's potion park which uh cauldron had a lot of fun with they jumped in and uh there's so many different high quality potion options here uh and he like manipulated them to create all kinds of crazy effects which which you're gonna see uh so check that out in the asset store we're gonna drop a link in the chat to uh office portion pack thank you for that yeah so the reason why you use the ability power assets sometimes it's uh nice to ground your visual effects and have some lego things to build uh with but we're essentially gonna look at uh how these potions are made and these potions are essentially made just with sine waves uh reused over and over again for color for position uh and sort of these things you see here and this is the actual graph you're gonna be uh i'm just gonna try to supply you uh after the stream so you can play around with it but you're gonna see here we have four system one two three and four right and each system you can name them i named them here i don't think i named all of them sorry in advance uh i had to pull some things here uh last minute but we essentially got the main object uh which is the hero asset that's in this system we've got to grow a glow around the main object which you're gonna see maybe uh behind i don't think i have it uh that emphasized here but here oh you can see it more if i just amp it up a bit there's a glow behind it uh and you got the tertiary objects like these small sprinkles of bottles going around it and you also got the glow on the ground so this is actually not a light uh inside the the thing vfx is nice uh for all these vfx artists you can fake stuff by having quads uh illuminate at the same pace as as these uh bottles going up and down to create this illusion that it's lighting things on uh up so uh yeah let's actually go more rudimentary this is what you're gonna find in the samples i just put cubes here just to get these assets and not really worry about these assets when you're building it it's good to have an environment where you can debug things more easily and yeah yeah let me just switch a graph it's called the pickup graph uh whereas the other one was called the pollution graph but yeah let's uh let's dissect it a bit yeah so let's turn some of the systems off so we can show you what each system is doing right yeah i'm just unchecking their spawn condition by the way and this allows me to just not worry about anything that's around it so right off the bat we've got the main object our hero object and we've got a lot of cool things going on in here let's zoom in a bit more oh yeah let's just uh let's zoom back to it yeah yeah and when the effect gets a bit heavy on the right we might want to hide the effect because i believe the heavy particle effects are adding to the compression but right now as it's a it's a lot clearer so when we start turning on all the layers we might want to hide it a bit yeah for chad's sake yes thanks uh for reminding me that all right yeah yeah so in this case we don't want particles to die so we're not using a constant particle spawn right we're just using a single burst one particle which is going to be a potion and we're not going to set any lifetime related attributes so nothing over life or nothing set lifetime run this stuff is just going to exist until there's some logic in the scripting that's going to pop it and make it disappear um obviously we want to send to our particle so i'm going to put it at 0 zero zero and we're just going to disable a bit these things um so notice that without the update runtime things that you see here let's also disable the color uh this is what you get and really at a high level i'm just using the sine uh wave functions that you see the odd sine wave operator block to undulate up and down in a very smooth way at a very low frequency you see here i have a levitation speed uh property attached to it to make it go faster or slower depending on how i want it to look right you see here levitation speed and really the output values are going to be minus one to one and i just scale them down a bit and just tie them into the y position so this is what uh is going to happen and obviously the x and z i don't want them to move so i put them 0. then in vfx graph you can also author a rotation rotation is expressed through angles not not uh rotation.x or whatever you're used to uh seeing uh while you're scripting okay so it can be a bit confusing but this is what we have and essentially we're just adding random arbitrary decimal values to each of the xyz channels so this is happening at update at runtime this is the this is the update these are the uh right the update context correct which is the second contact uh and so an angle change is being added every frame and so it's continuously rotating right now we have a really good question from the chat is there any advantage to putting set size over life or and add position on the output instead of the update so in this example you've added it to the update but chad is curious what would happen if you added it to the output and there's a big difference am i am i right in saying that yes yes yeah so uh set size over life these are operators that i usually advise them to use in either initialized particle or output particle uh the reason that being is behind the scenes vfx graph kind of handles them to like shift over a lifetime right it's it sort of has these built-in functions uh called over life that sort of helps you automate that process it will handle based on the curve how it's going to evolve over its lifetime until it dies uh now there's also a clear advantage to adding them at the output particle cube versus the initialize stuff here is that because the outer particle cube the output context gets executed at the very last moment uh the feedbacks within editor are gonna be uh instant whereas if you put it here in order to reflect the changes you're probably gonna have to save and recompile the graph so good practice i always use them here if there's anything set of size of life and some exceptions i might get them to use initialized particles but really either use it here or here really and can we illustrate adding a change in position to the update versus changing adding it to the output yeah like it will clearly illustrate the difference there so let's put an add position in the output render context so if you want to offset anything uh either you can do it at the beginning and you initialize at the very end and offset is a good example if you just want it to be paste more to the left and stay that way after everything is rendered it'll just be shifted off to the right because you're adding it to the final context which is the output yeah now watch what happens when i put it into the update so if i put in the update because it updates every uh frame oops sorry uh you're gonna notice that it flung into it out of existence and it's now it's it's a small dot that shot shot into the sky like team rock yeah yeah and this is because it's updating every frame it's gonna go off to oblivion it's constantly adding that position exactly on update per frame so it was a very good question uh thank you for that thank you whoever asked it yeah so let's go back into the the meat and bone of it uh so yeah we have this sine wave actually modulating our position right now but we also wanted to modulate our our brightness and our color right because we want this to be in sync when it goes it's going up and down luckily for us we can use the same output from that sine wave to just essentially remap it because our values here is minus one to one we map it to zero to one and now we can sample anything that's great and related from zero to one and this is what's happening here so now we got a gradient that's going up and down and just being sampled with this exposed property that you can edit here yeah same thing we're going to go into multiply color because we just want to add a bit more brightness so if you notice here um we're just essentially multiplying the color to like make it more flashy okay first of all just sorry to interrupt we just got raided by a party of 355 by uh lana lux thank you so much thanks for joining us hey everybody welcome welcome to the stream thanks so much we're talking are we talking about the principles of vfx graph today uh we just went over the basics and the concepts that we're teaching uh right now we are talking about uh we're dissecting a potion visual effect yeah absolutely just walking us through that graph right now and we're talking about uh specifically sine waves and modulation so uh welcome everyone welcome everyone again and uh yeah we'll move a bit forward uh yeah so yeah that's pretty much done with it so now we have a modulating object here a potion you can imagine it as a cube only thing that's missing is now to do the clo right and the tertiary things so let's look at the glow here right you see how it's behaving it's behaving in sync with the modulation on the y-axis let's turn that euro potion off so we see what we have here and really same thing we're using a sine wave in this case but instead of using the sine wave for the position we're just using it to multiply the size again you can use these to modulate any attribute you see in the inspector these ones yeah let's just zoom in a bit more again sorry oh yeah always remind me always my message i got you i'm the zoom guy like i said that's what i'm here for and uh yeah if i turn this off you'll notice it's not modulating it's just modulating the color right now uh but let's turn that off and essentially we are faking lighting right now by just using a quad and unity doesn't want to play ball so it's not showing the wireframe but it is there it's just a quad here that is if i put rotating around in the update context in case you have a custom texture so it has more dynamic feel to them but we're just going to stick to that default particle stuff that we uh had here because it's just more pretty beautiful and again we're also multiplying color to adjust more brightness values but if i turn this if we're not rotating and if we're just setting the position you're gonna notice that um now it's like rotated 90 degrees uh in a way it's not facing up when we had it and you notice back to that question when it comes to offsetting these things are good to set in the initialize so in this case i want it to offset so it looks up it points to the up direction right and i also want it to be just under so that's why i put the y position to be just under the hero potion so it's just underneath it yeah before you add any fancy effect you're just placing it putting it where you want it to render right and then exactly adding all the effects yeah yeah and then we can worry about like you know uh polishing a bit so we added a bit of rotation we changed a bit of size here because we don't want it to be overly small and be like actually define a set size and then we go into it and then this is where the magic happens right sine waves oh and if i turn back the uh the hero potion now you see very interesting because they're both using the same gradients right right here they look like they're affecting each other in a way but this is just an illusion played around with quads and meshes so this is the advantage right of having two systems within the same graph uh where you can link things together can you show how the colors are connected again just um exactly so we're both using grading colors with a sample gradient and this gradient color is same with the same one that we're using here so they're always usually going to use the same gradient they're just going to be in sync by uh by default how you set it up amazing now we can make things be even more insane like this one this is essentially the same concept like a quad here but instead of making it point up we just used this note to orange to face camera plane and made it a slightly bigger by taking the size whatever we had here same sine wave that's affecting the main hero potion see where you're using things we're just multiplying a bit to get it slightly bigger right and then we're taking the same output that's making the hero potion move and placing it with the same set position node in this one so we get the glow around the object moving with the object if i don't have it it's going to sit there awkwardly right so reusability is a huge thing in the effects graph and you can even push it further with subgraph blocks and sub graphs uh something that i highly encourage you to look at as well um so now we have the glows uh handled for us cool we want to add some sprinkles always the third out i'm missing something yeah the thirsty elements and i'm just going to turn this off so i can focus a bit more on uh on on this right and this is just slightly more elaborate but what we have here is actual spawning pot car particles that die out so this is why we're using a constant spawn rate we're also setting a life size uh it's lifetime random between one and three seconds same thing with the size for more variability because we don't want it to look uniform like this we actually want to have a bit more modulation randomness is just super useful and so many things that are attribute and random you can set at initialize or output so watch out for those uh we can offset a bit you know small decimal values just just for fun uh but essentially here we're using a set position node and we're essentially just using a random inside sphere subgraph i mentioned that this was a modular tool and we're using a subgraph from um oh sorry if i if i right click and enter sub graph we see that this is the the stuff that's embedded within that operator block this is all included by the way in the samples made uh this one in particular was made by one of our unity employees keijiro takahashi uh shout out to kejiro he's very great he's an amazing prolific vfx artist great resource overall and so that means that our particles are now spawning inside a sphere and this versus just like you know in one in one single place and from then on we want to make them you know rotate a bit you know um so that's why we had the add angle so they're not just static rotation we're going to do the same thing we did with that hero potion we're also going to make them float slightly so that's why we have these small undulation here and it's the same sine wave principle tied with uh the time and some random numbers so they're each floating in a different way we don't not in sync so you didn't use the same sign uh as the uh previously just for creative purposes here right you just wanted the effect to be a little different yeah let me actually illustrate because that's a very good question here it's just the time input yeah and the sine wave here we're getting the total time from the vfx multiplied by some random number that is generated per particle that means that each each sine wave for each particle is going to be in different sink so they're going to have different levitation otherwise it would have been it may it would maybe look too uniform these little like effects that are floating around don't look as random maybe you're going to get a bunch of these sparkle particles they're just going to go like whoop together right you want more value very valid variability and right sorry friends yeah it's a nice combination of the two right so the potion is uh like more predictable it's like going up and down and turning and then the particles that are around it are more random and it all kind of comes together yeah exact question that just really wants to just be picked up by you yeah absolutely just so we got to make it very appealing and yeah and you're gonna notice that oh wait your particles are also orbiting you're absolutely right they're not uh you know before uh all the sideways stuff we had them a bit static just floating in the air like this but uh we also had some orbiting and thankfully fx graph also offers operator blocks for rotating 3d space in this case we have rotate 3d which we use with an attribute you can any attribute you see here you can use a node outside of it called get and you're gonna see get attributes and you have this entire list in this case we're only getting position putting it in inside of it sorry and then our attributes the same across every context across the initialize the update and the output uh yes yes so the each of these as it cascades down has a memory of all these attributes so they're equally accessible in each of these contexts right you know yeah and now you're going to notice that some of them are rotating what clockwise some of them are rotating counterclockwise this is just because in the angle we specified some randomness to it between a negative and a positive number that assures that some of them are going to be using a negative angle speed counterclockwise and some of them are using a positive angles so clockwise and yeah that's pretty much the gist of it really right so let's see all the effects coming together and then we should swap out some of the measures to actually right now it's just the cube right but like kodian was saying before uh it's really fun to use these placeholders in this case we're using mafus potion pack to actually make it what it is uh a potion pickup so let's uh let's show people how to how we can actually change that i just want to shout out lana lux again thank you so much for the raid uh alex is an incredible unity uh developer and streamer she's streaming almost uh every day for like eight hours a day uh she does everything from coding to 3d modeling she basically does it all definitely check her stream out really really incredible thanks delana locks again um so let's go back into our potion scene so we have here so what essentially is left for us to do is replace those cubes with actual meshes luckily for us is that um go into our potions uh graph here notice we have the output particle cube now we have an output particle mesh and essentially here we specified a property called potion mesh here so we can input through our inspector different meshes and a potion texture so we can input a different texture depending on what our needs are and we did the same uh for this we for that we do the same for the tertiary particles so here we went and specified also a particle mesh but this one is kind of hard-coded because we don't have a property to change that right so in this case there is no public property and so we're not changing the instance if you change it it's going to change in all uh in all of the uh all the models whereas if you're making if you make a public instance you can make it unique and specific looking which is what we're doing for the meshes in this case yeah right so uh and i just want to tell the chat uh right after we uh change the meshes we're gonna ask you what kind of potion you want us to make so let us know what kind of potion you want us uh to make right after this we're gonna spend about 10 minutes changing this potion into a potion that you recommend so let us know do you want a poison potion a lightning potion what creative potion ideas can you come up with and we're gonna try to make use what we have to make it feel like the potion you suggest and the suggestion that we choose is going to win a uh unity lego minifigure right so we're giving out these minifigures and uh uh speaking of lego next week on monday uh we're gonna be doing another stream with the royal uh danish library where we uh we're gonna be playing games uh from the lego ideas contest so we're gonna be playing some lego games next week on monday on stream uh and we'll be giving out even more lego minifigures then right so uh let us know and uh what potions you want us to make and the one selected we'll get a lego minifigure um said to them all right sorry clojan yep continue it yeah so we got a potion here and now because we set these things up nicely for us so we can offer them and edit them this brings up the window for a huge amount of reusability so let's just duplicate this one here so now we got a different potion let's uh let's name this one extra so we know which one it is uh and now we have like our gradient that we expose here which is the glow and we also have our meshes so let's actually pick a potion from mafu's pack um let's let's do a oh the snake one looks nice and you see we have a snake potion kind of looks green and kind of doesn't fit really with the mud potion like the orange hue so let's actually change the gradient a bit let's go like much more green here let's maybe turn off the other uh potions and zoom in closer to the graph so that the compression doesn't get too high so that the track can see what you're doing sorry it's actually i think i almost deleted all of them uh okay yeah uh let's go and get it in closer yeah uh so yeah like this is uh the inspector window and uh yeah we can also change the glow and you're gonna notice that it cascades to our tree and we arrange the color you have around the object let's just get rid of the uh stuff here put it black because we don't want to have any like orange hues notice we also have like a parameter for scaling uh sometimes when you're working with meshes they're not in center they might the pivot point might be at the bottom you have something in vfs call a graph called set pivot xyz to sort of change that if you want to pivot to be more towards uh you know uh the center like we have here so if i change that it it's going to take the origin point of the geometry and change it so it's much more in center and you're going to notice that with with meshes you might want to like scale them up a bit because uh sometimes might appear tiny and you might not see them just scale them up like we have here so i have a parameter here to adjust it its size and you can make these adjustments on the flight no problem make make the adjustments on the fly and hold it yeah and this is we have potions right now so let's do something even more interesting let's um oops let's take the output of these tertiary meshes and make it a property as well you know and i i just took a connector node and it's very easy to find out which one you should be connecting with and let's also take the texture output and you know make it a property too so we have mesh here convert to property uh tertiary oops sorry mesh might have some spelling yeah we're remember to expose it and we're also going to convert this to a property tertiary texture and we're going to expose that too cool so now you're going to see we have these additional things that we can override and play around with it so let's duplicate our stuff again and let's try something from a different asset pack i don't know actually before we do that let's actually look at the suggestions maybe we can jump right into the audience suggestions oh yeah yeah that way we can actually jump into the pack and do that okay so let's look at some of the options so uh rohan bello suggests a fire potion with flame particles i'm just gonna run through them and you let me know what you think and then we'll go back and choose one okay that's that's pretty good standard one right fire potion i like that right yeah then we have a potion of strength ooh that's not bad complexity suggested that and then false brackets suggest uh it says lightning sounds cool meme meistergame says i want lightning as well uh louis squid hey lewis squid i remember those good from the last uh stream i believe they won uh a copy of a power wash simulator when we did our definition with power simulators there was a game called power washing there is yeah they were on our stream it's quite the game it's an awesome game it was just released last week check it out uh then there's a unity potion this is what they suggested and then there's a flash post suggestion um they want the unity potion to be full of 3d gizmos maybe a splash potion of ice by mpkn oh i like meme meister gaming suggest a wind potion that's pretty cool one potion wind potion and then bip 420 suggests a quadrant potion which we could make we could make a quantum portion maybe we'll do that at the end we'll make it uh we'll make a quadrant potion we'll put a coaching potion at uh at the end we'll make a quantum potion and then there's also a void energy potion okay so what are you feeling which of these uh ghost potion is pretty cool i'm feeling i'm personally feeling ghost uh freezing uh lightning and uh wind i'll let you decide i'm probably gonna go with void or flame i think void is pretty cool oh void eh void yeah let's do it i think it's easily easily interchangeable with the setup we have right now okay so void potion void so what is void how would you describe void yeah so void is always like you know if you look at like a game a game of legends uh league of legends league of legends sorry thank you league of legends uh you have like some characters that use like these void abilities and they're always like dark purple use of things that just have like these bottomless holes around it and like this is it energetic it's so is it it can't be energetic or it could be like like sort of like a dark hole kind of deal like just more yeah yeah okay black holes are usually chaotic and fast okay so so uh who suggested void and so mr piccolo 420 suggested void energy potion so we're making the void energy portion congratulations mr pickle420 uh we'll be reaching out to you uh we'll have you fill out a form uh uh and for the unity uh mini minifig uh okay so let's let's do that let's make this void energy potion let's do that okay so we're still gonna use the asset packs okay uh let's actually rename this to avoid energy yeah uh and we're actually going to look for maybe something that looks more like a it would be like a void energy kind of deal yeah let's look through our hero assets this doesn't look you like it this is okay uh uh let's go oh the spider or the spider you want to do with a spider yeah let's do that this is going to be our void energy spider void let's do it let's do the spider dark and purple yeah so first of all green is more poison right we got to make that more purple yeah but before that let's just adjust our pivot slightly so it's more centered yes you know i just want to like uh put it here it's always like uh you know minute like changes yeah let's make it purple let's make uh something like you would see in dishonored or syndra and league of legends by the way this is just like really on the go but um yeah yeah we've got something here and also these bottles like you probably wouldn't see that and avoid the void potion so you know what let's change the output particle mesh to something like output particle quad and we're going to use a quads instead and whoa okay we're getting like um actually let me just uh duplicate this one you can duplicate content it's always pretty good yeah yeah process is a messy thing you can duplicate by the way your context if you want to keep your operators and just right click on it and convert output and then you can choose a different output in this case we want like quads uh probably want them opaque we just want to cancel out whatever output particle context we have here and we want to hook this one in let's hook this one in uh oh wow we have like a random texture on this let's put the particle this also let's cancel out the rotation because it's uh kind of messing up our stuff and let's make it face the camera plane that's the billboard effect that's always going to face us yeah right now it's getting us this and it needs to be transparent yeah let's uh what did you change just now to to to do that i basically checked alpha clipping so i can clip the dark values of the texture that's a good way to and you can then you can modulate it also a bit like the alpha clipping you see here yeah and we're also gonna like tone down the size a bit and this also we're gonna make it like really purple all right so now we have something that's popping in and out like of like dark matter and we can make it more interesting let's duplicate this context and there's something really cool for like distortion effects in unity called output distortion quad and this creates like if you hook it up as well oops output uh oh sorry is the strip one careful you don't want to use the strip one strip one is uh for another time another episode but uh i want to use the just the particle distortion quad there you go oh wait my bad i'm messy i want to have it to do with this one this is looking good really cool already i love how the can we see what you're going to do with these little particles yeah so particle distortion what it does is that it layers in like a distortion mass to blur what's behind it you see that we're getting some blur effects behind it yeah and you're going to see here that maybe they're not blurring the uh stuff here and i'm going to show you guys a cool thing if you go into potions your graph itself your graph asset itself and you zoom into your spectre you can see the output render order so you can actually specify in which order these things are going to be rendered uh in this case output particle distortion quad we wanted to maybe uh render it first let's see how that looks or last probably last just to make sure that the order is okay and we also want to have a distortion scale so in this case we're probably going to like play around with the distortion we have here oh that's cool okay yeah and we also want to probably use like uh some alpha thresholds and maybe do spruce down the side of it uh and it's using actually a distortion map in this case the particle uh particle um default particle texture uh some people think that the purple we chose is the no texture uh magenta the no texture magenta it yeah well i'm having maybe some issues with this i'm gonna try to put it here because like clipping maybe actually well i mean it does look a bit chaotic so i think it looks pretty cool but i'm starting to see the distortion behind yeah can't get it to work right but anyways you can do add some distortion with uh with this uh this output render node and if you stack it on top and just increase the size on it uh notice here that we're still seeing the edges uh don't mind this you can actually uh eliminate them if you have a proper map i'm just using the default one but you see how there's like slim slight things happening there and maybe we can reduce the you know output color here and just get like some there we go something much no longer the uh no texture magenta now well i think what we should do is make the rotation like spinning wildly rather than just this slow spin like this madness void kind of thing it's spinning in the void yeah do you want it to spin like faster just faster and in more yeah yeah cool thing about uh uh operator blocks like parameters is that you can actually do like basic uh worth mythic in it so i can multiply things by two inside of them um oh wait i'm actually just modifying it in the wrong way and this was the the the small sparkle particles right we need to go back to the main object so this is affecting the actual potion mesh right now yeah let's uh let's multiply by three on each side there we go let's uh yeah let's we can multiply even more further let's do that yeah like it's super noticeable there we go that's super cool okay we got more of a void what should we do to the glow the glow the bottom should it be like should be growing even larger or do you want it to be rotating and spinning and uh oh yeah good good idea actually if you want if you want to push past the constraints of like uh the growth we can you know notice when uh we had in the this like the glow ground system we had a scaler to multiply it so we can just actually just boost that up and you're gonna see it's glowing even larger oh amazing um it's so simple yeah yeah very easy that's the nice thing is that you can go back and quickly author things or duplicate stuff or notice i tried to i changed a lot of these uh things into like absolute uh parameters but the ideal way is to convert them into properties and make them more authorable right i always think about your fellow artist and makes a make his or her job much more easier at the end of the day uh so i think that there you go there's your uh can you do a query i added some distortion earlier uh a sarge to the uh to the portion but then we removed it after the fact um but yeah i think we have our cool void energy potion here thank you so much for this for the suggestion that was a great that was a great suggestion i'm glad we meet yeah it's really cool actually we pulled that together pretty quickly uh yeah i think we can move on to our uh next section where we're now we're going to move on from potions and we're going to talk to talk about another very important principle of visual effects which is the fundamentals of noise and randomness and so how are we going to do that today quadrant so we're gonna go into i mean we did our example we're gonna go back into uh like more theory like just ground ourselves into what we're speaking about um let me actually just save it but i don't know if i saved it or not hopefully i save it whatever yeah uh so you see here i showed you in the showcase on the github repository uh this screenshot this is actually a 3d representation of noise that you have in vfx graph so i've opened the noise graph asset here um you're gonna see it and this is essentially all the same graph with uh again a switch selector to specify which which noise to use if i go in from the top view you're going to see here we're using one dimensional noise here we're using two dimensional noise i'm going to see it it's like two-dimensional here it kind of looks like a 2d texture and here we're using three-dimensional uh textures so let me frame this for you the reason why we're talking about noise is because noise is one of the essential uh things in uh when it comes to visual effects it's like your bread and butter right uh you move things with noise versus uh just like making them go straight in a linear line so this noise really plays into fact uh when you're trying to do things like weather systems or small ai or in the particle system and you can think of it like like a channel like a medium through which your particle goes through so in the same way that an airplane expresses turbulence which is the air molecules like wrapping around and pushing in all sorts of direction noise does the same thing for your particles it can be very intense it can be very smooth it can be very sludge like we're having a lot of drags if you're doing like underwater stuff like subnautica um or it can be very like you know mild and fluffy right like sort of like last campfire where these dust specs come into here and i really just wanted to visualize it for you guys and in this graph all the noise possibilities you have here and these are all the built-in operator blocks you have the 3d options here the 2d options here and the one-dimensional options here for today i just want to focus it on 3d because it's going to be very relevant to what we're going to be building with um uh sorry we're going to be building with um our weather system yeah so i'm just gonna like pull this yeah it's better behind what we don't need and uh so that for the sake of the compression yeah yeah see the graph yeah yeah so you see it here still using the same thing as one of them uh you have the property selector here which selects between the one dimensional all the way down to like the three dimensional we're going to stick to 3d for now um and essentially this is a voxelized grid of let's see 20 by 20 by 20. so there's a particle for each and what this noise essentially doing right now is it's modulating the size so when the noise is denser this has pockets of of influence that are denser it's going to influence into like the red gradient you see and in some of these instances where it doesn't influence as much you're going to see pockets of of emptiness and you notice that we also use it in the color with a gradient here yeah very nice stuff i think we should hide the uh the noise texture because i think it's it's causing a lot of compression on the uh just show the graph for a bit if possible yeah yeah uh actually let me i can probably scale it up would that help yeah yeah let's uh let's do let's change a bit these uh these things i think having the the effect on screen well while the graph is showing is causing compressive compression overall so oh yeah so maybe hiding the graph uh sorry hiding the effect while showing the graph can i just uh add a bit more count so i can make it more dense or maybe that will help oh sure yeah i'm not sure but right okay yeah try to let us know yeah yeah yeah anyways uh you notice this is a visualization of the noise traveling through this uh this view yeah right and this is only the only stuff that i want you guys to like notice uh it takes in a coordinate in this case it's the position of that voxel plus the time added to it which is gonna be inputted into our coordinate here i think there's two sorry there's too much color change so i think you have to hide the the effect while showing the graph okay perfect yeah and yeah you're gonna have like uh a couple of separate parameters where you can like influence which is the frequency like we see in the sine wave higher frequency leads to more granularity whereas like lower frequency leads to more smooth way so this is where we you can really author it if you want like the specs to move like in a smooth way or the specs to move in a very granular fashion and you can make it even granular by increasing the octaves octaves uh sort of like sample at a much higher precision and adds even more granularity to your effect but at the cost of performance and at the same time you also have amplitude so remember when we talked about the output range of values between minus one or one or zero and one this is where you can determine that how big of an output value you want in your your noise thing and um this is what happens i'm just going to show it quickly sorry yeah sorry no real question but uh here's an illustration if i increase the the frequency it's so jittery right so so jittery but if i if i decrease it to something like um you know point one boom it's like cloud suddenly right yeah and this is where i can put like even higher range of values like here i have uh what's it called zero to one but i can put it zero to six even you see like these these are much higher values that are being outputted right now uh at the same time you can increase the octaves so the precision low octave very dull very primitive very smooth but high octaves super granular now you're getting like and you see we're tagging on performance a bit but see it's super granular right now so uh yeah that's pretty much fundamental noise keep that in mind because we're going to use it right so now i guess we're going to jump right into the environment effect that we're making yep so it's going to we're just like you know and if for anybody who was there at the beginning of the show we were looking at the falling leaves effect in ghost of tsushima oh there we go we're gonna do our own little autumn falling leaves i believe they're maple leaves is that right maple leaves yeah as canadians you know we have to represent the maple leaf so uh maple syrup too so we're going to be doing a noise effect on falling maple leaves we're going to add wind effects turbulence and all these kinds of things so we're going to dissect that graph now yeah uh i just want to mention asan uh because we're using like a asset store package i mentioned that i usually like to build the es effects being ground with some assets yeah this is the i think the from poly art is the dreamscape nature meadows it's a beautiful asset pack and uh allowed me to put this scene together in like five ten minutes or something amazing yeah so you just get like pulled together like pull some assets out some prefabs out put them together and then layered your visual effect on top of it and kind of made your own scene right yeah yeah yeah yeah like get some sort of a stylized ghost to tsushima you know uh great and going on and that and that asset is on sale right now uh it's 50 off for our discovery 2021 asset store sale we're going to drop a link to the entire sale in the chat right now and the link to the dreamscape nature metals asset itself in the chat uh and so yeah you go ahead and let's jump right into the uh absolutely so i mean although we have this setup here blended perfectly with uh with um our trees here if you take a look around right you're gonna see that it's kind of like a box shape you get a lot of these things spawning only at the top and changing directions as it's falling to the bottom and we're going to illustrate that's a bit more by going into um what is our sample scene here so uh because this is very undistracted um which is what i always encourage when working with vfx graph make sure that you have an environment that is easy to debug otherwise you're going to curse at it you're not going to have fun yeah let's uh let's jump right into it so this is the autumn leaves graph so you see it's the system with a lot of operators outside of it we're going to have to think a bit about this okay because this is a more involved weather system [Music] and you're going to sort of have to ask yourself at the beginning these questions because you can't just jump right in and produce it you're going to have to like think about how these particles actually behave in space now as assam like you know pointed out when we're watching goes to shima obviously these particles are going to fall from somewhere so ideally from the top i don't see these falling from the bottom up so we're going to make them spawn at the top which is what we're doing here actually we're using like a random number generator on both the xyz but y uh component is gonna be clamped up so it only has on the top part of uh it only spawns at the top part of the box now we're gonna combine them into a vector and set that as our initialized position on top of that we're also setting a bit more of a higher lifetime for our release because there no those aren't enough things are going to despawn right away after three seconds so we're being a bit generous bring a bit 28 to 35 seconds same here we're assigning a random velocity sort of like a bias because nothing is too perfect in nature nice to add some sprinkles and variations here and there when you can permit yourself be careful though not to over cumber yourself with with too many things that are become too hard to debug do it at every step of the way do it step by step and because we're using assets in this case we go in wireframe we're using sort of not a quad but our own custom mesh with a custom texture because we're gonna see here we're outputting to a particle mesh with a custom shader um we're also going to have scaling thing issues to worry about so whenever like i said whenever you're working with meshes in unity especially the effects graph um you're going to be working mostly with scale as opposed to size and scale is a good way to just uh specify that because these are going to need to be rescaled based on your import settings uh so if you don't see anything scale your assets easy way so yeah we have this initialized condition set up now we have to think about okay our particles let me just show a case without the initialized conditions what they kind of look like if we just uh put them here so now they're just moving with the random velocity if i turn that off it's going to stay static in place this is our small bias it's going to be biased to like you know shove in that certain direction we also know that particles fall to the ground not up they don't stay static in place so lucky for us built in within the vfx graph we have something called gravity a gravity node so we put that at runtime anything that's like force related you should put that on the update uh context because in real life gravity is constantly being as a force that's constantly being applied to you great right actually great point to mention that yeah and yeah we always want to have a force of influence applied at all all time to where our dots in space are particles yeah uh you notice that it just fell into oblivion and that's not looking very interesting so we have certain things to collide with in the vfx graph and because vfx graph is a gpu bound tool not a cpu bound to like shuriken we get primitive primitive colliders in this case just planes cubes circles but don't expect like very over complicated mesh to collide with right because that's way too expensive to to put on a million million particles but in this case we're just using collisions we just need a ground for the leaves to stop on yeah you don't want them to just fall into the into the void right yeah totally yeah and this we have a node called collider plane and we specify that position minus uh five on the y we don't want as much of a bounce so very small this another maybe show how we can quickly just raise and drop the plane you know okay yeah yeah so if you go here we're just changing the height of the floor so we're going to line it up with our with our nature meadows uh asset set right so it's going to be on the ground of that asset prefab we're making right yeah yeah you're going to want to create the illusion of it landing on those assets essentially exactly i always think in terms of illusions like we did with the globe right you want to match that up to be matching with your ground level your ground mesh exactly yeah and you're going to notice here that if you have grommets you can also take in and put the normal so they have like more mud you know undulation on them uh we have a good question from 3d polywrath how do you handle uh rain where instance instancing needs to happen at the floor so i guess they're talking about when the rain particle hits the floor it then turns into another effect which is the which is the ripple uh maybe just quickly if you can just quickly brush over like yeah the logic for any of you viewers that uh that don't know what he's referring to uh rain particles when they hit and you see in games they have a splash happening here it looks as if it's it's it's in sync with the ground but coming back to what we were talking about that is still all an illusion in fact that is not a particle system that you see on the ground splashing this is just the shader most likely than not put on the ground level very separate but a shader plus a vfx graph kind of yields that illusion right right because to do that to uh you know uh instantiate everything is gonna add more burden to our particle uh system here however there is a way where you can do that and this way is called sub emitters yeah so up until now i've been working only within this one system but systems can be interconnected and cascade into each other like uh you can add a note here called event on die and then you can connect it to another context which is a gpu event context so that means that when it dies it triggers this the system and then you initialize particle and then you can build your own graph like a splash but i'm not gonna go too much into the splash but a very good question and this is how you do it yeah so you don't actually need to do that though you don't need to make the submitter what you can do is think in this idea of smokes and mirrors illusions game dev is like just you're making these illusions right and so you have two separate systems one of like the falling grain and one of ripples on the ground and our mind just connects the two right we just assume that oh these rain particles are creating these ripples you're not you know players are not going to follow each raindrop and see if it's landing and creating a ripple on the spot right you're just going to connect those two things together and you can save yourself a lot of uh you know it's pretty it's a more optimized way of achieving this yes absolutely yeah always think about optimization you don't need to recreate things 100 realistic because remember we're working real time we don't have a render farm has to fill it into a you know a platform at the end of the day yeah sorry go ahead continue so yeah you have bounces you know we have like a tiny small balance like just to buffer it up a bit but you can you know eliminate it as you as you wish friction sometimes you know you want to be friendly with that parameter because if you like turn it like crank it all the way up like you might get some some uh some interesting results that or unwanted result depending on what you want but we're going to keep it low not too much another one important one is lifetime loss so as that stipulates that as sorry what this attribute is for is when it hits the ground it tells you the weight at which is going to lose its lifetime so if you have like 20 seconds left and but when it hits the the plane it can erase like 90 percent of its lifetime and this is what the slider is like in this case we're probably racing 77 of its lifetime just so it can despawn faster so we can spawn more particles and like in goes to tsushima the particles are not accumulating on the ground right the there's always like a meshes of piles of leaves so that way you can you can despawn these particles underneath those piles so smoking mirrors again yeah yeah um we're just gonna add a bit of rotation here you know uh always think in terms of variability so you see much better not just me yeah immediately right uh and this is what we get really interesting because we talked about noise and randomness now there's two ways of achieving this inside the context or outside the context inside the context we can use turbulence and i mentioned to you guys turbulence is one of those things that you could uh you could really use in practically anything and you see here it being used now it's slower now it's like much more shuffly as it goes going down and this is because we tied the intensity to the distance of each particle's position to the ground that means that we can simulate like a current that's passing through like the the ground itself so particles fall much more linear at the top but they get more shuffly towards the ground and this kind of helps it sell in a way you want to think about how does your particle evolve as it's traveling even linearly on a on a one dimension right right and this is where we can actually achieve that right uh we can increase it let's uh let's make it more shuffly as it falls to the bottom more turbulent wind yeah telling us something about the medium that these leaves are flowing through yeah you always have to think is it water is it space is it is it just a small breeze of wind and i illustrate it to you like the frequencies this is what you can do actually here frequency octaves roughness this is where it's useful yeah visualizer noise we have a user asking how do you handle particles that go up uh so i mean maybe we can just quickly illustrate that by changing the gravity to negative or something can we can we push can we just send the particles upwards it's like not really very complex yeah yeah so now we have a gravity on the y-axis up and down of minus one but let's just put it up yeah there you go so there you go man question actually they were looking for the example of like steam float floating up and hitting hitting like the ceiling right so that's you know you just have to change the effect and yeah you could achieve that as well yeah and while we're at it right you wanna sometimes you wanna achieve like well you know this cool looking like space stasis effect like where things are just floating slightly moving slightly but not that much and we can do that by actually increasing the drag on our on our on our system here like we can make it like like sludge in a way like um just just it's it's barely imagined to get through that field that medium right right now you can see like maybe like uh the space station blew up and leaves are falling right now in some random direction but some are just static in the middle and uh yeah you can do that you really noise is your friend noises is bread and butter here yeah now i talked about noise in turbulence in the operator context um sorry and the operator called turbulence but you can do it also like we've been doing in the example i showed you with all the different grids where you visualized it outside of it and this is exactly what we're gonna do so we're gonna do the same thing but just outside of it so in this case uh we're not using it right now but we're gonna take the position and based on each position it's going to read like the the the grid uh the grid noise values that's why i plug it into the coordinate and then we have the same parameters so we have a 3d curl noise we have frequencies octaves roughness and amplitude and this maybe we should hide the particles on the right as we're going through the uh the graphs just so that it's easier for people to yeah that's great yeah right away it's much clearer i just want to let uh just a guy ask is this a built-in feature in unity yes we're using vfx graph right now it's built into unity in the uh urp and hdrp pipelines of unity you can use vfx graph yeah absolutely it's uh is the future for visual effects in unity and it's only going to get better from now on and you're going to see as we go through uh very good tool um so yeah back to where i was saying very good question as well um yeah so remember when we put the coordinates into the sampling of the the noise uh operator here in this case value curl noise 3d if you want to make it shift also we can use the operator built in operator called force and just basically plug in that noise into the force here and if you put back the scene here you'll notice right off the bat some different effect and still the same right it's shuffling around but because we're using a different noise here it kind of looks a bit different but let's uh let's make it more smooth let's make it like very very dull like remember we talked about frequency very smooth frequency right now i increase the frequency much more jittery much more scattered right and i can tone it down a bit more a little bit more or like i can make it go like super like it's like you know it's like a leaf blower amazing just by increasing the multiplier on the yeah yeah yeah remember this is this is all stuff you can use all provided for you as well just trying to make sure that everybody understands that really the sky is the limit and this is how you should think about uh using noise um noise is your ally and yeah you can also do interesting things with uh by inverting inverting whatever the multiplier is and uh remember we have a normalized value which is the distance between this the particle's uh position on the y axis to the collider plane and we we normalize it that means we convert it into a value between zero and one that normalize uh value we can use the one minus essentially one minus uh whatever is outputted there to invert it and we're actually kind of going to do that a bit right let's uh let's invert it see what happens so now you see it's completely different a bit or let's just uh put it here it starts off slow and it go falls in much much quicker so if you have things like i don't know uh rain for instance i don't know if i can uh put it here actually no no hold that wrong one so we're going to increase the turbulence the closer it gets to the ground is that the original actually no wait let me just uh scrap that sorry yes so i remember i talked about inverting it we can plug it in and remap the values so in this case uh to influence gravity so now gravity and the negatives are always going to point downwards right so we can make a point like okay why what if i wanted to behave a bit like rain like seemingly it's dripping from a ceiling so it drips slow but then it falls really quickly right so notice we have it plugged into gravity this time we disabled the turbulence and the force here with the noise um and just basically basic distance thresholds can yield uh a lot of these cool things you're going to see so we're just going to like really accentuate that force in here you kind of start and then faster at the bar yeah yeah so now it behaves slightly more like rain uh i mean obviously a bit too much right now but let's uh let's just put uh here all right kind of like it's dripping from the ceiling so just using basic distance thresholds on the y value and different noise values you can have multiple definition of what these leaves are you can have them be defined in a space setting in an ocean setting in the um how can i say or just outside whatever whatever your wishes are really you know yeah that's it and uh for the output you know you just got like uh different textures applied to a custom shader i made you can make custom shaders and shader graph and tie it into this just make sure you have experimental blocks enabled uh it's all on the vfx documentation vfx web documentation yeah so uh i want to ask the chat uh what do you want us to make fall from skye right so right now we have falling leaves right uh and we want to jump into the audience participation uh section of this where we take you know some some of your suggestions as to what you want us to change this uh oh pinholin says cats and dogs that's a good one uh snow we have toasters unity texas men it's raining men okay okay i don't know tentacles all right i'm loving this glass oh my god that's painful uh snow that builds up when it settles that's a great one spicy jill yeah italian aces girls uh medic says hot dog you wish italian ace uh complexity says dogs um npk and he says fish set fire to the rain like adele oh interesting um okay i wonder if you can do that uh lightning um acid rain uh stars like a warp speed effect that's really cool um eggs okay these are all great suggestions but uh um personally my favorites are the two men and then reigning cats and dogs you gotta do that so one of them was uh unity suggestion and uh reigning cats and dogs who was that this is just literally cats and dogs all right so i think i think the second minifigure uh prize has got to go to pyonglan right like that that's such a great suggestion um [Music] so we're going to reach out to you pyongyang for that second lego minifigure another reminder uh next monday we're doing a stream another stream for with the uh uh royal danish library where we can be playing games from the lego ideas contest uh and so look forward to that on monday and we'll be giving away more lego minifigures uh on that day on monday so that we've just given away our second uh minifigure for the stream uh congratulations p on that all right so let's jump right into it let's turn it what do we want to do first men or cats and dogs uh we can do uh men and cats and dogs after let's okay let's do it it's raining man okay where are we gonna yeah what are we gonna do for men let's uh let's first go back into the forest because we have to we have to brush it up a bit we have to settle into the most suitable environment all right of course you need meant to fall from the forest that's right we get this all right so obviously we're using like a mesh with a texture in it but um uh you know a while back i i'd sky myself so you know i think i i used it in the burning object or point catched up but i think i guess we can use it here as well uh it's gonna look weird it's uh it's gonna be a scanner myself in a way uh but first first let's uh let's detach these and let's worry about about um particle count because we don't want to crash our editor estorino says could you make it look like man men dropping from trees yes that's exactly okay yeah we could we could we could hello hallelujah we're waiting so i just reduced the particle count right now to 32 because i'm about to use a high resolution mesh so keep that in mind if you use too many particles with high resolution meshes you might crash okay just be very very uh friendly to your editor okay don't abuse it no uh it's it's tried it's best to do things real time cares for you so you should care for it exactly okay so we have capsules right now but um you know what let's um wait that i put let's change it to opaque yeah let's uh let's eliminate this texture let's not use this texture um yeah well this is the mesh of myself i i was going to use for like the point cache but i guess i could use it here uh yeah can't see stuff because uh okay i still need the texture so we've got a mesh in there but we need to oh there we go i wonder who this uh this is yeah i mean it was supposed to be like a nice reveal for like the next scene but we can use it here as well uh obviously these are too big right now these are oversized minimize it let's um and maybe we can show off who it is in the next uh remember i said use uh use set scale chad is loving this [Laughter] let's uh let's put like uh i don't know uh maybe like change the scale to like one or something okay oh wow wait wait actually yeah looking good right now it's looking good right now yeah yeah a little wide spread yeah maybe we can bring it all closer together the emitter yeah i guess uh do you want me to make it smaller yeah i think we should make it smaller and closer together closer together okay yeah that is actually all coming from the trees yeah let me just um just like scale it down a bit so here we go here oh my god okay uh all right and let's actually reduce the bounding box size so uh we're much more focused here yeah make sure the floor plan is aligned with the actual ground yeah you're right man i forgot that again it's all illusions right it's not actually hitting this ground that mesh that we've set up we're setting the the actual ground plane as in the operators within one of our systems yeah yeah there we have it yeah and uh maybe you can be more playful with it let's add a bit more of myself yeah there's not enough cauldron not enough cogents let's uh we're 64 right now i mean this is the the work in a set okay and you know what it's not realistic enough to me like you're flying through the ground i feel like you should be you know you're a bouncy guy yeah yeah you're right you should be bouncing off the ground you can do that that's not a bad idea let's do that let's let's make it very bouncy wait okay let's see what that looks like uh maybe a bit more just uh just for fun um yeah yeah i think i think we need to get showered in cauldrons right now so i think we need to set the camera under the tree so it looks so we can see all the so we can actually have reigning men on us yeah oh come on let's go more raining man there we go it's raining man hallelujah this is so weird and this is the the thing about like welcome to the vfx stream principles of video effects of the vfx graph we're very serious over here it's very only serious visual effects only serious work series work only this is a nice shot actually with like the volumetric light waiting for the demonetized dinosaurs because we're using hdrp right now okay it's uh we've got some vlog here we can play with but um yeah man it's uh wonderful okay so should we jump right into the next suggestion which was cats and dogs so to show how we can easily swap these meshes out and throw in some uh cats yeah so unfortunately you know uh sorry to the user who's just a cats and dogs but i do have like hamsters bears and belugas from an ice pack okay so they suggested animals we'd like the suggestion we're not changing uh the winter but we will i is uh oh do we have do you have frogs hamsters do you want frogs i guess i can re-texture a frog a bit you know let's see oh no we don't have frogs answer's good we're good for hamster we're good for this house hamsters and whales are the perfect replacement for cats and dogs okay basically interchangeable interchangeable all the way you know so we're just going to find its mesh yes this is a very cute little hamster oh it's going to replace it here could you remind us which asset pack this was from oh this was the quirky uh animal asset pack the volume three actually yeah it's quirky series animals mega packed volume three again currently on sale fifty percent off it's got the cutest animals a huge range huge set of animals oh oh well no no no no no that's fine bernie thank you uh yeah so we're gonna post a link to it in the chat yeah but uh here's the run-through of the model i'm using it in hdrp but uh i think you can easily use it in europe i think it was made for europe actually yeah uh but you know i just put some unlit stuff into it and uh let's find its textures its skin and put it here so now if we exit this prefab we should have reigning hamsters but i guess they're not scaled properly okay we're gonna need to scale them until ability they're coming in yeah oh these are even bigger than that there we go yeah no animals were hurt during this stream so yeah we got some some uh i'm stitch floating around can we just full screen this and appreciate this for a second uh we need to absolutely oh yeah there we go so let's go with this so what are we doing what are we doing right now i don't know man it's uh it's uh i think it's like fine arts right now yeah exactly you can showcase this into like uh another existential crisis of the this is what we do for a living the eyes you mentioned the eyes you didn't like the eyes of the sun but i mean you know you know i like the eyes but when all the animals are staying at you at the same time it's a little scary yeah because they all have the same eyes you know the fruit of the tree i'm perfect i'm so tree okay thank you for the suggestion pyondan uh we're gonna jump into our um [Music] our next section which is uh we're gonna be using texture as uh data and i guess we're going to be talking about point caches and we're going to be setting things on fire so i'll uh i'll let you take it away cauldron this is going to be an interesting one we're jumping into a new scene now so yeah going to go into it right away but just to reiterate you can see how we went from leaves to bouncing hamsters stuff is just versatile as long as you modify a bit of noise and gravity um but yeah let's move into textures i guess i want to save it yeah i kind of grew attached to this so i always showed this um let me just bring up the graph here all right so this is the graph corresponding to this i'm just going to go to a quick flyby of this uh what you have here is actually a bunch of cubes uh making a terrain based on a height map texture so we're using a 2d texture to sort of spawn a terrain made out of cubes uh nvfx graph um if i like slow down the cube size a bit like you can see clear very clearly it's like small cubes just making up a terrain based on the texture but let me get into why we're talking about this first of all okay so a lot of times when we we saw the effect in say games like that stranding right these dots you saw that were were telling you where to where to walk or not to walk where you can trip and not trip they had to we the creators had to assign that position somehow and most likely most likely they use textures or what's called point cache so uh this these are two methods that i sort of want to like show you guys out there that you can more have more leeway into art directing your visual effects and create some things that just follow silhouettes that follow landscapes that uh you know follow uh animation meshes right there's stuff that does the same thing called skin mesh renders which is a new feature in vfx graph which i'm going to go probably in the third episode uh static mesh samplers which do the same thing but with static meshes and you also have point caches uh and a point cache baker tool into the in in engine itself now um we covered why you would want to use that i mean obviously you can generate terrain and we're going to notice how we can use that to like make like burning meshes like burning cars and all the stuff to make like the particle system really follow the silhouette of things you're you're you're wrapping it it on uh but yeah point caches are essentially um two words point and cash cash is just a fancy word for storing so you're storing points that's what it that's what it is you're taking a mesh you're taking its vertices you're sampling these vertices randomly and you're storing them somewhere and in unity you have what's called um essentially me just say a point cache file right and within these point cache files you have textures like position and normal textures uh and this is what it essentially is you encode the xyz value of that vertice into an rgb value of a of a unity render texture that's what's happening that's all we're doing here uh you can do them with pngs themselves although they'll be like very low resolution sometimes which is what we're doing right here actually so we can give it a quick run through through with the graph and it's very simple like i mean it's it's much uh it's a bare-bones setup uh so our intent here was to create like a voxelized world like a topographical map you can replace obviously these cubes with like rocks and stuff if you want to scatter them procedurally or have some uh some interesting trees or that fade with uh with a character or something like that you can you feel free to use this as a procedural tool uh but yeah we first spawned our positions in a three-dimensional grid so you know uh we have uh 1024 by 1024 that is the resolution of our current textures that we have inputted into this it's good to match up whatever the resolution of your height map is going to be um and based on that resolution we can multiply uh 1k by 1k and this will give you our total particle count which will spawn one shot and they'll stay there without a lifetime they'll be just still living in perpetual until we tell them to die essentially yeah um i think it's a good time to mention that like everything you're working with here is available on your github repository we should drop the link into the chat so all of these uh uh example effects uh will be are currently available on cauldron's github repo but we're also gonna be putting them up on the asset store as a vfx essentials pack with everything with all the effects we've made today uh excluding the third-party assets of course um yeah and though you gotta get those separately and we're gonna be uploading it as a vfx essentials up on the asset store uh so yeah check those out so yeah we'll get right back into it yeah so uh yeah all this really available and like i said we're gonna add some more this is work in progress it's always gonna be updated stay tuned it's eventually gonna ship to a package and uh yeah good point assign thanks uh so yeah we essentially just want to spawn them according to an x and z just to let you guys know a bit we're gonna go into the inspector here and we're gonna see which height map we're using we're using this one um this is like an open source tool that you can navigate on your browser and take a height map field uh snapshot and i think it's available somewhere it's like a javascript thing but just took a series of mountain right and this is what we're representing this is what you're looking at right now so if we look like you know top down yeah uh so the way to sample you know a pixel on your your texture obviously you want to have a property that where your texture is it like a 2d texture asset where you can plug it in i want to get the dimension this is a built-in operator node in the graph itself that gets you the width resolution and the height resolution and based on that we can dynamically uh tell vfx graph how many particles it should spawn um after that we are going to use the same thing to one of our sub graphs this is a custom made sub graph again made by one of our unity employees evangelist called kejro takahashi and what this uh subgraph essentially does is that it takes that particle at the id right which is one dimensional it can be from zero to one million depending on the resolution of the texture and mapping it to the uv of your texture so you're gonna have one pixel per particle assigned to it so there's no there's no like confusion to it and uh this is essentially what this subgraph is doing right now it's going to be available also uk has provided this also in his own repositories open source and he uh basically all this stuff is mit licensed so feel free to use them extremely great resource uh bless him bless him people recognizing kendra on the chat everybody recognizes he's pretty much twitter famous oh man he's gift her famous this guy is super famous prolific prolific tech artist really yeah yeah when i was working in tokyo i mean i was looking up his uh his uh you know repositories all the time it was like i even had the chance to meet him at unite tokyo extremely nice guy but very great work ethic and just an extremely good graphics engineer this guy knows his stuff uh check seriously check his stuff out love that he's always working on eating it's really amazing yeah yeah and so what's going to give us uh at the end of it our subgraph is the uv so i can plug this into a built-in operator called sample texture 2d and use that then to output like a grayscale value in this case our r channel which is represented by x to drive the height of these uh particles so if you notice if i disable this right you're only going to get the colors here but it's pretty flat but if i re-enable it boom you get uh suddenly the height value and you can scale this um by adding a scalar multiplier here just to emphasize it more um and play around with it same thing can be done with um using the grayscale value to sample from a gradient because remember that is a texture the value that you're gonna get from it is between zero and one you could do so many cool things with it which such as remapping it to color and in this case we have so many different ways of remapping it right you can just switch our gradients and create all these cool different presets you see here sorry and uh yeah this is essentially the power of textures and using texturized data to have more start to have a bit more complicated more refined uh effects sort of like the you know that's trending maybe sam is here and maybe when he pulsates sends that ping through script the vfx graph the fx scrap will handle like the visibility of this thing like the points on the rocks and all stuff boom right right yeah that's uh what i wanted to show here i think we can move on to point caches okay so let's jump right into that we're gonna i guess we'll switch scenes to our post-apocalyptic uh uh yes yeah we're going at post-apocalypse we're just gonna give our uh but we haven't baked in any point caches here though but um we're gonna you're gonna see we're gonna use point caches to burn some of these assets a bit later on but i think for now we can go into this one oh we're gonna go here first okay so this is the the uh mesh we made rain earlier if you didn't see it uh before maybe you want to zoom in on the face and uh do the reveal of who yeah who the reigning man was i'm not i'm not in love with myself i'm not a narcissist i this is just the opens the only open source ass that i could use so i can make it freely available so i literally provided myself to you guys yeah kojon has given given himself uh for the sake of technical art yeah he's given his entire body exactly could you zoom in on the face i just want to show everyone how happy and satisfied you look to be yeah let me actually just like disable this uh there you go look at that yeah some artifacts here and there but uh nothing too crazy yeah yeah yeah you should see my what my girlfriend did with it she made me crawl like uh with the miximo animation but uh yeah uh basically the scan was uh was uh when i attended one of the united events uh some of the guys there were technologists and they gave me a free scan so i was like oh cool that's amazing okay night events are so nice if you have a chance please go to them such as beautiful and they're back on after this global pandemic and we're back to having real world events yeah yeah absolutely but point caches okay so remember when i told you that you essentially can take a mesh and bake those vertices points into a texture essentially this is what we did here let me just toggle this one off right we essentially baked my mesh the vertices from my mesh into what's called a point cache called myself obviously uh and we have different uh maps in here called positions baking the process of baking this stuff and getting a point cache this is all built into unity we have a tool a utility i'm going to show you guys it's not an external tool we have it's it's including your editor any new version with hdrp europe should have this you go into visual effects on the window you go utilities point cash bake tool boom this was made exclusively for this so we're just gonna put this uh over here how do we make this so we can basically take our mesh i guess i just have to find myself yeah so myself model uh you just take the mesh mesh filter uh component and you drag it here all right and it's gonna give you a couple of baking options you can choose to export the normals uh explore the colors or export the uvs but we're not going to really use much of that uh i'm going to leave it like this for now and you can specify how many vertices from that mesh you want to sample obviously the more uh you want to sample the more refined the more points you're going to have on the mesh the less you you have your you know the so they're not seeing what you're doing on the screen if you could just center it i think that's the way we framed uh yeah we framed it so maybe you want to show them yeah yeah like this yeah exactly yeah yes exactly there you go chad yeah see yeah thanks thanks for letting me know chad also yeah um so yeah you plug it into uh the mesh component here and it's gonna give you like a way to like uh sample it so you can sample it randomly or sequentially uh this is why you have like some random distribution here and then after you're done specifying how many points you want to sample uh you can save the p cache uh in this case i don't need to do it i already saved it into my file so i can just use that one and this is the tool to do that now i just want to go on a small tangent here this stuff right it's so useful when you're trying to do effects like you see in demon souls when the character dies and you have these like this like fade in of the character with like the silhouette of the particles it's so useful if you played resident evil 8 villages sorry village amazing game by the way uh where you see like the sisters cassandra daniela the morph and insects and all this stuff this is done with using the same technique uh it's done with a different variation called skin mesh rendering which takes into account the animation uh but we're gonna see that later but same principle really so so used overly used very good yeah for good reason for a good reason a good reason yeah because i'm about to show you right now okay so this gave us all these points and in unity you can get uh an operator called point cache where you can put the point cache here right and then the point cache based on what you baked into it you can get the point counts where you can tie into the amount of particles you want to uh like uh uh spawn in this case we specified 4k so it's going to spawn 4k as you see here and then it's going to give you the position and there's a special uh operator node called set attribute from map in this case set position for a map and you just tie in that point cache to the attribute map and it's just going to handle assigning for each particle uh the appropriate point cache position that you baked into your mesh [Music] and so that's what you're getting right now now sometimes your point cache even though you you did the the baking correctly you imported it like as it was supposed to be sometimes it might be offsetted all right okay i'm going to show you a neat really little trick and also a new a new concept here uh you can use transformation matrices in the effects graph itself the node for that is called transform you're gonna see you're gonna have so many of these but it's transform position and basically you plug in the current particle position and this one telling us an outer body experience yeah yeah upper body you need to create this an upper body experience and then you can shift it by minus 90 degrees in which case uh i did it right now right if i uh if i put it back that's how i offset it because you don't want to rotate your particle system itself because that changes your gravity direction as well whatever you have in there you want to do things through transformation matrices and if you're familiar with like the transform component this is exactly the same thing you can do that um and then you can line it up perfectly so don't worry about it um yeah then we sampled randomly uh we'll just try to make these points uh you know flashy so you can see them clearly and this is the interesting part is that these points were not going to use them just to like put them on the mesh itself unless you want to i know you're you want to create a bubonic plague effect and all this stuff most often than not you always want to use these points to emit from so this is where you get into sub emitters like i mentioned you can create an event here in the update particle called trigger event rate over time maybe 24 times a second and plug it into another system that is these particles you see here and this other system you can basically then create it however you want it uh you want a demon souls effect cool you can do that this is how it's achieved basically make these importance invisible but use those points you see on my body to emit from um so many those particles are coming out specifically from these colored dots right that are on your body they're not coming from the right from your mesh or from the skin it's just from those dots recurring the illusion that it's coming out of your body exactly where you have control over the exact points on the silhouette of your mesh yeah yeah great and that's the white cache that we set up right that's a very good point actually because uh when i mentioned the the emission rate for each particle per second they're gonna emit 24 of these uh particles each point is responsible for emitting at the same rate 24 particles per second and you can see how this is incredibly useful tool if you want to create uh or more intricate character effects like um in aaa games i mentioned resident evil village eight um and yeah same thing with the shrineing uh something with demon souls same thing for boss fights like flaming flames around the boss's back really useful stuff yeah and yeah that's pretty much it i think um we i don't know if you want to have any questions or if you want me to move on to the burning object let's see am i the only one who sees germ auras yes this is what we see as we're walking down the street doing a global pandemic just imagine the virus strains floating around the environment yeah yes visualizing covert 19. as alice is crying mega miley says burning man please oh okay they're asking for the next part here yeah asking for the next i want to see a burning man burning man all right it's not the festival by the way it's not uh it's it's literally burning things and burning things okay great what are we gonna do first are we gonna do it to this mesh are we gonna move into the to the next scene uh so uh actually you wanna wanna showcase it to the this mesh first yeah let's do it since we're here yeah yeah since we're here i mean uh i just want to showcase it so basically from all these points we gathered we can actually now start burning things uh on fire man on fire we actually got myself burning here but um it's normal uh because we now actually have access to the silhouette of the things we want to burn yeah and this becomes so much more useful because we don't want to always place plain billboards here and there or if you have a complicated like mesh you don't want to strip all these things onto that mesh you sort of want to just bake it and emit from really and i'm going to introduce you guys to some new things here called flipbooks um very useful so basically same setup that we had with like the germ setup uh just like the the new name gym setup and by the way we just had a poll ended the poll question was should we set things on fire the options were yes and also yes uh also yes one so we're gonna be burning things up setting things on fire yeah yeah everybody lots of arsonists here and yeah yeah a lot of games just have uh burning burning things for some reason you know it's very applicable you know yeah yeah yeah absolutely uh but yeah you know same setup uh we have here uh except that we're now using flipbooks we're not using spheres we're just using uh sort of like um a billboard that's gonna be facing us with an animated texture on it and the animated texture is going to be these flames you see here now to get that set up you actually need what's called a flip-flop texture and for those animators out there you're going to know what i'm uh referring to but for those who don't can you rephrase that question i'll show you so how is the overhead for this type of pyro effect using vfx graph compared to using a fire effect from the particle system unlike the built-in particle system um good question actually so the overhead i'm assuming you mean performance and cost correct okay uh it doesn't compare this is so much more performant this is the way like miles more efficient and this is because of one key difference between the particle system and the vfx graph the vfx graph is gpu driven everything you're seeing happen on here is in parallel on the gpu gpu handles it right particle system is cpu bound there's a limit a hard limit you cannot go past certain things on past 100 particles or a thousand particles this stuff it will run fine even in the millions so really absolutely great way to use it we're just using 1024 particles because we don't have a need for that much but we can up that up to an insane number yeah um great question use this i think it's uh it's such a good tool and it lets you do more interesting stuff like cpr and cpu bound driven tasks like scripting more complex behaviors it frees up more bandwidth for that and i highly i highly hope more people use the vfx graph in the future um but yeah flipbook so like i said before it's the future of visual effects in unity yes i believe so i believe that uh based on where unity as a company is going i think vfx graph is going to catch up and that's not just for games right uh not just for games uh m and e movie and entertainment too i mean we saw adam we saw uh the heretic uh a lot of that stuff uh all the vfx actually were done in uh in vfx graph yeah and as a as a like a technical artist this must be like such a fun tool to play around with right like just the artists who are gonna be in unity all the time right like use it using unity and working within editor to create their effects this is like a playground yeah no much much more uh much more fluid and less less stressful i mean like when uh when it comes to iterating iterating fast you can do it so much faster than vfx graph than you could do on a particle system because some things could be shared between one another and this is the powerful nature and you can share sub graphs and graphs to you know it's an asset event of itself and it's if you look at unreal for instance you know unreal has the niagara particle system and i don't remember the other one they're essentially uh the same thing it's i think one was cpu bound but now everybody's migrating towards niagara uh because it's gpu bound so uh yeah like you there's always going to be some more exciting features coming in for vfx graph uh in the future as well like uh we have the product portal and really it's catching up to becoming uh a very good tool i mean you can do so many good things with it and work with houdini with uh custom meshes it's insane yeah and it's worth mentioning that everything we're doing and everything we did on today's stream was just directly in unity like cogent did mention houdini and just now but we didn't use any of that stuff for the stream you can you know use this in uh coordination with blender or houdini or other tools but for the purpose of the stream everything we're achieving today was just within unity within the vfx graph only we wouldn't use any scripting any coding we're just in vfx craft so it's like you can just be a pure artist and build all of these things you don't have to get involved with any programming and we also and we brought in assets from the asset store so it's really very smooth and easy to jump into yeah absolutely yeah yeah yeah so the flame texture we use here you know i'm just going to zoom in here because i don't want to open up photoshop again uh but uh you see here it's actually a flame texture animating you know from on the x-axis open here and it's looping between all these like segments it's like uh it's like an animation spreadsheet in a way and the resolution is 16x5 so when you go into output particle quad you change your uv mode from default to flipbook blend and then you you adjust your flipbook size and your flipbook size is going to be at the resolution at which you cut your spreadsheet this spreadsheet is 16 uh frames long and five frames high and so this is what you're going to specify here you notice i if i move this stuff it's out of sync you know it's uh i put it within the confines of that spreadsheet and from then on i'm just really essentially adding some color over life uh a good trick in uh and vfx if you want to add some more variability is by multiplying some uh individual color channels uh like sort of a bias so it looks uh much more interesting not just flat all the time uh to have a bit more randomness random this is your friend as we saw and we just set the scale a bit more random because we want it to be more wide to accommodate for how the flame in this case looks um and yeah uh before if you want to get your particle uh flipbook to play you need a flipbook player and affiliate player you always put it in the update particle and this is what's going to play your animation spreadsheet it's playing at a rate of 24 frames per second you can change that up 60fps if you need it uh and another thing is in your initialize particle you also need to set your flipbook texture index so at which frame each particle is going to start i'm setting it randomly because i want more variability at which sprite frame it's going to start not just all particles from 0. could we adjust so that we're seeing more of the graph and less of the uh of the effect yeah and try to center the graph so everyone can see perfect yeah now you put myself there yeah okay yes yeah a little clear for the audience yeah and so we have these things uh coming uh out of me uh now i'm just gonna disable uh all the particles and this is just from stuff being on my my my i mean my my mesh on myself and you're gonna notice that there's another cool feature because one of the first things you're gonna notice when you're doing billboards on meshes is that you're going to see planes intersecting and uh that's kind of an ugly thing but within the output particle quad there's something called use soft particle and saw particle is going to use the depth of the camera to sort of like soften up the intersection between the the quad and the mesh so it's going to like have much more fading and you can manipulate that by this value yeah so it blends in much more nicely yeah you mentioned i mentioned before uh to you guys when i was doing the potions the uh what's it called the void portion uh some thing that didn't quite work back then but it was the distortion and this stuff you can really use it if i plug it in with the flames to add more blurriness around them and kind of simulate that heat distortion obviously this is for the sake of just the samples i didn't go much into that to creating these um these like distortion blur maps but you can have a custom distortion blur map here and really distort the heat around you so notice around the edges here i'm just going to resize this around the edges here it's much more smoother but if i take it off you know it's much more clear yeah yeah but i can put it to blur it and have some uh some nice heat distortion to it now also added another component to it because now we're using these flames but you can also use the position of these flames to emit sort of like fire sparks or ambers in a way uh and so this is essentially what i did i had an event here that triggers an event rate over time uh 10 particles per second and we had this all uh this simple graph of some turbulence noise added to it to essentially produce some sparks running off the body all right yeah and yeah random lifetime random velocity and just the simple so these sparks just like before are actually are they coming out of the same points that the flames are coming out of it's not coming off the mesh just to remind everybody it's coming from this point cache that you generated exactly is that can we re-visualize that point cache is it still available to be revisualized yeah absolutely so um let's uh actually just for anybody who might have just joined they might uh get that idea yeah there you go so all the flames uh these are all basically the spawn points for the the the flame effect textures and for the uh the embers that are coming out here it's like a really intense amount of particles coming up but for the embers that kodran just set up he you know so much lower emission rate because i mean it's not really realistic for a fire to be releasing this many this many particles unless it's some crazy crazy fire yeah crazy i don't know oil fire or some stuff yeah this looks more like when you're welding something the sparks that would come out when you're welding something right so yeah yeah uh yeah should we jump into uh our apocalypse scene yeah let's do that so good opportunity for you guys to see uh something more grounded um and we've set up this little scene for you uh what pack did you use for this uh kodran i think is the apocalyptic world pack uh nice yeah so this is another pack that's on sale uh the post-apocalyptic uh world pack uh all kinds of apocalyptic assets like run down cars and flags and destroyed buildings uh bunkers and all that kind of stuff uh all available in one package i believe you picked up random assets from within this package and you just put the scene together yeah yeah i put it like uh yesterday i think in like 10 um 15 minutes uh yeah everything here is made by me i just quickly strapped some things around and made it work with it with perspective um but yeah different cars i kind of wanted this like okay this car crash and some pizza box there some dumpster here uh like here freedom gate uh but yeah it was a surprising astonish because uh this pack actually comes with a a lot of lods it seems like a lot of the packs we use today features a lot of lod so really performance optimized you see things changing they're really thinking about like game development with these packs right like yeah you know if you're further away from the object the level of detail will change to be a lower poly mesh uh so that for optimization's sake right so you're not rendering all these uh triangles all the time right um yeah yeah so this asset this pack is 50 off on the asset store right now if you're if you just joined we mentioned that uh the discovery 2021 sale started yesterday on the asset store uh we've got a bunch of the top assets in 2021 that are on sale for 50 off right now from tools to uh to uh art assets art packs like this uh so go check that out we're gonna put it we've put a link to the main sale page in the chat it's uh it's back up there again and yeah so we basically pulled this use the apocalyptic pack and now we're gonna set things on fire from that pack right so some of these unique silhouettes because like you know if you you know you could we could just put like a flat plain fire effect and drop it on the car but you know things might not match up perfectly they might not clip there might be some clipping it might not look quite as good so we really want the silhouette if you want to light this car on fire we want it to look realistic right we want the silhouette of the car to be on fire so we're going to have to do the same thing we did with your body right codry and take this car uh if somebody just joined that would sound really weird right out of context out of context we just lit coaching on fire everybody in case you weren't casey just missed it so we're gonna turn this uh into a point cache the car right and then and then and then light those points on fire so uh let's do that so uh i'm assuming the car right okay we're gonna go for the car all right all right cool yeah so we're gonna go back into the point cache tool i mean uh like i mentioned and for those of you who uh just joined by the way i'm just gonna show it again it's in window yeah make sure to center it on the screen yeah window visual effects utilities point cache big tool and i'm gonna center it here and there's a tool that comes built within unity or vfx graph in particular it really is meant to work with vfx graph it's only going to get better visual effects graph team is an amazing bunch of people really very supportive um yeah so our instinct right now is uh basically to take this mesh hold up guys i'm just gonna like close my blinds a bit don't worry it's always like the uh the sun scattered time of day it's like shining on my arms yeah it's hot today doesn't actually like being lit on fire guys yeah no i don't like that much heat uh for winter most of the time so let's just uh select our car and i'm going to notice our car prefab is here and we're just going to isolate it here we're going to try to find its uh mesh filter uh which is here okay so this is what it will uh what it will accept um sm vehicle car one okay and we kind of want we don't really want to change the amount of point sample that's 4k is more than enough even like lower five uh 512 is okay um stick to if you're not sure stick to uh exercises texture dimensions like ak 4k 1k um yeah we want a random distribution we probably don't want the colors because it's just flame so we're going to save it up um i'm going to put it into our nice folders here you want to make sure to stay organized i have like my meshes my shadow grab my textures my subgraph and my point cache in all separate folders and car on fire i'm just going to save it and i'm going to tuck that tab out wait go into our sorry guys go into the vfx folder go underneath point cache we should see that we now have a car on fire and we put a big four for 4k points 4096 and we essentially just make the normals in the position and we're going to use that great we have a good question uh from meme meister gaming uh um he says um they say i'm still missing the point here why use point cache when a shader slash so shader outlines that shader graph can do a similar effect so that's a good question because uh you know there's a lot of things you would seemingly be able to do in shadowgraph but fire right the outline effect i know exactly what you mean you you when you push the vertice vertices down or outwards and create like a different uh outline based on the z-pass uh that's fine for most of the stuff you have but you can imagine that fire doesn't behave like that in actual real world scenarios if you have an outline like this and they just stretch it out like like an as an outline and add it like a background fire texture it's gonna look a bit weird it's not gonna look like it's grounded in three-dimensional space it's just gonna look like it's grounded as a material and this is the nuance is that if you i think we have a reference here um i think uh or maybe not but if you guys remember or if you play red dead redemption 2 like the molotov cocktails or the molotov cocktails in a lot of games you throw one in it starts to spread and it spreads and as soon as it reaches like a threshold point on a silhouette it the whole silhouette catches on fire and these are just points or billboards stuck on on the object itself and really plays a huge important role into selling that effect because it's more ground in 3d space so they're very separate things uh but it's good it's a good point because you might think you could use it like in shadowgraph which you can but if you want to use it in a more aaa context uh point cache and skin mesh renderers are the way to go really yeah thank you for the question very good question yeah uh yeah sometimes you know we have all these different tools and you sometimes you can achieve the same thing with different tools uh uh it might come down to which tool you're more experienced it might come down to which one is which is the more optimized approach and then in this case what is the better option here yeah as you're saying i i just wanna i just wanna add like um i'm not a one size fits all kind of guy i i always tend to approach a problem with the the best tool at my disposal uh in relation to the project needs some projects maybe because they're on mobile you kind of need to just make it all in and shadow graph right but for the most part you want to use the tool that's much more suitable for this kind of things and it just happens that visual effects graph is so much more easier to work around with for these types of effects um because they're going to be grounded in 3d space uh like you know so many uh good things out there are going to like vanish and they're going to vanish outside the bounds of that mesh and there's there's enough just things you can do in the vertex pass easily on a shadow graph uh you know just thanks thanks guys was mostly asking because i am looking at prototyping some of these effects and was leaning towards shaders you are more than welcome and you don't stop yourself from using shaders in conjunction with the vfx craft go for it yeah yeah you use them in tandem all these things all modern aaa visual effects they're always using particle systems and you know and shaders when you use them together you get like really cool stuff happening and the more stuff you you can layer and work uh and you can time correctly and tan them with each other uh the better it is the more the more quickly the better you're gonna be able to sell that illusion in real time so yeah feel free use both of them by all means i use both of them all the time all right yeah so let's light this car on fire all right let's uh yeah back where i was uh burning object post apocalypse i made a an actual all right so i'm going to drag the graph that we used i mean at least a copy of it you're going to see that uh it's a very weird because it's using my silhouette of uh the mesh right it's still using that point cache that we saw there yeah but what we're gonna need to do is uh essentially because we have the setup uh done right here we're just gonna need to switch it with uh car on fire and now we have uh a car that's on fire except that it's not oriented in the right direction it's probably just like facing downwards you can you can probably tell that's the silhouette of the car but standing upright yeah exactly and this is because we previously used a transformation uh matrix to shift and offset our myself by 90 degrees because it wasn't aligned properly but this mesh seems to be aligned well enough so i guess we can maybe uh just remove it and now you see it's um let me just uh pull it up so you can see it a bit more ah looks okay it looks more flat you can see there's more of a select going on here and now the only thing that's left to do is essentially overlay it or parent it right um and you get a burning car there you go you can imagine if this was just a square plane it might look awkward at the end at the corners or on the sides but here it just lines up perfectly yeah it basically looks like this car is what's on fire yeah and ideally also in a game dev an actual game dev production environment you might have like a basic shader template that people are going to derive their the materials from and sometimes you don't want to overload that basic shader template with additional effects effects effects and toggles because that's a lot of sugar compilation um sometimes you just want to keep things a bit separate uh up to you really and your whatever your needs are uh yeah we now got uh a burning car with just a few clicks and with some built-in tools inside unity thanks to the vfx craft team perfect incredible all right so what do we do we want to quickly set one more thing on fire track what do you want us to set on fire in this gonna scene in all right so you can just wait and see we have like two buildings some debris here we got dumpsters we got the breeze we got sandbags the building the dumpster okay we need to set the dumpster on fire you guys want a dumpster fire dumpster fire all right let's do that you know what else was the dumpster fire what our rehearsals yesterday oh my god nobody needs to know about that no no no smooth so many stuff going on behind the scenes guys uh i think um yeah you know people people should realize how much work hassan and carol put into this stuff that's crazy oh thank you no no no no no no i'm not looking for compliments um so yeah we got a dumpster here uh we would see yeah we needed some mesh uh so um yeah we're gonna need the lod level zero the higher definition one right yeah so we're just gonna click on this line more defined yeah now we're just gonna put the dumpster here um i'm gonna bake it also 4k uh random distribution as well save the point cache uh go back into my stuff always keep your stuff organized otherwise it's always a mess and dumpster fire dumpster there you go i'm just gonna save it as a point cash and i think we got it so now we have a point cache time to uh create our joining us npk i'm just gonna duplicate this and call it uh and essentially drag it into our scene now you're gonna see um we still have the silhouette of the car so we're just gonna shift that around and put the dumpster on fire it's very easy as long as as soon as you got that system rolling on really changing and adding objects is is quite easy you you just basically you make the fire uh graph once and now you can just apply it to every object and it just saves you so much time yeah every mesh you have in the in your game absolutely and this is what it's all about i mean more time for iteration more time for development yeah um this is really what you want uh in a game dev scenario and look it's uh it's really nice and because we have soft particles and not enabled watch what happens like when we change our point of view because of the soft particles clipping you get like different more like uh fade ins and fade outs like that kind of make this stuff look more interesting right um yeah we got like a dumpster fire and a car fire right now and maybe the dumpster fire is a bit too much on the spawn rate let's actually just uh spawn like 10 particles per second so we we get a bit more not as intense but it's still looking nice amazing you know what the scene is it's really looking like uh like when you zoom out now it's really added like movement to the scene looks a lot better than it did when we first looked at it yeah i think the only thing we're missing maybe from the scene is some reigning cauldrons can we just drop that in very quickly can we just drop that in we can chuck that in yeah yeah i think i think that's what we're missing we're missing we're missing some reigning men uh is this where i put them oh i guess they were just raining houses no don't burn the house there you are this is what she asked for definitely definitely the post apocalypse oh great see this is the final playing around with it i guess we forgot to switch it back to the reigning cogens but uh oh yeah it's all good that's all good i think yeah this is the perfect way to end the stream uh i just want to thank everyone uh for for for joining us thank you kojon for putting all of this together that was really incredible we learned about sine waves and modulation modulation noise and randomness we learned about using texture as data point caches and we saw some really nice examples along the way thank you chad for your incredible suggestions uh we've given you the like the fundamental tools uh to build off of this uh you can now you can basically produce what we've done in any engine right clojan like you could do this yeah uh is not limited uh to unity but vfx graph is just is a wonderful tool that allows you to apply all of these principles that we learned today yeah a good way to think about it is that all these tools you see in all these different engines are still built around the same principles because we all have the same needs so sine waves are going to find even real or maybe godot i don't know if godot has a variation for that but uh you can find uh you know point caches pretty much anywhere like you you do them at houdini as well these are some concepts that kind of get you rolling and same thing with noise and randomness and forces i mean that's universal when you're talking about tech art this is our bread and butter uh really to make stuff happen but yeah don't feel limited i just wanted to teach some of these principles and the three-hour time we had sorry if we uh if we maybe wanted to have something more specific but we try to make the most out of uh what we had oh yeah let us know in the chat what you what else you'd like to see from a let's dev stream uh uh jump into the repository we're gonna put a link to the repository again to check out everything we made today please feel free to use kodrin uh kodran's mesh do some fun things with us and tag corjan on twitter we want to see what you do with that yeah please show me yeah please show us uh all of these um uh like assets uh and all those are all of the effects we made today will eventually go up on the asset store as a vfx essentials pack and uh please stay tuned for our like uh next episodes in this series uh remember that like uh the backdrop for all the effects we made today were from the asset store we have the discover 2021 asset store sale ongoing uh right now uh 50 off some of the best assets of 2021 the post-apocalyptic asset the animals that we were dropping from the sky the meadows where the falling leaves were these are assets are all on sale uh so so check them out uh and stay tuned uh next week and yeah congratulations to everybody who won the lego minifigures next week on monday uh we'll be giving out more lego minifigures on our next stream uh where we'll be playing lego games from uh that are being archived in the uh the royal danish uh library uh we're playing games from the lego ideas contest so join uh alice uh carol at unity for for that stream that's gonna be uh that's gonna be really fun uh that's monday as well uh so yeah thank you so much thank you everyone for joining us thank you again kodrin and uh thank you so much and uh yeah thanks for having me and uh you know uh give me that space to uh spread that knowledge as well absolutely can't wait to do this uh do this again with you uh looking forward to it all right i appreciate it thank you everyone thanks for joining us ciao
Info
Channel: Unity
Views: 42,773
Rating: undefined out of 5
Keywords: Unity3d, Unity, Unity Technologies, Games, Game Development, Game Dev, Game Engine
Id: hXjNC8pNOTE
Channel Id: undefined
Length: 156min 8sec (9368 seconds)
Published: Mon Oct 04 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.