Houdini Foundations - Dynamics | Robert Magee (SideFX) | SIGGRAPH 2018

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] [Music] good morning my name's Robert McGee I work at side effects software and I'm here today to talk to you about particles and dynamics as a sort of Houdini foundation how many people out there are using Houdini today great well this is this is meant to be a little bit from the ground up so I was if you don't know Houdini at all this is sort of targeted to you but I think there's always room to learn the fundamentals even if you've tinkered with it for a while so I don't know whether many of you know but we have a book up on the website called Houdini foundations this is a book we published a few months ago and it's in PDF format on the website and it's also you can get a print on demand version if you'd like to have a old-fashioned printed copy now this book is filled with a bunch of different chapters it has an overview chapter at the beginning which has about a hundred pages of just going through different parts of the software like the workspace and the transformations and parameters and attributes and what are all these things and how do they fit into the world so if you want to get a good sense of the terminology of Houdini and how that terminology can be applied to the work that you're doing it's a great introduction we also have some tutorials so we have one on modeling animating rendering a soccer ball and this just helps you introduce you to what nodes networks you know what the geometry context is what the modeling concept and all this stuff is we then have another one which is procedural game assets for Yui for this came out a little bit around GDC time so we had a little bit of a games focus on some of this stuff and then we have a chapter on train generation now the goal is to continue to expand this book and to add chapters and to a large degree my presentation today is a preview for a chapter I'm working on on particles dynamics which will end up in this book but you're the guinea pigs so let's step back and just talk about Houdini in general for those of you who don't know what it is or haven't worked with it Houdini is a package that can do a whole bunch of different things it does the full gamut of what you'd want to do in a CG pipeline modeling rendering character effects rigging animation particles and dynamics now all of this is done a special way because Houdini is procedural from the ground up it does things in a procedural way and what that means is we're using nodes everything you do in Houdini creates a node and those nodes connect together to make networks and those networks to find the flow of data within Houdini and this gives you a lot of power it gives you the ability to go in and make changes to explore multiple iterations as you're working but it also allows you to package up what you're doing and share it with someone else or build a little mini pipeline in a box out of what Houdini has to offer and of course the big studios it's it's a big box so these nodes come in a bunch of different flavors because we use them for modeling and for dynamics and so on all those different parts of you teeny function a little bit differently so we have specific nodes for those areas for instance surface nodes define work with geometry channel nodes define motion dynamic nodes for simulation effects we use for shader building and for other manipulation of things compositing for images and render out Plus we even have about nodes for wiring together outputs now if you're gonna get into Houdini one of the things you're gonna have to get used to is there is sort of a secret language that comes out of this because when we first created these nodes we called them operators so that led to this language where surface operators were known as soft channel operators chops dynamic stops etc and this sort of secret language you will encounter if you're out doing tutorial videos or you're talking to colleagues at work they'll be saying well we're in the chopped net and we're talking about Dobbs and we're gonna move it over into saw ops and and at first this can be a little intimidating so it is worth your while to get a little comfortable with this language and in the foundation guide we do have a section where we sort of do the translation for you but that is a very important part of moving forward with Houdini the interface itself actually doesn't try to reveal those those things anymore it they call it the surface nodes and like it's it's a little easier to work with but when you start working with other artists many of them are going to come with this this secret language in their vocabulary so good to get used to it so today because we're doing particle dynamics we're going to work with dots now there used to be a section called pops for particles but we got rid of that and actually incorporated the particles into dots just so they can work in a more unified environment so there is no pops anymore and then stops now stops is for geometry but often when you're doing dynamics you're starting with geometry sending the stuff over to be simulated and then you want to get the result back so we're gonna show I'll show you later how those these two guys sort of talk to each other and how they work together and that's sort of an important aspect of visual effects because a lot of people think it's all simulation but in Houdini a lot of the work is done in in the geometry context for setting up normals on a surface to spit out fluids and a you know in a proper way or set up your particles and we're gonna we're gonna look at a couple examples of that now in the dynamic environment there's a whole bunch of different solvers we have solvers for particles rigid bodies that's a bullet solver pyro FX flip fluids grains which is sand and and snow fvm wires cloth crowds we're going to focus mostly in today on particles rigid bodies and pyro effects but it is good to know that the concepts and ideas that we're gonna talk about here if you were to go off and do flip fluids it's just a variation of that so the dynamics environment is a sort of a unified place for that stuff to work so let's just take a quick preview of some of the solvers and sort of where you can go with it here we have some examples that I got from rebel way this is a company that does some online training you can pay for one of their courses join in and it takes you pretty deep into some really nice examples so they offered me some some video to show you so this is some particle stuff this is fluid which is flip fluids and then you've got the white water which is sort of particle-based here we have some destruction which is probably a combination of rigid body and a little bit of Fe M so that's there here's some destruction where you've got particles and in smoke coming out of out of a sim a rigidbody destruction and it what's neat here is it's if you're able to get those particles coming right off of the cracks and the seams and that's where Houdini's procedural nature works because you can find those cracks and seams and then spit out the the dust and debris from there and here we have a nice pyro sim with a robot coming into it there so these guys if you you know we definitely want to take your skills to the next level these are great people to go talk to and at the end I'll talk about some other options for learning as you go forward now here's an example of if you happen to do game stuff and you want to get your visual effects and dynamics into there because of the way the game engines work generally speaking you can't just bring the volumes and the particles and everything over you need to translate it in some way so here we have a tool in Houdini put together hour by hour game development team where you take this this fireball and you generate a texture sheet out of it and that texture sheet can then be brought into a game engine such as unity or unreal and then used to put that into your game so you know normally you're just rendering it for film or TV but in this case you're gonna render it to one of these texture sheets and bring it over and we have a team of TDS focused on game development tools that support the different workflows that game artists need although a lot of film people have actually clicked into some of these tools and use them for other things as well so here we can just bring a grid in and we're just going to assign the texture sheet and a ramp onto there and then take that and put that on to the grid and there we go we get our our fireball and then we just can play with some of the colors and because of that we can get it look sort of fireball so that's that's an example of of how you'd bring that into that world so a lot of visual effects have the possibility if you're doing something like a destruction shot we have a tool for exporting the destruction as a series of objects attached to bones so you can get that there as well so let's get started let's look at a simple example of that will allow us to look at the dot nodes in a very fundamental way and figure out how they work and how they communicate with each other so here we have an example of a soccer ball like I said we build the soccer ball in one of the tutorials in the foundations book so I've got this and all I want to do is I want to raise that up from the ground and I want to drop it and do a simulation from there so this will allow us to see the different parts that are involved so the first thing we do is we're gonna go over and create a rigid object rigid body object and this creates a new Network you can see in the network called the auto dot Network and in here is the beginnings of our of our dynamics Network and it already has gravity applied in it so you've got a rigid object feeding down through gravity there's a couple merge nodes that in case we do other stuff they'll feed in one of these we'd like to do is we want it to collide with something so let's put a ground surface down and as we put this down now you notice the Shelf tool will often put nodes all over the place and that's one of the advantageous Peschel e for dynamics of working with the shelf tools is they'll build some of these networks for you which gives you a better opportunity to understand how they work it's possible to build these things from scratch but you're gonna learn a lot more if you're starting with the shelf so now we've got the the two sides of the network one feeding into the rigidbody solver which is the ball and then we've got the the ground plane feeding through a static solver so the ground planes not going to be affected by anything that's happening but it's there to to provide a collision surface so now we're gonna go in and we're gonna add some initial velocity because the so far the dynamics of the ball is not that exciting and we can set the direction and so on that we want there let's go in the negative direction and we'll get that moving off off in the opposite direction now so far we've created something that we probably could at keyframed and so it's like what's the point of simulate but it's not going to take long before we can introduce let's say a few more soccer balls and then simulation will clearly become the better solution and the difference between keyframing and simulation is in keyframing you're going to figure out every hit point and exactly how it works whereas in the case of simulation you're setting up the forces and then you're just playing it and see what happens because of that sometimes you get these nice accidents you didn't expect that to happen or that wasn't what you expected but that really works now you can always keep track of your parameters so if you go back to a very specific set of parameters you will always get the same result but you can type in different parameters if you want a different result so now we've added in this wall just to create another static element within our network and there you can see them working and now we can go in and let's just raise that up so it's shooting up a little bit and then we'll we'll do a little bit more and you can see the network has all the components that we would need so it's not overly complicated here the just okay we're playing that again okay so now we look at the network and we can see the different components that go into it so we have over in this area we have our collision objects feeding through a static solver over here we have our rigidbody object essentially our source if this was a fluid we would be spitting the fluids out of that source but in this case the source is the actual geometry we have our gravity as our force and we're gonna use other forces later on and they all work together and then send the information back to the geometry object now one of the things we'd like to do is instead of having one soccer ball we'd like to have more of them so when we could just create a bunch of soccer balls and then make them all our BD objects and they'd all feed in but instead of doing that we can actually take advantage of the one soccer ball we have here and turn it into sort of a soccer ball cannon so we're gonna feed in a pop source here and we're instead of using the RBD object we're gonna reference that geometry over here on the pop source so we're going to copy that over there and then we're going to tell it to use all geometry and then we're going to set up some of the attributes that we had on the other object and we're gonna put them here instead so this is a way of getting multiple objects instead of just the one so we can type in the same kind of values that we had before 5 and negative 15 and there we go now we go back to here and under the impulse activation so this particular parameter says simulate go do it so what we're gonna do is we're gonna put an expression in that says do it but do it every 10 seconds every 10 seconds activate this thing so instead of getting one soccer ball we're gonna get one every 10 seconds and that will give us this sort of cannon the soccer ball cannon that we that we want to get a little bit more interesting simulation out of and there we go now they're all sort of coming out exactly the same so we can go back to those attributes that we were playing with before and we can add a little bit more variety and variation into here maybe make that a little stronger and set up the variants just so maybe you'll get a little more variety in in where these things are going and all of these you know this is how simulation works you play with these parameters and then you go simulate see what happens if you like the result then you and you you go forward with it and there we go so now we've got that working so this is just a simple addition to the the network we have we've just taken that source and made it a little bit more sophisticated than the sort of off-the-shelf experience and now we've got the soccer balls here now it in this case here I've only played with the the law the velocity the initial velocity of this but there are other parameters both on the colliding objects on and on the rigid objects that come into play and some of those are things like friction bounciness and other things like that so we can actually go and play with those parameters if we want to get a different result and so again it's just simulation is about tinkering with those those parameters and what they do to get what you want so we go into here and we can say let's look at that original soccer ball and we can say you can play with its mass its stiffness and we're just change that to 1.5 or maybe two let's go with two and now we go back up here and now the soccer balls are gonna be a little bit more active and well maybe a little too active but there we go so those are the different components that we have in our simulation there now I talked about geometry Network I haven't shown it yet but let's go and talk about what's going on in the geometry level versus what's going on under the hood of the dynamics network so in the case of the geometry network when we use the shelf tool to make it into an RB d object it added a rest node a pack primitive node and adopt import node that dot import node was then used to feed well originally it was feeding the packed object that we had and now we're using it to feed the pop source so in your Dynamics network just like we looked at before you have your source objects the source object you have your force the gravity was what was pulling it down we have collision objects and we have solvers and these all work together now you might ask a question well why is gravity at the bottom shouldn't gravity be feeding into the the solvers because otherwise how is the solver gonna know to use gravity one of the things that's unique about the dotnet works compared to other networks in Udine E is once you start simulating it's reading up and down the network so it's looking at the whole picture so in some cases it doesn't matter exactly what the order is the order isn't as important as it might be in the geometry Network where everything just flows right through there or a compositing network or something else like that so there is a little more flexibility there and then of course the output node eventually sends the information back to the geometry Network so that you can apply materials maybe cash it out do something there so there's this sort of relationship there that's why actually if you look at the auto dot network when it get first gets created it's actually hidden because you don't need to see that at the object level because all the information is being sent back to the geometry object that you have over on the side ok so the tutorial that I'm plant I'm working on for the next foundations book is called the bomb and it's going to have particles rigid bodies and pyro effects in it and we're going to go through some of the steps that will be in that lesson here today it's sort of a neat lesson because you know you're gonna get some introductory particle stuff and learn how to work with some different forces and the pyro FEX is probably the one area where it's not as developed right now I'm hoping to go back home and create something a little bit better than what what I have here today but we'll just touch on it quickly just so that you see how it fits into the picture so the different elements we're gonna talk about here is this soot trail so as the fuse goes and animates it's going to drop particles on the ground to create sort of a soot trail and that'll be our introduction to particles then we're going to talk about how to create these Sparks and that's going to be a little bit more sophisticated as we're gonna have two or three different kinds of sparks and we're going to have them all sort of connected into each other then we'll do the RBD shatter for the bomb over here and then we'll do the fireball at the end so before we get into that let's talk about the scene setup in the tutorial all have you build this from scratch but for today I didn't want to take the extra time so let's just go through the network to see we can see how this is built so we've got the bomb geometry we've got the fuse and we've got a ground surface which we've made unselectable in the viewport and we've got some animation on the fuse already set up so that it can you know wind its way in and blow up the bomb so the way that we do this is the fuse itself is built using a path so there's a path tool in Houdini which allows you to create a series of CVS in 3d space and position those to get the curve that you want and all of these together will create a curved geometry and we parented the last CV into the bomb so we could rotate the bomb and it all sort of feeds in properly then there's a curve that comes from that but we're hiding all of that because that's just we're just gonna reference that and we're gonna hide that so once we had that I created a second object by merging object merging out that path that we and putting that into this fuse geometry object so if we dive down into there we can see the network here is starting off with a object merge of this path that was brought in from the path CVS then we use something called a carb shop which has a parameter that we can use to we can keyframe that first you and that will create the animation on that path we also have a static one with a switch node in case we wanted to turn it off but for now we're going to keep that on then we did some recent lanes some subdivision and then from there we did a poly wire and poly wire adds thickness to the whole thing and adds end caps to it and then what we did was we isolated the end cap which was polygon 0 so that was easy to find and we're going to use that as our emitter for the particles that we're working on so the first thing we do is add a cap node on there which gives it a little bit of three dimensionality and then we're gonna create a null object so we can export that out later Wow we then also have one that's colored that we this helps us for visualization purposes here and as you can see that animates away so that shows you the different elements we have in the in the scene now for the geometry of the bomb we have let's get zoom in there on that we have a network that starts out just as a simple sphere we deleted the end of the end geometry there poly extruded out that edge and then poly extruded in all the phases to give it a nice thick shell a couple couple Pollock's poly bevels there to round that out and we've got ourselves the bomb geometry then we added a born Y fracture onto that and there's a bunch of nodes here for that and as you can see that goes in and does that fracture and we set it up with the number of chunks we wanted and then we feed that into a switch node and that switch node is designed to basically at the point we want the explosion to happen switch from the original geometry into the simulation geometry so we'll be working with that as we go along and then we have a couple cameras we have this one set up to sort of follow along so that was set up in the original shot so where we can use that as a reference as we're working and then there's another camera that's just a generic one there we go okay so the first thing we're going to do is we're going to create the particles and create the soot trail and let's dive into that so we already learned that we have this animated fuse and we put this end cap that we're going to use as our emitter for the source of the particles so we're going to display that end cap here and we don't want to do it in this Network because that's our fuse network so what we're going to do instead is we're going to do a extract which is going to object merge and take that geometry and bring it out into this environment so we get a total new object and we're gonna call that end diffuse particles and you'll see that we can go back to the normal fuse here so there's the fuse and it's animated but we also have the little piece that you can barely see there but it's going to animate along and we'll be able to work with that we'll zoom in and focus on that in a second so once we get into here with this what we're going to want to do is add a particle Network a pop net but pop net is really a.net as we talked about earlier so it's a dynamic network but we can feed that right into here so we're not using the auto doping at work we use before we're just building it right here in place and this gives us a source which we can set up the number of particles what's the birth rate and have that set up to simulate so if we just press play you'll see we're coming out now one of the problems is we're not the particles aren't doing very much and one of the reasons for this is that the object that we're we have is not really animated it's animated at the soft level but not at the object level so there really is no velocity on this thing at all so what we need to do is trick it into having a bit of velocity and the way we're going to do that is we're just going to use the normals coming out of the sphere out of the little end cap and we'll convert that into take the normal and convert it into velocity so by doing that we've set a velocity value that we can then use to omit our particles and if we go back and we play that you'll see how that works so now we're emitting particles off of the end cap there now there's still some that are not looking fantastic so just to make it a little bit more interesting we're going to put in an attribute randomize and we'll put that on B just to get a slightly more interesting result there so you see how we're using the geometry context to massage the information the the attributes that are feeding into that system and that's helping us get the result that we want so now we've got the particles but they're sort of flying all over the place and what we'd like to do is have them land on the ground because our purpose was to have it create this trail on the ground so the way we're going to do that is we're going to take that Network and we're going to select that and we're going to create a Oh first oh I know they're flying all over the places we didn't put gravity on them so we want them to fall down and hit the ground so first we put gravity in we got that for free when we did the RBD sim but we didn't get that for free here so we add the gravity into the network and then the next thing we want to do is add in the collision geometry so that it falls and hits the ground so the way that we're going to do that is again just selecting that piece there that we have our initial particles and we're going to say give us the ground plane like this now back at the object level it creates a ground place plane object that we don't need to see so we'll just go and hide that and then if we go back into the the network here we can hide it there as well so press L to look at the whole network and now we've got a static object with our collision geometry going there we don't really need the merge node and let's turn off the display about in here so now when we go and play the network we're going to have our particles falling with gravity hitting that surface now it looks like they're just floating in space but if you tumble around you see they're actually on the now you might say well they're sliding on the ground but if you look carefully they're not sliding the ground they're just bouncing like this along the ground because by default the only kind of collision that particles can do is bouncing and that's not what we want we want them to stick to the ground so if we want more you see there's a exaggerated bounce you can see they're definitely bouncing so we want to have them stick so instead of using that collision that we have there we're gonna turn that off and we're going to do it a little bit differently so instead of using a collision with a throw static object we're gonna go in and add a new node called a pop collision detect and this is going to allow us more options for doing the kind of collision that we want with particles so we put this down and in this case we're going to find the ground surface and accept that and then we're gonna go in and take figure out what the behavior is so we have a number of options under behavior and some of those include dice stop stick or slide so we're gonna pick stick so now when the particles come out they're white particles to come out as soon as they hit the ground and stick they become red particles and that allows us to see how that works so this is as the fuse goes along this is what's going to happen and we're gonna get these sort of dead particles or stick into that surface and we could also set up another pop collision detect so that they would come out and hit the geometry of the of the bomb itself and sort of slide off of there but that's not really necessary for this example but that is another way to extend it a little bit further so now we can go into here put a nice little sort of dark grey color on that to create the suit and we've got ourselves first particles so as you can see particles work within the dynamics Network they work under the same principle of source object forces collisions really those three things working together and really a lot of your work as a visual effects artist is making sure that those things are that you're sourcing the material in an interesting way that you're colliding them an interesting way you've got appropriate forces to make things interesting so there we go now the next thing we're going to work on is the particle sparks so this is going to get a little more interesting in terms of what you can do with particles and it's going to show you again a little bit more interaction between what goes on in the particle or dynamic world versus what we're going to do at the geometry level because we're going to build part of the sparks out here so we have this existing network of the suit and to save time we're just going to alt click and drag and use that as the starting point for our spark so we don't have to do all that work twice a lot of that work we're going to get for free make that copy we're going to call this end a few sparks and let's go and hide the other one because we don't need that one right now we're going to come into here and this is all going to stay the same although we're gonna bypass the color for now and we're gonna get rid of that pop detect thing because we don't want these particles to stick to the ground so we're back to them just falling into nothingness at the moment but these ones aren't going to last as long because they're Sparks we're just gonna have them die pretty quickly so we're gonna go into the original source and we can go in and just change the life expectancy and the life variants to very very small numbers these these are based on time not frames so it's Oh point zero five seven five of a of a second which is at 30 frames a second we're then going to add to the initial velocity and there we go we now have little little sparkles coming out of the end there that would be very good for us to do to do these sparks but we don't want little points we want lines so we need to sort of enhance this a little bit and we're gonna enhance it by by adding a by replicating these particles to create new particles and then ultimately connecting those together at the geometry level now before we do that what I'm going to do is I'm going to put a pop color node down because as we go we're going to branch this off into two different particle networks that work together and come back so we're going to use the color to help differentiate them it's a good way to of debugging things as you're working so we're going to make the initial particles all yellow and then we're going to put down a pop replicate node now this is going to create the trail the particle trail that we're going to use to connect all of this together so these are the trail sparks and in this case we have two we these particles we don't want them flying all over the place we want them to basically just come out and just just hang there and do their job so we're going to turn off activation birthrate we're gonna give them exactly the same life expectancy and variance as the original ones that they're copying and then we're going to change the shape to point and their attributes we want to set the velocity but we want it to be zero zero zero because they're just come out do their thing and then disappear so at first we got this great there's a few more particles but they aren't really looking like sparks yet so to do that we want to go back up to the geometry level where we can take the information we've created down here at the top level and we're going to use that and we're gonna use something called an add salt and the odds op will allow us to by group bring this together and well that's not exactly what we want but it's a starting point the problem is that we don't want all of these particles connected as one big group we want to have a very specific group so what we're going to do is we're going to add in a wrangle node here to connect the particle ID to its parent ID so as you replicate a particle there's a parent and there's the particle and we want them both to have the same number so this little script is going to make sure that the parent the child all have the same number which is going to help us later when we try to connect these together so the little expression we have is to take the integer of the parent ID and they make that equal to the ID of the particle itself and we're going to press Enter and it's an error because I think I left a space there we got to get rid of that space and there we go so once we've got that we can go back up to this level and instead of when we say bye group we can say bye attribute and we can put parent idea a parent ID now once we have that it doesn't do anything quite yet but if you go back to frame 1 Andry simulate now we've got our sparks with these little connected lines out doing their thing so that's good that's that's giving us what we want now when you do this it's you can sort of see some separation between the simulation and the and the piece and one things we can do with the pop net is we can oh right we're gonna put some collision geometry and just because it's going below the ground so we're gonna bring back that collision this time we don't mind if it bounces so we don't need the collision detect we can just use the bouncing of that so it creates nice jagged sort of bouncing off there now if we go back up to the pop net we want to only see the particles so we're gonna go pop with a star so it gets rid of that collision geometry and then we go there and then we can also play around with the substeps so if we want to tighten up the simulation and how it works we can increase the number of sub steps and that can give us a good result there as well so I guess we're not going to do that okay so there's our particle thing there so we got I mean this is probably good enough and would would sort of do what we want oh there we go that's that's what I thought I'm gonna up the sub steps and it's subtle but it does give more intermediate steps and gives a slightly more coherent result so it's good to up those sub steps you can actually save that to later when you want to output because it does slow things down a little bit but some steps are helpful when working with some of this stuff especially if you were trying to create something that was if you want your particles to have an arc then you would need to have the sub step so that would pick up all those intermediate pieces as it would go along so now that we have this it's a good starting point but we'd like to have a little bit more variety we want to have some particles that just go a little bit crazier than the other ones so to do that we're going to create some rogue particles and we're going to do that using a pop group node now what this node will allow us to do is take some of the particles that we originally create so we're going to take that initial group of upstream particles and we're going to put them into a group called brogue so these are a rogue particles and we're going to randomly select them so we're gonna say give us a chance of 0.3 so 3 out of every 10 particles are gonna go do their own thing they're gonna go into this group and then we can manipulate them separately from the main group of particles and what we can do is we can create a pop color node here for that we're gonna make that red and we're gonna just wiggle that out and put that over here and we're going to say this case apply that to the rogue particles so now what you can do is if you get in close and you can see some of the particles are coming out yellow and the rogues are coming out red and this is these color nodes are just helping me figure out what's going on make sure that's actually doing what I want it to do and that helps me sort of debug the system we'll get rid of the color sort of at the end but now once we have that what we want to do is put a pop force in and we want to take these particles and enhance their velocity so they go a little crazier than the initial particles that we we have the initial velocity set on so let's take the rogue ones and we're going to change the force on there and we're gonna add some you know a little bit more value in there let's go three six two and we're gonna use an expression that says take the force and apply it to the velocity so we're gonna take whatever velocity we already have and we're going to enhance that using this force to go a little bit crazier and that can be done with a simple expression here so now we go in and you can sort of see it there but it's a little hard to see so we're gonna go back up to this level where we can see those rogue particles doing their thing and you know they're they're a little bit crazy but it's a little hard to tell the difference between one and the other so what we can do is we go dive back in we can okay so no let's go back up here we're gonna pin this so that we can in the viewport we can watch the particles with the add soft but we can go down into the Dolf network over here you can always pin one of the views so it doesn't do that and we now we've changed it to twelve which makes them a little crazier maybe we go a little bit crazier even still and go thirty and now we can go in and now we've got yeah okay now we definitely see the rogue particles doing their thing and they're working independently of the other ones and maybe go down to 15 now that we know for sure they're working so this is a way that we've been able to take one particle stream and branch it off so we can do some things with some of the particles and other things with other particles and that's that's really a nice way of working now to help you know good practice when you're working in Houdini is to sort of use your network to communicate some of these things to other people in case you're sharing your network with them so one of the things we're going to do is we're going to take those networks contributing to the yellow particles and we'll make those no jello and we'll make the other particles red so you can see that we've got which which particles are doing which and this is a helpful way to read read the the network you can also put in sticky notes and also put notes on your on your on your individual nodes and that can be another way you can help people communicate to people what's going on as a matter of fact a lot of the sample files that ship with Houdini have a lot of those nodes and networks and and little little notes going on in there so the next step we're going to do is we want to add little sparklers at the end of the rogue particles so we want the rogue particles to get to the end and burst with a little little little sparkler so we're gonna go in and we're going to do another pop replicate and ornot create another group and this group is going to be built out of the dead particles so when the rogue particles die we're gonna use that as a starting point for a pop replicate so we're gonna go in and say give us anything that becomes dead so in group equals I at dead so there's a hidden attribute in the thing called dead so when a particle goes dead we throw it in this group once we've got it in there now we can put a pop replicate so this will take that one particle and replicate it into more and this one well will let's tie that specifically to the to the dead group so only the dead those are going to do this and we can go from there so let's take the dead particles and now we've got to do a bunch of little parameters things to to to get that to actually do what we want so we're gonna go in and set the impulse count to about eight so we want about eight of these to come out at the same time we want to set the values how many we just want one eight of them just to come out we're gonna call them just born sparklers so they create a different stream that we can follow separate from the original spark stream so that way we can apply things to it and we'll go from there and we give it a very very very short lifespan because these ones aren't that important we're gonna set the initial course add to the velocity just so they they can go a little bit crazier and out there and we set some values here and of course you can tinker with these values to get the look that you want as you go now after we've got that what we want to do is we want to go back and we need to get that pop rango we had before so we can do that parent ID so we want to make sure that we're copying the parent ID when we we do the replicating so we're going to put that node back in but we're going to instead of going to just born we're gonna go to the gist born sparklers so we're picking up that second stream and we're going to work with that instead and then after that we're gonna put another pop replicate that's going to create the trail for the sparklers so this is just repeating sort of what we already had and that will allow us to get these little little sparks to look at to come out from the end there and notice as I'm doing that I'm coloring these nodes red because they're only being applied to the rogue particles so again it helps with my readability of the network so just born sparklers and now we're gonna set similar two parameters to what I had before I probably could have copied my pup replicate from over there bring it over and do it but I thought it didn't hurt to to just see this being set up again so particle count one zero zero again give it exactly the same life expectancy invariants as the particles being emitted and then we'll say not no jitter there we go and then we're going to set this two points and we're going to set that to the attributes because these are for the trail we're just going to set their value in zero zero zero so we're just the points come out and do what they have to do and then we can see whether this has been we pulled this off so let's let's go and try this out and we're going oh we should name these this properly and we'll call this trail spark course okay and now that we have that set let's play and oh it's doing something a little crazy and the reason for that is the original pop replicate that I created this one I forgot to set that to work off of a point so it's trying to work off of a sphere out here instead of a point sitting right in there so because of that we now get it and boom there we go and what you can see is that now we're getting these little sparklers coming out from the ends of the original particles and that's giving us the sort of the particle look that we want for the fuse as it goes goes forward so out of this I hope what you've learned is how to to work with some of the parameters on the particles how to get the particles up to the geometry level set up some some attributes on it so that we can use the add saw to connect them together how to branch off and create a little side network to go do special things with those particles and then bring them back together once we have that we can go and let's go back up to the object level and maybe just color them all the same so there we go as you can see there's that's working there we go back to the oh I know we're gonna tie yeah we're gonna bring this down to a more reasonable number because that was that number was a little high so now we're getting a little sparklers but they're they're a little more subtle in terms of how they do that so a lot of tweaking again this is the benefit of the procedural workflow is you're constantly going back tweaking values letting it feed through the system and getting the result that you want and then we'll make them all yellow so they look like one coherent system and we'll go from there now of course setting this up for rent that's a different issue I'm not gonna be discussing that here today but certainly when the lesson gets published later we will apply materials and get this up and one thing is neat about these particles is we can set them up as a geometry light so this geometry can actually emit light and create sort of a light the scene around it as it goes so that'll be fun but I'm not I'm not setting that up here today okay so we've done all our particle work now we want to shatter this RBD and to some degree this is fairly straightforward it's not that different than what we did with the soccer ball but because we're dealing with a fractured object there are a couple different things about it the other thing is because it's not happening until much later in the in the sequence we're going to create a dynamic network that doesn't even kick into gear until frame 195 so we'll talk about that so here we have the bomb and as you can see the bomb around frame 195 switches using that switch thump that we had before so that's good but what we're gonna do is we're going to set the range from 190 forward just so we can focus on that point of transition what we're then going to do is dive down here and set the display node on here because we don't we're not worried about the original geometry at the moment let's get the simulation doing its thing and then will rewire things in a minute so now that we have that we can set up that as an RB D fractured object now normally people would put glue on this so that it's held together in a certain point it breaks apart but you know what we know exactly the moment this thing is going to explode so we don't need to put that extra effort in what we're gonna do instead is we're gonna create a new top Network notice how we set the start frame to 195 and we called it bomb RB D and then you'll notice at the very bottom there's a little menu and if we set that menu to bomb RB d any shelf tools we use will go into that dot Network instead of one of the other ones so that's how you have your own dog networks and set your own dog networks I can make sure stuff goes in it so now we're set up a fractured object it's gonna set it up as a packed object and it's gonna put it into that dynamic Network now notice that because we said don't even start until 195 there's nothing until 195 and then boom there it is now there's no forces or and on it so it's not really doing anything so we can go back in and say let's out of gravity force and now you see in the bomb RBD dot it's go goes in and it's what just falls into nothingness so again we need to bring in some collision geometry so we need to go to this point here go in and create a ground plane again this one again we turn this off we could have reused the ground plane but from before but just it's easier just to make another one for now and we go in and press play and there we go and it smashes the ground so that's good that's sort of what we wanted me it's not what we want the end but it shows that everything we've set up so far is doing it 195 this thing falls and does what it's supposed to do what we want to do now though is we don't want it to fall we want it to just explode so we're gonna put another force into here other than gravity and we're gonna do that by putting a metal ball into the scene and putting that metal ball at exactly the position sort of centred on on the on on the the bomb now we're gonna hide it for the moment first we've got to find it and just bring it over so there's our metaball object and we're gonna hide it for the moment just to help for selection purposes and we'll bring it back in a second we're gonna go down into this dynamic Network we're going to take that and we're going to say give us a magnet force and then we're gonna go pick the metal ball select that and press Enter and now down at the top Network if we press al to reorganize our network here just to clean that up you'll see that we have a magnet force now we're going to set the value instead of pulling things we're gonna go negative a thousand just like boom and we'll get rid of that we can turn off the guide geometry there and we can go back up to the object level and turn off the metal ball so we don't see that anymore either so now that we've got that magnet force in place we go in and smash there we go we just blew that blew that away because it's just one quick motion we didn't need any glue we didn't need anything fancy now we're getting a few stray objects here now we could try to change the position of our force to get rid of them or whatever but you know what there at the bottom nobody's gonna see them I'm just gonna go into here I'm gonna select those two things I'm gonna put a visibility saw up down and just hide them so they're not there they're still there they're still part of the geometry but we're never gonna have to see them again we wire that into this switch node and now we can play this back and there there we go and those pieces they just disappeared and we didn't know that they ever existed so that's that's helpful and there we go so now we've got our our bomb here we can turn on some of our other elements we go back to frame one here we can see the sparks with a soot trail all feeding in and blowing up this bomb so the three of our elements down what we want to do now is work on the pyro sim now like I said before the pyro part is probably the least fleshed out of what I've done so far so because of that you'll have to forgive me it's gonna be worked on and when the the foundation story all comes out there'll be a much better job of introducing that but I think just to show you just at general how do we tackle this the fireball side of things will just quickly go through some of the steps to do it we're gonna use one of the shelf tools which is an explosion shelf tool and because of that it's you know it's going to be fairly easy to set up but we don't have it set up looking all beautiful yet that'll we'll have to do a little bit more work on it there so again we create a new table net so this idea of having multiple dump nets and this one we will use as a source this tourist so we're gonna put a torus and we're gonna put it right up in the middle of the bomb here instead of putting it off of a sphere a torus might give us a little bit of interest there and then we're going to put in another dotnet and we're gonna call this bomb pyro and then we're going to use that menu in the bottom corner again and by setting that to to this new dotnet anything we do on the shelf will go into that new one instead of instead of an auto dotnet or something like that and don't forget to do that step in the middle there else you'll start getting dynamic stuff inside your pop net or somewhere else and that's that would have made things a little bit a little bit messy so you got to make sure if you're gonna use these different dot Nets that you're pointing that that menu down below to point that into there and again we start frame at 195 we're gonna take that and we're simply gonna go in and take pyro effects explosion and boom the shelf tool sort of sets it all up for us now the only thing is we press play and it's like the explosion it's not exploding it's like it's already there and the reason for that is there's an animated component to this that's on side this on the source volume and if we look at the channel for that we see that the actual explosion is is way up here which is at frame one so we need to take that and we need to move that over to frame 195 so it's it's more position better the way that we that we want our explosion to go and again there's probably a lot more tweaking we could do on this to get it to look perfect but just want to give you the basic principles here here today and once we've got that working we can hide that and now we go and now you see there's a little bit more of an actual explosion that happens right there at that but it's a little wimpy because of the size and scale and so on so we we would want to play with some other parameters to do that if we go back to the animation camera we can see it sort of happening there because that's where we'd probably want to judge it is it doing what we want it to do we can bring back some of the geometry and just take that pyro sim and we can just see is it do it is it got the size and scale that we need oh it's yeah that's not what we need so we'd have to put a little more work into the timing and getting that doing what we want so one way is just to take that initial explosion and and raise that value up to like 10 and then you know we'll already start to see a benefit of that as now the explosion is going to be a little bigger so just like anything in the simulation environment it's just playing with the forces and the the velocities and the things that feed into it and then there you can get a little bit more of what you want so anyway we won't dwell too much on this sorry will you know I think we just go in tried to change the value even higher just to see if we can push it but now we're starting to see yes that's a little bit better but we need it to be faster we need it to react better so there's other things that we're gonna have to tinker with to get that to work well I hope I've been able help you with some of the ideas and concepts in here but if you want to go further with your learning and look at other parts of your Deenie we have a great section on Houdini called getting started and it's in our learning paths section so side effects calm slash learn not only will you find the foundation book you'll find a bunch of learning paths for games VFX character and so on and for instance you can get access to the applied Houdini there's a whole series of Steve nipping from ILM has a great set of tutorials that a lot of people find very useful to get started rebel way is another place you could go and take one of their courses and we actually have a whole bunch of tutorials that have been submitted by members of the community and we try to consolidate them all up on the website so anything you need is searchable and available through that source so I encourage you to go and try that out and like I said the foundation book you can either download the PDF or print on demand if you'd like a hard copy of it well thank you very much I hope I think we have a bit of a QA now if anyone has any questions from all that yes oh we only have three minutes okay so we have time for a couple questions I'm going to be in the room next door if you'd like to come to me and ask questions there as well so we don't have to do it here if yes yeah well it when I when I did the ads op I said use the attributes on there to make the connection so the parent ID attribute then became the thing that I used to say only connect those only add those ones together yeah a lot of Houdini is about these attributes and just getting them to do what you want put them in the right place and get them to flow through the system and like that okay well have a great day at the show thanks for joining us here today [Applause]
Info
Channel: Houdini
Views: 79,579
Rating: 4.961453 out of 5
Keywords:
Id: rVdESjSfNkg
Channel Id: undefined
Length: 55min 42sec (3342 seconds)
Published: Fri Aug 24 2018
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.