Senior VFX Artist Perik Blivet talked about his work on Path of Exile and Ascent, discussed using Unreal Engine in production, and explained how and why the Baltic VFX content pack was created.
Hi, I'm Perik Blivet, Senior VFX Artist originally from Rennes, France, I have been in the game industry for about 8 years now. I studied traditional arts, then technical art, then took a turn, and ended up getting a degree in game design. So I started out as a game designer working on some smaller projects, usually on teams that did not have the size and means to have a dedicated tech or FX artist. Being from an artistic background, and interested to learn new things, I started filling in for the missing roles, and that's how I got my hands on the particle system tools in various engines. I remember thinking back then "this is really fun. I could see myself doing it full-time". And little did I know...
Getting Into VFX
One day I saw a post on social media from a person who was working at Grinding Gear, the makers of Path of Exile. They were very actively looking for VFX artists, and so I took my chance. I got a reply back the next week from the Art Director, asking to see some portfolio content. All the FX work I had made until then was unreleased (and honestly not too brilliant as a self-taught beginner!) so, long story short, I took a couple of days off before the next weekend, installed UE4, and spent 4 days figuring out Cascade until I had just enough effects to make a small showreel video. My knowledge of the tools was obviously very lacking, but I had a good grasp of animation, composition, and color theory. When I sent my results, they were interested enough that they asked to see more content. I took a few more days and then sent a longer video. I got an offer. Suddenly I was a Junior VFX Artist, and starting my career by quitting my job and moving all the way to New Zealand with no plan B.
The next 3 years I spent working on PoE and learning all the ropes from the excellent artists I was lucky enough to work with. This was an invaluable experience and played a huge role in bootstrapping my career and my technical knowledge. Working on VFX in this engine for a few years was really unique and interesting, and really solidified my love for tech art and FX.
Using Unreal for Ascent
When I eventually left New Zealand looking for new horizons, I started looking at jobs and got an offer to work on an upcoming title on UE4. This was the Ascent, my first full-time Unreal job, and another great learning experience for me. I feel like working in Unreal for personal projects (as I had until then) versus for a "real" commercial release is a completely different experience. That project was a great opportunity for me to learn more about the UE pipeline, the profiling tools, Blueprint... and to dip my toe in Houdini and in the then very new Niagara toolset.
It took me some time to fully make the switch to Niagara as it was still very much experimental, but now I am absolutely in love with it, and with the design philosophy behind it. I feel very empowered and excited by working with Niagara, and I feel like the quality of my assets has gone up as a result. And to wrap up my story, I am now a senior FX artist with 7 years of VFX experience, still working in Unreal at Wizards of the Coast's game studio Tuque, in Montreal, Canada.
I always start by assessing what exactly is required in terms of reusable assets vs bespoke work. After the first few months working on a project, I usually have a solid enough existing base of materials and emitters already existing, that maybe 60% of the work can be done by copying something from an existing asset and doing minor tweaks. You know, a flash and a shockwave are pretty much the same starts for every explosion or impact effect. A trail for a sword swipe becomes a different trail somewhere else with different color ramps and settings. This way, I can focus most of the time on the really interesting part, which is the more bespoke bits that are needed for each specific asset.
I often will make a couple of key sketches and notes about my intention for the asset, then a to-do list, and then start working on whatever materials will be needed. Then I iterate in Niagara until I have a prototype for designers or art directors to look at. I take the feedback, loop around a few more times, and there we go, a brand new asset.
I try to build my own little pipeline of tools and asset parts that are versatile enough to reuse in a lot of cases. This is why the same asset that can take several days to make in the early stages of a project, takes only a few minutes if you do it a few months later when you are really settled into the project and have your materials and emitters already set up. A huge part of speeding up the process is also material functions. In the same way, as I often make materials with the intent of keeping them modular and flexible, if I make a piece of the graph that seems useful as its own reusable bit, I will usually make it into a material function so I never have to redo it from scratch. This also allows me to improve it across the board if I find a flaw or a possible improvement I can do on this specific piece of math. Material functions and modular work have been a major part of making my workflow efficient, in every single VFX job I have had.
The Baltic VFX pack did not start with the intent of selling it on the marketplace, but more as a resource for myself to concentrate and improve my own tools in this small separate side project/tools library. I wanted to take all the most useful shader techniques I had learned in my years working in VFX and make them into a super usable kit that would help me never spend unnecessary time figuring out details when I want to spend that time focusing on getting the results "perfect".
I have to thank many people for all the interesting tricks that went into making this. Fellow tech and VFX artists I worked with, people from the various online VFX communities, even my father, an engineer, who took the time to sit with me and figure out the 3D math for some of the more "exotic" techniques I have in there. The "Fx_FakeVolumetric" node in my functions pack is basically all him! I don't know if we did advance the state of the art on anything, but it sure was a fun exercise. I also collected a lot of knowledge from breakdown videos online and just watching other people solving these interesting issues in their own work.
So it grew into a more intensive thing, as all this research went into refining and improving all these very useful little things such as alpha erosion, vector math tools, different flowmap techniques, dripping water and ripples, iridescent reflections, etc... All these things are time-consuming to do from scratch, and can sometimes take a bunch of RnD to refine into a very useful tool with just the right amount of flexibility that it is both simple to use and fits any possible use case.
Soon, my coworkers were asking to get a copy of the project, giving me feedback on it, I started using and testing the functions at work and in my own projects more and more, and I thought "there are definitely people out there who can use this".
So I changed my angle a little bit and wanted it not only to be a pack of very useful tools, but also a source of information about all the techniques that go into these effects, which are widely used but not always fully understood. I made my graphs fully commented in great detail, so that anyone who wants to understand what goes on under the hood, can just open the example materials or the functions themselves and read all about it. There are many ways you can achieve UV distortion effects/alpha erosion/vector operations / etc, but which one is the most appropriate for my use case? What is the performance cost on the console? Which one will give me the best results? What if I want to do it in under a minute? I try to answer all these questions for the beginner artist or the experienced pro who wants to dig deeper.
My overall goal is to cater to both people who already know most of this stuff (or who don't need to know) and want it for convenience, and to the absolute beginner who has no idea what they are doing in the material editor and just want to make their first shader FX. I want it to be as exhaustive and in-depth as possible in breaking down the techniques inside, but also completely plug-and-play and usable with almost zero set-up time and effort. This is why almost all of the parameters are completely optional to use, and I have tried my best to make the "default" behavior of each node something that will already fit many use cases.
Do you want to add a layer of dirt to this surface? Just plug Fx_AddDirt and tell it which color you want your dirt and how much of it. Or don't tell it anything, and it will take its best guess. And you're done! The same goes for the more complex shader animations, for teleporting objects around in a cool way or making them disappear with a dissolve effect. You give it a target location, an animation value from 0 to 1, and let the node do the heavy lifting. If you wonder what something does, you have every parameter commented with informative tooltips and an example material with my full thoughts on every single function. What I want is for this pack to make cutting-edge, AAA quality effects, accessible to the laziest and/or the most beginner artists who really just want to focus on the result and not on the technical research, or are just lacking the time and knowledge to get there at the moment.
Caustics that look natural and juicy are hard to get right without really simulating it. They either take a lot of tweaking to get it right or get really expensive to make procedurally. So I did a lot of tweaking so no one else has to! My caustics are texture-based, so they cost a few texture samples for both the base texture (which I made by hand) and the flowmap (which I also made by hand specifically for this). It has two octaves of this same texture panning and being distorted, which are then fed into a node from the pack which is called Fx_RGBShift and creates subtle chromatic aberration. Chromatic aberration, the effect which separates the R G and B channels of the texture, goes a long way into simulating the subtle diffraction that happens at the crest of waves in clear water. This really makes the whole thing pop and makes it very pleasing to the eye. Then I am using a panning mask which is there to create these small, pingy, high-brightness variations using a (clamped) Power node.
VFX is definitely a very unique field of work. I feel like many artists, while they appreciate the animation and composition aspects of it, are a bit weirded out by the very technical feel of working on materials and particle systems, and prefer to stay away from it as much as possible. They might feel like it's one of the least "artistic"-feeling sides of game art when you compare it to sculpting high poly meshes or painting textures by hand.
It's also a field that evolves extremely fast and constantly, so technical knowledge is quickly made outdated or redundant by whatever the next-gen has to offer. This can be very off-putting if you want your focus to be 100% on your art practice and sharpening your eye for art theory.
On the other hand, people who are more programming-oriented often feel they lack the confidence in their artistic eye to produce any good results, and it can be very overwhelming for them. It can be very daunting for sure when you look at the amount of knowledge required in fields that are generally regarded as "opposite" sides of video game production. We are here to produce art assets, sure, but also to bridge that gap.
I feel like a lot of people sort of stumble into it by chance, either trying to get into games from the film industry or like me, just got pushed around by the necessities of shipping projects and ended up falling in love with it.
For me, a major aspect of producing cutting-edge art for games is the healthy collaboration between technical art and programming. More often than not, VFX artists are the ones dealing with most of the internal homemade tools and systems for controlling and implementing interactive art assets. There has to be a balance of what is most efficient for artists to work with, and what is most "safe", manageable, and performance-friendly on the code side. VFX artists are usually some of the people most involved in trying to improve the internal pipeline for producing assets in a project, and this in itself is worth an article of its own! Definitely a side of the job which surprised me at first (and scared me a little) but ended up being one of the most interesting parts, as you are trying to solve issues relating to all sides of a project's aesthetic aspect and its technical base at the same time.