Brilliant tutorial! Thank you for taking your time to share your knowledge. I'm learning a lot and it's always great to understand the 'why' and 'how' behind processes. A couple of things people might miss- Creating a Grid for Raycast Origin Positions: Set GridSpacing Variable to 'visible' to modify it's value. Add New Variable, name it "SphereRadius", change it to float, plug into "Append Sphere Box" 'Radius'.
I'm gonna repeat myself from the last video: Great work!! (small note: at 17:39 you cut out the part where you reconnected the ray origin y to test the array of spheres. Took me 30 minutes to figure out why mine didn't work 😅 )
Flawless tutorial(s) with lots of "Aha!" moments! Took a while to reproduce, but you will get an awesome tool for creating geometry snow and other things. Can´t imagine how long it took to produce this script/video. Thanks for your time dood. Great work!
Thank you very much for the nice comment! Really pleased you like the result you got. These tutorials do take much more time than I always think they will, haha. It really is a massive time investment but comments like these make it worth it! If anyone is reading this an enjoys tutorials on RUclips, i my limited experience, they do take a long time to make so, if you can, consider subscribing to the channels you use the most or commenting or both as it really helps motivate the makers and hopefully that will mean more content for you to view.
I have to say I have been guilty of watching and not subscribing or commenting in the past but I am trying my best to subscribe to channels I watch regularly. Still many to add but I am getting better. Haha
@@CB3DART i am watching 3d/ unreal Tutorials almost daily for the Last 4 years and this was a lot of fun with a very nice result. You should try to make some Money with that in the Epic marketplace. Would Not Hurt i think ;-)
I've followed through twice now and I'm still getting an issue where once I add the Generate Mesh Cache it won't generate any snow. It keeps coming up with two errors: FindNearestRayIntersectionWithMesh: TargetMesh is Null and ApplyMeshMorphology: Morphology operation output an empty mesh I saw someone else had the null error too and they managed to fix it but didn't say how. I'm sure it's simple but any help would be hugely appreciated as I really have no idea. The mesh cache is showing up when I hit generate. Although when I try and navigate to it in the Content Browser I can't find it, don't know if that's relevant or not. Thank you
Ok third time lucky and I got it! If anyone else is struggling at about 7 minutes in that snow is not generating it is because you need to Get the Raycast Mesh Actors variable and plug it into the Get Mesh Bounding Box. When you cut the Build BVDH out you need to add in a Raycast Mesh Actor back in.
Not sure if anybody already mentioned this option. You can use subcategories by adding a vertical line in Category naming: Default|Snow. In this case all the exposed parameters are sorted in the Default/Subcategory menu which makes them easy to use. Also I tried to use collision of the mesh instead of LOD to speedup cache processing - in that case you can use the function "copy Collision meshes from Object" - which is faster, but in some cases will not work. ps - Great tutorial, thank you!
Amazing tutorial really got me to understand geometry scripting well, had to share it in an environment artist's group it's an awesome tool, thanks for the tutorial and I hope you keep at it.
@@CB3DART I shared it both in a private group chat with my friends and also on the Dinusty empire discord (a public discord for aspiring environment artists), where it seems to have been well received. Anyways thanks for the amazing tutorial and I hope to see more of your content in the future.
Ah thanks for sharing on your private one and Dinusty, I used to be a member but I changed my discord and had forgot to added it again but will do that, thanks for the reminder!
Exactly what I am waiting for!!! It's not an easy task to learn but you are a very good instructor (except you are talking a bit too fast for a french guy like me ;) )...You plan a Part3 soon? Maybe adding how you setup snow materials? :D
Thank you! Yeah I have been told before I speak to quickly (and this is me trying to be slow, haha) As for materials, they really are nothing special, if you google snow material Z up I am sure you will find a good tutorial on how to make one. I did not use a tutorial to make mine but its a pretty common method for making snow or dust or stuff that lands on the top of surfaces.
@@CB3DART Haha thank you very much! :D Btw after playing with this setup and replicating it in houdini, it seems like houdini/houdini engine is able to sample meshes faster and turns those samples in geo faster too. But the fact you can do this kind of stuff i nthe engine is still mindblowing. I couldn't even imagine before you made this tutorial
Nice to hear houdini is quicker, I have only used houdini briefly but I liked what I saw. Yeah, I was pretty pleased with how fast UE Geoscript was but I know its in a "early access" type state so maybe in the future there will be more optimisations. Also the new Procedural Generation stuff is interesting, not had a chance to play around with it yet but I think it works a bit like some of the Houdini/blender scripting stuff. Think it uses points mostly and then replaces them with assets, which is very different to Geoscript but I am sure it will be really powerful!
Thanks for the video, it was absolutely helpfull, I made my version a little bit different but it was a blast. I really looking forward for the third part to see how can be futhermore pushed. Thanks again!
thanks pleased you liked it, I have not really started part 3, I might do a short video just explaining somethings you could do to improve it but likely I will probably make a video on a new but related topic
This is amazing tutorial. I would love to see more things you have done with this in the future. Some gotchas I think would be amazing, since this is still in its infancy.
Thank you, I have actually not had any spare time to play around with geoscript any more, I made this as my first attempt at it but have never had enough free time to try the next thing. If I do, I will definitely share what I can.
Ive completed the tutorials, only issue Im facing is that my displacement doesnt seem to add any sort of depth detail. The snow remains smooth. I've double and triple checked and cant seem to find the workaround. I've also tried messing with the displacement amounts, center, nothing seems to help.
did you fix this? If not someone else had a similar issue and it turned out that they had the pins of the sequence node in the wrong order. Might be worth checking yours.
These have been amazing! Your way of explaining is so clear yet humbly enthusiastic, it's a treat. I look forward to part 3! Also regarding the stopmotion thing at the end, I'm curious what sorcery you could do by keying some of the different parameters in Sequencer and rendering it out with Movie Render Queue. :o I just might just try that myself once I put together my own weather project with falling snow particles and the like.
Thank you! With regards to the stop motion stuff, I just did a very simply by changing a parameter and then screenshoting it (A bit like real stop motion, haha) but I have not tried doing it in sequencer, I guess if you can expose the values it might work.
Man, part three please! Really like the sound of those improvements and additions. Would there be a way to negate rays in specific places? I’m thinking like tyre tracks with their own displacement.
Thanks for the message, I will see what I can do about a third part but I have plans for some other videos first. As for the negative rays, do you mean to stop the rays from casting with say a texture or something?
Awesome video ! Would love the part three to see where you can push this. Also would love to have a quick overview of your snow master material because it looks awesome. Is there any chance you would share project files if you have no time for a part three so we can deep dive into it ?
@@CB3DART It's been a long time but I always come back to this video as this is such a great learning asset. I understand you probably will never have the time to complete this serie as it looks really time consuming to create but instead would you mind sharing your general ideas on how you would have: - Added event to make the system faster and to only be able to recompute some parts of it instead of the whole geometry ? - Add snow builds up around the base of base meshes ? You've pushed this to a limit that is really inspiring and I would love to improve my own version of the tool.
Awesome Tutorial I i can definitely see some using for this in my scenes. Just out of curiosity did you make that platform that the mesh is on or where did you get it? PS: I love how you structured the videos it's the best unreal tutorial ive seen regarding complex stuff like this, the best part is how you set up the chapters and you break the video down perfectly.
One way to get around the Defaults Tab Sorting itself so far down in the 'Generated Dynamic Mesh Actors' Class is to use Actor Components! And host all your Variables there! The one downside is when moving the Generate Mesh Cache to the ActorComponent I had to pas a self reference to the ActorComponent (Inside ConstructionScript) and use a Blueprint Interface to Call the Event, this probably sound overkill but I couldn't find any way of Calling an Event from the Owning Actor on the ActorComponent Might be more work than it is worth but it is a solution I prefer ! 🙂
Hello good day, first of all, thanks for the tutorials! I have a problem at minute 21:00 And it is that the spheres appear, but they appear displaced a little downwards and to the right. And I saw everything like 5 times but I can't figure out what could be the problem
Hi, I made it myself but I guess if you search for a moss or snow shader tutorial (or try z Up shader unreal, or Z up snow shader unreal, etc) I am sure you will find a video on how to do something like this.
Thank you, sadly no but I have been considering releasing it, just need to find the time (as super busy right now) to tidy it up, test it in ue 5.1, etc
Really great tutorial. I've seen more UE/Unity tutorials than I want to admit but this one stand out really nicely. Do you think it's doable to make some kind of footprint displace (as some kind of Landscape Displacement) on the snow mesh?
Thank you! You can displace anything really but obviously landscapes are massive and I don't think this type of tool would be best suited for that kind of thing. I think you would probably want to look into "virtual height field meshes" if you are talking about unreal 5 and if you are using unreal 4 then you could do something with tessellation probably.
I am sure you are better than you think, just keep learning. I knew nothing about coding before starting to learn blueprint and I am a artist so its not "natural" to me but over time it gets better I have to say, I always feel completely out of my comfort zone but I think thats a good thing, often means I am constantly learning. Anyways... I seem to not have showed how to create the sphere radius variable, sorry about that (its not that important as snow thickness will do s similarish thing but...) if you want to add it to your script create a float variable and add it to this node here... imgur.com/a/WwUkmFX
Maybe next tut wood plank generator, procedural deform, broken etc. I thing it will be cool becouse we can marge many planks for big wall and wall for bulding, what do you thing?
This may be because of the update(or me), but I keep getting errors regarding a target mesh is null even though I can see it clearly. I'm right at the beginning of the video. Other than my error great tutorial!
pleased you liked it, did you manage to solve this issue? You might be able to use a isvalid node to check if its null before asking to use the target mesh
Hey there, thanks for the tutorial it's great. I've completed it but I would like to add something to this generator, a way to prevent specific parts of the selected meshes from getting the snow. Like for example if I have a firepit in the middle of the snow it would make sense to not have snow on the ground around it. I tried to figure it out on my own but couldn't, if you have any idea on how to go about doing this it would be awesome :)
I have not tried this but off the top of my head there are lots of ways you could do this, one quick way might be to have another mesh array that are "excluder objects" that when you do the raycast you test against an if you hit them you dont place a sphere for the snow. obviously this is not very in depth or potentially the best way but it might lead you to a solution. cheers
Hi, Thanks for the message. I made this some time ago now so its difficult to fully remember it all. Firstly, sorry if I missed showing the creation of the generate snow variable, its actually not essential to the tutorial but I appreciate that it might be annoying that its missing on yours. So all the generate snow checkbox does is allow you to stop the snow from generating every time you change a variable. So you uncheck the "generate snow" box then you are free to edit any properties you like in the "tool" then when you want to have the snow generate you check the "generate snow" box and the snow will generate. As I say this does not do anything apart from allow you to "pause" the snow generation, so will no affect on the tutorial (also I think I completely redo that and change it to a button in this tutorial anyway) However.... To add the generate snow check box is very simple if you want to do it. Firstly you will need to create a variable inside the blueprint called "generate snow" set variable type to boolean and expose the variable to that it can be seen in the tools details panel. You need to then add a branch node that goes between the "set target mesh node" and the "Sequence node" Connect the "Set target mesh node" to the in pin and connect the true pin to the sequence node. Then all that is left to do is attach the new variable you created to the condition of the branch node. Below is a quick image of what to do. Hope it helps imgur.com/a/oaUyVl6
@CB3DART THANK YOU VERY MUCH..!! Now if I could only get the GENERATE MESH CACHE to work I would be the happiest person in the world. I'll start from scratch just to make sure I didn't miss anything. Thank you again for sharing such a wonderful tool. Cheers..!!!
Hi CB3DART, thanks for creating such a great tutorial! I’m having a small issue right now. I have the snow working properly by following part 1, but when I test the snow on a mesh from Megascans (which is the same mesh you used in the tutorial), all the snow disappears. If I turn off the Remesh, I can still see that a lot of spheres are generated on the mesh. So I guess the Remesh function isn't working on the Megascans mesh? The snow can be generated and remeshed properly on cubes, cylinders, and planes. Do you have any idea what might be causing this issue? Thanks a lot! :)
I figured it out. I was being silly. Apparently, I need to increase the value of the sphere radius and snow thickness when applying it to a larger mesh.😂
Hey I liked the video very much, the rendering is very good, I have a question, do you think it's usable in a weather system, I mean seeing that in the end we get a mesh we can't make it appear little by little in real time?
in theory you could do that, but what I have made for this example is very inefficient. You would need to make some efficiency improvements to do that. Main issue would be voxelising the spheres (i.e. remeshing) as this takes time and if it was a the whole mesh being remeshed each frame it would be far too slow (unless it was very low poly) however if you could figure out a way to only remesh or add what is changed then it might work.
Hi ! Awsome tutorial thank you so much. I'm currently working on a game project that require a strong procedural snow shader to put on any object of the scene. Do you think that the one you create in your tutorial is game ready with UE5 or is there a better way to achieve a good result ?
I would not say this is best (its more of an example of what you can do, there is many many improvements that could be made) however the meshes generated from the tool would totally work in UE5 (as nanite meshes) so yes it would work but no not necessarily the best method, just one method.
You definitely could make a moss with this method, lots of different ways you could do it but one would be that you could spawn a small "moss" mesh at the location of the raycast rather than a sphere, another way would just be to use a displacement texture that was more moss like in style and a moss material (ofcourse this will not give the porous nature of moss)
one question however, say i have multiple meshes and i want different displacement and textures on them, like one is cliffs with dirty jagged snow and the other is like forrest meshes i want fluffy snow on, how would i go about doing that?
Erm, with the current set up, it would probably be easiest to just drop in two snow generator blueprints and assign a different mesh to each then set up the snow types you want. (I have not tired this but it should work, I think) ofcourse with more time you could make a system in a single blueprint that could allow for different types
Superb tutorial. just got one more question, how can I fast migrate this tool into another project? Only copy paste the BP seems doesn't work ("Blueprint has missing or NULL parrents" when compile)
@@CB3DART I eventually realized that was a dumb question and you are right, I just forget to check plugins...anyway, thank you again for the reply and this awesome tutorial. Looking forward to see your next video soon!
@@CB3DART Also I feel you are so good at making tutorials, if you are considering some online series (skillshare/gumroad etc) I won't hesitate to support!
hello @@CB3DART , I'm working on a snow scene today and using this technique again. I just came across another question: when I do raycasting would it be possible to "hit" the mesh more than once? For example a car model, only the roof would receive the snow, what if I want both roof and seat covered by snow? many thanks if you can share some idea ;D
15:07 I know its stupid but it took me half hour to figure it out dont forget to set the default value in the grid spacing float > then 0 Otherwise It will Casue an error Kinda Stupid on my side tbh
Figured out the solution to Default being to low after adding new category's. So you leave default & add the | after so Default|snow & have them as sub category's.
Something in this isn't working. I've followed your entire tutorial. However, at certain times snow won't generate. Then the different settings don't seem to be consistent. I'll probably go through it again at some point. However, I'm not sure what the issue is.
megabruh 😫tried optimization, nothing worked, later i read a comment that said it didn't work on 5.1. Turned everything back on. Snow no longer works...
Hey! Could you confirm if this works for 5.0.3? Everything stops working for me at BVH Cache Optimization I get following errors in log: LogScript: Warning: Script Msg: Divide by zero: Divide_DoubleDouble LogGeometry: Warning: GeometryScriptError: FindNearestRayIntersectionWithMesh: TargetMesh is Null LogGeometry: Warning: GeometryScriptError: ApplyMeshMorphology: Morphology operation output an empty mesh
Sounds like there might be a mistake in the variable used on the BVH and the Raycast Mesh Intersect but its really hard to say without a screenshot of your node graph, if you share one I can have a look. As I think I used unreal version 5.0.3 but will double check when I get a min.
@@CB3DART Hey! Sorry it took so long. Here are screenshots of my node tree drive.google.com/drive/folders/14Rx6eTQATCfkCoxCicp3Z-GFYgxgMb8k?usp=sharing
So I had a look, are you pressing the generate mesh cache button after you recompile? as if you don't the BVH will be out of date (i.e. empty) like the warning says. Each time you compile you need to click the generate mesh cache, as when you compile the cache is emptied.
I dont have time to replicate it but id really appreciate buying it! id like to use it in my scene for a school project ^^ is there a way to get it? like without doing it from scratch?
44:04 do not ever do smth like this in your game, although it's not visible and doesn't use your GPU performance, but your CPU and RAM are still processing it
The goal with this was to learn Geoscript rather than be something production ready. I would say however, as I think I show in the video (difficult to remember if I did) I always intended for this to be something you would "bake" into a asset, so the hidden mesh would not be needed anyway.
i had snow until the beginning of this video, 2 minutes after starting this my snow generator won't do a thing. "Generate Snow" is nowhere in my details, nowhere.
I might have missed something, there was a bit of a time gap between me making video 1 and 2 and I might have missed something but "generate snow" is just a boolean (if I remember correctly) so all you need to do is make a boolean variable and call it "generate snow" then connect to a branch node right after "set targer mesh" node. This time stamp in this video shows how the branch node should look ruclips.net/video/f1-5E6j7phA/видео.html (at the bottom middle of the screen you will see a branch node with generate snow variable connected) Not sure if this is your problem or not though
In theory yeah, It was something I had thought about while making. Honestly you could just use a moss displacement texture and/or the noise feature and use a moss material on the generated mesh and it would look half decent. However, to get the most out of it you would probably want to adapt/change it to suit moss over snow.
hi,CB3DART,I am good at the scene environment art of UE, but I am not good at the blueprint module that requires strong logic. I hope to restore your blueprint, but it is too difficult for me. Therefore, I hope you can share them or sell them to the UE mall. Thank you.😔
@CB3DART I agree, I'm willing to PAY for help with one tiny little issue I'm having in part 2 of your tutorial. I KNOW it's something very simple however, I am very new to blueprints. Yours is only the second I've ever attempted. I'm WILLING TO PAY WHATEVER YOU ASK...!!!! I just need your script to work. Thank you Chris. I love ALL your stuff by the way.
Brilliant tutorial! Thank you for taking your time to share your knowledge. I'm learning a lot and it's always great to understand the 'why' and 'how' behind processes.
A couple of things people might miss-
Creating a Grid for Raycast Origin Positions:
Set GridSpacing Variable to 'visible' to modify it's value.
Add New Variable, name it "SphereRadius", change it to float, plug into "Append Sphere Box" 'Radius'.
Pleased you liked it, and thanks for highlighting some things for others to watch out for.
was curious what I missed to only see one sphere on my plane. Gridspacing wasn't visible. Thanks!!
I'm gonna repeat myself from the last video: Great work!! (small note: at 17:39 you cut out the part where you reconnected the ray origin y to test the array of spheres. Took me 30 minutes to figure out why mine didn't work 😅 )
Thanks and sorry if I cut off something important, it can be hard trying to cut these videos down as they usually start off at like 6 hrs haha
oh my god thank you so much lmao
Please, could you help me? if you have solved all problems and get result and dont mind to help me🥲🥲 I dont know, who can help me. Can we connect?
How did you fix?
Flawless tutorial(s) with lots of "Aha!" moments! Took a while to reproduce, but you will get an awesome tool for creating geometry snow and other things. Can´t imagine how long it took to produce this script/video. Thanks for your time dood. Great work!
Thank you very much for the nice comment! Really pleased you like the result you got. These tutorials do take much more time than I always think they will, haha. It really is a massive time investment but comments like these make it worth it!
If anyone is reading this an enjoys tutorials on RUclips, i my limited experience, they do take a long time to make so, if you can, consider subscribing to the channels you use the most or commenting or both as it really helps motivate the makers and hopefully that will mean more content for you to view.
I have to say I have been guilty of watching and not subscribing or commenting in the past but I am trying my best to subscribe to channels I watch regularly. Still many to add but I am getting better. Haha
@@CB3DART i am watching 3d/ unreal Tutorials almost daily for the Last 4 years and this was a lot of fun with a very nice result. You should try to make some Money with that in the Epic marketplace. Would Not Hurt i think ;-)
Thanks, I considered trying to make something for the marketplace a long time ago, maybe I will look into it again in the future.
I've followed through twice now and I'm still getting an issue where once I add the Generate Mesh Cache it won't generate any snow. It keeps coming up with two errors: FindNearestRayIntersectionWithMesh: TargetMesh is Null and ApplyMeshMorphology: Morphology operation output an empty mesh
I saw someone else had the null error too and they managed to fix it but didn't say how. I'm sure it's simple but any help would be hugely appreciated as I really have no idea. The mesh cache is showing up when I hit generate. Although when I try and navigate to it in the Content Browser I can't find it, don't know if that's relevant or not. Thank you
Ok third time lucky and I got it! If anyone else is struggling at about 7 minutes in that snow is not generating it is because you need to Get the Raycast Mesh Actors variable and plug it into the Get Mesh Bounding Box. When you cut the Build BVDH out you need to add in a Raycast Mesh Actor back in.
@@HollysMayaTutorials Thanx A lot
I was Wondering wtf happened And Just Saw ur comment and fixed it !
Excellent videos which transfer insight of snow into step-by-step implementaions. Look forward to the part three or the release of the tools : )
There are so few such detailed, wonderful training videos. Thanks!
Thank you! Was a lot of work to create but comments like these make it worth it.
by far one of the best tutorials i've seen
Thank you, pleased you liked it.
Not sure if anybody already mentioned this option. You can use subcategories by adding a vertical line in Category naming: Default|Snow. In this case all the exposed parameters are sorted in the Default/Subcategory menu which makes them easy to use. Also I tried to use collision of the mesh instead of LOD to speedup cache processing - in that case you can use the function "copy Collision meshes from Object" - which is faster, but in some cases will not work. ps - Great tutorial, thank you!
Thanks for the comment
So cool😎, we are waiting the part 3🫶🏼
also now starting the second part! really exciting dude!
Amazing tutorial really got me to understand geometry scripting well, had to share it in an environment artist's group it's an awesome tool, thanks for the tutorial and I hope you keep at it.
Thank you very much for the comment! pleased that you liked it. Is the environment artist group public? Always nice to see more environment art stuff.
@@CB3DART I shared it both in a private group chat with my friends and also on the Dinusty empire discord (a public discord for aspiring environment artists), where it seems to have been well received.
Anyways thanks for the amazing tutorial and I hope to see more of your content in the future.
Ah thanks for sharing on your private one and Dinusty, I used to be a member but I changed my discord and had forgot to added it again but will do that, thanks for the reminder!
This is pure joy! more content to content Gods!
haha thank you!
Great video! I like how you first implement basic implementations then gradually adjust to better ones
Thanks pleased you liked it.
Thanks for the tutorial. You can make the Generate Mesh Cache into it's own Function, that way you can categorize it inside of the Snow category.
Pleased that you liked it, and thanks for the heads up about the function!
Great tutorials, cant wait to get into nanite and try this out. currently too busy with work but this is on top of my list, subscribed
Thanks Hans, Nanite is a workflow changer for sure and pretty creatively freeing. You will have a lot of fun playing around with it.
Hats off bro! This is what I call a O_osom tool!
Exactly what I am waiting for!!! It's not an easy task to learn but you are a very good instructor (except you are talking a bit too fast for a french guy like me ;) )...You plan a Part3 soon? Maybe adding how you setup snow materials? :D
Thank you! Yeah I have been told before I speak to quickly (and this is me trying to be slow, haha) As for materials, they really are nothing special, if you google snow material Z up I am sure you will find a good tutorial on how to make one. I did not use a tutorial to make mine but its a pretty common method for making snow or dust or stuff that lands on the top of surfaces.
@@CB3DART Any plan to sell your script on the Market Place? anytime soon? :)
I have been really busy with work but I will see what I can do.
This was a great tutorial! I had a lot of fun working through it and learned a ton about procedural geometry generation. Thanks!
Thanks Andrew, pleased it was useful!
oh man, thanks a lot, very educational!
Thanks Anton! Congrats on Mortal Shell very impressive work!
@@CB3DART Haha thank you very much! :D Btw after playing with this setup and replicating it in houdini, it seems like houdini/houdini engine is able to sample meshes faster and turns those samples in geo faster too. But the fact you can do this kind of stuff i nthe engine is still mindblowing. I couldn't even imagine before you made this tutorial
Nice to hear houdini is quicker, I have only used houdini briefly but I liked what I saw. Yeah, I was pretty pleased with how fast UE Geoscript was but I know its in a "early access" type state so maybe in the future there will be more optimisations. Also the new Procedural Generation stuff is interesting, not had a chance to play around with it yet but I think it works a bit like some of the Houdini/blender scripting stuff. Think it uses points mostly and then replaces them with assets, which is very different to Geoscript but I am sure it will be really powerful!
Thanks for the video, it was absolutely helpfull, I made my version a little bit different but it was a blast. I really looking forward for the third part to see how can be futhermore pushed. Thanks again!
thanks pleased you liked it, I have not really started part 3, I might do a short video just explaining somethings you could do to improve it but likely I will probably make a video on a new but related topic
This is amazing tutorial. I would love to see more things you have done with this in the future. Some gotchas I think would be amazing, since this is still in its infancy.
Thank you, I have actually not had any spare time to play around with geoscript any more, I made this as my first attempt at it but have never had enough free time to try the next thing. If I do, I will definitely share what I can.
Ive completed the tutorials, only issue Im facing is that my displacement doesnt seem to add any sort of depth detail. The snow remains smooth. I've double and triple checked and cant seem to find the workaround. I've also tried messing with the displacement amounts, center, nothing seems to help.
did you fix this? If not someone else had a similar issue and it turned out that they had the pins of the sequence node in the wrong order. Might be worth checking yours.
These have been amazing! Your way of explaining is so clear yet humbly enthusiastic, it's a treat. I look forward to part 3! Also regarding the stopmotion thing at the end, I'm curious what sorcery you could do by keying some of the different parameters in Sequencer and rendering it out with Movie Render Queue. :o I just might just try that myself once I put together my own weather project with falling snow particles and the like.
Thank you! With regards to the stop motion stuff, I just did a very simply by changing a parameter and then screenshoting it (A bit like real stop motion, haha) but I have not tried doing it in sequencer, I guess if you can expose the values it might work.
Can i blend this snow with landscape rvt with subsurface? If its possible how i can do this?
Sorry I am not sure, I guess yes but I have not done much with the Render Target Virtual Texture stuff, so sadly I wont be able to help much, sorry.
Man, part three please! Really like the sound of those improvements and additions.
Would there be a way to negate rays in specific places? I’m thinking like tyre tracks with their own displacement.
Thanks for the message, I will see what I can do about a third part but I have plans for some other videos first.
As for the negative rays, do you mean to stop the rays from casting with say a texture or something?
Awesome video ! Would love the part three to see where you can push this. Also would love to have a quick overview of your snow master material because it looks awesome. Is there any chance you would share project files if you have no time for a part three so we can deep dive into it ?
Thank you, These videos take me a long time to make and I have been super busy with work but I would like to make more, just need to find the time.
@@CB3DART It's been a long time but I always come back to this video as this is such a great learning asset. I understand you probably will never have the time to complete this serie as it looks really time consuming to create but instead would you mind sharing your general ideas on how you would have:
- Added event to make the system faster and to only be able to recompute some parts of it instead of the whole geometry ?
- Add snow builds up around the base of base meshes ?
You've pushed this to a limit that is really inspiring and I would love to improve my own version of the tool.
This tutorial really awesome!
Glad you liked it
Awesome Tutorial I i can definitely see some using for this in my scenes. Just out of curiosity did you make that platform that the mesh is on or where did you get it?
PS: I love how you structured the videos it's the best unreal tutorial ive seen regarding complex stuff like this, the best part is how you set up the chapters and you break the video down perfectly.
Thank you very much, that is nice of you to say. As for the platform, I just quickly made it in blender for presentation purposes.
@@CB3DART I really love the clean look to it
One way to get around the Defaults Tab Sorting itself so far down in the 'Generated Dynamic Mesh Actors' Class is to use Actor Components! And host all your Variables there!
The one downside is when moving the Generate Mesh Cache to the ActorComponent I had to pas a self reference to the ActorComponent (Inside ConstructionScript) and use a Blueprint Interface to Call the Event, this probably sound overkill but I couldn't find any way of Calling an Event from the Owning Actor on the ActorComponent
Might be more work than it is worth but it is a solution I prefer ! 🙂
Thanks for posting, always nice to hear about peoples work arounds, etc.
This is so cool, you should make more tuts on this!
Thanks I would like to, just need to find the free time.
Hello good day, first of all, thanks for the tutorials!
I have a problem at minute 21:00
And it is that the spheres appear, but they appear displaced a little downwards and to the right.
And I saw everything like 5 times but I can't figure out what could be the problem
Hi, what do you have the loops first index set too? also do you have the -1 on the last index?
hi. can you tell me how to look for a lesson on creating material from 1:06:42 ?
Hi, I made it myself but I guess if you search for a moss or snow shader tutorial (or try z Up shader unreal, or Z up snow shader unreal, etc) I am sure you will find a video on how to do something like this.
@@CB3DART yes i found it. Thank you
Thanks a lot! Crazy work there! Is the final BP available for download from somewhere?
Thank you, sadly no but I have been considering releasing it, just need to find the time (as super busy right now) to tidy it up, test it in ue 5.1, etc
Amazing, Thank you so much!
Your welcome
Really great tutorial. I've seen more UE/Unity tutorials than I want to admit but this one stand out really nicely.
Do you think it's doable to make some kind of footprint displace (as some kind of Landscape Displacement) on the snow mesh?
Thank you! You can displace anything really but obviously landscapes are massive and I don't think this type of tool would be best suited for that kind of thing. I think you would probably want to look into "virtual height field meshes" if you are talking about unreal 5 and if you are using unreal 4 then you could do something with tessellation probably.
This is great work. Looks like I'm missing the sphere radius variable though.
Thank you, did you find/get this working?
@@CB3DART No! My coding skills are poor. I need 100% hand holding unfortunately.
I am sure you are better than you think, just keep learning. I knew nothing about coding before starting to learn blueprint and I am a artist so its not "natural" to me but over time it gets better I have to say, I always feel completely out of my comfort zone but I think thats a good thing, often means I am constantly learning. Anyways... I seem to not have showed how to create the sphere radius variable, sorry about that (its not that important as snow thickness will do s similarish thing but...) if you want to add it to your script create a float variable and add it to this node here... imgur.com/a/WwUkmFX
Maybe next tut wood plank generator, procedural deform, broken etc. I thing it will be cool becouse we can marge many planks for big wall and wall for bulding, what do you thing?
Thanks for the suggestion, not sure what I will try next but thanks for your comment
Come back, wonderful human.
Haha, thanks very kind. I am trying to find some time in between work to do some more tuts.
Cool
Thanks!
Just finished watching the last part, the second part is coming,Thank you so much!!!!
you welcome, hope you like it.
This may be because of the update(or me), but I keep getting errors regarding a target mesh is null even though I can see it clearly. I'm right at the beginning of the video. Other than my error great tutorial!
pleased you liked it, did you manage to solve this issue? You might be able to use a isvalid node to check if its null before asking to use the target mesh
@@CB3DART Yes I did! I don't remember what the issue was but I think it was something fairly simple.
Hey there, thanks for the tutorial it's great. I've completed it but I would like to add something to this generator, a way to prevent specific parts of the selected meshes from getting the snow. Like for example if I have a firepit in the middle of the snow it would make sense to not have snow on the ground around it. I tried to figure it out on my own but couldn't, if you have any idea on how to go about doing this it would be awesome :)
I have not tried this but off the top of my head there are lots of ways you could do this, one quick way might be to have another mesh array that are "excluder objects" that when you do the raycast you test against an if you hit them you dont place a sphere for the snow. obviously this is not very in depth or potentially the best way but it might lead you to a solution. cheers
Not sure what I missed however, I don't have a "GENERATE SNOW?" Variable and I'm not sure how to add it. HELP
Hi, Thanks for the message. I made this some time ago now so its difficult to fully remember it all. Firstly, sorry if I missed showing the creation of the generate snow variable, its actually not essential to the tutorial but I appreciate that it might be annoying that its missing on yours. So all the generate snow checkbox does is allow you to stop the snow from generating every time you change a variable. So you uncheck the "generate snow" box then you are free to edit any properties you like in the "tool" then when you want to have the snow generate you check the "generate snow" box and the snow will generate. As I say this does not do anything apart from allow you to "pause" the snow generation, so will no affect on the tutorial (also I think I completely redo that and change it to a button in this tutorial anyway) However....
To add the generate snow check box is very simple if you want to do it. Firstly you will need to create a variable inside the blueprint called "generate snow" set variable type to boolean and expose the variable to that it can be seen in the tools details panel. You need to then add a branch node that goes between the "set target mesh node" and the "Sequence node" Connect the "Set target mesh node" to the in pin and connect the true pin to the sequence node. Then all that is left to do is attach the new variable you created to the condition of the branch node. Below is a quick image of what to do. Hope it helps
imgur.com/a/oaUyVl6
@CB3DART THANK YOU VERY MUCH..!! Now if I could only get the GENERATE MESH CACHE to work I would be the happiest person in the world. I'll start from scratch just to make sure I didn't miss anything. Thank you again for sharing such a wonderful tool. Cheers..!!!
Pleased that it was helpful, hope that you managed to get the generate mesh cache to work!
@@CB3DART Really didn't expect this answer can be found, and it's SO detail and helpful just the same as your video. Thank you so much.
thank you tutorial ^^ Can I convert a made snow into a static mesh? I want to Nanite.
Yeah you can, if you watch part 2 of the series it shows one way at the very end. ruclips.net/video/f1-5E6j7phA/видео.html
@@CB3DART thank you very much.There was such a simple way.
Hi CB3DART, thanks for creating such a great tutorial! I’m having a small issue right now. I have the snow working properly by following part 1, but when I test the snow on a mesh from Megascans (which is the same mesh you used in the tutorial), all the snow disappears. If I turn off the Remesh, I can still see that a lot of spheres are generated on the mesh. So I guess the Remesh function isn't working on the Megascans mesh? The snow can be generated and remeshed properly on cubes, cylinders, and planes. Do you have any idea what might be causing this issue? Thanks a lot! :)
I figured it out. I was being silly. Apparently, I need to increase the value of the sphere radius and snow thickness when applying it to a larger mesh.😂
pleased you figured it out, sorry I have been really busy with work so never seen your comment
Hey I liked the video very much, the rendering is very good, I have a question, do you think it's usable in a weather system, I mean seeing that in the end we get a mesh we can't make it appear little by little in real time?
in theory you could do that, but what I have made for this example is very inefficient. You would need to make some efficiency improvements to do that. Main issue would be voxelising the spheres (i.e. remeshing) as this takes time and if it was a the whole mesh being remeshed each frame it would be far too slow (unless it was very low poly) however if you could figure out a way to only remesh or add what is changed then it might work.
Hi ! Awsome tutorial thank you so much. I'm currently working on a game project that require a strong procedural snow shader to put on any object of the scene. Do you think that the one you create in your tutorial is game ready with UE5 or is there a better way to achieve a good result ?
I would not say this is best (its more of an example of what you can do, there is many many improvements that could be made) however the meshes generated from the tool would totally work in UE5 (as nanite meshes) so yes it would work but no not necessarily the best method, just one method.
CAn you make a Tutorial with Moss, or is this the same? and thank you for this great Tutorial.
You definitely could make a moss with this method, lots of different ways you could do it but one would be that you could spawn a small "moss" mesh at the location of the raycast rather than a sphere, another way would just be to use a displacement texture that was more moss like in style and a moss material (ofcourse this will not give the porous nature of moss)
one question however, say i have multiple meshes and i want different displacement and textures on them, like one is cliffs with dirty jagged snow and the other is like forrest meshes i want fluffy snow on, how would i go about doing that?
Erm, with the current set up, it would probably be easiest to just drop in two snow generator blueprints and assign a different mesh to each then set up the snow types you want. (I have not tired this but it should work, I think) ofcourse with more time you could make a system in a single blueprint that could allow for different types
@@CB3DART that's what I ended up doing I always think it's too expensive to do that
Superb tutorial. just got one more question, how can I fast migrate this tool into another project? Only copy paste the BP seems doesn't work ("Blueprint has missing or NULL parrents" when compile)
Thank you, did you remember to enable all the plugins etc? (I have not tried migrating it tbh)
@@CB3DART I eventually realized that was a dumb question and you are right, I just forget to check plugins...anyway, thank you again for the reply and this awesome tutorial. Looking forward to see your next video soon!
@@CB3DART Also I feel you are so good at making tutorials, if you are considering some online series (skillshare/gumroad etc) I won't hesitate to support!
Thank you very kind of you to say!
hello @@CB3DART , I'm working on a snow scene today and using this technique again. I just came across another question: when I do raycasting would it be possible to "hit" the mesh more than once? For example a car model, only the roof would receive the snow, what if I want both roof and seat covered by snow? many thanks if you can share some idea ;D
Thank you very much
감사합니다.. 정말 유용한 정보입니다.
Thank you!
15:07
I know its stupid but it took me half hour to figure it out
dont forget to set the default value in the grid spacing float > then 0 Otherwise It will Casue an error
Kinda Stupid on my side tbh
yeah that is a good thing to point out, thanks
Figured out the solution to Default being to low after adding new category's. So you leave default & add the | after so Default|snow & have them as sub category's.
cool this might be a good work around. thanks for posting
Thanks🤗
good job thank you
Something in this isn't working. I've followed your entire tutorial. However, at certain times snow won't generate. Then the different settings don't seem to be consistent. I'll probably go through it again at some point. However, I'm not sure what the issue is.
did you manage to get it to work? What is the issue you are having, if I can help I will
megabruh 😫tried optimization, nothing worked, later i read a comment that said it didn't work on 5.1. Turned everything back on. Snow no longer works...
I have not tried 5.1 yet (been too busy sadly) did you get it working?
Dear sir! I have 5.1 version and BP stops working after optimization (
Sadly I have not had time to try 5.1 yet, if/when I do I will report back if mine works.
Try on the Build BVH For Mesh node, connect the Target Mesh pin to the Get Mesh Bounding Box node. That might fix it.
@@Eidridin a true champ!
Hey!
Could you confirm if this works for 5.0.3?
Everything stops working for me at BVH Cache Optimization
I get following errors in log:
LogScript: Warning: Script Msg: Divide by zero: Divide_DoubleDouble
LogGeometry: Warning: GeometryScriptError: FindNearestRayIntersectionWithMesh: TargetMesh is Null
LogGeometry: Warning: GeometryScriptError: ApplyMeshMorphology: Morphology operation output an empty mesh
Sounds like there might be a mistake in the variable used on the BVH and the Raycast Mesh Intersect but its really hard to say without a screenshot of your node graph, if you share one I can have a look. As I think I used unreal version 5.0.3 but will double check when I get a min.
@@CB3DART Hey! Sorry it took so long. Here are screenshots of my node tree
drive.google.com/drive/folders/14Rx6eTQATCfkCoxCicp3Z-GFYgxgMb8k?usp=sharing
So I had a look, are you pressing the generate mesh cache button after you recompile? as if you don't the BVH will be out of date (i.e. empty) like the warning says. Each time you compile you need to click the generate mesh cache, as when you compile the cache is emptied.
I have just double checked/tested mine on 5.0.3 and works fine
Yes, i do press it every time and it doesn't work for me. So weird, i'm at loss here 😅
I dont have time to replicate it but id really appreciate buying it! id like to use it in my scene for a school project ^^
is there a way to get it? like without doing it from scratch?
44:04 do not ever do smth like this in your game, although it's not visible and doesn't use your GPU performance, but your CPU and RAM are still processing it
The goal with this was to learn Geoscript rather than be something production ready. I would say however, as I think I show in the video (difficult to remember if I did) I always intended for this to be something you would "bake" into a asset, so the hidden mesh would not be needed anyway.
This is great, any chance you could make the project files available to download?
Thank you, I will see what I can do, have been really busy with work recently.
i had snow until the beginning of this video, 2 minutes after starting this my snow generator won't do a thing.
"Generate Snow" is nowhere in my details, nowhere.
I might have missed something, there was a bit of a time gap between me making video 1 and 2 and I might have missed something but "generate snow" is just a boolean (if I remember correctly) so all you need to do is make a boolean variable and call it "generate snow" then connect to a branch node right after "set targer mesh" node. This time stamp in this video shows how the branch node should look ruclips.net/video/f1-5E6j7phA/видео.html (at the bottom middle of the screen you will see a branch node with generate snow variable connected) Not sure if this is your problem or not though
so we can create moss using this!
In theory yeah, It was something I had thought about while making. Honestly you could just use a moss displacement texture and/or the noise feature and use a moss material on the generated mesh and it would look half decent. However, to get the most out of it you would probably want to adapt/change it to suit moss over snow.
hi,CB3DART,I am good at the scene environment art of UE, but I am not good at the blueprint module that requires strong logic. I hope to restore your blueprint, but it is too difficult for me. Therefore, I hope you can share them or sell them to the UE mall. Thank you.😔
Thanks, I will see what I can do.
@CB3DART I agree, I'm willing to PAY for help with one tiny little issue I'm having in part 2 of your tutorial. I KNOW it's something very simple however, I am very new to blueprints. Yours is only the second I've ever attempted. I'm WILLING TO PAY WHATEVER YOU ASK...!!!! I just need your script to work. Thank you Chris. I love ALL your stuff by the way.