Spyro : Sketch #32 - Real Time VFX
9952 2.png

Hi there !

I can finally start working on this sketch! ~ Loot Crates ~

Update 3: Shader breakdown is here! Check below!

~ thumbnail gif ~

Here is my last video entry:


I created the scene and defined the mood of my sketch!

I created a simple custom lighting shader for Cartoony to create this scene (feels pretty empty for now, but I'll animate the islands and rocks and add more details).

So here is basically the plan:

it looks terrible

  1. A ray falls from the sky and brings out the monolith on the background island
  2. The Monoloth charges and shoots a high-speed projectile
  3. The projectile moves from the background to the main island (I have the timing for this in mind, it will be AWESOME)
  4. The projectile (it's the loot box) barely jumps on the island and stops in the middle with a fancy VFX
  5. The lootbox ends the animation with the opening (I know exactly how I'm going to animate it), with the vfx at the top of the post, and other fancy things : sparkles:

So I created the entire shader for my crossfade effects, which I will use for the Beam / Lootbox projectile / Grounding / etc:

Gif_CustomDissolve_Plane "data-base62-sha1 =" tNbcEqZjPyndrF6PZ8GuKdQd5HG "width =" 400 "height =" 389

Since the projectile / loot box / monolith are black, I wanted a fairly solid black VFX with only shiny edges (the color may change). This way I can use this type of resolution to change the loot box's cube shape during animations. I also created some test particles with this shader:

Gif_CustomDissolve_Circles "data-base62-sha1 =" cu4WDJuXWMXTAB8oCackIx9g5XT "width =" 508 "height =" 372
simply dissolve circles

some explosions / explosions when the cube collides with the island; The particles are also used in the projectile track

Gif_CustomDissolve_Burst_02 "data-base62-sha1 =" xSQaVNE0DwHwcaz6S7TpRKkZYoV "width =" 551 "height =" 364
another outbreak :Boom:

Shader breakdown

I've tried different approaches with steps, smooth steps, and even ramp textures to find something I like, and here's the one I ended up using:

– Step 1: main textures

First of all, I have two main textures that pivot at different speeds to achieve this "Liquid / Ghost / Blend" effect (for my effect, it's basically the same texture with different tiles).

I'm using a custom stream here that allows me to control the panning of the textures through a curve when using the shader for a particle system material. Really useful if you want a slower or accelerating panner effect without relying on the level / scene time (and having strange time manipulation artifacts for textures).

You can use a vertex to fragment the node after the panner just before the add node to optimize for this by calculating the UV work in the vertex shader. However, check that it looks good on your nets and that they are of sufficient density.

– Step 2: distortion

In order to give my flame / liquid / other liquids life and movement, I use a simple black and white distortion texture, which I reproduce from (0; 1) to (-0.5; 0.5), otherwise they only one axis is distorted (white pixels) and the black pixels remain static. I add this to my main texture UVs.

Step 3: UV2 mask

Now I mix my two textures together (on the screenshot I use a function with which I can choose which mixing mode I want to use in the material inspector) and multiply this with another texture, a mask used with the second UV set; So I can have different UVs for my main textures and this mask.

With the custom vertex current (CVS) 1, I can pan the mask through the particle system curves. CVS 2 is useful to change the final remapping of my mask, and I mainly use it to achieve a resolution effect with specific masks.

At the end of this step I have something like this:

Gif_Breakdown_01 "database 62-sha1 =" 4eXGyfrmCOoZ4Vzbs52ByD6n4uN "width =" 457 "height =" 457

Step 4: Smooth Steps

Now I have to create my mask with the blue border. I take my masked textures and take two smooth steps.

Smoothstep 1 is only useful for increasing the intensity of my edge (since it directly affects the basic input of my masked textures), while Smoothstep 2 is by far the most important one, as it is the mask for the black area and defines the edges . If both values ​​are set to 0.92, it looks like this:

Gif_Breakdown_02 "data-base62-sha1 =" 6mV0KEAXP4DLW7jpEGLjFDSKaGp "width =" 457 "height =" 457

When I play with the Smoothstep 2 values, I can have a smoother, thinner, or thicker edge. After that, I just have to adjust the intensity over the first smooth step and the color of my border. That's it ! 100% of the sketch effects were carried out with this shader or an additive variant, with a few other nodes such as depth blending (for mixing geometries), Fresnel, vertex color data etc.

-Bonus step: vertex offset

For some 3D meshes / VFX, I use vertex offset to create more organic shapes. This is a really simple setup, as shown below:

Do not hesitate if you have questions about the breakdown or if there is something I need to explain better! :Smile:

Old gifs:

First shader iteration
Gif_Lootbox_Opti "data-base62-sha1 =" 9SvtV6aVRf4NjJLxcd4piXKEgTZ "width =" 400 "height =" 377

Gif_Lootbox_02_Opti "data-base62-sha1 =" o6pxtxoElF2OxgtS8hMuJaR9qAm "width =" 500 "height =" 351
Some gradient tests

I love love squash and stretch!

Don't hesitate, as always, if you have any questions!
thank you for reading : Dragons:


Please enter your comment!
Please enter your name here