Designing a Dark Souls-Inspired Environment in Unreal Engine & ZBrush

Robert Roeder explains how the mysterious, gloomy, creepy environment was created in Unreal Engine, talks about the exhausting process of working on decomposing bodies for the scene, and shares some tips on working with the lights to create the right atmosphere without making the setup too complex and heavy.

In case you missed it

You may find these articles interesting

Introduction

I’m a 3D Environment Artist who's been working in the games industry for a little over 2 years now, and I love to create my own projects next to my normal working hours. Since the last time I talked about my projects, I wanted to do something else in the way I approach my personal work as I usually create every piece from my own imagination, but after seeing a phenomenal concept in the Design Works concept art book for Dark Souls III, I wanted to create an environment based on a pre-existing concept and try to match it close as I can while trying to capture the feel of Dark Souls.

Working on Deacons of the Deep

I started by collecting a mountain of images from the game, the book, and real-world references and created a basic layout made of cubes and very simple shapes to keep the iteration time low.

It was very important to get it into Unreal Engine as quickly as possible so I broke it down into modular shapes that I could easily and quickly duplicate around and also assigned a very simple collision so I could walk around the environment and judge the size and feel of the chamber. To get the size of the room right it took me a few attempts but I wanted to make sure to nail the size perceived scale before I would go any further with the development of the architectural pieces.

Where I strayed from the concept the furthest was with the central pillars as I wanted to make them feel sturdy but not gigantic so I went through a few iterations until I settled for the final design which is different from the concept but worked better with the scene.

Then I went on to flesh out all the pieces necessary to create the chamber and this is where staying modular helped me a lot to not waste any time on creating more objects and textures than I really needed while still having a good amount of detail in the level.

Working on the Props

Creating props was one of the very fun jobs I had to do for the environment because most of them could be directly grabbed from the game and recreated without thinking too much about whether they would fit with the style or not and what they should look like.

This means that for example, all the weapons in the level are actually in the game, and so are the props like the coiled sword used for the bonfire or the candle holders.

Blueprint Prefabs

For this project, I wanted to learn more about blueprints and use them in simple ways to help me create this environment by creating prefabs and simple blueprints to open and close the doors in the environment.

Prefabs are an easy way to manage multiple objects (but not exclusively) and arrange them in new ways ready to be distributed in the environment rather than placing each and every object and light them by hand. It also helps to reduce the time you spend realigning/replacing your objects when changes need to be made to them especially when you have hundreds or thousands of them in the level and touching each one of them would be a very time-consuming task.

In the case of this environment, I found them most useful when creating collections of candles, their candlelight mesh, and the lights that were attached to them. This way I only had to make 3 different candles and arrange them in multiple blueprints that I then placed in the level which sped up my work a lot.

This meant every time I made changes to the candle meshes/textures I just had to go back into a few of these blueprints and re-align them rather than do this to each copy in the environment.

It is not just useful to create prefabs but also to expose certain functionalities like the light intensity and attenuation radius. Which makes it very easy to customize values for each copy in the environment to fit the needs of the particular area.

Of course, there is much more you can do when working with blueprints but this was all I needed and keeping things simple was key to get this project done in a reasonable amount of time as I’m not very technical.

Creating the Statues

From the very start of this project, I knew that I needed to find or make quite a few statues for the main structure in the middle of the chamber. For a start, I found some placeholder scanned statues over at MyMiniFactory to figure out what I needed to make and at what scale.

After I finished the basic layout and I was sure the scale and layout wouldn’t change dramatically anymore, I started to think about how to tackle the statues as I knew I couldn’t just use scanned meshes or modify them, they were just too diverse and didn’t quite match what I was looking for.

During that time, I saw the new dynamics features in ZBrush and thought I could use them to create the robes for the statues. For the skeleton, I used the premade mesh that ZBrush comes with and quickly cut and moved it into shape without caring for the geometry at all as I knew it would not be visible for the most part and just served as a reference and something for the robes to collide with.

For the next step, I would use a simple plane and use the Dynamic Cloth brush to move it around and let it collide with the skeleton to create all the major shapes and wrinkles in the garment/statue. This helped me a lot to speed up the process of sculpting these statues which would have traditionally taken me days to sculpt.

Once I was happy with all the parts of the robes, I started closing off all the holes and merging the pieces together and as a crucial part, I tried to find all the holes and deep cavities. This was probably the most annoying part about making them as I had to find all the holes in the statue and close them off. It was quite helpful to use a big cube and boolean it together with the base shape and then invert the normals to make it easy to see where all the deep cavities were plus I used auto grouping to find enclosed bubbles that could be deleted very easily.

As soon as the mesh was solid, I used the ZRemesher to create a cleaner topology and transferred all the detail that was lost during the merging of all the shapes. Then I just had to enhance the model and add more wrinkles with the standard ZBrush tools like DamStandard, Pinch, and Standard brushes to make them feel more like statues rather than cloth.

At this point, I didn’t bother creating little chips, cracks, and general damage and surface detail to the ZBrush sculpt because this is something that could be done procedurally much quicker.

After that was done, I just went through the motions of decimation, UVs (in Maya), and texturing in Substance Painter with the help of a Smart Material I created for the statues so they would look consistent.

Adding the Dead Bodies

Late in the process of working on this project, I decided to add dead bodies to the scene as well as the “Caged Hollow” from the game. I knew from the start I had to use some premade meshes to create the characters as this something I’m not very comfortable with and I didn’t want to spend a very long time trying to create a convincing body even if it’s heavily decayed. So I decided (again) to make use of the pre-existing skeleton in ZBrush together with one of the basic human characters.

To create the effect of shrunken skin I matched up the character model with the skeleton and moved the skin as close as possible to the bones underneath. Because I already made use of the new dynamics feature in ZBrush I thought this might work and it did. Basically, I would deflate the skin mesh onto the skeleton to create the look of a dead body and then use the dynamic brushes to drag the skin in a way it would look more like decaying skin rather than a piece of cloth which worked well enough for my purposes and the time I wanted to spend on it.

After that was done, I went through a simple remeshing of the object to get a cleaner result and textured a baked lower-resolution version in Substance Painter.

To pose the bodies, I needed a rig which is another thing I have hardly any experience with other than the concepts and basic principles. Luckily, there is a quick rig tool in Maya which I could make use of after a short YouTube intro and some additional weight painting to smooth out any harsh transitions between the bones. Nothing a technical artist would approve of but again it served its purpose well enough within the environment.

After a couple of attempts and adjustments to the position of joints, I could pose the body in Maya using reference objects to fit them correctly and then exported them as simple static meshes into Unreal Engine to put them at their final resting place.

Setting Up the Lighting

This is one of my favourite things about making my own projects. Lighting has a huge impact on how an environment is perceived and is arguably more important than the actual geometry in it. For this project, I already had a set mood and colour from the concept art and tried to match this Dark Souls type of lighting with a very strong emphasis on this teal-coloured atmosphere together with a pale light blue light coming from above and the orange glow from the candles that are everywhere in the level.

Balance was quite important to me in this scene as candles and fire were the only source of artificial lightning that I could make use of but in turn that also meant I had to be careful with the number of point lights that were connected to the candle blueprints. When I first made the candle blueprints I had a light attached to each one of them which quickly got out of hand once I placed them around the area. This increased the time spent on calculating Lightmass significantly even on Preview or Medium without giving more detail or more precise lighting so I decided to take out most of the lights and have only one or two lights per candle collection which looked almost the same but brought down the calculation time greatly. Also, having many lights in the scene meant that everything became very bright which was not what I wanted this environment to be, trying to balance the amount of darkness and light so it is still moody and mysterious but also not pitch black.

At first, I only used candles in the hallways and side chambers of the environment but this meant I needed either more lights everywhere which didn’t look great and also tinted everything in orange. I had to use some bigger fill lights to brighten up the spots where I didn’t want any candles and filled them with a subtle teal to contrast the orange which also made it feel much more like Dark Souls. This is usually not something I like to do as I go by the rule of having a physical source for every light in the scene but as they would just fill the space with very little light it worked out in my favor.

For the overhead light, I used two spotlights with varying intensity, spread, and attenuation radius as well as a high volumetric lighting intensity to introduce a large amount of fog in the upper parts of the chamber.

Post-Processing

I stayed away from any post-processing effects for a long time and only locked the Auto-Exposure to not adjust at all. This is quite important to light the level correctly and not rely on any effects that skew the perception of the raw lighting.

Once I was happy with my general lighting roughly halfway through the development, I started tweaking the Color Grading which is a very powerful tool. I would go through these settings from top to bottom starting by adjusting the temperature as this will have arguably the greatest effect on the overall perception of the scene and will skew the colors from the raw lighting.

The most useful settings I adjusted were Saturation, Contrast, Gain and Gamma on each of the sections, again starting globally and then going down into mid-tones and shadows while leaving out highlights as they were because I didn’t use much of this spectrum.

I would then turn the post-processing off whenever I wanted to adjust the lighting and turn it back on after. It is easy to get caught up in moving things around and adding lights to the scene so it is quite important to be careful with any post-processing while working on the level.

Conclusion

As a final thought, I got to say that I learned a lot making this project as it was the biggest in terms of scale as well as the number of objects created for it. During the process, I learned more about blueprints as well as using modular assets successfully and managing my time efficiently to get a project of this size done by myself.

Robert Roeder, 3D Environment Artist 

Interview conducted by Arti Sergeev

Join discussion

Comments 0

    You might also like

    We need your consent

    We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more