Othman El Bahraoui has shared the workflow behind the All Gone project, talked about working with Megascans assets, and showed the lighting setup in Unreal Engine 5.
Hi everyone, my name is Othman El Bahraoui, I am from Morocco. I’ve been working in the Video Games industry as a 3D Environment Artist since 2007. My first experience was at Ubisoft, where I worked for 9 years and contributed to the creation of several projects such as Prince of Persia, Rayman Origins/Legend, and Child of Light.
With the desire to create my own video game, I decided to leave Ubisoft and create a game development studio where we launched our first game on Steam called “The Dark Occult”.
I'm a self-taught artist and work primarily in Unreal Engine. Everything I've learned has been through the experience of building games and cinematics from talented mentors and colleagues and of course online tutorials. I’m constantly trying to improve and learn more about environments, testing new workflows and techniques.
The All Gone Project
All Gone scene is the continuation of the series of works I made lately (Into the Mountains and Turn Around) in which my goal is to bring art concepts to 3D using mainly Quixel Megascans/Mixer assets and to contribute to the idea of these concepts to improve them even more.
First, I searched through ArtStation’s feed to find inspiring concepts to work with which contain an interesting theme/story. I found a great piece by Markus Lovadina which caught my attention. This concept covered my desires right on the spot, but what struck me the most was the amount of storytelling you could feel by only looking at it.
Before jumping into 3ds Max/Unreal, I always start with a preparation phase to get a clear overview of what is needed and to break down the concept. During this phase, I take time to analyze the concept for any key information that requires extra attention when carrying it over into my scene, taking into account the usage of the Quixel library.
This is generally the way I start each project so that I can immerse myself and have a clear overview of all the process stages. It’s very helpful to go into the 3D scene building process with a good vision and plan.
With all the previously mentioned points in mind, I began with checking which assets were available in the Megascans library that would fit the concept.
Blockout and Modeling
After that, I started out by making the initial blockout pass in 3ds Max, taking account of the human model for scale reference.
Then I brought it to UE5 to complete the blocking and set up the camera with a very basic lighting setup. It’s mostly about getting an initial feel of the composition and getting an idea of where everything will be.
Right after planning all of that and doing the blockout, I jumped straight into modeling, I used 3ds Max for modeling and UV Unwrapping. I’d typically block out the props and use that mesh to create the high poly, and since I would use Nanite, which converts the high-poly mesh into a virtual mesh (meaning there’s no wireframe or polygon count), I didn't bake the low poly for those assets. All of the props were textured with Quixel Mixer.
I also utilized UE5's built-in Modeling Tools to add other objects like the wood planks on the floor and the piece of paper on the wall. This way was incredibly fast, which enables you to never have to leave the zone by leaning on other programs and apps for some assets such as those.
I also used this modeling tool to back some of the Quixel Displacement Maps for some decals like the old rag into a mesh displacement. It's very simple and fast to do it. It goes like this:
- First, enable the editor modeling tools in the plugins settings.
- Put the mesh into the level, select it, and then select the modeling
- Subdivide the mesh by clicking subdivide on the modeling panel.
- Select "displace" on the modeling panel, and then add the displacement. Set the displacement texture, and press accept again
- Save the mesh.
Storytelling in Composition
I believe that the way props are placed in a scene plays an important role in the narrative. It gives a story to the environment, and the way the objects are placed and arranged is how this is achieved.
The first rule is to create a hierarchy. It’s best not to draw attention to all objects at once. Instead, it’s advisable to group them together and arrange them in a way that creates a visual hierarchy. The (Big, Medium, Small) principle is a good method to establish this kind of hierarchy and make it visually interesting at the same time.
Another approach is to combine different types of objects and have them interact with each other. In this way, none of the objects will look isolated, since everything is visually connected in a harmonized way.
Texturing the Scene
Now that most of the assets were added, my point of this environment was to make something where the materials and especially the decals do all the heavy lifting. First, I added the principal materials for the floor and walls, all using the basic material that we get from Bridge. I only adjusted some parameters such as the Albedo intensity and color.
From there I started adding decals in a detailed layering way and using multiple decals on top of each other. The key to doing this is to be subtle. My approach was as if I'm sculpting something: blocking out the form and then continually refining it until I get the fine details.
This stage truly enables you to add plenty of storytelling elements to your scene.
I wanted to give the scene a dynamic breeze and make it feel alive. So I created the cockroach and the rat. I made a quick and simple model in 3ds Max for both.
The cockroach is rigged and animated in Unreal Engine directly.
The rat was rigged and animated in 3ds Max. I gave it simple animations like idle, walk, run and used the blending animation in the sequencer.
I kept the process of creating the fur for the rat rather simple as well. First I gathered some references to have a good idea of how the shape of the fur strands looks. Then I checked some online tutorials to learn about the basics of Groom Hair and how to bring it into the Unreal Engine. After that, I started testing what I have learned and was successful in creating a nice-looking rat.
The tutorial below really helped to achieve these results.
I also added a very simple animation to the windows to simulate the movement of the wind.
Finally, I added some dust particles to add extra movement to the scene.
Creating a lighting setup for the scene is always an important part. As all the lighting is completely dynamic and using Lumen, the entire process was very intuitive and iterative. I was very impressed when I used Lumen for the first time, as it brings robust dynamic global illumination.
To start with, I added a Directional Light, a Skylight, and Sky Atmosphere. These three did most of the heavy lifting in this scene, especially to achieve the bright light coming from the outside. Moreover, I added a Spotlight to get those shadows cast by the window store on the side walls.
Afterward, I placed additional lights (Reclights) to enhance my focal point, make the materials pop, have the colors match the concept, and add some Rim Lights effect to separate the object from the background and make it really stand out and catch the eye.
This process stage required a lot of testing and trial and error, but in the end, the scene looked more cinematic which was my main goal.
Once I felt the lighting had hit a satisfying level, I started tweaking values in post-processing and enhanced a few things, making some really minor changes but keeping it minimal. I also adjusted the temperature a little bit and did some minor color grading. In addition to that, I upped the Vignette in Image Effects to frame the piece better.
Since the reveal of Unreal Engine 5’s impressive demo, I was waiting to discover the technology behind it and the new features they have added and to see how this new system will improve the next-gen games and upcoming movies.
Nanite really saves you time when designing massive amounts of detail and allows you to import film-quality art while maintaining performance. With this new special feature, you can just scan and go. As of Lumen, it allows you to make changes quickly and to work in a seamless way.
So far, and even though it is in early access, the engine is much more stable. Another different aspect I like is the new interface: it’s more organized and gives you more space for the viewport.
Finally, I would like to thank 80 Level for giving me this opportunity to share my experience and learnings with the community and I hope this breakdown would be helpful for the readers in some way.
You may find these articles interesting