Search Unity

[RELEASED] UniStorm 5.2 - AAA Volumetric Clouds, URP Support, Weather, Sky, Atmospheric Fog, & More!

Discussion in 'Assets and Asset Store' started by BHS, Jan 27, 2012.

  1. anunnaki2016

    anunnaki2016

    Joined:
    Jun 16, 2016
    Posts:
    93
    Need 3.0 is the time i think my friend :) @BHS
     
    Last edited: Jun 29, 2018
  2. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,762
    You are welcome. I will work on adding Community Ocean Shader support near or after the release of UniStorm 3.0.


    I'm working on it :) I want UniStorm 3.0 to be perfect and there are a couple features that are taking a little longer than expected. The 3.0 beta should be starting soon though which means it will be release a couple weeks after that. I can assure you it will be well worth the wait.
     
    anunnaki2016 and Rotary-Heart like this.
  3. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,762
    Hey everyone!

    Here's a video demonstrating UniStorm 3.0's Global Weather Shading for rain. The shader acts like Unity's Standard shader, but also includes options for global shading for both rain and snow. UniStorm will automatically detect said shader and accumulate weather shading when it's raining or snowing. Rain shading allows surfaces to get shinier, but only on surfaces no greater than 90 degrees. The inside of most surfaces will appear dry, such as inside buildings and roofs. The rain power that an object can receive can also be customized for each material. Snow, which will be demonstrated in another video, will function the same, but with accumulative snow shading. The snow texture, bump texture, and snow specular level can all be customized. When the weather is not raining or snowing, UniStorm will fade out the weather shading.

    Users can choose which weather types use weather shading by customizing their weather types. UniStorm supports an endless amount of user made weather types. Settings, conditions, and particle effects can all be customized for each weather type.

    Support for terrain shading with the top 3rd party plugins, such as CTS and MegaSplat, will come soon after UniStorm 3.0's release. However, the weather shading demonstrated with this video will be available with the release of UniStorm 3.0.

     
  4. crimsonmortis

    crimsonmortis

    Joined:
    Feb 21, 2016
    Posts:
    63
    Been trying to get Unistorm working with Usurvival. The player is spawned in at run time by the network manager and I am having some trouble.

    The weather effects stay where I was spawned at. I think I saw a script to have Unistorm weather follow the player so I think that will fix that.

    So no good autosetup options that I saw for the camera and when I try to do it manually I get graphic glitches. A unistom player controller that spawns at log in and when I join the server my player falls from the position of the Unistorm controller and takes damage without dealing any or attack/gun fire sounds.

    Would version 3.0 have a assign at runtime option by any chance?
     
  5. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,762
    I plan on adding UNET support after UniStorm 3.0 is released.

    There is example code included with the current version UniStorm that shows how to use UniStorm with a player created at runtime.

    UniStorm 3.0 will have a way to get a runtime player by either tag or gameobject name. There is also an option to delay UniStorm's initialization until the player is found. These features are all built-in and adjustable from the UniStorm Editor.
     
  6. MrG

    MrG

    Joined:
    Oct 6, 2012
    Posts:
    368
    Please step carefully with network support. There are lots of networking solutions and UNet isn't the best of them. If you can just make clear exactly what data might need be shared from server/host to clients so they all see the same thing, perhaps exposing a very light data structure that doesn't generate garbage and uses minimum bytes, that'd be great. Let us deal with getting that data delivered.
     
    Alex3333 likes this.
  7. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,762
    I totally agree. I haven’t had the chance to fully look into networking solutions/support for UniStorm. When I’m ready to start adding support, I will ensure it is not intrusive to users who do not need the feature. It will most likely end up being guides/tutorials on how to add network support with each network solution.
     
  8. crimsonmortis

    crimsonmortis

    Joined:
    Feb 21, 2016
    Posts:
    63
    I don't mind waiting on the network support just looking forward to 3.0!!!
     
  9. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,762
    Network support won’t be started until after the release of UniStorm 3.0. Good to hear! I’m hoping to have it finished by the end of July. :)
     
    RoyS and gearedgeek like this.
  10. gearedgeek

    gearedgeek

    Joined:
    Jun 19, 2015
    Posts:
    236
    I'm glad to see that there will be multiplayer support! Anyone updates on the release?
     
  11. SureSight

    SureSight

    Joined:
    Aug 2, 2013
    Posts:
    65
    Unistorm 3.0 is in Beta and they are hoping to release at the end of July
     
  12. greyforest

    greyforest

    Joined:
    Jun 25, 2015
    Posts:
    16
    @BHS Any SRP plan?
     
  13. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,762
    What specifically are you referring to with SRP?
     
  14. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,762
    Hey everyone,

    UniStorm 3.0 is just about finished. I'm hoping to have it submitted by the end of the week!

    There have been quite a few improvements since my last post. Below I will discuss some, but not all of the improvements/new features. :)

    Adjustable Moon and Sun Tilt
    The option to adjust the sun and moon tilt has been requested for some time. It is now possible to independently adjust the tilt of the sun and moon from -45 degrees to 45 degrees. This is to stop the sun and moon from being directly overhead and move closer to the horizon, if desired.

    A screenshot of a 4K resolution moon using UniStorm's moon tilt so the moon moves closer to the horizon.
    4K Moon.jpg
    Moon texture courtesy of Fadingsignal from NexusMods

    Moon Phase Improvements
    UniStorm's moon phase list now has an option to allow each moon phase to have their own moonlight intensity. This allows the new moon and crescent moon phases to give off less light than that of a full moon.

    MoonSettings.png

    Improved Weather Type Editor
    The Weather Type system and its editor have been improved and now have a lot more settings for customizing weather. Particle effects and sounds are not just limited to precipitation weather types either. All weather types can utilize nearly all settings allowing users to create any weather type imaginable.

    WeatherTypeEditor.png

    Weather Type Conditions
    Weather Type Conditions make weather types have to reach certain conditions for them to be generated from UniStorm's weather generator. These include conditions such as seasons and temperature. A "Special" weather condition has been added to exclude weather types from UniStorm's weather generator to allow weather types to only happen when called from a custom event or programmatically. This can be useful for certain quests or game events.
    WeatherTypeConditions.png

    Included Weather Types
    UniStorm will be released with 25 weather types each with unique settings, particle effects, and sounds. I am more than happy to take requests for more included weather types with future updates.
    • Blowing Leaves
    • Blowing Snow
    • Blowing Grass/Pine Needles
    • Blowing Pollen
    • Lightning Bugs
    • Clear
    • Mostly Clear
    • Partly Cloudy
    • Mostly Cloudy
    • Cloudy
    • Overcast
    • Foggy
    • Drizzle
    • Light Rain
    • Rain
    • Heavy Rain
    • Hail
    • Thunderstorm
    • Light Snow
    • Snow
    • Heavy Snow
    • Thunder Snow
    • Fire Rain
    • Firestorm
    • Dust Storm

    Proper Season Calculation
    UniStorm's seasons will properly calculate the season down to the day and allow users to choose either Northern or Southern Hemisphere.
    HemisphereOption.png
     
    Last edited: Jul 25, 2018
  15. wwg

    wwg

    Joined:
    Apr 2, 2014
    Posts:
    130
    @BHS - I'm looking forward to the new version...it looks great!

    Does anyone know the best way to setup ambient sounds that will play constantly for a given time of day?

    I have ambient forest sounds in the Sound Manager section, but they randomly and abruptly start/stop. It seems like Unistorm randomly picks one of the sounds in the list and plays it. This is fine for bird or cricket sounds, but not for an ambient sound that should always be playing (looping).
     
  16. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,762
    Thanks!

    This is happening because UniStorm v2 doesn't wait for the sounds to be finished playing before picking a new one once the generated seconds has been reached. The Sound Manger, now called Time of Day Sounds Settings, has been improved with UniStorm 3.0. It will wait for a sound, or music, to finish playing before picking a new one. This also allows users to pick music for each time of day and have it loop continuously, if desired.
     
    TheSeawolf likes this.
  17. wwg

    wwg

    Joined:
    Apr 2, 2014
    Posts:
    130
    The new sound features sound great.

    I think it will be useful to support a designated ambient/background sound (e.g. forest wind, rustling leaves, music, etc.) for each time of day (morning, day, evening, night), that would play/loop continuously. It would need a smooth fade between the times of day so that it's not noticeable or abrupt. Then allow for other sounds, just like you have now, to be played over the ambient sounds (e.g. birds, frogs, crickets, etc.).
     
  18. greyforest

    greyforest

    Joined:
    Jun 25, 2015
    Posts:
    16
    @BHS SRP means Scriptable Render Pipeline。I want to use the default Lightweight render pipeline in my project,almost there,except a litte few shaders, unistorm included.
     
  19. Harekelas

    Harekelas

    Joined:
    Feb 3, 2015
    Posts:
    864
    Is volumetric clouds on the roadmap?
     
  20. RoyS

    RoyS

    Joined:
    Jan 12, 2009
    Posts:
    664
    and volumetric fog?
     
  21. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,762
    These are both features I'm certainly considering in the near future.
     
    RoyS likes this.
  22. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,762
    I am pleased to announce UniStorm 3.0 has been submitted and is awaiting approval!
    E43EB62D-C1A5-4033-BE59-73CC40884BE0.png
     
    Last edited: Jul 29, 2018
    Hitch42, C_p_H, RoyS and 10 others like this.
  23. Harekelas

    Harekelas

    Joined:
    Feb 3, 2015
    Posts:
    864
    Great! And how does unistorm handle ambient light? Does it use reflection probes or other methods? And can it be used in linear color space, or gamma space only?
     
  24. SSL7

    SSL7

    Joined:
    Mar 23, 2016
    Posts:
    349
    @BHS OMG. My mind blown away, this changed my game completely after the update, I can't thank you enough for this giving it free for old purchasers :) getting some errors and will get into them later, for now I m going to play around with the settings :)

    edit: ok need a functionality I had tho :D and this is unistorm working with cts weather manager for snow/rain :)

    and one of the errors:

    Material doesn't have a color property '_Color'
    UnityEngine.Material:get_color()
    <LightningCloudsFadeSequence>c__Iterator2:MoveNext() (at Assets/UniStorm 3.0/Scripts/System/UniStormSystem.cs:1655)
    UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
    UniStormSystem:TransitionWeather() (at Assets/UniStorm 3.0/Scripts/System/UniStormSystem.cs:1387)
    UniStormSystem:ChangeWeather(WeatherType) (at Assets/UniStorm 3.0/Scripts/System/UniStormSystem.cs:1259)
    WeatherTypeByTrigger:OnTriggerEnter(Collider) (at Assets/UniStorm 3.0/Scripts/Examples/WeatherTypeByTrigger.cs:15)
     
    Last edited: Jul 30, 2018
  25. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,762
    Ambient light is controllable for all times of day. Both the Gradient and Color options can be used. The Skybox option can be used if all objects are baked with Global Illumination. It can use Unity's reflection probes for reflecting the sky. It can be used in Linear Color Space.


    Great to hear :)

    What errors are you having, if they are related to UniStorm?

    Yes, CTS support is a top priority. I already have most the code to do so. I just wanted to get UniStorm 3.0 released. It will come with the next update. :)
     
  26. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,762
  27. SSL7

    SSL7

    Joined:
    Mar 23, 2016
    Posts:
    349
    Glad to hear about CTS support :) about the errors, the most common I get very often:


    Material doesn't have a color property '_Color'
    UnityEngine.Material:get_color()
    <LightningCloudsFadeSequence>c__Iterator2:MoveNext() (at Assets/UniStorm 3.0/Scripts/System/UniStormSystem.cs:1655)
    UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
    UniStormSystem:TransitionWeather() (at Assets/UniStorm 3.0/Scripts/System/UniStormSystem.cs:1387)
    UniStormSystem:ChangeWeather(WeatherType) (at Assets/UniStorm 3.0/Scripts/System/UniStormSystem.cs:1259)
    WeatherTypeByTrigger:OnTriggerEnter(Collider) (at Assets/UniStorm 3.0/Scripts/Examples/WeatherTypeByTrigger.cs:15)
     
  28. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,762
    What version of Unity are you using? Have you used properly used the Player & Camera Settings so your player can properly be found?

    Can you please provide steps as to how I can recreate the issue?
     
  29. SSL7

    SSL7

    Joined:
    Mar 23, 2016
    Posts:
    349
    Unity 2018.2.1f1 and using the "use runtime delay" because my player is instantiated in the scene and everything seem to work fine (all the effects/weather etc.)

    another "problem" that I have now that I m migrating is that I can't find a DisableParticleEffects function like in unistorm 2, I used that to stop all rain/snow/sounds etc. when entering dungeons.
     
  30. Baum_Joshua

    Baum_Joshua

    Joined:
    Oct 5, 2013
    Posts:
    25
    so this is probably a dumb questions but since upgrading to version 3.0 my character no longer starts at the spot i chose before. now it is starting somewhere else and under my terrain. anyway to change this?
     
  31. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,762
    Alright, so the problem is the WeatherTypeByTrigger script. It’s trying to set the weather before UniStorm is initialized. This script is used to demonstrate programmatically switching the weather so it doesn’t have to be used. Here's an update version that will wait for UniStorm to initialize before trying to change weather.
    Code (CSharp):
    1. using System.Collections;
    2. using System.Collections.Generic;
    3. using UnityEngine;
    4.  
    5. public class WeatherTypeByTrigger : MonoBehaviour
    6. {
    7.     public WeatherType m_WeatherType;
    8.     public string TriggerTag = "Player";
    9.     UniStormSystem m_UniStormSystem;
    10.  
    11.     void Start()
    12.     {
    13.         m_UniStormSystem = FindObjectOfType<UniStormSystem>();
    14.     }
    15.  
    16.     void OnTriggerEnter(Collider C)
    17.     {
    18.         if (C.tag == TriggerTag && m_UniStormSystem.UniStormInitialized)
    19.         {
    20.             m_UniStormSystem.ChangeWeather(m_WeatherType);
    21.         }
    22.     }
    23. }
    UniStorm’s particle effects can be disabled by simply finding a reference to the UniStorm Effects game object and disabling it. This game object is what holds all of a player’s particle effects.

    I wrote a script that allows you to enable or disable UniStorm particle effects when entering a trigger collider. You can control whether the particle effects are disabled or enabled by setting the ControlEffects enum to enable or disable. When an object with the tag "Player" hits the trigger, it will control the weather effects depending on the ControlEffects enum. This will also not initialize until UniStorm is initialized. Your collider needs to have Is Trigger set to true and either the player or the collider will need to have a RigidBody for this to work properly.

    Code (CSharp):
    1. using System.Collections;
    2. using System.Collections.Generic;
    3. using UnityEngine;
    4.  
    5. public class DisableWeatherByTrigger : MonoBehaviour {
    6.  
    7.     public string TriggerTag = "Player";
    8.     public ControlEffectsEnum ControlEffects;
    9.     public enum ControlEffectsEnum
    10.     {
    11.         Disable,
    12.         Enable
    13.     }
    14.     GameObject WeatherEffects;
    15.     UniStormSystem m_UniStormSystem;
    16.  
    17.     void Start ()
    18.     {
    19.         m_UniStormSystem = FindObjectOfType<UniStormSystem>();
    20.         StartCoroutine(WaitForInitialization());
    21.     }
    22.  
    23.     IEnumerator WaitForInitialization ()
    24.     {
    25.         yield return new WaitWhile(() => !m_UniStormSystem.UniStormInitialized);
    26.         WeatherEffects = GameObject.Find("UniStorm Effects");
    27.     }
    28.  
    29.     void OnTriggerEnter (Collider C)
    30.     {
    31.         if (C.tag == TriggerTag && ControlEffects == ControlEffectsEnum.Disable)
    32.         {
    33.             WeatherEffects.SetActive(false);
    34.         }
    35.         else if (C.tag == TriggerTag && ControlEffects == ControlEffectsEnum.Enable)
    36.         {
    37.             WeatherEffects.SetActive(true);
    38.         }
    39.     }
    40. }
     
  32. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,762
    UniStorm doesn't alter your player's position. If your player is created at runtime, you should use the "Get Player at Runtime" option. If you are upgrading from the older version of UniStorm, you need to completely remove it from your project and reimport it. UniStorm 2.0 and its components are not compatible with version 3.0.
     
  33. Baum_Joshua

    Baum_Joshua

    Joined:
    Oct 5, 2013
    Posts:
    25
    Thank you that fixed it. I also noticed the clouds seem to be moving through the trees when they shouldn't be? is that due to a setting? I have the unistorm set to default settings
     
  34. wwg

    wwg

    Joined:
    Apr 2, 2014
    Posts:
    130
    @BHS (or others) how is the performance of Unistorm v3 compared to the previous version? Before I import it into my project I'd like to know if there is any noticeable difference?
     
  35. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,762
    Strange, I’ve tested UniStorm with both SpeedTree and Tree Ceator trees with no issues. What kind of trees are you using? Can you please post a screenshot so I can see what’s going on?


    There should be a noticeable difference. I have also had a beta tester comment on the noticeable improvements with performance.
     
  36. wwg

    wwg

    Joined:
    Apr 2, 2014
    Posts:
    130
    OK. I was concerned the new version might have lower performance than the old version. Sometimes new assets add more features at the cost of performance. I've had really great performance with the old version on my low-end PC, so even if 3.0 performance is the same I'll be happy. Thanks!
     
    Last edited: Jul 31, 2018
  37. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,762
    UniStorm 3.0 was rewritten with performance in mind. It has improved performance, but is also improved graphically and with added functionality. From my tests, UniStorm 3.0 performs better compared to UniStorm v2.
     
    JasonCG, AndyNeoman and wwg like this.
  38. SSL7

    SSL7

    Joined:
    Mar 23, 2016
    Posts:
    349
    Performance improvement of UniStorm 3 compared to 2 is like 20-30% in a heavy 3D world. :)
     
    AndyNeoman likes this.
  39. Baum_Joshua

    Baum_Joshua

    Joined:
    Oct 5, 2013
    Posts:
    25
    Here are 2 screenshot that show this. at first i though it was due to the terrain size since I have a large world I am working on however this is occurring no matter the size. my trees are all tree creator trees.
     

    Attached Files:

  40. AndyNeoman

    AndyNeoman

    Joined:
    Sep 28, 2014
    Posts:
    938
    Quick question. Are people removing the old unistorm or just updating leaving in the project?

    And are all settings carried over/saveable?
     
  41. SSL7

    SSL7

    Joined:
    Mar 23, 2016
    Posts:
    349
    remove everything, this is a complete new project
     
    AndyNeoman likes this.
  42. AndyNeoman

    AndyNeoman

    Joined:
    Sep 28, 2014
    Posts:
    938
    Thanks for the heads up.
     
  43. AndyNeoman

    AndyNeoman

    Joined:
    Sep 28, 2014
    Posts:
    938
    Is there a list of changed methods anywhere?

    My scripts use unistorm features such as currentRainIntensity?
     
  44. franky_li

    franky_li

    Joined:
    Aug 8, 2016
    Posts:
    163
    Where are the sound settings? Where can I route sounds to the mixer or make them looping? Could not find anything like this:(

    Is there any event when it starts raining? I use MicroSplat with the wetness modul and could make the whole terrain wet.
     
    Last edited: Jul 31, 2018
  45. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,762
    That seems to be related to the render queue of the cloud material. Go to the cloud dome and the cloud material on it and set its render queue to 2900. That should fix your issue. I'll fix this with the next update.


    I will have a list of changes soon. Some variables will be added with the next update. currentRainIntensity is no longer present because of the move to modular based weather. What will be added in its place is a global precipitation variable. This can be accessed to be similar to the rain intensity and will only be control during rain based weather types. The global weather shading is controlled for each weather type.

    You can access the current weather shading using the following:
    Code (CSharp):
    1. //UniStorm's current rain shading
    2. Shader.GetGlobalFloat("_WetnessStrength");
    3. //UniStorm's current snow shading
    4. Shader.GetGlobalFloat("_SnowStrength");
    ShaderControl.png


    The sound settings are under the Time Management tab and control the tone of day sounds. Time of day sounds are sounds that can randomly play for each time of day. They can’t be set to loop but if you set the minimum and maximum time to 0, it will seamlessly play sounds.

    UniStorm doesn't have events yet, but it has a global weather shading variables for controlling its wetness and snow shading. You can use this to control the shading of MicroSplat.

    If MegaSplat's shader use a value between 0 and 1, you can use UniStorm's global weather shading variables' values using:
    Code (CSharp):
    1. //UniStorm's current rain shading
    2. Shader.GetGlobalFloat("_WetnessStrength");
    3. //UniStorm's current snow shading
    4. Shader.GetGlobalFloat("_SnowStrength");
     
    AndyNeoman likes this.
  46. SSL7

    SSL7

    Joined:
    Mar 23, 2016
    Posts:
    349
    that fixed the first error, but this one keeps coming:

    Material doesn't have a color property '_Color'
    UnityEngine.Material:get_color()
    <LightningCloudsFadeSequence>c__Iterator2:MoveNext() (at Assets/UniStorm 3.0/Scripts/System/UniStormSystem.cs:1650)
    UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
    UniStormSystem:TransitionWeather() (at Assets/UniStorm 3.0/Scripts/System/UniStormSystem.cs:1387)
    UniStormSystem:CheckWeather() (at Assets/UniStorm 3.0/Scripts/System/UniStormSystem.cs:1241)
    <HourlyUpdate>c__Iterator1:MoveNext() (at Assets/UniStorm 3.0/Scripts/System/UniStormSystem.cs:1085)
    UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
    UniStormSystem:Update() (at Assets/UniStorm 3.0/Scripts/System/UniStormSystem.cs:962)
     
  47. AndyNeoman

    AndyNeoman

    Joined:
    Sep 28, 2014
    Posts:
    938
    That actually works better as uber/rtp and my vegetation all use global floats for the shaders so I can just use Unistorm's to drive the rest of my games wetness. Thanks.
     
    BHS likes this.
  48. Baum_Joshua

    Baum_Joshua

    Joined:
    Oct 5, 2013
    Posts:
    25
    @BHS thanks for the fix. that worked.
     
  49. Baum_Joshua

    Baum_Joshua

    Joined:
    Oct 5, 2013
    Posts:
    25
    so I have another questions regarding the clouds. so I am trying to add a lens flare to the light source however when i add the flare it shines through the clouds IE: I still see the flare on an overcast day. Any ideas on how i can resolve that?
     
  50. Wurlox

    Wurlox

    Joined:
    Nov 1, 2015
    Posts:
    50
    I really like Unistorm 3.0 - the Sunsets look awesome.
    unistorm3_lux-water1.PNG
    unistorm3_lux-water2.PNG

    One question regarding fog. Maybe I am missing something but even though I increased the fog density for my weather it doesn't seem like there is more fog. Sometimes it just takes a lot longer before more fog is visible but it never reaches the exact value from the weather type.

    Could you talk a bit about how the fog is implemented?

    Thanks and regards,
    Wurlox