Simran Vaidya explained how they created the water-based VFX, showed their Unreal Engine 5 workflow, and shared some tips for beginning VFX artists.
Introduction
Hi, this is Simran. I am currently studying for my masters at the University of Utah in the MEAE department since 2021. I initially applied to the university as a gameplay engineer track. But then one day, I asked my friend from the technical artist class about their work, and it got me interested. The next semester, I switched from engineering classes to the technical artist class. My first class as a technical artist was about Houdini and Unreal's Niagara system. The professor taught the workflow of Houdini and Unreal from the basics, and I really found it helpful. Since then, I have been watching tutorials, asking people when I have a doubt, troubleshooting, trying out different stuff, and experimenting with Houdini and Unreal Engine, which got me to my current skills.
Unreal Engine 5
I started using Unreal Engine 4, and when Unreal 5 was released, I knew I had to try the new version too, so I started with it. Just as I started doing gameplay engineering in Unity, I thought I should also try out the Unreal Engine, and that's when I discovered how cool the Niagara system in Unreal Engine is! With the Niagara system, you can also write your own modules using blueprints (scratch pads), allowing artists to create any customized effects. Fluid, explosion, and other simulations are also possible within the Niagara system. Initially, I started with basic settings in Niagara, such as initial size, spawn rate, color, lifetime, speed, and other parameters in the emitter. But when I started experimenting with other values and new modules in the emitter, the results were interesting.
I would say I started getting the hang of Niagara when things went wrong, but to correct them, I experimented with many aspects of Niagara (resulting in many weird but interesting effects).
My latest project is a horror scene in Unreal Engine 5.1. It is inspired by the game The Evil Within. I used the stencil buffer for this effect and made the fluid effect in Houdini. It was really fun setting up the entire scene in Unreal Engine 5. I also used Substance 3D Designer for the large vein-looking meshes in the background.
The water wheel effect:
The shield dome effect:
I really enjoyed creating this effect. I was first going to create a shield dome effect but then decided to try out another effect that would combine with the shield and produce an attack effect.
Water Effects
The water splash effect was created for the AOE attack effect in our indie game 'Rudra: A Tale of Time.' I received some design instructions from our combat designer. To begin, I started researching on the internet, found some tutorials, and began working on the effect. It started with a normal water material, animated on some meshes, but then I started iterating on the water material itself and trying different values in the Niagara systems to make the effect fit the given design. Initially, it was supposed to be a stylized water effect, but since this effect was being created for our indie game, which has a realistic art style, I had to make major changes to the materials used for the effect to match the art style with the realistic environment and character. Here is the breakdown.
Unreal Engine Workflow
It's better to start with your own new blank level in Unreal 5. This gives the artist freedom to decorate the environment, place the effect, and render the scene as wanted. For the Niagara system, if you know what kind of effect you want to create, you can start with the pre-given Niagara systems in Unreal Engine, instead of creating a new one from scratch unless you want to begin from there (it depends).
As for materials you will be using for the effect, it is better to have one material first and use the instance of that material instead of using the master material multiple times for your effect. Due to this, you will get an optimized effect and changing the material values would be much easier from the material instance instead of changing values and saving the master material many times.
As for the tools I use in Unreal, I mostly use the Houdini integration, so I can use tools created in Houdini in the engine. One of the challenges I faced was when I was trying to use VATS (virtual texture animations) from Houdini to Unreal. It's basically a way to import fluid simulations, destructions, cloth simulations, and other animations from Houdini to Unreal, in textures instead of the animation data in the FBX (or other animation formats like Alembic). In my first try to use this method, it all went well in Houdini, it also exported the textures I needed, but for some reason, the result in Unreal was way off from the desired ones. The materials were giving some very crazy results and it took a while to figure out the problem. But in the end, after troubleshooting the problem (the point count in Houdini was more, so I had to keep it less than 80,000 and export it again), the result really made me happy.
Here is the VATS-based project.
Resources for Beginning VFX Artists
The best way to start would be to go through the Unreal Engine documentation for the Niagara system. They have described it in detail and provided some videos too.
As for getting started on making an effect, first, gather reference images and videos for the effect you want to create in Unreal. You might find some effects similar to what you want to achieve in other games; you can take screenshots from those games for reference as well.
Then, dividing the VFX you want to make into different elements will make the task easier and faster to start.
Here are some more tips:
- Create a new Niagara system in the Content Browser, there are many templates, so you can use them if you want to make a similar effect instead of creating a one from scratch.
- In the Niagara system (if you start with a empty template), you will see an emitter with a lot of modules. The spawn update: it determines the spawn rate of the emitter, the number of particles, the loop duration, the life cycle of particles (self or system.) Particle spawn: initialization of the particles, velocity, shape location, rotation and more. Particle update: the forces, scale update, color update, particle state and any parameter update. Render: You can add particles, meshes, ribbons and more renderers here.
- Adding spawn rate will spawn a particle in the scene. You can increase the number as desired.
- The color, lifetime, random scaling, rotation of the particle can be changed in the particle spawn.
- The shape in which you want the particles to spawn can also be changed. Adding some forces and velocity can allow the particles to get some motion as you desire.
- Also you can add your own desired material for the particles.
- At last, there is a lot to explore with Niagara system, you can even add your own modules in emitters. So exploring and trying out different stuff with Niagara will allow you to get deeper with the system.