• Home
  • Portfolio
  • gameDEV
  • Photograph
  • AI
  • Code
  • CG Showreel
  • About Me
  • Contact Me

Alireza Khodatars (Armin)

  • Home
  • Portfolio
  • gameDEV
  • Photograph
  • AI
  • Code
  • CG Showreel
  • About Me
  • Contact Me

Sevarog(2026)

October 11, 2026 realtime

Sevarog

Building an Interactive Fire System in Unreal Engine 5

I started this project with one main idea: to create a real-time flame effect that would become a defining part of the character, rather than something that appeared only during an attack. I wanted the fire to stay active during gameplay, respond to the character’s actions and movement speed, and remain visually readable whether the camera was close to the character or far away.

The visual direction was inspired by Diablo IV, but I also wanted to explore a more flexible camera setup, ranging from first-person views to a distant, top-down perspective. That meant thinking about the fire as a gameplay system, not just an effect designed for one camera angle.
Of course, before I could build the fire, I needed a working character. That was where the project became much bigger than a VFX experiment.

Building the character foundation

I chose Sevarog from Paragon and adapted the UE4-era character setup for Unreal Engine 5. Animation technical direction is not my main specialty, so bringing the character into a playable state was a substantial part of the work.
I worked on locomotion, animation clips, attack montages, and the Animation Blueprint, while connecting the gameplay controls through Unreal’s Enhanced Input system. The character Blueprint handles movement, jumping, sprinting, camera zoom, outfit and weapon changes, body-fire activation, and attack inputs.

The animation setup uses locomotion state machines and cached poses, with upper-body and full-body montage slots combined through layered blending per bone. It also includes an aim offset and leg inverse kinematics.

The Game Mode selects the pawn, the character Blueprint manages input and effects, and the Animation Blueprint handles the pose and cloth-bone motion

This foundation was a project in itself. But as a VFX artist, I needed more than an animation playing in isolation. I needed a character I could move, turn, accelerate, and attack with, so I could judge the effects under actual gameplay conditions.

Flame

For the body and hammer flames, I used GPU-based 2D fluid simulation, while Niagara handles the simulation infrastructure and supporting particle effects, including sparks and molten droplets. Generates dynamic density and velocity fields that drive the flame’s movement and shape, creating a three-dimensional visual appearance from a 2D simulation. I integrated the system with the character Blueprint, exposing parameters to control flame behaviour, intensity, and colour based on movement speed, character actions, and outfit selection. I also implemented camera-distance scaling to keep the flame readable in both close-up and top-down gameplay perspectives.

Creating an environment for the effects

The next step was the environment. I mainly used Unreal’s Procedural Content Generation (PCG) framework to build the vegetation and scatter setup.

The project contains four PCG graphs for edge vegetation and near-, mid-, and far-distance woodland. They combine spline sampling, point transforms, raycasts, attribute filtering, density and noise controls, and static-mesh spawning to generate the scene’s planting and variation.

I approached this as an environment technical-art task: build a procedural foundation I could adjust as I developed the effects.

The environment was not just decoration. It gave the character surfaces to strike, vegetation to affect, and a visual context for judging the fire’s scale and readability. I wanted the effects to feel connected to a place, not simply displayed against a background.

Combining offline pyro with real-time fire

For this project, I combined offline simulation with real-time systems, giving each a different role.

For the opening sequence, I used Houdini to create pyro simulations and export VDB sequences. These were brought into Unreal as animated Sparse Volume Textures, or SVTs, and rendered through a Heterogeneous Volume component.

I layered the opening with Niagara particles and smoke cards to support the main volumetric effect, and also coordinated sparks, spiralling embers, sigil and crater decals, ground-break geometry-cache animation, and camera shake. The volume is one part of that composition, rather than the entire opening effect.

The persistent hammer-and-body fire uses a different approach.

The hero fire is not simply a conventional Niagara flame emitter attached to the character.

The body-fire controller also adds movement-based character and camera-distance scaling to the fluid behaviour. These controls support the original goal: fire that reacts to gameplay and can be adjusted for different viewing distances

Connecting the fire to the environment

Once the character and flames worked together, I wanted the environment to respond, too. Grass was a useful starting point because changing living vegetation into a scorched surface makes the character’s influence easy to read.
Rather than relying only on particles or decals, I connected the body fire, ground materials, and burnable foliage through a shared world-space burn mask.

The body-fire Blueprint paints into render targets and shares the tracked world-space region through a Material Parameter Collection. A brush draws a noisy capsule between movement samples, creating a continuous trail rather than a sequence of disconnected spots. Additional materials preserve and recenter the mask as the tracked region moves. Both the ground and the burnable foliage read that same mask.

This produces two distinct visual layers: the temporary hot trail, with its glow and particles, and the longer-lived charred appearance underneath. The burn materials also use height information to keep their influence close to the intended ground surface, while the foliage material adds char, emissive changes, and a geometric response.

That distinction became important to the overall look. I wanted the player to see not only where the character was burning now, but also where the character had recently moved.

PCG creates the vegetation layout; the shared burn mask and materials create its runtime visual response. Together, they make the environment feel connected to the character without treating procedural placement and burning as the same system.

Lava droplets, cooling, and the character’s surface

To visually connect the body flame with the ground trail, I added molten droplets. I wanted them to feel like hot material separating from the character, falling, spreading on contact, and cooling.
I used custom HLSL in Niagara modules and Material Custom expressions to control different parts of that behavior. The Niagara side handles movement, drag, stretching, and flattening, while the material handles the molten appearance and age-driven cooling. The relevant controls are exposed so they can be driven through Niagara and the character’s Blueprint setup.

The droplet contact model is deliberately simplified: it flattens the particle against a supplied ground-height plane.

I also worked on the character’s material treatment so the fire feels connected to the mesh. The body-lava material uses reference-pose triplanar coordinates, vein and noise masks, animated coverage, and a heat-to-colour model. This allows the pattern to follow the deformed cloth instead of behaving like an unrelated world-space texture.

Making the attacks feel grounded

 

I worked on three attacks for the character, combining animation with hammer impacts, ground interaction, and camera feedback.

The impact system does more than play a particle effect when an attack button is pressed. It follows the weapon’s socket motion and the active animation montage, uses sphere and line traces to establish contact, and applies speed thresholds and cooldown checks before triggering impact or scrape effects. Those events then coordinate Niagara systems, decals, geometry-cache playback, and camera shakes.

The impact layers include mesh debris, dust, grit, a plume, a shock ring, and a flash. Scraping contact has a separate combination of sparks, dust, grit, and debris, so a drag across the ground does not read like a full hammer strike.

 

I also used Blueprint timelines to control the cooling and fading of the impact materials. Combined with camera shake, these layers helped me connect the attack animation to what the player sees and feels.The goal was not simply to make the impact bigger. It was to make the weapon’s movement, the contact point, the ground response, and the camera feedback feel like one event.

Connecting outfits to the VFX palette

Once the main systems were working together, I extended the look development to Sevarog’s different outfits.

The character setup contains four outfit entries with matching green, cyan, orange, and gold hammer themes. Theme parameters also feed the burning-body and burning-hammer controls, as well as the lava materials.

I connected the wider effect palette—including the flames, trails, molten elements, and impact accents—to the selected outfit color. I wanted an outfit change to feel like a complete visual variation, not just a different costume surrounded by the same orange fire.
I added an input for cycling through outfits during gameplay, but that raised another question: what happens when the player wants to start with a particular outfit?

That led me to a widget-based startup interface for choosing the initial outfit. I also wanted more control over how the introduction was presented, including viewing it from farther away or from another angle, rather than treating the original camera framing as the only option.

Building something reusable

What started as a flame effect became a much broader character-driven VFX project. It involved animation setup, input, procedural environment work, fluid effects, Niagara, custom HLSL, materials, render-target painting, and camera feedback.
The most challenging part was making those systems agree with one another. Movement needed to influence the fire. The fire needed to connect visually to the character’s materials. The environment needed to show where the character had been. Attacks needed to respond to weapon motion and contact. Outfit changes needed to carry through the effect palette.
My goal is to reuse this foundation for other Paragon characters. I see it as a system to adapt and validate, not a guarantee that every character will work without changes.

Strong gameplay effect depends on more than the effect itself. The character, animation, materials, environment, and camera all contribute to whether the VFX feels convincing.

Contact Us

Send me an email and I'll get back to you, asap.

Send Message

Copyright © 1999-2026 by Alireza Khodatars (armin). All rights reserved.

  • Home
  • Portfolio
  • gameDEV
  • Photograph
  • AI
  • Code
  • CG Showreel
  • About Me
  • Contact Me