Gilles Devos did a breakdown of his Fishing in Baku fanart environment made in UE4, 3ds Max, and Substance Painter.
In case you missed it
You might find these articles interesting
Hi, My name is Gilles Devos, I’m an environment artist. I graduated from Digital Arts & Entertainment in Belgium and as of now, I have not worked at any company yet – due to COVID it has been a lot harder to get in the industry. This is why I focus heavily on personal projects and try to learn something with every new project I make.
It was actually Battlefield 3 in 2011 that got me into the mindset of wanting to be a game artist and part of a team that makes these wonderful worlds come to life. Battlefield will always be special for me hence I thought it was time to make some fanart of the franchise!
Fishing in Baku Fanart: Inspiration
I didn’t think about making this scene until I watched a youtuber talking about the next Battlefield game. During that video, the gameplay of the Fishing in Baku mission from Battlefield 4 was playing in the background. I felt like the game blew me away back in 2014 when it came out and I wanted to see if I could relive this feeling.
Goals for the Scene
My goal for this scene was purely trying to recreate what the team of DICE had made. Later, I deviated from this due to games having all kinds of technical restrictions. Since my environment did not have to be playable, I could push further with lighting, meshes, and materials while still thinking about the real-time aspect.
The very first thing I did was take screenshots of the gameplay as reference. This way I could estimate the scale of the scene by how fast the character was walking or running in the gameplay. I also added some cameras in certain places where I took the reference pictures to match the perspective and scale. All these techniques were not precise and spot-on but they were a good approximation to get a result close enough to the real thing. I started by placing blocks in the starting area of the scene and checked if it matched the camera at the start of the gameplay. After that, I added simple cylinders that served as the pillars.
A very important detail is adding a human reference to your work. The Mannequin from the starter content in Unreal Engine made it a lot easier to see if I was off-scale or not.
I decided to use the full power of Megascans assets to really push the fidelity of my project. These assets are rich in detail yet very optimized for real-time environments and are totally free to use. I also used some packs from Unreal Engine Marketplace for vegetation and particles.
I do believe in the usefulness of combining assets from the Marketplace or Megascans and self-modeled assets. Otherwise, your project will not teach you anything new, as you won’t encounter any obstacles or new workflows and you won’t grow as an artist.
Once all that was in place, it was time to see what assets I could make myself and what assets I could use from the Megascans library. Once again, I looked for reference of things I wanted to make myself in order to make sure I could capture enough detail in my models. These environments usually include modular workflow, and that’s exactly what I did with my own assets.
For example, all the scaffolding in the scene consists of just 7 parts.
As I unwrapped them together, they call just 1 set of 2K textures for all the pieces combined. This way there are fewer draw calls for the engine and this is in turn more optimized than calling 7 different materials.
Almost every asset is modular, except for unique assets such as the elevator and cloth pieces.
High poly elevator modeled in 3ds Max:
Every asset in my scene, modeled in 3ds Max and textured in Substance Painter:
In every project I make I try to learn something new. This time, I wanted to bring some life to my scene by making my cloth pieces move in the wind, and I thought Marvelous Designer would be the best way to go for this. I did use 3ds Max cloth modifier before, but this could never achieve the quality of the cloth simulation in Marvelous.
First, I selected my modular pieces that formed my scaffolding in Unreal Engine and converted them into one asset. By exporting that and using it in Marvelous I could then tack my piece of cloth to the scaffolding and it would immediately fit where I wanted it to go in the scene. I added some simulation and a wind controller, and let it render for about 2000 frames. I knew I wanted to add the simulation to a cinematic shot later, so I needed to have enough frames in order to not see it restart the animation.
After rendering was done, I simply selected the cloth and exported it as an alembic file, and it would then bake the animation and play in the engine.
I used the master material created from Megascans for the majority of the scene and tailored my own textures to that material. The only thing I added was Dither to make everything blend into each other a little better and avoid hard edges when assets were intersecting. The second technique I used on top of the dithering was vertex painting on my landscape. Furthermore, decals were added to mask the vertex painting.
No Dither / Dither added / Vertex Painting + Decals added:
I also wanted to add tessellation to my ground for taking close up screenshots or videos, that way it wouldn’t look flat and fake. However, tessellation is very expensive so I added a camera distance function in my landscape material to decrease the number of polygons at further distances and not to take up more render time.
Here we see the tessellation gradually decreasing as the camera distance from the plane increases:
The landscape material itself is unique and consists of 4 different materials combined. Each material has been made into a material function and later plugged into the master material. This way the end material is less clustered with separate nodes and is more readable.
Here's one of my 4 materials made inside a material function which is in its turn called into the master landscape:
All separate materials are then blended using their respective height map in order to paint them onto the landscape.
One thing I did to get more resolution on my landscape was to increase the tiles and decrease the scale. This way I had more geo to play around with and I could go into finer details.
Since I am no vegetation artist in any way I decided it would be best to make my own trees, flowers and grass for another project and use existing vegetation packs from Unreal Engine Marketplace for now. These come with materials and textures already set up, so it was just a matter of tweaking the values to my liking to fit the scene. The grass and little plants are from Megascans and used to paint across my landscape.
There are also leaves falling from the trees, these are from a set of particle systems from the Marketplace. They give a much more lively feeling to the scene, in combination with the moving cloths.
Lighting took some iterations to get to the final result. I didn’t need extra point lights, so there is only a directional light in the scene. I went for a dark sand stormy setup first, but since the entire image became brown-yellow it didn’t give me a proper focus point.
After redoing my lighting I ended up with a much more vibrant and contrast look, which in turn gave me a lot of things to focus on as they popped out in the scene a lot more. I was also struggling with the straightness of my volumetric god rays. To fix that I used a fog volume to break up those rays a bit. It’s a really cool technique I wasn’t familiar with and I will use it in the upcoming projects too since it gives your scene a more realistic feel.
The fog volume uses the VT_Curlnoise inside the volumetrics plugin, it just has to be enabled in order to use it. As you can see, it breaks up the straight rays of light into more foggy pockets:
After my lighting was baked down I tweaked my post-processing volume slightly to have some more contrast and saturation in my overall image. You could also use Photoshop for that and simply import the LUT afterward.
Presentation is key to showing off great art. I always use sequencers and cinematic cameras. These have so many options to customize but are still easy to use. Usually, my scenes run at 60fps or higher but can have slight frame drops once in a while due to some effect being more impactful than others. Therefore, I use png instead of mp4 when rendering my sequencers. By choosing png you can set the fps to 30 or 60, which will eliminate the frame drops when for example heavy fog volumes or volumetric clouds come into the viewport.
Import the image sequence into Adobe Media Encoder afterward and it will render out the images into a video file.
The main challenge of this scene was the grand scale of things, I underestimated it in the beginning but soon realized it was a lot bigger than I thought.
Another challenge was the cloths that moved in the wind, mainly due to not knowing how I could accomplish this. But after playing around in Marvelous Designer, I’m pretty satisfied with the results.
I personally think that what scares most people (as it scares me) is not knowing how to accomplish something, so they rather leave it or not do it at all. Don’t be afraid to try to expand your knowledge. If your attempt fails, you can learn from it, otherwise, you can’t grow as an artist.
I hope this breakdown taught you something! If there are any further questions feel free to ask me!