Houdini for Games // Houdini Illume Webinar // Luiz Kruel

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
you hey everybody my name is Luis and welcome to this webinar I'm really excited to be able to share some of the stuff with you guys you might have seen some of the work that was done at GDC about this kind of game store shelf and these vertex animation tools I've gotten a lot of good feedback from everybody and I just wanted to take the time and do kind of an informal presentation of just kind of me going through the the workflow myself so you guys can see how it's actually done and if I know a couple of people have run into little snacks here and there so this is just a good way of clarifying questions I'm you guys can post questions and then Chris is also on the line and he'll kind of forward them to me we're gonna save some time at the end to do some Q&A so I'll just get started the other thing to mention too is that Chris will be posting a couple of links at the webinar I'm not sure if you done already of files that you can download basically where you can download the project for GDC and then where you can get the latest HDA which is going to be in the new github which I'll talk about a little bit but just as a general introduction you guys might have seen this project but if you haven't this is similar to what we're going to create we're gonna create something a little different just so it's not the same thing again these files are up the source and the project is up on Dropbox and there's a Vimeo link that we'll share with you guys to get to it if you haven't seen it write it but you can just google it and you find it but why are you seeing here is basically all of these simulations are being run by textures and then the cool thing here is that we're actually siming everything in Houdini and then exporting it out into unreal using textures which they look something like this and then in the shader we're recreating that motion and playing your back so we have four different ways of getting the data out so the the simplest one is this cloth and I'll go into a little bit of detail when we're building it but the idea here is that you have the same topology running through the whole simulation and then what we're doing is we're just setting the positions and the normals of that mesh as the the time passes and then we also have fluid which is the kind of more sexy one in the more expensive one which is you have a similar technique where you're just going to setting the positions and the normals but you are doing it on something that is changing the topology so this is you can do fluid I have water and just liquids and you can also do explosions and kind of volumes with it you can see and this one it doesn't show as well as the one that we're going to show built together but you can actually get color information into it and then run a ramp through it you can also do rigid bodies so this is actually it's basically a static mesh that you you're playing back animation using these materials and these are really really cheap because basically you're storing the animation per chunk so if this see what how many drinks this has so this has 50 chunks so the texture as you can see is tiny is basically 50 by 120 419 which is actually the size of my admission so we'll get into the the size of the textures in a little bit in the future as we go through it but you can see how a pretty lightweight and you can get that playing back as you would a skeletal mesh and then finally we have the sprite technique which is if you wanted to do basically a point Sonic like camera facing sprites and you just animate some points in Houdini and then you bring them out and they play back as a camera facing cards so the project that we're actually going to work with is this one and I did this as a dry run to just kind of see if I could do it and if I hit any snags but the idea here is you have the same kind of cloth technique that we showed with the other one same rigid body but the fluid is going to be a little bit different I'm actually going to show you guys how to get a ramp in there so you can see there's a little bit of the the temperature playing back into it and then we are going to also make an emissive version of that material because for fire you might not want it to be a opaque material you might want it to be a missive and then I'm gonna get the time permitting hopefully we'll get to the sprite once and then that is going to be affected by the the fire simulation so you can have the little embers playing back the nice thing as you can see this is full full 3d mesh but it looks it looks pretty decent and then the idea here is that this is kind of ideal for VR because you can have full full volume as opposed to just having kind of like a cheap trick with a card but that's that's what we're going to get into it so let's just jump right into Houdini and then again the HDA is currently in the build but there's a few things that I've updated even some I'm just kind of fixing bugs and fixing little little comments on the the shaders in unreal so I'll get you guys an updated one and then it hopefully will be in the build trick way so let's hop over to uni and then I just have regular Houdini 16 there is this new game store shelf I'll take a little bit of time to kind of explain you can just add it by going here shelves and there's gonna be games if you have good in yep there's a few tools up here a lot of them are to dealing with Laurel Maps and cops which I'm not going to get into it today but the idea is just you have some ability in cops which is our compositing Network to basically manipulate images normal map images so you can generate a normal map from square scale rotate em and there's some stuff there's also some tools for flow maps which are another webinar altogether so we're not going to spend time on that but the idea to create a flow map be able to guide it with curves drop an obstacle like a sphere on the path of the flow map and have it deform and then be able to export that to just the vertex color so you can then bake it or get it out however you need to for your game engine make loop we're actually going to use today so the fire is looping so I'm going to show you guys how to make fire loop by just with the simple node texture sheets is to basically write out a sprite sheet from your camera it's gonna be outside of the scope of this stock today just because it takes a little bit to render and I don't want to waste everybody saying I'm already going away some time with just caching and then there's rigidbody - FBX which gets the destruction much like that big exploding if you don't want to use the texture animation you just want to bake things out to a skeleton you can do it that way and finally the one that we are really going to talk about today is this vertex animation textures which you can use the shell tool and that one is pretty up-to-date but there's still a couple of little things that I've fixed in the latest one that hopefully will be on the build soon so let's start with the cloth first off and I'm gonna go I'm gonna try to go as fast as not possible but trying to give you guys enough time to digest the data and and kind of go off on tangents this is not scripted at all so if there's questions that are relevant Chris will interrupt me and kind of pitch in and so let's just get started because I like the pig head I'm gonna be dropping a lot of pig heads today and most of the effects are gonna be based on that so we just drop in a pig head and then all you have to do to make this glitter collidable is you go into the shelf tool hit collisions it's static object and now the simulation network that's created and this is actually a collision object so that's all you have to do for setting up that so the cloth collides against the pig head for our cloth itself I'm gonna drop a grid let's make it a little bit smaller and like we can show ghosts other objects so I can see what I'm doing maybe let's do five by five move it a tiny bit up maybe two that's too far point three so that's about good and then all you have to do for actually making something cloth you just hit the cloth button and you're gonna so like the cloth object and that's all you do so what we do here is you just place press play and hopefully things are gonna start colliding and that's pretty straightforward so that's basically the effect as you can see it's kind of chunky because the resolution of the cloth is not super high so here's something that blew my mind recently you guys might know that W is to turn on wireframe and that's a pretty well-known shortcut but if you hit W to go back if you hit shift W you got shaded which usually I have to come here and wireframe on shaded oops do that kind of stuff um so that kind of changed my life recently and hopefully will change yours too so let's see okay so that's super course if we go back to our grid we can see how many polygons it is so it's 100 polygons so that's super low let's crank that up a little bit so let's try something like 25 25 and then if you middle mouse over the node you can kind of see how many points that is it's still pretty low so 600 points let's go up to maybe 50 by 50 and let's see okay 2500 that's gonna take a little bit but we can take some questions where it got a chat a little bit as things are swimming yeah so that's pretty dense but if you hit play it's going to do its thing and I will do some singing dance well it's cashing or I can open another one well we'll go into unreal and we can kind of circulate with it okay so let's now it's gonna cache beautifully the other thing that I did do and I'll drop this in I'm gonna drop this down to something quick just so we could see what the hell we're doing the other thing you can do too is drop a ground plane so sometimes if you have weird geometry it will kind of drape and kind of fall off the the edge of the earth so one thing you can do is you can drop a ground plane and you can move the ground plane down a little bit and that will kind of keep it as the kind of bottom bottom most collision for your simulation so let's just let this rip so one thing that I do like to do is we're not going to touch that geo is actually so if we run this it's going to take a little bit and then it's going to be cached but then sometimes you might notice that as you're doing things it might kind of have to recast itself whereas you're exporting it's gonna have to wreak and this is kinda you can scrub it but it's it's okay what I like to do is drop a file cache and then what I'm gonna do is actually I'm going to save this file first and then we're gonna go into the webinar and let's say this is gonna be cloth live and what the file cache node does is basically write out the geometry into the hard drive which is nice because now we can just write it off to this I'm gonna have to deal with it before joining side effects actually never use this in production and I always complained about how it's always wreaking my stuff and then I learned that that's usually what you want to be doing you want to be dropping as soon as you have something that you like you'll just drop off a file cache so we can also check it to look from disk and that's gonna error because there's nothing written out to diskette so if we just hit save to disk a little dialog box is gonna come up and you can see it goes fairly quickly and if you're doing something that's kind of longer usually you're going to blow out of memory sometimes if you're doing something that's like a cloth seam that is super detailed so writing things out to disk won't allow you to kind of keep everything in memory which is nice and you can see now I can kind of this and do whatever I want in that way yes with the simulation work community yes it will but you need to write the unity shaders so that's my next ask and which I should have started this week but I did this instead yeah absolutely it will you work in unity you will need the unity shaders which you can write yourself and I will show you how the Unreal shaders are set up so if you know how to write unity shaders it should be fairly straightforward if now you can just wait a couple of weeks and that's literally my next task is to write the unity shaders thanks for the question and then please please keep interrupting me because just there's enough content to kind of keep adding things out especially as I'm caching things so please interrupt me so now we have that the other thing that I will want to do here is I want to go up a normal node just to make sure that my geometry has normals and because I want to write that out to a game and then I want them to be on points because I don't really want to deal with the vertex normals right now just because it you're gonna have to do a vertex split because of the way we're writing the textures out to or writing out the normals out to a texture it's basically one per point so if you want to have split normal story there's two normals per coin you have to do some shenanigans and basically doing some vertex played for for brevity sakes let's just put in a points and move on and okay so now we have that and now the setup is complete for your file the other thing too is like if you guys know this real time if you want to play that a little bit faster you can click that then what we want to do is this is another kind of thing that I've just started using since I drew in side effects about a year ago is this out context so we Houdini you might notice that we call like chops ROPS adopts all of these ops things pops so shops is this object contest cops is the image context which is for compositing and then there's this rap which is for rendering operators and what the render operators do is basically set up a little change for exporting and in game context that's basically your exporters so all of the tools are a lot of the tools that are kind of exported based so like this all these three tools are all in these out context so if you a common thing that people do is they'll come here and they'll be like okay vertex sending me it's like where is it and it doesn't show up it's because you need to go to the out and that's mostly an organization thing I know that there is some wrap things up here so there's these guys that people like to use so some people wrap network but you can basically rock right out the geometry from here or rather olimpic from here but the really nice workflow is they're the proper work clothes to kind of come out into out and do it so let's do so I actually have three vertex animation textures the one that we care about is this beta one which is the one from github that you guys will use the one in games is the one that you're going to have by default and this digital asset one is just one that I have for development and working so once you get the things out of github which let's just go into a site danger really quick because I like change ins this is what if you guys are familiar so there's this github comm side effects game development toolset that Steven Burchard up started maybe two years ago at this point and it kind of went to the wayside a little bit when I joined the idea was that we wouldn't need to use github anymore we could just build things straight into the the Houdini build but after talking to people a lot of people really like the idea of us being able to develop tools and putting things up and they can get it immediately and then we can use github as a kind of hardening location where the tools can kind of mature a little bit before they go into the build so I'm starting it back up by default you're going to be dropped into this foodini 15 branch which is you can see Steve Spurrier's little head there and the idea here is that we have this development branch which has the new stuff and you can see there's a little bit of a change so if you're looking at it that you're in the right place I can I know I talked a little bit about the different things that were doing so the life development is basically as I'm working I'm going to be dropping things there so you can grab it if you watch us in news and announcements and stuff like that we'll be posting things there and yes we post it in the chat window anybody that's trying to find it awesome thank you and then the other thing that we're using is Houdini sixteens has expanded HD ace which means the HD ASR folder as opposed to a single file and the nice thing about that is that you can actually diff diff the files so as you're seeing these you can see in my LTS right now I only have the flipbook generator the vertex animation texture and an update to the flow map to color so you can see like these are all just text and you can go in and kind of see all my changes but the idea here is that you will go into game development toolset switch to development you want to download the zip file and then once you have the zip file you can open it and if you want you can just take the OTL straight out of here or you can just install the whole thing as instructed here so that's a little site Daniel amount github and what we're gonna do with it the idea is that all of the tools that are currently in the game show itself will eventually come here with updated versions and then there will be this nice cycle of things will get developed and github and then move back into the main Houdini pose so PSA over let's go back to this so we dropped this note in you can see just a single node in here let's go through the parameters a little bit so we have this method and those are the four things that I kind of talk to you guys about in and real so there's the soft which is if you have same topology rigid fluid sprites the interface would change a little bit based on each of these so you can see how that works for our case we want soft because we basically have the same topology throughout the set up the export node is the node that we want to export so in our case we want to export the grid and actually if we want to go more precise that's export it would be the file cannot be in the normal so then the nice thing to do is always but no or not put at the end of your things all it out and that's so you can work a little bit better so the other little tangent that I'll go into is on the set up so I started to kind of like a couple of different set up so hitting Pete will give you the parameter windows right here which will kind of give you a nicer interface instead of having things kind of push together the other thing that I will do is use the new quick marks in Houdini 16 so if you hit control 1 it's kind of like an unreal where you can drop off cameras you can basically if you move it around and then you hit one it kind of jumps back to where you you dropped it so what I like to do is I like to drop one in out which is in here and we can kind of see my parameters and you drop another one with control two so now if you're kind of going back and forth it's super nice to be able to just kind of hop around the network and it's not this like oh let me go back here kind of backspace and then you're kind of lost so it's as you're iterating sometimes you have even three or four to where you have multiple objects that you kind of play with then the geometry path I'm just gonna leave the defaults which is basically wherever my scene file is saved what's the hip I'm gonna make a subfolder called export and I'm gonna name my meshes whatever my thing is called my scene is called underscore mesh and then whatever my scene is called underscore position I don't want to pack my normals into the Alpha and this is an optimization that if you don't really care about the normals of the scene if you're doing something that's emissive and you just kind of want it to be mostly there or if you're really crunched for space we do have an optimization that lets you pack the normal into a single channel as you can imagine that kind of compresses the snot out of it and that's it's it's it's in there if you guys want to use it and it sometimes it's useful especially if in something like the fire that you don't really care about the normals and you just want to kind of get something quickly okay so that's all we should need another quick question that people usually have for me is this normalized zero to one space is basically if you don't check that you can't use low dynamic range images which means you have to use an 8px R so here if I change this to Targa it would work but for my case I like using HR so just so we don't have to worry about anything the other question that I got is these two fields why do I type in here these are just for the real-time shaders so you shouldn't have to type anything in here unfortunately I have to leave these unlock so you can copy/paste you can't copy and paste this number but this number is usually an integer so it's easy to copy but these numbers sometimes got crazy broken so I left this on but once you hit render these will get filled in so don't stress too much about them if we hit render this will pop up and hopefully I can catch it fast enough to where it went and you can see how it basically generated those two numbers and I have my OBJ's or my FBX and positions exported so now we're back now we're ready to go into unreal and this was a little bit longer than I'd hoped to kind of get the setup done but at least you kind of show you guys a bunch of little site changes so if we go into that project and let's make a new folder in here let's call that live cloth and let's import our mesh so it's gonna be this live life live mesh normal in position let's open that in the false are fine and it's gonna say no smoothing group that's fine because we really care about or routine it as an export out schooling group information it writes out the normal explicitly into the meshes so that doesn't apply so now you can see we have these textures and what the hell is going on with these textures let me pull that cross close some windows on my other monitor to kind of make it so you guys can see it my webinar window is finding my unreal window so give me one second okay if I can drop that across so four cloth in particular what we're writing is actually Delta positions from the first ring so in my first few frames the cloth is really not doing much so you can see that it's gonna there's not a lot of information but then as it starts to the form or writing on information and every frame is a row and every point is a column so as you can imagine we have maybe week we dive into that a little bit is on our mesh we do write out a second UV set which is hard to see in here but we can go into Houdini and see it so we have this first UV set which is just a plane of projection that which is what my mesh head so if you want to do like a flag with some texture on that you used to have full ability of customizing that the second UV set is actually just a line and you can see it here where basically it's every single point on the mesh in sequence and what we're doing on the shader we're just moving this line down and that line is actually reading this texture so if you can imagine the UV coming here and then just sampling the data and then as its animating its kind of moving down and then once it starts to hit some data it's basically just reading whatever value is here and then setting it directly to be the position of the the geometry that's essentially what it's doing so we have two textures written out so we have the normal and the position it looks like a normal map because we are compressing it to be from zero one so it kind of it looks the same way because we're using the same trick as a real normal map does and then but as you can see it doesn't match the UVs at all there's just kinda it's purely data and because it's purely data you can't compress it because if you did any kind of block compressing it would completely garble the data so that's the one kind of limitation for it but as you can see the textures is the size of the having points you have times or ever frames you have so in our case it's a hundred by 239 which is tiny so it's it's it's not awful so okay now we have our mesh we have our textures we're missing your material so we open up the default material that kind of gets generated and it's just a flat color and then you go okay how the hell am i doing this but if you're not you can either use our project that is there and order it has the materials we're shipping some data with the Houdini plugin that you guys can also see but the way that I like to do it is if I go back into Houdini I actually added some of the shader code for Houdini or for unreal here and we'll figure out a way to do this for unity as well once we get down at that point so we have the shader code for the soft rigid fluid and vertex so all you have to do is you come here control a copy hop over back into Andreo paste and it actually drops the whole network which is a nice feature from unreal I kind of unpurchased put the the notes on the other side on the right side of the main shader block or the material block and then all of the other stuff would be on the left so you can kind of know how to frame it and I don't care about my frame rate because I am recording and showing my screen so you can see actually it's it's fairly commented to where it no it tells you how to connect everything and a couple of notes so one of the notes is to make sure that tangent space is off so because we're writing out the basically world space UV our normals we want to turn off the tangents and then we want to add some custom movies it's saying to add three channels so it's it three and I'll get into that once we kind of break down the shader so we connect this to base color this specular this roughness this the normal world position offset and then there's a - you've eased you're gonna be down here somewhere so this goes into custom u v1 and this goes into custom UV - alright so now let's see what the hell's going on on the material and this is the only one that I'll kind of go into it it's it's looks scary but it's fairly not complex at all so the first parts that we're gonna start off with is basically this little part so what we're doing here is we're actually just taking the time or multiplying it by the speed and then we're doing basically flipbook mass so in our case it's okay if we wanted to interpolate and kind of move the UVs down I'm so kind of like as we're moving it down on the texture it's okay to kind of plate it but if you have more than 8,000 points what we do and it really like the the logical limit that's another question that a lot of people have is how how big can I make these things until it starts to fall apart we found that about 6,000 points or 6,000 pixels the precision starts to kind of hurt so we try to keep everything under like around a 4k or a 6k so if you have more points then you have a texture resolution on the X we actually break the UVs and then we give you 2 rows of UVs so instead of kind of having one long row you can actually have as many rows as you need and then in that case you're gonna have to move in chunks and that's what this is doing so it basically figures out how many number of frames you have and then it kind of lets you kind of hop the blocks together then we kind of add that in so we have the second UV set so it's next ordinate one we want to split the red and the green so then the green is going to be the vertical we're just adding that offset into it and then we're sampling the position map which is the one that we exported out this is for basically normalizing the data so if you choose to use a low dynamic range texture we take that bounding box Max and min and just unpack that zero to one to be within the range that is specified and then this basically does all of the actor transform so if you rotate scale or move your actor this little node those are the conversion for you and then you finally funnel that into the world position so really not a lot that's going on so basically for all intents and purpose we're figuring out how much we need to animate the UVs by we had the UVs together we read the texture we unpack the data we shoot that over to the world position offset this is some math for unpacking that single channel into float three I won't get into the math for this right now it's beyond the scope it's something that you guys if you guys want to dive into it it's there but I'm just gonna skip ahead and say that we have a custom normal map so we kind of use the same movies we simple the normal map and then choose whether or not we're back in the normal and then this is where it gets interesting so a lot of people before I had these comments they would just take the normal map and then funnel into the normal and then they'll be like hey Louise that doesn't look right what's going on so this normal is actually evaluated on the pixel shader and this world position offset is evaluated on the vertex shader so if you know about the kind of vertex v planes you the mesh comes into the graphics card it goes in terms like the compute shaders and some other stuff that happens before but essentially like apps are some point it goes into the jump the vertex shader where it basically can do anything to the UVs to the positions through the normals and then it takes that data and then it puts it into its screen space and then it moves it over to the pixel shader and then in the pixel shaders where you kind of have per pixel information and that's where most of the math happens so this stuff happens once per pixel and this stuff happens when pervert we want to simple this texture once pervert we don't want to send it per pixel because we're doing things on the fertile level so to do that we actually have to stuff it into the discuss the movies together so they can get passed into the pixel shader so basically there's disgusting movie 1 & 2 and we're basically just you stuff that in so it gets handed off and you're gonna pick it back up on the pixel shader here using the text record and it's much like this one so here now if it makes sense in this area I'm working on the vertex shader in this area I'm working on the pixel shader and I'm just gonna getting the hand off of the same data I'm kind of building it back together because the texture coordinate only has two channels and I want to use three channels I'm building it back together I'm normalizing it and then this is some shenanigans that I do so you can like the backsides of the cloth which I can show you guys what that looks like but this kind of went for long enough so we want let's see some cool stuff so basically this connects a normal that now goes into the normal and you're done if you want to kind of do shenanigans with colors and any North misses which you didn't get connected you can do that here and this would be your normal kind of shader land that if you want to do extra blending and some other stuff that would go there okay so now we have this material let's make a material instance let's call this live cloth mat and let's assign our textures so now you can see we have all those parameters we want to override a couple of things so we went over I the position and that's going to be this guy we want to override this back normal because we don't want to pick my normal and we're gonna override the bounding box and the number of frames last year so check those okay so now we have a normal map because we unpack that set that in this is where you want to pack that data so in our case because I was lazy and just used up the faults our number of frames is 239 but the max and the min are over here so let's just copy paste and then let's go back in and copy paste so now that's all we should have so let's see if this works let's drop in our cloth mesh and you can see this basically it's the first frame of the simulation you clear some space out of my window edge okay so now we applied that and you can see that is exactly what we rendered out and it's playing back so now you guys have a whole thing and all this took a little bit but you have a whole soup-to-nuts beginning and all the way how to kind the whole system works so now we can kind of start having fun with it and kind of playing with it so the nice thing about this technique just with this one thing that you guys already know how to do and you know how all that kind of inner guts work you can do cloth so you can do flags you can do tarps you can do anything that's cloth related you can do hair so you can have I know a few people already doing this to where they're they're animating hair on a character for like a cinematic and then they're playing that back using this technique you can do skin meshes so if you want to have background animals like fish or uncharted for use the similar technique to animate chicken you can do that you can do soft bodies so can do those as well so there's a lot like if you want things animating and just kind of the for me in melting as long as the topology is not changing you can use this and this essentially is the same technique that epic has using that kind of vortex animation texture and this is working everything started from so they they did that part and then Norman char and Mario Palmeiro did it over in tequila works they kind of took that and kind of ran with it and then again my suture post and I kind of talked to them a little bit about how they did it and they're nice enough to kind of help normal has bitten basically helped me through this whole process and kind of get it to to where it is today so nowadays yes Nicholas is wondering if maybe this is a good way to compress Sims and Houdini as well so I'm applying it to uh when rendering it from Andrew yes absolutely and I am planning on after the unity one but you can do this fairly easily is you can just cash this out and then you just have a basically a Bop like a point that can read the texture and then apply that in and that's something that a lot of the film people are having been kind of asking and absolutely you can definitely do that and in theory it should be more efficient but I can't speak to them intro side of things but yeah great question and keep it coming because this is that's a two-way street but yeah so that's basically cloth in a nutshell and you guys can do some cool stuff with that so let's go to the next one which is gonna be this rigid body one so let's just make a new scene in Houdini save that new scene this is kind of fun because that's a bug so let's drop this geometry strap our favorite big let's move it up a little bit it's maybe two let's add that ground plane and so now we have a pig ready to fall let's break the pig up into some chunks so just for brevity's let's just use the shatter and what that does is basically it converts the pig into a volume it has some chunks or some points inside of that volume if you don't have that the points are going to be scattered on the surface of the object and you don't want that you want the objects to be scattered like inside of the pig so that's what it's converted to a volume and then that's gonna apply to the for annoy which if you guys know already exploded view I can help you visualize what's going on this is not big enough so I want to go to maybe 30 trunks maybe for teacher let's do 50 jokes and you can see that like you could still pull this off with the joints that are getting into 200 jokes probably a joint setup will fall apart so let's let's also blow the material out of this guy just because I don't want to deal with that right now you can't apply kind of inside and outside materials and have that work as you saw in the other example but let's just skip that so we can delete that attribute so let's do maybe not 200 because that's a little bit excessive 70 just so we can render our fast and you can see how fast it is to kind of just move it and the whole thing is live for people that are new to Houdini that usually blows their mind of just be able to kind of like going back in and a lot of fine things okay so if we take this out and then we go into our rigidbody shelf and we hit fracture object and this is important fact you will impact enough fractured so you get packed so like the body go and boom so now you have a big falling and a shattering this is cool and it's usually the first thing people do but it's not good enough for us we want to do something exploding we want some motion so I'm kind of a little bit more interesting because it's a game usually things are not just about dropping unless you have a game that does that but in our case we want things to kind of go boom so what I like to do is once you have this kind of setup we create a sphere and what I want to do is I want to basically transfer the normals of the sphere to be the velocity of the basically the initial velocity of the pick chunks so if you can imagine and one things to kind of explode out and the way I'm doing that is a Miss good make the a sphere I'm gonna make at somewhere to it and then I want to transfer the normals to become the velocity of the points and then that's all you need so I sad some more resolution to it that's not a normal okay let's not it make sure its points and you can see you got that and then I'm gonna go into an attribute wrinkle but let's not do that yet so let's do that later first let's do so you're gonna have to do it attribute transfer to basically they get the velocity from this into this but you do need a wrangle so this is a scary bit for people so I want to try to take the time here and dismiss defy it I could have done this with just kind of pops and kind of changed but I wanted to show just how easy and unscary that code is and I know that it kind of got me for a little bit too and I was scared of using it but as you start using it it becomes less scary so we have normals in this attribute right so we have if you're going to the geometry spreadsheets I'm not in this guy this guy so I guess not why is it that it's Bend okay so we have some we're almost here we want to make a new attribute that is called velocity or V and we want to do some kind of scaling to it because just by default it might be too weak so all we have to do is so the way variables are kind of sign our attributes our sign is with the @ sign so you have an attribute V equals an attribute normal and that's all you have to do and now you should have an attribute called V which is the same as that attribute so that's really all there's to it not scary at all if you want to get fancy you basically put a B in front of it to say that this is a vector so I have a vector which means I have three floats and then this is my vector attribute V V is the name of it and then I have another vector attribute which is called normal our N and then what I want to do is I want to transfer this attribute velocity from my sphere over to my chokes my pack primitives and then if we go over so let's do a quick mark so we can come back to this if we go into here and do a quick mark here in this rigid body packed object which is referencing that we want to check this inherent velocity point for velocity and what that does is basically instead of kind of having an arbitrary velocity you can give it it's actually going to sample it from the points of that back primitive so now if we move it it does that which is a little bit better than what we had but not cool enough so instead of just falling flat as he did now it kind of has a little bit of a goof that is happening so let's kind of crank that up a little bit so in this point Wrangell let's multiply this by a channel and I should call that strings and as you can see there is no channel call strength but I just made that up so if you click this little plus icon it's actually going to make that attribute for you and give you a slider which is really nice so if we crank that to maybe five now you got something that's more interesting and that is so I like what's what's going here but it's a little too uniform right it's because I'm just getting that that's sphere and they're just kind of pushing things out so what I want to do is I actually want to do a mountain here and the mountain is just gonna do some noise basically mash noise so I switched this so because it's just kind of velocities it doesn't really matter what it looks like as long as it's kind of weird and funky and now you got some cool stuff happening so now he said I'm just kind of having the thing falling straight down you have a little bit more more style and you can kind of play with the strength a little bit you can kind of art direct this and the nice thing is the usual traditional way of doing destruction is that you will kind of make another object that's invisible that will kind of shell through this other object and you have this giant wrecking ball and it's fairly hard to art-director it's fairly hard to kind of play with so with this you can kind of it's a little bit easier to kind of play around with it you can kind of get the shape that you want and as you can see the the normals that's basically it's gonna tell where things are gonna go and these kinda like magnitude spikes are kind of misleading a little bit because you imagine that things are going to move out that way and you can do something like maybe get the the position from Center to kind of scale that even more but things are going to kind of go that way and yeah so that's pretty good so I like that a little bit better than just the big falling down you can do a lot of cool things with this so having like a door that's kind of breaking the other thing you can do here is if you want to kind of make the pig move forward you can kind of have this impulse back here and then now that force is gonna happening from there which is a cool trick so that's part of that art directing bit so if you kind of want to have the impulse I kind of move forward and now you can kind of do that so that's you can kind of play with this forever so let's move on now you have the basically set up I think and I might be wrong so we're gonna see if we missed something once it doesn't work now you have the kind of general setup and you can kind of let's get this to be in game you could use this tool shelf the rigidbody to FTX if you want to just scrap that in and bring it in as a skeletal mesh but for our cases I want to get it in as a vertex and missions so let's do the same set up in this case I'm not going to kind of play too much with the materials because you guys already know most of it so we want to change that to be a rigidbody we want that to be our geometry one exercise is fine and then you notice that instead of having the normal texture now have our rotation texture and then everything else is the same so exporting it's going to be doing this one takes slightly longer but really and you can see it filled it out and now these numbers are a little scarier that it's not just like a 250 negative 250 they can kind of do so let's hop over to unreal and that's the real project let's do this project and close these stuff out and let's make any folder as well this rigid and let's import those missions out so now where do we save do we save that thing uh-huh we forgot to save that file so that's bad so I save that as untitled so I didn't go anywhere or that one out feel like my dogs or something so let's save this out as live RBD Pig and now let's render it again and it's done so we can go back into here import bring that in the folks are fine as you can see that's all good some reason banana material let's make a material call this live rigid mat and then same way that we did before you have this guy just go into cereal copy and paste and this one is a little bigger but not really the only thing is instead of doing position so like it's just a little less commented but this is the same as we had before it where we kind of have the number of frames kind of adding it we have Vivi's yada yada read that in sample the transition or the translation and the rotations through the bounding box now we have position and then the scarier part is basically this quaternion math and where we're sampling this rotation and then we're doing patterning and math to get that that rotation to work this is something that ideally you guys don't have to worry too much about but if you want to go in there and see how it's done for like the kind of people were trying to build this in unity you can kind of step through it and see what it's doing and then we also have to rotate the normals to make sure that they're kind of moving along with everything the other thing that we are doing that's kind of cool is we're writing out the pivot colors the pivot points to be the vertex colors so to recreate that motion we have all of these trunks right on this big and you can see it's really faded because it's kind of big but you can kind of see how it's a little bit different that's actually small that's why small but the idea here is they each chunk has vertex colors assigned to it so we know what the pivot of each chunk is so if we know the pivot of each chunk is we know where it needs to move and how it needs to rotate we can recreate that whole motion the way that you these are set up on this guy's again we're doing the same thing with that kind of additional UV set so that's the the first UV set this is the second UV set which is going to be a strip it's it's probably too small to show but the idea here is that every vert of the same chunk has the same UV so they simple the same position so they move together so I'll let that sink in a little bit so let me hook these materials in and at this point should be fairly easy for you guys to do that goes into normal this goes into position offset the other things that we do want to do as though those those hints that are there so I don't forget so we want to make sure we have three cosa movies so pass the data from vertex shader to the pixel shader and turn on tangent space because we're writing data out in world space so we have UV 1 UV - the reason we don't do this UV zero is because UV 0 is the first UV set which kind of samples the diffuse texture so if you want to have a diffuse texture if we use that channel we would have been blowing the data that's coming from the mesh so that's why we use the 1 and 2 in case people are wondering so say that I think that's all there's to it on this guy so let's make a make out of it Jerell instance you can see my naming conventions garbage guys can hate me on the forms for that one so now we have the one material let's assign it then let's assign textures so this one I notice happened before too so 400 even when it's copy and pasting now on this material have to dive into it it kind of does this one two three so if you just if you see this it's happened a couple of times that I need to see what the hell's going on basically when I'm pasting it it's kind of hanging this someone's at the end of it doesn't do it with all of them so you can kind of change that back to be not underscore one the normalized data kind of doesn't matter because you're not really going to change it but the bounding box you do want to be changing your local times so change these and then let's change the rotation and the translation and quickly rotation translation and let's see the bounding box data from Houdini copy that back to paste copy that and based alright so now you can see in the thumbnail it's starting to look like something bring it to this corner it works there's a couple of things that I was kind of like future development is a I don't know how bad the framerate is over here they can kind of see the big head boom the one thing is that I do need to kind of look into the shadows so the shadows don't really have the only work with the bounding box of the original shape so ideally I think I might need to kind of explode the mesh out into the max shape we're gonna artificially pad the mounting box of my house to get the shadows to work but yes it's her technique for blasts as Leonid how about freezing blast effects is it real to stop time blast effects is needed to just tweak the time variable and material editor inside and religion or something else yes that's a really good question so some people don't want to use the time so let's do that now that's great thanks Chris I was going to talk about it so as you can see I have this time variable and if I make this a parameter instead and I want to feed that in and override that and I want to call this my time autosave trick me so that's basically a lot of people ask that question and they're like hey I want to use this in the sequencer I don't want to kind of deal with the time of the game how do I do that so now you have this my time and you can kind of just animate however you need to animate it so basically you can kind of and you can kind of play things back and forth you can make this part of a blueprint the other thing too that actually we started to talk about work and esoteric ways of using this data is this might not need to be animation right this can just be like if you're visualizing your bar graph and you kind of wanted the bar graph to move and kind of do different things you can use this to kind of get that inmate it doesn't have to be dynamics it can be anything so that's a great great question and that's one of the things that's I gotcha for people that are trying to maybe synchronize skeletal animation with this overriding that time parameter unless you do that and you can do things like you said you can play it and then using blooper and you can kind of stop halfway you can kind of stop halfway and then do things where like time is frozen and then you can kind of have some gameplay event and then time starts back up so great great question and absolutely something that you can do so I'll leave that frozen in time they're the materials also should work as you can see from the other Unreal demo if you can see so like I do have the kind of regional pick texture assigned to it and then I have an outside and an inside so it's totally doable you just assign the materials on the inside and outside and it comes through so it's not worth spending too much time on that so now we get to the fun stuff now we get to the fire stuff and the fire stuff is the the flute stuff so let's go into that so let's save and the reason why it's the fun stuff is because the cloth you kind of could do that with blend shapes not really ideal because you blow out a memory but there's also the Unreal technique to kind of write it out to textures using other software and then the the rigidbody one you could do that too with joints we had examples at the GDC webinar webinar but the class where there's Martin land the the basically a building explosion with like three thousand chunks and it plays back fine and that's the other thing too that I'll say even though I'm kind of running a little slower than I want because we're recording if we show the kind of shader complexity which I'm just going to cheat optimizations yeah shader complexity so as you can see the this one has a little bit of red because of all the transparency it's not the shader it's just the sprite because you kind of have I have it on mask right now but everything else is the shader is it's it's really cheap because you're doing all the math on the vertex shader not on the pixel shader usually there's no bottlenecks they're usually the vertex shader doesn't do anything it just passes the data straight through them so if we add a little bit of math there it's usually not going to be a problem the shader complexity here on this is because we have just additive on top of additive on top of additive so let me actually pull this out so let me see if I could pull out the inverse and then go back in there you can see it's just basically wherever there's an overlap on the transparency it kind of I guess more expensive and these two materials are additive and you can see if I just have that as opaque it's it's pretty cheap so this is just regular kind of overhead of doing transparency it doesn't have anything to do with the birth excite emission stuff so let's get right into that that's the cool so if we make a new scene we drop in a big again geo elite big so now I have a big head again we're gonna set it on fire so we go to pyro flames and now the pig is on fire how much do it the couple of things that I will say a note is if you want to kind of sacrifice time for quality the setting that you want to care about is the substeps so cranking this up to like a three or four is gonna give you a little bit a higher quality because just it's siming it a little bit more and then that's really although the kind of equality tweaking that all of you after this we'll go into pyro import and then there's this kind of visualizer and the spiral feels which is the one I care about you can see here we have density which is the smoke we have velocity which we're gonna use maybe if we have time maybe not on that backing the other particles for the embers and then temperature heat and fuel or the was about temperature is just kind of like a thing heat is the fire so we wanted we kind of care about these things if you want to see what I like to do is I like to change this to rainbow so you can tell the difference between density and eat what I started to do a while back is I would just I will sit in the whole thing and then you kind of have these blobby fires because you basically skin it singing the smoke which is not what you want you could you could make them separate you can make one narrative and the other mature spirit before our case especially if you're doing things like read up rendering these out to texture as the texture sheet this is just kind of good information to know about as someone was asking how do you select these what I do is I just delete the ones I don't care about so if I just want the smoke I will delete anything that is not smoke and if I hide the other objects basically that gives you smoke and now you can render that if you alt click this duplicates it so it's kind of like unreal um so this is awesome that's new too so if we go into here and then we change this I want the heat I'm so I actually just want the fire that will give you that so now you kind of have the fire which we can mish but before we commish so now we kind of have this going I actually want to write this out to disk because I don't want to keep swimming it so first let's save and let's do the live fire I want to write this out to disk we want to save load disk save and this will take a tiny a little bit to write and what we're gonna do next is basically we need to make this thing loop because I want the fire to be looping in my game I don't want it to kind of have that initial kind of explosion you could make you a mix of two to where you can have two fires one that's kind of the ignition and then the other one that's the the loop for our case we just care about the looping bit so as you can see in SATA kind of doing the usual thing that's like well now I kind of scrubbed it and it some changes it has to calculate everything now is just I can just play this back right so it's got a nice so I don't really have to worry about that so because I don't really care about this first half maybe I care about maybe from sixty is about where I want to start then I want to go maybe to like 120 I want to just do a quick little loop so see kind of goes through speak this any see they're kind of like flops a little bit because of the seam what I want to do is I want to get rid of that and to get rid of that I'll click this make loop tool I will change my number of loops to one and then I will connect it and then [Music] if there's a loop it doesn't do that little thing anymore it doesn't pop so now you kind of have nice looping geometry that just does as it expected this is kind of nice because it feels like magic because you just had something that had a giant seam in it and now it's seamless you can go in and kind of see what I'm doing - I'm basically just offsetting the simulation by half and then just kind of mixing it based on a sine wave so here you can see I have like a little expression to do sine wave so basically have the this little simulation running and then I kind of cross dissolve it against an offset a version of itself kind of like a Photoshop filter if you guys do that or just if thick texture it kind of I'll set it by half and you kind of crossfade him where the seam is same technique but done with volumes so now we have that and we have a nice looping flawless fire now we want to mesh it so two men I use this I so upset note and we want to do an isosurface from us volume and you can see now you have awesome fire that looks great so we could change this to be by size so we have a little bit more resolution so basically the problem with the father just a grid size and then you want to kind of play with this offset a little bit to kind of find where in the volume data you kind of want so zero is not what you want you've got a little bit above zero or depending on how much you want to kind of arrow that fire for whatever visual look you want you can do that as you can see it's a little kind of clumpy upping the substeps will kind of smooth that out and kind of give you something a little bit better but for the sakes of this tutorial I'm not going to go into that the other thing to note is if you hit D are you gonna get this pop-up and the one that you care about here is you want to optimize and you want to remove back faces so this kind of caught me yesterday when I was running through with where I went through the whole thing got it into unreal and then my shell was backwards and I couldn't figure out why it was and then basically this ishow offset when it generates that sometimes it not sometimes always it doesn't matter so it's something that we should look into but in the meantime basically just just turns my face calling on never in research can see what you're doing if you do reverse you can basically get that to be the right way so now you have mesh it's geometry shift W gives you that I don't like the way it's kind of quieted and it kind of there's some weird stuff with this kind of crisscross see and you're kind of got these little slivers so I strapped a remesh note in there and what the remesh note is does is basically kind of rebuilds a topology to something that is just triangles all the way and some people like to do smooth so I think there's like an attribute blur now that is a little bit better smooth so it kind of softens a little bit that stuff to you it's kind of a preference so you can kind of some people don't like the kind of toothiness of the fire but it's it's really a personal preference so I want to take that off because I don't mind the tooth and then let's see what we have to do add some normals and actually let's poly reduce it first because right now I have something that is about four thousand polygons which is okay but I want to actually it might not be that bad ideally you're kind of drop that down let's say and you can kind of see right like if you want to do a supercar to anything you can actually do something that's five hundred and have that kind of play and be okay and gotta have low-poly fire that's actually coming from simulation the other thing that I want to do is I want to kind of clean some of these small triangles that are happening so let's do maybe a thousand polygons and then there's a couple of little little slivers they're kind of hanging up there so let's drop a clean node and let's do manifold only you can see that kind of eats some of that get a bad topology that it's now we can handle it but it's just I rather not deal with it because I'm wasting resolution on something that doesn't matter so now we have points point normals in theory that's all we need the other thing that we do want is we want to transfer that temperature back from the original sims to this guy so what we want to do is and I messed this up to where I cashed it so I'm gonna have to do it again that's okay so ideally I make it a loop before I delete it and then I cash it so the reason is because I have basically a half all discounted a nice data but it doesn't loop and then I want to make everything loop before I delete I just do that I just read cook it because why not just to show how easy it is so we have that and then actually I don't want to cache the deleted version I want to cache all of it because then I can pull from that you can see kind of how fast it's going if you don't have if you have like the kind of sub stepped version it's gonna take a little bit longer that's why I didn't do it but it still is not bad so okay now we should have all of that data that we can kind of pull the temperature out so for sure if you can click here see technically pattering we need to do this you want to do attribute from volume and you want to take this illustration goes straight so what I want is on what color from temperature and I want to kind of play with this a little bit so by default it's a little too strong so you can see like as if I just do this from 0 to 1 it's basically flooded white if I do this from 0 to 5 I start to get a little bit of so if I play with this I can start getting a little bit of a contrast maybe I gotta come from this way and now you're starting to get something towards like you want that kind of core to be hot and then it kind of tapers off the dark and the idea here is they actually get the simulation temperature to drive a texture in-game which is kind of nice so let's quickly get this into game because we're running out of time so let's maybe do this let's say 1500 polish goes it's a little crunchy let's write this out to disk again and let's make it low to disk save this out and what we're gonna do is the same as we did before the nice thing which I'll kind of go into the detail why this is caching is the the secret with this fire is if I kind of duplicate this out and then blow the material on it this and where is it ah I need to put like a world grandma Triana so in reality what's happening here is that I export out a bunch of little triangles and what i do is i reassemble each of these triangles at runtime using the textures so what we do is we basically we know what the positions of each of these triangles are because they're kind of coming to us from the shader or from the mesh we subtract that out so basically we collapse every single point to be at 0 0 0 and then in the shader we sample the texture to kind of move it into wherever it needs to be this is a really cool technique because unlike Olympique which kind of stores a mesh every single frame you already have the mesh there so all you're doing is you're setting the positions and because the topology might change it doesn't really matter because if you don't have like this we already know what the max number of polygons you will ever need because we have the whole simulation so we can write out as many polygons or as many triangles as you're going to need but if you don't need it for whatever reason if it's the beginning of it we can just collapse those down to zero and then essentially they don't render they'll probably still take a little bit but they have zero pixels on screen so let's go ahead and import or not import it but now we have this guy so you can see it's moving should be looping fine it's gonna it pulsates a little bit so you guys can play with the loop and the motion and all that stuff that's that's on the artistic side if we go over to out strap in the vertex animation let's go into the geometry that no it's this person that's again name your stuff PSA don't be like me then you hop back over with your quick marks then we have that out to grab so we want this to be the fluid and this is interesting because because we have the ability of specifying the basically max number of poly counts we actually built in a poly reducer inside of it which I choose always tried not to use it as much as possible because it just drives the export times longer so I like to do in the poly reduce outside but in case there's a straight frame that has a little bit higher we can kind of crunch that down to whatever we need to do let me just double check again to see what I chose so I chose 750 really so let's do 30 of poly count 1,500 exercise can be a 1024 we want to X not back that and we want to export a color map so that's so we should do we have saved the scene hit render that's gonna go out and we're basically gonna do the same thing that we did before with fluid shader code for this one for time purposes I might not even do that I might just take one of the the shader codes that I already had I just because I want to leave you guys time for Q&A so basically take that copy and paste it and you're gonna get something that looks like this so this is the material hooked up as you can see this is exactly pretty much what the cloth would look like you have this kind of UV scrolling bit on this case we're actually sampling the first UV set not the second UV set because you can't really UV that technically you could but I'm just not going to be coming from the meshes if you guys want to talk about that we can take that offline or talk in the Q&A then you have the position all that stuff simple the normal map pack it that's same same story as the other ones and then in this case I actually she had this goes into the normal actually added this multiplied by ten just because I wanted to get a little bit of a mr. feel to it but you don't really need to do that so let's make our fire life fluid put that out import so lie fire I fire lie fire my fire reported Emily's yes we got a couple the comments that the shader wasn't in the capture region of the video they couldn't see some of it all right you're right let's go back again that's a great point you guys should see it okay that was my other screen I apologize so let's do it again so the shader again is pretty much the same as the the one in the cloth one so we have that kind of UV scroll bit texture coordinate one as I mentioned then you guys couldn't see so it's a it's the zero because we don't we can't sample the texture from the mesh what we can actually do is we can store the UVs as a different texture kind of like we're doing a color and do it that way to where we can kind of simple textures with changing UVs so that's interesting if you have like cloth ripping or something like that that you do need you've used to come from the mesh here we have that same kind of pack data coming in sample the texture position sample the normal do the the stuff we're actually it's also simple color map which is kind of nice and then we just pack it the same way that we're packing the normal map into custom UV sets so this one we actually need three now UV sets because we have six channels so we have three colors and three normals so we're kind of stuffing them together and then this was the comment on the multiply so basically I took the color and I'm basically multiplying it by ten just because I want it to be give it a little punch so thanks for that and I apologize for having it on the second screen so I'm gonna drop that back out so let's go to live fluid you can see that mesh again what it looks like is this another thing that you will kind of want to catch is and I'll show you why is there some inbuilt settings you're gonna want to turn on this full procedure newbies but I'll show you what it looks like if you built so you can know why so let's drop in that's it yeah so it's their Live Mesh let's pull this out a little bit let's let's just use make an instance of this guy and then let's call this light fire and let's assign it so let's see so this looks pretty much like all of the other materials except it has that kind of color attribute stuff so we have a color map we have a position map we do will not want to back them all in our case drop that in drop the color and drop the position then number of frames isn't that sad see this not rendering yet because the bounding boxes are wrong and the number of frames but I'll show you what it looks like if you get the number of frames wrong cuz that's pretty crazy so let's go in here let's come up so my bounding box is this that's max so you can see it starts to come because of the scale and then just there and you can see that it's almost right but it kind of doesn't look right at all and sometimes people will get something that looks like this and they're like what the hell I'm you can see kind of strobes I don't know if the plane break and show well but that's what it looks like because basically those triangles are kind of symbols themselves throughout the whole thing it kind of goes crazy if you have the wrong frame range yeah you ply run out to the food and if so would what does the senate-passed me what was the question do you apply what you plug for now yes so you can kind of see already yeah so let's do that so here I have the color it's kind of doing that let's look at the material so if we have that material right now this thing emissive yeah its additive that's why okay so let's change that to be I guess we can leave it out of it so the additive is what's making a transparent let me just for a quick second show you what the opaque looks like so you can see it it looks like what we did it has that x 10 so you can kind of see that core kind of dancing a little bit so let's make it additive which is what not what the default is what I like to do and then if we do it out of then we can edit for now to kind of multiply against it so by changing to additive you can see the the little black tips will fade out because basically without it if you're just adding to the scene so you can see now it's kind of the the cool areas or a transparent and then let's add that for now and then to do so it's gonna basically have to multiply against the submissive color so just do four no and this might not work at all so be prepared for that probably want to do that to the base color as well I should see what pure for not looks like sorry preheating microphone i connect the normal to this normal it's compiling so there you can kind of see you can do things like right now you're getting the for now where the edges are the things that are doing it but you can kind of play with kind of eating away the center by doing so if you play with this the fernell node this the exponent kind of controls the the fall-off and then this base reflection controls the middle so if we kind of drop that for an l20 and then the three you're going to see it a little bit softer and with nothing in the court so you can kind of see how you can do that and then you can go in and you can multiply your colors after the fact and everything so great question and you can see how just it works as it would the other thing that I wanted to touch on which we're really kind of crunching against in that Q&A time so I'm just gonna do it quickly you can see here I have this kind of ramp going on and I actually created this ramp in Houdini so I wanted to just quickly show how it is because we have this ability of doing this color ramp to kind of drive us out of this material should be oh no I broke it because I know stuff but basically there is a color map parameter in here somewhere yeah that you can kind of use to get a little bit of a interesting color and the way we do that in Houdini is if we go into the image and we drop in image so if we switch to this compositeview that's basically a 2d image editor so if we drop a ramp now we basically have a full four way up setup and then I want to change my image to be actually four by 256 because I want this to be tiny if I hit spacebar H you'll kind of focus everything back in and then we can just use the points to kind of do my regular kind of curve setup to where I can do orange [Music] to watch their it's too late blue then that white it's too red I'm buddy can see how you can kind of play with that and you can kind of come here and you've got a drag it and you can play with the interpolation and you know the cars then when you're ready you can just right click here and then you save save image and then you just pick wherever you want it to go so in this case I just have a target so I can just shave it and then that's it so that's kind of a nice whole other sight thing of Houdini of that a lot of people don't really use but to kind of make quick little textures this is kind of awesome so you can do shape sometimes they use this to kind of make little starbursts or other kind of texture so I can just kind of come here and make a star and then make lots of things make sure it's a square size so you can kind of get when you can chain these together right I'm so you could go blur so it's it's a nice nice whole other suite of things that it's super super useful for a game artist that maybe not everybody knows but I just wanted to touch on that and I think we have two minutes until Q&A so I'll just dive into that and we can kind of do a little bit more freeform so I'll open it up to questions so we've got you make the fire shader interact the wind or movement in number real form no you cannot but if you want to do something like that popcorn effects actually has a way to doing that so you should look into their product they can only do point like the inverse stuff but it looks really convincing and you can make it interact with forces in unreal in our case is just strictly cashed out from from Houdini everything seemed pretty automatic and unreal is unity more manual or automatic but the same so that's the same I have to kind of play with it to be honest I haven't done it a lot but in theory it's the same you're just on the on the unity side it should just be you import the meshes any part the textures and you make a material and you apply those there's really not a lot of shenanigans and the the most shenanigans part might be somehow how we distribute the code in our case it was nice to be able to just do the drag-and-drop or the copy and paste but if we have to just give you files will just give you files topology cannot change so this is back from what half an hour ago but yes that's great I guess that's correct so on this example that's why we have both so on the cloth that the apology cannot change and it's more efficient for those reasons because you basically have 1/3 less points because you're not having everything exploded out but if you do want it to change you also have the fluid technique which lets you do it that way STL sonic technique for crossfire is use lunk ssin where it alpha alpha is Houdini see polar attribute is there's a cool feature in mix 2 or a bigger color so it makes sense no there's not can you repeat the question yeah ok good it will come back to it lead it if you can phrase that a little bit that'd be great said also nice technique for colorize fire is to use the alert function where alpha is beginning CV attribute there's a cool feature that makes two or more bigger colors mix two or bigger color yeah let's go back to that one welcome back I think what I emits is that it's a cool technique to be able to kind of just use a ramp to then mix use that as the kind of the blending scale so yeah thanks that's a old-timey basically people do that in sprites to where they'll have the color ramp and then they'll have the the sprite sheet kind of just being a temperature but I figure we can apply the same technique that we did in 2d it to be in 3d Magnus is asking if you can use displacement maps on fluids or cloth vertex animations in theory yes the only problem is on the on the fluids you're going to have to also write our UV and you have to have your meshes UV or you can do it like he did which he did some try planar projection stuff to where basically the UVs are generated on the fly basically just projecting it but in theory yeah you should be able to do basically another map that just has some displacement I use kind of like a normal map with some questions right now alright swell a couple just man in what situations should I be using protects animation RPGs vs. joint based FBX okay that's a great question it really comes down to in my opinion the amount of chunks that you're gonna have so if you're gonna have above maybe a hundred chunks I would use the texture version and if you you're gonna have less than 100 I would use the the mesh but even then I the texture one is always gonna be cheap you're cheaper in my book just because you're not gonna be taxing the CPU at all it's all going to be in the GPU [Music] distribute last pieces on the complex mesh not just a plane for this cinematic blast scenario I need to import Geo from game engine to Houdini for right distribution Geo pieces on the surface and bait to texture simulation result and that's all yes so you could do that too basically if I'm understanding the question correctly if you have data already in unreal and you want to get it out and then you want to get a simulator then back in you could do that you can actually use the Houdini engine to do something like that so Rob McGee has a video on basically simulating pipes inside of unreal which is pretty awesome and then part of the kind of future plans for the engine plug-in is to support simulation data in this format natively so yeah you can just get the data out of Houdini maybe used your level as collision and then simulate against it and kind of play it back or in the future you're gonna be able to do it strictly inside and if you want to try it in theory you should work but we're gonna make it easier for you Burke is asking so he's been in Houdini use her for three years but it's just getting into games so where's a good website to start learning so I was gonna suggest that's a good segue to talk about your your tutorial page yeah let me see if I can bring that up and it's up that's awesome um so yesterday I put this together which is just a giant list of tutorials these are the ones that I kind of like I'm gonna add some more today because I put this up and people like oh you forgot Houdini tricks and you forgot all this stuff um so I'm gonna be updating this the point of this is to be a live list and then as things kind of get outdated there's some that are really good but have been kind of displaced by some of these techniques so I'm trying to keep them as fresh as possible there's a section for use cases which is kind of like hey I need to convince my company or I want to kind of show people how cool Houdini is these are kind of really great examples of just what can you do with Houdini for the getting started there's like literally like and this should be fixed and I'm just supposed to head to the chat window so that's where it is it's also one Craig's calm under the in the tutorial section yeah but there's basically this is Johnny who works at EA and he thought at Texas A&M great whole whole series of classes so there's like lots of lots of stuff and then there's skim Goossens who thought at MTV Breda HDTV in the Netherlands also really really good training and then there's a bunch a little like not a little but like Pluto siding game through there's a lot lots of stuff and then we start getting into deeper dives and little specific questions Peter quince has awesome stuff yeah so go in here that's a great place to start learning indeed final questions a couple of questions wondering if one wanted to use who didn't Evo would it be similar tutorials yes so the idea is if you are just using Houdini for VR this is where the techniques really come to life because interview are you kind of need volume to your particles so that's where this kind of was designed so absolutely if you're just using Unreal 4 if you are yes you get that'll use it and we've got a couple of good videos featuring oculus and Michael Murdock and some of the other VR artists have used to be new for VR they're on our site what communities do you recommend for someone learning Houdini in via x4 games there's two there's a slack channel which is tech artist org if you go there and there should be a lack link so that one is kind of invitation to where you some people have to approve it I mean it takes a little bit to get approved and then the other one is that this court server and that this court server will put link to both of those up but the idea there is there's just just giant community that kind of think there's about like 300 people online every day and there's a nice mix of games and film and they kind of just help each other out which is really nice so there's people from film getting into games just kind of learning to learn how to do Houdini stuff or unreal stuff and then there's people from games kind of just wanting to learn how to do Houdini better and the film people kind of come in and help them out so this cord and tech harness or I think it's think procedural is the name of the escort channel is unofficial community-driven but it's it's pretty awesome here's another cue regarding 2d flipbooks and extracting the various elements as separate masks for example fuel temperature heat etc but you gave go through the same process as you get earlier get the elements separately from the import of pyro in a site assign a flat white color shader and render yes you can do that and the other thing you can also do see if I get back into that if you that's one way to where you just apply a plain color if you go into here and you go to the materials you can just turn off things so you can basically duplicate the geometry or duplicate do like object merges which you can do I can show you how to do that but the idea is basically you duplicate this flames I make one that maybe we call smokes and then you turn off the fire so there's only the smoke and then if you only want the fire you can turn that on and off and then kind of change this to be a grayscale so you can do it that way and then on the object I would just make a new geometry I would merge in the original one so be this fire in for it which is not that one but you get the idea and then in here you just pick a different material and smokes so you could do that way through it then you have two renders one that renders this guy the other one the rings was that guy particle animations work the same workflow yes sadly I think we kind of just ran out of time but it's exactly the same in that's why I didn't I really get into it because that's after some point is just the same I will still send you guys the files with the effect but it's essentially you go in here you say source particles from that kind of fire and then in the pops there's an effect effect by volume that you drop in and basically you read in the stop that you had to generate it but then exporting it out is the same exactly and I'll mention I guess you mentioned a book where we go remember the book name her a book no there's the house it called after I don't remember but I can look it up and I can think about I can give some book recommendations there's one from a Disney animator that that's the only one that I always recommend there's two of them that people on the channel might know what it is but it's basically for hand-drawn effects that's a trend oh well we don't have a book and pretty sure Lucia and reading a book no I haven't yeah so maybe you're thinking of his site where he lists the tutorials pages or something but how about HDA directly in unreal marketplace is real because many Unreal Engine users what looks with interesting vhda to e Unreal Engine like procedural IV else's and trees maze generator etc yep do it please it's it's it's fair game so you only have to make a little note saying that unreal or the Houdini engine is required and then yeah you because if Houdini engine is free and people have to download it so it's it's not different than any other plug-in required everybody's reminding us the name of the book which is elemental magic that's what it is thank you people yeah thanks mind yeah elemental magic there's two volumes and it's pretty also it's just I don't know if I ever mentioned that but it's it's kind of a good way of just it's really good highly recommended yeah cool I think that's good it thanks Louise thanks everybody we'll be wrapping this up and in posting the video over the next day or two we'll give registrants events advance access and then post the public in a bit a weaker saw so be thanks everybody I hope this was helpful and keep pinging me I'm on both of those channels so that the slack end of this court so just send me if you guys had questions they didn't want to ask him Porton over here just hit me over there and I'll be around Thanks bye everybody
Info
Channel: Houdini
Views: 10,719
Rating: 5 out of 5
Keywords:
Id: U_-gGd6o70Y
Channel Id: undefined
Length: 98min 44sec (5924 seconds)
Published: Thu May 04 2017
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.