 Howdy guys. All right, so welcome to the third video in the fireworks project series that I'm working on. So in this video, we're gonna work on the house. We're gonna get all this guy set up. So let me actually go into the wireframe. So we're gonna go and get all this geometry set up over here for stuff like the roof. We're gonna do the windows and the just the platform and all the braces and stuff down here on the bottom Kind of hold the structure up. All right, so we're just gonna get that all taken care of Let me roll through some of these values here. So like we can Change the the house height here to whatever we want We have the overhang for the roof So I put it one. It just goes all the way in. I had it at one three five I believe four one two five and three five look good And then we have the the roof pitch So if I put stuff like three we can have like a really pitched roof and all the shingles get created for ya I haven't finished creating all the parameters for this yet. So I Just wanted to get through building all the geometry for it and then we'll go and clean it all up get all the parameters Created I'll show you guys all the new stuff with the Houdini engine 2 UI All right. So with that, let's get started Well, let's get started by building the top structure up here that the house sits on So we need to build like a platform usually under the platform. There's like some major You know pieces of wood that you hold the whole thing up So let's go and get those guys set up first. I'm gonna allow editing of contents here So I can jump inside and the first thing I need to do is I need to expose The very top primitive here to the rest of the the entire network here So that way we can you know start from this geometry up here. So to do that I'm just gonna drop down a blast node Like so and we are going to blast The last primitive in that whole list. All right, so we can just do the end-primes here end-primes From the incoming geometry minus one And we just need to put this onto primitives like so delete non-selected And then we also need to put the two back ticks because this group is actually expecting a string in there And so there you go. So now we have just that top prim what I like to do You might see this quite often is drop down a null node like so And I just call this out top prim Or something that is useful for you Now your null nodes might not look like mine and the way to get that to look like this You can hit X on the keyboard or not X sorry Z on the keyboard and you can hold down control click and drag and Just drag and drop it onto your null node and that will set it as a preset basically now the same for colors, too So if you hit C on the keyboard hold down control and just drag and drop onto that Basically, what it's done is it's overwritten the your user preferences in your my documents folder So with that all set up Let's move on over to the house over here and I'm going to drop down an object merge node And we're going to call this get top prim like so We don't need any transform information and what I need to do is go and get that top prim that we just blasted away So I'm going to do dot dot forward slash dot forward slash to jump out of this node and into the firewatch tower node So we need to dive into that firewatch tower node there. We're sorry. I'm the tower node there we go And then I want to select that out top prim So now we have this geometry available to us inside of the house node Cool. So at this point, I want to go and drop down a convert line It's so we're going to be building a lot of parts and pieces for this I'm going to set up a few different streams inside of here and to do that I'm going to drop down a null node here and we'll just use this be able to reference the geometry We'll call this top prim There we go, and I'll drop down another number another object merge node here and we'll call this guy get top prim Now you don't have to do this. This is just what I like to do to keep things nice and organized in my networks Cool. So now I have that guy available to me. So I'm going to drop down a convert line node very handy node here for Performing these types of modeling and I actually don't need the rest length. So I'm just going to turn it off I just don't want to add Extra attributes that I have to delete later on. I like to keep these things relatively neat and clean So I don't have a bunch of extra data Hanging around and then with that done. What I'm going to do is drop down a carve node Because remember now these are all separate individual primitives here And so I want to offset them a little bit. So I'm going to do my equal offsets here So I just drag and drop this down here Relative channel reference. So actually Actually, no, that'll that'll work. Yeah, we'll do one minus. There we go So then I have the offsets and what this is going to become are where the actual those large pieces of wood, you know that traverse The top part of this Platform that hold it all up are going to be okay. So now I need to drop down an ad node Like so and I'm going to delete the geometry keep points We're going to do by group and I'm going to skip every nth Point here and we are going to get the number of primitives from this convert line up here Or you could do from the carve as well. So let's do and prims and Let's just take the incoming geometry should be fine. Yeah, there we go Perfect. So now you can see as I offset this You get a nice equal offset around the entire object here Pretty cool Awesome. So with that done Let's go and add some normals because I want to peek these guys out a little bit and to do that I'm going to use a little bit of X. All right, so I'm going to try to introduce more Vex techniques that I usually use quite often. So we're going to call these our peak normals There we go, and I'm going to leave it on the run over points here and we're going to do int nay For the variable name So I'm going to go and get all the neighbors here All right, so we're going to do zero and at PT numb The reason why I want to do that so for each one of these points, right? I'm going to go and find its neighbor And because each one of these neighbors on each one of these points only has one neighbor, right for each one of these curves here It'll be perfect for our peak normals because I want normals that point away from the points. All right, so this will be much clear when I Go and get the normal setup for you guys. So we're going to do vector other pause is equal to Point and we're going to get the other position. So we're going to get Geometry from the incoming geometry where you can get the position and I'm going to do nay zero So that's the other Point because this works because we only have or we know we only have one other neighbor in this whole thing So now I can say that at n is equal to at P minus other pause And if I turn on my normals now, you can see they're facing away from each other So one thing we should do is actually normalize this as well. So it's normalize Always good idea to normalize your vectors There we go perfect and now I want to peak these now like I said in the previous video you can go and use the peak node at this point All right, we just don't want to recompute those normals All right, so that's one way to do it Or you just do it inside of your Attribute wrangle as well so you can just say at P plus equals at n times some amount, right? So create a new channel float, so we just do chf and we'll call this peak amount There we go And we'll expose that parameter spare parameter and now we have basically the same exact or the exact same exact operation and Again, like I said, you can use the peak node. I'm just more comfortable with the vex And I like kind of just put all my operations there as much as I can Cool. So at this point now we have our Curves that we can use for the wood planks. So let's drop down with plank note And there we go. So now all you need to do is just go and adjust the size Finally keep these guys square. Usually they're like, you know, these really thick pieces of wood Yeah, something like that looks pretty cool And I think you know in the next Chapter here for this particular video I'm gonna show you guys how to add the the caps on to this because I've noticed that I need the caps on those things But before we get into that Let's go now and I want to create usually when you look at these particular structures They have some sort of clamping mechanism right in the center here just so you know help bolt down the these large pieces of wood So I want to create that particular Structure as well. And so to do that, I'm just gonna move this off to the side here And I'm gonna drop down an intersection Analysis node. This will give me a point where all of these curves basically Intersect each other, which is really cool All right, and one thing that I want to do now is I want to create a line over here So I want to create basically it will end up looking like a plus Sign. All right, and so I'm gonna then use a copy and transform node Where this guy? Let's take a look at this here. I Want these guys pointing on Z so and Then in this copy and transform node. I just want to spin it around 90 degrees on Y Four times All right, so now we have this plus So let's go and fuse all this stuff together because currently they are or we have multiple points in the center here All right, so let's fuse it all together. There we go And then let's do a copy of points and for each one of those intersection points We're gonna copy this little plus Curve structure that we built. Let's take a look at that now and I need to actually switch these inputs. Sorry about that. There we go. So now we got these Plus symbols there and we can control their size right like that on the line node itself So really easy way to get that structure going and then to create the geometry for this Let's use a poly expand 2d node. So let's do a poly expand 2d This will basically generate some geometry we can then extrude for ourselves, which is great So if we just use the offset here, we can make this thinner or thicker Whatever you like and then let's do a poly extrude So we do poly extrude just to give it some thickness Now we can always go and get just to make this more procedural We can always go and get this guy one of the parameters up here that actually controls the height So this one right here. So let's copy this parameter And let's just paste that in here. There we go. Yeah It's looking pretty good. And let's just add a little bit more on. So we'll say plus 0.1 or maybe 2.5 too much Yeah, I think that'll work for now Very cool. And inside of the poly extrude node. We also need to make sure that we Include the back geometry because if we don't then it'll be an open piece of geometry there Alright, so now all we need to do is Make sure that These two guys are merged together There we go. And then we got to take a look at this offset that we're getting here So let's go and drop down a transform node up here or we can use a match size too Well now we can't because it's actually all the way up there. So let's actually drop this down just a little bit Something like that I'll always use the centroid of this guy. I think I'm just gonna leave it Like that for now. I'm also gonna kind of reduce the size here. Let's do 0.05 You know raise this up. Well, we could just actually take The total height of this guy this guy right here Now we should do it this way. Sorry. I'm just kind of doing this on the fly here Yeah, we'll do this guy right here and Then what we can do Rather than just hard-code that value. Let's get the BB box So it's a incoming geometry and the value we want is a dy size And then we'll just multiply that by 0.5 and we just need to make it that And take a look at the results. Yeah, now we're procedural Cool. And now we have control over The length of those clamps there and they usually are kind of something like that So we can work more on those together but that is the general idea of creating those types of structures using intersection analysis and Just hard or making our own custom peak normals and stuff like that. So some cool techniques in there All right, let's move on to updating our wood planks HDA All right, let's take a look at adding the caps to our wood plank HDA That'll really come in handy. So I'm just gonna right-click on this guy and say allow editing of contents like so And really what we need to do is just down here at the very end We need to go and add in our caps, right? So the sweep node actually has Functionality for that. So if you come over here to the surface tab and into the end cap section here Just turn it on to single polygon. You can see that it'll add some geometry there for you We can also group it which is really important because we actually want to UV that and I also want to add a little bit of an Extrusion and inset to it. So it has, you know, just a little bit of shape to it So let's take care of that. So now that we've got the end cap created and we have a group for it Let's do a split node and this split node allows me then to split on that group name. And so I'm just gonna put an end cap So I'm gonna invert that selection. So that way all the end caps come out of this side right here And let's first do a poly extrude node like so And we are gonna go and just kind of pop it out just a little bit. We need to promote these parameters So whoever's using this particular HDA has control over these Values because each wood plank is going to be a little bit different Cool. So with that all set up, let's go and add in our UVs there. So for this I'm actually going to drop down a group node for this particular operation use the UV flatten node I find that to be one of the more useful UV nodes in here if you're relying on nodes alone And so to do this I'm gonna go and switch my group type on the group node here to edges And we're gonna go to include by edges and I'm just going to turn on this min edge angle And I'm gonna increase it until we get rid of that top guy There we go. So I want to basically have these particular edges as my seams Right and we'll expose this value too. So users can change that and so The common thing to do is just call this the same group or seams like so and then drop down a UV flatten node and Put that seams group into this particular flattening constraint So you can just type it in or you can go and select it from this little drop down over here There we go. All right, so now I'm gonna save my scene and I'm gonna hit five on the keyboard And that's gonna take me into my UV view. So you can see now we have Perfect UVs for these guys. Now one thing one thing I should mention here is that the Spectral is gonna be faster than the angle base. So if you look at the documentation Let's go and hit the little question mark here really quick just so I can show you guys Always good to reference this stuff Especially when building HDAs for the Houdini engine you want to make sure it's speedy as possible now, you know, obviously the larger your HDA systems get they will slow down. So I Think but I believe it was all laid down at the bottom here Let's do There we go. I found it. So flattening method. So you can see here in the documentation It says spectral is the faster of the two So I'm just gonna leave it on spectral for now. It looks fine to me You can always verify that you're not getting stretching by dropping it down on a UV visualize node So if you do UV visualize and I'm gonna use the labs version here So I have the labs installed and I'm just gonna reduce the size here to one in one Yeah, that looks pretty good Very nice. So last thing we should do is drop down a UV layout node and Just stack all these guys together we'll do some becks and Randomize their positions here, but I want to start from a clean slate here. So in the UV layout node I'm gonna select stack identical islands like so and just leave it at that Very cool. So now all I need to do is merge these two guys together Let's merge these guys Like so and just wire that in and we also need to Provide a switch So I'm gonna switch on whether or not we want caps or not because we should make that an option for users So let's do a switch here so I'm gonna wire in this version, which is just our straight up version with no caps or anything like that and Actually, we could do this switch Underneath here. So let's do this here So I'm just gonna grab this wire like so and just wire it in like that And then the switch now is Here so if we do want caps we want this version, right? So now we can switch between the two operations Cool, so let's go and update our type properties for this guy So let's go and right-click on the wood plank up here and we'll go to our type properties And I just want to expose a couple of those parameters there. So let's move that off to the side and Let's go and add a new folder and I'm gonna call this. I'm gonna set it to simple. I'm gonna call it caps and the first thing I want to do is just Drag and drop this Select input here and turn it over to a toggle So that'll allow us to determine whether or not we want caps or not. So we'll call this cap switch We'll say use caps the question mark and I'm gonna leave it on by default. I think most of these cases especially for this particular model We are gonna want the end caps on and then we need to go and expose some of these values. So let's go now and Expose the distance. So let's drag this down We're gonna drag out the insect so I'll control over that and then we also want to control the min edge angle here Like so, I think these guys first these guys are fine Yeah, the one thing I want to do is I want to turn off these guys right here if or hide them or disable them if We have the use caps toggle turned off. So the way that this works is If you come down here to the interface options, you can disable them or you can hide them So let's let's do a hide actually. So I'm gonna say when caps switch Is equal to zero we're gonna basically hide it or actually let's do a disable Sorry about that. All right, I'm just gonna copy this guy We'll do the same for all these guys here Hit apply and accept. All right, let's jump up and out I'm gonna hit you on the keyboard and let's go down to our use caps. So now when I turn it off, they get grayed out Right, so it's a really useful way to do it. Now if you're doing the Houdini engine I do actually just end up hiding them. I don't believe the Disabling actually works. I don't know. Well, we'll see how it works at the end of this video when we drag it into Unreal so All right, so I'm last step always is to go and save your changes like so and we are good to go So let's just finalize this guy. I'm gonna do a null node down here We'll call this out platform supports And let's put a net box around all this So select all your nodes do a shift. Oh, I have a net box. We'll call this platform supports And then color it like to just color these guys black like so Just a nice Organizational tool Cool. So now we got one piece going. So let's move on into the next chapter here and put on all the wood planks that sit on top of this So the next step is to get all the wood planks on top of this that sit on top of this particular Particular platform. So I just went and turned on the tower by selecting this goes to other objects and I am noticing that the These supports here are sitting right inside there. So what we need to do is add a Transform node here just transform this up just a little bit and that value that we need to move Again is half this particular value because that is our y value So let's paste this in here. So I'm gonna paste this relative reference Take a look. So that moves it up too much. So we just got to cut that in half. So 0.5 Oops, there we go. There we go. So now it's sitting perfectly right on there Which is what I'm looking for. All right, so let's go and build the Platform wood planks. So I'm just gonna go and hold down alt left click and drag Copy this guy because this is our starting primitive now We do need to transform this so it sits on top of the supports that we just built So I'm gonna use a transform and we can actually reference this particular node down here and get the y-size from that All right, so we're gonna do a BB box And we're gonna get the information from our out platform supports and we're gonna get the D y-size Like so and that'll place it so it's sitting right on top of those supports if I were to template this down here You can see now. It's sitting perfectly on top there. Awesome All right, so we need to peek it out a little bit So that's gonna become one of those global values this peak value here So I'm just gonna leave it at 1 for now You notice that if I were to go to my top view by hitting space bar 2 It's actually lining up almost perfectly with our stairs there because our stairs are peaked out a value of 1 as well So I'm going to do the same thing for this. I'm just gonna do a poly extrude Like so and let's just copy our peak value here So let's copy the reference. So I'm gonna copy the parameter and we are gonna go and paste it into our inset value here Like so and we're gonna do a negative amount and we're gonna push it out Now all we need to do is not output or actually not output the side just output the front Now we have a new quad that we can use to break up and into curves and stuff like that to use for our wood planks All right, and as you can see it's lining up perfectly with our stairs So we're gonna have to go and cut out a little hole up here We're also gonna have to make sure that the stair Randomly only comes up to that point as well. So we'll take care of that At a later time, but just keep that in mind. We are gonna do that for sure All right. So with that poly extrude in place. Let's cut this guy up So what I'm gonna do is I'm going to basically create an ad note here And we're gonna delete our geometry We keep the points and then we're gonna do groups of end points here So that gives me these two sides here And then what I ended up doing was I did a resample like so and on that resample note I did a maximum segment length like so Let's resample my polygon edge. So now what that's gonna do is it's going to Give me a point for so many segments here Which is perfect so we can control the size of our wood planks with that. Let me actually Hide all other objects so we can see what we're doing here Cool. So now at this point I'm gonna do a sort and This sort is so that we can Sort this appropriately when we use an ad note down here. So let's do an ad and Let's wire this up here really quick just so you guys can see the result of that sort node So inside of this ad node I'm gonna also delete the geometry but keep the points and then we're just gonna do that same operation We're gonna do group of end points. So now when you do that without the sort node, you can see that it's not working I want Curves that go in between each of these points. So we need to sort this by x and so now I have Curves or lines between all those points All right, so that's what the Reason behind using the the sort node is there. We just have to get an ordered set of points so that the ad node can work Cool. All right, so we're each one of these guys I want to create a series of wood planks and I want them to be you know relatively random here So to do that what I ended up doing was I did a for each primitive here like so and Then that lets me then loop through each one of these guys, right? So for each one of those I want to basically resample this again So I get Let's do a resample there. There we go. So I get a bunch of segments now. I want to randomize this Per loop here. So everything every single time we go through this loop. I want to randomize our particular Resample node and so I'm going to set this to maximum segments resampled by polygons and I'm going to write out a little Expression in here. All right, and so to do that. We also need to create our meta important node So we have our loop data So we're going to access the iteration number basically So if you were to look at or select that metadata node there and go to the details View here in the geometry spreadsheet. You can see that we have this iteration number and as Let me actually pin this here really quick. So I'm just going to select the node. I pinned it so that way I can come to this node here and Drag the slider around so you can see that iteration value down here is changing As I go through my single pass So we want to use that as a seed for a random value that we're going to place into this expression here on the resample node Cool. So the expression is fit. So we're going to fit a Random number that comes back from our iteration value. So we're going to get that iteration value using the detail expression And so we need to get the information from the loop data node Like so we want to get that iteration attribute And just type in zero for the first index because it is just a it just has one value Cool and then basically now what I want to do is Convert that from zero to one value because the random function is going to return zero to one Or a value between zero and one, right? So we want to remap it to something like two and let's say six something like that All right, so now if I turn this on or turn off the single pass you can see it's got it might be kind of hard to see Let me turn off the templating here So you can see that our resampling is different every single Curve here some of them are the same But that'll be fine. This is what I ended up doing. So cool Let's go now and convert that to a line Or use the convert line node. I should say All right, just to break it up in individual segments that way we can then drop down a wood plank node Very very useful little HD that we made ourselves. All right, so let's get the Wood plank all set up. So I'm going to reduce the size here so be it would be nice to actually know what size that should be right because We can't be guaranteed that it's always going to be this particular value, right? So how do we do that? Where do we get that information from that? Let's adjust the Y size here Looks pretty good like so Yeah, so where do we get that information from right? Well, we come all the way up here to our add node resample node here This is that each one of these segments here in this particular curve is the length that it should be All right, so in order to get that information, let's drop down a convert line here And let's break it up in individual segments All right, and then we actually want to utilize this breath rest length now All right, so if we were to go to our Primitives or is it our points? Oh, don't forget to unpin it. There we go I do that to myself quite often you'll notice that the rest length is basically the same size for every single one of these Awesome, so we can use that value. Let's just promote it. So it's easier to get So I'm just going to use an attribute promote node here and we're going to promote this to a Detail so I'm going to call this the length adder for the label I'm going to promote it from a Primitive class to a detail class and the original name is rest length Cool. So now it's a detail and it's a single value that we can access So let's come down here to the wood plank node down now and let's get that value So we're just going to say detail now We're going to get the attribute from our length attribute node and the attribute name is our rest length and Zero because it's a single value. So now if I were to click on the label here, you can see it's returning us the proper value So let's take a look at this Awesome. So now if I were to go and change The amount of planks I have it changes the width of that as well Pretty cool Looks like we might need to add a seed value. I'm getting a line straight down the middle, which isn't all that aesthetically pleasing one thing you can do is You know add on some random number, you know, we could always add a spare parameter to this Let's try doing that here really quick Let's go and say add spare parameter or spare input, sorry And actually I don't need a spare, but let me delete that really quickly. So let's delete all our spare Actually, you just want to edit the parameter interface of this guy And I'm gonna put in a float value. I'm just gonna call this seed And seed you can add on to these nodes. Just don't save it Like don't try to you know, right-click and you know save or anything It doesn't even allow you to do it. So so now what I can do is just copy this parameter and One thing you can do up here too is put the The cursor over here and just do an alt E and that'll load up the Expression editor for you. So it's a little bit easier to see so Right off the detail expression. Let's just add a plus sign and then we're gonna do a paste relative reference in here Or it's not gonna actually let me It's a bummer Let's close that. Let's go in here and just go all the way over here and then paste relative reference There we go. So now we can change the seed value And it's okay line. Well, I'll look into it a little bit later. Anyways, it's a good way to get that stuff going there Let's see. Did we have a Line in the middle here. Nope. Yeah, like I said, all if I come up with something better I'll show you guys for sure. So there we go. So the other thing I want to do here Is I want to do a carve So let's do a carve. I just want to offset these guys a little bit here. So let's do a carve in here So for each one of the segments, I just wanted to carve it a little bit So let's turn on our on our second you drag and drop our first. We'll do our equal offsets here There we go. So now we can just offset it just a little bit Yeah And then you maybe play with our Well, never mind that's from our wood planks here. So you can add more segments to it Let's just turn that off right now so we can see There we go off. Yeah, it's actually working still All right, so yeah, let's go and play with our offset a little bit more here Cool, and then let's go into our wood planks and Let's add a little bit of a bevel to this. Let's also computer UVs bevel and my Houdini crashed I have found that if you have UVs basically on your mesh and then you try to use a poly bevel node Every so often it does crash Houdini so just be aware of that. That's what happened to me. It's working this time though. So Yeah, these are all the values that I have here very cool So what I'm gonna do is just drop down a null node and I'm just gonna call this out platform planks like so And we're gonna create a object merge node here and we'll say assemble. So just assemble everything here We don't need any transformation information there I'm gonna add it two slots just by using this button here and let's do the supports and Let's do the platform planks So now we just have one node that we can turn on to take a look at how this is coming along It's looking pretty good. So let's turn it off this guy We can also put some normals on this and I'm just gonna set them to zero for now Yeah, it's looking pretty good. We kind of nice to have a little bit more space The notice that I did actually unhook this So let's put this up to like two five No, let's go down a little bit like two one five two two Yeah, something like that looks good Cool, you want to be able to see just a little bit through there All right, so that's looking good. We are now good to go. Let's wrap all this up into Subnets And we'll call this platform planks And give it our color Now you can also turn all these guys into subnets just like I did for the tower over here This is a couple different ways of organizing it. You'll see these techniques used quite often with other Houdini artists So that's why I'm kind of mixing it up here Cool. So now we got our platform planks. Let's move on and start building the actual house here Well, actually, let's do the railing on the outside here first and then we'll do the house Okay, so let's go and put some railing around the platform here So what I want to do is I dropped on a grid up here And I want to get it so that it fits perfectly to the platform planks You might think that you want to use this particular piece of geometry But you'll notice that if I switch on the display flag for these guys They're actually not the same size and that's because the wood planks are being Swept down the center of those curves and so just a little bit bigger So we what we want to do is get the bounding box size of this guy and apply it to a new grid up here so I'm going to make a new grid up here and We're going to do rows and columns of two and two just so we have a quad and then we want to do The bounding box of the platform planks there. So we're going to do out Platform planks and we want to get the DX size All right, so you get the size and X And then get rid of that either we go and then we want to do the z-size There we go. So now are the exact same size and Let's go now and get the positioning. All right, so we can get the position of this guy right here All right, so let's do that. Let's go and move this guy up So we're just going to do the centroid of the planks Like so and you want to use DX for the X centroid and Then we want to do DZ There we go. And then finally we want to do a BB box up here and we want to get the Y position of Or the Y max position of our planks. So let's do the out Platform planks again. I'll do D Y max There we go. So now we're going to be sitting perfectly On top of that so we can put our railing around it. Awesome. All right, so first thing's first here Let's go and add This guy basically won't we want to Well, actually let's go and re-sample this first let's re-sample it all right and We are going to use this to create the posts So you see if you don't use the re-sample by polygon edge It will actually remove some of those points at the corners and we want to keep those guys So let's turn on our point display and let's put this down to something like four or five Let's do five to start with Cool, and then let's go and create a line And we can just copy Our line to that which basically comes the posts of our railing Like so Let's put in an add node here Let's delete the geometry and keep the points that'll actually just Set them up in Y because by default this line starts in Y and it's a length of One meter or three feet which is actually good starting value for this Perfect. So with that let's drop down a wood planks utility here Let's just save our scene just to make sure and Let's go and resize these guys. So I'm gonna leave the caps on for now We might not actually need the caps for this one. So Because we're gonna be putting the handrail on top of this guy. So actually, yeah, let's just turn it off. I don't well I might want to put an option to keep You know either top or bottom in this case I'm gonna keep them on for now just to so we have the bottom ones because the bottom ones you're gonna be able to see from in-game Alright, I'm gonna save and turn on my bevel. All right, cool And my Houdini crashed again, which is awesome So there is definitely something of an issue with these caps because that was the last thing we added to this wood planks It's been working fine so far So I think It all stems from this particular sweet node creating the cap And not liking that bevel in there. So I'm gonna actually not do the cap that way. We're gonna do a different way So I wanted to show you guys what I was gonna do. I was gonna do it off video, but then I was like, well, everyone probably wants to see this So let me Do all those changes there. All right, so let's go and drop down a poly cap node All right, and let's just wire this in over here So that's going to basically do the same exact thing That the sweep node is doing it Obviously something in the sweep node that does not like that And we can actually create the same group name. So in caps is what we're looking for just so it works with our previous system there So in caps, there we go Now we can just send that in there like so Yeah, looks like it's working now. So I think that was the issue. I'm going to keep going with that So I'm going to save my changes And match to the current definition. Cool So now we've got beveling on there, which is great Let's go and save our scene and compute UVs Yep, looks like everything's working. So it looks like it just didn't like create the caps In the sweep node. So you have to do it yourself with the poly cap node Cool. All right. So with the caps here, let's just move them down a little bit You know one other thing that's been kind of annoying me with the updates here It's probably good that you guys see, you know what I do on a regular basis with all these guys I just don't like the negative offsets. We don't need any negative. So I'm going to put this down to zero and just clamp it Same with our well our insets always going to be negative in this case I believe so I'm just going to set that like so Actually, we need to do it the other way. Let's do it the other way Zero and one we'll cap this one. I'll leave this one uncapped There we go. Yeah, so just a nice user interface quality of life stuff Makes it a little easier to use We probably don't need as much range on it. So you can always come in here and adjust the ranges Let's say we do max of point five I'll leave the inset as it is Right because I just want to make it easier to to get the look fast without having to use the You know, it's okay to use the increment ladder. It's just I want to be able to use the sliders here So there we go. Cool Yeah, much easier to use now and we're not crashing all the time, which is sweet All right, so we have our posts ready to go that is all set up nicely so now let's go and create the Let's go and create the a railing A horizontal railing. That's kind of like in the middle Of all this here. So all I really need to do is Go and drop down a transform node like so And we can to make this procedural. I want to basically Find the length of the line here. So let's do this. Let's copy this perimeter So as that length changes We can Get some sort of percentage of it. So if I do like, you know point zero five seven five like so Let's template this guy now. So we'll always have it there. So maybe we'll do like six five And that becomes then a value that we can expose So we can change it and it also follows constantly with the size of our Posts so if we change that everything else adjust accordingly Cool. So then all we really need is another wood plank. So I'm just going to go get my wood planks here Let's make sure we've saved All these changes and let's just uh match current definition There we go. And it looks like we're getting some walkiness. There we go Let's reverse the cross section and let's uh For our x size, let's just bring it in a little bit and let's template our Posts so we can get a better idea for our y size Yeah Maybe we'll play around with some of these guys Yeah, there we go. That's what I was looking for. I just want to push it out a little bit And let's play around with that x size a little bit more So super handy tool So make sure we get our UVs in there and hit save turn on our bevel Yay didn't crash I think it was totally the cap stuff Uh, we probably need a couple more segments in here if we do some vertex color tricks later on So I want some more geometry to work with Cool. So that's that one and then all we need to do is just literally take that same guy So I just have them alts and then left click and drag And we just need a line at the very top of these guys All right, so let's template this and take a look now at this guy. So now we're right at the top And again, I'm just going to copy this wood plank tool because it's already set up Now I want this guy to be centered And I want it to be wider on x. This is basically going to be the handrail and then smaller on y Yeah, so Good reason to always make hdas little utilities for yourself just to speed up your workflow Because you know, we're honestly kind of doing the same thing over and over and over again But just trying to build up all the parts. So let's go and merge all these guys So I'm just going to select them all hold down alt on the keyboard And then left click and drag from one of the outputs there And that creates our merge node for us automatically All right, very cool. I think the last thing I want to is a piece of wood at the bottom To kind of cover up the ends of our wood planks over here So let's do that and Let's see that's just going to be this guy over here So really all you need to do let's drop down a convert line here to break it up into segments And let's do a carve And we'll do our equal offset trick might as well just make a preset for this I don't think I have an alder in there already. All right, so let's copy our first u Paste it in there and do a one minus now with that set up. We can come in here and just save a preset So I'm going to call this my equal offset Save the preset Because we're doing that quite often All right And then let's just copy one of our wood planks over here Should make a little icon for this too at some point here Not really necessary, but Always fun Oh, it doesn't like it. That's what it is. So it doesn't like it when One of these values is too small for the size If it approaches something really close to zero, I think the bevel just kind of gives up and Just basically don't see any on you. And so we can take care of that actually Make sure So let's go into our parameters And for our size here, uh, let's make sure we can't go negative We first don't want to do that. Let's just say We can't do anything less than point One, I think that'll be good And the defaults are fine. So I'm just going to lock it off. That should take care of that issue Oh, I need to unlock it and save it. There we go except and Save your node then just don't match it. So when you do that it basically propagates all your changes down to the other guys right, so Super useful. Well, let's match this one. So it matches And this one There we go Cool. All right. So now I think we're good to go. Let's uh, let me just readjust this here I had to restart and get that all set back up All right, let's uh, move this guy up. I'm just gonna move this guy inwards a little bit Yeah I'll just use this carve down so that way kind of Move this off. It would be nice to actually Have these guys offset appropriately, but for now, this will be fine For the video at least I'll probably go on and polish it up a little bit more Let's push it to the outside too. So let's do the max That's interesting that is doing that. Let's uh, just feed in This guy Well, we do need the carve in there Let's go up here and add normals No, it's just gonna do the same thing there So let's keep it centered then And maybe for the y Let's do our max Let's see how that looks here for a second. So I'm just going to put down a null node down here And we'll wire this in Call this out really And let's add another slot to our object merge node here And drag and drop our null node into there and we can look at everything all together So I do like that look It's like we need a little bit more extended on the the line itself. So you can actually take care of that Let's say we can do it up here. You can always move the origin down for these guys Which means we'd have to update how we're doing those other ones, so That's not biggie though I kind of like that. It's working pretty good All right, so let's move these guys. So basically let's just get rid of this here Put this on zero. So that means it's at the bottom So all I really need to do is get the dy max now. So we're going to do db box And we'll get it from that wood plank three. So this guy right over here So with plank three Do dy max Or I should say y-sides That does kind of put it right back up there, doesn't it? And I think I'm gonna do this a bit differently here. So I'm gonna go back a couple steps here Back to my original expression. There we go. And let's remove this offset here And then let's basically Let's cut this guy And then we'll just transform this whole structure down By half this amount here For these guys because remember this is this one over here So paste that into our y for this we'll do times five to get half of it. We'll move it down Yep, so that should now Yeah, well, we could go the whole way too Just so it covers it up. Yeah Yeah, I think I like that better. So let's do a merch So always, you know take a second Sit back kind of think about, you know, the end results you're going for and see if you can find a better way to do it rather than Creating a complicated mess with a bunch of expressions Yeah, and then we can control the size here. So Still works totally for me They make it a little bit thinner. It's still a little too much for me It's like a really thin piece We did clamp it though If we need a little bit more, let's go see and see where we can push this See where we can push the values here. So let's go up into our size here Let's do 0.05 and see if that will work for us So let's do 0.05 Yeah Yeah, that's really all I'm looking for We just need 0.01 part bevel Yeah, I think that's gonna work well for me. All right, so Good stuff there. All right. So now we've got our railing all set up In our platform. So now we just need to work on the house, which isn't that Not that difficult really at all. So let's go and get that guy set up In the next few chapters here All right, let's focus on building out the house portion now. So let's start from our top prim All right. So this basically will serve as our Starting point for the house. It's right where we need it to be The first thing we do need to do is situate it. So it's sitting right on top Of our platform planks and really that's why I break things out into their individual components here Makes it a lot easier to grab the geo that you need All right, and so let's come up over here and drop down a transform node like so And we just want to do the d y size Of the platform planks. So let's do a bb box We'll get the geometry from that platform planks. We'll do a d y size There we go And let's just make sure that that is in fact where we need it to be And it looks like it's not it's right in the middle there Let's do y max And that's not going to work. It's going to be way too high. Yeah So just to be really accurate about it, let's do this Let's have a transform first to basically re-center it Down at the world zero. So all we really need to do for that is the negative dollar c e x And then negative dollar c e y and then negative dollar c e z There we go. So now we're right back down there. So now we can use the y max Yeah, there we go. So now we're sitting right on top of it, which is exactly what we want Cool. So I also want to add a little bit of scale to it. So we'll call this center in world and then we'll call this placement And then we'll make another transform node and this one will be our scale I want to make it a little bit bigger than that a little bit bigger than the actual Size of our tower there and so to scale this Since we don't need any scale on y We could literally just highlight this guy and move it over here make a relative reference to it And uh, let's do that one more time there. There you go And we could scale it out Let's try that one more time. So I'm just going to Highlight this value Let's just copy the parameter and put it over here paste relative reference. There we go All right, so now I just want to scale it out a little bit And we can expose that single value now cool all right, so from there What I need to do is I need to sweep a line around this All right, and so Let's go and create a line here And I need to actually break this line up into multiple pieces here So let's drop down here. I'm gonna hide everything else. So let's drop down here So currently we have a length of one. So that's three feet So I want this to be around nine feet high. All right, so We're gonna do something like three There we go And I need to cut this up and group it into multiple Individual curves here and to do that I'm going to utilize a carve The reason why I'm doing this is because I'm going to use the curves To build the kind of lower walls the window Side of the wall and then the upper portion of the wall. That's just uh, usually just like, you know, the support structure piece of wood there All right, so let's uh drop down a carve node here And in this case, let's just carve off the top here really quick And I want to keep my outside. So this is going to be that top portion Usually kind of a larger board All right, and then let's split this up So now I'm going to drop down a split node here And let's get rid of primitive zero And yeah, that'll work for me. So then I'll do another carve node here And this will be the bottom portion, right? So I want to do something kind of like that We also want to keep the outside as well And we can adjust this all later. So let's drop down a merge node Merge these guys back together Yeah, so now we have three segments. So I turn on my print numbers. We have zero, one, two Let's just always ensure that we actually have A proper numbering there. So it goes from zero to the Highest number of primitives up here. So for our point sorts Let's do by y and primitive sort will do by y as well That just ensures that it's always going to be like that Cool So now what we need to do is we need to group this stuff so we can Drop down a bunch of group nodes here And I'm going to call this one the bottom So we're just going to type in zero right so it'll group just that guy And then let's just copy that node using the alt left click technique there I call this middle and this is going to be called primitive one There we go Then we'll do another one and this is going to be our top And this is going to be primitive two Cool. So with that done, let's go now and create the posts with that So I'm just going to move this off the side. This one's going to get kind of big here So I'm going to do the main corner posts here. So let's do an ad node So we get just our points All right, let's hit f on the keyboard and let's delete our geometry but keep the points And let's do a copy to points now So copy two points And really we don't need this particular one for this operation. We just need the the starting curve here So let's do that Yeah So that's going to come kind of the the major post Corners for our house there And now all we really need to do is drop down a wood panel So let's do that All right, I'm going to save this guy. Let's create our UVs. Let's do a little bit of a bevel on this And let's adjust the size. I am going to keep this square All right, that looks pretty good. It's a little much for me on the bevel And let's go and change the distance on this over here Yeah, something like that looks good Yeah, let's change our edge angle here. See if we can get those guys to break apart there Yeah, that looks fine All right, cool So let's now focus on building out the actual wall segments. So like the the bottom Wood planks and then the windows and then the top wood plank up here All right. So to do that I am going to sweep this guy. So let's do a sweep So we're going to sweep Using this curve up here. All right, very cool And now we can reverse those cross sections The cool part about this and the reason why we set up those groups is now They go along with the sweep node, right? So we can actually blast away geometry Which is awesome. So now we can use blast node and work on each individual section here So I'm going to blast away I'm going to get the bottom And then so this is going to be bottom geo Let's create a copy here. Then this one's going to be our middle Or our windows Call middle geo Then we'll make another copy here And this will be our top group We'll call it our top geo cool So we are good to go here. So now All I need to do is build those bottom planks, which is pretty easy So let's set up create a subnet and do it inside of a subnetwork here. Just say organize. So we'll call this the bottom planks dive inside And what I want to do in here is for each one of these primitives. So let's drop down a For each primitive loop. So for each one of those primitives there We want to run some sort of operation There we go All right, so I'm going to drop down an add node here. Let's turn on our single pass So we can just focus on one So it's delete our geometry and we are going to put this on group Of end points There we go And we're going to do our resample So let's resample that guy. It's kind of like what we did for the wood planks on the platform over here And again, I'm going to use maximum segments and resample by polygon edge And let's do something like yeah, that's five looks pretty good to me All right, let's do a convert line there So let's do convert line We don't need the rest length attribute At least not that I know Well, maybe we do let's keep it All right, and then let's promote that to a detail So let's do an attribute promote And we're going to promote from our primitives to a detail and we're going to get that rest length Just so we can access it in our wood planks hda that we made All right, so then for each one of those particular segments, I just want to find the center point So I'm going to use a carb node for that and put this at point five That gets me the center point if we actually just set this to extract So now we have that Center point there and then we can just do an ad node And inside of the ad node here, we want to Basically get the amount of segments from our resample node. So I'm going to go and copy this guy So let's delete our points go in here and we're going to do skip every end point And that value is going to be our resample value Cool, so with that we can just run it through our wood planks hda So let's go to in a pixel fire watch utilities wood plank cool so let's save that and Let's go and adjust this a little bit And now we can use that rest lengths for this particular size right here All right, so I'm going to do a detail Get it from the incoming geometry because it's actually on the incoming geometry at least it should be Yep, wrestling. There we go. So we'll say detail from zero And then zero for the index there sweet So then I just went and Adjust my caps and the bevels and stuff like that. So nothing crazy there Now we can turn off our single pass and see what we get Yeah, it looks pretty good. I think Let's go and test out This guy So we can make more or less wood boards there for the side. I think I can air on the side of the bigger ones there Yeah, I think we're gonna go with that because the posts are gonna hide all that stuff there So now we can merge together these guys Let's merge these two guys together with our posts Cool. All right, so let's go now and take care of our Windows so let's create another subnet here. Let's call this windows And inside of here we want to Drop down another for each primitive loop So we can loop through each one of these guys and get the geometry all prepped So let's do a for each primitive in here There we go And what are we going to do inside of this guy here? So let's first The first thing I need to do is I need to actually create a normal So we can check to see if we need to reverse this stuff And I'm going to put that on my points here. So now I have a point normals like so And then I want to drop down an add node And I'm going to go and delete geometry And we are going to do groups or no, let's skip every nth. There we go Because I want to resample this or both those edges at the same time, right? This will allow me to determine how many windows I have In my window wall here. So let's do a resample And let's do maximum segments and we're just going to do this at like Three or four Let's do three Yeah, that looks good. Just like that All right, and then let's skin that back together So we'll skin it And so that one worked out nicely Let's see if we actually do need you do. Yeah, it looks like we're gonna have to Do A reverse trick so we need to do a little bit of wrangling here. So let's do an attribute wrangle And for the code for this all we need to do is Create a new vector variable called norm or nirm And get that first or get a normal from one of the points. So I'm just going to do a point limit I'm actually going to run this over primitives to you So let's do the incoming geometry. We want to get the normal attribute from point zero basically There we go So then we can do a comparison we can do I'm going to create a new local variable called dot val and we can do dot At n so the primitive normal dotted with The point normal and if they're facing in the opposite direction Then we need to switch. So we're going to say if Dot val is less than zero In this case, I'm going to say I at group Under score reverse. So we're just dynamically creating a group here without using a group node So we're going to set it to one so now After all that we should have a bunch of primitives that probably need to be reversed So you can see here. Yeah, so most of them have to be reversed So let's drop down a reverse node at the bottom here And just use that group that we just created and reverse it all So it's all back to normal beautiful Okay, cool. So let's create the outline of the windows now And to do that I'm going to utilize a polyxtrude node, but we're going to do some custom setup here. So Let's drop down a polyxtrude node And we are going to inset this something like point zero. I don't know two five So they're really subtle. Well, that's probably a little too subtle. Let's do point. No, that's too much Let's do point oh five Yeah, let's go with that and actually let's also make sure we do it on individual elements So each window gets a nice window trim Now the thing is I don't want this bottom one down here So what we can do is we can control the extruded front And if you put this on global you can now move That face up and down that extruded face, right? So all we need to do is just move it down The negative amount that the inset is so let's just paste this in here And just move that down so it's Flush with the ground there. Now you are going to get a thicker top up here, which in my case I think that's going to be okay Yeah, I'm going to be happy with that. Maybe we pull it down so it's not so obvious Yeah, something like that cool All right. So after we do that, we're going to have a primitive down here That basically has zero area and we can actually quickly clean that up using a clean node So I'm going to come in here And you can see by default it gets rid of it because it has zero area. So it's basically a degenerate primitive Cool All right, so let's keep moving on forward here. Let's go back up to our poly extruded node and Group the front pieces so we can use that for the window here So now we've got the the window geometry in a group that we can blast away or split away And I think we are going to do that. So let's um, Do a poly extrude but this time only on the extrude side. So let's also Do that expose the extrude side group. So let's do a poly extrude and Let's go and Do that like so and then just give it kind of a subtle piece or subtle extrusion there and uh, let's Do it on connected components. We actually need a fuse up here Let's do the fuse after this guy after the reverse node Yeah, there we go. So now fuse it up nicely. I you don't have to if you want to keep it the other way the way it was Cool. So now let's split on that window geometry And add a little bit of opacity or alpha to it. So I'm going to split on window There we go. That gets me all my window pieces and let's do a subdivide just in case we need some vertex colors for this guy So let's do two Subdivisions, I think you might not need that but I'm just going to put it in there for now And also if you wanted, you know, really tiny window panels in here, that's just the way to go about doing that like like so All right, and then I'm going to color these guys. So let's color it Give it kind of a bluish color I'll expose that later kind of dark De-saturated and then finally let's put in some alpha So drop down a wrangle node here and it's actually a built-in value that Houdini is looking for So if you just do at alpha is equal to something like 0.5 You'll get some opacity or transparency there All right, let's merge everything back together Awesome. There we go Everything is looking good One thing we should probably do is do the backs of these two because I do want to be able to walk inside Um, we'd also do need to put a door on this somewhere. So I'm going to say that for a separate video I just kind of want to get the house done It's easy enough to have the door in here So for this guy We could actually Because this is using the extrude side. Let's just make a separate one over here So I just did an all left click and drag and let's just do a negative and honestly we could do a Reference copy like so and then just uh negate this value So now we're going inwards And we could blast away. So let's do this. Let's blast away The windows because we don't need that geometry anymore. This is just my interior and then we have to reverse this one Oops, not rewire reverse. There we go and normal We got the normals correct There we go And then all we really need to do is just merge these two guys together and fuse them and we're going to have to Do some a little different here. So I'm just going to actually copy the parameter and paste this guy in There we go Yeah, so now we should have the inside and the outside Cool. Now we just fuse it. There we go. We got some windows All right, you can go in there You know makes some more fancy windows if you want. This is actually kind of what they had in the fire watch Tower. It's nothing really fancy. It's kind of big windows that you can see out of All right. So with that Let's see here. We've got all of that. So that looks good. Let's just wire this into our output That is our window wall now So let's uh merge it into this final Merge node here for the house Let's turn on our ghost other objects here Yeah, it's starting to come along Very cool All right. So the last one that we need to do is this top guy up here, which is pretty easy So we've got this guy, you know, honestly you could just uh go and Do some extrusions to it. This isn't really it's a pretty hidden piece. Anyways Oh, let's name this too. We'll call this a top Plank And let's just do a poly extrude. I'll just move it out just a little bit And we'll just do the opposite of that So let's just get this guy copy the parameter And negate it And then reverse it Do our normals And merge these two guys together And that is really all that you need to do Boom Definitely can use you know a door All right, cool. I'm gonna save all that. Let's um go and test this out So with my line here, I can change the height if we do want to do something maybe like Let's do seven or not seven. Let's do uh 2.5 Yeah, I think that fits a little bit better. So Change the the height of the wall or the the house really fast And we'll expose all that stuff too Cool, it's looking cool Three seem like a little bit too tall for me Yeah, that looks good All right, let's get it hooked in. Let's create our actually You know, well, it's fine. Let's just put a uh Netbox around this guy. We'll just call this our uh house walls Give it our color And we'll just assign it to our assembly object merge node here So let's put down an old node just so we stay consistent and organized out house walls And then let's select our app our assemble node and just uh drag and drop that in there So now we have everything All together. Yeah, it's going along nicely Cool. All right, so let's uh move on and focus on the roof Let's focus on building out the roof now and really it's not too difficult. There's a couple cool tricks in there So, um, let's go and drop down a transform node over here Now this is the bottom of the The house there and so I need to move it so it's situated itself on the top So I think what we're going to do is actually put this in a different stream over here So, um, let's just do this here. I'm going to create an object merge node Like so and wire this into that transform node and then we'll put an all node right here There we go and just wire those guys in there and we'll call this out uh bottom Floor something like that caught whatever you want Let's drag and drop that in here turn off the transform And now all we really need to do is move to the top of this guy So we just need to get the the y size Of that. So let's do that. So in this transform node We are going to do our bb box Expression get the data from our out house walls and we want the d y size There we go. Yeah, so let's template our House there we go. Let's turn everything else off Cool. So now we've got the start of our roof there So I'm going to drop down a subnet Just keep it organized here We'll call this a build roof All right, very cool. So now I do actually need to keep those guys on Well, it should be fine All right, let's put down a transform node over here And I am going to scale this. So let's copy this over here the x copy it to the z And we're just going to scale it out a little bit so it has a little a little bit of an overhang All right, so that'll be the roof overhang right there and then we need to go and Extrude poly extrude this so let's do a poly extrude. This will create the actual pitch of the roof So I'm just gonna Pull it up a little bit and then we'll just do an inset until it basically just comes to a single point here Easy enough Yeah Cool. So let's make sure we fuse it if we don't then we'll have multiple We still have the the top geometry up there, which means we don't need to output the front But we do need to go and fuse the points up there. So if you take a look at your point numbers You have a bunch of points up there. So if you use it now we have a pyramid easy Cool. So now I just want to divide it because I need to put shingles on this thing So an easy way to kind of divvy this up into rows Over here. So use a divide node and I put it on brick or polygons Like so and what I ended up doing was I took the bounding box Of the incoming geometry. So let's type this out here. So we say bounding box zero and we do our d Y size Times 10 And I just did the same thing for the z over here Then I set my y to point one And that gave me perfect rows to use And you can change this basically is the size of your shingles For the height I would say of your shingles Yeah, very cool Okay, so with that done now, we just need to loop through each one of those guys So let's do a for each primitive And let's actually just cut it up into individual little shingles Now, all right So the first thing that we're going to have to do in order to get this to work is determine Because if I turn on my single pass here, let's turn this on So this one has, you know, a length in x but really it doesn't have any length in z It just has a little bit So we can actually write a little bit of x code to determine if we should switch on the x or the z Direction, so let's write some let's drop down a wrangle node here And I'm going to go and get first the size Of our incoming geometry and to do that we use the get VB box size. It's literally like using the dy size with the bounding box h script expression All right, and we're going to get it from the incoming geometry And so here I'm going to declare a new local variable And I'm going to make sure that this is a detail so we only get one value So it's not per point or per primitive or anything We're going to say switch is equal to zero by default But if our size dot z Is greater than our size dot x then we should switch to something else We should do a different operation. So we're going to say at switch is equal to one Cool. So now we can use that in a switch. So let's drop down the switch node Like so and I'm going to drop down a couple of divide notes And we're going to label these guys. Let's actually make ourselves a little bit more room so we can see I just don't like it when all the The lines are crossing each other All right, so let's call this um x x divide And let's make a copy of this guy and we'll call this z divide There we go And now in these nodes here, what we want to do is we want to again use the brick or polygons And we just turn on the size so Basically in this case, this is the x right so this will allow you to control You know the size of your shingles and x And then for uh y and z let's just set it to something huge like a hundred And then for z we basically do the uh the z direction, right so x and y become a hundred And z becomes whatever this value is so let's just copy this This particular parameter here and put it over here so everything's the same size And then we just switch on that Right Yeah So we just say detail Because we want to get the attribute value to see if we should be switching And we want to get it from the attribute wrangle one And we want to look for switch and zero All right, now if all goes well, let's turn off our single pass here. Yeah shingles Ta-da Pretty cool pretty neat little trick Uh, it gets you the offsets right away. You might end up with these little guys over here But you know if you really want to get detailed you could add another set of shingles at the line a lot of times you see this on ruse It lines the corners over here Um, I might do that later on but I'm not going to put it on video Or anything like that. Uh, it's really just the same techniques is what I've been showing you guys here Um, cool. So with that now, uh, we can go through each one of those pieces So let's save that and let's just do another loop. So I'll say it for each primitive here Of course Don't necessarily have to do that. I don't think we could actually well Let's do that anyways because we might want to UVM Yeah Just thinking here for a second All right Let's do this So I just want to give these guys just a little bit of Bump to it, you know, it's a poly extrude And uh I'm gonna go and just lift it up a little bit Just a tiny bit And insert it just a tiny bit as well Nothing too crazy just to give it a little bit of something Now you might want to do that all in the texture as well You might your whole roof might just be a texture to you as well. So I'm just showing techniques Alrighty and then let's do a UV flattening here just to give it some UVs By default it'll just do that. So we'll leave it on spectral. So it's fast Or fast ish And there we go. So now we have Yeah Very nice Very very nice Cool and then one thing we can do Is colorize this So I like to do my assemble trick here Or I do my assemble And that puts a name attribute on every primitive, right? So then we can take that name attribute and pass it into a color node here Cool and set this to primitive And we'll do a random from attribute And the attribute we are going to use is our name. So now we have all these guys selected out Then let's go now and let's do a wrangle. Let's just get the value from this So on primitives, I'm going to say at cv is now equal to rgb To hsv All right, so we're just going to take in the incoming geometry. So if we look at the help for this guy By hitting f1, so just put the cursor right over it hit f1 You can see that it's wanting to bring in a vector. So we just need to pass in At cd. That's the incoming color and then g is your value So now you get a grayscale Of this which we can use it's could it's going to be between zero and one So let's just call this value color value There we go and now we can go and Promote this. So I'm going to promote it to a point attribute instead of a primitive. It's currently our colors on our primitives, so we'll say primitive to points like so and then we Can actually use that value to remap it into a different color Or you can use the lab nodes too. I tend to use the lab nodes when I just need to get something done really fast um But just be aware about using them in your own hdas And the reason for that is because then you have to make sure that everyone else who's using your hdas has the labs Nodes installed on the machine, which is not always the case. And plus you get into versioning issues and stuff. So Well, let's um rather than put this into The color Let's just put it into a different value. So I'm going to say f at ramp is equal to at cd dot r So then now we can drop down another color node And use that value As a ramp, so we'll say ramp from attribute. We're going to have to promote That other attribute as well There we go So now that's on the points cool So let's go and do a ramp from attribute And the attribute is going to be a ramp So now we can control the color way better. So now I just bring this down and do something more Yeah You know shingle like Kind of different colors, you know It's subtle There you go Cool. So I just wanted to show that. All right. So there's our roof Very good to go now Let's uh put down an old node here call this out roof And let's add another slot to our assemble node here And drag and drop a roof in there Very cool. So let's take a look at what we're getting All right, so yeah, we're going to have to put something down at the bottom here But I think for this video for this week, that's uh pretty good stuff right there Uh, I'm going to keep going. Um with this whole series We're going to do landscapes and foliage and stuff I just want to show you guys all you know all the steps that I usually take And so yeah But I can only do uh videos Every week because currently I have lots going on at work. So I'm trying my best To help out so we're going to call this the roof And there we go cool So I think that's pretty good. I think what I'm going to do is Let's go so over in the tower. I'm not sure if I showed this in the last video Um, I added the unreal material So for the unreal material if you want to hook it up automatically This is what you got to type and then just got to get the reference path to the material inside of unreal All right, so I'm just going to copy these guys here. Actually I'm going to cut it first off and let's Well, no for now, you know, I am going to just do this here I'm going to leave it in there I'm just going to copy these guys and just put it in for the house as well So Yeah, so we can put the material down here So let's do this and put the material over here And then I want to colorize my other parts and pieces. So I'm going to just use this node Get some colors going That's not really what I really wanted to do That's good. So we'll leave that one there. We'll do it for all the main wood stuff I do want to colorize the uh the house a little bit differently So this is just a quick fix for now So that is coming along nicely. I think the roof is going to be have to be a little bit more Overlapping or not overlapping just a little bit more of a overhang something like that All right, so with that, uh, we are pretty much good to go with the house Next week, like I said next week, we're going to cover UVs and uh texturing This is going to be utilizing mostly uh trim sheets We'll add in the little weather guards that they have for the windows and get some more props in there Yeah, and then take care of some of these other things. We also need to Cut out a hole here so we can actually get up from our stairs We also need to basically carve this now, you know The other thing is too if you come all the way to the bottom down here You can see this doesn't really look that great One thing you could do Now I'm thinking about it here really quick. Let's go into the tower over here and While we're building the stairs Let's go find the curve that is building the railing over here I think it's over here Why are we building the railing? I should have left myself some notes All right, so there's that path So what you can do is you can carve it Right, so we can do Let's do this Just to bring it in a little bit The starting point really so let's take a look at that Yeah, it's a little bit better And then for the top up here I want to basically do the whole thing So we really need it to come all the way down Which means the whole curve basically needs to be Now let's try it. So let's do the second, you know Yeah, this one's going to be basically where the whole thing stops Let's take a look at that And no, I didn't like that at all So we just template that out for now Let's see where would I do that? I see All right, well I'll get that sorted out for you guys and then I'll show it to you guys Next week the next week's video and continuation of the fire watch project All right, so with that let's move on and just drag and drop this into unreal So I'm going to open up my unreal and just drag and drop it in there and see how we're doing Well, let's uh go and save our hd. Now, so let's go and save it Just save all the changes that we just made and I'm going to go back into unreal here Or go into unreal and I'm going to right click on my fire watch tower And I'm just going to say rebuild selected that should get the updates And it's going to ask me because I installed both hdas in the one library That's going to ask me which one I want and that's the fire watch tower too And there we go So now we have this guy we're definitely going to need to put A bottom on that stuff, but there's our fire watch tower pretty cool stuff All right, let's test out some of these parameters here. So let's put it down the floor count down to something like four Yeah, we're still moving pretty speedy It's basically almost everything that we're going to do on here. We only have a couple more things to put on it So it's going to be pretty much the speed Of everything I'm going to try to avoid the uv layout nodes as much as possible And we're going to try to do most of the uv and positioning of the uvs because we have most of the uvs already made Um, we're going to do a lot of the positioning of the uvs and vex just to make it speedy Yeah, everything looks like it's all still hooked up Let's try the taper Nice That is awesome Yeah, let's bring it back in a little bit How cool is that? So I love the Houdini engine Just to you know, honestly, it takes time to get used to so There we go. We are now Set up we just have a few things left to do So hopefully you guys enjoyed that video. Sorry, uh, they're kind of long I'm just trying to show as much as possible. So thanks so much for watching. I'll see you guys soon