Spyro : Sketch #32

Hello !

Finally, I can begin to work on this sketch ! ~Lootboxes~

Update 3 : Shader breakdown is here ! Check below !

~thumbnail gif~


Here is my final video entry :


I’ve built the scene and defined the mood of my sketch !


I made a cartoony simple custom lighting shader to build this scene (feels quite empty for now, but I’ll animate the islands, rocks, and add more details)

So basically, here’s the plan :

it looks horrible

  1. There’s a beam falling from the sky, spawning the Monolith on the background island
  2. The Monoloth charges itself and shoots a high velocity projectile
  3. The projectile is travelling from the background to the main island (I exactly have the timing for this one in my head, it will be AWESOME)
  4. The projectile (it’s the lootbox) bounces hardly on the island and stops at the center with some fancy vfx
  5. The lootbox finishes it’s animation by the opening (I know exactly how I will animate it), with the vfx that are at the top of the post, and other fancy things :sparkles:

So I made the whole shader for my dissolve effects that I will use for the beam/lootbox projectile/grounding/etc :


As the projectile/the lootbox/the Monolith are black, I wanted to have a quite full black VFX, with only shiny edges (color will change, maybe). This way, I can use this kind of dissolve to modify the cube “shape” of the lootbox during it’s animations. I also made a few test particles with this shader :

simple dissolve circles

some burst/explosion, for when the cube will collide with the island; also, the particles will be used in the projectile trail

another burst :boom:

Shader Breakdown

I tried different approaches using steps, smoothsteps and even ramp textures to find something that I like, and here is the one that I used in the end :

-Step 1 : Main textures

First of all, I have two main textures that are panning at different speeds to give this “liquid/ghost/blend” effect (for my effect it’s basically the same texture with a different tiling)

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

You could use a vertex to fragment node after the panner, just before the “add” node to optimize this by calculating UV work in the vertex shader, but be sure to check if it looks good on your meshes, and if they have enough density.

-Step 2 : Distortion

To add life and motion to my flame/liquid/other fluids, I’ll use a simple black & white distortion texture that I remap from [0;1] to [-0.5;0.5] because otherwise it will only distort one one axis (white pixels) and the black pixels will remain static. I add this to my main texture UVs.

-Step 3 : UV2 Mask

Now, I’m blending my two textures together (on the screenshot, I’m using a function that’s allowing me to choose which blend mode I’ll use in the material inspector), and I 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.

Custom vertex stream (CVS) 1 is allowing me to pan the mask through the particle system curves, as well as CVS 2 is useful to change the final remap of my mask, and I’m mainly using it to make a dissolve effect, with specific masks.

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


-Step 4 : Smoothsteps

So, now I need to create my “blue edge” mask. I’ll take my masked textures, and will do two smoothsteps.

The Smoothstep 1 is only useful to boost the intensity of my edge (as it will directly affect the basic input of my masked textures), while the Smoothstep 2 is by far the most important, as it will define the mask for the black area and the edges. With it’s both values set to 0.92, it looks like this :


If I play with the Smoothstep 2 values, I can have a smoother, thinner or thicker border. After this, I just need to tweak the intensity via the first Smoothstep, and the color of my border. That’s it ! 100% of the sketch effects were done with this shader or an additive variant, with some more nodes such as Depth fade (for geometry blending), Fresnel, Vertex color data, etc.

-Bonus Step : Vertex offset

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

Don’t hesitate if you have any questions regarding the breakdown, or if there is something that I need to explain better ! :smile:

Old gifs :

First shader iteration

Some gradient tests


I freaking love squash and stretch !

As always, don’t hesitate if you have any questions !
Thanks for reading :dragon:


I can already feel the impact and gravity of those animations and effects! Can’t wait to see everything put together. :slight_smile:

1 Like

The dissolve shader looks so great ! it reminds me of shen rao in Battlerite,
any chance you share it with us ? :open_mouth:

1 Like

I’m in love with the shader and motions :heart_eyes:

1 Like

Thanks all :smile:

@Tayko Yeah I’m gonna do a little breakdown of my main shader (used in both the alpha blend dissolve & the additive effect) at the end of the contest, because currently it’s not definitive & not well organized

Never played Battlerite, but it looks satisfying ! I would love to see a game like that in PvE/hack n’slash


Wow! Looks really shiny! Awesome dynamic, w8 for final shot!

1 Like

Here is my final entry !

Finally, just before the deadline, phew !

Don’t hesitate if you have questions :stuck_out_tongue:


Wow! Finally a great job! Love timing’s

1 Like

I think this is my favorite of the bunch. The timings just feel really good and I wanted to see more than once! (which, for me, sounds like a job well done)

1 Like

Any eta on that shader breakdown? im really curious on how it was achieved

Hey !
I’ll post it tomorrow d:


Shader breakdown is here ! Don’t hesitate to ask me if you have any other questions ! :smile:


Thanks for the breakdown !
Question : You don’t use RGBA and use 4 differents textures for the effect ?

Thanks for the great breakdown and good job :clap::clap::clap:, just one small question which Amplify template are you using ?
Have a great day :smiley:

@JoanP Yeah, I could have used one texture object with 4 channels, but it would also sample the texture 4 times as I need each one to have it’s own UV data/channel; so I prefer to have 4 different texture inputs, it’s easier to tweak in the inspector if I need for example a different vertex offset noise, etc… So the optimization could be in the compression of the 4 different texture files, using crunch and maybe compressing only in R :stuck_out_tongue:

@Mursi Hey, this project was made on the legacy pipeline, so I use the unlit surface amplify template ! But if I had to work on URP, I would use the universal unlit template for sure :wink:


Ok i see. At least you’re using Vertex Stream to Scroll the texture so it’s ok.

1 Like

Hey, thanks for the answer, one last question in step 3 the multiply node at the end is going to 3 ways, one for each smoothstep and where’s the last one is going ?
Have a great day :slight_smile:

1 Like

@Mursi Actually it goes to 4 different ways, two of them are smoothsteps, and the two others are going to some unused properties and opacity :

As my shader was built from an existing shader that I used previously, there still is the standard particles properties that I don’t use at all in my sketch, except vertex color alpha & depth fade that are going to the opacity. So basically I just added a switch that goes directly in the emission input of my shader, where the smoothstep output is always selected.

Also, for the primary black/blue effects, I’m only modifying the soft particles factor (depth fade). The others opacity properties remains untouched. The vertex colors are only useful for the secondary additive blue effects that we can see during explosions, as I use the particle system color over lifetime to fade them. But you don’t need it for the primary effects :wink: and if you also don’t need soft particles, you only have to plug the textures blend output into the opacity.