Crafting Procedural Assets for Unity and Unreal | Simon Verstraete | HOUDINI HIVE GAMEDEV

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] [Music] I'm Simon first rather I met side-effects and I'm going to talk about crafting procedural acids for unity and annual engine so in this talk I'm going to talk about some of the possibilities with procedural acids so I'll be showing you a few assets that I've built and how they could benefit in your workflow I'm also going to take some time to show you how they are built and some interesting topics that could be useful then also going over some making them came ready so make sure they have high poly low poly and are baked to ready to use in game engine then we have also the Houdini program called the guinea engine and it allows us to open or Adina files in game engine like unity and unreal engine so I'm going to first start with some of the possibilities so in here I have a laughable or two and based on a line you can drop you can turn generate procedural levels and I've also have a video to demonstrate this better so here are my immunity and I can done based on a line draw levels so in here I'm going to zoom out and I'm going to go in a building mode and here I can quickly add points to the line and you can see that in real time they are building this geometry to guide you on what the level would look like so this is a quite flexible way of working where we can easily add to the layout or change the layout and when you're ready we can then switch to the normal mode and see all the prefabs being placed for you so here is soon here we have all the prefabs being placed for you to make a final level or layout so this is the level builder tool this is an example of what it can risk of what it can output as a result now all the assets you are seeing here are prefabs and more especially the way they are originally being built they were procedurally built in hardening so for example two walls the door the crates they all have a procedural backgrounds which I will be showing you next is before I started building the staff of builder tool I have created a notable I have created multiple procedural assets and I store it originally with the panel generator tool so this is a tool that can input a drawing and output a geometry they keep it see here for example so I have on the left side a drawing which is in grayscale and on the right side it's outputting this as geometry which is then used to build for my walls or modular kit and so on the next was creating a procedural create system so this is a tool that can generate procedure crates and as you can see on the image I could easily in a couple of minutes generate multiple different crates now this is being used in game engine so when we finish or add any tool we can open this in game and we can change the size how it looks and more importantly we can actually bake normal maps and masks to have a final version in the game so on the right image you see a final look right around edges then next step was making a procedural tour so often when you build a level you would need a door that fit nicely on your level so I have a particular door like a change shape and size to fit it well in the squad room and what also special here is that it can work with animations so I have a script that is assigned to this modular asset and it will look to the doors looking for the left and the right door and when the player gets close the script will then move the left and the right or away so the player can open and close the door the next step was making a procedural tank or terminal and this was a more decorative prop to fill up the life a little bit more and this is a tool that can then place around these tanks based on how much you want them like for example you want to have a stack from two by two or do you just want to have one thing you can change these parameters on how they look and I've also have a procedural search tool so based on a line you draw it will create a procedural stairs and also in the image here you can see four variations which are like built in a couple of minutes by just using this procedural tool you can also notice that on the left and the right stairs they are having a slightly bent so it's also possible to once I have my stairs I can for example start bending them to the left or the right to make them more fitting in your level so like I mentioned this is built by a line so we can in unity draw a line and it will follow this line it's also being unwrapped by a trim sheet which you can be seen on the right image as a trim sheet so we will place down the u-visa automatically for you on this term sheet then next I've built a procedural core system so the main core in the middle of this screen is being built procedure so have a way of procedurally canning patterns and then based on these patterns I can continue at modeling so here is an example of core so the left image is an example of the procedural generation of it and on the right image is then the final look in game and also the lightning and the smoke has been built in Houdini to have this nice particle effects in game as well then I have the level below 2 so this 2 combines all the previous assets that have showed you into one level building 2 so we will place down the walls crates and so on for you so I've shown this before so we have a line that can control that out and then it outputs all these levels for you so we'll place down the prefabs that we've built earlier so the total overview of all these assets have built a panel generation create door tanks their core generators so these are all procedural assets and then once they are all finished and baked into prefabs we can then use this in the level builder tool and have them automatically placed forests now all these procedural assets have tutorials so if you're interesting in how they are built from scratch you can look up on the side effects website on these tutorials so they have all around one or almost two hour of tutorial starting from scratch finishing them in unity the focus is also being on making them game ready so we are also at the end having a lower poly count or for example baked them with normal Maps and so on if you're also wondering on how much time it could take to build an asset on average I would spend one week building an assets most of the time in one day I will have a working prototype and from there I would know which direction to go and to polish the tool more in telework nicely and game engine and the overall process of creating digital assets or procedural assets I would start with a reference reference doing procedure modelling creating high and low poly modeling doing and rapping doing baking and to finish it off creating digital assets here this who this digital asset cannot be open to K mention this is a very similar way of how a normal 3d workflow would go so starting with reference so reference is always important this is probably nothing new and you just gonna think about what are we going to make soon here took some images from the crate generator and since you are working procedure we can also think about what can we do to make it interesting procedure wise like maybe we have settings to make certain things interesting for procedural variations like something fairly common is the size of the grid maybe we want to have a higher crate or we increase the size in the width but we can also take this further and we think about what can be interesting as a procedural system like maybe we have a lock system on the credit that procedurally places these locks or toggle on or off locks and so on so you can just brainstorm a lot on what procedural variations can be interesting then to start modeling I'm going to use basic modeling features and block out the shape so in here I'm going to use extrude bevel pen notes and so on to just block out a shape to make everything procedural I'm going to use group notes this can be the glue to keep everything procedural and together so in here I've also quick example of a cube nodes then having a group range which will make procedural selection and this selection wouldn't be extruded so if I would play around with the tube with the divisions of the tube I can have this result so for example I'm going from a tube that have 12 divisions to achieve that for example has 32 divisions so you can see that our procedural selection will be automatically adjusted to this so in this stage I'm just making sure I have a block out of the shape then I want to have procedure and also make sure they are working nicely well with groups then I'm also going to make my model more interesting when boolean so my scene is mainly this sci-fi hard surface scene and boolean works really well for this also on the image I have a box and next to it a crate so I would use a lot of billions to the end boolean out from the box to decorate and this can also be a very fast way of working where we can just bring out the simple shapes and to each other to have interesting results since we're also working in Denis we have a procedural boolean so we have different group options to go in certain areas or outputs certain information the further here for the boolean this is how for example the create again god Buland so I would procedurally place them cubes around the input cube and then subtract these cubes from each other as you can see on the right part I subtract them from each other to get more interesting variations on there so here is also not a demonstration of the cube with boolean's so I'm gonna take some cubes and bring them with each other until I have a much nicer result so that's the really basic ID with boolean and hard surfacing is to use basic shapes and subtractor for each other or add them to each other and make more interesting shapes to the way you want to get your shape then from here also want to jump into Houdini and give you a little demo on this boolean so I've prepared a little demo so in here I have a quite simple setup so I have just two boxes and I'm gonna subtract subtract them from each other with the boolean nodes as you can see here so you're just subtracting two boxes from each other now we can also use a baffle on this and you can see it's automatically bubbling all the edges and if I would now still change my shape it still holds up even if I go very small they are now option student get the beveling consistent even if there is not enough space so as you can see here when I go quite small and it solves this issue it solves here quite nicely in geometry so it's really cool to have now so this is really useful if you want to have a procedure so it's really useful if you want to have a procedure boolean so we can't rest on these situations now I mentioned before that there are outputs like groups in the pool and a boolean so if we scroll here at the bottom of a boolean we have outputs for primitives and edges so in this case I want to use the a B seams what this means is the Green Line you see here on the screen it's now being saved and exported as a group so in this bevel node I can here click on the ABC and now I can have a bevel only on the seam there from the boolean so if I would now still change my shape it still holds up even in these small areas where it would adjust the bevel amount so this is a quick demo and really cool to see that we can do these things with the boolean now for drill down here I have a little demo that I took from the crate this was a file this was a similar setup for the crate so I would just start with a box and I would bring out shapes on the side so even if you start to change the crate size you can see that the ratio is going to be the same if I go very small we still have some space on the sides if I go very large we can see that the space on sites is getting larger and the ratio is somewhat being kept so now to get this information so now to get this setup procedurally from this box I'm gonna do a split by normal and I will delete the top and the bottom primitives then in here I'm gonna do an extrusion and I'm gonna do an extrusion with individual elements so you can see that each primitive is now being shrink so we went from this large primitive to these smaller primitives so if I now we change the size you can see that these are just staying in the same ratio of the cube then I'm going to use the lab taken note so this values to give it a thickness and then from here you can just simply bevel it and transform it to the position that we want to and then I would boolean this result and then we could for example expose some values in the transform and when I would for example move the transform I can be more I can then more find you know where the shape is going to be like maybe it should be on the top maybe it should be on the bottom so we can decide with this transform here where it should be now we can make this more interesting by repeating this process in the create tool itself I would use a loop system and we could loop as many times as we want to do get a boolean but in here else just for example copy this and let's merge these two results together so now I can control with this transform where it should be placed like maybe it should be higher and also with the extrude note if I would scroll with my mouse I can then decide how long it should be like it can be bigger or it can be smaller so it's just a little bit there orbit the thickness note I can decide how far it should be pushing in so we have a couple of controls on how wicked this on how we could do this procedure so as you could see repeating this process can be very interesting and this is still procedural so if I would change the size you can see that everything nicely skills with it now let's go back to the presentation then coming to the molder limit horn Oi so I've talked about how this is a procedural core and how we can have procedural patterns so with the Warner fracture we can have procedural patterns the for no fracture itself is often used for then fracturing or simulation of destructions but in this case I want to use it to generate procedural patterns so this node offers a lot of variation like you could see here so what you see here is me playing around with the values of the seat of the foreign air fracturing and you can see that we can a graph have a lot of variation in here to how our court will look so a basic overview on how this would work as I have my input which you can for example be sphere then I'm gonna use the formula fracture node and it will result in this pattern like in here it's also being evenly spread out and from this pattern I'm going to loop over each individual piece that is being generated and we're gonna do procedural modeling on this and mainly some extrusions to make it interesting so this is a general overview on how this core has been made and here I also want to go to Houdini and give you a little demo so let's go to demo and in here I have two same setup that I just showed you so I have a sphere as input then I'm going to use the foreign oil fracturing to get these patterns and these patterns are controlled here by this scatter nodes so if I'm gonna change for example the seat of the scattering we can control some of the placement so after I did a Voronoi fracturing I'm going to just simply extrude it and you can see that these shapes are starting to appear that's really nice to see now also important here is I'm not going to create an interior surface so often it would create the interior surfaces but I'm here I'm going to disable this because I don't need it now I mentioned that with this cutter we can control this so let's check this out I can also for example here have relaxation so in here it's at 200 but if we for example start to lower this you're going to get a bit more random shapes in here like it could see we get more smaller and bigger shapes which if we do relaxation it's going to relax the points more and the shapes are going to have a more consistent shape overall so you can really define what you want we can also for example quickly and crease the amount like you can see we can increase how many pieces we want so if you want to have hundred pieces then we can fill this in over here and then when I pull around to it relaxation you can see that some of them are now very small and some of them are a bit bigger so it's really useful to play around with some of these values now mainly shove this here on the sphere but we can also use another geometry so I took the big head here and let's just plug that in over here and you can see that it instantly already works so the for your fracturing will create this pattern on the big head and then we just use the extrude node here to then create these final patterns so it's really cool to see is in action so from here with this very fracturing you have all the information to then keep pushing this further and keep adding more interesting geometry so in this case I just took a extrusion but of course to make it more interesting you're going to do more than just extrusion now we can take this workflow to the next level and Akira sighted took this to the next level and he generated these hard surface looking objects by also using these in foreign oil patterns so if you look closely to this image you can see that there are all of random patterns generated so this will be used a similar method then we can also model from PSD files so I've mentioned that shortly in the beginning so in the lab tools the recent notes for tracing PSD files so this will convert a drawing or PSD file to geometry like we have here or image which is a critical drawing and it will convert it to geometry so since it is a PSD file we can also filter on layers or colors so we can get this so we can get the information that we are looking for now from this piece that I originally generated this was actually my modular kit which was one of the most useful models that have been built for my scene so from this module kit I have made for example like better and a ceiling then here a quick recap on the modeling so I would start out with a block heart shape so like I said using basic extrusions battles and so on and making groups to make them procedural then I'm going to use a boolean to megaships or interesting and this works very well on hard surface objects then if you are looking for procedural patterns of ordinary fractionate can do very interesting things so that's definitely worth looking at and I've not talked about the topology yet but we're gonna make sure my topology is decent doesn't have to be perfect like you could see on the image here of a tikrit they are for example of engines and so on to bulge is not perfect but what I'm mainly looking for is their shapes the shape that I want to have so I'm just going to make sure that my crate looks good and later on I'm gonna make a battery version so next step will be then creating a high and low poly version from the script or other procedural assets so for the high pony I would use the lab box on mashing nodes so this works really well again here for hard surface objects and it will smooth the edges so as you can see here on the animation we have to create again and if you look closely you can see that our edges are getting smooth it and I just oh hold on and off the voxel meshing and you can see that some let us switch between these hard edges and these muted versions so this is really useful to have this if you're familiar with within the voxel mesh is built out of VDP nodes so for so this is a general view on how the fox line can be used so I have for example my input which can be a low poly or met poly and like I mentioned before the topology doesn't have to be perfect because we're gonna voxel this result and from this various folks at the result we're going to make sure that we have applied some smoothing to get round nice rounded edges that will bake well in baking process so here also taking a closer look at the wire frame and this voxel mesh will have a quite high poly count and you can see that they are all being quad topology generated and we have this nice round edge so we have this new topology being created from this box on it so from here what I would often do is how to use a poly reducer net so this will make my low poly and this note is quite fast what you see here in the animation is in real-time playing around with the failures so by default it's going to tranquilize the model but we can also set quad reducing like you can see also on the animation something that I really like is that we can set a very specific amount of poly reducing so we can aim for for example 2000 primitives as a result and then the low poly reducer will do its best to stay as close as possible to this then I'm going to unwrap it so I have my low poly and I'm going to apply a auto UV in so in Houdini you have notable options for art and wrapping which is really useful every model has a very specific case of unwrapping so it's really I can recommend you exploring different types of methods of unwrapping this there also a couple of settings like merge small islands like it can happen that sometimes there are very small pieces scattered around and there is an option to merge them there is also options for the packing settings one thing I really like is for example the setting to align along axis like you could also see here on the image where we can see that our UV shells are nicely aligned on the axis so they are not rotated they are nicely aligned along the X or Y axis then another way of unwrapping is with three machines so it's possible to also have a procedural or automatic system that places UVs for you and this works really well with the sweep node so in case you're not super familiar with the term sheet workflow is a trim sheet would look like the texture here you see on screen and it it works really well horizontally so when I have my UV shell I would place it down nicely and align it nicely horizontal on a certain place so when I have a small size I would for example in this case place it on top if I have a bigger UV chunk I would for example then place it there on the middle if I have a very large piece I would then place it on the bottom here so as you could see this could take a lot of work to then manually place each of these UV pieces one by one based on the model you have in Houdini now I've built a system that can filter out based on size so rat means it's a small piece green means it's middle sized and then blue is then the largest piece so I have a system that automatically filters out the size and then places the UV for you so you don't have to manually place each UV shell by a hat and here is a video from this and when I change the stair tool you can notice that in your V's they are changing size but still with but still respecting the aspect ratio of the trim sheet and then we can use this in game as well then a quick recap of the high poly of the high and low poly workflows so if you're looking to create a high poly model I'm going to use a foxhole for rounding the edges then I'm gonna reduce this result to a decent topology I'm also going to autumn wrap this result and this wouldn't be our final low poly and next up we'll be done baking and texturing process so for the baking I would generally use the maps painter tool so this is a lapse tool again this is a quite fast Baker that could bake normal Maps you in a couple of seconds it can also be used as an automatic picker so since you are in Houdini and have all of procedural advantages let's say you are one to bake 50 rocks then you can use this Maps Baker to automatically bake this for you now here is also in demonstration that Paul did some time ago where he tested out the Maps Baker so when when pressing the button a few seconds later we have our results so this is real time and in five seconds we have all these maps generated so these are five by twelve maps being generated in five to six seconds which is pretty fast now something also interesting with baking is that we can also have round edges so in case you don't have a high poly model you can still get round edges with a round edge shader so on the left you see the input which is just my low poly mobile and on the right you can see a rendered result with some round edges going on so the round edge will only be seen when you really render the 3d geometry how to set this up is we need a quick material node and in here there is already setting buildin for you to enable round edge information so when enabling this and rendering the object we now have front edges and then we hit plug this into a baker and have the result this is just a cool trick in case you are not having a high poly model but still want to bake grant edges then continuing on baking we can also bake out masks or different color IDs to make use to get variation so this will be used in a shader so for example this is my high poly of the crate and I have red and green information to the red base for the metal and the green is for example for the dirt so this information is then baked into a texture and initiator I'm come I'm going to control which material is shown so so I will have tiling materials in unity or in real and then the mask wouldn't switch between it's either a metal or a painted metal or so on then also for texturing loudini has also a new substance plugin and it is on the cope level so you could import your Maps baked from the maps Baker and you this in a substance note so from here we can load in our own substance files and generate custom procedural textures based on these substance designer and files this can be very useful if you need a lot of different models and you want to generate unique textures for them and then here also have a video to demonstrate this more so in this setup here I have a procedural jet engine and when I change the amount of jet engines we can then have automatically baked normal Maps ao curvature and so on to calculate new texture for them so in here we fit all these textures from the maps Baker into the substance file and now we can change colors the scratches amount and so on based on parameters you built into the substance file so this allows us for new possibilities so now we could generate all of these jet engines and have each jet engine a unique texture that will fit correctly based on for example AO information or curvature information that has been baked automatically uniquely for the model another demo can be using it for tiling textures so in here I have a simulation of some bolts and we can make them tighter ball and then we can bake this into a height map so we could use this height map plan for making our final texture so you can plug in the height map and the substance file we can unplayable some parameters to find unit what we are looking for like we can add some dirt in here as well and then we have a tiling material of these bolts and this is also the advantage that we can also easily tweak the simulation and we bake it and now we have a new result so this is also a very iterative process where if you're not really happy with the look we could change the simulation or at other models and quickly break it and recalculate the tiling material this is a really cool process to use then a quick recap here as well so and by default I'm gonna always use the Maps Baker to bake out my textures like normal Maps ambient occlusion curvature and so on we can also here pick out different mosques so I'm gonna control with this mask initiator where materials are shown another way also here is we can use this substance plugin to generate custom textures for our object then next we'll be making a digital asset so at this stage I have a procedural model and it can be baked into a low poly so a digital asset or HTA is a connection between our Houdini file and unreal or unity in this case the main thing that you need is the plugin called - Houdini engine so you will need to install this plugin into unreal or unity and here is the demonstration of this where I'm where I can model in unity to create for example here so I can play around with some of these values to change shape and we can really find the look you want and we can also for example link it to a object so in here I'll link to cube to the create and you can see that it will follow the shape now once you are happy with it we can also bake in game engine so we can do everything in one go and bake the full version as well so here we have a finished result so that's something I really found interesting is that we can bake in game engine so we can expose the maps Baker that I just showed and expose all these values to open to access in unreal or unity so this will make sure that we can actually stay in unity so like I just showed you in the video we can model the create immunity and we can bake the crate as well in unity and then we have a finished model so this will make sure we are staying game and don't have to go out of go out of unity into another software we can do everything in unity and the best way to show further it is to or this workflow where we can do a lot in unity or in game engine I'm going to switch the unity and show you how we can do this so in here I have my digital asset which is my procedural crate and you can see here I have my custom parameters so one here at the top I can for example set a custom size so let's say the box needs to be bigger I can fill in the value here and you can see the box will be changing to its new value so with this value we can easily make it the long box or whatever you want so now here at the bottom we have a boolean so I've showed you some of the boolean action and now we can see this working in unity itself so in here I have a amount of boolean so this is a big loop and I can add a number to the loop so add a number here so this is one loop over the system and now as you can see here we have a new shape being bullet out of the crate so let me quickly remove this so no shape and then when I click it I have a shape so this shape that is now being bullet in my crate I can control by these parameters so I could for example change the area of effect and you can also see that this is happening quite fast in unity so I can really start to 3d model my crate and the look I'm going for so we can for example place this down over here let's say I would like to have another shape I'm gonna click on plus icon again and now I have another option here for the same shape so I can place it for example maybe here and we can do another one and you can see that we can just keep building up this with basic shapes and start redefine what you're going for so maybe something like this could be nice then this is many for the bottom part so I have also here a option for the top part so we can also have here certain boolean operations maybe here you can have this panel and let's place this panel a bit more so let's in put it more in the crate like this and now I have my basic crate so let's say I'm happy with this crate and now we can start to thinking about baking the normals so I have here a baking option so I can have two baker here so I have one big bake button here that will bake it of course we need to set a good placement to save our normal Maps we can start a resolution we can set here the mode of tracing and we have further more options to then for example flip the normal or we can adjust some of the normals of the mesh and so on so now let's bake the crates so I'm going to click bake and this might take a few seconds to then bake so in the background it's going to then also focus all the mesh which will take some time to do because we're creating in the background or high poly and then we are continuing our baking process so now it's being baked and now what I'm gonna do here is I'm going to right click and re-import my texture so we import texture and now added some weird thing and I have added an option to you for the you thing so right now at UV is disabled so I want to add my movies and now we have the right moving so we have these round edges over here in my crate so let's zoom a bit on these edges so you can see that everything is now being really smooth out so ever we'd go to Matt material set the normal to zero we can see that everything was this before and Whitin baked normal map it's these nice rounded edges that are baked for you so everything has been nicely rounded and I can repeat this workflow by for example going back here to my bottom part and let's say I was not happy with my first shape that I placed so I can for example go to the move up or down and maybe let's change this and you can immediately see I'm breaking the UV because we are automatically in wrapping this so but I've moved my shape down and now I can go back to the Baker and click bake again and it's going again recalculating the voxel and then bake our output so in a few seconds we will have 10 or new normal map and we have our new normal map and again going to re-import the map and we have a new normal map so as you can see this was all in real time this was a demo a live demo and we have now this new information here baked in there and this is also a 1k map so it was a pretty nice resolution for this grid so that was the main workflow I want to show you and I think it's very interesting in how we can treat a model this crate and bake the result as well so when we finished with this great we can done here click on the button bake prefab so when we are clicking this it's going to convert this dudeney asset into a geometry for a prefab now since I'm here also in unity I might as well show you another demo for the stairs tool so in here let's just take my stair tool and you can see that this is controlled by the line so I've showed you the stair to before and I can go into edit mode and select this point and for example move it up or down and you can see that it will adjust to it so you can make it long so it's easy in so it's quite flexible and changing now we can also for example then here we have also settings here for the length so I could add more or less stairs as you could see I have also here settings for the support piece so I can change the width so I can make it really wide or really small we can change this I have also here an option for these lights so in some case you want to have lights on the side so we can toggle this on or off as well and in general here I have the UV pieces and sorting values so if we so if you remembered I talked about how this was using a trim sheet and I can control here the sorting values in which the tolerance is for automatically placing the UVs on the trim sheet so I can change this value here and furthermore we have just other settings for just controlling the shape and how it's going and everything you see here is using this trim sheet so it's going to nicely tile along the geometry I think with this here you can nicely see the tiling if you for example see these details are nicely repeating over here and if I would make my stairs a bit longer you can keep seeing that these details are nicely repeating over and over again based on that trim sheet I showed you before so this was sort of the stairs tool and one thing I did not mention is that we can for example start bending this as well so you can bend the whole stair tool to the left or the right based on a degree you can also fill in here and you can tweak how far it should go and so on so you can really fine-tune where it should go for the level so it fits really well in your scene now let's get back to the presentation all the digital assets there is a lot of possibilities one more possibility specific for game engines is we can do some setups in this case I'm going to focus a bit more on unity since all the assets are being built in unity so we can for example by default assign materials so I'm going to use an attribute and assign the Pat of the material that I want to use we can also do this for colliders so I'm going to use a group node and I'm gonna give it a very specific name to get a specific collision like box collision or mesh Collider this is also the possibility to then make procedural mesh colliders if you're looking for this then we can also have an attribute assigning scripts so this was used for the door animation so whenever I learned in my door tool I would automatically assign a script for the animation so other things have been showing here on where for unity but this is also definitely possible for unreal as well but with a few changes of course also with digital assets are having interactive inputs like you have seen the curve controls we can also use game objects like a cube and so on but the curve is very interesting in general then it brings me to the next topic is the level builder tool which I have not talked about fill this to was a level that is built on a line or curfew draw so we'll combine all these previous assets that I've shown you like the panel generator the create stores and so on and at this points all these assets so the crates for example are baked into prefabs so well instance these prefabs based on where my line is so in here a quick demonstration again from the level builder tool so here I'm in Houdini and I can just click where I want my line and my level to continue and I can build down the level as much as I want to so this same process works as well in the game editor where we can just draw the line and our level is then built for us so we can go as far as you want to and have a finished level now we can think about how can we go from this line to then this actual level building tool now the first step will be then of course having in line to draw a line from this line I'm going to resample it and fuse the points along the grid so you can see we have this random line we went from this more controlled line so this has some advantages that is now being more controlled so I know where the line is going and I know that everything is evenly split out as you can see the points are quite evenly spread out now one of the disadvantages here can be that if I go back here that some of these lines were drawn along a certain angle but in here since I'm snapping to liquid we are losing that angle but again we are making it easier to then further control the line so on these points that have now been generating I'm going to copy down grits so each point will get a grid then I'm going to fuse everything together and clean the shape so this is the base layout of my level and this is also the space where the player could walk so from here I'm going to resample the result so this will give me a lines along so this will give me points along these outer lines and notice again here they I'll eat they are evenly spread out so when I copy models on they are nicely fitting next to each other then I'm going to filter out points so my blue points here are the wall points then the red and the green ones are for my corners and more specifically I have this I have a filter for creating convex and concave edges so these will both use different modular models so who have different prefabs for a convex or concave points now focusing more on the walls I have a lot of I have rid of these blue points and I'm going to filter out a complex wall and a normal wall so on the left image I have my normal wall which is one big prefab and on the right image I have a more complex wall which is built out of multiple prefabs now here on the left image we have our complex wall and it's made of these modular models so on the right image I have my motor kit for this and I have on the left image a procedural system that places these models in place for you to how is this system built I'm going to start out with a grid that sort of represents or a wall then on this grid I'm going to use a lot subdivision which is a lapse note that can generate these random patterns now these random patterns I'm going to use a fuse note again to make sure they are sort of like evenly spread out again and at the lowest distance is one unit then I'm going to use a measure node and measure all I measure the area of each primitive so this will create an attribute called area and each primitive will have a different value so which is the area value I can sort out bigger pieces smaller pieces and so on so now I have to link the area value between my market so I know that my modular kit has actually a very specific size so for example here I have equal pieces that are 2x2 I have for example pieces that are a 1 by 2 ratio 1 by 3 ratio or 2 by 3 ratio so I want to link these ratios to what's on my right image which is that random generated grid so now I have my so now here again I have my grid with the measured values and I can filter out based on the area value so if it's for example the value 6 I know that is the ratio 2 by 3 because 2 multiplied by 3 equals 6 so I know all these values that are having area 6 will be using this much model and I can continue this process saying if the area equals 3 I'm going to use my modular kit that has the ratio 1 by 3 if area equals 2 I'm going to use my modular kit that is having the ratio 1 by 2 and for all the other equal pieces I'm going to use the same equal part I'm just going to scale down where it's needed so this is the general idea on how I approach this is by using this area value to then filter on which modular model will be placed where and this is done the result and I'm having you'll have all these modular models procedurally placed so everywhere you look you will always have different results and that was it for the level builder tool so I show you how to main system works for getting the line into the Pro placements into the placement for the walls for example and I've also talked about the complex wall system how we could get a random pattern and find out where pieces should be as lost I want to end with a small conclusion so overall this is quite flexible way of working so once assets are finished we are having a quite a flexible workflow where either we can easily make more props or we can easily adjust to perhaps that we have we can also get a plug in stay in game engine so with the crate that I showed you we can model the crate and bake the crate in game so there is no need to go out of the game engine do some cleanup or finishing up the model somewhere else we can stay in game engine and get everything ready in there so we can also get came ready assets like I showed you how we can get low poly how we can bake results how we can get Co added for example on this and then the rest is done baking this in to a prefab to finish it up I also want to mention that this is built by one person so your team can really benefit from having one person in your team having procedural knowledge on how to use feeding so even though you are a small team or a bigger team you're really gonna benefit from having someone who can work with these personal tools to serve to speed up certain workflows especially for example for level building and rod building where we can have basic inputs like lines and have a procedural to that's been generating things for you so that was it for this talk thank you for your attention I hope you enjoyed it
Info
Channel: Houdini
Views: 16,717
Rating: 4.9656653 out of 5
Keywords:
Id: 2OQcm_SxBc4
Channel Id: undefined
Length: 55min 8sec (3308 seconds)
Published: Thu Mar 26 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.