Lighting With the Unreal Game Engine

November 21, 2020
Brian P. Dean
Making a lighting reel using the Unreal game engine.

A few weeks ago I decided to make a lighting reel using the Unreal game engine. I had several reasons for doing this. The first reason was to create a reel I could use for the purposes of finding work. Work is good because it pays the bills. The second reason relates to Thera. This would be a great opportunity to see exactly what was possible with Unreal, as far as how easy or difficult it would be to produce a good amount of footage, and what quality level could be achieved. Up until now, most of the Thera work in Unreal had been working on sets and environments, and doing lighting tests. Now it was time to create some rendered shots.

I've been experimenting with Unreal for five years now; ever since the Boy And His Kite short was released. I've worked in the animated feature film industry as a lighter for over 16 years. I've been curious to see how similar or different lighting in a game engine is compared to working in a traditional renderer like Arnold. Up until this point, I had mainly just been doing environment and lighting tests in Unreal. These were just static scenes. Not much going on. Nothing animated. The end result of these tests was usually just a screen grab or still image of some kind. But for this reel, I needed to actually construct shots. This meant I would need to add moving cameras, characters and animation. It also meant I would actually have to dive in and learn my way around sequencer.

CHALLENGES

Once environments were ready, the more challenging parts lay ahead. (At least for me.) I didn’t want this to just be 2 minutes of vistas and empty landscapes. I had to add characters. And these characters needed to move. I’ve dabbled a little bit in almost every aspect of CGI, but animation is the one area where I must admit I’m totally useless. Luckily, there are resources available online where you can find mocap animations for use in your Unreal projects. Mixamo is a great resource (and free) if you have an Adobe account. There are also lots of animations on the marketplace. A resource I relied heavily on were the Paragon characters released by Epic for free several years ago. These are high quality characters available for free on the marketplace, and each one has a set of animations. Most of the assets I found were intended for use in games. This actually made it a little easier to construct my own animation by stringing together multiple animations. I couldn't create any mind blowing action sequences, but I had enough material to work with to get some movement in the shot.

Paragon Crunch

SETTING UP THE SHOT

I've been toying around with Unreal for various project since Unreal was released into the wild for free in 2015. Since then I've bought quite a bit of assets. Combine that with the free assets that Unreal drops each month, and their permanent free collection which includes the massive scan library of Megascans, and I felt like I could create anything I could think up. Once I had an environment I liked, I would drop the characters I intended to use into the level (just static meshes without animation) and then create a level sequence. Since I was only running out one or two shots per level, I included all the cameras (usually only a couple) in the sequencer and used the camera cuts tool to switch at render time. Then I would drop in the characters that were to be animated, and would drop in animations into the animation track in the sequencer. You can move animation around and blend different animations together to create sequences of motion.

RENDERING

I found that rendering out at double resolution provided for a cleaner, higher quality image. So even though the final output was going to be at 2k, I rendered out of Sequencer at about 4k. I rendered out frame sequences and used jpg compression. To maintain a cinematic feel, I set my frame rate to 24fps. (There are frame rate settings in both your Sequencer timeline, and in your render settings. It’s best to have them match.)

One problem I ran into was persistent GPU crashes. I had a few scenes which would crash Unreal every time I tried to render out of sequencer. This was obviously a big problem. First I thought maybe it was a driver problem. But my drivers were up-to-date and the crashes continued. Then I remembered a similar issue when I first started using Substance Painter a long time ago. I wondered if maybe it was a similar problem, and if that fix would also fix this problem. Turns out it did! Basically the issue is being caused when the graphics card doesn't respond quick enough. The system then disconnects the graphics card, which causes the application using it to crash. The fix involves altering some system files to tell the system to chill a bit and give the GPU some more time to do its thing. After digging through some of Unreal's docs, I found the same problem/solution given here.  

Warning: This involves altering the registry, so please use extreme care! You can do serious damage to your system.

As I mentioned earlier, one of the amazing things about Unreal is the vast collection of resources at your disposal. The Unreal Marketplace is a treasure trove of assets. I was able to compile all the shots for this reel in about 3 weeks. Without creators out there providing content for the rest of us to use in our projects, turning around that much CG would have been impossible. While this is not a complete list of every creator's assets that I used, it is a list of the those who's assets made the biggest impact. I highly recommend checking these guys out!

Links below.

Kitbash3D

Brushify.io

MAWI United

Hemishpere Skies

Megascans