Recreating The Batman in Unreal Engine

Technical Art
Description
Using Unreal Engine to recreate the scene of Batman walking towards Penguin
Project Overview
After watching The Batman, one scene that stood apart from all the others was the one in which Batman walked slowly toward Penguin after the intense car chase. I came back home and rewatched the scene and I noticed that most of the elements within it could be recreated using CG. So, picking Unreal Engine as my weapon of choice, I set out to do just that.

Unreal Engine 5

Shaders

Animation

Davinci Resolve

Audacity

I decided to divide the whole project into five sub-elements ➜ character and animation, set, fire and smoke, rain and puddles, lighting and camera.

Before I get started on the process, here's the final result!

Character and Animation

I tried looking for a 3D model of Batman but there weren't any free ones which were also good. And because I'm not experienced enough at 3D modeling myself, I thought it was best if I just found a different character that fit the scene and the mood. On Mixamo, I was able to find this cool Alien Soldier character.

Mixamo was also helpful in finding preset animations as they give away a ton of motion-capture animations for free. There, I found a walking animation.

The next task was to import both the character and the animation to Unreal and retarget the animation to the Police character. This process of retargeting is a little different from UE4 in that you're supposed to create two IK rigs - one for the source skeleton and the other for the target skeleton while creating "chains" or bone structures that match in names for both the source and target. It's important that your chains are as nuanced as you can make it, to get the highest retargeting quality.

Source IK Rig
Target IK rig

If your chains structure isn't nuanced, you could get hilarious results such as this one

After retargeting with a more complex structure, this is what it looked like on my alien character

Set

I wanted to use the newly released City Sample from Epic Games for the setting of the city, but the file was too large and heavy for my computer that I had to find another setting. I decided to use the automotive bridge scene from the Unreal marketplace. All I really needed was a road at the end of the day.

Rain and Fire

This was the hardest part of the project. I don't have a ton of experience with shaders but Ben Cloward's tutorials on Youtube were tremendously helpful. Below, you'll find the shaders I wrote for the ripples, puddles, raindrops, and wind.

Shader to get one ripple
Shader to get multiple ripples
Shader to get the raindrop effect
Shader for the water to be affected by wind

After taking care of the water that's supposed to be on the road, I made a rain particle effect using Niagara, as well as fire.

Rain particles

Two types of fire were used in this project

Fire that is higher in intensity
Mild intensity fire

Lighting and Camera

The fire was the main source of lighting but I did also stick a point light in there to get slightly stronger shadows. To complement the mood, I added a smoke effect behind the car as well as some mist. But the game-changer was for sure the post process volume, with which I was able to color grade, add noise and chromatic aberration all from inside the engine before ever having to move to post-production.

Sequencer in Unreal Engine

The camera set-up was fairly simple. I used a 10mm focal length for the shot from within the car and the default 2.8mm focal length for the shot outside. For the shot outside the car, I also used a camera rig rail to pan back, although I didn't really have to. I just wanted to learn how to use it.

Post Production

As much as you can do from within the engine, Unreal renders the whole sequence in frames enabling you to have even more control over the final look of the product by importing the image sequence into a program like Davinci Resolve. In Davinci Resolve, I fixed the contrast and color a little bit, and removed frames I didn't need. I also brought audio bytes from Storyblocks into Audacity where I was able to mix and master the rain, fire crackle, and footstep sound effects.

Final Thoughts

There's still a ton of room for improvement, especially in the cinematography side of things. But the ability to watch a movie and recreate a scene that I liked is something I'm experiencing for the first time. And with Unreal Engine 5's rendering capabilities, quality is only capped by your ambitions...and compute power. This was a very heavy project. But so much fun!