Scatter -- A Must Have Tool For Godot Level Editors!

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello ladies and gentlemen mike here again from scratch welcome back to my ongoing series focusing on plugins or extensions for the godot game manager today we are looking at one called scatter and i think you're going to be impressed by this one and in fact the person who makes this actually makes one of the first add-ons i looked at in the past the concept graph so what we are looking at here with scatter is the sample scene in front of you and this is what scatter is all about basically it is a way of procedurally generating content in scenes by scattering them around the scene this is the showcase demo and what you'll notice here is various different pieces of the scene are created using scattering so you can see here these rocks these are created using a scattering algorithm but look at how they interact with the grass that grass also created with the same thing this fence over here same thing everything here is controlled by spline points move it around and it is distributed across the earth this is a really really cool plug-in especially if you are creating levels uh you don't want to do a ton of stuff by hand so let's say you're creating a an open world game and you want to have a road and then you want to create a fence to go beside that road well that's exactly the kind of stuff scattered can do so you can do things like create these um i guess these rocks here are one of your closest examples but you can also do it this entire area of grass this entire set here is one big scatter distribution shoe you can change the boundaries of it like so and then what you're doing is occluding other scatters from within it so you can use this to create again roads fences uh shrubbery and so on basically anything that kind of is follows an area or encompasses an area or includes an area can be used using scatter so now let's look at more of a hands-on example so these are actually from the scattered plug-in itself you want to grab this guy basically just clone the archive we'll get to that in just a minute once you've cloned it it's a typical add-on so you just load it into your plugins once it's down here and make sure that it's enabled in the plug-in settings uh straightforward this one you just drop in your add-ons this is not a module so it's really easy to work with all right so let's go and look at the other thing you get the feature list right here and this will showcase what scatter is all about so this first one here you can see a very simple scatter this is just using a spline the definition so you see here we've got multiple different spline points and it fills it in with the particular content that you've got in this case it is this uh mesh right over here you can change up various different values of it when you've got it here so here is the item being scattered the instance so you've got your mesh within so you've got basically this mesh is being scattered over this encompassing area and then you've got things like modifiers and so on this one doesn't have any modifiers attached to it because it's pretty simple it's basically just a scatter of this geometry over its space so you can have whatever mesh you want so it could be a fence or a tree or whatever and then you could use it in this regard by defining a scatter item you can set things like the scale modifier proportion of them and then you sort of scatter them around you can control using a um the curve is ultimately what is defining things next up we have multiple scatters what you've got going on here is basically the same thing but you'll notice here we have two things being scattered so instead of just the one mesh in there you'll notice you have two scattered items so if you've got say you want to use scatter to define a forest you could have four five six seven different kind of tree types and then just basically scatter them all within the same thing now this top level scatter it's still just a spline controlling it the only difference between this one and this one over here is that this particular scatter has multiple multi-mesh instances inside of it uh so pretty straightforward on the whole our next example is exclusion so here you can see a scatter item but you see within it we have a point exclusion this is a point that we've defined in space and around that point nothing will be scattered and as you can see it's very dynamic and how it's distributed you can also set that point so how big it is how much influence it has on the area around it uh but that one's pretty straightforward there here we've got uh pretty much the same thing uh but here we're talking about a circle child so here you'll see the points are multiple next we've got this guy over here this is sort of the same thing but what you're doing here is your exclusion area the area that is not being scattered for it's being defined using a path so you see another shape within so what i could do is i can move that within and you'll see it's it's falling along this path or this curve you can do all the way up to the edges and so on so same kind of concept but your scatter exclusion is being done via a path instead here we're doing exclude along a path all right so i'm not sure what the difference is oh exclude inside path and this one is exclude on path so this one is kind of an encompassing exclusion so what you're doing is you're defining the boundary to be excluded where this one what you're doing is basically you're defining a path so let's do a exclude along path select the path right here and you're going to see as i move individual points within the path that area gets excluded from the scatter profile pretty cool stuff i could probably see using this one more often than that one especially because i believe you can also set the the distance that the scatter width works but if you've got more of an inconsistent fill on the inside you're probably going to want to use uh inside exclude inside path instead then we have follow path so here what you've got is the mesh instances are following along the path that we've defined here again this is useful for placing fence posts dynamically in your world so all you have to do is basically set it up once with this multi-mesh instance of offense and then what you're doing is basically just simply defining a path and then it will follow the path by the way you'll notice there are tools up here for adding points deleting points and so on also for snapping two colliders and that becomes relevant in the next example right here and here you're gonna see we've got it um basically projecting onto the floor so what we have is an underlying surface under it and this one is actually a little mesmerizing so we got this uh bulby mesh going on underneath and watch what happens when this scattered surface pretty straightforward it's just a scatter project again but it collides with the underlying uh world object so this this physics-based object underneath us we take into account the collisions with it so if you're doing uh grass on a hill or you want to do your fence have your fence go up and around a non regular shape well that's what this one enables you to do so in essence that is scatter you can obviously if you're creating large worlds you should probably immediately see the value to this in fact i think this one is is probably useful enough that it should almost be included out of the box this is a really cool tool uh from a really cool tool creator to be honest his last plugin was really really awesome as well so that is scatter again pretty straightforward basically just go ahead and clone the repository and there's a couple of examples to get you up and running everything we saw here is simply an example he created but creating your own scatters is quite simple basically they're just a new node in there and then you've also got the items exclude pass and so on and you'll see those are basically things that you do under the hierarchy so you add your scatter object into the scene like this guy right here then you add a scatter item to it like so as a child and then you add the mesh of the item you want to scatter underneath it and as we saw earlier on you can have multiple meshes and you'll see here there are a number of different modifiers available so come here you can say these are where you add in the modifiers that take effect so if you want to have it so that it randomizes projects on the floor like we saw in that last example extrude along a path exclude and so on those are all available simply via modifier stats so select a scatter instance over here and then boom now one thing you'll notice is scatters are actually kind of tricky to select at first at least you can notice it's not selecting anything that's because the entire volume isn't clickable you have to actually select the underlying spline the scatter object itself is ultimately a spline so what you want to do to grab it is pick there picking anywhere else you're not going to get the scatter it's actually the spline point that you need to pick to select the object so yeah that is scatter a really cool plug-in uh it's from hungry proton uh it's available under the mit license as i said basically you just clone this you're going to find inside there are a couple of demos to get you up and running but what you really want to do is basically just clone scatter into your add-ons folder enable it in the plug-in section of your project and you are good to go as you will notice it is very actively updated it's under the mit open source license the mit license itself is very liberal in what it allows you to do so you can basically use this however you want you just can't sue him for how it does if it blows your computer up or anything else hey that's on you not on hungry proton so that is a really cool project he's done a couple of other ones like i said that are definitely worth checking out and this one is one of the coolest it's a node-based procedural content generator i've already covered it actually so if you want to learn a little bit more about that one concept graph like i said perhaps the single most impressive plugin i've seen yet for the good game engine and i think scatter probably shares some source code with it because they do a lot of the same things here you can see things like exclude along curves and so on but this is basically you draw these node graphs to create things procedurally inside the godot game manager so you see nodes being used to create trees uh and so on basically it it brings houdini like functionality uh to the godot game engine and scatter scatter is similar it's obviously got some common dna but this one is for basically distributing mesh instances across a surface if you want to look at it at the most simple level but again if you're doing map design map design especially with large worlds and you you know don't want to place everything by hand meticulously this one is going to be a godsend especially with the snapping features so you can have it you know snap down to objects you are working with and then of course you can have it actually exist directly on top of objects makes your placement functionality a whole lot easier so that is scatter another awesome plugin for the godot game engine let me know what you think comments down below and also let me know if there's another plugin out there like this you'd like to see me cover give me suggestions down below and i'll do my best alright that's it for now talk to you all later goodbye
Info
Channel: Gamefromscratch
Views: 44,559
Rating: undefined out of 5
Keywords: Godot, Addon, Plugin, Scatter, HungryPhoton, ConceptGRaph, Procedural, Level, Level Editor, Forest, Trees, GameDev, Game Development, Godot Engine, Review
Id: MB3Vz6JFAOA
Channel Id: undefined
Length: 10min 24sec (624 seconds)
Published: Mon Jan 04 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.