Search Unity

  1. If you have experience with import & exporting custom (.unitypackage) packages, please help complete a survey (open until May 15, 2024).
    Dismiss Notice
  2. Unity 6 Preview is now available. To find out what's new, have a look at our Unity 6 Preview blog post.
    Dismiss Notice

Breath of the Wild-Style Particles/Effects

Discussion in 'General Graphics' started by Mageinwhite, Mar 10, 2017.

  1. Mageinwhite

    Mageinwhite

    Joined:
    Nov 23, 2016
    Posts:
    2
    Hi all! I am developing a cel-shaded 3D game and I want to include some sort of cel-shaded style particles/effects. I really admire how beautiful of a game The Legend of Zelda: Breath of the Wild is, and I quite like the particles/animated effects that the game presents. How would I go about making particles that are of a similar style to most BoTW particles? That includes the fire, weapon hit particles, the effect when you get a spirit orb, elemental effects, etc.... Thanks for any help!
     
  2. dadude123

    dadude123

    Joined:
    Feb 26, 2014
    Posts:
    789
    Theres literally nothing special about them.
    What exact component do you find interesting? Maybe we can help more if we know what exactly you mean :)

    For the particle effects you don't even need a special shader, just the right textures.
    In BotWs case that's textures with very hard edges plus either an overlay with a strong blur or bloom as post processing (both will do the same thing but it depends on what other factors what you should use).

    From what I can see they don't use fancy displacement maps or distorsion shaders (and tbh I doubt you'd get a good quality with them either), but instead animated texture sheets. Especially visible in explosions and fire, those definitely use texture sheet animation.

    The spirit orb effect? Which one exactly there are many things going on when you get a spirit orb, you really need to post a screenshot or something :p
    Maybe even editted in paint with a red circle (I'm not even kidding)
     
  3. bgolus

    bgolus

    Joined:
    Dec 7, 2012
    Posts:
    12,366
    They are not (most of the time) using texture sheets. They're using an alpha erosion technique like this one:
    http://www.alkemi-games.com/a-game-of-tricks-iii-particles-fun-part1/

    Its a great technique for stylized effects as you can make very smooth animations with out needing a giant texture atlas. The downside is it can be very time consuming to author each texture (which I suspect is why every explosion in BotW looks like it's using the same base smoke shape). If you combine something like this with a normal map, and a 2D gradient look up texture you can get some really complicated looking effects using very little texture memory.
    See the second part of the above link for an example of using the gradient texture:
    http://www.alkemi-games.com/a-game-of-tricks-v-particles-fun-part2/

    Also see this page for an example from fallout 4, though in this case used in conjunction with a looping texture atlas animation:
    https://simonschreibt.de/gat/fallout-4-the-mushroom-case/
     
  4. ScottAllanArt

    ScottAllanArt

    Joined:
    Oct 17, 2017
    Posts:
    1
    As stated, it's not texture sheets, it's some basic shader tricks. The name of the technique bgolus mentioned above is "smooth step". That's what you can search for if you want more info on it. The smoke in BOTW was probably done using a smooth step material that was probably different from the diffuse, which is why it faded away in a swirly shape when the smoke itself wasn't really swirly. They may have also put a subtle flow or perturb on it to push the spiral even further as it faded.

    The fire probably isn't using a texture at all, it looks to be a result of shader math using Perlin noise and a fresnel to give each "tongue" of fire an interior gradient. How they get it to blow in the wind, though... is beyond me. :p
     
  5. bgolus

    bgolus

    Joined:
    Dec 7, 2012
    Posts:
    12,366
    Smoothstep is a simple polynomial function for adding some gentle ease in and out and clamping to a value range. It's even a built in function for hlsl and glsl.

    The technique I described is not directly related to smoothstep, though using smoothstep is an easy way to implement it. I personally don't use smoothstep for my erosion shaders.

    Fire is absolutely using a texture still. Just a panning noise texture and some displacement on top of a nice base texture. They're likely using a method similar to what's described here:
    https://simonschreibt.de/gat/stylized-vfx-in-rime/
     
  6. Iron-Warrior

    Iron-Warrior

    Joined:
    Nov 3, 2009
    Posts:
    838
    On the subject: I did a fire effect with just noise (no additional textures) that came out pretty good. Here's a reddit post I made about it. There's a some great noise functions in this thread (use the one at the bottom, since it fixes some issues). Learning how to use noise is a pretty great way to get into dynamic effects, since there's so much you can do. I also made a fun torch:

    Torch4.gif

    Also just a random thanks to @bgolus for helping out so much on this forum, learning shaders can be a pretty daunting task without solid resources.

    EDIT: Forgot to say, also made the dynamic twinkling star skybox with noise! Noise is the best!
     
    Last edited: Oct 18, 2017