Gladiator's Arena - Making of – part 2
In part two of Nikola Damjanov's making of learn how he brought everything together in Unreal Engine
In part one, we looked at how I modeled and textured the assets and environment. In this part I will share how I add life to the whole scene by adding some animation, lighting and post production.
Step 01: Wind
The first thing I tackled was to animate the cloth assets and it was not as easy I thought it would be! In short, the workflow is like this - you need nVidia's Apex Clothing plug-in that you can get for free here. Then you need to create at least one bone and skin the cloth object with it so UE can recognize it as an animated object. After that you apply the Apex clothing modifier to the cloth object and manually paint in the force influences on the vertex level. Of course, those vertices that are connected to something and should remain static must have the influence value of zero. Then you separately export the skinned cloth object and an additional Apex file that basically holds the cloth vertex information. When you import the object in UE you will need to supply that additional file as well and then UE will consider that object as a physical cloth object to be animated. All you need to do after that is to add some wind to your scene and things will work, although, it took me a bit of trial and error for things to work as I wanted. I left the UE's wind at default settings but I had to use really high force influences in order for them to behave realistically.
Step 02: Foliage
Creating the plants is actually one of the oldest tricks in the book - it is simply intertwined planes and transparent textures. I placed them around using the UE's foliage painting tool which is really easy to use and powerful, it works for everything. You are not limited to foliage, as you can easily populate your level with props, cars, or bricks etc.
The plants were not physically animated using the wind but the animations were done in the shader using the SimpleGrassWind node. As the name suggest, it is simple to setup - you need a numerical value for wind intensity and a Gradient map for wind weight that matches your diffuse UVs - black for parts you want to be still and white for the windy bits. Then plug the result into the World Position Offset of your material node and you are good to go. This approach is much simpler and more resource friendly than the cloth one but you don't get the realism or the variation. You could make a more complex shader that will modulate the wind intensity/weight for individual plants and improve the overall variety but I didn't do that.
When you start painting the foliage it's very easy to go over the top, trust me on that, because this kind of set-dressing should benefit the overall composition not flood it.
Step 03: Lightning
The arena has several lights but the most important one is the directional light that simulates the sun, it is also the only light that casts shadows. The other lights are placed as well as torches to simulate fire. At first I played around with real time lighting because I had an idea to present the scene in some daylight changing time-lapse fashion but I opted out for a baked solution as I knew I wanted slow camera movements, close up shots and crisp shadows.
I didn't plan this step ahead of time so I needed to do some tweaks. I had to manually add the Lightmap resolution on object basis so I could get a more unified Texel resolution across the scene and thus Lightmap consistency.
I added a BP_Sky_Sphere that created a procedural sky dome based on the position of the directional light; then I created a SkyLight that uses the entire captured scene as a light source and had one SphereReflectionCapture in the middle of the scene for reflections. I kept the Bake settings low for the sake of fast iteration and when I was satisfied with the light/shadow position I turned everything up to 11 and waited.
Step 04: Particles
This was another thing that was completely new to me. I had the practical particle knowledge and experience from using them inside 3ds Max and Unity but UE's Cascade felt different from the start. I'm still not sure I understand how it works to the fullest.
There are three types of particles in the scene - fire, dust and sand. Fire is a modified version of the emitter that comes with UE's standard package. It has suited me well as a testing and learning grounds, plus it looks good. I often find that reverse engineering and modifying existing assets is a good way to learn and explore, so I recommend you try it when you can. The same goes for the dust - I tweaked the settings such as lifespan, velocity, color, and size to suit my needs; then I layered them across the scene. I took the things I learned and made the sand-storm that goes over the entire scene. It's a very subtle effect from a simple particle system that has a smoke texture in four stages, high velocity and a low opacity.
Step 05: Post-processes
After everything was finished, it was time for some post processing. This is that crucial final step that unifies and polishes everything you've done so far. Think of it as the icing on the cake. You need to add a PostProcessVolume into your scene and mark it as Unbound so it affects the entire scene and off you go. Go wild, play around and find something that suites your style and your vision.
Color grading is your best friend here, you'll see how quickly you can change the mood and atmosphere of the entire scene. In UE color grading works with LUTs (lookup tables) that you can easily author in Photoshop. Grab a screenshot of your scene, insert a default LUTs in the same PSD file and then use any of the Photoshop tools to add the color, such as Levels, Curves, or Color Balance. Once you are satisfied with the result export the LUT piece of the image with all the adjustments and use it as a color grading LUT in UE. Simple, but powerful; and that is exactly what I did! Aside from the color grade, I also added Bloom, Lens Flare, Ambient Occlusion and Screen Space Reflections.
Step 06: Sound
In order for the video to be a complete and immersive experience you need sound. Try watching any animation without sound and you will quickly see just how important it actually is. I spent two whole evenings searching for a perfect music and I'm still not happy with my choice. From all the works in progress screenshots I made during the production I had the animation's storyboard in my mind and knew what I was looking for - an epic sounding track that starts slow and dramatic than abruptly switches to a upbeat tempo. Every time I found something promising I played the music in the background and walked around the scene in UE, simulating camera movement, to get the feel. In the end I've found the best match on the YouTube's audio library. It's a very nice resource for royalty-free sounds. The only other sound that I've added is the wind you sometimes hear in the background.
Step 07: Cameras
Now comes the part where you can sit in your director's chair! The fun part of this is finding the angles and compositions that suit the scene. Pay attention to the golden ratio, symmetry, and foreground/background balance; do unleash your creativity because in the end it all comes down to these beauty shots. I chose my camera angles based on what I wanted to show - cloth, metal, close-ups, entrance, fire etc. and what I need (inside for the beginning, outside for middle and bird-view for end).
Choosing the shots was not that hard but animating them inside UE was a nightmare - Unreal's Matinee, in its current state, is a pain to use. The way you select cameras and create their keyframes is not user friendly. I reset the animation or places keyframes on a wrong camera so many times that I've lost count. That's why I'm really looking forward to the new Unreal's Sequencer that will hopefully remedy this problem and bring a much better UX and a NLE approach.
Step 08: Final output
Once you setup your cameras you are actually one click away from the rendered frames and since this is a game engine you won't have to wait long. I've render out everything in 4K and used After Effect to put the pieces together. I wanted to keep the straight look from UE so I haven't done any post-production in AE.
For some additional beauty shots you can them out here and you can watch the video with sound here. As a final touch I will leave you with a panorama of the arena.
Step 09: What's next?
When I get some free time I plan to work on the characters; two gladiators that will eventually use this arena as their battleground. You can see one of their helmets as a sneak peak!
Thank you for sticking with me until the end, I really hope this was useful and inspirational to you. I'm open to any suggestions and if you have questions please share them in the comments.
Also, if you would like to work with me and bunch of other very cool and talented people, then check out Nordeus. Maybe we have a perfect career spot for you.
Have a look at more of Nikola's work here
Get your copy of The Unreal Game Engine comprehensive guide here
Submit your artwork here to have a chance to win one of our Gallery award trophies
Click here to read part one of Nikola's making of