Attack VFX 01

While making this project, I had a few goals in mind. The first one was to practice groundbreak simulations in Houdini,  the second one was to make texture transition shaders and the third one was to do some scripting and set up some VFX systems.

The animations and character models were taken from Mixamo, the greatsword was taken from the Asset Store package 'SciFantasy Sword Pack' which was created by RB.

Software I used:

Unity (2020.2.1f1) - for creating VFX, scene & rendering,

Adobe Photoshop - texture creating & editing,

Blender - 3D models,

Houdini - groudbreak simulation.

All of the effects were created with VFX Graph & ShaderGraph which were then rendered in High Definition Render Pipeline. 

GlowingSword.gif

For the glowing sword effect with trails in total 5 textures were used and one mesh.

tx2.png
tx3.png
tx4.png
tx5.png
tx1.png
tx6.png

For the textures to work I created a shader in ShaderGraph that would show and offset the noise textures that were then multiplied with a Frensel node to control their intensity.

tx6.png

+

tx2.png

x

tx3.png

=

Swordtextures.gif
Swordtexture2.gif

For the trasition effect, I used a gradient texture and a custom texture that I created in Photoshop. The transition helps to control the first appearance of the effect.

tx6.png

+

tx2.png

x

tx3.png

x

tx4.png

x

tx5.png

=

transition1.gif
transition2.gif

The noise strength and transition properties were then controlled with the Timeline feature to appear or disappear at the right times.

The simple spark effect & trail effect were created with VFX graph and just use one texture. 

tx1.png

=

swordsparks.gif
tx1.png

=

trailsgif.gif

For the the groundbreak part: 9 textures, 1 mesh and 1 mesh simulation were used.

groundbreakwhole.gif
tx7.png
tx8.png
tx4.png
tx9.png
tx10.png
tx12.png
tx13.png
tx14.png
tx15.png
lavalumpplane.png

For the crack textures to work, a specific shader was created in order to control the appearance of the textures, their colors, movement and strength. The crack textures were displayed on a plane and did not use any particle systems.

tx7.png

x

tx9.png

+

tx8.png

=

cracktextures.gif
crackstrength.gif

For the appearance of the effect a gradient texture was used.

(

tx7.png

x

tx9.png

+

tx8.png

x

)

tx4.png

=

cracktransition.gif
cracktransitionsh.gif

For the dissipation of the effect another noise texture was used.

(

tx7.png

x

tx9.png

+

tx8.png

x

)

tx10.png

=

smalldis.gif
bigdiss.gif

For the additional cracks the same shader was used but just with different textures.

tx12.png

x

tx13.png

=

cracksmolgif.gif
crackbiggif.gif

For the additional cracks dissipation the same noise texture was used just as for the main cracks.

tx12.png

x

tx10.png

=

crackdismol.gif
crackdisbig.gif

For the projectile a vertex offset shader was created so that the vertices could be moved with a texture according to the texture's colors. A custom mesh was also created for the lava lump so that it would have more cuts in it. The projectile itself was scripted so that it would have velocity once the effect is initiated.

lavalumpplane.png

+

tx14.png

+

tx15.png

=

lavalump.gif

The groundbreak simulation was created in Houdini and then exported to Unity. Essentially every part of the broken mesh has an individual bone that was animated. The weights of the broken parts differ at different parts of the simulation to imitate a stronger hit at the end. The animation speed was tweaked with Timeline.

houdinisim.gif
groundbreakgif.gif
impacthit.gif

The impact effect was created only with VFX graph and consists of 4 textures. The same impact effect was also used when the sword hits the ground but it was just scaled down.

tx16.png
tx17.png
tx19.png
tx18.png

To spice things up, camera shake was added along with point lights appearing at a certain time, also the enemy glows up once it is hit with a simple Fresnel shader 😉

 

While making this effect I also tracked my progress quite intensely,  below you can see the interations of the project.

As mentioned before, I had a few goals in mind while creating this project. The first one was to practice Houdini which I have rightly done so, I had a few difficulties but managed to get through them. The second one was to make texture transition shaders which was a bit of a new thing for me but I am so happy that I tackled this and got a few new techniques under my belt going forward. Finally, the third goal was to practice scripting and set up some VFX systems, which humbly said I rocked it, well, at least at the end of the project and not at the start 😁 This left me with a template VFX system project that I can reuse in the future! Without these goals there are plenty of skills that I sharpened and also learned some new tricks.

In conclusion, this was a pretty cool project to do. New skills learned, old skills sharpened. A big thanks goes to all of the people who gave me feedback, this allowed to pushed the project even further. Also a huge thanks to Denis Grigonis for the sound design that he did!