Edit: Final video
Working with Godot 4.0.alpha to create a shield VFX.
I’m doing stuff mostly by eye, so I don’t have much reference to point at yet. My idea is to make a shield that works like a bubble, with its color changing over time. This could indicate a shield that is very effective at first, but becomes less effective over time (before fully disappearing).
This shield is self-emitting, so there’s a omni light attached to it. To improve the lighting appearance, a second omnilight is used:
Here’s what it would look like without the second light:
I’ve added a second layer on the shield (as a next pass to the shield’s material) to give some more thickness to it (click to view at full size):
The shield is given a more physical feel using particle attractors and collision:
I intentionally let particles appear below the shield (even if they’re not visible). This helps create a nice rim effect on the shield’s edges. This effect wouldn’t appear if I extended the collider all the way down.
Did you notice the shift in color tones? This is because of the animation; see below
Here’s a breakdown of the animation:
The shield lights up and expands.
The shield is fully deployed. It starts out with a yellow color.
Medium wear shield
Color changes towards purple. The shield’s size changes slightly during its lifetime to give the shield a more dynamic feel.
Worn out shield, about to disappear
Color is fully changed to purple.
The shell and its particles become smaller and are moved downwards at the same time. The shell also fades away by reducing its opacity.
Here’s how it looks like in motion:
I improved the animation at the end to make it look like a bursting bubble of sorts.
Full animation: - YouTube
I changed the shield shell’s texture to give it a more… shieldy feel. Godot 4 has a lot more noise options available in its procedurally generated NoiseTexture:
Here’s how it looks like in action:
And without the particles, to make the new texture more visible: