Search Unity

Snowify - Generates snow meshes for your props [RELEASED]

Discussion in 'Assets and Asset Store' started by Steven-1, Jan 20, 2013.

  1. Steven-1

    Steven-1

    Joined:
    Sep 11, 2010
    Posts:
    471
    $snowify.png

    SNOWIFY is a tool that allows you to generate thick layers of snow on your props.
    The snow meshes are automatically unwrapped and textured.
    You have complete control over the snow's thickness, angle, material, and various other settings.

    This is an Editor Extension, you create the snow using the Snowify Window in the editor,
    once created, these snow meshes will just be like any other gameobject in the scene.


    >>> Get it on the Asset Store <<<


    Works on Unity Free and Pro Version.




    $example2B.png
    $example3B.png
    $example4.png
    $example6.png


    If you have any questions, comments or suggestions, please feel free to let me know.
     
    Last edited: Dec 31, 2013
  2. Samsson

    Samsson

    Joined:
    Oct 12, 2010
    Posts:
    165
    Hi steven,


    Sounds cool !

    How the snow is made ? Additionnal triangles ?

    Could you show us more with a demo if possible or a video ?
     
  3. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,526
    wow cool is this suitable for mobile ?

    is the snow batched? drawcalls?
     
  4. Steven-1

    Steven-1

    Joined:
    Sep 11, 2010
    Posts:
    471
    Yes, additional triangles: the snow are seperate meshes.
    This tool is an editor extension, so the snow is created using the Snowify-window in the editor (not at runtime).
    Once created, the snow will just be like any other mesh in the scene.

    Since it's an editor extension, I can't really make a usefull demo for it, I could make a video for it, but it would just be me pressing a button and then 'poof' there is snow. (well that's not entirely true, I could show all the different settings and parameters)
    Alright, I''ll see what I can do to make it all more clear what exactly it does and how it all works.

    Yes, perfectly suitable for mobile.

    The snow are separate meshes, 1 snow mesh for each source mesh.
    By default they will all have the same material, so they should work perfectly together with static batching.
    Which reminds me, right now the snow gameobject static flags aren't set, maybe they should be set automatically. I'll change that, but for now you would just have to set the snow's static flags manually and they should work correctly with unity's built in static batching.
     
  5. napster

    napster

    Joined:
    Jun 15, 2012
    Posts:
    313
    Really a good thought, just want to see a webplayer how snow actual looks
     
  6. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,526
    Could you make an option that it will only cover an object from a certain height?

    I'm trying to cover a mesh terrain in snow and it covers the whole mesh and I only want to have snow on the mountain tops.


    Furthermore I would love to see an option that keeps al snowyfied items in a list and tho should enable to quickly mess with the parameters.


    and can you implement an undo :)
    Thanks
     
    Last edited: Feb 6, 2013
  7. Steven-1

    Steven-1

    Joined:
    Sep 11, 2010
    Posts:
    471
    I'm making a demonstration movie that shows what it all does and how to use it, should be finished tomorrow.
    I'll upload it here then.

    I've also been making some improvements and fixed a bug.
    So I'll be releasing an update soon (version 1.1).
    It will probably be available next week.

    Done :)
    Expect it in the next update.

    I've been thinking about making some kind of controller/manager script to keep in the scene or attach to objects,
    but I don't really know what would work best.
    I'll think about it some more.
     
  8. Steven-1

    Steven-1

    Joined:
    Sep 11, 2010
    Posts:
    471
    I made a clip to demonstrate what it does and how to use it:



    It also show a couple of new features in version 1.1

    >>> Version 1.1 now available on the Asset Store <<<

    Changes:


    Bug Fixes:

    - In rare cases snow meshes had holes in them, now fixed.
    - Empty snow meshes are now discarded.

    New Features:

    - Subdivisions: The snow mesh can be subdivided for more accurate results.
    - Smoothing: The snow mesh can be smoothed for a more natural look.
    - Close Bottom: the open bottom of the snow meshes can now be capped.
    - Only High Snow: A minimum height can be set below which there will be no snow.
    - Static Flags: the snow's static flags can now be set.
     
    Last edited: Feb 17, 2013
  9. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,526
    Cool new updates! and I will look forward to be able to edit all the snow after creation, thanks for the continued support!
     
  10. Steven-1

    Steven-1

    Joined:
    Sep 11, 2010
    Posts:
    471
    I'm adding a new feature: a save and a load button,
    that allows you to save the current snowmeshes (temporarily, it's all gone when you close the snowify window or load a scene),
    so you can then change some values, create new snowmeshes, and then load the old snowmeshes quickly (pressing the load button again will load the newest one again).

    So that way you can quickly compare without having to regenerate the snowmeshes.

    It only keeps one save for each snowmesh, but it keeps track of which snowmesh it is.
    So you basically can have 1 backup for each snowmesh in the scene.

    Is that more or less what you had in mind?
     
    Last edited: Mar 15, 2013
  11. SimtropBuggi

    SimtropBuggi

    Joined:
    Feb 15, 2013
    Posts:
    98
    By the look of the blue tree shot in the OP it seems the mesh can be created with a wind factor. Is this correct?
     
  12. Steven-1

    Steven-1

    Joined:
    Sep 11, 2010
    Posts:
    471
    Yes,
    you can set the direction in which the snow falls.

    If you want to know more, check out the video I posted here,
    it shows all the current features and how to use it.
     
  13. Steven-1

    Steven-1

    Joined:
    Sep 11, 2010
    Posts:
    471
    >>> Version 1.2 now available on the Asset Store <<<

    New Features:

    - Save Load: Temporarily backup snowmeshes in order to quickly swap and compare the results of different Snowify settings. (1 backup for each snowmesh)

    - Snowify Terrain Tool: a new separate tool that paints snow on a terrain (with similar settings as the Snowify tool).
    $Window4SnowifyTerrain.PNG

     
    Last edited: Mar 17, 2013
  14. SimtropBuggi

    SimtropBuggi

    Joined:
    Feb 15, 2013
    Posts:
    98
    Cool! Can I get a video of the terrain snowify in action?
     
  15. ronan-thibaudau

    ronan-thibaudau

    Joined:
    Jun 29, 2012
    Posts:
    1,722
    No clue how it's done / how it looks in real time but those screenies look "damn cool"!
     
  16. Steven-1

    Steven-1

    Joined:
    Sep 11, 2010
    Posts:
    471
    yes you can:



    Please ignore the fact that the terrain isn't very good looking :), I had no usable terrain available when I made this video, so I just quickly made a new one.

    thanks,
    if you want more info, have a look at the video in the first post.
     
  17. EmeralLotus

    EmeralLotus

    Joined:
    Aug 10, 2012
    Posts:
    1,462
    Saw the Videos, look good. Would it possible to have a WebPlayer Version to test out the performance.

    Thanks.
     
  18. Steven-1

    Steven-1

    Joined:
    Sep 11, 2010
    Posts:
    471
    thanks rocki.

    sorry, no, there's no webplayer version.

    there are a couple of reasons why I haven't made a webplayer version;
    mostly because creating snow-meshes generally takes too much time to be used dynamically at runtime, depending on the settings and the original mesh, this can be anything between a couple of seconds and a couple of minutes.
    Also, because it's an editor extension, the interface is in the editor, so I would have to recreate the entire interface in the GUI.
    And also, I'm not sure a webplayer version would be as fast as it would be when used in the editor.
    So I don't really see much use for making a webplayer version to test the performance.

    However I do ofcourse understand you want to test it first.
    and I was thinking; a webplayer version where you could upload your own meshes to test how the snowify-snow would look, that might be pretty usefull.
    But that's just an idea I have now, I'm not even sure that's entirely possible.
    So I'm not promising anything yet, but I might make a webplayer version. (don't expect it all too soon though)
     
  19. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,408
    i'm interested, please reconsider doing webplayer. else it just sits on my list of things to possibly buy...
     
  20. MightyRabbit

    MightyRabbit

    Joined:
    Aug 8, 2012
    Posts:
    27
    We ended up buying this to aid in making a snow level for our game. It works incredibly well and saved our level designer a ton of time; however, we did end up having to modify Snowify's code to make it generate lightmap UVs. As is, the meshes generated by Snowify do not work with lightmapping. All things considered, this is well worth the purchase price.
     
  21. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,526
    yes light map uv's would be nice to see in an update
     
  22. Steven-1

    Steven-1

    Joined:
    Sep 11, 2010
    Posts:
    471
    Thanks, I'm glad you like it.
    As for the lightmap UV's, that's a great idea. I simply didn't think of that back when I made this, since I rarely use lightmaps in Unity.
    But it's actually quite easy to implement, so I'll definately make sure to include that in a future update.
    Thanks for letting me know.
     
  23. Steven-1

    Steven-1

    Joined:
    Sep 11, 2010
    Posts:
    471
    as promised:

    Update:
    version 1.3 now available


    New Feature:
    - Generate Lightmap UV: snow meshes can now be generated with lightmap UV in uv2, just like imported meshes.
    Bug fixes and improvements:

    - Fixed a bug causing snow meshes to have incorrectly connected triangles in semi-rare cases.
    - Decreased calculation time for creating snow a bit.
     
  24. Steven-1

    Steven-1

    Joined:
    Sep 11, 2010
    Posts:
    471
  25. bocs

    bocs

    Joined:
    May 9, 2009
    Posts:
    413
    Can you add an option for making the snow child objects?
    This would make it so if you move the object, the snow will move with it.

    Really just 3 lines of code...

    1. bool Var to hold status
    2. GUI check box
    3. Line to add as child

    I hardcoded it into Snowify::CreateSnow here...

    PHP:
                GameObject snow SnowCreator.CreateSnowObject(meshfiltersnowmaterialsnowDirRotationcutBelowHeightminHeightmaxAngleminZsmoothIterationsremoveCoveredModealongNormalextrudeAmountheightSegmentsbulgeFactorsubdivisionscloseBottomuvScaleCreateUV2unwrapParamprefixsuffix);
                
    snow.transform.parent meshfilter.transform;// Better if GUI check option was added...
     
  26. Steven-1

    Steven-1

    Joined:
    Sep 11, 2010
    Posts:
    471
    sure, no problem.
     
  27. gecko

    gecko

    Joined:
    Aug 10, 2006
    Posts:
    2,241
    This is a very handy tool, but I need to create snow meshes on a prefab, and then apply the changes so the snow-mesh is added to all instances. However, that doesn't work -- the instances lose the mesh. Is it possible to make that work?
     
  28. Steven-1

    Steven-1

    Joined:
    Sep 11, 2010
    Posts:
    471
    yes, there is a simple solution for that.

    You have to use the CreateMeshAsset tool (included in the Snowify package), to turn the mesh into an asset in your project, only then can you use this mesh in prefabs and other scenes etc.
    this is because by default these generated meshes are stored in the scene they're in, not as separate files in your project.

    It's very simple; just open the tool (Tools > CreateMeshAsset), select the snow meshes, and click on the big "Create Mesh Asset(s)"-button, it will store these meshes in the specified folder in your project (by default this is "Snowify/Meshes").

    as explained in the instruction manual in the Snowify package. :)

    This is what it looks like:
    CreateMeshAssets.PNG
     
  29. gecko

    gecko

    Joined:
    Aug 10, 2006
    Posts:
    2,241
    Perfect, thanks! I was looking at *some* documentation, but not that one.
     
  30. WILEz1975

    WILEz1975

    Joined:
    Mar 23, 2013
    Posts:
    375
    Is possible use this at run-time? Like when a snow emitter is on, the snow appear...
     
  31. Steven-1

    Steven-1

    Joined:
    Sep 11, 2010
    Posts:
    471
    While it is technically possible to use at runtime, it is not intended for that purpose, and as such it is generally way to slow to be used dynamically at runtime.
    It would be more efficient to create the snow meshes in the editor first, and then have them spawn in game.
     
  32. eric56379

    eric56379

    Joined:
    Mar 11, 2014
    Posts:
    89
    Does this work on the tree painter thing?
     
  33. Steven-1

    Steven-1

    Joined:
    Sep 11, 2010
    Posts:
    471
    I don't know what you mean by that.

    Snowify creates snow on meshes,
    if it's a mesh, Snowify can create snow for it.

    However, because you mention trees,
    the snow creation is not based on textures, only on the mesh data, so it will treat foliage meshes as dense meshes (ignoring texture transparency), and that can be undesired.

    Edit:

    If you are talking about Terrain trees,
    not directly no,
    but you can let it make snow for the tree prefab, and then add that snow to the tree mesh manually.
     
    Last edited: Nov 16, 2014
  34. Arkade

    Arkade

    Joined:
    Oct 11, 2012
    Posts:
    655
    Hi, @Steven 1

    First:
    Long time user of Snowify. It's great! Perfect for my game Snowman Scuffle.
    I use it to generate a snow mesh above something (like my shed and dead tree) then use UGT's Fracturing tool to pre-break it into chunks which I release when the supporting object is struck! Instant (mini) avalanche risk!

    Second:
    I just started using UnityVS (Visual Studio). Snowify is apparently built with Target Framework 4 which requires Editor assembly to be built with it too. (see error below)

    Show Details Severity Code Description File Line Project
    Warning The primary reference "SnowCreator" could not be resolved because it has an indirect dependency on the .NET Framework assembly "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" which has a higher version "4.0.0.0" than the version "2.0.0.0" in the current target framework. UnityVS.SnowmanScuffle.CSharp.Editor
    Error CS0246 The type or namespace name 'SnowCreator' could not be found (are you missing a using directive or an assembly reference?) Snowify.cs 34 UnityVS.SnowmanScuffle.CSharp.Editor

    Do you know how to permanently solve this?
    (I have a painful manual process that requires re-doing every compile: properties, change target framework, save, compile but as soon as I visit Unity Editor (or even before sometimes), it re-writes the project file and requires it be reloaded!).

    Thanks again :)

    EDIT: p.s. I just posted basically the same question to Unity Answers if you fancy points. I figure it's more a UnityVS issue than it is your asset's but it was an excuse to say thanks for the nice asset :)
     
    Last edited: Jan 3, 2015
  35. Steven-1

    Steven-1

    Joined:
    Sep 11, 2010
    Posts:
    471
    Hi Arkade,
    thanks for the praise.
    I've no experience with UnityVS, but it's possible I just made an error when building the dll, and in that case I can probably easily fix it by building it to the right Target Framework.

    Sorry for the trouble, I'll try to get it fixed as soon as possible.
     
  36. Arkade

    Arkade

    Joined:
    Oct 11, 2012
    Posts:
    655
    Oh! If it's as simple as that, yes please - it would be great to fix!

    I've worked around for now by having the editor assembly forced to 4 (see the Unity Answers link above). My fear: if the workaround has side effects, it'll be really tricky to resolve!

    Thanks.
     
  37. Steven-1

    Steven-1

    Joined:
    Sep 11, 2010
    Posts:
    471
    Sorry for the delay, I had meant to have fixed it by now, but the problem is that I had left the source files for the dll in a state I can't submit it (it contains unfinished code and experiments), and I haven't cleaned it up completely yet, I hope to have finished it tomorrow and I'll mail the new dll to you then.

    Can you send me an emailadres I can send it to? (you can email me at steven.craeynest at gmail.com)

    I'll be leaving on holiday this saturday morning, for a week, so unfortunately I won't be able to work on it next week (or even check my mail for that matter). So hopefully I have it all fixed tomorrow.

    I was wondering though, when/where exactly do you get that error? As I have tested it in Unity VS (in the lastest Unity version), and I can't get that error, it all seems to work fine.
     
  38. Arkade

    Arkade

    Joined:
    Oct 11, 2012
    Posts:
    655
    Ha, no worries. Been there, done that, cursed previous self for leaving in bad state ;-)

    E-mail sent. Thanks.

    I'm using "UnityVS 2015 preview" with "VS 1025 Ultimate preview". As I said, it could be a Unity VS issue... Or even a VS 2015 thing? Perhaps we should take this further in the Unity Answers post if it doesn't reproduce for you? What versions are you using?

    Have a great holiday and don't stress too much - I have a workaround and can wait. Relax on your hol! Thanks
     
  39. Steven-1

    Steven-1

    Joined:
    Sep 11, 2010
    Posts:
    471
    New update coming soon!
    No major changes, but some small improvements, and a Unity5 version.
    (though the current version actually already works in Unity5 as well)
     
  40. Steven-1

    Steven-1

    Joined:
    Sep 11, 2010
    Posts:
    471
    Update:
    version 1.4 now available


    New Feature:
    - Snow can automatically be set as child of it's source object.
    Bug fixes and improvements:
    - Fixed error when creating snow with Height Segments set to 1.
    - Created algorithm to improve the snow's look in some cases. (The snow had strange looking topology in some cases when created on top of hard edges with small normal difference.) And added the Soft Edge Angle parameter to control it.
    - Added Unity5 version.
     
  41. yeo1

    yeo1

    Joined:
    May 18, 2015
    Posts:
    3
    Do you have any recommended approaches for procedural mesh reduction to produce localized "melting" or localized "blowing away" of subsets of the mesh generated?
     
  42. Steven-1

    Steven-1

    Joined:
    Sep 11, 2010
    Posts:
    471
    There isn't really a direct solution provided for that in Snowify. I would advice to make a copy of the original mesh and cut out the parts that you don't want snow on, that should be easier (and provide a better result) than cutting out the parts of the generated snow.
     
  43. Micz84

    Micz84

    Joined:
    Jul 21, 2012
    Posts:
    451
    Is it possible to build snow in run time? I have some proceduralny generated assets like buildings, which are generated in run time and i would like to ad snow to them.
     
  44. Steven-1

    Steven-1

    Joined:
    Sep 11, 2010
    Posts:
    471
    it's not intended, but it is possible. (if you have some coding/scripting experience)

    You'd have to move the SnowCreator.dll out of the editor folder, and then you can call it from your own code at runtime.
    You can look at Snowify.cs for reference on what function you need to call and what parameters to pass.

    Though keep in mind that it's not really made for that and it will make everything freeze until it is done. (pun not intended)
     
  45. Livealot

    Livealot

    Joined:
    Sep 2, 2013
    Posts:
    228
    Is it possible to apply Snowify to Characters? If so, would be great to see some instructions or how-to video for that. I just imported Snowify into the latest 5.4 beta and the instructions there were pretty mangled.

    I was playing with the Golem pack in the UAS and tried using Snowify to create a Snow Golem, but ran into multiple issues so wanted to make sure it's possible.

    Some of the issues: unclear which game object(s) to snowify when working with complex avatars; really slow to snowify complex meshes; parenting issues; getting snow meshes to move with the body parts, etc.
     
  46. Liminal-Ridges

    Liminal-Ridges

    Joined:
    Oct 21, 2015
    Posts:
    256
    Hello, congratulations for your asset. Is it possible for the character to crouch through the snow or deform it by any way? So that the snow will look more volumetric.
     
  47. Steven-1

    Steven-1

    Joined:
    Sep 11, 2010
    Posts:
    471
    Hi VavylonaEntertainment, thanks for your interest but I'm afraid that's not currently supported. Snowify creates snow meshes, but there's no system included that allows you to dynamically deform these meshes.


    Hi Livealot, I'm sorry for not replying sooner, I hadn't noticed your post.
    This probably isn't of use to you anymore, but just in case:

    Snowify isn't intended for creating snow on moving skinned characters.
    Technically it can create snow meshes for them, but these meshes won't be skinned, and as such won't deform together with the armature.

    But it sounds like you just wanted a snow golem rather than a stone golem with snow on it, in that case I would advice to change the golem's materials instead.