top of page
2024-04-05 13_19_31-Window.png

Poison Spit VFX
Unreal Engine 5

tga_logo_black (1)_edited.png
FILIP KULL

I wanted to challenge myself by creating an in-game effect that involved fluids. For reference I looked at the games from the studio “FromSoftware Games”.

tga_logo_black (1)_edited.png
LIQUID SIMULATION
tga_logo_black (1)_edited.png
HAND-DRAWN PARTICLE
tga_logo_black (1)_edited.png
WARPED MESHES

SETUP

This project involves two actors.

  • The ball that shoots the projectile.

  • The projectile itself.

2024-04-07 07_30_06-KittyBoom - Unreal Editor.png
launch code
2024-04-07 08_58_28-BP_PoisonLauncher.png
2024-04-07 07_31_40-KittyBoom - Unreal Editor.png
Projectile code
image.png
image.png

Of note, I rotate the projectiles rigid body along it's velocity and reference that to rotate the Trail Niagara system.

This is important later when we talk about the trail

TRAIL

Trail_11.gif

This trail effect is made up of two emitters.

The bright green one is velocity aligned with its velocity cone angled towards the "SpawnDirection" variable that the projectile actor updates every frame.

image.png

This way the trail is constantly angled along the projectiles trajectory.

trail.gif
3.png
3.jpg

This is one of four hand-drawn textures which are baked into one texture on each color channel.

2024-04-07 11_54_08-m_poison_03.png
trail 2.gif
Smoke_03.png

The more subtile part of the trail effect is compriced of a rain of particles with a texture from substance desginer.

Impact

tga_logo_black (1)_edited.png
FILIP KULL
impact_02.gif

Liquid simulation

Houdini

To create a convincing viscous liquid I decided
to challenge myself and use an unfamiliar program, Houdini 

You are seeing a flip book texture that I rendered out in houdini and animate through the material in Unreal.

The flip book has all PBR render channels baked in so it was only necessary to sample one texture.

image.png
image.png
Houdini breakdown
image.png

First I set up the geometry that the simulation will use to create new geometry with.

Here I also set the initial scatting.

2.png
image.png
houdini_04.gif

Next, Houdinis flip solver node takes this initial geometry and scattering to create new geometry and calculate where each point should go next.

For example, this is where I

would set the "viscousness"

of the simulation

houdini_02.png
image.png
houdini_05.gif

After that, adding a "particle fluid surface" node adds a surface between the particles.

It is then possible to give the surface a material with the "quick material" node.

houdini_03.png
image.png
houdini_06.gif

To create flat textures for the flip book a plane is projected onto.

Most of the heavy lifting is done by the "maps baker" node.

houdini_04.png
image.png
image.png

Finally, with the textures from every frame rendered out I use of the mosaic node to create 

a flip book that can be rendered out to a texture.

Here I bake all the channels

into one texture for Unreal to sample all in one go.

houdini_05.png
image.png
NIAGARA
BREAK DOWN
impact_02.gif
image.png

Houdini simulation.

image.png
impact_03.gif

Hand-drawn texture that erodes

impact_04.gif
image.png

Hand-drawn textures that erode.

These are offset by world position

to give them a wavey look.

( only visible in use )

impact_06.gif
image.png

Mesh made in Maya, texture in substance designer, and offset by world position for another layer of variance.

This gave the effect as a whole a lot of volume.

impact_05.gif
image.png

Hand-drawn textures.

Complements the decal well to

make it seem like the liquid is

acidic and erosive.

Decal
decal_01.gif

The decal is a hand-drawn texture.

 

Decal_01.png
Decal_02.png

I have learned the most from this project.

Between the dabbling in Houdini to the

creative little nuances in each emitter 

I have expanded my toolset immensely.

If I hade more time I would like to 

have to learn Houdini.

There is so much untapped potential and

I have only skratched the surface.

FULL EFFECT.gif

“I am part of The Game Assembly’s internship program. As per the agreement between the Game Industry and The Game Assembly, neither student nor company may be in contact with one another regarding internships before April 23rd.

Any internship offers can be made on May 6th, at the earliest.”

bottom of page