The weapon asset used in this project was entirely made by Theodor Gerhamn.

I made this weapon fireable inside Unreal Engine 4 by using blueprints together with effects to better understand effects from a game designer's or programmer's perspective.

This scene includes effects such as muzzle flashes, bullet impacts, heat effects and shell ejections.

When the weapon stops firing and has gotten warm enough, whispy trail particles will spawn until the weapon cools down.

Another heat-based effect is the heat haze. When the barrel warms up refractive particles start spawning until it cools down again.


The gun will fire when you hold the left mouse-button, spawning muzzle flashes, ejecting empty casings with physics and, if you keep firing, the barrel of the gun will eventually heat up and display a couple of heat effects.

A raycast is fired and will spawn different bullet-impact effects depending on what type of material it hits, using both decals and particle effects.

The heat-up effect was mostly a matter of making blueprints work together with materials and particle effects. I made a heat variable that controls when the glow will appear, and when heat-haze particles will start spawning. The whispy smoke detects when the weapon is not firing and is hot enough to be visible.

I first used mesh particles for the ejected casings, a certainly cheaper option in terms of performance, but since Unreal does not calculate motion blur for mesh particles, and limits the visual fidelity when they hit the ground, I chose to use individually simulated physics objects. the whole thing is set up with another blueprint.

In a real scenario I would look for a better solution, but for the purpose of this portfolio piece, it does the job with no notable performance problem.


This flipbook texture was made for some of the bullet impact smoke effects in Houdini.

The particle systems use this texture in two different ways.

One version is very directional and short lived, acting as a quick burst of debris launching into the air and dissipating rapidly. The other version is more omni-directional and acts as lingering dust from the impact.

The bullet impact textures were made in Substance Designer.

Muzzle flash shapes were painted in photoshop. They have a gradient alpha to improve the look of alpha-erosion inside UE4.

It also has a panning noise texture inside UE4 to randomize the erosion.