 Okay, so let's keep moving forward and let's focus on actually Cleaning up the branches a little bit more So what I want to do is I want to actually add a little bit of droop to the branches and and as they Start to increase in their y direction. All right, what I want them to do is I want them to start pointing upwards Now if their y direction is pointing down, I want them to droop down. All right So let's take a look at how we are going to do that Okay, so the first thing I want to do is I kind of want to rearrange how I'm doing This particular technique right here because I need access to each individual copy And I want to work with each individual copy to do that drooping effect. Okay, so to do this I'm going to drop down a for each point Loop right here. Okay, and I'm going to wire in the Result of this branch normal directions right here Okay, these are all the points that we have right there and you'll notice now what we can do is I can come into this For each end and turn on the single pass and now I can work with each individual point and I can get data From it specifically this y pause data now If you're familiar with the copy to points node, you can also copy the point attributes So let's take a look really quick at these two different techniques here. So what I'm going to do is I'm going to wire in The result of this for each begin and then wire out the result of copy to points into the for each end right there okay, and You'll notice now. We can work with each individual Branch and start to do operations on that. So we're going to perform that drooping amount right here. Okay So let's keep moving forward. Oh, I want to take the result of the for each end and actually wire that into the merge there All right, so that way we have access to that. Okay, so Let's take a look at at least accessing the point So like I was saying before inside of the copy to points node if you have this copy to points or copy points Attributes right here turned on you'll notice that in the final copy that it is actually copying over That y-pause value to each point on here. So you'll notice that if I were to change the amount of points I come back to this node We now just have three values because there's three points here. Okay So There's a couple ways you can do this and the reason why I'm talking about is because I want to show you the two ways That's one way right is you can just utilize the value coming in The other way to do it and the way that I'm going to use here I'm going to drop down an attribute wrangle node. Okay So I'm going to do some more vexing here. All right And I'm going to pipe in the result. This is the individual point that we're currently working with. Okay All right, and it's always point zero right because we're working through each of the points So it's always going to have an ID of zero, which is awesome. We can always count on that All right, so I'm going to wire that into the second input here and remember that the inputs are zero base So it's zero one two three Okay, so inside of this particular node here What I'm going to do Actually, first let's go in here. Sorry about that I'm going to drop an attribute delete just to prove that this is in fact working So I'm going to say attribute delete and we're going to delete that y pause All right, so now we're not getting it copied over All right, so we have a clean value and we can also change this gradient value as well. So Let's get rid of that for now There we go. So now we have nice clean attributes to work with All right So in our inside of our attribute wrangle node here, so let me wire this up like so What I want to do is I want to capture the current points gradient and its y pause So this is just the other technique. Okay So what I'm going to do is drop down a comment and we'll say get y pause and gradient from current point All right, so in order to do this we're going to utilize an expression or a method called Point all right, so I'm going to first do f at because we're going to store this in a value. Okay, so we're going to store it as y pause So that's the name of the variable is equal to point. That's the function that we're going to use And now the point takes three Arguments here. So let's go into the help here Really quick. Let me launch the help It always helps to bring this up during the videos just so We can all see So there we go go to the point of x function here Okay, and you can see that it takes the geometry we want to work with The name of the attribute and the point number that we want to work with Okay, so In this case, we want the geometry from input one right the second input So we need to put in one for that and then the attribute that we are looking for is the y pause And then the point that we want to get it from is point zero because that's the only point that we have All right, so point zero is that only point over there Remember if we come up here to that for each begin, that's the only point we have so we want point zero Okay, great. So let's do the same for our gradient. So f at gradient is equal to point And we're going to get it from one and the name is gradient And we want it from point zero and we should probably name this something else because i'm going to use that same So we'll call this other gradient or we'll call it the main gradient We'll use this value for controlling the global drooping amount All right, so now you can see we basically get the same result. All right, we're getting those values So we have the main gradient and y pause All right, and we can actually change this y pause just to make this even more Evident we'll call this the droop direction like so And there we go. So we have droop direction the main gradient Cool, and that value has been put on each individual point there Okay, so with that what I want to do is I want to put in the gradient for the branch All right, so the main gradient is the gradient for where the branches are being placed on the trunk All right, so that's going to be useful information because then we can change the value as they're placed The gradient that we're going to create in here is the gradient for this particular branch And that'll control how it droops over the length of the The branch because at the the root of the branch, we don't really want it to droop that much It needs to kind of fall off Okay So we need a gradient in here. So I am going to say float gradient this time. I'm not going to store it into an attribute All right, I'm just going to put it into a variable And that gradient again is at pt num divided by at num pt minus one All right, we'll put that inside of parentheses like so And then we'll do the cast Like that There we go Okay, so now we have a gradient on this particular Branch line right there. Okay. So what we want to do first Let's go and just droop everything By its droop direction amount. So we'll do this kind of one step at a time So at p dot y right because we just want to droop it up and down. Okay, so at p dot y plus equals All right, so if it's negative, it will be a negative droop if it's positive. It'll be a positive droop. Okay Equals our droop direction. So we're saying at droop direction like that cool And you can see that it's it moved the whole thing. So if we come back up here and template it It moved the whole thing down. That's obviously not what we want So what we want to do is we want to then multiply that by the gradient that we created so the branch gradient right here So we're going to say ch ramp because we want control over it, right? We don't just want a linear droop and we'll call this the droop amount And we will pump in the gradient here. All right, and then we'll make that particular curve Okay, so now We should be seeing The droop amounts in here. Oh and the reason why that's not working is because I didn't make it a attribute I just made it a local variable. So there we go Perfect All right, so again, we can move this different sides here And we can droop this however we want now All right, so The best thing to do here is to just make all these guys I'm holding down shift to select all the points there and just set them all to a piece of point And that'll make it nice nice and curved Now you'll notice that when it droops The lines get a little bit longer or the segments in between each points gets a little longer Now there is a fix for that But it's going to be a little bit too complex at this phase in the series So I'm just going to leave it at that for now. All right We actually want to be able to rotate each segment and keep the segment length I'll do another tutorial on that here pretty soon, but I want to still keep this relatively basic Okay, this will suffice for now. Okay. So with that, let's take a look at the final result here So let's just turn off that single pass in the for each end node And let's take a look at what we get All right, so now we're starting to get something. That's way more natural All right, so if we take a look at the final results, we now have A pretty natural drooping amount But what I want to do let me actually Pull up where the branches start here a little bit Cool. So what I want to do is I actually want control over the global droop Okay So in order to do that I am going to come back into my Attribute wrangle, which we should name. So we're going to call this the branch droop like so All right, and we're going to create another Variable so I'm going to put these or this line into A parentheses just to kind of section it off there And we're going to multiply this by a the global or the main gradient here So I'm going to create another ramp and this is going to be a ch ramp and we'll call this the global droop And this will just allow us to control the droop over the whole length of the the trunk here Okay, so I'm going to pump in that main gradient like so All right And now you can see that they all aren't drooping anymore. All right And let me hit the create spare parameters and now you can see that Because we have this linear curve here at the bottom. We're we're not really getting any droop and at the top They're starting to fan back up. All right. That's pretty cool actually in and of itself And what we can do now is we can put in a point in the middle here All right, and then increase the bottom to get just a little bit of droop at the bottom there All right, and we can just again overpower all this stuff. So now we have lots of control over how this looks Very cool and we can bring down, you know, the main droop at the top there So now you have lots and lots of control Cool. That's kind of what I'm looking for All right All right, so what we want to do now or at least what I want to do now is I also want to put in the p-scale and I know we removed it beforehand, but let's put in the p-scale here So I'll say at p-scale Is equal to our at gradient All right, so this is the global trunk gradient there And there you go. So now we have that control and again, let's put that into A ramp so we can control it All right, so we use that a lot I'm going to call this the branch size Or global branch size How about that? Make sure we put a comma in there And just close it out. All right create that spare parameter And there we go. So now we can have control Over how big the ones at the top are Maybe they get bigger in the middle And they're the biggest at the end there like so and again if you want to go and Smooth all that out. You can just select all those points by holding down shift And set it to b-spline And then if you want to control the branch size even long more we can just do something like that That's more of a global control as well All right, so that is the drooping there. So that's all I really wanted to do there So I think in the next video we will start to put in the smaller kind of fronds The branches that branch off the branch All right, so let's keep going. Thanks so much