Magic Shield VFX - Arcane Style Study
This project started as a style study based on the Netflix show Arcane, specifically Mel’s shield magic from S2E9.
The goal for this project was to create something more stylized and art directed than most of my recent work. I intended to rely less on randomization and technical setups and include more hand painted elements.
In the end, however, it ended up being more tech-heavy than expected - as you’ll see throughout this post. Despite this, I’m still very satisfied with the end result and my learnings from all of it.
Process & Challenges
Step one for most projects is gathering some good reference. This project being a style study made it rather easy to know where to look; I rewatched the final episode of Arcane and took a bunch of screenshots & GIFs of the various instances where Mel used her magic shields.
The main goal here was to get a clear idea of the various stages of the effect, especially the beginning; Arcane’s incredible impact frames really shine here.
It quickly became apparent to me that the main challenge on this piece would be replicating the shapes at the edges of the shield bubble; the flame-like motions in my reference feature clearly defined angles & arcs - a staple of 2D FX animation.
I needed to figure out how to achieve this look in a way that would work for real-time 3D VFX, where the effect will be visible for longer periods of time and from various angles.
For the main part of the effect, the bubble, I used a custom hemisphere mesh with circular UVs.
The first approach for this effect involved UV distortion using noises - a common technique in much of my work.
Here, however, it didn’t really work. The shapes it produced didn’t have the defined and bold shapes I was looking for, no matter what kind of noises I combined. A more purpose-built approach was needed for this.
I tried several approaches to somehow hand paint the effect, such as creating custom flipbooks. However, all of these methods proved to be too labour intensive for the scope of this project, and none of them saw meaningful integration.
Ultimately, it was the realization that the movement largely boils down to round holes appearing in the bubble that then grow as they move toward the edge, that brought me to my final implementation.
By moving subtractive circles/ovals over a circular mask, I could create an effect similar to the one in the show, whilst allowing it play infinitely, without having to create a massive flipbook.
I briefly considered doing this setup in HLSL inside the shader, but the continuous spawning of new shapes seemed like a bad fit for shader code.
I then landed on a setup using an additional Niagara system that spawns black particles on top of a white particle on top of a black background, to emulate a B/W mask. This is then captured in a render target, at which point in can be used in the main shader.
While using this Niagara + render target setup isn’t the most performance-friendly option, it ended up being a good fit for this use case, my available time, and skillset.
With this main challenge solved, completing and polishing the rest of the effect was more straightforward!
Adding spawn & erosion effects to the bubble, as well as wind-up and supporting particles, really pulled it all together into a neat gameplay effect. I also created an animation montage for the effect using animations from Mixamo, to provide some additional context and grounding.
A bit more time spent polishing the various elements later, I was done!!