Final Update for Free Splined Mesh Tool | UE5 + UE4

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello everyone and welcome to what will most likely be the last update for the amazing spline tool we've been developing for the last 6 months where you can put meshes along a bline deform them spawn them and now include multiple meshes and have them randomize in a bunch of different ways and this is all provideed to you completely free of charge from this link on our Marketplace page but if you'd like to support our development we do have the option for you to spend $5 and as a bonus you'll receive the demo map we've been showing off in our videos huge thanks to the those who have already bought it your positive reviews and feedback allowed us to be featured on the marketplace as the second highest blueprint in the April showcase so thank you for this update we compiled all the community feedback you sent us and made it the primary focus first thing up we have expanded the demo map to include more panels showing off features from this update which you'll see throughout this video we also expand the availability of the tool for Unreal Engine 4 users with 4.27 now being supported while we were at it we also included 5.4 support one of the most requested features of this update was to have multiple meshes be able to be placed along a spline and now you can do that let me drag out a new spline and show how by default the spline now starts spawning in on Real's default Cube we can see this by going into this blind meshes variable and noticing that this variable is now an array so if we wanted this change to a red arrow we can drag it in and replace the cube and if we wanted more meshes we can click the plus button and add a couple more mesh instances for our green and blue arrows if you are using deformation which is on by default I will warn that it will space out your meshes by using the width of whatever mesh is in the first element so if an element after the first is something longer like a guardrail it will shorten it to be the same width as the first element this is because this system is mostly supposed to be used for variations of a similar mesh but if you are using periodic placement the width warning I just gave doesn't matter because it won't stretch or deform placed meshes to show a practical example where the width difference wouldn't matter I could make a line of debris in the scene which uses various different sized pieces of trash to make a litter filled Alleyway and I'll show how to do this with the new features in the randomizing transform section later in this video but returning back to the three arrows I have along this blind you can probably see the pattern that they're using it just goes from the first mesh to the second and then to the third and it repeats indefinitely you can overwrite the order by using the variable override mesh IDs along spline and it's very similar to an array but this structure is called a map the First Column of data is called a key and I have it correlated to the position on the spline when adding a value to this it defaults to the key column being set to one and then two and so forth until it's completely filled and then it will fill in zero using programmer logic you all may know that zero is the first element in an array or map so it is correlated to the first element along the spline one thing to note about a map is that you can't have two identical keys by default unreal adds the key of zero to the map but my code quickly switches it to the next element that can be added until all positions are filled and then it fills in zero I did this because once zero is in the key column it won't allow you to add another element because it'll only add elements with a key of zero since there would then be two keys of zero it will throw an error message and not allow it so if you make your spline longer and need more elements in your map delete the key of zero and add it back when you're done now the right column is what is actually in charge of setting the variation we have the entire map's value column filled with zero which just makes the mesh ID equal to zero and just be clear the ID number is the same number related to the element of the spine meshes variable since the red arrow is at index zero of the array all the arrows are red but if I change the index zero to Green it's now all green so hopefully you can now see the logic of assigning a mesh to be certain variations I have a demo panel as well that goes over all of it and one thing that I did not cover that the wall does point out is that if you assign a value of -1 to any mesh it will be blank and not render it it's cool for this example because I want to have spaces between some of the variations now that we have covered how to manually set the variations we can Now cover how to automatically make the variation random so let me go into the demo panel that covers this there are two very similar panels but one is for the meshes that to form which is default behavior and then there's another one for meshes that use periodic placement the process for randomizing data works the same for each panel so let's take a look at this one we have the same three variations of arrows that we used earlier I just need to scroll down into the options and find the randomize variation button under the randomization category and what it will do is randomize the map variable that we just looked at and now if I click it we can cycle through random variations pretty cool now from looking at the randomization category you can tell that there's a lot more to it than just mesh variations the other big thing is randomizing the transforms and transforms include location rotation and scale in order to randomize these we need a limit of how much you want the meshes to be random so let's look at randomizing the locations the two limits we need to set are the lower and upper limits if you don't want any randomization you can set both limits to zero but looking at the example we have here we can see that the upper limit is set to 100 for the x and z axis and 100 for the y axis how you can read this is that the x-axis is forward and backward movement when the x-axis value is 100 it means that I can move forward on this blind 100 cm if it was negative it would be going back backward that amount it is important to note that these values are all relative to its position along the spline so the forward direction is different at the beginning end and everywhere else in between on this bline now for the y- AIS it can move the mesh left or right we have this set to go to a minimum value of 100 which is to the left if it were positive 100 it would move it to the right the z-axis is probably the easiest to visualize its range is 100 cm which means it can go upwards up to that amount and negative values would be going downwards if you need the whole thing to go up or down remember from the last video we have a vertical mesh offset variable that will raise or lower all the meshes this amount to show a practical use case I have UE 5's Matrix awakens demo open and I can go into this Alleyway and add some trash along the path in order for it to not be a straight line I can randomize the Y AIS and it feels like a path of random trash has been added this is just one example I'm sure you can think of plenty more and as always a lot of the high detail meshes that I'm experimenting with are Mega scans assets so feel free to use them for yourselves back to the demo map the next row is rotation but that doesn't affect the bline if it is using deformation since it would cause weird effects to have the meshes stretch that suddenly but it does affect periodic placement and you can see it places the meshes along the spline with a random rotation the rotation range for a full 360° rotation in every direction is 180 for the lower limit and positive 180 for the upper limit the last row in the transforms is the scale and for periodic placement it changes how you would expect if you have a scale of two as an upper limit for say the z-axis then the mesh can be twice as tall there is one main difference for the deform meshes and that is for the xaxis it will always make the randomization of your meshes scale add up to the length it would be if all the meshes were at normal scale so if you add up all the scales from the indexes 1 to seven it will be equal to seven and that makes sense because there are seven instances it works this way because now you can add more length to the spline and the spline doesn't have to worry about how much the randomized scales affected the length of the spline because it virtually had no effect any new instances will be in the normal position and scale until you press the randomize button again I know you may also be wondering why I skipped over the zero index in the randomized data and that zero element is reserved for a unique feature to the deformation category called continuous deformation this will make the previous mesh flow into the next one to make it seem like it is one continuous mesh for this continuous deformation option in order to make sure everything seems random you actually need one additional point for the very start to be random and that is what the index zero is for to show off this feature I'm going to be using another practical example in the puzzle game the witness you're trying to solve puzzles and you often have to follow a cable from one puzzle to next instead of manually editing the cable to make it seem like it was laid down by a person you could just use randomization this way you only have to worry about making the direct path and not the random path the last feature of the randomization panel is the inverting axis and what this will allow you to do is randomly reverse the direction of the mesh on any axis that you want in this example I'm flipping the mesh forward and backward randomly and we can see this in the options where I've enabled allow xaxis inverting variation before pressing randomize transforms it works similarly for flipping meshes left and right and up and down although you won't be able to tell that from this Arrow since it's symmetrical on those axes and luckily for you I have another practical example and one more game I want to add to my business tax WR offs this year this being the story game Kona and I guess Kona 2 which I know had very smart use of randomizing their fence variation transform and orientation in order to hide fact they were reusing variations of their fences when creating video games with a mostly realistic visual style it's a big deal to hide repeating meshes because it may be distracting the player from what you actually want them to focus on you could design a unique mesh for every fence but that would take too much development time so typically what you would do is create a few variations and randomly cycle through them and hope the player doesn't notice or care in this clip from Kona 2 I highlighted an area where the the repetition was more noticeable just so you can see it a little bit better now I'm going to show how to create a similar system using the blind tool so I've created three variations of fences or technically five but two of them are just mirrored from the original Three but from this we can tell there's an obvious repeating pattern if we wanted to hide it I can set the height of fences to have a little variation I can fluctuate the rotation and I can allow left and right facing inversion inverting doesn't do too much here because both sides are pained the same but it would help if you used a material or Texture that has a pattern that doesn't repeat on its front and back it already looks a bit more random but now it's time to randomize variation and just like that it's a lot harder to notice a repeating pattern you can probably still see some repetition but Kona has an advantage where you can't see too far in front of you due to the Blizzard that happens in the game and if I really wanted to minimize the noticeable repetition in my fence i' would probably use more than three main VAR ation of fence now that we have the largest part of this update covered there are a few supporting features that may help with some more unique problems the first being mesh caps if you want to begin or end your spline with a certain mesh now you can this is useful for our fence example because at the end of our spline it's just open and we know that fences should have an end post so we can go into this example and see that it has a post assigned to the end mesh cap variable another nice features that will allow you to transform the capping mesh I should also mention that the transform is local so if you needed to move 1 m to the right it will stay on the right no matter how you move the spline points like how I'm showing now the next feature is a pretty basic one but was a bit trickier to code than one might think you can now scale your meshes that are used on the spline directly from this variable named mesh scale in the default options tab you may be wondering how the forward axis affects scaling or whether it's local space or World space scaling and for that the best way to explain it is that regardless of what you set the forward AIS to the X scale will always refer to the forward- facing axis y will refer to the left and right Axis and Z will refer to scaling the mesh up and down and it uses local space scaling we also had three previous options to flip the direction of the mesh for each axis but that has been replaced by just setting the mesh scale to negative please note that this is different than in the blueprint scale because if you set that to negative 1 you get the whole spline revers from the Pivot Point there's also another new option that will allow the scale of the mesh to affect how many instances of a mesh will be placed on the spline this variable is called Scale based placement and it will place the meshes one right after another based on the size of the meshes when using deform meshes this is kind of already implemented but for periodically place you now have this option the next feature we have is the a place its spine points variable and we have this example here in the demo map of electrical pylons and this is a great demo because it shows how a deformable mesh can work with a periodically placed mesh both of these use the place its blind points variable but for periodic placement it places the pylon poles at each spline point and for the deformable cable it will stretch one instance of the cable between each pylon it is important that your cable has enough polygons to deform downward if you're going to to use the next variable called droppage droppage just allows the mesh to droop down like what a cable being affected by gravity would do just a small function that I felt like adding when I made this demo panel another small feature that I added is that if you snap a spline to follow another spline it will move anywhere the other spline moves in real time this functionality was mainly achieved by moving the logic from the construction script to the event graph and now that also means you can update any of these blueprint splines in real time while your project is running by getting a reference to the blueprint and just calling the function updates blind as a last minute request we also had someone from the community that wanted to have periodically placed meshes be able to use static mesh instances instead of components so now if this new variable is enabled you will significantly reduce your draw calls and the number of Primitives rendered the one condition is that this can't be used with meshes that have negative scales because it inverts the geometry most of you won't notice the performance improvement from reduce draw calls unless you have something in your scene that's hogging it or like the person that requested it you may be developing a project for Mobile in which case you are more likely to see performance improvements there this is pretty much all the new features all this is also included in an identical ue4 map the only thing different I knows is that Collision previews of the spline tool don't seem to work in ue4 however if you actually play the level it does correctly compute the collision at runtime all right that is everything for this update thank you all for your support this will be my last update for this tool that I know of working on a free tool doesn't pay as much as working on a paid tool but I do really want to thank those of you that spent the $5 on the tool through the marketplace because it did give me the time to make this update the only thing I want to do for this but don't seem to have to know how to do is how to manipulate spline twisting for deform meshes as you can see from the scrap demo scene I wanted to show a roller coaster with loops using this tool but unfortunately blind twists in weird ways I've dissected the math of splines and I understand why it does what it does and everything can be traced back to defining what the up Vector is but unfortunately there does not seem to be enough control of it through the blueprints to get it to stop twisting if anybody would like to add code and share it to the community I would be happy to add it as a future update but as far as feature updates are concerned I think this will be the last one for this pack so my focus is now going to be on the other pack that I sell called the dynamic Road system I'm hoping to have some really cool features get added to that as you can see I've already implemented a lot of optimizations and have expanded some line marking features like you can see on screen but I'll talk about that more in the next video thank you all again until next time
Info
Channel: A Vie Guy Studios
Views: 3,787
Rating: undefined out of 5
Keywords: Unreal Engine 5, UE5, procedural tool, game development, game engine, game design, game creation, Unreal Engine, Dynamic, Road, System, A Vie Guy Studios, Procedural, Geometry Script, Blueprint, Free, Download, Spline, Mesh, Meshes, Guardrails, Fences, Sidewalks, Road Curbs, Train Tracks, Splined, Update, Lamp, Lamppost, Road Signs, Street Lamp, Street Light, cables, UE4, Unreal Engine 4
Id: HoWiNnJOWak
Channel Id: undefined
Length: 16min 49sec (1009 seconds)
Published: Fri Jun 21 2024
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.