Course overview Course overview
Create beautiful environments with UE4
In this course, students will be taught how to break down reference and develop a list of reusable modular assets, utilizing trims, tileable and unique texture sets. With this list, students will then use both Maya and the Unreal Engine to create a fully realized environment with portfolio screenshots. The class will cover: - Unreal Engine 4, Maya, Substance Painter, Photoshop, Marmoset.
UE4 Modular Environments WHAT YOU’LL LEARN
The more you know, the better.
Bringing out the best in talent
Clinton is the founder, studio head and creative director of Dekogon Studios, an artist collaborative art OS studio. Formerly a senior look development artist at Microsoft Studios: The Coalition located in Vancouver, BC, working on the Gears of War franchise. He has also previously work an artist at Bethesda Game Studios Austin, KIXEYE, Army Game Studio, and various other contract projects with independent studios. Clinton’s primary focuses are art direction, environment art, shaders, and visual development. His experiences range from AAA, Indie, and mobile development. In 2016 he released a textbook with Sam's Publishing with a focus on game art development for Unreal engine.
Taylor is the Art Production Coordinator at Dekogon Studios. His role varies in duties, from team art lead to working on online sales, so he wears a lot of hats. In his art he focuses on environment and prop work as well as quality assurance. He's worked across a wide variety of titles, styles and platforms.
UE4 Modular Environments Student gallery
Winter TERM Registration
Oct 26, 2020 - Feb 1, 2021
I really like Clinton's style of teaching. He explains any topic in a way that's very accessible and detailed. I would love to have gone through another course with such a great teacher.
Clinton was a great instructor providing excellent feedback great tips and techniques. He also provided extra material relating to each week's theme or area. This adds more value to course, providing tutorials and documents to continue study.
Clinton is amazing; I would absolutely take another class with him in a second. Very personable and active in the forums, great with specific feedback examples, and he clearly knows his technical stuff.
He was great. Love that he found documentations on each subject that we were learning to help us further our education.
He was really clear during the lectures and has incredible patience. Never received late a feedback or email. Definitely an incredible teacher and artist!
Clinton is a very good teacher. He explains things well and is easy to understand. He went above and beyond the class material and explained other things too, and answered our questions about the industry.
Virendra Pratap Singh
This course was an amazing experience. Clinton is simply outstanding both in his knowledge and the way he teaches.
Companies that hire our students
environment design Benefits
What makes this learning experience unique?
Receive personal individual feedback on all submitted assignments from the industries best artist.
1+ Year Access
Enjoy over 365 days of full course access. This includes all lectures, feedback, and Live Q&A recordings.
Certificate of Completion
Earn a Certificate of Completion when you complete and turn in 80% of course assignments.
Learn anywhere, anytime, and at your own pace with our online courses.
Speak to an advisor
Need guidance or course recommendations? Let us help!
Show us your skills
Not sure if you have the skills, or are you proving you do? Show us.
Understanding Modular Environment Design
Interview with Vitaly Zhdanov
Vitaly Zhdanov did a breakdown of his recent Soviet Warehouse environment.
Hi everyone! My name is Vitaly Zhdanov and I am working as 3D Environment Artist at Anvio VR in Moscow. I graduated from Graphic Design Faculty of International Academy of Business and Management. After the graduation I have been working as a graphic/web-designer for 7 years. But 3 years ago driven by the long-held dream I decided to move over to the game industry and enrolled at the Game Art faculty in Scream School in Moscow. After a year of education, I found my first job in game industry.
In order to move forward and keep learning, I entered the CGMA class: UE4 Modular Environments from Clinton Crumpler, where I learned lots of interesting techniques and approaches which I will speak of below.
At the first week of the class I had to define the theme of my future scene, which hasn’t had to be massive but at the same time not an easy one for 2 months class. I started with searching the ideas and references in Google and Pinterest and I was lucky to find those nice photos of abandoned soviet bunker\warehouse.
In these references I got exactly what I was looking for: relatively small scene, modular elements, interesting lighting and gloomy atmosphere of abandonment.
I began to decompose the references and this approach helped me to decide which objects I need and how many of them I need as well as it helped me to plan the modularity.
I made my Trello Board to collect different references of objects for the scene, textures, decals and materials, which I wanted to create. With help of Trello I was able to follow the progress and control the amount of work to be done.
Checking my references I made the basic blockout of large and medium objects to quickly fill the space of the whole scene. I used Maya for modeling and compiling the draft blockout where I can easily check the connectivity of modular assets between each other.
After that I imported these objects into Unreal Engine 4 and made a blockout in engine. At this stage I realized that I can make my scene even more interesting with adding the second floor which required some additional modular elements. During this blockout stage I also positioned the cameras for future beauty shots.
At that time I didn’t concentrate my efforts on lighting too much but I still placed several local light sources to better understand the overall look.
Modeling & Texturing
After I was satisfied with the blockout I began model low polys and high polys of other objects and unwrap UVs. I tried to use trim sheets where it was possible to avoid a great number of unqiue textures.
For most textures I used Substance Painter and as far as I had quite strict deadlines I used tile textures made from photos and Substance Share content. I was trying not to be very obsessive with high texturing quality of each and every object because the prime goal for me was the quality of overall look of the whole scene. That is why it was a relatively fast stage of the project for me and that is what I get:
I imported objects and textures into the scene and replaced the block meshes with them.
At a certain point I understood that the scene lacks some kind of main object which would draw enough attention. I got back to references in Pinterest and searched out an interesting wall drawing. It was a big luck to find the photo with high enough resolution to make a decal from it.
With this drawing my scene started to look more living and sharp.
Lighting and Post-process
When the major part of the objects were ready I began setting up the light and spent about two days for lighting process. First I added a subtle fog to give some depth and atmosphere. After experimenting with a few variants I realized that the light looks quite simple with any of them. So, once again I returned to my references to inspect them closely with regard to the lights and shadows and this time I detected this purple (violet) hint in the shadow color. That was a good starting point for adjusting the skylight and exponential height fog parameters.
I have always tried to check the overall look from different cameras and different camera angles. As written before my main view was determined at the beginning and so I could have made some experiments with light sources to enforce the visual impression. I was just moving the point light behind the door and noticed an interesting shadow of the chain-link on the column. Even though I understood that such effect would be unrealistic, I have still decided to leave it at that because it brings more artistic interest to the composition.
After all the lights had been established I moved to post process set up. At the end I opened the screenshot of the scene in Photoshop where I finally tonemapped it for the desired look and imported the LUT texture into post process.
Details and polishing
I continued to detail the scene. At the end of the class my scene looked like this:
It looked quite nice but it still lacked some additional details and there were still plenty things to work on. That is why I decided to spend two weeks more to carry the work to the final quality completion. During the first week I fixed certain bugs and problems with lightmaps, made a few new objects such as cloth, mines, gas masks, bullets, holders for wires and etc. Below is my final result:
The second week was to prepare the work for publication on Artstation. I made several beauty shots and set up camera flythrough for future video.
With help of guide by Clinton Crumpler I also made some 360 screenshots.
The whole project took me about two and a half months. I have usually worked on it after the working hours on weekdays and full time on the weekends.
Apart from lots of new interesting approaches and techniques of modular assets creation that I learned, this class gave me the opportunity to make a full-fledged scene for my portfolio in a limited period of time with deadlines each week. I’d like to thank Clinton Crumpler for his feedbacks, advice and Q&A sessions.
For this moment I have also completed two other classes from CGMA, which are Vegetation and Plants for Games by Jeremy Huxley and Texturing and Shading for Games by Kurt Kupser. I really enjoyed these classes also and soon you could see the result of my work on my Artstation profile.
Wolfenstein Inspired Environment Creation in UE4
Interview with Sergei Panin
We’ve talked to Sergei Panin about his environment created during his CGMA course
Choosing the Topic
I wanted to create something in this style a long time ago. I really like Wolfenstein and I’m a huge fan of Red Alert style. When I had ended my previous location for the ArtStation challenge, I knew I had a few free weeks before my CGMA course. So, at first, I took a vacation and then spent another week sketching.
First, I wanted to create a Castle base assault (like in the intro of Wolfenstein: The New Order) in Wolfenstein setting, but for USSR faction. In my opinion, it’s really interesting to hear this part of the story from Machinegames guys. What happened? Where is Stalin? I think recreating Red Alert in the world of the new Wolfenstein is a great idea. Here are my sketches and the concept that I created for myself.
I am not very good at 2d, but I’m trying to make some rough sketches like this before I start working. It helps me understand what I want my scene to be like and create good pool of references.
I started from a location that requires 4-5 months of work, I think :D And every new iteration gave me a better understanding of not just what I wanted but what I could really do. After a week of work on the location I changed it of course and reduced the size. After all, having your work finished is much more important than making a huge scene you can’t complete.
First location blockout was bigger, but I had drop most of the ideas from the start (even before the release of Wolfenstein II: The New Colossus)
I’m a big fan of this design. I like these forms. I don’t know why, but I’m not a huge fan of typical sci-fi look. I’m more into something like StarCraft, Warhammer 40k, Red Alert, Wolfenstein – oh, they’re just awesome! Also, I’m that kind of person with a passion for industrial machines. I have been studying manufacturing for 6 years and I honestly like industrial design lathes, engines and all that stuff. And I think, that’s why it’s pretty easy for me to work with this. I know why it requires so many bolts or why this frame has these stiffeners.
I tried different pipelines in this project. One of the biggest parts – trim sheets. I took many of screenshots in Wolfenstein, looked through a lot of references and chose the forms that looked cool and not too noisy. This formed my trim sheets, which I used for planes, meshes.
Also, I have a practice of making only a part of the asset. For example, my steam device has very big pipes and a lot of small elements. So, I created only 1 unique meter of the pipe and then just rotated it. More than that, I took it apart and reused the parts later in the scene.
I think the GDC session from Fallout guys helped me here. They said that they created a big kitbash for a modular environment and used it to build different generators and machines. I did same, but in another way.
And the last thing – I tried to use Epic Games pipeline from Paragon. I did not take any texture assets – instead I assigned material functions and played with tiling. For some assets, simple material can look very cool. Their pipeline is much more logical, but using material functions and blending them with BW mask gave me a pretty nice result. I think I will practice this pipeline much more – you can greatly increase resolution of your textures.
Another example of how a “not trim sheet” was used many times because of its great form. Simple metal lines, painted elements, cool panels – all of that was separated and used in the scene as individual elements.
First week after blockout
Preparing the trims
Trims are tileable textures that are tileable in only one way. Or you can say that it’s a tileable atlas. Trims require a little bit more planning than other way of work, but they let you work very quickly. I created my trims in 2 ways – standard high poly – low poly. And some were created in Substance Designer. Also, I like using atlas maker node in Substance Designer just for packing textures sometimes. It gives me flexibility in planning if I don’t know proper dimensions and what final texture density I will have.
Trim sheets help you in different aspects. First, you save time by not repeating the same work. You just play with UV’s. Second, you save texture memory. Third, you have consistency in design. And last – if you don’t know what you want to see in the scene, just open your trim sheet. You can try different designs and understand what will look better.
First trim sheet
Working with shaders
Shaders in Unreal were one the main reasons why I wanted to visit this CGMA course. Really, my way of work totally changed after getting a better understanding of what you can do with materials in Unreal. I still use one master material with many controls for a lot of meshes, but I do more specific things more and more often. For example, World Align node – it’s really something great. I saw how it was used in Infiltration demo and realized how ingenious it was. It brought about a fantastic result with my tileable texture. I know that this node is expensive, but I used some tileables so often, that breaking it with World Align dirt gave a fantastic result. Speaking about precomputed AO. If you understand how this stuff works, you can create perfect art by just using nodes in material editor. I’m sure that I want to learn more about that magic. I’m still not very good at that trick with camera distance or Vertex normals. If you want to understand how powerful this can be, just take a look at the last stream from Epic games about shaders. Totally incredible.
I took this idea from Infiltrator demo and current pipeline in Paragon. You do not texture your assets, but you create material functions and work in Unreal Engine like in Substance Painter – you assign material functions and use masks. For example, here you can see one of materials of metals with a few controls. That lets me reduce texture sizes but get good texture quality. One day I hope to create a system like in Paragon and use it in my workflow. More about that pipeline – https://youtu.be/Q15ieH8ZWio
Truth be told, I don’t know how this did not end in a mess! From the start I understood that I wanted to take color theme from Batman Arkham Knight – fantastic works from Ronan Mahon were my references. But then I decided that it was pretty reasonable to have one warm location and another one cold and from that point every play with light was a challenge. All my lights are static, but in this project, I used volumetric fog, which game some cool effects. I think this ended good only because of references and friends feedback. Maybe a little bit of experience from last location from ArtStation challenge also helped – I still think that lighting scenario was really complicated.
I think my location had 2 separate scenarios – tunnel and final hall. For the tunnel I used one blueprint assemble with columns, pipes and side panels.
Base blueprint assemble
I haven’t added some elements like roads because their sizes were not very good for that. For example, this tunnel length is 8 m, but my base road tile is 6 meters, so added it later in the scene. I don’t think this is very logical, but that was not a very important moment for work.
Then I added a lot of meshes from this list. First, I started from big ones, like boxes and generators and then added small ones, like bullets, wires and small ammo boxes.
Tileable textures and trims saved me when I worked on the big hall. In my opinion, in terms of modularity, my second part of the location is much better. For whole second floor, I used 1 door, 2-3 tiles, 2 trims and small details. And decals, of course.
My trim for panels is not perfect, but still was very useful
World align dirt significantly changed feeling of the tile floor.
Magic function of wetness from Infiltrator demo with small changes. If you haven’t seen this – download it now! One of the best scene I have seen.
I’m a self-taught artist and after that course I realized that I was going the right way. When you have learned for more than 2 years that’s a really important thing to know. QA sessions with Clinton were really important to me, because it was a fantastic opportunity to ask questions about serious projects from a man with a solid production background.
Second, that planning plays a very big role and on what moments I should focus more. With modular workflow you always have to choose – what will be your base. For example, you are building city – what will be in your building kit? Houses, walls or bricks and planks? It’s always a complicated question and you need to have a good understanding of workflow to choose the right one.
And, of course, I learned the most common and efficient tricks in the work – trims and shaders. Also, during this course I tried different pipelines and that also gave me a good understanding of modular workflow. As a result, a nice scene, which I happy to add to my portfolio. And now I am ready to start a new one.
Setting Modular Environments
Interview with Cohen Brawley
CGMA’s “UE4 Modular Environments” taught by Clinton Crumpler is a 10-week course. In the planning phase of my “Urban Warfare” Environment, I wanted to create a scene that would draw the viewer in and give a feeling of being there. The setting would be an unknown city in Iraq. I really wanted to work a lot with modularity and vertex painting, as I did not have much experience with either one. I felt it was important to make sure the helicopter and vehicles were accounted for in the environment, so the scene wouldn’t feel empty and making sure the crash site would feel plausible and practical.
I used the Landscape Spline to create the path of the sidewalk, but I wasn’t able to vertex paint on the sidewalk as it was a Landscape Spline. To solve the problem, I created a blueprint spline that allowed me to vertex paint onto it.
One thing I learned during Clinton’s course, is the importance of having a set Time, Place and Story to the environment. To plan the environment and answer questions like: Why did this happen? When did it happen? Where did it happen? Is it sad or happy? This really helped me set the foundation for the overall scene. I made a Trello board to plan what type of props, decals, and textures I would need for the environment. I also made a Pinterest board to gather reference images. After planning and gathering everything I needed, I began to block out of the buildings and environment.
Thinking of a Story
Before I put a lot of thought concerning the layout of the city, I began concentrating on the type of helicopter I would use for the crash. First thought was maybe a Black Hawk, but I really wanted a very large helicopter that would be more thought provoking, as to how something so massive could have come down. I came across the CH-47 Chinook on the web and knew that was the one.
Next, I began thinking about how the helicopter crashed. A helicopter this size can’t just come down with a shot from a rifle. So I knew it needed to be a missile or rocket of some sort. I was considering an RPG – (Rocket Propelled Grenade), but a helicopter this size would not cruise at an altitude that an RPG could reach. So I went with the idea that the back right engine was struck by a heat guided missile. The reason for thinking out such details, is so I would account for the damage needed while modeling and texturing the helicopter. The story also assists with planning the crash landing portion of the scene.
I then consider as to what condition it would be in? I didn’t want the helicopter to be completely disintegrated but yet I didn’t want it to look like it had an easy landing. If the helicopter skid a great distance when it crashed, it would allow me to play a lot more with how it affected the whole street and scene. So that is what I went with.
After considering the details of the helicopter, I began planning the layout of the city as to where the helicopter crash would be resting. I decided I wanted the helicopter crash to be resting at an intersection, to give more of a focal point for the environment.
After figuring out the information about the helicopter and city layout, I started creating the block out of the buildings in Maya. I knew I didn’t have enough time to make every individual building separate modular sets. So I made sure they would be able to share the same walls, doors, and windows. I also made several window and balcony variations to help hide the modularity feel.
With how large I saw this environment was evolving, I became a bit concerned with the timeframe of 10 weeks. So my focus was to model the helicopter as fast as I could, without affecting the quality of the helicopter. As I worked on the helicopter, I also worked on the buildings in the scene. I wanted to make sure that if I was not able to complete the helicopter in time, at least I would have the urban city finished.
Using a lot of textures from Textures.com really helped with the tight time frame I had. I also made sure I was taking advantage of Substance Designer as well. When creating the asphalt road debris I used 3ds Max but wasn’t happy with the results I was getting. I knew it would need to be sculpted to get the look I wanted. So I found some basic videos of ZBrush on the web and learned a little bit of ZBrush. I then created the asphalt high poly in ZBrush and decimated it to make the low poly. Then I textured the asphalt pieces in Substance Painter and was much more satisfied with the results.
Clinton Crumplers “UE4 Modular Environments” course was such an awesome experience. I began his course with very little knowledge of environment building. Clinton was very patient and helpful with my large scale environment. The weekly feedback from Clinton helped me to learn and enhance skills. It took around 300 hours to complete the environment for the course. Scale and time frame is probably one of the biggest lessons I have learned here. With Clinton’s feedback, lots of work and little sleep. I was able to successfully complete my “Urban Warfare” Environment with the results I hoped for. I had so much fun working on every individual Model, Texture, and Material. An environment this size probably shouldn’t have been attempted in 10 weeks by one individual, but as they say “Go Big or Go Home”!
I have become a big fan of CGMA and the classes offered. It’s such an awesome opportunity to be taught by industry professionals who know their stuff. The confidence of knowing that the information and skills I am taught are of AAA standards is flat-out priceless.
Building a Library Environment in UE4
Interview with Peter Nicolai
Peter Nicolai did a breakdown of his colossal library environment, talking about the creation of books, materials, the use of scale and the production of this crazy staircase.
Hi, my name is Peter Nicolai. A few months ago, I was a student in Clinton Crumpler’s UE4 Modular Environments class at CGMA. I’ve always loved computer graphics and I’ve worked alongside visual effects and games artists for many years. However, I have always been in the production department dealing with schedules and budgets and people. My art interest has always been practiced at night and on the weekends as a long-term hobby. This class was my first attempt to make something much larger and follow some more specific rules and guidelines as opposed to just tinkering at home. I’m really proud of the work I was able to do during the class and the feedback and critique from everyone has been very encouraging.
I have learned a ton from so many other artists who have shared their work or taken the time to make tutorials. I hope something in here will be helpful or useful to others out there.
As the class started I had no idea what I was going to build. I was initially thinking of places of a much more modest scale. One of the first assignments was to simply pick your environment, decide what you’re going to build and start gathering reference for it. I was looking for something that would suit my skill set and the fact that this was quite literally the first thing I was going to try to build. I didn’t have, honestly, a ton of confidence going into this so I figured smaller and contained would be smarter.
I went to Google and Pinterest and started searching for interior spaces just looking for something that would keep my interest across the class. I wanted a space that offered up enough to work on in terms of both big shapes and small little elements and props. I started looking at random keywords to generate ideas: airplane cabins, castles, libraries, museums, offices, kitchens and any room that seemed both full of details but was also fairly contained.
Anyway, in this shotgun search I found some pictures of the Livraria Lello in Porto, Portugal.
That staircase popped up and obviously caught my eye. I investigated it a bit more. The more I looked at it the more complex it was; the more intricate details I kept seeing. It actually put me off the idea for several days. I kept looking for other things but the idea just wouldn’t go away. It was just such a cool space and everything else I looked at was not nearly as interesting to me.
So I went back to it. I was a little terrified of how much i was attempting (so much for smaller and contained) but decided to start building it anyways just to see how bad it might be.
I built a Pinterest board and started collecting as many images I could find. I wanted to try and get a sense of the space and figure out what I actually need to build. To understand the bones of the space I wound up doing a handful of construction pencil sketches on the side to try to establish the layout in my mind and to understand how things were arranged in space in relation to each other.
Once the ref was assembled there was nothing to do but build a quick block out version of the space to help me decide if I could actually use this location.
The goal was to simply match the reality of what I saw as best I could. I wasn’t trying to put any “post apocalyptic” spin on the space.
Blockout & Structure
Armed with the reference and Pinterest board I started looking at both the interior and exterior photos again to try to establish some kind of size and scale. At one point, I was online trying to find if there were any public records that would even describe the size of the lot or dimensions of the building. In the end I never found a single measurement that I could rely on. I had to eyeball everything and make some educated guesses about expected standards for retail counter tops and doors. I used the heights of human beings and other “known” objects to establish some metrics.
By extending this and just building up layers of these slightly informed guesses I was able to flesh out two stories worth of building: doors, height of each story, height of ceiling, width of overall store, heights of railings etc. I found photos where I could count the number of floorboards all the way across the floor and then made an assumptions that each board was say 4 or 5 inches wide and derived an overall width for the floor. I kept piecing things together in that fashion. I’m sure I got it wrong in a number of areas. It seems to hold together as a believable scale. (Towards the end of the project, I had posted a few pictures online and got a great bit of feedback from an actual patron of the store. He felt that it looked right and he thought that I’d captured the space pretty well. So my measurements are likely shaky but not too far off from reality.)
Once I had those measurements in hand it all boiled down to just building a bunch of boxes in Maya and seeing how it felt. I’d review these again and again against how it looked with any of the human ref were standing next to these objects. Did the hallways look wide enough? Were the railings tall enough? There was a lot of back and forth here. If a basic assumption changed (one that had informed the other assumptions), it was a lot of work to tweak, a house of cards of guesswork.
In the end, one of the most valuable things that I found buried amongst my ref was from a site that had gone to the bookstore and actually captured a bunch of 360 photos from six or seven locations. That bit of reference was a godsend. It really helped put a lot of the other ref in context. I had a lot of vacation photos, wildly varying lighting conditions, pics that were nearly but not quite framed on the detail I wanted to see etc. The project would’ve been a lot harder if I hadn’t been able to find these additional reference pictures.
It was also during this block out phase that I started to understand how I would actually build this place in a modular fashion. When I had first seen the photos I responded to the cool shapes and architectural detail scattered throughout. It wasn’t until I really *looked* at it with more patient eyes that I could start to peel back some of the visually dense layers and start seeing the kind repeating building blocks just underneath. Once I started seeing that, I was surprised at how modular the space already was. It was actually an excellent experiment to try and build a large space using a smaller number of repeatable parts.
In Maya, First (l) and Second (r) Floor WIP blockout.
It was all very low rez (primitive boxes) and so there was no nothing precious about it. I would rip things out, break them up, recombine them. This block out phase directly informed the breakdown between modular, hero and crazy ornate detail pieces I would need to build.
During this phase, I was also implicitly trying to do some visual editing. There was just so much detail with lots of little carvings and specific patterns all over the place. I would try to keep the visual density or business but I wanted to reuse as much as possible and build as little as possible.
As the modeling was in progress, I would start moving pieces between these three tiers. It would also help me define the kind of blueprints that I wanted to build in engine. To make set up that much simpler, I would start assembling these pieces into blueprints that would make the level layout that much more straightforward. For example, the upstairs and downstairs bookshelves were combinations of anywhere from 3 to 7 other little meshes.
In UE, The original bookshelf mesh, the additional pieces and the two BPs placed in the level.
The halogen lighting downstairs is another blueprint. It contains the cable, the light housing, and the light itself. On that one I exposed a couple parameters to allow free rotation of each light along with color, intensity, fall off and a matching bounce light. It is pretty basic stuff but it was still was wildly effective when it came to those subtle little things that let your eye relax to the point where it doesn’t see the repeating pattern and takes in the whole picture.
In UE, The halogen lighting rig. Each BP runs the length of four halogen lights.
In UE, a quick drop in test for the base wood material.
I was doing my texturing largely in Substance Painter. Photoshop was used every once in a while just to get some quick fixes finished. Most texturing was based off of the stock materials that Allegorithmic delivers. I modified them enough to suit my needs in terms of colors, scale, or how visible the wooden ring patterns were. I was putting together my own saved custom materials against a bunch of the materials that I saw in the photos. Once I got one that was looking good I quite frankly duplicated it and made a quick color tint so that it would look different enough that the difference would read and then saved it out. I wanted to get those base materials in there and playing against the lighting and as quickly as possible to see how the whole thing was sitting together.
As I mentioned I have worked around other computer graphics artists for a long time now and one of things that I’m used to doing in art reviews is the ability to A/B new versions of an asset. I tried to bring a very little bit of that process to this environment build. I set myself up with a bunch of saved camera positions that showed off the space and also covered the lighting conditions and different materials. It gave me a place to go back to to understand my current changes and whether I liked the direction they were going.
The modeling workflow is pretty straightforward. I don’t have any grand insights to offer anyone here. I’m not a good enough modeler to have reinvented the wheel or come up with any new tips or tricks. My modeling process is fairly basic with a heavy dose of trial and error on some of the more flowy shapes (i.e. the central staircase). Basically I would take the lo-res shapes from the block out and treat that like the bounding box. I knew that I could model whatever I needed as long as it fit inside that shape. If there were specific connection points to maintain I made note of those as well. Most everything was done in Maya. Occasionally I would jump over to Modo for a few pieces as little experiments. The goal was to get a rough pass of everything in pretty quick.
My plan was to drop in early temp lighting as soon as possible. I wanted something that would be representative of the cubbyholes and negative spaces to get a read on how the whole thing was looking. Because of the size of the space it helped keep me from getting too wrapped up in details too early on in any one piece. (I wasn’t always successful here but some things are just fun to model and the time just slips away.) I swept through front to back and top to bottom looking at the whole thing and trying to get a sense of where there were bare spots. I was constantly discovering pieces that had no block out shape or could be recombined or split up differently. It was a very cyclical and organic process. Sometimes it felt like it would never end but it was just a lot of pretty fundamental basics to get all the shapes together.
The one thing that did continue to evolve as I was modeling was another key aspect of the class. The goal was to was to get you to understand what was a hero piece, what was a modular piece and what details or shapes could be captured in trim sheets. I was building trim sheets in parallel to see the detail that the technique captures. It was really interesting to see the levels of high-frequency visual detail and decorative carvings show up really well when I got it in engine. I was pretty excited by the results.
This was my first exposure to proper trim sheets. I did not understand just how far you could push them. The class and the information Clinton shared was a real eye opener for me. I started allocating space in a sheet for various patterns I wanted to capture. They were all modeled in Maya. The bakes happened in substance. In the end I cut the sheet in half which is what made it into the engine. The removed elements were promoted to their own assets with a different texturing solution. I’m sure I didn’t take enough advantage of the technique in this build; they were still so new to me. I’ll need to go back with fresh eyes to see where else I can put them to best use.
The books are a huge influence on the sense of the space. It was a shift in the blockout phase to get those things in there even as simple white boxes; they take up a lot of screen space.
There’s actually just one book. It’s a very basic model with two materials on it. One for the “cover” the other for the “pages”. It may sound weird but I actually didn’t want to call specific attention to them. They are everywhere but they aren’t the point, if that makes sense. I don’t want a viewer to notice “a” book but rather “books”; they should just think “that’s a ton of books” then their eye should let go of it and take in the store as a whole.
I only ever modeled the one and then set up a number of blueprints with books of varying configurations. I made a variety of stacks of books and then a couple leaning to left and right. Each book in a group had some built in scale, position and rotational offset to make them look a bit more “messy” and realistic. (“You’re right. No human being would stack books like this.”) These small arrangements were used to build up the bookcase patterns. The bookcase patterns themselves were then repeated throughout. I was trying to reuse as much as possible. As long as my eyes couldn’t “feel” the stamped repeating pattern then it was fine.
For all the colors, I built a basic material with two color ramps based on the world space position of the individual book. Each ramp was multiplied together to get a color and variation for each book. Some additional params were set up for saturation and brightness. As you move whole stack, front to back of the store and then up and down the shelves, they would all change their color and value. All that visual detail and color variation is for “free”.
The staircase is definitely impressive as you look at the photos and it’s the centerpiece of the building in my opinion. When I was first looking at whether I would even do this space, a lot of it hinged on whether I thought I could actually build that staircase.
It was the first thing I tried blocking out. In the end I think I blocked it in and rebuilt it possibly four or five times just to try to understand the form, then how I would break it down based on construction methodology, reusability, UVs etc. I started with some basic circles and top down views to establish some nice elegant curves. The side elevations were a bit more constrained in that I had my overall building proportions and a set number of stairs with which to work.
I experimented a lot with how to build the pieces and where to break them. My first version of it was just a box that I modeled out and then threw some quick subdivision and smoothing on. It looks like a ramp out of a sci-fi movie but it gave me a placeholder. It also gave me some poly curves that I could then extract and extrude along or loft and that’s what started me on the process towards building up the pieces. I extruded profiles along that curve. Slowly I’ve got railings, now I’ve got that decorative wrap and so on. I just went through a series of experiments again and again. These experiments would change as the pieces and their cut points changed. Later I would build different pieces “straight” then bend them to match the curves. It was the a mix of both construction and grouping tests. It was very challenging for me.
I wound up taking what had been the full staircase and carving it up into three main sections (the top stairs coming down to that “V” landing, the circular pattern in the middle, and then last row of stairs hitting the ground floor). Each of those sections is made up of multiple pieces of the stairs themselves: railings, posts, trim detail, stairs, decorative baseboards.
The stained-glass ceiling is a total cheat. It is just one big flat card with a texture. All the ceiling and molding around it is geometry that I’ve built.
I found photos of the stained-glass window so I grabbed the best one I could get and went into Photoshop. I did some editing there to build what I needed and then just dealt with it all in the shader. I turned it into a translucent material so that all my exterior lighting would shine through that space. It was another big element to get looking right. The stained-glass and the central staircase really serve as the central focal point for this space.
The first tests when I saw some actual colored light coming through that thing were pretty exciting to see. It was a straightforward set up I grabbed out of the UE4 documentation for putting the shader together. The rest of it was iteration on the lighting and integrating it with the rest of the environment. I knew i wanted the stained glass window itself to be bright and back lit; I knew I needed it to flood the surrounding vertical ceiling pieces with light and then have a nice falloff across the horizontal ceiling as you moved into shadow. That all boiled down to repeated bakes and massaging of numbers till it looked “right”.
I knew for me that the lighting was going to be a challenge. I had the glass windows on one side of the building, the big skylight up above with the stained-glass window, all the localized halogens downstairs, the bookcase lights upstairs etc. It was a lot for me to balance with all the various subtleties from these sources.
Once I had the block in meshes together I started running several lighting “wedges” for my own edification. Since I’d not tried building a space like this before I wanted to make sure that I understood what to expect visually when I was operating at different lighting quality bakes. I wanted to understand when I saw a certain kind of artifact or result that I was familiar with what would go away at a higher quality bake versus what might be an actual bug or issues to track down. It felt like a good use of time to take a couple days up front and run these tests.
I ran individual wedges of each of those lighting passes at several different bake qualities. This let me get familiar with what shows up from what light “set” at each level. I also got in the habit of screen capturing all 10 saved camera positions in a variety of view settings (lighting, detail lighting, lit) after most bakes. This gave me a pretty good living record of what was happening and helped get my eye used to “reading” the scene. My goal was to use these images as touch points so that every time I improve a model, changed lighting, updated a texture I would have something to A/B against. Is my change better or worse? Did I fix something upstairs only to break something downstairs? When the heck did that lamp turn purple? It served as a way for me to sanity check myself while working.
As I would do better and better bakes later in the process it was always nice to have that growing ref to go back to. You could really picked out the evolution of any one particular camera position and understand what elements were working or what you may have lost and wanted to bring back.
As the bakes progressed I also cheated in bounce and fill lights as necessary. It became easier to add additional lights and tweak their color and intensity to achieve the effect I wanted as opposed to continually poking at lightmass settings.
I was very happy with the match I got upstairs. When I saw this comparison, I felt pretty relieved that I was on the right track. This happened on my way to trying to finalize the lighting. The color variations were forgivable and a lot easier to tweak and tune later. But I was pretty happy with the overall feel of the light from screen R. There is still plenty to tweak and adjust (other lights to activate screen L) but this moment was a big confidence booster. I still couldn’t tell you if I built it all “well” or as efficiently or as intelligently as possible but that will come with time and experience I suppose.
The idea of a one stop shop lighting scenario that works for the whole space is still something that is elusive to me. I don’t think I was able to successfully balance the darkest parts of the first floor to get them to work with the brightest parts of the second. The lower floor still looks wrong to me, muddy and ‘off’ somehow. Perhaps I’ll make a second lighting scenario and let one “sell” the top floor while the other supports the lower floor.
Post-processing we kept to a minimum till the very end. I worked with the eye adaptation turned off and locked in at a neutral exposure.
Overall, the class ran for 10 weeks. If you carve off the first week as the reference gathering and deciding what you’re going to build and carve off the last week for making last-minute lighting tweaks and final bakes you have about eight solid weeks for production (blockout, model, UV, texture, light, post process, cameras etc). It is a fair bit of time if used wisely but it can sneak by you in a heartbeat if you aren’t careful. Figuring out some sort of schedule, milestones or pacing markers for yourself is critical (and that is not *just* the producer in me speaking).
You have to do what you can to make sure it is something you are engaged and interested in. You may not be able to do that everyday at work but this is your project so do something that really inspires you because there is a lot of (really fun) work ahead. For all the times when I was slowed or stuck trying to figure out some problem, I was happy to be doing it since I happened to pick this fun place to build.
What I took away from the class wasn’t about specific modeling and texturing techniques, though those are covered in the forums and in the feedback sessions if you need them. The critical takeaway for me was more about ways to think about how to treat different elements in the scene: the categorization of hero, modular, trim etc. That was something that I didn’t have in my mental toolkit beforehand. The ability to be in the middle of building an object, change my mind as to its importance or on how I’m going to build it, and have a roadmap in mind of how to execute that new plan is a big confidence booster for me. It definitely helps me understand how the more seasoned professionals can look at concept art or ref and come up with a plan of attack on on how to build things efficiently in putting these beautiful scenes together.
As for quality, I just wanted everything to look consistent. I can think of a few things that may have helped me keep the quality bar consistent while working relatively quickly and across all the assets. I think the tools that I used helped dramatically. As I mentioned my modeling was pretty straightforward in Maya and I used Substance for 99% of the textures. Changes made later could be quickly pushed to assets or texture sheets when I was ready for that. I also think the consistent review cameras helped me keep my head above water when all the pieces were in flight.
Overall, the enviro still needs work to bring it to truly “final” but the class was finished. I’d bitten off a bit too much to get done in the alloted time but I’m happy with how far I was able to push it. The remaining polish will happen on my own time. Overall, the class was a great experience and a ton of fun.
Thanks for reading!
Minimalistic Scenes in UE4
Interview with Vladimir Lepotic
Vladimir Lepotic was kind enough to share a detailed breakdown of his Beton scene in UE4, providing tons of tricks on setting up the final look with lighting and additional effects.
Hello, good people of 80 level. I am Vladimir Lepotic, a 3D Artist from Serbia.
The path that led me to my current position of 3D artist was a mixture of different interests and searching for the right one, which, I believe, I found. That mix was also beneficial to me because I learned different skills from different areas and trained my eye to understand things from various points of view.
I studied architecture at the University of Belgrade. After college, I worked as a graphic designer for Fnatic, one of the biggest names in competitive gaming. At that time I also knew a couple of things about 3D so I got the opportunity to work on my first 3D model for the game. I worked with my friend and colleague on the “hero set” for the Dota 2 which was imported into a game. Afterward, I was totally into 3D and gaming industry in general and started to pave my path in that direction. Since then I worked as a 3D artist for a couple of other independent studios and contract projects and recently started to work at Art Bully studio here in Belgrade.
The main idea was to apply the concept “less is more” to the project. My starting point was to think about the kind of emotion I would like to get. I also wanted to test myself and my current knowledge of UE4. This scene wasn’t so demanding from the modeling point of view, therefore it was a perfect choice for the task.
The inspiration for all of that came when I was looking for some architecture projects and stumbled upon a project by Quang Le and Lien Hoang Phuong.
It was a very clear and strong concept and their project was a winner of INNATUR 3 propose fresh ideas of blending architecture and nature. I realized that I wanted to make a similar thing in UE4 and bring that scene to life with some extra touch and few ideas of my own, of course, to make it look more abandoned or maybe even post-apocalyptic.
The idea behind this project was to make the scene that is simple from a modeling point of view but also readable and a good base to make most out of the lighting.
The first stage was to make the modular cubes (walls) and to block out the scene. I pretty much used only one mesh cube for the blockout phase so that part wasn’t so time-consuming.
Blockout of the scene
At that stage, I used textures that were still WIP just to have some rough impresion of how things work together. After that, I added a couple of decals in the building for the labels. I also placed directional lights to have some starting point and something to work with.
Base lighting of the scene
Texturing for this scene was pretty simple since it’s mostly about concrete. So it was about making good tileable textures of concrete. I used images from the internet and Substance Painter for extra touches. After that, I made 2 or 3 variations so I can use it for vertex painting in UE4. Also, the texturing is one of the most important aspects of any scene because small tweaks define a realistic look. I always pay attention here and tilt the sliders until I am satisfied with the results.
The key thing when working with minimalistic scenes is to make the most of what you have. Generally, you are overexposed when you are working with minimalistic stuff (that is also noticeable in graphic design, for example) and you just can’t hide things. In an overcrowded scene, you can hide some stuff that doesn’t really work, because the eyes are overwhelmed by all the information. When you work with minimalistic scenes it is even more important that things just work together as they should. The important part for any scene, for minimalistic especially, is lightning. It can elevate the scene up to the next level or totally ruin it.
Therefore, I would suggest paying extra attention to it, because if there are no interesting assets, lightning turns out to be of the highest importance. It sets the atmosphere of the whole scenario and brings it to life.
Next part I was working on was the foliage. For the lianas, I used one texture atlas from the Megascans library. For the foliage placement, I used UE4 tool and tweaked some details.
Another important part of making a good-looking foliage was to set up materials properly, and by that I mean to add parameters for the color variation, subsampling, and wind movement. It is all about subtle touches but it makes the final model look more realistic.
Foliage movement parameters
One trick that helps make foliage look better and more realistic is to pump a bit the intensity of a normal map. To do that, we have to make a 3vector with AppendVector and use the intensity control for only Red and Green channels and set the Blue one to 1.
Normal map parameters
There is no big secret here, just tweaking and testing until the results look good. I have to add that even if I always tend to stay with the “game-ready” scene as much as possible, for this particular one it would still need work and optimisation to really be one and to drop FPS to more enjoyable levels for a player. Hence, I went for the more cinematic approach with this scene.
For the scene lighting, I used dynamic lights to speed up the process (movable lights in UE4) so there wasn’t any light-bake involved. I decided to choose one directional light. Beside directional light, I also used sky light, reflection capture spheres, and exponential height fog.
Some of the settings and parameters for the scene
Also, I turned on “generate mesh distance fields” in UE4 “project settings” to boost up the shadows. It really helps to ground everything together and to boost the scene and make it more believable. It is necessary to restart the project before the effect appears.
Mesh distance fields
Since the whole project was kind of a playground to test different things, I tried “Light propagation volumes” or LPV. To enable the feature, the command “r.LightPropagationVolume = 1” has to be put in “ConsoleVariables.ini” file because it can’t be changed at runtime. The file is located in Program Files\Epic Games\UE_”version”\Engine\Config and again the engine has to be restarted to see the effect. It is a bit tricky to get good results with it and I didn’t feel like I have much of a control over it, which is understandable since LPV is an experimental feature in UE4. From my experience, it is more of random tries and errors until you get something that looks good. Nevertheless, it can give you that additional boost for the lighting and occlusion of the scene. I would say it is more like a cherry on top of the cake and it can easily go without it. Here is a more in-depth explanation of LPV in UE4 documentation.
Also, there are some things that I really wanted to be visible but it just couldn’t be achieved with only one directional light. By that, I mean visible rays that come through windows and bounce a little bit on the surface border of the hole. That was the main challenge and finally, I decided to fake that effect with spot and point lights placed outside of the windows to boost the lighting coming through them.
Settings for the spot and point lights
An important thing for the spot-light is to set the outer cone angle to larger numbers to be less focused and to get more light scattering so it can better mimic the sun light. For the point lights, I turned off casting shadows because I used them just for boosting light in certain areas
I also paid attention to how to properly place the directional light to make the most of it and to get as many interesting shadows as I could.
I also used particle systems for the dust and falling leaves. It is barely noticeable, but it gives the scene a bit of dynamism, since without it, the whole scenery would be completely static. There are many good tutorials on YouTube that give a great explanation on how to make simple particle systems as these, so you can check that out if you want.
picture 1: dust particles; picture 2: leaves particles; picture 3: images that I used for particles
Dust and Leaves particle effects
One more important thing that I want to mention is the post-process. I use it as a final touch to make the image even more believable and to play with colors a bit more. It is pretty much the same process as the adjustments that are done on the images in Photoshop, for example. I placed one post-process volume box in the scene, set to unbound and adjusted parameters until I was satisfied with the final result. It all goes down to good using of color correction and “eye-balling” until the scene looks more pleasing.
Post-process parameters for the scene
As you can see in the previous image I used Look Up Tables (LUT) to achieve the desired colors because I find it to be the easiest way to achieve good results, at least for me. It is as simple as taking a screenshot of the scene and color correcting it in some program that you are most familiar with, then using the same adjustments for the LUT image and after that going back with that LUT and placing it in UE4 post-process volume.
I would also mention the sound as another important component. It is well known that visual and sound parts are always a good combination and goes hand in hand together so I always tend to find good music that will suit my scene and also enhance the emotion and feeling that I try to present.
Melody in the background for this particular scene is “Among Trees” made by – Krale. It is a beautiful music and it blended very well with the scene.
A hard thing for me was to understand when to stop because I can always find something that can be better even now when I look at this project.
So I would suggest thinking that it is really okay not to be 100% satisfied with the result and to place the bar a little lower. In that case, if you work on something, you won’t end up in some never ending loop and going through a despair of not finishing anything completely.
Final shot from Unreal 4
At the end, I would also like to add that I learned a lot of new things about the environment art during a course at CGMA Academy where I was mentored by Clinton Crumpler. He is a really talented artist and a great guy in general and I would like to take this opportunity and thank him for his awesome teaching. I need to mention that I also learned a lot of new things from the internet, from guys like Koola and 51Daedalus (he has great UE4 lighting tutorials on Youtube) and I would like to thank them too for sharing their knowledge about UE4 and being an inspiration for me to learn more.
Thanks for reading!
Ancient Ruins in Unreal Engine 4
Interview with Daniel Cangini
3d Artist Daniel Cangini discusses the way we’re working with the production of beautiful environments.
Ancient Ruins in UE4
Hello everyone! My name is Daniel Cangini and I am an environmental artist who currently works as a graphic designer in Rome, Italy.
In 2012, I obtained a Bachelor’s Degree in the University of Rome “La Sapienza” in the Graphic and Multimedia Project focused on “3D Digital Art & Design”.
After graduating in 2012 I worked in Direct2Brain as Modeling Artist, it was an incredible experience where I met and worked with so many talented and dedicated artists.
During July 2012, I went to Montreal, where I attended a class of meetings on “3D environments and resources for video games” for the creation of gaming environments with UDK3.
Following my passion for building real-time environments for Games and pushing myself to pursue my career as an environmental artist, I decided to subscribe to Clinton Crumpler’s CGMA environment class, where he provided me with a solid program focused on the process to build an environment from start to finish.
My main goal was to learn the process of creating environments in Unreal.
I had established a quick Trello board to organize my thoughts and I began examining ruins images to understand how they were built and where I can break the modular repetition.
I started by gathering multiple references to have a solid compositional ideas, find things that make the location unique and how to breaking up the textures into main textures, secondary, and decals.
After analyze the Images collected, I started to work on a style guide. I focused on the main design, what assets would be built inspired on the Uncharted Temples environments.
When I started the scene blockout, I concentrated on the proportions and scale of the asset, this was the best way to test the composition and scale of assets in 3D space and make quick changes before creating the final pieces.
Once I created the shapes for the modular pieces and large props that I liked, I then continued to block out the assets on details.
Then I exported each piece individually and assembled my meshes in UE4.
Assets and Materials
The Temple was a compositional element integration with strong emphasis placed on harmony between architecture and striking natural surroundings.
I kept the main meshes simple and flexible by using the modular modeling and tiling textures for re-usable assets.
I used painter and designer to develop my materials. With Substance Designer I began by creating the Height map.
My workflow for the texturing involved finding a lot of images and reference to work from, design the main shapes or patterns, develop the color variations.
Once I was satisfied with my base material I would move towards building the damage by adding secondary details before finishing the textures.
Adapting Textures to Games
A first challenge was to create the shader in Unreal. Because I wanted this material to be scalable and have the same texel density.
I began setting up a master material for props with appropriately shader system.
From a Master Material I create the Instances Material.
I like to use and play with The Material Instances because they are useful to make changes in real time.
Keeping in mind the amount of vegetation to be included, I started hand modeling with planes in 3ds max and positioning them until I had the main shapes desired.
For the texture process, I used CG Textures, and Substance B2M to get the Normal Roughness and A.O info from my Albedo textures.
Next, I exported the channel packing textures into Unreal. To simulate the subsurface scattering, I created a master foliage shader with two sided foliage. Then I implemented the (Subsurface amount parameter) and plugged it into my master material.
I used this same method for all of my plants, trees and canopies.
I started creating the terrain master material to use the vertex paint, modulate that blending and add features such as parallax and wetness.
With the use of the Vertex painting I decided areas where the mud, grass and leaves would appear or add and remove the puddles.
I used vertex paint in combination with additional mix maps and masks to add puddles.
Layer 1: Mud
Layer 2: Chips & Grass
Layer 3: Leaf
My scene is lit with one dominant directional light, a skylight to give a nice Green/Blue ambient light in contraposition of the temple warm light, plus an HDR map. One benefit of this is being flexible to constantly change the lighting angle and the time-of-day.
After I putted on the background the fog to emphasized the sense of depth.
Inside the Temple to achieve the mystical lighting I used the Yellow god rays Lighting, I started from a cone shaped modeled in Max and then I assigned the god ray-material into Unreal.
Regarding the particle systems, I found several interesting tutorials on the web where I understood the basics setting to create the different fire particle system for the candles and torches, in Unreal 4
Inside Unreal 4 Modular Environments course, I had the opportunity to realized a fully realized environment for my portfolio screenshots. I’d like to thank Clinton Crumpler for the help and his feedbacks.
In this last year I have also completed two other courses from CGMA, which are Intro to Environment Art with Andres Rodriguez and Texturing and Shading for Games with Kurt Kupser. From these courses I learned the foundation about the environment pipeline to create high quality assets, and how to create materials and textures for video games in Unreal Engine 4. Soon I will post the result of my work on my Artstation profile.
Creating a Sci-Fi Office with UE4 and Maya
Interview with Zach Bush
Zach Bush did a short overview of the way he builds very tight interiors with a lot of little details.
Hi, my name is Zach Bush and I currently live in Southwest Virginia, USA. In 2008, I received my B.F.A. in graphic design at Radford University. Upon graduating, I worked for the government for about 6 years which I quickly realized was not for me but I needed to pay off school loans so I stuck it out. I decided to change things up and went back to school to get my masters in 3d environmental design from Virginia Tech. After that, I still felt that I needed to learn a better pipeline for how to create environments for games so I signed up for the CGMA class UE4 Modular Environments taught by Clinton Crumpler. This class was exactly what I needed and was a great learning experience for me. I feel much more confident and well equipped with the tools and knowledge for creating game environments. I am now currently searching for a full time job as an environment artist.
The main goals were to learn how to create modular pieces as well as unique and tileable textures for my environment. I didn’t want the space to feel empty when the project was complete but rather to feel like it had been lived in. After working on this project for about a week, I decided that it was time to switch over from using Cinema 4d to Maya since Maya is one of the industry standard programs for creating games. It didn’t take long to get used to the layout since I had used it before but not consistently. Most 3d packages contain the same tools, so my main challenge was just figuring out where the tools were located.
Before opening up Maya or Unreal, I needed to come up with my concept. I decided to create a fictional space called a Light Lab. Here’s my backstory: In this post-apocalyptic, overly polluted world, natural sunlight has become scarce, and artificial light is becoming a commodity. In an effort to garner control, the corrupted government officials have outlawed light farms and require citizens to obtain their light from them, at huge markups of course. The Light Lab is a hidden light farm, creating synthetic sunlight outside of the government’s watchful eye. Engineers and scientist have gone underground to fight the suppression. Right now they’re only focusing on creating a functioning machine and getting the captured sunlight to people who desperately need it. The work is dangerous and hurried, but someone’s gotta do it.
My main reference was the office my wife and I share in our house. The format of this room was the room I wanted to create. I took a few pictures of it and quickly laid out where I wanted things to be located.
I created a Pinterest board for much of my inspiration and reference images of what I wanted the style of the room to look like and all the props I wanted to incorporate. This way it could all be in one place that I could quickly access while working.
Before switching over to Maya, I blocked out the modular pieces that made up the room in Cinema 4d. Then I looked through my reference imagery and blocked out a lot of my larger props: desks, chairs, file cabinets, tvs, etc., that I knew were going to be in the room.
The class as a whole was 10 weeks long and each week we had milestones to hit so we wouldn’t fall behind. After the block out, I worked in Maya and got started on developing the props by adding more detail to each one. I would place each model into Unreal once I had created it to help me figure out if and when I needed to create more pieces to help fill up the room.
I baked my maps in Mightybake. For a lot of the props I created I used Quixel’s DDO and NDO for my texturing. There were a lot of different props so I couldn’t go into a ton of detailing with each one but wanted to have enough to make the entire room work as a whole together.
For the sake of time, I took a seamless texture, from textures.com, of some seamless wood planks and created a normal and ambient occlusion map out of it. Then I placed all of these maps into Unreal to create the texture for my floors. The cracked plaster on the walls came from taking a masked texture of damaged plaster and I created a decal material in Unreal. That way I could place it anywhere on the walls I felt was necessary. I did this same technique for some of the trash on the floor and the stains in the ceiling tiles.
I kept the lighting pretty simple. I started out with a couple of point lights for the glowing energy ball, a spotlight for the one fluorescent light that still works, an Exponential Height Fog, and worked my way out from there. I only used a Sky Light and a few more smaller spotlights for the screens. What really allowed me to set up the mood I was going for was using LUTs (Look Up Tables). I had never used them before but during one of the lessons, Clinton showed us how to create them using Photoshop and placing them into the Post Process Volume in Unreal. This was a game-changer for me, it really helped speed things up and quickly gave an overall look and feel for what the lighting needed to be without having to individually tweak each light.
Clinton showed us a great way of how to plan everything out before jumping into the project which was very helpful because he went into detail about ways to go about it so you wouldn’t fall behind when working with a deadline. Also, learning how to correctly create modular pieces using the grid was something I always wanted to learned but never knew if I was doing it right or not. Clinton did a great job of teaching us how to use many different types of materials in Unreal which was a huge help in making changes to my textures without having to leave Unreal to do so. The best thing I would say I learned was getting clarity of whether I was had been doing something right, wrong, somewhere in between when creating environments. Getting feedback from a professional in the field was invaluable and I am very grateful to have taken the class. I would definitely recommend this class to anyone interested in learning industry standard practices.
Creating 19th-Century Setting with UE4
Interview with Grigoriy Karmatskiy
Check out Grigoriy Karmatskiy talk about the amazing things he learned about the production of game environments
My name is Grigoriy Karmatskiy and I’m a 3d artist currently living in Saint-Petersburg, Russia.
I’ve been working professionally in the video game industry for about 6 years in various outsourcing companies and I specialize in hard-surface modeling and environment art.
Currently, I’m working on my own projects and portfolio. Tram Depot is my latest work I developed during Clinton Crumpler’s course on CGMA.
My main goals were to create a scene in late 19th-century setting which could be interesting to make and challenging at the same time. Also, I wanted to learn more about Unreal Engine 4 and the lighting and I decided that Clinton’s class fits the best for that.
I started by gathering reference for the scene. Up until the end of the first week of the class, I was choosing between tram depot and a different scene based on existing concept.
The first iteration was bigger than the final scene and looked more like a train station with several levels and huge spaces. Ever after big shrinking the depot seemed to be too big to be made in 10 weeks but I was already in love with the idea so I decided to risk and make it anyway.
I was inspired by “The Day the Wires Came Down” by Benjamin Carre and Black Wall Yards warehouse environment from The Order 1886 by Nestor Carpintero. Also, I would use as reference some concepts from Bioshock Infinite by Ben Lo and various photos of existing depots, workshops, railroads of that era and so on.
I started to think of modularity and how to make it the most rational way possible. I made a Trello board with all the assets and modules I needed. I think it’s very important to have such board or list, it helps to understand the scale a make correct estimations for a project.
When the list had been made I started making modules of the building and made several blockouts inside 3ds Max. It’s a good idea to set proper size for each module and make sure everything connects to each other properly early in the development.
Quickly after that, I switched to trams and I made them as modules as well. Each tram was made of pieces which could be used for making passenger\cargo variations and as individual props as well (tanks/pipes/engines).
Once I’d finished trams I continued creating small props and added them to the prototype. As a result, I had around 110 individual assets including 40 building modules and 14 tram parts.
At that stage, it was the best time to check the scale and make sure that all the objects, as well as the scene itself, looks good.
Most of the building parts, steel beams, railings, balconies, bridges were made using face weighted normals. I would use it for shelves, tables, frames and many small props as well. My plan was to replace some of them with uniquely made props later if I have time.
For High poly modeling, I used 3ds Max. Some of them were polished in ZBrush to add small dents and details. I tried Marmoset Toolbag 3 for baking and really liked it. It is fast, intuitive and it allows you to paint normal direction on top of the model.
Having so many assets was not an easy thing for the texturing. I decided to use tiling and trim materials with color tints as often as possible. Texel density for the most props is 1024px per square meter and I didn’t use textures bigger than 2048×2048.
Bricks and floor material is a blend of 2 texture sets via mask and vertex color + parallax occlusion mapping for extra volume.
Tram is a good example of using several types of materials. I used a few color-tinted trim sets (interior, exterior, painted metal, wooden trim for doors), several unique textures for bigger parts and texture atlas for smaller details.
Tiling and most of the trim textures were made in Substance Designer while for uniques I used Painter. I made smart material for Painter which had all basic surfaces such as metal, rust, wood, paint, rubber, dirt with proper values and I applied it to all unique props. If time is limited its necessary to have something like this.
Also, I used Quixel Suite to make a few wooden textures which helped to achieve realistic yet very quick result and Photoshop for decals and posters.
Another important part was adding storytelling elements, sings and various imperfections to make it more believable. I made various posters, newspapers, broken pipes. I placed instrument which was forgotten by some of the mechanics, puddles, wires lying on top of the metal beams, accidentally spilled paint and so on. Things of that nature bring more life to the environment.
Lighting was the most challenging thing for me and it took me a lot of time to find the recipe and right settings.
I wanted to make it relatively bright to show most of the environment and keep depot mood at the same time. This was one of the reasons why I chose ceiling with windows. It creates interesting volumetric effect and shadows and brings more light to the scene.
I used directional sunlight + skylight as the main source with several artificial lamps to light up dark corners and highlight the tram. I made just a few fake lights and most of the time I would adjust reflection sphere intensity if some corner or place looked too dark.
Even though in real life noon sunlight has a temperature of 5500 kelvins I made it a bit closer to orange color (4900 k) as well as I increased blue color intensity for the skylight.
An indirect lighting intensity was also increased (sun – 2, skylight – 5, lamps – from 1 to 1.5).
I had troubles with the way UE4 renders indirect lighting and many wall/floor modules had weird seems on the corners regardless of lighting quality. At the moment the only solution I found is to make bigger pieces. I hope it will be fixed in the future updates.
Volumetric light and Exponential Height Fog made a huge impact on the way environment looks and feels. I changed Volumetric lightmap density from 200 to 25 to achieve higher quality. The scene is relatively small so it didn’t affect memory and render time that much. An intensity value for the fog is 0.1 and 1.25 for scattering. Scattering for sunlight was also increased. In addition, I made a few movable red lights to increase a volumetric effect of railway signals.
Also, I added Planar reflection for the floor and Convolution bloom to make final result a bit more realistic. The last step was using various particles from UE4 starter packs such as dust, steam, and smoke.
My overall experience with the class was very positive. The class atmosphere and strict deadlines helped me to finish the whole scene within 11 weeks which was also very important for me. During the course, I’ve learned a lot about the engine and got familiar with many small things about the production in UE4. Also, each weekly lesson had a lot of additional information about the topic.
Thanks a lot to Clinton Crumpler and everyone who helped me with advice.
Grigoriy Karmatskiy, 3D artist
Creating a Cryo Lab in UE4
Interview with Adam Idris
In my spare time, I’m constantly working on small personal projects and recently have begun delving into game dev as I feel it would be rewarding to be able to explore, bring life and interaction to the environments I’ve created.
The Importance of a Design Brief
I should begin by stating that establishing a brief before jumping into any project I work on. It helps prevent scope creep and not become bogged down on arbitrary details.
Concept & Break Out of a Comfort Zone
I’m very passionate about sci-fi and cyberpunk visuals and because of that tend to lean towards creating scenes or models from that universe. Previously I had made stylized ancient ruins and an alien environment. I decided that this time I wanted to challenge myself in creating a dieselpunk inspired environment.
Part of the challenge was to emphasize mood and convey the story through visuals in a cinematic way. With that in mind, I needed to source for references.
Notable references were Guillermo Del Toro’s Shape of Water, Bioshock, and the industrial revolution.
In this phase, I took note of vintage architecture right down to lighting, fixtures, fittings, and surfaces that would be part of the environment.
To create a more cohesive and plausible environment, I tried to deconstruct what materials were used for walls, pipes, and windows during the 50s.
Before building modular parts for my environment it was important to establish a scale. The approach for this was to introduce an average scaled mannequin model and setup Maya’s units to match UE4. 1 UE4 unit = 1 meter.
Maya viewport, block in phase before exporting meshes into UE4
From here I have a grid that I built on and started to block in the major masses such as the walls, ceiling, and floors. By implementing the grid and a strict unit guideline I could ensure my assets would snap together as needed and always be on the grid. If I needed smaller incremental changes I would divide my grid by halves, quarters and eighths.
Just like painting, establishing the broad strokes gets you a sense of scale earlier on. Next was populating the scene with secondary and tertiary details. I spent most of my time in Maya and used a mass FBX exporter to get blocked in parts into the scene. This little script saved me a lot of time on the iterative process and automated the exporting process.
The following scripts were used for mass FBX exporting:
In UE4, early placement and blockout of environment
Medium Poly & Face Weighted Normals
After becoming aware of the production methodologies used on Star Citizen and Alien Isolation, I became interested in medium poly models and implementing face weighted normals into my asset workflow. This Reddit post was a handy overview.
For larger scaled assets such as the cryo chambers and bubble chambers, I added in extra subdivisions to account for the geometry appearing blocky and then applied Bnormal script to it. 1 to 2 bevels was sufficient to make a difference in the edges of my meshes. Here is the Bnormal script that was used for face weighted normals.
Texturing & Trim Sheets
With most of my geometry being either low poly or medium poly with face weighted normals, I was able to skip the high to low poly process altogether to focus on texturing.
To produce sharp normals for my trim sheet I opted to use Marmoset Toolbag. These normals were later thrown into Substance Painter to generate my materials.
High to low poly bake for trim sheets. Normals and AO done in Marmoset (Previewing in Painter)
To ensure that my textures for my trim sheet were given enough texel density, I set my trim sheet up to 2k bearing in mind that would be 4m thus dividing the geometry up to scale with assets in my scene. A peer, Dave, mentioned that he put his trim sheet next to his mannequin to better gauge scale comparison.
I needed to have a cryo chamber that was destroyed. The purpose of this was to create tension, suspense, mystery and to encourage the viewer to questions like “What was in this chamber? Where has it gone? Is it hostile?”. Not being particularly satisfied with the outcome in Maya’s Create Shatter a peer of mine recalled that UE4 had a mesh destruction simulation. I was able to quickly do this with UE4’s destructible mesh and a simple blueprint that ‘woke’ up the rigid body solver upon playing or simulating the scene. Still being relatively new to blueprints, I will admit, I stumbled my way through this part.
Destructible mesh simulation:
Films are notably the best point of reference for dramatic lighting. Early in my project, I knew that I wanted to invoke a mysterious but not horrific environment with a dense atmosphere.
I wanted to get a better grasp of how lightmass operated in UE4. As result, this part of the pipeline did require additional research. The following video proved to be very helpful in ascertaining the correct properties and settings to manipulate when building light:
To fake light bulbs, emissives became very handy for making convincing lights.
Lighting and reflection probe placement
Master Materials & Instances
With necessary key project management methods employed earlier on, it was important to be able to manage the project as efficiently as possible. It was important to note that instances based on master materials updated quickly which allowed for rapid iteration.
Water is always a tricky one to execute properly. I arrived at a solution whereby I plugged a ‘simple grass wind’ node into the world position offset of the material. This was only applied only the meshes that were inside the cryo chamber.
|Turn wind into the water? Just a simple grass wind node plugged into world position offset|
During the post-processing, I focused primarily on accentuating a contrast between warm (yellow) and cool colors (green and blue) and paid particularly close attention to how it was affecting the mood. When in doubt, I regularly referred back my images.
Creating a Teen Room Interior
Interview with Mateusz Kozłowski
Mateusz Kozłowski created an interior of the 80s-90s room that perfectly tells a story about a boy who had big dreams and once left the house to make them come true.
My name is Mateusz Kozłowski and I am an environment artist currently working at Immersion in Warsaw Poland. The first time I had contact with 3D was in high school with 3ds Max. After 2 years of graduation from my school, I started learning new stuff at home to get better in 3D. Following that decision, I got my first job, and I’m in this industry for about 4 years.
Though work keeps me busy most of the time, I really love to learn new things. This led me to enroll in the CGMA class UE4 Modular Environments with Clinton Crumpler. I’m glad to share a little bit of what I made in this course.
The main key that I wanted to learn was modularity. I’ve never worked with modular pieces, grid system, texture trims, so these were the main things that I decided to learn.
Start of the Scene & References
In the first week of the class, I had to define the theme of my future scene. Clinton told us to not make a large scene and rather focus on something relatively small. I obeyed him and decided to make a tenement house with an attic interior based on years 1985-95. I started to gather references on my Pureref board. Using Pureref is super easy, you have access to all reference that you gather plus adding comments is also a nice thing to have.
Once I had enough references, I started working on the blockout mesh in Modo. Blockout stage is very important in the environment production and has a couple of purposes. General view of the form and scale is one thing. The second one is connected with changing things because it’s much easier to alter something when we have rough shapes, so it’s better to implement major alterations of your scene at the beginning.
First thing in making modular environments is to make modular meshes. Here are the modular floors and walls I made. Everything is based on the grid so they will snap one to another in the engine.
Blockout mesh in Modo:
When I was happy with the initial effect I started to add more and more elements:
I imported my blockout to Unreal Engine 4 to see how it looks. In Affinity Photo, I painted things that are modular in green. Red color means normal assets and the yellow color is hero assets that will tell the story of this environment.
Further Modeling & Texturing
After I was satisfied with the blockout I began modeling high poly and baking them into low poly after unwrapping UVs. For the modular meshes, I tried to use texture trim to avoid a great number of unique textures. Here is a simple example, I decided to add a rough comment for myself to not get lost in what is what.
For most of the textures, I used Substance Painter. Tile textures are made from photos and Substance Share content. As for Substance Designer, it is a great tool to make tiling textures, and it’s a thing that I need to learn. There are people like Daniel Thiger, Enrico Tammekand, Javier Perez and other who make outstanding stuff in it. But my prime goal is quality of the overall look of the whole scene.
Setting up the lights was not an easy task. Two times I had to throw out my settings and start again because I was not happy with them. I was able to achieve nice looking shadows by increasing Source Radius in Point Lights. It’s also a good idea to increase lightmap resolution. In general, lightmap density should be “green”, and sometimes if it’s necessary to achieve the desired look it can be increased. For modular meshes, the cost of the lightmap is really low, so it doesn’t hurt to set up lightmap resolution for 256 or even 512 for specific meshes.
I made two Master Materials, one for assets and one for tiling meshes. From them, I made material instances. Master materials are great, they give extra flexibility on instances, so I definitely recommend to use them. Here is a quick example of the tiling material. Static switch parameter is also a nice thing to have in it.
I know that I could improve the scene in a few ways, especially in terms of lighting which is the key. I still need to learn more about it and practice. Decent lighting can help the project look much better.
The biggest challenge of the scene was the number of props. I know that in my next production I’m going to refine fewer elements. Making 174 meshes for a modular environment is quite too much, and it’s hard to control the quality of every asset when there are so many of them. That’s why I’d advise to make fewer assets but polish them better.
Creating Jewelry Store Scene
Interview with OweN Kiayias
Owen Kiayias reviewed how he created a very detailed Jewelry Store Robbery scene with Substance and Maya. Inspired by PAYDAY!
Hi, my name is Owen Kiayias, I am from Wollongong, Australia. I’m a graduate with an advanced diploma in Game Art and currently working on my environment art portfolio for employment.
One of the main aims of the project was to make a modern-day interior scene where I could visually tell a story of a recent event and gain a better understanding of lighting within UE4. I initially wanted to create a bank robbery scene, but then decided to choose a jewelry store. A lot of the inspiration came from the game PAYDAY, reference sources for design mainly came from Artco Group portfolio which is a store planner and designer company. They designed a variety of jewelry stores, and I gained good ideas for my own design.
Firstly I started with a basic block-out in Maya with the major structural shapes of the scene. As the final output was in UE4 and it was a realistic environment, I worked in centimeters and built the block-out according to the real-world scale, rounding off all assets to the nearest 5 cm, and then separating the structural meshes into modular pieces and making sure they would snap together on the grid. Door manufacturing and display fixture websites, as well as Google images, helped to study real-world dimensions.
After creating the block-out in Maya I then thought about the asset approach: whether I would use a tileable/trim sheet or make a unique asset. I exported the block-out meshes into UE4 to get a feeling of the space in the engine. Trello helped me a lot with the asset management. Everything I planned for the scene was broken down into modular and unique meshes, textures, materials, props, decals, design reference, a mood of the scene, etc. It was all listed in Trello, along with reference images of each asset for its visual look.
I worked on the structural aspects of the jewelry store first and started with those elements that had a dramatic impact such as walls, floors, ceilings, display fixtures, wall fixtures, ceiling lights, doors. Most of these assets are modular and were modeled in Maya. They had tileable textures or trim sheets which were then textured in Substance Painter or created entirely in Substance Designer.
At this stage, I was also working out what texel density I was going to use so that all future assets are felt as parts of the same world, and not out of place. Working on these large assets helped me to tackle any scaling and design issues early on.
Next, I worked on the smaller assets such as props such as the furniture, picture frames, cash registers, exit signs, and jewelry. These assets were all modeled and then textured in Substance Painter/Photoshop. Amazon helped a lot with the dimension references.
After creating the general space of the jewelry store I then moved to the story-telling aspect of the scene. I ended up drawing a quick top-down flow map to organize the series of the events that took place in the store to express the story of a robbery. I created such assets as broken displays, heist equipment, footprint decals, and dropped cash. I also went back readjusting certain assets that were already in the scene such as the busts and mirrors and tipped over stools. After completing the interior I moved on to creating an exterior to make the scene a part of the world instead of an empty void.
When creating the textures for PBR, I ran into some problems with the wood textures on the display meshes, as the albedo was too dark and couldn’t be read in the engine properly. So I went back and adjusted the albedo to be lighter.
Roughness plays a key role in defining readability of the environment and what the material is. Roughness variation in assets will bring believability to the scene. You can visualize your scene’s roughness in the buffer visualization.
A lot of the textures used RMA texture packing, which made it easier to manage the scene in the engine and also allowed me to use less texture memory with one import, compared to using three. I packed textures either in Photoshop or in Substance Painter using RMA preset.
RMA Texture Packing
I mostly created master materials with different parameters and then transferred them into Material Instances. It made the scene perform smoother and allowed me to adjust parameter groups on the spot such as tinting over the base color and readjusting the roughness values to avoid going back and re-authoring certain textures. The master materials consisted of a unique, tileable, and decal materials and one for foliage.
Read more about the master material production here.
Working with the glass material I kept it very simple at the start and came back to it later. Based on the scene lighting and the meshes that included glass material (broken or not) I ended up using vertex color information where I could paint in certain aspects such as the glass cracks, the frosted edges and dusty/dirty stained glass.
Each display fixture glass mesh that was damaged had its own unique mask and normal information maps, and I used vertex paint on them to get control of the appearance.
Mask and normal map
One of the problems I encountered was the readability of the cracks. I was not able to get the result until I ended up adding the masks to the emissive output and a small value to give it more pop, so it could be read from a distance.
Lighting and post process
Lighting is always a challenge for me and it varies from scene to scene. I wanted to convey a natural sunset lighting outside with a bright natural lighting inside typical for a jewelry store with a lot of reflective elements.
The lights were broken down into the following groups to ease the balancing and management based on their location within the scene.
- Ceiling panel Lights (green). Lights along the ceiling panels were all static spotlights with the same values for each. They have mainly placed over the display fixtures and along the walls.
- Main Lights (red). These were the lights behind the actual counters and the storage area. They were set as static spotlights, but at larger angles with a higher intensity and softer fall-off with shadow casting. Lights with a very low intensity were also placed just below main ones to give a little glow and bounce back onto the ceiling with no shadow casting.
- Display Fixture Lights (pink)/Center Display lights (yellow). The main display fixture lights were static and only covered the area of each display, accompanied by another point light filling in the center of the displays with a low intensity and no shadow casting.
- Side Display Lights (turquoise). I used static spotlights for these areas and with a very low intensity and soft fall-off.
- Chandelier (blue). The Chandelier consisted of 1 stationary spotlight just below it with an angle to what I wanted it to influence and 4 point lights above each globe to get shadows of the chandelier casting back onto the ceiling.
During the process, I also added about 6 spotlights facing directly to the ceiling throughout the interior to gain more lighting information as it was too dark.
As with lighting, post process in UE4 can transform a scene from nice to stunning and let you achieve a look you were going for. Lookup table is an awesome feature that can help with this. I took a screenshot of the scene in UE4 after lighting was baked then moved it into Photoshop and made adjustments such as levels, exposure, highlights, midtones, and shadows. Then I brought the adjusted image back into UE4 as a lookup table and got the look of the scene I wanted to achieve.
Creating an environment takes time, that’s why start the projects that are manageable and do not go overboard. Spend as much time planning as possible before diving in as it will save time in the long run during the project. Collect feedback: the places like Polycount or Jeremy Estrellado (Dinusty) discord are great places for this goal. Finally, make things that inspire you as it will motivate you no matter what the project is.
I personally want to say a big thanks to Clinton Crumpler for his feedback during the project.
Final images of the scene
Owen Kiayias, Environment Artist
Environment Production: Grid, Modular Assets, Decals
Interview with Pedro C. Prieto
Pedro C. Prieto showed how he worked on the amazing UE4-environment inspired by Helder Pinto‘s Arbor Vitae.
Hello, my name is Pedro C. Prieto and I am an extremely passionate artist who is always striving to produce the highest quality work. I was born in Lima Peru but moved to California at the of on 11. I went to the Academy of Art University in San Francisco, and have lately been taking classes online with CG Masters Academy. I live in San Francisco, and I am actively looking for an opportunity to work as an environment artist in the gaming industry. When creating an environment, my main focus includes lighting, composition, color values, and storytelling. Storytelling is the most important piece when creating immersive worlds for the player to get lost in, and I am a strong believer that environment art and design play a huge role in the narrative of the game.
Ever since I saw Helder Pinto show off Arbor Vitae in a presentation with Gnomon back in 2016, I’d been wanting to recreate my own Arbor Vitae-like version. Its vibrant colors, beautiful lighting, intricate sci-fi designs, and most importantly the narrative behind its creation, made me fall in love with the scene, and it’s what inspired me to attempt creating an environment of that caliber. However, I knew the time to take on this type of project was not right for me, since I was still learning about the use of multiple tools (Substance, UE4, Maya, etc). So, I waited and kept polishing my skills when working on different personal projects.
My first step was to set up my grid in Maya. I made sure that everything would snap to each other, and would follow grid measurements. I knew this was going to be a big project, so re-usability was one of my main pillars. My Maya file was set up to centimeters, and I used this guy as a human height reference. He is about 180 centimeters, so my main blockout piece master guide would be 200 centimeters by 200 centimeters. Then I made sure Maya UV editor would also follow my grid guideline, by defining a 20×20 X and Y length. Then I made different blockout variation pieces, a 200×100 piece, 100×100, 400×400, and some corner pieces. I was technically building a lego set that I would later assemble in UE4.
Once I had imported all my blockout piece into UE4, I started creating the space of my scene. I tried to avoid making my scene feel “blocky” by making it as interesting as I could with these simple pieces. As I started building my blockout, I realized that if I needed new pieces, I would go back to Maya to create them immediately. I ended up with 9 pieces by the end of my blockout phase. Since all my pieces snaped to each other and followed the “grid”, it was quite simple to get creative and come up with different layout variations. However, for my taste, this layout was complete and ready to go. Later on, when I started importing my final walls, floors, and ceiling pieces, I would just quickly swap my blockout pieces, since all of them respected the grid measurements.
Right from the get-go, I knew that I wanted to integrate a hero piece into my scene. So, during my blockout phase, I made sure to leave some space for this unique piece. I wanted this project to be all about speed, so I made a trim sheet dedicated to the hero prop only. I quickly made some rough drafts to eliminate the bad ideas. Unfortunately, I can’t show those models anymore, because I no longer have them. I didn’t want to completely rip off Helder Pinto’s hero piece, so I decided that the bottom piece would be a completely different shape than Arbor Vitae’s. Once I was happy with the basic shape, I took it a step further by adding bevels on the edges, and some additional details on the mesh itself. Lastly, I finalized the hero trim sheet and tested it in Maya before importing it into UE4.
Once I had my walls, floors, and ceiling placed with the Normal and AO maps, I moved into adding color. Since the very beginning of the project, I chose my color palette and stuck to it, with orange as my accent color, and black, white, and silver as supporting colors. I baked my Normal, ID masks, and AO maps using MightyBake, and used substance painter for the rest of the maps (color, roughness, metalness, and emissive). For sci-fi environments, I figured emissive lights play an important role, having them flicker, fade in and out, and on and off. So, I made sure to have a few extra parameters and switches that would handle my emissive maps in my master material.
Here is a picture of my master material, I added a few parameter nodes for value tweaking, especially for my emissive maps, but overall it’s pretty simple. I made one master material in UE4, and all materials with the exception of a few (water, terrain, fog, decals, etc.) inherit from this master mat. I also made a Decal master Mat. Decals were essential for breaking up the modularity repetition and adding sci-fi signs or such.
My main texturing software was the Substance suite. However, I did use some Quixel’s NDO for map conversion on assets that were at a distance from my main focus like the terrain and tree textures. I grabbed these textures from texture.com and converted them using NDO. For the rest of my assets, I used Substance Painter. I created a smart material for each color (orange, white, black, and metal/silver) that would save material values such as color values, rough values, and metal mask. So each time I brought in a new mesh, I would just place the smart material in the corresponding ID color. This technique saved me a lot of time since I was going to paint a lot of meshes for my scene.
The key assets for my scene were definitely my trims and my hero prop. Since the trims were going to be scattered throughout the map, they needed to be high quality. Therefore, I spent extra time polishing them. I made sure I came up with interesting sci-fi shapes for my trim sheet, this was a process that took me quite a few iterations. I ended up with two trim sheets, a horizontal and vertical one. For the hero prop, I made sure that I polished it and made it look as interesting as much as I could since it was going to be the centerpiece and the only unique piece of its kind. It took me 4 tries to come up with the final design, and a total of 2 weeks to have it up and running in UE4. Then my goal was to keep a uniform theme throughout my assets, from the color palette to vision of my scene. I made sure that all my assets felt like they belonged in the same environment, by using the same level of quality and stylization. And last, but definitely not least, I finished up my lighting.
I didn’t touch the lighting until all my assets were placed in the right location with their corresponding textures and materials. I wanted the main room where the hero prop is located to have a warm feeling and a blue-ish tone for the dark areas. I made sure the sunlight was hitting the hero prop to make it stand out. I added artificial lights on some walls, back door, and other assets to make them pop as well, but leaving the backside darker with a blue-tone was key in making the main room stand out. Lastly, I added a little bit of fog on my lights by using the new volumetric fog feature UE4 now provides for a more filmic look. Emissive lights also played an important role during this process, making sure they were evenly distributed, with their proper tones and values.
The project took me around 6 months to complete, it was my first time attempting to create a true game environment where the player could walk around and feel immersed (at least I hope so!). The hardest part was coming up with interesting sci-fi shapes for my normal baking. It was a process that took me several iterations to make it feel like a terraforming machine on the planet. Once I got my shapes ready, everything else developed organically.
Pedro C. Prieto, Environment Artist
Gothic Library in UE4
Interview with Eugen Canic
Hi, my name is Eugen Čanić, I am a 3D artist from Croatia. I studied architecture in Zagreb, Croatia and I’ve chosen to specialize in Environment art and Level design for video games. During my college years, I started learning 3D modeling aimed at architecture with software like Sketchup, Rhino, Revit. Only after my 3rd year of college did I discover the wonderful world of programs that make game production a reality. I started experimenting and working in 3ds Max, Maya, Substance Suite, ZBrush and so on… and could not stop myself. I decided I wanted to pursue a career in game development. Since then I worked with a few local indie teams on several games and worked at various studios as a 3D modeler. The project for CGMA class was just a stepping stone for my portfolio with which I aim to enter the games industry.
A friend of mine recommended CGMA classes to me last year during the IFCC festival in Zagreb. I have been doing Props and Environment Assets in 3D for some time now and wanted to take my art to the next level. I knew I wanted to specialize in Environment art and Level design so when I found the UE4 Modular Environments class by Clinton Crumpler I thought it to be the best option. Before that, I had just been starting to use the incredible Unreal Engine 4 and thought this course could also help me improve my UE4 knowledge and skills. But most importantly I wanted to make a game ready scene that could be used in a game level and go through all of the production phases needed to achieve such a goal. With this project, I wanted to create a coherent environment that is intriguing and mystical but also explorable and could be fun to play.
References & Blocking
At the time I was playing Bloodborne feverishly on PS4. It is a really inspiring and meticulously crafted game. The environment art and levels are beyond exceptional. I have always had a thing for libraries, so naturally, the Cainhurst area really stuck with me, especially its grandiose library. I knew I wanted to do something with the elements of gothic, medieval, and fantasy. We had a defined time frame in which the scene should be produced so I opted for a smaller scene which could be completed in a few months.
I started by collecting images and references for the project, looking for anything ranging from gothic and medieval architecture to video games with fantasy and medieval atmosphere and design. I stumbled upon a small medieval library in Manchester – the Chetham’s library – which seemed perfect for the job. It has been preserved almost intact since the time it was built and had a dark and gloomy gothic vibe about it. Further research led me to a lot of other pieces of English Gothic architecture which I later used for some of the details in the scene. I used the Manchester library as the basis of the scene layout but added some elements and details from other examples I found, like the Gloucester cloister and the Oxford college hallways. I started making a blockout with some basic meshes just to get a feel for space. After a few iterations, I was satisfied with the layout and the scene I would be working on. The final layout was a combination of the real Manchester library with the addition of some custom spaces from various inspirations.
One of the first tasks I had concerning the library was breaking down the interior into sizeable modules. I went through all the images of the Manchester library I could find on the internet, also using archive footage and several documentaries online to see a video walk through the interior. Video footage helps even better to see and feel the chunks, nooks, and crannies of an architectural space that you just can not see in one image. I listed and defined all of the possible modules, their respective materials, and details. This whole process was backed up with paying attention to gothic architecture references. Besides the modules that come directly from the Manchester library, I also used some pieces from other examples of English Gothic architecture, using vaults, corners and some window details from other period pieces.
This was the first time for me, making gothic architecture and ornaments for detailed models. I started by collecting a lot of old architectural illustrations depicting gothic details and even construction references. This way I was able to mimic the process it would take to make the arches and vaults in real life. Using the same mathematical principles and going through the same steps you would take to make them in physical form I achieved it in the digital medium.
The key feature of all the modules was to make them reusable in different situations, being able to rehash them in any way and still get a decent gothic library level.
The meshes and asset packs were determined by the aforementioned reference list. The assets were divided into several groups: modular assets, unique assets, and hybrid assets. The modular assets had shared textures and were generally lighter on the poly count. The unique assets were all of the little details like the books, candles, chairs and so on that had a separate texture set and a very simple material setup. The hybrid assets are something in between the two previous types, having joined textures but being more polygon heavy. Those were mostly the trim sheets used around the environment. Most time was put into unique assets simply because they required most of the technical work – making a low-poly, then a high-poly asset, combining them in baked textures and placing them in the engine. Biggest challenges surrounding the import of said assets were preparing them beforehand. Making sure the UVs were correct and not overlapping, the lightmaps that the Unreal engine creates were OK, and that the mesh hasn’t got too many polygons.
Since the planning phase, I wanted to make the books procedurally. Not only would it make the book placement more interesting and organical, but it gave me a chance to learn more about the Unreal’s Blueprints. For inspiration, I looked at various UE4 projects that did the same thing with books and similar props. In the end, I was most influenced by Aiko Shinohara’s Oxford Library project in UE4 which was also a stylistic inspiration from the beginning. The books are actually randomized from one single mesh that had 2 to 3 texture variations mapped in the material editor. It was essential to get the size, the tilt, the color variation and the length of the book row defined by the single blueprint. This way I could place a stack of books anywhere in the scene and then adjust them to the needed situation. The result was getting a randomized row of books for the various shelves in the library but it also gave me a possibility to place them freely around the place – giving way to a more organic scene which could feel as if it was used by the old librarians.
Lighting in the scene went through a lot of iterations. I knew from the start that I wanted the place to be dark and gloomy but to also have highlights of candlelight that catch the viewers attention. First came a light blue directional light which was to mimic the moonlight. The interior was made very dark from the start with individual point light being added gradually to liven up the scene. The point lights are combined with several light meshes. The individual candles, candelabra and wall lights all got a light source of its own in their own separate blueprints. This time I used blueprints to have more control over the whole scene, changing simultaneously the properties of light in all of the linked assets. The light assets were then scattered around the scene to not only highlight the architecture but also to get a sense of place being used. The candles were completely made in polygons, with the fire being animated and textured through the material editor. The flame flickering was achieved using the vertex world displacement with mathematical nodes in the editor like a sine wave and the panner. To finish things up, volumetric fog and dust particles were added to give the place the feel of an old dusty library.
This course has been a great experience for me. Not only did I get a chance to learn from the industry professional like Clinton Crumpler, but also to communicate with other artists during the course, get their feedback and share experiences and knowledge. I am glad I participated because of all the new stuff I learned concerning the level and environment production through all of the phases – from start to finish. I am proud to start my portfolio with this piece and hope to make it one of many in the upcoming years.
Eugen Čanić, 3D Artist
Interview conducted by Kirill Tokarev
Postwar Environment in UE4
Interview with Adrián Scolari
My name is Adrián Scolari, I’m from Argentina and I moved to Spain 18 years ago with one goal in mind: to work as a 3D artist for games. Over the years, I have worked on several projects for PC and mobile games like Asphalt 8, Asphalt Xtreme, War Leaders, and many others.
Goodbye, Soldier: Start of the Project
The scene Goodbye, Soldier is inspired by a short comic story called War III written by Ricardo Barreiro and Juan Giménez‘s art. When I first read it, I was 11 years old. The story tells us about a group of 6 soldiers patrolling the streets of ruined Paris after the blast of several neutron bombs. The city should be empty but suddenly they are under attack of a sniper who never fails.
Since then I wanted to make a short film with it but, to be honest, it’s too much work for one guy. So I decided to create only a part of it in UE4 to practice and improve my skills in lighting, composition inside the engine, and texturing with Substance Designer.
My main goal was the reproduction of the entire floor like in the comic but using the same pipeline and limitations used in any AAA game. I started working on the big assets I knew I would need, like the gun turret, generator, audio recorder, ammo boxes, garbage, debris, etc. The list was very long and took me several months of work to finish them all. In between, I started Clinton Crumpler‘s UE4 Modular Environments course where I had to choose an environment to do. I thought this project would fit perfectly for this so I continued working on it during the ten weeks of the course and a couple of months after that.
References & Blocking
I collected thousands of pictures of ruined and abandoned building interiors, peeled walls, wooden painted doors, frames, and so on.
I started setting up 3ds Max grid to match with the grid in UE4 (10cm grid spacing). Based on my measurement research in the real world I created modules for the walls, floors, and ceilings. Blocking out in Max helped me to correct the measures for each module pretty fast before start working in UE4.
I decided to create the wall for the hallway with both sides, one facing the hallway and the other facing the room interior. Both sides would be different and would have different IDs to allow me to use more than one material later in UE4. The other wall’s assets are just boxes with 2 UV IDs.
Sniper Turret & Other Props
The most challenging prop I made was the gun. In the beginning, I tried to keep the original design from the comic but the shapes looked too simple and the 4 legs were too big. I started modeling several mechanical pieces using references. The first prototype kept the original idea but looked too sci-fi to me. Due to the size of the main gun and the distance to the window, the legs had to be huge occupying too much space. Reducing the leg size couldn’t work because it would look weak at the bottom compared with the upper part.
So I started from scratch using the Browning M2 50-Cal and the remote sniper gun used in The Jackal movie as references. Once the high poly model was ready I started the retopology process in 3ds Max. The final polycount for this asset was 72K triangles including the ammo belt. I used UVLayout for the mapping process and it took me a few days of work due to the number of pieces. I created 3 textures sets baked and painted with Substance Painter, 2 for the turret and another small one atlas with the tileable stuff like the ammo belt, cables, and connectors. With NDO I added a lot of extra details like the patterns on the scope cylinder, screws, etc.
Materials & Textures
I’m not an expert in Substance Designer and this project gave me the opportunity to improve my skills. Most of the tileable textures were done with it.
In SD, I couldn’t get what I wanted for the peeling wallpaper texture, so I decided to use another method. First I created 2 different wallpaper patterns, clean with no damage or dirt on it. Then I used Photoshop to paint 2 different masks with the damaged areas. Using NDO, I created the normal, AO and roughness maps for each mask.
Once in UE4, I created a Master material using the mask to show the concrete or painted wall under the wallpaper. Converting specific nodes to parameters allowed me to change all I wanted in the instance materials.
Debris & Damage Decals
Using ZBrush and Photoshop I created sets of alpha-blended decals to add damage variation on the walls, pillars and concrete borders with one tileable texture.
The main room was the key location in the scene so first I wanted to set up the direction and angle for the source light facing the windows. To get the horizontal blind light pattern shadows on the wall I added one spotlight for each window outside with the same angle as the source light (I had to increase the lightmap size for those walls to make them visible). Inside the room, I added another two spotlights very close to the windows with a wide open cone angle to fake the light amount inside but with the cast shadows option deactivated. Then I added several point lights around to fake the bounces and get some light in darker areas. Along the hallway, I added more point lights at a very low intensity that cast no shadows.
To improve the lighting and the mood I added some planes following the angle of the source light with an animated material. It simulated the light passing through the gaps of the broken blinds.
Cinematic & Cameras
Since the beginning, my idea was to create a walkthrough video animation to show the entire scene. I started placing several Cine Camera Actors. The good thing about this type of cameras is that you can change the post process parameters for each one if you want to. I added eight cameras (4 animated, 4 still). Animating cameras is a very simple process using Sequencer in UE4. This tool is a multi-track editor where you can create animations for your cameras and add sound, transitions and some other things.
I got a problem outputting the animations as a sequence of jpg frames. The whole movie looked choppy. I tried many things and the only solution I found was to outputting the animations as uncompressed video files. I think the hard disk space or writing speed has something to do with this issue. Anyway, once I had all the rendered video sequences I used Adobe Premiere to cut, add transitions and music. My first video was blocked by YouTube due to the song copyrights. So I created the second one using a masterpiece by my favorite composer.
The biggest challenge in this project was to get the mood and lightning I wanted. I must say the entire process was hard and I learned a lot. I had a lot of fun, too. I can’t say exactly how long it took me to finish it but no less than 8 months.
Modular Gun Deck
Interview with Melisa Cetinalp
My name is Melisa Cetinalp and I’m a 3D Environment artist in Toronto, Canada. I grew up in a large family with many brothers and we spent the bulk of our childhood huddled around the TV playing with the Nintendo64. I knew since I was young that I wanted to be a part of the field that had such a huge impact on my childhood. This has led me to pursue studies in Game Art at George Brown College, as well as taking CGMA courses to supplement my knowledge. In my free time, I am either browsing Polycount, 80 Level, or Artstation. Having just recently graduated, I’m eager and excited to make the transition from a student to a professional in this field.
Alongside my studies, I took Clinton Crumpler’s CGMA course to further understand the modular workflow in Unreal Engine. In the past, I often shied away from the technical aspects of the 3d modeling pipeline as I found it hard to understand. With this project, I wanted to challenge myself to fully understand the modular workflow that is standard in the field, while still creating an environment that felt organic and had a story.
The course ran for ten weeks in which our first week was spent gathering references and pinpointing a specific scene to work on. I’ve always been interested in stories revolving around pirates and sailing and played with the idea of creating a submarine or ship interior. I decided to go with the gun deck of a ship as I found it had many repeating elements that would perfectly suit the assignment.
Pinterest has a vast resource library that allows for quick reference gathering. Rather than coming up with the asset list myself, I was inspired through images found on the site. I was even able to find an example of a well-documented gun deck on a ship called the HMS Victory.
We were urged to think of the story or idea we wanted to tell through our scene. Although my reference material was of a recently built ship, I wanted to tell the story of a crew that lived in the 18th century.
Creating a block out was quick and easy. Things to look out for was scale, so having a reference dummy to compare against different areas and props was handy. It’s better to keep things very simple and blocky as we are just trying to get a sense of how the objects will fit each other and occupy the space in the scene. In 3DS Max my grid spacing settings were set to 10 cm to match unreal engines default settings.
I created ceiling capstones and pillars separately, however, I was later advised by Clinton to group objects that would repeat together. This would cut down on texturing many separate objects, as well as the time it would take to place things individually.
Trim sheets are a staple to the modular workflow as they allow us to pack small details into a single texture atlas that is recycled throughout the scene. Things such as the edge of a window, or a row of vents are great to pack onto a trim sheet. Since I worked with a large wooden area, there were fewer options. However, I was able to use trims for larger objects such as the cannonball sockets, and bolts in the ceiling.
If you have a material that appears on various objects in the scene, such as rubber, you can have a strip of rubber in your texture atlas and UV unwrap the object to that area. This came in handy when I added in hooks and bolts to my scene, as I was able to flatten these objects into the cannon holder area of my texture atlas that shares the same metallic properties. It is better to reuse these areas of my trim sheet since they are small enough not to draw attention
When it came to texturing objects, I learned about the importance of using gradients. A good prop, no matter how new, should always have some sort of weathering to it. Gradients help lead the eye to a focal point. We learned that noise should populate as a gradient from macro to micro detail, rather than uniformly around an object.
I also incorporated this idea in the coloring process, transitioning from a darker to a lighter shade in the walls, masts, benches, etc.
The floorboard was redone many times in Substance Designer. At first, I had the wooden slates tile at a high value. However, these looked noisy and didn’t match the scene. I received a lot of feedback from my teacher Jamie Richards, who helped me breakdown my reference material and advised me to create long wooden strips rather than separate boards flushed together. This looked much more pleasing and natural in the scene. It can be frustrating when the asset you’re working on doesn’t look the way you envision it to, which is why constantly consulting your reference is important.
We worked with master materials in which all of our inputs were converted to parameters. The actual materials used are instances from which we replaced textures and moved some values around when needed.
At the end of the ten weeks, I was nowhere near where I wanted my scene to be. I reached out to my professors Billy Matjiunis, and Jamie, who both advised me to redo many of the assets in my scene. It can be frustrating having to once again start an asset from scratch, but looking back, I’m glad I did.
I got about to recreating many assets. The stools were too small and distracting so I changed them to benches.
Billy told me that straight lines such as those on tables and benches stood out too much and that I should use more geometry to break up the silhouette of such assets. Adding a few extra edge loops, and scaling and moving vertices around read much better to the eye.
Another way to break up symmetry and repetition is to simply mirror objects in Unreal Engine. When building props I made sure all sides looked polished so that mirroring objects over would allow for reusability.
My favorite part of the scene was creating and placing decals everywhere. Creating decal sheets is a good way to take a break from larger tasks in the scene. Decals can be relatively cheap and can really help with the storytelling aspect of a scene, as well as breaking up large areas into smaller areas in a natural way.
Since my floorboards were now giant strips, I was advised to create the ends of the floorboard as decals and manually place them. This allowed me control of where I could break up repetition, as well as framing the scene in a way that created lines for the eye to follow. I also created blobs of tars that matched my reference and placed them sparingly to add to the overall cohesion.
I used flour decals to mess up the floor, and many dirt decals populated along the edges of props where dirt would naturally collect.
Compared to my reference of a newly built and kept ship, decals allowed me to push the storytelling aspect of my scene to one that feels lived in.
Lighting is integral to making a scene. It contributes to the mood and overall ambiance of a scene and goes a long way in telling a story. Different colors can evoke different responses in people. For my scene, I wanted a warm wash over the room. I chose orange hues and a sunset vibe that complimented the browns of the wood. I also contrasted this color by using purple hues for the shadows. The slight fog helped the space feel dusty and old, further contributing to the story.
I recently attended GDC for the first time as part of a school trip. It was a great experience and I received a lot of feedback on this scene. It was suggested that I take another pass on my lighting and to improve a few assets.
Areas such as the rope net are a time-consuming prop as the ropes are knotted together. Initially, I just had the ropes overlapping, but through closer inspection, this became very apparent. I decided to create little knots, as well as frayed tassels to polish of any rope assets. Although my screenshots do not necessarily focus on these areas, spending time on these small details helps to sell the overall look.
Although there are many areas I could spend time further improving, I am ready to call this piece done and am eager to apply my newfound skills onto new projects.
This scene really pushed my knowledge not just in the modular workflow, but also in my overall knowledge of what makes assets and scenes read nicely, as well as different functionalities in Unreal Engine. I had tried a modular scene in the past but struggled to fully understand the process. Under Clinton Crumpler’s thorough guidance, I feel my knowledge of modularity, and the overall game creation pipeline has improved immensely.
Thank you to CGMA and 80 Level for allowing me to be the best artist I can be, and for giving me the opportunity to share my work. If you have some time, please take look at my Artstation! I’d love any feedback moving forward!
Thank you for reading!
Modular Scene in UE4: Blockout, Vertex Paint, Decals
Interview with Jason Cheung Yi Kai
Hi, my name is Jason Cheung Yi Kai, I’m from Hong Kong. Let’s talk about how I got into the 3D world and why I joined CGMA. Feel free to skip this part to the breakdown highlighted below if you just want to know more about my environment made at CGMA.
I started to work in the game industry around 7 years ago, starting as a programmer, moving on to make my own indie game, then becoming a 2D freelance artist, and after that – a full-time Lead artist. I work in the Asia mobile game industry drawing kawaii anime girls, gotcha machines, lots of FTP UI / particle systems. What I want to say is that I think it happens to a lot of us after graduation where we want to do so many things but still can’t find one thing that we want to stick to. Time flies by as we keep searching for what we truly want to do with our career. And I think that’s ok, and it’s normal. There is always something new and exciting to try. But one thing that never changes is that I always end up working on games. To be more specific, I always dream about making atmospheric environments for my friends to explore in video games. Last year in December, I decided once again to quit my job to self-learn all the new 3D software solutions and get back on track focusing on 3D environments.
In these 7 months, I started googling and watching lots of free YouTube tutorials, then I started buying tutorials from Gumroad and Cubebrush. One of my favorite tutorials is by Simon Fuchs – Military Radio tutorial. It teaches the basic workflow of modern 3D props, starting from a blockout to high poly, then baking to low poly. It was all new to me since the last time I learned 3D was over 7 years ago back at the university. The tutorial also shows some basic Substance Painter techniques, such as creating edge wear, mixing grunge masks to build interesting roughness for the 3D meshes, etc. It can be a bit challenging for a beginner but definitely worth the pain to finish it all the way. You will feel rewarded when you see your first industry-ready product. One thing I enjoyed the most is how the tutorial video didn’t cut out all the trial and error, so we can all witness how Simon solved the problems in real-time and listen to his thoughts on how he produces high standard assets.
After a lot of online tutorials, I wanted to make my own 3D environment. I tried to follow the tips and tricks learned to make modular pieces and trim sheets, but I still felt a bit lost. It is hard to understand if I’m on the right track or not and at the same time, it is difficult for me to find any informative critique or feedback online. That is when I decided to join the 10-weeks Modular Environment course at CGMA and learn from Clinton Crumpler.
The course is perfect for people like me who want to learn from professionals overseas. There are heaps of learning material and video tutorials provided by Clinton all in one place. But the best part is the Live Q&A section and weekly feedback, where you can feel no shame in asking any 3D related questions. Clinton is a very knowledgeable professional environment artist who can give you useful personal feedback and push your work to the next level. Another cool thing is that I can also learn from other classmate’s assignments through feedback provided by Clinton. Because this is a group learning course, we can take this opportunity to motivate each other toward the same goal and grow together. Anytime that I got stuck during the course, the classmates and Clinton were willing to help in the Discord group which saves you a lot of time otherwise spent on figuring out solutions all by yourself. All in all, my goal for this course was very simple – a great 3D environment piece for my portfolio. And after 11 weeks I achieved it! Although my final product may not be a masterpiece, it helped me improve so much compared to my old work. And now I’m here to share my process. Hopefully, you will find something useful!
Detroit Become Human in Hong Kong Fan Art: Breakdown
Reference & Planning
The first step before starting most projects is referencing. Gather as many references as you can to get a better idea of what kind of objects you will need and how they will look – a great tool for this is Pinterest. It is very tempting to start the project straight away without any references but this will likely cause more unnecessary work down the line unless you are a high-end industry professional who has a massive visual library inside your head. I always suggest having lots of references for every single project you start.
When you are searching for reference, remember that not everything must look exactly the same as what’s on your mind, because you don’t want to waste too much time searching for that one image. Also, it is a good opportunity to accept cool new ideas to spice up your scene. For example, while I was searching for lots of old traditional Hong Kong cafe furniture I accidentally found a fancy red couch on Pinterest. The red couch inspired me to make it one of the focal points: this is where a leader would sit to impose his/her authority in the space.
I also like to create another Pinterest board focusing on finding lighting and color references for my scene. It helps to get a better idea of the mood, drama and lighting composition. That is when I got the idea to add lots of window blinds on the side of my 3D environment and red neon lights shining from the outside illuminating the gloomy green room. You can search for Cinematography references to get lots of atmospheric shots. Mine scene was inspired by Christopher Doyle.
Lastly, before you finish referencing, scroll through the board again and get rid of the unnecessary pins, try to only stick to one or two color schemes and one or two settings. Don’t let your board get too messy. The bad thing about personal projects is that you can have so much freedom that it’s easy to lose your direction. Therefore, references can help narrow down your target.
After referencing, I always like to do a very rough sketch or photo bash to see if all elements match together. This can be a very ugly sketch but it doesn’t matter as long as you get the whole picture in your head and feel confident to move on to the next step. It is always good to sketch the ideas out than just imagine them in your head because our imagination always shows things far prettier than they are in reality. This rough sketch can also guide you later in the project. We don’t want to keep changing ideas in the middle of a 10-week project. Commit to it!
The next step is blockout. During the blockout stage, we will need to make sure everything snaps well together and scales properly. Therefore, I always start from importing a human.fbx as my scale reference – all other blockout assets will be based on it. After that, we will need to make sure to set up our grid in the 3D software to match with Unreal editor. You can follow this tutorial to set it up properly.
After that, we can start building our blockout. Remember that all blockout shapes should be extremely simple, don’t invest too much time into complex shapes yet. All we need to focus on right now is the overall silhouette, scale, and snapping it nicely to the grid. Another thing to keep in mind is to always start from the larger meshes like a wall, floor or pillar and skip the small assets like a bottle, books, etc. Just like in real life, you don’t put furniture in before all the walls and ceiling are properly built.
Export Assets into Unreal Engine
After most of our blockout is finished, I usually do an auto UV in Maya and set up the pivot point at the bottom left corner, so that the pieces can snap easily together like lego pieces. When exporting my modular piece, I like to use the Game Exporter in Maya – remember to check Move To Origin and set up the export path. It can save a lot of time when moving your modular pieces to the center. Freeze transformation every time you want to export. Also, you only need to set up the export path once and it will be saved for your next export.
After we export the assets into Unreal we can start building our scene. During this stage, we can do as many changes or rescaling as we want. It is recommended to spend some extra time going back and forward to make sure the scene looks interesting in different camera angles and all modular pieces snap together without any gap in-between.
I also like to set up some very basic lighting early on to get a better understanding of my scene composition. However, you don’t have to do this if you’ve never baked lighting in Unreal before. Lighting can be very time-consuming, so don’t waste too much time on it and just use the default directional light – all the lights will be modified anyway after the whole scene is set up.
Usually, one problem we will encounter during the blockout stage in Unreal is the light shining through some of the modular pieces which create a lot of ugly light bleeds after the light bake. What we need to do is build a light blocker to get rid of all of that light bleeding. A light blocker is a single mesh that covers up the whole room, so the light won’t shine through it. You can see it in the image below. Keep it in low poly, with no textures and UVs because no one is supposed to see it unless the game is bugged. The light blocker will be placed outside your scene like this.
Tileable Trim Sheet
Once we are happy with our blockout, we can move on to texturing! Again, always start from the big assets first.
Before we jump into Substance or Photoshop we should go back to our references and analyze what can put into the trim, like in the image below. Try to observe any repetitive patterns or textures that can be used all over your scene.
Here is a great video by Tim Simpson explaining in detail how to use trims: https://www.youtube.com/watch?v=IziIY674NAw
Another thing we need to be careful about when creating a trim sheet is to make sure each trim snaps nicely to the UV grid. Before CGMA, I used to create different ratios of trims in Photoshop and ended up having a hard time UV mapping and making them look seamless later on. Therefore, remember to keep everything snapped onto a grid either 1×1, 0.5×0.5 or 0.25×0.25. I usually start by making a Trim Sheet plan in Photoshop, using the grid and ruler tool to plan my trim sheet ratio.
Lastly, let’s talk about UV mapping using the trim sheet method. It is ok to create some extra edge loops to match our trim.
For example, in the wall shown in the image below, I added one edge loop at the top part and UV mapped it to match my beveled wall trim. I also added a few edge loops in the highlighted area, so that I could match it with my flourish pattern trim. Then, the rest of the mesh will be assigned to another tileable material.
Another example is the pillar in my scene: I added some extra edge loops shown in the image below just to match grout and mosaic tiles. It can be vertical, horizontal or curved.
One more example is the window blinds – they all use the same trim sheet.
There are three types of textures: unique bake, tileable and hybrid. Unique bake will always look the best. However, learning to be an environment artist will definitely involve using more tileable techniques, such as the trim sheet. It can save up texture size and reduce time.
Environmental storytelling is always one of my favorite subjects to research where the story can be told through the placement of each object, the type of object, movement, lighting and more. You can learn more from the article by Harvey Smith and Matthias Worch if you want to know more about it.
I decided to make a scene combining the rA9 backstory of “Detroit: Become Human” with an urban Hong Kong theme. It was originally planned to make just a Hong Kong hideout, however, my plan slowly evolved into this new idea influenced by Hong Kong anti-extradition bill protests in June 2019. I embedded this theme into my scene to give the audience an opportunity to choose how they want to feel – similarly to Detroit: Become Human where people can choose to view the story from different perspectives and support different opinions.
Following this, I want to talk about three things that can increase environmental storytelling in your scene:
- Decal and Vertex Paint
- Lighting and Atmospheric fog
Decal and Vertex paint
The decals and vertex paint play a big role in environmental storytelling. For example, the dirt and leakage on the wall are all vertex paint. It not only helps to break the repetition of a tileable texture but also makes it less plain and tells a better story about the place. The viewer can understand that it hasn’t been clean for a long time and the people who live there might be too focused on something else than cleanliness. Here is an example of before and after vertex paint:
Vertex paint works by blending two sets of materials using a custom painted mask in Unreal. However, if we are just using the default Unreal brush, the vertex paint will blend poorly and look fake. A tip to make your vertex paint blend more naturally is to add an extra mask into your Vertex Paint Material. Here is my material setup:
As you can see, we blend two materials by using MatLayerBlend_Standard, and its alpha input will be our Vertex paint mixed with our grunge mask. I used HeightLerp to mix the vertex paint with our grunge mask and also added some parameters to adjust later such as the height contrast.
You can experiment with a different black and white mask to create various blend results.
My wall tiles are also using vertex paint. The image below shows what it looks like in the vertex paint mode. The awkward green and black tile at the center is the Unreal vertex paint. Green means it will be showing material B and black will be material A. You can see that the paint is in a very low resolution and quite messy but do not worry because the black and white grunge mask will help blend it very nicely.
Decals are like a spray for us we can cover everything in the scene with. For example, the bloodstain and trails are all decals carefully placed in a certain area. Again, decals to create more drama in the scene and break the repetition. For example, all the rA9 graffiti on the wall, bench, table, etc. won’t be using the vertex paint method because it can be quite expensive. Also, sometimes vertex paint can still look repetitive. Decals give more freedom and can be scaled any way you want. I highly recommend learning it, as it can add lots of character to your textures.
For a beginner, the lighting might sound like a very easy task but actually, it is very difficult, especially when creating interior lighting. I tried so many iterations adding different lighting colors, more lights, post-processing effects, fog but it ended up nowhere. I think it is common for a student like me to go crazy by adding too many lights and effects too quickly. After this project, I found out that I should start from big to small just like with the blockout. It is better to delete all the lights, post-processing effects, and fog except for the skylight and everything outside the window. Then, we can slowly fine-tune the exposure in the Post-Process Volume, adjust the exterior light’s intensity, the Indirect Lighting intensity to bounce more light into the room and lastly, the Lightmass in the World Setting.
I used Preview light quality for faster bake results as there is no need to bake with high settings just yet. Now the scene looks super dark and it is perfect! It is almost like an empty canvas for me to fill with lighting effects. What I’m going to do next is add only one key lighting into the interior. And it already looks a lot more realistic and much cleaner than before.
As I do this, I like to check the light brightness and contrast in the Detail lighting View Mode because when I slowly add more small lights and tint into the scene it is very easy for the scene to become overexposed.
I will only put lights around the area I want the audience to look at, such as the red table, monitors, the messages, bloodstains, and drones. Also, I try to limit my scene to only two colors: teal and red. This way, the scene won’t look too messy.
During the CGMA course, I wasn’t able to put any animation into my final submission. However, I feel the movement is very important in the environment or else it can feel lifeless. Lucky with modern technology, simple animations like spinning fans or floating drones aren’t hard to create. I spent one extra week polishing up my scene, adding animation and particles in it. I wasn’t making professional-quality animation and kept it basic, but I feel it added so much to the scene – the blinking police lights can indicate a crime scene, drones rotating left and right can express a search for something. The wind blowing heavily outside the window, the dust flowing in the room, etc. – all of this helps heighten the atmosphere and storytelling in the scene. The particles weren’t created by me and were taken from the UE Elemental Demo scene. I recommend downloading or buying particle effects from the Unreal store if you are not planning to be a VFX artist. Get the effects that suit you, then modify them. For example, the dust effect in my scene was used as a blizzard storm, and all I had to do is to slow down the speed, reduce the spawn rate, and the opacity.
Time is always the biggest hurdle especially when I am new to something and trying to make a scene of a high standard. Try to learn from experience and improve on your next attempt. Reading more 80lv articles will help too! The other challenge was to create realistic micro details. For example, it is easy to make just a mosaic tile floor but it is not easy to make a believable mosaic tile floor. It will require the right amount of edge wear, dirt at the right spot, the right amount of roughness and randomness to break the repetition. Again, I think this can be improved by making more materials and watching more tutorials. Also, join the DiNusty Discord group – it is a friendly community full of professionals and beginners who are willing to share and help each other.
CGMA is a fantastic school. I was able to finish this whole scene in 11 weeks thanks to Clinton’s guidance and all my classmates. Like I mentioned before, the best part is the feedback, Live Q&A and the discord group. I can read as many online tutorials as I can, but nothing can replace getting direct feedback from professional and being motivated by your classmates.
I do hope you found something valuable here! And thank you 80lv for giving me this opportunity to share my work.
Jason Cheung Yi Kai, Environment/Prop Artist
Interview conducted by Kirill Tokarev
Creating Modular Shipping Warehouse in UE4
Interview with Laura Sjdik
My name is Laura Sajdik, I’m a 3D artist from Toronto, Canada. I originally studied animation at college before deciding to go into game art. Over the last several years I’ve held a variety of roles while working in mobile games from character art to animation and I am now focusing on AAA environment art.
I wanted to take the CGMA Modular Environment course for a while as I wished to push my skills further in creating this type of environment. My goal was to learn exactly how to go about planning and building a modular level from start to finish as well as feeling comfortable in Unreal authoring materials, lighting the scene and overall navigating the engine. The course was invaluable – I learned a ton in just 10 weeks! Needless to say, the more time you can put into it the more you’ll benefit from it. The lessons were broken down step by step, which made setting and meeting weekly goals achievable and allowed me to progress through the scene at a steady pace. Talking with other students in the class was also key for helping to solve any issues I encountered or for feedback and suggestions on how I could improve the scene.
The core idea of the environment for me was to choose something modular obviously, something that could look spacious enough but use minimal props to flesh out the scene. I had a few ideas in mind but ultimately settled on the warehouse because there is naturally a ton of repetition going on and it’s quite a versatile environment that can be found in a variety of games. My main inspiration for the look of the scene was Mirror’s Edge – clear shapes, clean textures, a clear path through the environment and not a lot of clutter.
The boxes in this level were really fun to do. My first attempt at making them was a simple cube mesh with a texture that looked like they were stacked – however, this didn’t give me the variation I wanted and the surfaces looked too flat. Even with some parallax occlusion mapping in Unreal, I felt like these boxes were such a big part of the scene that they deserved more detail so I took another approach. This time I made two basic boxes, texturing them while making sure each side looked slightly different from the other to allow me to stack and rotate them into larger piles and avoid any obvious tiling in the texture. From the initial full pallet of boxes, I created four variations and then it was just a matter of swapping them in. This made it much easier to tweak the silhouettes by simply adding or removing the individual boxes. There is a difference in polycount but I think it’s worth it.
I tried to keep the scale of the environment to a reasonable size. I was aware that choosing too big of a scene would take away from the amount of time I could spend on each asset, so I kept the warehouse small yet if I needed to rework the level at any point the modular pieces and tiling textures would let me easily expand the walls and shelving quickly. The shelves are made up of two pieces that snap together on the grid and a tiling texture lets me adjust the height as necessary.
It’s really important to keep the size of the environment manageable in this course particularly so that you’re able to progress with the lessons. It’s far too easy to get excited and block out 50 – 60 pieces for your level in the beginning but a few weeks later when you have to model, unwrap, bake, texture and test those same meshes in engine you become aware of how large the scene has become. An environment like a warehouse is so versatile that it could be adapted to the necessary size in any game with the correct modular pieces.
For textures that took up large areas of the scene, I created tiling textures either with Photoshop or Substance Painter. I haven’t used Substance Designer to the same extent so I didn’t want to waste my time experimenting with the nodes when I could make the same texture in an hour or two using programs that I use daily at work. One of the main focuses of the course was also to create and use a tiling trim sheet to cut down on the number of textures needed, so the more use I could get out of the trim sheet the more time I could save not having to create so many different materials from scratch. Some meshes like the rolling door use a mixture of tiling texture and trim sheet. The more effort you put into planning out your trim sheet for your environment the easier it will be later when you’re unwrapping your meshes and texturing them.
The floor is a simple tiling concrete texture with vertex painting on top using different grunge masks to layer dirt, grime and tire marks. To do this I created three different grunge textures and channel packed them into the RGB channels of a black and white texture. Once that was imported into Unreal I could reuse these masks with different materials while only needing one texture map to provide different looks. Clinton has some great lessons in the course that cover material set up and instancing that helped a lot, but also just reading through Unreal’s material documentation provided a nice foundation for creating these materials.
One of the biggest challenges of this environment was understanding how best to use the trim sheet. I had never used one up until now but once I began applying it to my assets I realized how valuable and time-saving it is. It makes approaching an environment like this much more manageable. Taking the time to plan out your scene at the beginning will result in fewer unforeseen issues later on.
Overall I enjoyed building the warehouse and learning the techniques that go into creating a modular environment. I will definitely be using them again in my next scene! And I would highly encourage anyone interested in the CGMA course to go for it. It’ll really help add to your skill set as an artist.
Laura Sajdik, 3D Artist
Interview conducted by Kirill Tokarev
Abandoned Library in UE4: Modular Approach & Materials
Interview with Jonah Pankonin
Hi! My name is Jonah Pankonin and I currently live in Kelowna, Canada. I am a college drop-out trying his best to land an environment art position!
As of right now, I am self-taught. I try to watch all the tutorials I can and read all the articles I can. But for me, CGMA is the most beneficial resource out there. I have already taken one of their courses and I knew I needed to take another. Clinton’s class was the perfect one - it is filled with content and Clinton himself is very knowledgeable both on the technical and artistic sides. It is at a reasonable cost for the amount of content you get out of it and being around like-minded individuals is really inspiring!
Inspiration & Software
The hardest part is always figuring out what scene to do. I wanted something that would take advantage of the modularity aspect of the class and have something I could still enjoy making.
In the past, I played Red Dead Redemption 2 and The Order 1886 so those games made me want to create something set in the 1900s or around that. However, halfway through the course, a classmate suggested a resident evil style scene and I felt like my project really came together after that. The mood and atmosphere portrayed in those games gave me a lot of ideas for my scene and helped with the lighting.
I used quite common in industry software:
- Maya + ZBrush: High Poly Modelling
- Substance Painter/Designer + Photoshop: Texturing and Material authoring
- Marmoset Toolbag: Baking
- Marvelous Designer: Cloth Sim
- Unreal Engine 4: Level Creation, Scene Rendering
Blockout & Modularity
The scene started out in Maya: I created all the modular pieces and made sure they fit nicely inside there. Of course, having a mannequin for scale reference is very important - the last thing you want is a too large element (for example, staircases) or else the whole scene will feel off. Once all the pieces are good to go and fits nicely I begin taking the pieces into Unreal Engine and assembling the scene. Here, I also begin doing basic lighting. Usually, it's a default setup: a directional light and skylight.
Once I feel like I have a good composition I move on to my unique props to fill the scene. Most unique props are modeled in Maya using basic sub-d modeling, some assets are polished in ZBrush. For baking, I mainly use Marmoset Toolbag. It’s one of my favorite tools because of its simplicity, the ability to change your cage, change normal skew, and how fast it bakes.
Having a lot of assets can turn into a challenge when it comes to texturing, so I tried to make the most out of trim sheets and tiling textures in this project.
All trims and tiling textures are done in Substance Designer. The ability to change anything with a single node and the amount of variation you get makes it a must-know tool.
Substance Designer was also extremely helpful because I could skip the whole bake-from-high-poly-to-a-plane step. A technique I used to get nice shapes for my trim was the curve node. This node allows you to remap values based on Bezier curves.
For my unique assets, I went the regular way and used smart materials in Substance Painter. I reused a bunch of my old smart materials, plus took some from Substance Share. It’s a great free resource for Substance Painter materials.
Once I am satisfied with how everything looks I export my Albedo, Normal, and a combined map that contains my Ambient Occlusion, Roughness, and Metallic.
Inside UE4, I did a few things in the material editor. Firstly, I add my baked AO as dirt inside my materials. This is done easily by enabling Use Ambient Occlusion under the Lightmass settings.
My vertex painting setup is the same but here the PrecomputeAOMask is changed with vertex color node.
I also set up fog planes casting from the windows. Setups like these help break up the repetition and add some more visual interest to the scene.
Breakdown of materials used inside UE4
Lighting, Post-Process & Final Touches
The lighting for my scene is all baked to get the best quality. I’m no lighting expert (probably far from one) but it’s something I still enjoy doing. A good lighting setup really pushes the scene to 100%. An incredibly helpful resource for learning lighting in general and in UE4 is Tilmann Milde's videos.
I tried to keep things simple, so my main lights are a directional light and skylight. Once I am happy with those two things, I start adding other lights like lamps, candles, and some spotlights outside shining through the windows to brighten up nearby areas.
At this stage, I also go crazy with decals. Decals are great for breaking up the repetition, storytelling, and just helping the scene feel more grounded.
My post-process is pretty basic as well. I didn’t need a LUT for my scene as the color grading tools were enough for me. For the most part, all I did was desaturate the color and up the contrast a bit.
Overall, Clinton’s class really helped me push through this environment and I am extremely happy about the final result. The 10-week class was filled with content laid out in a well-structured way. I can easily recommend this class to anyone interested in environments for games.
During production, I faced a lot of challenges. At first, things will look bad and they might stay that way for a while, however, being persistent will reward you in the end. Making art is an iterative process and you can only reach great results by hunkering down and keeping on working.
Thank you for reading!
Jonah Pankonin, Environment Artist
Interview conducted by Arti Sergeev
Cathedral Of The Dead: Environment Production
Interview with Nicolas Mendoza
My name is Nicolas Mendoza, I’m an Environment Artist from Colombia, and I’m currently working as a freelance artist on some indie companies. Before I began my career in-game art, I got a bachelor's degree in Architecture. After graduation, I began researching about 3d art, and I got invested in learning as much as I could. I started watching videos and spending all nights doing tons of tutorials, one day I decided to create my own game and publish it on Kickstarter. The campaign was not successful, but all the learning process gave me the chance to work as a generalist remote position on a small indie company in Spain, where I decided that I wanted to pursue a career as an environment artist.
Ever since, I have been working as a freelance artist for companies around the world including Japan, USA, and Spain, I still do a lot of courses, watch a bunch of tutorials every day and I try to be really involved with 3D art discord communities who have helped me grow as an environment artist.
This scene was a part of a CGMA course I did in summer this year, and I got to say the experience was amazing! After doing a lot of tutorials and courses online I think that CGMA gets the crown for the best course I have ever have. It offers a lot of things that really improve your learning process such as: Live Q/A sessions with your teacher to solve doubts and ask anything about the workflow and industry, weekly feedback, where everyone will receive a personal video from your teacher to know your main weakness, see how other people solve problems and resolve your doubts by seeing other people feedback, and last but not least an amazing discord server where you can see your classmates projects and receive feedback from them as well. I had the fortune to have Clinton Crumpler as my tutor, he is an amazing experienced environment artist who has worked in a lot of big projects, he was a great teacher and guide us to achieve our goals.
Gathering the Reference
My workflow for this scene was a bit different from what I’m used to, especially because of modularity and scale. With that in mind, I started gathering as many references as possible. My first intention was to have a Victorian-Gothic setting, where a ritual took place, I wanted to mix some architectural styles on the process, and since it was a lot of information to dig in, I needed a tool that could help me be organized so that I didn’t lose track on later stages.
Pinterest was a great tool for that since it allowed me to create different boards for my ideas in a more organized way, and most importantly, using the Pinterest plugin of Chrome, I was able to save any images I found on internet into my boards, that way I would be able to access the source link, where I found them. For this scene, I created 3 different boards: One for composition and lighting, another one for modularity, and another one for textures. In this early stage, I was mainly focused on the first board, for me, it is important that before starting any scene I get an early macro idea of how the composition and the mood of the scene would be, this will help me to establish a mood in the block out and have a general idea of my final goal, before I start to add any other details.
I was inspired by the mood of games like Dark Souls and Bloodborne, I have never created a grim/gloomy scene in the past, and I thought that this would be a great opportunity to challenge myself. I was really impressed with the cathedral of the deep environment when I played through the game so I wanted to look for additional concept art that could relate to this environment in particular, I got the fortune of finding work of Alana Fletcher, Alexander Sköld, and Zhuoxin Ye, who are amazing artists and have the perfect style that I was aiming for.
As for the other boards, I tried to research how modularity was made for this type of architecture, not only I searched about similar game art projects where they used modularity, but I also did a research on floor plans and architectural sections of cathedrals to get an idea of scale, proportion, and of how they were built in the real world.
Last but not least, Clinton showed us another great tool we could use, Trello is a pretty nice and free organizational tool that let you put assignments, checklist, and dates to organize the development of a project. It is pretty easy to use and you can put anything you like to make your development clearer for you, I think this is a must for larger scenes since you will have a lot to do, and you need to keep everything clear and organized, so you don’t get lost along the process. I primarily used it to create milestones for the 10 weeks and to keep track of time so that I could deliver the best result possible before the class ended.
The next step was to do a block out of the scene, it was really important in this stage to check for correct measurements and scale. For this, use simple shapes, don’t overcomplicate it, remember that you will need to refine the models later. This phase will give you a better idea of the proportions of the scene, and of how the assets would be made along the process, it will also help you understand and plan your workflow. It is really important that during your block out you have an idea of how are you going to texture your scene, for bigger scenes like this one, you should think how to optimize your time, by creating trims and tileable that would be used later to texture multiple assets. Although it is really difficult to know right away how would you do that, it is a good practice to have a list of them and a small description of how do you think they would work, I used Trello for that.
The most important thing is that everything snaps together. This was a bit challenging since this was an architectural environment, and there were a lot of complex shapes that needed to be done correctly for the assembly to be as smooth as possible. One of the challenges I had was the roof pieces as they use a complex geometry, this was where I spent most of my time in the block out. To simplify a lot of the work I used the boolean modifier in Blender; that way I would have a non-destructive way to approach the modeling of the roof.
Blender grid system was great to align everything and to make sure every origin and snap point worked correctly. It is really important to set your units accordingly and to always make objects snap to the grid, in my case, I converted the units to centimeters and I scale the grid to match those units. I also used the new powerful real-time renderer called Eevee, as it helped me to play with the lighting in real-time and to have a closer look into the scene before putting it inside Unreal Engine. I think this is one of the strongest additions of Blender 2.8, we can finally get a real-time renderer with marmoset capabilities, where you can also play with settings like Ambient Occlusion and Global Illumination.
Exporting into Unreal Engine
After I finished doing my block out, it was time to export all the assets into the Unreal Engine. Before you do any exporting, be sure that all your transformations are reset and that your origin is at the world center, you can do that with Ctrl-A and apply all the transformations. Also if you want to snap your objects inside the engine using one vertex, in particular, you can go to edit mode and use the Ctrl S function to put your cursor into the vertex selected and then go to Object – Set origin – Origin to 3D Cursor. Remember to always keep your objects origin snapped to the grid at 0,0,0.
For the export I used the Blender for unreal engine addon, which is a great script by BLURAVEN that will let you speed up the process of your export. After, I had exported every object inside the engine, it was time to recreate the same scene in Blender, using the block out assets, this is a pretty straightforward process, all you have to do is to use the snap functions in Unreal Engine to place all the elements correctly on your scene. This part as a bit challenging for me because I didn’t plan that well the position of the pivot points. Make sure that all the objects are snapping correctly inside the 3d program before exporting so that you don’t have any issues later on.
The Modularity and Asset Recognition
After everything is set up correctly inside the engine, it was time to plan how the modeling and the texturing process would be made, I started by separating the assets into 3 categories:
Unique: assets that needed a unique Uv space and won’t be using tillable textures
Trim: assets that will be using 1 or more Trim textures
Hybrid: assets that will have their own Uv space but will also use trims on their texturing pass.
After everything was correctly separated, I started looking for references that gave me an idea of how to approach the texturing of my assets. I look up for real-life references of churches and other gothic and Victorian environments to see how they were built. Cathedrals used a lot of ornaments and repetitive shapes on their construction, so I wanted to start with that.
Working on Assets
Wood and Stone
Before I started working, I put some Texel density rules for my environment, since this would be a third-person game, I used a 5.12px/cm density for my assets. Based on that, I created some layouts for my trims inside Photoshop, which would give me an idea of how to achieve the desired Texel density. If you want to know more about Texel density, there is a great tutorial by Leonardo Lezzi that you should check out.
My intention with the texturing pass was to have a lot of roughness variation throughout the scene and to make that possible I visited my references again. I wanted to capture the temporality and the different reforms that cathedrals have had throughout time. The best references I had were from Victorian cathedrals, where they used different materials to accomplish a unique gothic style. With that in mind, I started by creating a stone trim and a wood trim that would be used for my structure, the side paneling, and other small elements on the scene.
The process of these textures was a bit different since I wanted to add a lot of storytelling to it. I started by modeling and sculpting some thematic shapes inside Blender and Zbrush, that will work as cravings and ornaments on the wood trim texture. After that, I exported them as alphas and started working inside the Substance Designer. The creation of the graph was pretty straight forward, I used the tile sampler and the curve node with a small blur to get some bevels on the shape and then I created different types of ornaments and panels for my scene. I also used the JRO ornament pack since it has a lot of different shapes and helped me speed up the development process.
For the stone trim, I wanted to have a rough surface with metallic ornaments on it. I then used the JRO pack again to achieve what I wanted, and I also added fractures and holes into the stone, so that I had a bit of wear applied. One tip I would like to give is that try to keep the details as subtle as possible, don’t make them too big as it will make the tilling more noticeable. One challenge of making these textures is acknowledging that every material wears different. Since I had more than one material in my graph, I made some masks to isolate the different materials and give them the wear effect I wanted.
After the textures were done I started refining my modeling, I decided to use bevels and add edge loops instead of using the bevels of my normal maps. This would help me get the trims right into my assets and prevent sharper edges for my geometry. The weighted normal modifier in Blender was awesome to avoid harsh edges into my models and provide a much cleaner smoothing in the mesh. It is important to notice that I maintain the proportions and measures of the blockout meshes on this stage as this would allow me to reimport the assets back in unreal without having any snapping issues.
Then, I started mapping my UVs into the trims I made in order to achieve the texel density that I previously established, I used a Blender addon called Texel Density checker, it is an awesome addon that you can grab for free (https://gumroad.com/l/CEIOR). It works by selecting your UV islands and scaling them up based on your texture size, texel density, and the scale of your object. This addon helped me maintain coherency through all my assets and helped me speed up the process of my texturing.
Windows and Stained Glass
For the windows, I followed two great tutorials, the first one is an awesome tutorial by Martin de Graaf, who explains in detail the process of using the curve node inside substance designer to create detailed ornaments and complex designs, I really recommend this tutorial for any ornament and architectural modeling, I have applied this knowledge not only on the windows but also on a lot of my other textures.
One of the coolest tricks I learned was to use a combination of the Levels – Curve – Blur HQ Grayscale nodes to get clean and smooth edges.
The next one is the stained glass tutorial by Vincent Dérozier. This one helped me a lot in the process by showing me how to create complex shapes and patterns by only using images as a base, it is amazing and you can also download it for free! To get my base images, I created some simple shapes inside the Substance Designer and apply them to the graph. After that was done, I exported my textures into Substance Painter, where I added emission and some dirt to the texture.
After that, I traced some simple shapes using the curve modifier inside Blender to create the frames of the windows. I created a simple plane, where I would map the window trim texture as I did with previous assets.
For the Fabric, I did a simple graph with some noises inside the Designer, and I apply some of the ornaments and additional shapes I did in Photoshop to get more symbolic elements into the scene. Same as the previous ones I organized the different trims of my cloth elements using a previous layout in Photoshop, and I masked my shapes to have some color and material variations.
For the cloth elements, I used Marvelous Designer to simulate the cloth. It was a fairly simple process, I created some planes, and then I used the pin tool to add some tension to the cloth. Then I did a decimated version inside Blender to get an optimized asset without losing the original silhouette. Marvelous automatically generates planar UVs that I can use that to map my trims into the asset, this way, the texturing process is really easy to do, and I can iterate my textures easily if needed.
All my tileables here made inside substance designer using pretty standard methods, I will strongly recommend seeing the work of Josh Lynch and Daniel Thiger, their tutorials are amazing, and they helped me understand most of the nodes that designer has. In this article, I will highlight two of my graphs, which, I think, are the most complex ones.
For the skeleton piles, I decided to use the same method of creating alphas that I used before for my trim texture, but this time I used the height blend node to create different layers for my shapes. The node setup as really simple, I used a tile sampler with low random position and rotation for each of the bone types. Then I blended it all using the height blend node. It is really important to keep the position random value as low as possible to prevent shape overlapping. To get the height right, keep an eye on the grey-scale values of your nodes, I strongly recommend to try and to have different intensities for each layer, so that the shapes don’t overlap.
When the heightmap was done, it was time to set up my albedo graph. For this graph, I wanted to have yellow and red tones to show that the bones have been inside the environment for a while. To do that, I created different color gradients by using the eyedropper on references that I found on the internet. Another cool tip is to use grunge maps and create a color gradient based on their grey-scale values.
To add some 3D to the pile, I did two additional things. The first one was to add actual 3d models into the pile. That way I would create a more interesting silhouette for the piles, allowing me to break up the simple shape and give more depth to the tilling texture. One thing that I wanted to do was to blend the bones as much as possible into the tiling texture. To achieve that, what I did is that a brought the 3d models inside Substance Designer and by baking them, that way I will get textures that I could use to apply the color and the details that my original graph had.
I also created a simple tessellation material inside Unreal, so that the bones have more volume and depth. A really important tip in here is to always blur a little bit the height map generated inside Designer. This will prevent some artifacts when the texture is displaced.
The Ornamented Floor Tile
I wanted to create an ornamented tiling texture that resembles the one used in most cathedrals. Again, my intention was to create a theme version of giving theme and storytelling to my environment. I first created the material of the simple tiles to establish height and shape. Then, I created a 2D pattern inside the Designer with some color ID mask to put it on top of my material.
For creating 2D shapes, I used two different methods. One was to use some of the alphas I have been using and with the level nodes get a flat shape. The other one was to create some functions that will help iterate on the shapes easily. Kyle Horwood tutorial explains this process way better than I do, so I really recommend to check it out.
For my uniques, I used the blockout props that I have already made, and then, I started to create the low and high poly versions in Blender. I kept my assets with a poly count as close as possible to 5k to optimize the geometry of my assets. Again, the texel density addon was great to get my UVs right, and this time I used the UV pack master addon, to optimize my UVs. This addon is great and has a lot of options, it's the only downside is that it is a bit expensive, but it saves a lot of time and let you optimize your UV space.
Also, try to optimize your workflow. For example, in the chandelier, I created alpha cards for the chains, and overlap the UV islands of the objects that repeated in the asset. This allowed me to save time on the baking and texturing pass, and help me optimize my UV space to get a nice resolution of my textures. Remember that you can always add details to break this repetition through vertex painting inside the engine, I will talk about that later on this article.
After that, I bake them inside Marmoset and then used Painter to texture the assets. The process for each unique asset is more time consuming than doing a trim one, hence why I kept their count as low as possible for the environment. Marmoset has a great tutorial that explains this process that you can find here.
The Hero Prop
In the concept phase for the cathedral, I originally had a small altar that would serve as my focal point for the environment, but I started to realize that this was not enough. Clinton gave me an awesome idea to add a statue to my composition. That way I would have a much clearer focal point into my environment. Even though I was a bit scared to do the statue, since my anatomy knowledge is pretty limited, I still wanted to challenge myself into doing it.
I intended to create an angel of death, so I started by gathering a lot of references of how death was represented throughout history, and I found a sculpture inside CG-trader made by the user TheTNR that pretty much was exactly what I was looking for. I still wanted to do my own thing, to add a darker tone, I changed the human figure with a cloaked one. That way I would not have to do the face, and it would help me speed up the sculpting process.
I first began by putting the skeleton inside Marvelous Designer and try to simulate my cloth using the skeleton as the base avatar. This didn’t work because the skeleton had too many holes, so for that reason what I did instead was that I used a base female model on Marvelous. It gave me a good result, but the shapes were too thick for what I was looking for. So, what I end up doing was a hybrid model of the two meshes by cutting the arms and the head of the female model and putting in the skeleton parts instead, this gave me the result I was looking for.
Another thing that is cool inside Marvelous is that you can import an FBX with animations and poses, and the program will do another simulation of the cloth based on the new position of the avatar. So what I did to get the pose I wanted, was bringing the original simulated avatar into Blender, rigging it really quickly and easily by using the Rigify addon and then exporting the FBX back into Marvelous Designer.
After the simulation part was done, I brought the model back to ZBrush to start working on the details for the cloak, I mainly used the brush Drapery and Foldings that I found on ZbrushGuides for this, as it really helped me accentuate the folding of the cloth giving it a traditional sculpted look.
After the cloak was done, it was time to move into the wings, I firstly began by trying a lot of different workflows to see, which one could work better for the pipeline. The best solution that I found was to make low poly objects to get a block out of the wings and then, using dynamesh, join them together to start with the details. After the model was done, I decimated the parts, UV map them and join all the UV islands in a single material, before I baked them in Marmoset.
Working on the Texture
After I finished with my first texture pass, it was time to create the textures that I would use to vertex paint my environment. Vertex painting worked well for me as it helped not only to add more storytelling to my environment but also to break the tiling of the tileable and trim textures that I have been using.
To make them blend as much as I could, I used the graphs I have previously done in the first texture pass to create new destructed versions. Creating a workflow, where I could use previously created assets, allowed me to have a closer blending with the original texturing pass. For that reason, it is really important to always keep your files as organized as possible. That way if you want to come back and create new assets based on the original files, you won’t spend that much time figuring out how to modify them. Also, remember that you can always modify your color values inside Unreal Engine by double-clicking the texture, or by creating some saturation nodes inside your material, this way you will have more control over the blending of your textures.
To check if I was doing my blending correctly, I used the buffer visualization inside the Unreal Engine for the base color. This way I can see if the saturation or the hue are off the mark.
Buffer Visualizations are great tools to see how optimized is your scene. I usually put a 90FPS mark and try to keep it as close as possible to that. Although, if this is a personal piece, I always try to work as if it was a work assignment. That being said, always remember that quality comes first, so don’t be too attached to optimization.
To give more storytelling to my environment, I also added 3 different decals to the scene, although decals are really fun and easy to use. Beware that they consume a lot of resources, so try to keep it simple and only use them when necessary. To check how complex is your decal, you can use the buffer visualization mode inside unreal to see how everything is working. In my case, I use the decals to add details that I could not do with the vertex painting. In my case, I used blood splatters and a ground damaged decal to break the tiling of my floor and give more character to it.
Lighting and Composition
Interior lighting was a bit difficult for me since I have never done any in the past. It is very difficult to not get carried away and start adding a lot of lights into the scene, but keep in mind that the more lights you have, the larger your baking would be, and that is not optimal since you will lose a lot of time without doing anything. One thing that helped me was that I already had an idea of how the lighting as going to be from the block out, so what I did was to do some preview light-quality bakes, where I would start adding and removing lights to get some quick results before doing the final bake. To speed up the process, I also created blueprints of the assets that contained lights, this allowed me to make quick changes to the scene without having to go and change each individual asset separately.
The light should always be part of your composition and should guide the player’s eye to interesting points in your scene. My initial idea was to put all the attention on the statue, but as I started experimenting with it, I realize it created some nice composition lines in a shape of a cross, so it became another symbolic element in my scene.
As for the final bake, I increased the bouncing of the skylight and the indirect light, just so that the light would bounce in all the space, preventing me from having pure black areas in the environment. It is really important to do this subtle as you don’t want to end up washing up your environment, also keep in mind that increasing the bounces won’t increase your buildings times, so feel free to increase the number as you see fit. I also increased the indirect lighting quality to have more accurate results.
Post-processing and VFX
To finish the scene, I started by messing around with the settings of the post-processing stack, I created a LUT inside Photoshop to modify my color values and give the scene a color grading pass. I also modify my AO to get more interesting shadows that would help me outline the silhouette of my assets. Finally, I added some sphere reflection capture elements into my scene, and I increased the quality of my screen space reflection. That way I would have more accurate reflections and give the PBR materials a more realistic look.
To push my details a bit more, I created a Post-process sharpening material by following Ervin Jesse's tutorial. This is a great way to accentuate your edges and give more visibility to the details of your textures. One thing though is trying to use it in a very subtle way, otherwise, it can get pretty noisy.
For the VFX, I added a small dust particle system and a fog plane in some areas. VFX is not my forte, so I took them from the Unreal particle project, and then I modify them just a little to make sure that they worked in my scene.
Finally, I was inspired by how the candles looked inside Dark Souls, but I was really scared of spending too many resources on them. So what I did was that I created a simple world offset material that would bend my flames in different directions using 3 values. To prevent the flame moving weirdly, I created a simple vertex paint option, where I would paint the base preventing it from moving from its original spot. This helped me to optimize the scene since there were a lot of candles and gave the asset a subtle movement at the end.
Final thoughts about CGMA
I have learned a lot from this course! And I really recommend it, it showed me a lot of technical and artistic approaches that I have never done in the past. Being able to understand and use trim textures helped me to speed up the process of creating this scene, but it also allowed me to understand the workflow behind creating complex environments. My two biggest recommendations for anyone who is planning on taking this class would be: Always do your assignments in time, every weekly feedback will make your scene stronger, so don’t miss the opportunity and work hard. Ask anything that you want to your instructor. Don’t be afraid, everyone has doubts, and you are all in the same course, so even if you think your question is dumb or pointless, just ask it and resolve your doubt.
Whenever a challenge is in front of you just.. take it! It is unbelievable how much can you learn just from getting out of your comfort zone and try to do things you have never done in the past. One thing I forgot to mention, and I think it is one of the most important subjects, is to always get feedback. I cannot stress enough how important it is to look for other people's critiques and opinions. Showing your art to other people can be rough, especially, if you get strong critiques on something you have been working for a lot of time, but be humble! accepting criticism and improve your work is one of the most important skills an artist should have. Also, there are a lot of discord communities you can join to get amazing feedback, help other people and keep learning. I will name a few, but there are a lot more: No More Grid, The Dinusty Empire, Handpainter’s Guild and Stylized Station.
I do hope that this article helped you. Thank you for reading so far and thank you 80 Level for this opportunity!
Nicolas Mendoza, Environment Artist
Interview conducted by Kirill Tokarev
Environment Design in UE4: Color, Light and Style
Interview with Morgan McDermott
Hello! My name is Morgan, and I'm a 3D Generalist. I'm completely self-taught and originally began working as a film compositor in Los Angeles. From there, I started doing matte paintings and full 3D environments. The coolest thing I've worked on is HBO's The Pacific, for which I won a Visual Effects Society Award for my work on the Invasion of Iwo Jima shots. In the past 5 years, I've mostly been freelancing and am mostly working on game and VR projects with Unreal and Unity.
About the UE4 Modular Environments Course
Since I'm freelancing and haven't worked in a traditional game studio, I like to pick up as much industry knowledge I can from game artists online as I don't have the benefit of learning tricks and workflows from my coworkers. My goal is to work full-time at a game studio, so I want to be as capable and prepared as possible for that, plus I really love Clinton Crumpler’s work, so taking the CGMA course was a no-brainer.
About the Project
I was mostly inspired by the film Annihilation. My concept was to create an abandoned and overgrown environment that uses color and light to convey a feeling of sickness. I collected lots of reference for schools and abandoned places, even some still life paintings by the 17th Century Dutch artist Jan Weenix.
Working on Modular Environment Assets
I really wanted to come out of the class with a solid understanding of Trim Sheets and maintaining texel density. I purposefully created a scene without too many unique assets, that was fundamentally simple, so I could focus my time on utilizing and exploring different methods for using trims, tileable materials, and lighting.
The glass material was probably one of the biggest challenges for me. I started with some basic glass material setups I found online and kept expanding on it until I achieved a look I was happy with. The final material is probably a bit too heavy for use in a real game project, it's using a distance-based radial blur that looks great but is pretty computationally intensive. Overall, I wanted to achieve a balance between getting a sense of the exterior but also feeling overgrown and dirty. I used Megascans for all the foliage. Megascans are, of course, awesome and it was great to be able to focus on the parts of the project I was interested in most without spending time on the plants.
Prior to starting the class, I had been learning Houdini for a few months, which is so amazing, and I really recommend people give it a try even if you've been hesitant in the past. So I used Houdini for the scattering of debris and for the banners. For the debris at the doorway, I used a couple of tileable textures I made and vertex painting.
Working on Color
I was really excited to work on the overall color and lighting and want to create this oppressive and heavy green palette with some intense splashes of other colors (the lockers and the chairs). I spent quite a bit of time tweaking material colors and on the Post-Process LUT. Working on the LUT was really fun because as you iterate through so many variations, it's really easy to get out of control with it but super satisfying when you drill down to your final look.
I knew I wanted the lighting to feel as natural as possible and have the light coming in through the window to hit the lockers and chairs in the front of the room to get those bright hits of color. The scene has 1 main light with a couple of spotlights placed specifically for some of the renders further back in the room to get some extra highlights and silhouettes. Probably one of the settings I played with the most was using a volumetric light to get some dust light beams through the windows. I went back and forth a lot on that, finally deciding not to use it because it didn't really add much to the scene and felt too forced.
The Biggest Challenges
The biggest challenges for me were the lighting and getting the glass and exterior environment to feel correct. Essentially, as with any art project knowing when to stop tweaking is the hardest part. I really came away from this project with a strong understanding of Trim Sheets, which I've been using in my work ever since. As for my next challenge, I'll be focusing on learning more Houdini in my spare time.
Morgan McDermott, 3D Artist
Interview conducted by Ellie Harisova
Abandoned Shinjuku Station: Modular Approach to Level Art
Interview with Clarence Ong
Hi everyone! My name is Clarence Ong, and I am a 3D environment artist based in Singapore, originally from Malaysia. I graduated with a Bachelor's (Hons) Degree in Film and Animation and had since worked in the industry for more than 15 years. I had previously worked on several published console AAA game titles and MMORPG for game developers from Japan, UK, and Germany. Most of my work would involve creating environment art and open-world level art. Besides that, I also worked on feature film and TV animated series, which would help my experience on cinematic storytelling.
My passion is creating a beautiful environment level that has a cinematic composition and visual storytelling. I am always looking to learn better ways to improve my technical art skillsets in creating a game environment for AAA games. For this reason, I decided to take Clinton Crumpler’s UE4 Modular Environments from CGMA and set a goal to create a playable game level with the modular technique. My final product would be an original environment level art based on Tokyo Shinjuku Station inspired by the Division game. The software I used throughout the project includes 3Ds Max, Substance Painter, Substance Designer, Substance B2M, ZBrush, Photoshop, Marmoset, and Unreal Engine 4.
The Inspiration and Level Design
I am a big fan of the Division Series by Ubisoft and those post-apocalyptic setting in movies. I remembered when I was starting Clinton’s course back in October, some online photographs of Typhoon Trami hitting Tokyo causing the transportation shutdown of Shinjuku Station caught my attention. The eerie emptiness feeling in those photographs of the usual bustling train station inspired me to think about what would happen if a big metro city like Tokyo been deserted suddenly due to some epidemic events like the ones in the Division.
In the original Division game, the story event happened in the US while there’s little mentioned of what happened globally to countries like Asia and Europe. So, I thought it would be interesting to think about an original Division environment level based on a more Asian concept setting like Tokyo train station if the same event happened. Eventually, I decided to create an abandoned Division safe house of the Shinjuku Station based on a spin-off idea of the similar Division story timeline. This abandoned safe house would be taken over by the enemies such as the Hyenas, and the environment has playable level design integrated into the entire level for a possible mission.
I created a top-down level design map and would make sure there are main pathways, secondary pathways, and choke points implemented into the environment level just like a real game-environment level. I also thought about a possible mission objective and various choke points that have enemies AI that would guard those choke point areas. This layout would be used to create the final environment level in Unreal Engine later.
Gathering the Reference and Art Direction
During the first two weeks of the course, I had to define the theme and achievable scope of the scene. I started by searching on Google, Pinterest, and YouTube for images and videos of the abandoned train station, Shinjuku Station, and the Division. I used Trello to create a reference board to help me plan the modularity of the scene and the amount of work to do for better efficiency.
On my reference board, I categorized the references into several groups such as the platforms, trains, rails, background buildings, props, decals, and textures that I need to create. I practiced the PST principle (Primary, Secondary and Tertiary elements) and break up the textures into main textures, secondary, and decals by analyzing the references, so I can plan how to convey the visual storytelling when making the scene later.
When researching the Division game, I found the Hudson Yard train yard-environment level done by Christoffer Radsby, a senior environment artist from Ubisoft Massive to match what I was looking for. I played the Hudson Yard level in the Division game quite several times and screen captured every angle possible to help understand what assets were needed, and how it was placed in the scene to convey the intended visual storytelling and level design.
After analyzing through the references, I decided to set the initial environment art direction to have a slightly overcast daytime atmosphere rather than a horror type dark lighting because I feel it would fit my environment level more to the Division's overall art direction.
Level Blocking and Modularity
I first created the basic blockout of the primary and secondary modular objects in a draft scene in 3Ds Max to get a sense of scale for the large and medium shapes. I placed a 3D humanoid character model in the scene to establish the relative scale of each modular objects, it is important to ensure the scale will be accurate when I assemble them into Unreal Engine. I believe it’s also important to get the blockout scene assembled in Unreal Engine as early as possible at this stage, so I can get a feel of the space and scale of the actual game level.
As for the modular objects, I make sure the scale and pivot point of each modular objects are properly set, so they can easily snap to the grid when I arrange them in the draft scene. I would export the modular objects and re-assemble them again in Unreal Engine by referring to the draft scene. I find this approach very useful because I can easily check the connectivity of large and medium modular objects between each other. Once the modularity is properly established, it will be easier to further refine the details of the modular objects and modifying the level design along the production process.
Creating the Level in Unreal Engine
After launching Unreal Engine, I choose the Third Person Blueprints template, so I can make the level playable with a character controller. I created a Terrain Landscape by sculpting and following the contour of the platforms. After that, I created a Landscape Master Shader that would have elements such as the ground soil, rocks, and grass. I downloaded these textures from Textures.com, a website to get good quality pictures of all sorts of materials. I would paint the terrain landscape with the different elements of rocks, ground soils, and grass by referring to the different train yard references.
After finishing the terrain landscape, I would replace the previous blockout models of the primary and secondary modular objects in the scene such as the train platforms, trains, buildings, walls, and containers with the more detail models. Because the Shinjuku train station has three rows of platforms, I would make sure the modular objects are well placed in the scene to avoid repeatability that is too obvious to the player since there will be the same assets everywhere.
Once the primary and secondary modular objects are properly replaced in the scene, I now have more ideas on how to place the smaller modular objects such as trash bin, wire, box, pole, signs, fence, etc. into the scene. I would set up basic lighting in the beginning to understand the overall atmosphere look of the scene. I also set up different camera placements for the beauty shots as well as controlling the amount of work that I would need to do. I make sure the different cameras would show a good sense of depth by having a foreground, midground, and background composition.
Creating Trim Sheets for Large Primary Objects
For this project, I created a few Trim Sheets with tillable texture to texture the train station platforms and roof. This would help reduce the number of unique textures and optimize texture memory usage. Since these are large modular objects, I usually use a tiling method to make sure the texture resolution stays sharp and achieves a good Texel Density inside the game level.
For the trim sheets, I would create the high-poly meshes and export them to Marmoset for the baking high-poly to low-poly process. Then I would assign the baked textures into the trim sheet’s channels in Substance Painter and paint the secondary details such as wear and decay. After the refining is done, I would render out the final textures and apply them to the large modular objects such as the train platforms, roof, staircase, etc.
Creating Train Assets
One of the most prominent assets in the scene is the train, specifically the Japanese style metro train that can be found in Shinjuku Train Station in the real world. I gathered a few reference images to help further understand the train design and would create the 3D train model as a unique 3D asset. My plan is to create a 3D train model that didn’t need to be a very high polygon model but still optimized enough to be used as a modular object for the level art.
One of the challenges that I faced when I was making this train asset is that the train is considered as a unique asset while at the same time it gets repeated many times in the scene with the different compartments. To optimize the number of unique textures for this train asset, I would focus on creating some part of the train head compartment with one set of train wheels and then use these textures to tile the rest of the train models. With this method, I can still unwrap the 3D train model with unique UVs and apply the baking process to paint the texture with details in Substance Painter.
Once I finished with the texturing of the train head compartment, I would apply the textures to the rest of the train models in 3Ds Max by reusing the same texture on different train compartments. This method is quite effective in reducing the number of unique textures and allowing the asset UV to be uniquely unwrapped for texture detailing. I would have the option to apply Vertex Blending in Unreal Engine shader with decals to make the train assets more unique in the later process. I only textured three train compartments as a single modular object to use for the level art.
After importing the train modular asset into Unreal Engine, I would create the material shaders and apply them to them. I placed the train modular asset in the scene by referring to the intended level design and making sure they would still look unique and not repetitive by decorating other smaller assets along with them in the scene. As a level artist, I would decorate the scene with repetitive modular assets to achieve a good sense of visual storytelling while still making sure the scene looks unique in different areas and maintaining the level design gameplay.
Creating Background Buildings
For the background buildings, I created several Texture Atlas by using the photo textures of different buildings downloaded from Textures.com. Once the texture atlas was created, I started modeling the background low-poly modular buildings by tiling these textures into the different building assets for texture optimization.
As an environment and level artist, I would often need to make decisions on which assets need to be a high polygon with details and which assets should be a low polygon with fewer details when creating the level art. Assets that are far away from the player interaction usually should be less polygon than the assets that are close to the player to interact with.
By creating just a few modular building assets, I can easily place them around the scene to establish the sense of cityscape from the player view. The modular building assets are placed floating at the area outside of the main train station and the bottom half of the models are blocked from view by the surrounding concrete walls. I would also delete these parts of the models where it’s not visible to the player for polygon optimization. Usually, this is how modular asset placements would look like in the non-playable area where the players will not able to reach.
Decorating with Assets
The next steps are creating the various assets to decorate the scene and usually working on an environment level for AAA games will require a large number of assets in the asset library. Assets such as barrel, box, sack, rubbish, crate, shelf, chair, table, cable, signpost, fuse box, and decals are used discretionary to decorate the scene, so it will look rich with realistic details from every corner.
Most of the smaller assets that I did are using photo textures downloaded from Textures.com, and I created several Texture Atlas to quickly create as many props as possible in a short period of time. Assets such as the fuse box and signboard were created with just one texture atlas that shared the same master shader by creating several Material Instances in Unreal Engine. I would use Substance B2M to create different textures such as normal, metallic, roughness, height and ambient occlusion from the texture atlas.
There are also assets such as the barrel that I did with details by having sculpted the high polygon detail in ZBrush and then bake the high poly to low poly in Marmoset. Then I will import the asset with its baked textures into Substance Painter to paint the texture with wear and decay details. For this type of asset, the UV unwrapping would be more unique and won’t be using the tiling method for texturing. However, I didn’t do many assets with this method as it’s very time-consuming to create every asset with details within a short period of time. Since this is an individual project, I would need to be very effective in asset creation management.
decided to get some industry props packages from the Marketplace that have those made ready to use small assets for placement as I need to finish the project in the designated time. However, I would try to replace some of these assets afterward by remaking them again. But as my main priority is the level art itself rather than the individual small assets creation, I don’t think there’s a real need to create every single small asset from scratch. At this stage, my focus is to finish the overall level art within the planned project timeframe which I believe is more important.
For the lighting, I decided to go for open natural lighting instead of the dark gloomy atmosphere. I placed only one Directional Light into the scene for the main light source. I added a Lightmass Importance Volume to control the area that needs detail indirect lighting while areas outside the volume would get only one bounce of indirect lighting at a lower quality. I used several point lights and spotlights to light up the several areas of the scene with the Cast Shadow option turned off for optimization.
As for the lighting rendering of the modular asset, I would set up the Lightmap Channel by adding a second UV channel for each object in 3Ds Max before exporting them. When these objects are imported into Unreal Engine, I would set up the lightmap resolution in their Mesh Editor. Usually, I would choose a higher lightmap resolution for large modular meshes like the train platforms, so the shadow rendered has a better quality. As for the smaller objects, a lower lightmap resolution was set instead for optimization.
I added an Exponential Height Fog volume in the scene with the Volumetric Fog option enabled and adjusted the Start Distance, so the fog will always start at a distance away from the viewer to create a sense of atmospheric depth. I made sure the Max Opacity of the fog is very low and adjusted the Fog Inscattering Color to slightly blue to match the skydome color.
I also added a Post-Processing Volume in the scene and played around with the Bloom, Exposure, Chromatic Aberration, Lens Flares, and Vignette settings to get the right mood and feel for the scene. For any adjustment that I made, I will always make sure to check on each camera angle that I had set up earlier so all the beauty shots have consistent lighting with the third person player camera in the game.
For the sky, I created a very simple 3D skydome and made a skydome material using a free HDRI texture from cgskies.com. In the shader setup, I added a multiplier with a constant value of 2 to increase the emissive brightness of the skydome, so it appears more overcast in the scene.
Final Render and Playable Walkthrough
Here are some of the final beauty shots that I did, there are some more on my Artstation if you wish to see the other beauty shots. I categorized the entire level into 3 sections: Train Yard, Train Hanger, and Station Exit.
The entire environment level is also playable in a third-person controller. I made a video walkthrough to showcase the entire level, you can view it from here.
The main challenges that I faced throughout the whole project would be finding the time needed to spend on creating the assets because creating a playable environment level is very different from just creating a beautiful scene. To create a level art, I would need to have a lot of assets to decorate the level and usually in a game studio there will be other environment artists and prop artists to help create the asset library for level artists to use.
So as a level artist, I would just need to focus on creating the overall level with good visual composition and proper level design by using the provided assets for decoration placement. However, since this is an individual project, I would need to make the use of my time strategic on creating the overall scene with modular assets. For time management, I can only work on the project at night for a few hours after work on weekdays and slightly more hours to work on the project during weekends as I am a family man.
The time management wasn’t very ideal, but I still managed to find the time possible to finish the project because I believe if you passionate about achieving something, then there’s no excuse and reason that can stop you from finishing it.
Besides learning different techniques of modular asset creation from Clinton’s course, I also get to find out more insight into how different AAA studios' approaches to modular technique are. I would like to thank Clinton for his honest feedback on my weekly work updates and the advice he had given during the live Q&A sessions every week was priceless. One of the best things about CGMA’s courses is that the instructors would give feedbacks weekly, so it can help timebox your assignment to the finish line with constant feedback.
I really enjoy those courses from CGMA as they feature a lot of world-class instructors from the industry such as Clinton Crumpler, Jared Sobotta, Anthony Vaccaro, and many other artists. I myself had also taken other courses from these other instructors to learn about how AAA game studios like Naughty Dog and Microsoft Studios create their impressive 3D environment levels.
The priceless lessons that I learned from these courses helped me improve my technical art skillsets, so I will be up-to-date with the current AAA production workflow. I believe it’s very important to be always updated with the latest AAA production workflow skillsets because the industry is always advancing into higher standards each year due to the evolving technology and better improvement in the production workflow. It would also prepare me for any opportunities in the future if it arises.
I hope you enjoyed the write up about my level artwork and hopefully, some people can find it useful. I also like to thank 80 LEVEL and CGMA for giving me this opportunity to write this article and hopefully I can contribute to the community again in the future!
If you have any questions regarding my projects on Artstation, please feel free to follow or message me.
Clarence Ong, Environment Artist
Interview conducted by Ellie Harisova
Metro Station in UE4: Modular Approach
Interview with Yurie Kawana
Yurie Kawana did a breakdown on her recent project, Shinjyuku Station, discussed the structure of the scene, shared her approach to lighting and gave some piece of advice for other artists.
Hi everyone, my name is Yurie Kawana. I am a 3D artist based in Canada, originally from Japan. My focus is on creating inspiring environments for games and VR. I started my professional career with a VR project at a startup, and I’m currently self-employed at Art Exponent and make our own video game called Curzon Line. I will soon be working full-time at a game development studio in Montreal as well.
Gathering the Reference
So, the idea started at CGMA, where I learned environment art and modularity in UE4 with Clinton Clumper. Ultimately, I expanded to a more versatile scene to showcase/improve my overall skills of modeling, level art, optimization, lighting, composition, and visual storytelling. I picked Shinjyuku station because I used to use it on a daily basis when I was living in Tokyo. Another reason is that I thought this station has a lot of cool materials/elements to work with. I chose a mix of urban style and nature (natural disasters) as main themes. I went to Japan to take some reference photos of the station. Also, I am a heavy user of PureRef, I highly recommend using this free software whenever you work with references.
Assembling the Scene
There are 5 platforms in total in this scene. The idea is simple - start with bigger scale assets and create a base structure of the scene. Since each platform consists of the same assets, I just copied them and polished the composition after. Then, go on with smaller-scale assets and repeat the same process. To give you a better sense of scale, I made a fly-through video from end to end.
For each platform, I made sure the composition looks good in the final shot. For example, one of the rules I followed was to give it a sense of depth, by having a clear foreground, midground and background lines.
For modular assets, I used tileable trim sheet textures to optimize memory space.
In the case of the stairs shown below, in order not to be too repetitive with trim sheets, the A part is offset step by step, so I only need the minimum amount of texture while keeping it look unique.
Also, if you’re making a scene out of actual city or place, you may be better off taking pictures of things like signs and making a texture using them, rather than creating them from scratch, if possible.
For the asphalt floor, I used vertex paint to have more control over the look.
For lighting, there were 3 major steps.
- I start with bigger scale assets with no light. In the case of this station, I placed floors, ceilings, pillars, stairs, and fluorescent light assets with Unlit mode on.
- Then, I started adding temporary lights and post-process and middle scale assets.
- Lastly, I added fog and all the necessary lights and adjusted post-process while placing small scale assets such as decals.
Since this scene consists of the same structure platform, I was concerned that it’d look all repetitive and similar. So I decided to give a different theme color to each platform to make it unique, but not too different, so one color stands out too much. The balance was important.
The Main Challenges and Some Tips
I’d say my main challenge was to use my time strategically. To do so, I need to know what I wanted to do. I know, you may be fed up with those cheesy lines that you hear a lot, but really, this is what it matters to make better predictions, better decisions.
For example, I was supposed to create all the assets at CGMA, and I could have made all of them. However, I like Level Art the most, so I decided to buy some marketplace assets and use them in order to put more time on Level Art. So, if you are an animator, give it the absolute highest priority and think of how you can add even more time to it. Because 3D generalist doesn’t really exist in my opinion, it is only justified if you’re T-shaped.
Lastly, it may sound weird to say it at the end, but do not take every advice too seriously. I meant what I said, but it will only be useful to some of you. It is important to listen to a lot of people, but take it with a grain of salt.
You just need to be able to remember it when you need it.
If you want to see more projects from me or have some questions, feel free to follow or message me on Artstation.
Yurie Kawana, 3D artist
Interview conducted by Arti Sergeev
Creating a Modular Candy Shop in UE4
Interview with Heather Dove
Growing up, I created music videos for my favorite video games and shared them on YouTube. When deciding what college I wanted to go to and for what major, I had the epiphany that someone had to make the video games I was playing (thanks for the heads-up, mom!). Since then I've got a BFA in Animation and continued studying at CGMA, plus got career coaching from Joshua Lynch. Before Disbelief, I worked on simulation for government, industrial BIM kitchen modeling, and mobile AR. My latest personal projects are a mobile game called Lamb Chopped and a modular environment called Capone's Candies.
Capone's Candies: How It Started
Capone's Candies is a scene that came about when I was taking the Modular Environment class at CGMA under the mentorship of Clinton Crumpler. I had been let go from my previous job due to budget cuts, and suddenly I had all the time in the world and a portfolio that didn't match my ambitions. The funny thing about CGMA courses in my experience is that you enroll thinking you have a handle on things, and then an industry titan comes along and shows you a crazy array of tools and workflows you need to check out.
My inspiration for Capone’s Candies started with the word "modular". Modularity is all about reusing pieces in an effective way. What things in real life repeat a lot? My mind went from organization bins to candy. Once I had that concept, I eventually found reference images of this awesome candy shop called Shane's Confectionery based in Philadelphia.
Originally, I had a different idea and wanted to recreate a scene from a TV show. I asked Clinton about it and he had advised against it, saying that when you're learning, it is better to do a new environment. I quickly saw what Clinton meant; using a loose reference means that you can focus more on your ability to execute ideas well, rather than focusing on mirroring the reference exactly. Additionally, I could reimagine the space in an art deco style, which I have a soft spot for.
Modeling the Scene Relying on Texel Density
To create the space, I predominantly used Maya. The ultimate goal of modeling for modularity is to create the biggest possible chunks with the least amount of materials and polygons, all of which are tiling when possible and use appropriate texel density. To break down that techno-babble, the first thing you need to do is determine if your scene is third-person or first-person. First-person and third-person are generally approached differently in the industry. While different artists have different opinions on the matter, a first-person game should have a texel density close to 10.24 and a third-person game should have a texel density close to 3.5. A studio you work at might do this differently, but it is important to understand the fundamentals. For those of us not familiar with texel density, I highly recommend checking out this video. 80 level also has an in-depth article here.
To explain it broadly, Texel Density refers to the idea that everything in your scene should appear to be about the same visual quality. When you see a very pixelated ad on a billboard, you know the original image didn't have a high enough resolution for the size it was created at... But if you put that same image on a stamp, it probably wouldn’t look pixelated at all, right? Take this concept, but put it into the 3D world. You could eyeball your texture space and put way too much detail into a small object, or not give enough space to a large object. Instead of eyeballing whether or not your texture “looks good” by sizing your UVs up and down, you can actually use a specific number that is related to the size of your object and the amount of UV space you want to give it. Every single object in your scene will use this number, and your modeling package will adjust the UV size accordingly. In Maya, you can set the texel density of the UVs in the UV Toolkit:
In Capone's Candies project, I went through trial and error because I was modeling at the real-world scale and not with the UVs or texel density in mind. I came up with 80cm as a real-world distance between countertops but never considered how big the player's character was. That’s one way to go about making your pieces, but hopefully, you’re in a scenario where you can use texel density as your guide. For example, if you know you're committing to a 2048x2048 texture sheet for an entire wall (which is a square chunk, just like the UV), and you're doing a first-person game with a texel density of 10.24, that means your walls are going to be 200x200cm. Doing this would mean that your UVs would take up the entire UV square, and therefore tile seamlessly if your texture is set up based on that grid. If your texture is repeated seamlessly on half of the 2048x2048 sheet, then making a set piece that is half the size would perhaps work better. Once you start thinking about texel density, it will inform what kind of block-out kits you need to deliver to your level designer. If texel density is still confusing as a concept, worry not. Just put it into practice and get feedback from others. It takes a while to click for many artists (myself included).
For the materials and textures in the scene, I've used a combination of Substance Designer and Painter, with the exception of anything glass- or mirror-based (these are done in Unreal Engine). Originally, since I knew I had a tight deadline, I kept the materials simple. After the CGMA course was finished, I continued to polish my scene based on the feedback. My floor originally looked not so hot, to be honest. It’s crazy how feedback can really open your eyes to that.
The floor wasn't the only learning experience. Originally, all of the glass in this scene was more turquoise in color, since I had followed along with a tutorial where it was done similarly. If you want a good starting place, you can check it out here. Eventually, I understood that tonally this did not fit my scene and looked out of place. Some feedback I got on it was to think about how people interact with glass at shops. They put their hands on it, glass gets scratch by things over time, and so on. A good practice for telling a story in your scene is to think about how the world and people interact with the objects. The candy jars and display cases all originally used the same material, but I realized that wasn’t specific enough. I wanted the jars to appear “sugar-dusted”, and the display cases to have more “wear and tear”.
Since the jar and the candy was all exported as one object, I had a completely opaque surface (the candy), a completely transparent surface (one layer of glass), and a mixture of both (a different layer of glass which was “dusted”). There were a lot of issues with rendering this way - the candy appeared “on top” of the glass sometimes, while other times it looked like it was “inside” it. Eventually, I decided to separate the glass from the candy mesh, so that I could tell the engine what order to render things in (sort order) since I found no such option for different parts of the same mesh.
Another asset I spent quite a bit of time on was the cash register in the scene. I chose to create the shapes in Maya. I treated the detailing as a high-rez model, which I baked down onto the low poly using Marmoset Toolbag. When designing the register, I built it in a way that allowed me to programmatically move the number dials, therefore making this prop more interactable. If I were to tackle this again, I would most likely try to create the detailing in Substance Designer.
Lighting & Post-Process
Lighting the scene was left to the very end of the project. It is tempting to do lighting sooner in the project, but it can slow down production and affect how you produce assets in a harmful way. I knew from the beginning that I wanted the candy shop to feel just as glitzy as The Great Gatsby, so I set out to mimic a Sepia-toned photo. Lighting in Unreal is pretty self-explanatory, but I will point out the following: make sure that you have a Lightmass Importance Volume encompassing your scene. It may not seem to do much visually, but it id important for processes under-the-hood. Additionally, for high-level polish, you can add Post Processing Volume. Here is an example of the result with and without the Post Processing Volume (the gif gets a bit crunched, so seeing the jitter difference won’t be easy):
The Post Processing Volume is very powerful, and it is pretty intuitive for anyone familiar with layer modes in Photoshop. The two settings that I think made the biggest impact for this scene was Image Effects and Chromatic Aberration. I’ve heard from some people that “too much” Chromatic Aberration is sort of looked down on in the industry as something that hides flaws, so I’d be careful not to crank it up too much. However, it does mimic what a traditional camera does in real life, so it really helps pull together that “realistic feel”. The Post Processing Volume can get a bit heavy, so keep that in mind when utilizing it.
My biggest challenge in this project is on a more personal side. In a lot of ways, this project felt like a “make it or break it” moment for me. My portfolio right now is almost entirely composed of this project, and it’s likely to be what helped me land my current job. For me, the challenge was balancing the need to work really hard to crank out a portfolio piece with a healthy mentality. Talking with my mentors about the project is one of the biggest aspects that gave me that healthier mentality; yes, they’re there to point out things you should do better, but they’ll also call you out when you’re being a bit too harsh on yourself. If you’re looking to improve in astronomical ways, I 100% suggest both the Vegetation & Plants for Games course and the Modular Environment course at CGMA. If you’ve already got the skills and a pretty solid portfolio, but you’re confused about where you fit in the industry or how to get where you need to go, I definitely recommend chatting with Joshua Lynch via the Mentor Coalition’s Career Coaching.
For me, the next steps involve a little less crunch-time and a little more life balance. I plan on adding more to Capone’s Candies, but I’ve also got a score of other projects I’m excited to eventually tap into. If you’d like to read more details about my projects, you can read my blog here. If you’d like to give feedback or chat, you can find me on Twitter or ArtStation.
Heather Dove, Junior Technical Artist at Disbelief
Interview conducted by Ellie Harisova
Working on Modular Train Car Interior in UE4
Interview with Justin Mayle
When applying to college out of high school, I saw a 4-year program at Ferris State University as an avenue where I could exercise both my art and technical passions. After graduating from Ferris I was lucky to land my first job working at a small game company where I worked on character assets, props, environments, animation, and gameplay for a variety of games including Club Penguin, Farmville 2, Backyard Monsters, Roaming Fortress, some casino games, and Disney contracts.
After that start in the industry, I’ve moved on to specialize in environments. I’ve worked on a number of mobile games, including a Star Wars mobile game called Star Wars Scene Maker, Qube Kingdom, Tales of Honor, and Minitropolis. I also worked as a Senior Environment Artist on Farpoint for PSVR.
Studying at CGMA
I decided to take the UE4 Modular Environments course at CGMA to improve and test my skills and to fill in any gaps I might have had. After working on Farpoint I wanted to learn more about how AAA companies put environments together in a systematic way, and the Modular Environment course helped me understand just that. I have also taken the Unreal Shader Course with Kurt Kupser, which I highly recommend.
1900's Train Car: Inspiration
I used Pinterest for my reference board. I liked the idea of a contained space and wooden elements, so the train interior that Clinton showcases inspired me to make a similar scene with a twist. I then chose a time period that would be personally interesting to explore. I also keep track of politics, which inspired me to make it a campaign car for an election.
Modo is an awesome, efficient modeling program. After making the switch to it from Max years ago, my speed in modeling increased dramatically. I also have an MMO mouse where I bind quite a few tools and custom pie menus. Modo’s customization is easy to use and tailor to your own workflows. A couple of examples of custom tools I used on this scene include quick scene export tools, quick asset exports, and quick UV tools. The export tools export all assets, or selected assets, to your save location and with zeroed out transforms; this is much quicker than exporting out each asset. The quick UV tools generate two UV maps: one that is a cubic map (think triplanar mapping) set to the proper texel density, and a second atlas map for lightmaps. I also used a third UV set for certain assets that needed trim mapping, which I will describe below.
To decide which assets needed to be modular I reviewed my reference, noted repeating elements, and determined which elements could be modular and which elements I wanted to be unique (not modular). It’s important to stay on the grid when laying out block meshes, so I incorporated a couple of length options in my modular kit to give flexibility. Length options on modular pieces you choose will depend on the scale of the scene; typically, I find that 1-meter, 3-meter, and 5-meter options give you pretty much all the flexibility you could want.
If you need corners, include those in your modular kit. My scene did not have corners, but I did have end caps.
If you were to just have modular pieces and no unique or interesting elements, then your scene will be boring and lifeless. It’s important to have interesting points in your scene, and I’d encourage having a variety of assets in a scene to make it feel believable. An example of an element of interest you can include when blocking out your modular kit is a wall break. This could be a column that juts out or a more detailed piece. These don’t have to be modular and are good to have to break up the repetitions on long modular walls.
The process itself began with blocking out the space with the basic elements I chose from my reference gathering. I guessed at appropriate sizes and number of items for those pieces, and added them to the scene; once in the scene, I adjusted size and number of objects. I then made those refined elements into pieces for my modular kit.
Using a modular kit allowed me to make widespread changes to the scene by updating only a couple of kit pieces. It’s a valuable tool, and I recommend any environment artist to learn the basics of building a kit.
I used Substance Painter for most of the texture creation, including the tileables. For the decor, details and unique texture bakes I used ZBrush as a starting point. For the decor details on the trim map, I arrayed high poly detail with alpha brushes in ZBrush. This gave me options for details around the scene. For the unique bakes like the chair or door, I modeled the low poly chair and then brought it into ZBrush to do the high poly, instead of creating a high poly with sub-d or bevels.
To achieve this technique in ZBrush, make sure the mesh that the mesh exported has all open holes capped. Set hard edges on your asset and unwrap from those hard edges. This won’t produce a good unwrap, but it is essential for how this process works.
Step 1: Import your model into Zbrush and set your polygroups based on UV.
Step 2: Crease by Polygroup.
Step 3: You may need to subdivide a couple of times to give ZBrush more to work with.
Step 4: Dynamesh to a decent resolution. Some small artifacts may appear.
Step 5: Polish.
The rest of the texturing process lies in the material and shader creation in Unreal. In Unreal, I enable baking the AO mask that I add into the shader to add dirt and grunge to the scene. The materials have a detail normal which adds fidelity, and they have a trim normal option; this lets me add a trim map to any tileable that I desire. The way I authored the shader requires a 3rd UV set to keep the texture tiling properly. Material authoring can be done in any number of ways; this was one interesting solution that I decided to use and help speed up my asset creation.
First I will choose my time of day, HDRI, and how much I want the sky to contribute to the scene (typically by tuning exposure). I then set my key light and supporting lights. There are a number of tutorials out there that show how to set up a sky to use an HDRI - watch one if you want to know more about this process.
For this scene there are 5 point lights, a directional light, a skylight, and the main ceiling light is set to stationary. I adjusted emissives of the lights to help the realism of the scene; I tried to emulate how much light they would believably emit based on the intensity. If the base is realistic, then choosing a path towards any artistic choice is much easier.
Here are the values I have for the lights in my scene:
- Table Lights: 150 lm, Radius 1500, Emissive Material 125 intensity
- Wall Sconces: 230 lm, Radius 800, Emissive Material 150 intensity
- Ceiling Lighting: 1200lm, Radius 3500, Emissive Material 150 intensity
- Directional Light: 5 lux
- Skylight: 1 Intensity and 1 Indirect intensity
The softness of the scene is derived mostly from the fog and volumetric fog. Each light is tuned to contribute more to the volumetric fog, which helps emphasize the artistic look of a scene. With a slightly higher bloom, dense fog, and volumetrics, vignette, and some other post effects, it creates a soft and inviting space.
Reflections around the scene are not complicated but can get out of control when too many are placed in a scene. One box reflection is used and smaller reflection spheres around the room provide accurate localized reflections. I did not turn on planar reflections for my mirror, which would produce a much better result, but those are quite expensive to render at run-time, as the scene is then being rendered twice.
With lighting, I try to be intentional and purposeful. Many scenes use extra fill lights in scenes to get more bounce or super high intensities to get more bounce when really that isn’t needed if the scene is exposed properly and lit properly. If an area needs more light in a certain corner, the attenuation radius might need to be increased on a nearby light. Fill lights can be beneficial and may be needed, but having complicated lighting rigs will only be harder to adjust.
One of the biggest challenges for me in this scene was lighting. I was fortunate to receive a lot of feedback and help from my former art director, Randy Nolta. I really wanted to understand lighting in Unreal, and he taught me a lot. Mentors, supervisors, and colleagues are great resources for improving your skills, so don’t be afraid to ask your network for help. Additionally, I have had the chance to professionally work on more lighting projects since taking this class, and this hands-on experience has really elevated my knowledge on the matter.
Time was also a big constraint for me as I had a long commute on a bus to work and really only had weekends and some nights to work on the scene. I didn’t actually finish the scene until a few weeks after the class concluded, but I’m glad I persisted and finished.
It was really a joy to learn from Clinton on developing modular kits in an intelligent and systematic way. He was able to help me massage different elements into a more believable state and provide helpful suggestions.
The next project I want to work on are quick scenes that utilize scans. I want to focus on rendering things out at a high-quality in real-time with lighting, materials, post effects, and composition. That will include generating unique assets, but I see scans (much like modular kits) as a great way to put scenes together quickly.
Interview conducted by Ellie Harisova
SanXia Street 1940: Modular Approach, Trim Sheets, Decals
Interview with Cliff Chen
Cliff Chen prepared a detailed breakdown of his modular Taiwanese street created during one of the classes at CGMA.
In high school, I dreamed of being an environment artist and was fascinated by the idea of immersing myself in the world of art. I first learned 3D modeling in my first year of university. At that time I was still naive in regard to the industry’s entry standard and struggled to land a job after graduation. I then realized how disadvantageous my portfolio was and used the next 3 years to learn and hone my skills. In that time, I took on some freelance and contract opportunities in architectural visualization and indie game projects, which eventually led me to my current full-time job.
I am incredibly grateful for the privilege to share my workflow on my latest environment piece made at CGMA.
After my freelance work with Upsurge Studio was finished, I was on the hunt for jobs again. With so much free time, I thought it would be great to take a mentorship course to boost my skills while searching for a job. I have heard great things about CGMA and with its flexible class structure, it really made the learning convenient for me. So I decided to give it a shot.
I chose the Modular Environment course because modularity is a crucial component in environment art that I was unfamiliar with at the time. My 3D experience has been mostly self-taught, therefore some of my workflows lacked the industry level of efficiency. I was hoping that through this course I would be able to push the boundaries of my skills and gain knowledge of professional practice from industry veterans like Clinton Crumpler.
SanXia Street 1940: Inspiration
I had always wanted to create something related to my home country Taiwan. So from the get-go, I set my vision on Taiwanese scenery. As I was doing my research, I realized that the old streets in SanXia perfectly illustrated the layers of Taiwanese history of the past century. The design of the street was heavily influenced by a mix of Western baroque-style architecture and Japanese/Chinese carving, which was popular in post-Westernized Japan. The traditional Chinese spring couplet and Japanese signs show the unique blending of culture and history setting of Taiwan during Japanese colonization. To give more story elements to the scene, I decided to set the time during the Second World War when most men were called to battle, and stores and businesses were closed down. I wanted to replicate the SanXia Old Street during a time of fear and uncertainty.
I was unable to find the exact photo of the street during the war. Although the building which remains now has been renovated in 2007 and is said to be an accurate restoration from the early 20th century, I still needed more reference for other details such as vehicle, common props, signs and posters to make the scene more convincing.
Planning Modular Parts
In planning the modular pieces, I dropped the main reference photos inside Photoshop and determined key blocks by painting over them with vibrant colors. It was quite a difficult process since each building had its own unique design. I tend to search for the most distinguishing features of the building first. For example, the front came with three sections, one wider section in the middle and two narrower sections on the side. From this information, I know I can break the building front into 2 main parts, a wider centerpiece and a narrower piece for both sides. The windows have the same concept as well.
The end goal was to break down the building with as few parts as possible, and all parts should have some reusable values. For example, initially, the window piece was broken into three parts (wall, window and bottom piece), and later I decided to merge them together due to the lack of reusability for the bottom piece and also to match the width of other modular parts, making assembling the building much faster and efficient.
After the modular planning was done, I modeled the blocks in Blender. The goal for this step was to make sure everything assembled well - check if pieces were missing and cut down unnecessary pieces. In this process, definitely expect a lot of back and forth between planning and modeling.
Trim Sheet Planning
Trim sheet textures were used to optimize the texture space for modular pieces and provide consistency throughout the environment. To begin planning, I used a workflow similar to the planning of the modular pieces to figure out the parts that I would include in my trim sheet.
With the parts decided, I created a reference texture using flat colors to plan out the appropriate ratios and size for all the parts. This map is later used as a base reference for modeling the trim sheet geometry.
I began modeling by creating a plane with a size of 2048x2048cm and splitting it into sections according to the reference texture. I mainly focused on modeling the main form and edges before bringing the model into ZBrush for a more detailed pass. A good tip I learned from the class is to model the high poly slightly outside the 2048x2048 texture range for a better baking result; it also prevents AO from darkening on the edges.
For the ornament detail, I used the "Ornament Kitbash” by Jonas Ronnegard to speed up my modeling process.
Detail Sculpting in ZBrush
When the basic form was completed, I exported the mesh into ZBrush for a high poly pass. In order to sculpt the mesh with seamless detail, ZBrush required a bit of setup before sculpting. I had to import a 2048x2048cm size plane mesh on a separate sub tool channel, which had to share the same pivot point and be aligned perfectly with the mesh. Go to the document tab and set the canvas size to 2048x2048cm.
Make the trim layer invisible so only the plane can be seen, snap to the front view and press ‘F’, the canvas should now be filled by the plane.
Turn on the visibility of the trim mesh - the canvas is now set with the boundary of the texture size.
Now the final step for seamless sculpting is to turn the WrapMode to 1 by going under the brush tab and inside the curve section. With this setup, I was able to sculpt my mesh with seamless details. Remember to turn on the WrapMode again every time you switch to a new brush.
After sculpting, I decimated the high poly mesh and exported it back to Blender. I then assigned color ID to different parts of the trim so it can later be used as masks inside Substance Painter.
I started preparing materials by browsing on Substance Source. Once I found a suitable material, I would use it as a base and modify it in Substance Designer in order to make it match the reference. This workflow was used for most tile materials in my scene.
Painting the Trim Sheet
Once I had all the materials needed, I began to texture the trim sheet inside Substance Painter. I imported a plane mesh and used the high poly to bake out normal, AO and ID map information.
After assigning the base material using the ID map, I spent the rest of the process experimenting with smart masks to create dirt and grunge details. Due to the nature of the trim sheet being repeatedly used, I tried to avoid adding large and noticeable tiling details like cracks or water stains.
I made two trim sheets for my entire modular parts, one concrete/brick trim for the main building structure and one wooden trim for the windows and storefronts. With the use of trim sheets, much of my time was saved from modeling and texturing each individual asset. Another convenient thing about the trim sheets is that I was able to generate different variations of the same mesh using the same texture, allowing the building design to be more diverse.
Trim sheets were not only used on buildings; several props in the scene were also textured with trim sheets.
After importing the modular parts into Unreal Engine, the main visual of the street was established. As I was testing the camera composition, I realized the scene lacked a main focal point due to the buildings being identical. I needed something that could deliver a story for the street.
I decided to use the rickshaw as the hero prop of the scene to portray the theme of farewell. Since it was set in the age of war and uncertainty, many people were sent away or escaped the country for safety. With the rare usage of cars, rickshaws were a very common way of transport in Asia during the ’40s. After researching the look of authentic Japanese rickshaws, I began my modeling process.
Modeling the Rickshaw Roof
Modeling the top leather/fabric part of the rickshaw was quite a challenge for me. It was my first time simulating cloth in Blender. After modeling the metal frames, I created the base shape of the roof above it, making sure there was enough space between the frame and roof for cloth simulation. When modeling fabric mesh, I prefer to start simulating with a lower poly count and gradually increase the poly detail by adding edge loops and subdivision while adjusting the shape (just make sure there is enough poly count for the shape to form).
To achieve the seam detail on the edge of the roof, I modeled it manually by adding extra poly loops along the edge, selecting the “seam” edges and press Alt+S to move the edge inward.
Before exporting the high poly, I assigned vertex colors to details that will be baked onto low poly, such as the screw bolt, nameplate, and cushion.
To avoid overlap baking in Painter, I separated the model into mesh groups and exported them into one FBX file.
Dressing the Scene With Decals
Decals were used heavily to make the modular scene more believable. They break down the repetitive look of the modular parts and make each building unique. There are three categories of decals that I use in my scene, which are environmental decals, texts decal and decals served for storytelling.
To set up my decal material, I followed the tutorial by GameTextures.com which uses parallax occlusion from the heightmap:
To create material instances for later use, I converted the texture slots and height values to parameters. I also added custom functions that allow me to adjust base color and roughness values in the material instance.
Environment decals are mostly based on natural phenomena such as the cracks, water stains and puddles on the floor. I downloaded most of the crack and water stain decals from the Megascans library and used them heavily on concrete surfaces and gaps in between trims.
For the water puddles, I downloaded a free puddle decal material made by Axton which comes with the function to adjust edge fall off strength and puddle color.
The decal also uses custom alpha maps to generate different puddle shapes. By using this feature I was able to create the wet tire tracks with my own alpha map.
There were some environment decals for man-made decorations like the ornament details and sewer manhole. I had difficulty thinking of a way to create the ornament details on the top of the building and decided to experiment with the decal workflow. I used the same ornament kit from the trim sheet to create the high poly mesh.
To create the opacity map, I assigned the ornament mesh with white vertex color and baked it onto a black plane using Blender's Cycle engine making sure to select the color tab only and set the margin to 1px for the accurate shape.
I then exported the high poly mesh and the plane as low poly into Substance Painter to do the texturing. To enable opacity inside Painter, first, enable the opacity channel under Texture Set Settings and then change the shader to ‘pbr-metal-rough-with-alpha-test’. Lastly, drag the alpha map into the opacity slot inside a fill layer, the black part of the map should then be transparent in the display.
Initially, I tried to use Substance Designer to convert the normal map into a heightmap, but the result was not ideal due to the complex shape of the ornament. In the end, I brought the opacity map inside Photoshop and applied inner shadow around the edge to create the bump.
After plugging the textures into the decal material with parallax occlusion on, the decal looked quite convincing on the ground. However, when I stuck the decal onto the vertical surface, the shape would be distorted.
The issue was resolved when I assigned the decal material to a plane mesh.
The ornament looked great close-up but when it was viewed from the player's level, the details faded out. For future reference, I would probably use actual mesh for the ornaments, especially for hero assets.
Text decals were made mostly for the shop signs and wall carvings. They serve the function of communicating hints of the location of the scene, the local language, and the purpose for each building (hospital, tea shop, etc.). It gave each individual building a unique role.
I found a Chinese website that was able to turn Chinese characters into traditional calligraphic fonts and export them into PNG with a transparent background.
To decrease the number of material instances I had to make for each sign, I combined all the characters into an atlas map in Photoshop. The opacity map was created by making the text white over a black background.
I then used Substance Designer to extract normal and height detail from the opacity map.
Lastly, the textures were brought into Painter for a material pass.
Due to all the signs sharing one UV set, I had to create multiple plane meshes with UV assigned to each sign. This workflow increased the number of mesh assets I had for the scene but decreased the total texture size of the decals.
Decals for Story Elements
This group of decals works as visual hints used to illustrate the war period that the story is set in, and also show the blend of Japanese and Taiwanese cultures. I wanted viewers to sense the atmosphere and tension of the time even without understanding the characters and signs.
Throughout the street, I placed war propaganda posters showing brave soldiers and promoting unity between Japan and China. But among the war posters, there are also commercial posters advertising products reflecting the street as a shopping district.
Around the door, I placed spring couplets showing the Chinese roots of the Taiwanese culture.
The textures for these decals were simply made with diffuse and opacity maps. Roughness and metallic values were set inside the material instance.
Using Planar Reflection
I used the planar reflections for a realistic representation of reflection on puddles and windows in my scene. This produced the cleanest and most accurate result of reflection without the distortion from the regular baking method. However, it does make the scene heavier to run.
To enable planar reflection, go to Project Settings, under Rendering > Lighting, enable the setting ‘Support global clip plane for Planar Reflection’. After restarting the scene, the planar reflection blueprint should be available under the Visual Effects tab.
Lighting and Post-Processing
When planning the mood board for my scene, I was heavily inspired by the atmosphere of the game The Order: 1886 with its dim grayish sky and dusty-looking color palette.
My lighting setup was fairly simple, with the default Unreal skysphere as the background and a directional light as the main source of light. I adjusted the light direction to make it shine from the right end of the street, the lighting angle helps guide the viewer to the main focal point. I also changed the light to a slightly warmer color to simulate a sunset.
Throughout my lighting process, I spent a lot of time trying to balance out the shadow in the hallway. If I increase the skylight to make the hallway more visible, the whole scene would look washed out, but by keeping the shadow contrast, I would lose the details. By placing ceiling lights throughout the hallway, I was able to properly light up both areas. Each ceiling light comes with 3 light components: one spotlight as the main light source, one point light to fake the GI bounce, and one point light to light up the lamp.
Multiple point lights were placed to enhance the overall presentation of the scene. For example, I placed a point light right near the rickshaw, using a slightly colder color to make the object stand out from the mostly warm scene. Some point lights were placed near the camera to present better details at close range.
Before the post-processing, I tried to make the lighting as close to the final look as possible, so the color and shadow of the scene would look more natural. I made the scene slightly desaturated with a yellow tint to deliver a vintage vibe. Instead of going for the colder tone like in The Order: 1886, I chose a warmer tint to represent the time of day and the humid temperature of Taiwan. I also adjusted the exposure and shadow contrast to brighten the overall visual.
What I found most crucial when presenting my modular scene was to break down the repetitive nature of the modular kit. When viewers can immerse themselves in the environment without immediately noticing that the parts are duplicated, I consider the modular scene successful. I used many methods like decals, hero prop, lighting and subtle visuals (e.g. planes in the sky) to fill the scene with information for the viewer to absorb.
Due to this being my first modular environment, I was worried that I wouldn’t be able to complete such a complicated scene in ten weeks. In the end, I was quite satisfied with what I had achieved. Taking the course with Clinton has helped me learn better ways to plan out the steps, and I gained new techniques such as using trim sheets and color ID to speed up the workflow.
Cliff Chen, Junior Environment Artist at A44 Games
Interview conducted by Ellie Harisova
England World War 2: Modularity and Storytelling in Environment Art
Interview with Erick Villareal
Erick Villarreal did a breakdown of his modular environment England World War 2 made at CGMA and gave some advice on what can prepare artists for work in the industry.
Hello everyone. My name is Erick Villarreal, I am an environment artist who just finished up work on Ghost of Tsushima at Sucker Punch Productions as part of their environment art team. I graduated in 2017 with a BFA in 3D Animation and Game Design with a focus on environment art from the University of the Incarnate Word in San Antonio, Texas.
While in school I was able to secure an internship position working for a public artist doing renderings for sculpture proposals. This opportunity ultimately became a part-time job I sustained between classes where I felt myself become more confident as an artist. With this experience, I was able to get architectural rendering contracts from my university professor Carlos Lucio who is an architect and visualization expert. These jobs were critical for me as I stayed focused and got the experience to validate my self-growth as an artist.
After graduating I had a large portfolio mainly made up of architecture renderings but my focus was to transition into the game industry. My friend and character artist Carlos Garcia told me about an online program at CGMA and how they assign you a teacher who is an industry veteran and who walks you through the industry-standard workflow. This sounded like the perfect opportunity to get eyes on my most current work, fill any remaining gaps of knowledge in my workflow, and meet 3D artists interested in getting in the industry.
This was just what I needed as an artist, the knowledge helped me attain my most recent contract work at Sucker Punch Productions working on Ghost of Tsushima. While being interviewed and after getting the job at Sucker Punch, one of my leads at the studio continued to reference the work I created at CGMA as a project that got me the job.
Environment art is a passion of mine that keeps me motivated every day to become a better artist. Recently I’ve found a passion for material creation and I’ve been exploring it in my free time. I am excited to see where it takes me.
England World War 2: Inspiration
The project “England World War 2” was inspired by a documentary on Netflix that dove deep into World War 2 and through it showed many beautiful locations come to ruin. This led me to do research on some real-life locations I could reference for my project. This piece was based on a real-life public underground restroom still in use in the UK today that was around during World War 2. I wanted to flex as many 3D muscles through this project as possible like building from an image, storytelling, lighting, and texturing. The goal was to build interest for my project from recruiters. For the mood and lighting, I was really inspired by the film Dunkirk and its use of blues and oranges throughout the film.
One of the most important things I picked up while studying at CGMA was the process of modularity. I had known it was a big part of creating environment pieces for games but there was a technical aspect I could not solve at the time. This was a key component I learned at CGMA that allowed me to create this environment efficiently and within the 10-week time frame. The process of modularity involves blocking out your scene in “gray box”. Only after getting a feel for your space through placing the blocked out scene in the engine can you begin to break down objects into reusable pieces. These pieces are built using the Maya grid while having their axis oriented to their floor corner to make it easier to connect them like legos. The Maya grid gives you a structure to stick to which allows you to build while staying within limitations that help you connect the pieces later on.
Henry Kelly has a great breakdown on his youtube page over this process:
Another element that was very important for being efficient in the creation of the project was vertex painting. Vertex painting is when you use an intersecting point from the polygons for information on where one texture will blend with another. This technique is used a lot in the industry and in the games like in Ghost of Tsushima. This helps you break up the textures so they don't look tileable and instead look like unique individual textures. Using the red, blue, green, and alpha channels lets you layer textures on top of each other to break up the repetition of the material. This has actively become a must-learn part of texturing when making environments. It is created in Unreal Engine by using the vertex color node in its material creation window and its vertex paint tool.
I also recommend looking into texel density. It's very important to have an even texel density so the resolutions of your textures don't clash with one another. You don't want a very clear pristine texel resolution next to an asset with very low texel density resolution. Leonardo Iezzi has a great tutorial on Gumroad expanding on texel density. Substance Designer is a very powerful tool all environment artists should look into. It's used to create very elaborate but seamless textures you can tile many times. Currently, as tileable textures go, ZBrush or Substance Designer is the way to go for creating these tileable textures.
Height Blend Material
A great way to really get the most out of your textures is using the height blend material node found in the material creation window. Unlike the linear interpolation node that lets you paint one texture over another using a vertex color, the height blend material node allows you to use height information to be considered when blending materials. This helps the material blending look more organic and realistic because the materials use their actual height information to blend with one another. This node uses two textures, a vertex color input, a height input and you can add a constant parameter to edit the contrast of your height information. The contrast is a great way to have more control over the blending.
In this project, I used Megascans only for the dust that was settled on the assets throughout the scene using the world aligned blend node. I used their snow material to create this look. I think it's important to show recruiters you are able to go through each process of the environment creation but also that you are clever enough to problem solve when you reach hurdles along the way. For a lot of artists, creating textures from scratch is a big hurdle that can take a few years to achieve. A quick way to begin your journey into environment creation is using assets and materials from the Megascans library. Megascans is also a great way to reference materials to understand how their albedo, roughness, metalness, normal map and ambient occlusion map look if you want to create hyper-realistic materials.
Lighting is a very important part of making your environment look visually interesting. You can have the best assets and layouts but with bad lighting, you can really do yourself a disservice. Take your time with your lighting and identify what color information you want to have in your environment. It's good to look at movies and movie posters to see what colors they use to make their images pop. Most of the time it's the use of complementary colors like blues with oranges, for example.
Aside from having a dynamic looking render, you also want to make sure you’re focusing on the story element. Old broken lights? Flickering lights? Neon futuristic lights? Never lose a chance to tell a story with your environment. The more story the more real it tends to feel to the viewer. Fog is a great way to get some interesting looks from your lighting. It's also a way to get those light rays a lot of people are after in their projects.
Also, it's good to note that when lighting in Unreal Engine you need to pay close attention to the assets' light mass resolution. The resolution of the asset will affect how well your light bakes look. In Unreal, go to “Lit” in the screen options, then scroll to “Optimization Viewmodes”, then slide down to “Lightmap Density”. Red bad, green good.
This is a big one. Basically, if someone was to look at your environment what could they deduce from the objects laid out in the environment? Was there a fight and the objects were scattered? Did a family live in your space? Was the person messy or a heavy smoker? The viewer should be able to answer all these questions with the use of visual narrative. You want to lay out your scene with objects that describe who and what has been in your space and why. Aside from quality, this is what separates your environments from others. The ability to tell a story with your space will make the difference. Great references are films and photos of locations inhabited by people or animals. If you can stomach it, I suggest you go back and watch the movie Seven. Every space the main characters walk in is laid out masterfully and you can tell exactly what happened there.
I'd say the biggest challenge was learning new techniques and implementing them on a timeline. A lot of the time when you have a developed workflow it becomes easier to run through the process to create something. Implementing new skill sets and techniques requires trial and error and lots of tests. My instructor Clinton Crumpler was very helpful in giving us really good breakdowns of our expectations and workflows, and once we implemented the new techniques he would help us refine them to best suit our scene.
You can't know enough about environments, the industry is always growing and we are required to always keep up with the new software. There will always be a new and better way to create something and it's up to you, the artist, to find the best method that's most relevant in the industry. With acquiring the fundamentals, I am confident it will always give you the edge to be a competitive artist in our industry.
Lastly, if you’re wondering what software you should know or what holes you have in your knowledge bag I encourage you to look up some job applications for environment art and see what they’re asking for, then figure out what you do have and what new techniques you need to pick up next along the way. Good luck and I look forward to seeing you all out there.
Erick Villarreal, Environment Artist
Interview conducted by Ellie Harisova
Making an Old Japanese Classroom in UE4
Interview with Denys Davydov
Denys Davydov shared a breakdown of his environment Old Japanese Classroom made during CGMA's UE4 Modular Environments course.
Hi! My name is Denys Davydov, and I'm an Environment Artist from Ukraine. My way in CG started eight years ago. Back in those days, I was in the 3rd year of university studying Civil Engineering and played games a lot. One day, I was curious about the process of making games, and I started to research this topic. It opened to me the whole new world of Game Development and Environment Art in particular. After a few months of trying my best in modeling, I realized that I enjoyed it so much more than doing a calculation of bearing structures. With this in mind, I took a local 10-month class, where students came through the whole pipeline of creating 3D content. After I finished university, I was hired as an Environment Artist in Vostok's Games team to work on their project named Survarium. A year and a half later, I was hired by Plarium for the Environment Artist position, where I'm still today. Here I had an opportunity to work on Raid: Shadow Legends, and also sometimes help out on other projects, such as Stormfall: Rise of Balur; Stormfall: Saga of Survival; Sparta: War of Empires.
Old Japanese Classroom: Start of the Scene
The project initially started within the CGMA UE4 Modular Environments course. My primary goal was to get to know UE4 better, feel more confident inside the engine because I'm using Unity on a daily basis, and I wanted to expand my toolset. Many thanks to Clinton Crumpler for sharing very valuable information and knowledge during the course.
So first thing first, I had to choose a topic of the environment. I felt that I wanted to create something peaceful, with a warm mood, something where light would be a key to the whole scene. With this in mind, I decided that wood material should be primary in my scene because it is a noble material and should add a lot of coziness to the environment which I was looking for. And also, it was supposed to be small enough because I didn't want to spend too much time creating content and wanted to spend more time inside the engine. So, after all these points and some research, I concluded that the classroom from an old Japanese school was the way to go.
The process of gathering references was pretty much straight forward. First of all, I chose the primary reference for the overall scene. It was an Elementary School back in 1888, but now, it is a museum in Tome, Miyagi Prefecture. Thanks to this photo, we can roughly understand what constructive elements and props we will have to make and what materials we will use. After that, I collected refs for lighting and mood.
I love the idea where the light passes through the windows, leaving the shadows of the bars on the floor and walls. It adds details to the scene, and this sort of shadows can direct the viewer's eye to the point of interest.
Of course, for inspiration and more references, I started watching anime. I found Hayao's Miyazaki "The Wind Rises" and Makoto's Shinkai "Your Name" the most valuable in my understanding of what I wanted to see in the end.
Auction sites can come very handy if you are looking for hi-res photos of a specific prop from different angles.
The classroom itself was easy to divide into modules thanks to the elements it consists of. I ended up with five pieces for the walls, three for the ceiling, and one for the floor. For the props such as furniture, I googled dimensions and tried to stick with those numbers.
At this stage, keeping all the objects consistent in the term of dimensions is essential, so don't hesitate to double-check your blocking with reference character and inside the engine.
After I was happy with the blocking, I started working on the modular parts. I made a trim sheet for the wood elements of the wall and ceiling and also tiling materials for stucco and wood planks. The trim sheet was sculpted in ZBrush using a tiling technique. I mainly used the Trim Smooth Border with square alpha, Trim Adaptive, Mallet Fast, and Dam Standard brushes for this. I wanted to add a slightly stylized look for the wood and for the scene itself, and because of that, I exaggerated cracks and edge chipping a bit. Also, I prefer not to overdo sculpts but add details in Substance Painter due to its flexibility.
Looking at the references, I really liked how the desks set the rhythm and what silhouettes they had. Proceeding from the fact that there were many desks in the scene and it was necessary to avoid repetition, I made two types of desks with the ability to change the tabletop. Then there was the sculpting stage. As for the trim sheet, I exaggerated cracks, edge chipping, and silhouettes.
For the rest of the furniture, I chose a slightly different approach. I skipped the stage in ZBrush and did all the details in Substance Painter.
Materials and Texturing
The very first material that I made for the scene was wood. There are many wooden objects in the scene, and I needed a material that I could use with them. The wood material by itself is fairly simple. I exposed a few parameters that allowed me to control color, fiber intensity, damage on the surface, etc. I used a similar technique for the floor material. The ceiling material is almost the same as the floor but with a different seed, planks scale, and some roughness tweaks.
Stucco material is even simpler – just a blend of a bunch of noises.
I used wooden material from above in combination with some other basic materials from Substance Painter for the trim-sheet.
When texturing wood furniture, it is important to pay attention to which direction the wood's grain is going. It's easy to control if you've baked an ID map for horizontal and vertical planks and then masked them for the appropriate material layer where the grain of the wood will match the planks' direction. I also wanted to add some chipped lacquer which exposed the lighter wood. I added chips and scratches using alphas through a stencil.
Posters and Books
To add interest to the posters and books, I decided to sculpt the folds and tears that appear when folding the paper multiple times.
Hieroglyphs on posters and books were a quite challenging task for me because I don't know Japanese at all. I've spent a lot of time googling photos of the books that would be relevant to the school. In the end, I took these photos and made alphas out of them, which I later used in Substance Painter.
For the chalkboard drawing, I chose Sun's face from the Princess Mononoke anime. It was necessary to convey the feeling that the drawing was done with crayons because the original image was just a still from an anime. To do this, I had to tinker with layers and filters in Substance Painter. Below you can see which filter affects what.
I used Vertex blend materials for the walls and floor. Classic setup, nothing fancy. Inside the material, it is possible to tint the base color, change the roughness, and mix up to three different material variations through a custom mask. With this setup, I painted the areas where, supposedly, students walked.
Building the Scene
The process was straightforward. At the blocking stage, I tried to solve the main questions related to composition inside the scene: what is the best place for desks, musical instrument, and TV, and how best to hang posters on the walls. When most of the objects in the scene are ready, you need to start looking at the picture as a whole. At this stage, backtracking and some adjustments here and there are possible and most likely will be required. It is important to look at your scene not only in Lit mode but also switch to Base Color to check if your albedo is within reasonable limits. It also helps a lot to take screenshots of the scene and then translate them into black and white in Photoshop. The color fades away, and it's easier for us to focus on the lightness of the materials in the scene.
I want to express my gratitude to Yeghor Gallagher, who gave me some valuable advice regarding composition and points of interest. Due to its architectural style, the scene is filled with an abundance of straight lines that serve as excellent guidelines for the eye. Thanks to them, the gaze is kept in the center of the composition. That's why it was decided to add a chalk drawing to the board – to make the blackboard attractive for the viewer to look at. And also, because faces are kind of a magnet for our eyes, it is easier to keep them inside the composition. Red backpacks also help to guide the eyes across the scene.
The Importance of What Is Outside
I wanted to achieve the effect of immersion in the scene so that the viewer felt there was a world outside the classroom, and it was alive. For this, just the geometry of the level with textures was not enough. The emptiness outside the windows instantly destroyed this immersive effect.
The buildings on the outside consist of one model, which I have duplicated several times. The primary purpose of this model was to add some information outside of the windows. I also added trees with red and green crowns. The trees are made via SpeedTree. The red one fit perfectly into the overall warm mood of the scene, while the green served as accents in the places I needed.
Lighting was the most challenging and time-consuming stage. I had to try dozens of different settings to be satisfied with the result in the end. And I don't think I will surprise anyone if I say that, but all the necessary knowledge about lighting in UE4 you can get from these great resources: Lighting Academy, Ryan Manning, Video from Epic about lighting.
The lighting scheme by itself is very simple. It's just Skylight and Directional light. I set Skylight to Static with a custom cubemap, which has set almost the whole atmosphere in the scene. Here are the parameters:
Directional light set to Stationary and combined with volumetric fog produces beautiful volumetric god rays from the windows:
And here, you can see how much volumetric fog changes a scene:
I also used several lights that added glare and illuminated the places I wanted. For example, in the first shot of the cinematic, when the camera flies into the room, I added a spotlight that adds highlights to the floor. Without this lamp, the floor would have looked completely flat from this angle.
And behind each curtain, I placed a rectangular light which helps lit them more.
To emphasize the areas of interest even more, reflection probes come in handy. For the classroom itself, I used Box Reflection and Sphere Reflection for small local areas within the room.
I color graded the scene via LUT and made some adjustments in Shadow section:
With this one, I had a lot of fun. You truly have limitless possibilities when you work with a camera in 3D scenes. Stills are good, but if you can make a short cinematic of your scene, I think it's a way to go. Especially now when on Artstation, you can load a video directly inside your post, and it will be autoplayed for the viewer. It's a great way to breakdown stills a bit and make your entire post much more interesting.
Movement in the Scene
For the cinematics of the environments, it is crucial to make some objects moving, because, without this, your scene will probably look boring. It shouldn't be something that takes a lot of attention, but rather the opposite. These movements should complement your scene. For example: waving grass, falling leaves, blinking lights or shadows from the floating clouds, etc. All these kinds of stuff will add believability.
For the dust particles, I used default Ambient Dust. For falling leaves, I used particles from Particles and Wind Control System with different leaves textures.
I believe that camera movements should be as simple and natural as possible. Try to give some time to the viewer to inspect what is in the shot. Avoid crazy spins and turnings. They only distract the viewer from the immersion. But of course, there can be exceptions.
Oh, and yes, try to keep the speed of your camera constant through the shot. In the Sequencer, set the keys interpolation to Linear for the Transforms of the Camera.
Depth of Field
DoF is another excellent tool for storytelling. You can change it through the shot, and in that way, you can lead the viewer's eyes wherever you want.
At the beginning of the project, it is very important to set the quality bar you want to reach and compare your work with it from time to time. It helped me not to drop things halfway and achieve the result I was aiming for.
Another thing that I came to closer to the end of the project was how important it is to set the deadlines for your projects. And it's okay if eventually some deadlines are not met. The main thing is that it will keep you in some kind of tone and not let the project be thrown too much.
Thanks to all of you for reading the article. Peace!
Denys Davydov, Environment Artist
Interview conducted by Arti Sergeev
Boarding: Creating a Real-Time Environment in UE4
Interview with Shil Bose
Shil Bose prepared an extensive breakdown of the UE4 project Boarding made during his studies at CGMA: work with trim sheets, modular elements, and Megascans assets, material and shader setup, GPU lightmass settings, and more.
Hi, my name is Shil Bose and I’m a 3D environment artist based in Toronto, Canada.
I’m currently a biomes artist on Far Cry 6 at Ubisoft Toronto, where I’m working with a very talented team to make the vegetation in the game. Previously, I was a hard surface and weapons artist on Starlink: Battle for Atlas. In 2017, I graduated from the Animation program at Seneca College, which was focused heavily on art fundamentals such as figure drawing, storyboarding, and layout/composition, but I chose to major in game art in my final year since I have been in love with video games all my life. Especially in the last decade with how fast game engine technology is evolving, I feel that games have an unparalleled scope for storytelling and artistic expression.
Boarding: Pre-Production/References and Inspiration
With regard to my scene Boarding, my goal was to build a larger environment with a good balance of macro/micro level detail and a strong cinematic feel. I also wanted it built in a way that is compatible with AAA game production pipeline. This means building with a modular approach, relying heavily on tiling textures/trim sheets, keeping texture sizes reasonable, maintaining texel density, etc. Most of my previous work was with unique baked 0-1 textures which are less useful in larger environments, so Clinton Crumpler’s CGMA course was very useful to me for learning about working efficiently with modular elements and tiling textures. I learned a great deal from him during this project.
For the concept, I chose the artwork “Boarding” by artist Mike Garn. This piece had everything I was looking for - good composition, a sense of scale, great lighting, while also being perfectly suited for a modular approach.
Since the scene had a lot of damage and destruction, I looked at games that have this kind of environment. Ben Wilson’s work from Wolfenstein: the New Colossus and his GDC talk about their debris/rubble pipeline were excellent references for this.
Other great references were Metro: Exodus and the recent Battlefield games since both of these have large scenes of destruction that look very natural.
For the lighting and mood of the scene, I wanted a strong cinematic feel, for which I looked at a few film references. Evanerichards.com is an excellent source for finding these. For example, Dunkirk had some really beautiful lighting and art direction, and these shots demonstrate that cinematic “magic hour” lighting I wanted to achieve.
Some other great references (Bladerunner 2049 and Train to Busan):
For the structural elements of my scene, it was very helpful to look at photos of train and subway stations. I got a lot of useful reference for the materials from this as well. Pinterest and Flickr are both excellent places to look for photo references like this.
PureRef is a great tool for keeping the references organized and its infinite canvas means I can keep all my refs in one place. It also has the ability to put notes and headings which makes it easy to categorize references.
After I picked the concept and gathered a few key references, the first step was to create the blockout. This step is crucial to establish proper scale and proportions in the scene. It is very important to take some time with this because having a solid, well-planned blockout makes life much easier later on in the project. I made a blockout mesh for almost everything in the scene except very small props and smaller debris.
Since this is a modular environment, it was important that all the pieces snap together easily in the engine. To ensure this, the units and grid were set up correctly in 3ds Max to correspond with Unreal Engine units (1 unit = 1 cm) and all the pieces were built on the grid with a pivot location that allows them to be manipulated easily (usually in the bottom right corner).
Another important thing to consider at this point was the size of the structural pieces because too many small pieces are difficult to manage and really big pieces have other issues such as lightmap resolution.
Here are some of the structural elements from my initial blockout. I ended up breaking some of them into smaller pieces later or combining some into bigger chunks, but overall these few pieces make up most of my scene.
As I was building these modular pieces, I would also assemble them inside 3ds Max to ensure I was going in the right direction. Here’s the final assembly of my blockout that I imported into Unreal later. All the pieces are fitted together here and placed on the grid.
Next, I imported all the modular blockout meshes individually into the Unreal editor and placed them in the level using the blockout assembly from 3ds Max as a guide. At this point, I also established some of the basic lighting to give me an estimate of where the major light sources in the scene will be coming from.
Another thing I found very useful was to bring in some mannequins for scale reference. Dekogon studios has several free models on Cubebrush that I used here.
Planning Textures and Trim Sheets
My first priority was to make the big structural elements like floor, ceiling, pillars, etc. and I started by making tiling textures for these that I could apply to the blockout mesh to visualize it in the editor.
It is also important to figure out what texel density the scene will have so that we know what resolution the textures will be. In my case, I chose to go with 2K texture per 4 meters, which is a density of 512 pixels/m and is commonly used in third person games (Source). It is easy to get tempted to use 4k or 8k textures extensively for personal work, but in actual game production this is not always possible due to limited graphics memory size and disk space restrictions. In my scene, I have used a mixture of 2k, 1k, and 512 textures, with a single 4k texture used for a large destroyed pillar that couldn’t be supported with a smaller texture.
Next, I did some planning on how to break up the different surfaces into tileables, trims, etc. This kept evolving throughout the project, but this was the original planning I did.
In the end, I had about 9 tiling materials and 2 trim sheets. Most of the tileables were different types of concrete surfaces for the walls, pillars, and platform. Here are some of the concrete materials I used. These were made by mixing a few different Megascans materials in Quixel Mixer. I wanted to keep the base materials clean so that the tiling isn’t too obvious, and then break it up later using vertex painting and decals. These are all 2k textures and tiled a number of times based on the chosen texel density.
The big advantage of using Mixer is the seamless integration with Megascans bridge and the ability to use the vast library of scans, smart materials, decals, etc. to texture an asset. These tileables made in Mixer are quite simple, here’s a breakdown of one of the wall materials.
And this is the final result in Unreal with some vertex painting and decals put on top.
For some of the surfaces, I wasn’t able to get the results I wanted by mixing existing materials, so for these, I did a very quick sculpt in ZBrush, baked it to a plane, and then created the textures in Substance Painter. Here’s the material I used for my ceiling, which was created from a simple ZBrush sculpt.
The next thing to figure out was the trim sheets. These can add a lot of visual detail to the scene without requiring any unique textures and are highly reusable. One of the major things to consider when planning a trim sheet is how wide each trim should be, and this is based on where the trim will be used. Just like tileables, trims also have to maintain the same texel density but these can only be tiled in one direction - so figuring out the width beforehand is important.
It can be difficult to figure out exactly what trims you’ll need right at the beginning, so I started with a few that I knew for sure and left space to add more later.
This is one of the 2 trim sheets I used for my scene and the original layout plan for it. I left some free space at the bottom for later, and here I added some specific non-tiling textures for my props. This one trim sheet was incredibly useful, and most of the metallic surfaces, the rafters, benches, stairs, and even some props were made only using this trim sheet and no unique textures.
Modeling Structural Modular Elements
After the initial blockout, I didn’t do a lot of modeling until I had the textures planned out. In fact, many of the smaller props were still graybox models until the final week or two. I tackled the assets in the order of impact they’d have in the scene. This means the big structural elements were the 1st priority, then came the bigger props and pieces that have a major visual impact (e.g.: the shattered glass materials and shader, the large sign boards, etc). However, I left the train for a bit later since it was a complex object, and with something like that it's easy to get carried away and spend too much time on it.
For the structural elements, I started the modeling process once I had some basic textures ready. It was mostly just building on top of the blockout meshes to give them more detail and mapping the UVs correctly to the tiling textures/trims. There were a few elements that were a bit more complex, like this large chunk of the broken floor for example.
Another technique that is very useful while modeling assets using tiling textures is chamfering the edges and using weighted normals. This creates a nice smooth rounded edge that has a similar effect as a baked normal map. This is built into 3ds Max 2021 as the Weighted normals modifier but for older versions, there’s plenty of free scripts that do this.
Here’s an overview of all the modular structures used to build my scene.
Modeling Unique Elements and Props
My scene did not require too many unique elements that need custom baked 0-1 textures. But among the few that did, one of the more complex ones was the destroyed pillar. For this and all other props (including the train), I followed a traditional high poly -> low poly workflow. I used Marmoset Toolbag 3 for baking the normal, AO, and curvature maps and then textured them in Substance Painter. For the train, I used multiple 2k texture sets instead of a 4k or 8k texture.
Here I’ve outlined the main steps I used to create the destroyed pillar, which due to its size is actually the only 4k texture I have in my scene (everything else being 2k or lower).
Here are all the props I used in my scene. A few of these are from Megascans with the textures tweaked in Mixer. Some of them like benches, train signal, barricade, etc. don’t have a unique texture and are built using trims only.
Using Megascans Assets
Megascans 3D assets are an incredibly useful resource and make life much easier for 3D artists. However, they are not always optimized to be used directly in a game and need some steps to make them more game-ready. One of my key learnings from this project was how to integrate multiple Megascans assets into my scene without introducing too many different unique textures. There are many reasons to do this -
- For small clutter meshes, trash, debris, etc. this significantly reduces the number of material draw calls required. Draw calls are an important thing to consider while trying to optimize performance and having multiple draw calls for small assets is a big NO!
- I can easily tweak all the textures at once, eg: throwing on some dirt & grime or giving it a certain appearance.
- Having a lot of different materials and sets of texture maps is difficult to manage. Having a single hybrid texture sheet or atlas, with each asset being mapped to a small part of the UV space is a common practice for things such as vegetation, decals, etc.
- A lot of texture memory can be saved by packing multiple Megascans textures into one since the UV packing can be optimized to minimize empty space.
I used this technique for small meshes such as items in the trash and debris, broken glass, etc. The process is relatively simple -
- I brought in all the different assets I wanted to combine into 3ds Max. These would act as the high poly or Source mesh.
- I duplicated them and re-packed all the UV islands into a single 0-1 space. This can be done quickly by throwing on a UVW modifier on all the selected meshes and then doing an auto-pack on the UVs. These meshes with merged UVs would act as low poly or Destination mesh.
- I used Marmoset Toolbag 3 to transfer all the maps from the source to the destination meshes. Marmoset is capable of baking full PBR textures - albedo, roughness, normal maps, etc. from one mesh to another as long as they are in the same world position. The result is the hybrid texture sheet or atlas shown above.
Here’s what the scene setup looks like in Marmoset for baking such an atlas. I have multiple materials set up with the source Megascans textures applied. I’ve turned on all the different maps for baking including albedo, gloss, and transparency (for the paper decals). I like to bake at 4k and then downsample to 2k later for a smoother result.
Also, here are some of the debris and clutter meshes I used in my scene. These are all Megascans with multiple textures atlassed into one for small meshes. The larger assets have individual textures that were modified in Mixer by changing color/roughness, adding a dust overlay, etc.
Levels of Quality
One thing I have found useful in the past and also for this project was to create the assets and textures in stages or levels of quality. I try to bring everything in the scene (except some smaller props) to a certain stage or quality level before I move on to polish specific pieces.
Stage 1 - blockout
Stage 2 - basic model with placeholder texture
Stage 3 - finished model and texture, but not detailed or polished
Stage 4 - polish
During my project, I went through these stages for all the big elements in my scene in order of importance. So I’d finish the models and basic textures for the structural elements, then do the same for the unique elements, then for props. After this, I’d go back and polish the structural elements first, then the unique elements, props, etc.
I find this very efficient and it keeps me from spending too much time polishing textures in the earlier phases while big parts of the scene are still unfinished. However, it also means that the scene doesn’t really come together until the very end. These screenshots show the progress of my project during the last 3 weeks. This is the time when everything really comes together!
Materials and Shaders
Materials are of course an important part of look development in Unreal Engine. For my project, I ended up with about 5-6 Master materials and one blending material for vertex painting. Most of them were pretty simple, with few adjustments for controlling the albedo tint, normal intensity, roughness, etc.
This is one of my main master materials used on all props and some of the structures that don’t require vertex paint. It's pretty basic, with an option to control the tiling, tint, blend a second normal over the base, add a dust overlay, etc. One extra thing I added was some ray tracing quality switches that make the material cheaper when it is ray traced (e.g. in a ray traced reflection) by flattening the normal, reducing the metallic to 0 and roughness to 1.
Another example is the blend material I used for vertex painting large surfaces. While this looks complex, it is actually pretty simple and based on the 4-material blend template in UE4 documentation. I didn’t really need to blend 4 materials in any scenario, so for the blue channel, I chose to paint in wetness instead. I’m using a height lerp for everything except the wetness, and instead of using a height map I’m using some blend masks which are just B&W grunge or noise textures.
Here’s a screenshot showing how vertex painting can quickly add details to large surfaces, breaking up the repetitiveness of tiling textures.
This third example is a glass shader, which is more expensive to render so I used it sparingly. The setup itself is pretty simple. I made a mask for the cracks in Substance Painter that I’m using to drive the opacity and tint of the cracks. I added an emissive and refraction property driven by a Fresnel, which gives a falloff based on camera position and surface normal. Lastly, I also added the same quality switches here to make the ray-traced version of the material cheaper to render. Please note that in the material details panel, the blend mode has to be set to Translucent surface and lighting mode changed to Surface translucency volume in order for this material to render correctly.
The mesh itself is very simple and doesn’t have any baked normal map. I cut out the glass shape on a plane and applied a Shell modifier to give it thickness. Finally, a soft green light placed nearby makes it more believable, since in real life translucent materials absorb some of the energy from light and inject some of its own color into the transmitted light.
Assembling the Scene
After recreating the modular part of the scene using the blockout mesh as a guide, my main goal was to add interesting detail to the walls, floor, and ceiling since these comprise at least half of the screen space. I started by vertex painting these surfaces to break up the tiling textures.
For adding scatter meshes such as debris, trash, etc. I used the Foliage tool in Unreal. By tweaking the density, min and max scale, distance between meshes, etc. we can quickly scatter a lot of clutter around. The position, rotation, scale, etc. are randomized so it can add a lot of variation quickly without needing to hand place each mesh, and the distribution looks natural.
To add details to the walls and ceiling, I created a modular set of pipes and electrical boxes.
Some of these are Megascans and I’ve used the atlassing technique here again to pack them all on one texture sheet. Hand placing the pipes and wires turned out to be quite a challenge, and after struggling with this a while I ended up using splines and a blueprint to place the meshes along the splines. The boxes however had to be hand placed, since my blueprinting knowledge is not advanced enough to do this using code.
The final touch for adding detail to the scene were decals. I used a combination of dbuffer deferred decals and mesh decals - these are built as part of the mesh but uses a transparent material, and are useful for adding edge details and damage to tiling surfaces.
A huge part of the surface damage, bullet holes, cracks, etc. came from a combination of Megascans and marketplace decals - these use an albedo, opacity, and normal map. The signs, notices, and warnings on the walls are custom-made decals created in Substance Painter. Finally, I have some large grunge decals for the walls/floor/ceiling that are just a B&W alpha mask with the tint controlled from the material properties. Decals have an enormous visual impact on the scene while having little impact on the framerate. They do add to the texture memory, however, so it is better to have a small number of these that are versatile and have a lot of reusability. Here’s my scene with decals turned off/on.
Lighting and Post-Process
Lighting is a great artistic/storytelling tool that can emphasize certain parts of the scene and guide the viewer’s eye. It can also set the tone/mood for the scene quite heavily. I wanted to achieve the warm dull lighting often seen in wartime films, with accents of color to emphasize certain spots. For this, I used a mixture of real-time ray tracing and baked lighting. Just like my assets, I created the lighting in stages - blockout, basic, refined, polished.
For light sources, I have a stationary directional light and skylight along with an emissive skybox set to a bright midday sky HDR. Because the skybox is so bright, the skylight intensity is set very low so it doesn’t wash out the scene. To emphasize the sunlight coming in through certain openings, I also placed some spotlights there. Because most of the scene is just dull concrete surfaces with muted colors, I put vibrant red lights in the tunnel to add some much-needed contrast. I also placed some extra lights near the larger emissive surfaces to enhance the effect.
Since my scene is indoors, it needed a lot of indirect bounced lighting or global illumination (GI). I tried several different approaches for this, such as Screen space GI, Ray traced GI, and lightmass baked GI. In the end, I found lightmass to give the best results and performance. Ray traced GI looks great but it absolutely destroyed my framerate. Screen space GI was faster but didn’t feel completely natural. I’ve shown the results I got with different types of GI in this gif here.
For baking lightmaps, I used Luoshuang’s GPULightmass plugin. This allows the GPU to be used for running Lightmass instead of CPU. Since I don’t have a very fast CPU, switching to GPU based baking increased baking speed a lot. However, using this plugin also disables most of the lightmass settings inside Unreal and also the light build quality (preview, medium, high, production) has no effect now. The only lightmass setting that works is the Num Indirect Lighting bounces, which I set at 50 for the final bake.
Instead, to increase the quality of GPU lightmass bake, it has to be set in a config file as an engine variable. All this is explained in Luoshuang’s thread in UE4 forums which I linked above.
Lightmap resolution and Min Lightmap resolution are still very important for getting a good quality bake, this has to be set for all static meshes according to their size.
One last thing about baked lighting I wanted to mention was the Indirect Lighting Intensity. As can be seen in the gif above, this setting makes a big difference to the amount of bounced lighting. This has to be set individually for each light source. After baking, the amount of indirect lighting can also be tweaked in the Global Illumination part of the Post-process volume.
An Exponential height fog is very useful to give a volumetric effect to the light shafts. It's best to keep it at a very low value (0.01-0.025 range worked best for me). The volumetric scattering intensity can be controlled for each light individually as well. I also used the godray and fog sheet blueprints from the Particle Effects project which is free on the UE4 marketplace.
Post-process is an equally important part for that final look development. Just like the lighting setup, this can drastically alter the overall mood of the scene. Unreal has a default post-process always in effect, which can be overridden by adding a Post-process volume or by tweaking the post-process settings in the Camera and CineCamera actors. Here are some examples of how post-process effects such as bloom, exposure, depth of field, etc. and color grading can hugely affect the final look.
Other post-process effects like chromatic aberration, lens flares, and vignetting are all very useful, but I found that these worked best when kept very subtle since overdoing them makes the scene look very unnatural.
The new Color Grading tools in Unreal are awesome - it allows us to tweak the contrast, saturation, gamma, etc. for shadows, highlights, midtones individually, add a consistent color gain in each of these regions and even has settings to tweak the transitions between highlights->midtones->shadows. Unlike in previous projects where I did this step in Photoshop and imported it as a Post-process LUT (lookup table), this time I did all the color grading in the Post-process volume and camera settings. Joe Garth’s tutorial from the Quixel Rebirth scene was very useful for learning about this color grading system.
Finally, the tonemapper section of the Post-process is another setting that can be used to tweak the final look of the image. The Slope and Toe settings in particular are useful for adjusting the curves of the bright and dark regions of the image. The tonemapper also has a sharpening feature that currently has to be enabled by a console command r.tonemapper.Sharpen. I found this very useful when used at a lower value and can make the image nice and crisp.
Composition and Camera
One of the things I found most helpful in this project was to decide early what my main compositions will be and plan everything around that. For the main shot, I had the concept to work from which definitely helped a lot. For the other secondary shots, the main goal was to have an interesting composition with a distinct foreground, middle ground, and background. A common mistake while building a scene is to put too much detail everywhere, and I feel like it's important to have some empty space as well. It is similar to the concept of negative space in a painting or photograph, this space helps guide the viewer’s eye to the focal points of the composition. Having too much detail spread uniformly can be visually confusing. Sometimes less is more!
Lastly, the Camera and CineCamera in Unreal are amazing tools for creating the final image. This was actually my first time trying out the CineCamera actor and I must say it's very impressive. It works very much like a real-world film camera and all the settings can be a bit intimidating at first, but there are some excellent videos put out by the Unreal Engine team that explain all the camera properties in detail. Here I’ve tried to summarize what I learned using an image from the UE4 documentation.
The main things to note are the aperture, focal length, and focus distance of the camera. The aperture is the diameter of the hole through which light enters the camera after being refracted by the lens, and its size controls how much light is entering the camera. The focal length determines the field of view (FOV) of the camera. Focus distance is how far the object in focus is away from the lens. In the CineCamera actor, a smaller aperture along with a short focus distance creates a stronger depth of field effect, where the objects outside the focus plane appear blurrier. This can be seen in the viewport by Visualize -> Depth of field layers, where the in-focus object appears dark gray, foreground is green and background is blue.
Please note that if the in-focus object is far away from the camera (larger focus distance), the aperture has to be smaller by an equal proportion to get the same depth of field effect. Also, every time the aperture is adjusted this will affect the exposure of the image, and this has to be adjusted accordingly by tweaking the ISO property or Exposure compensation in the post-process settings of the camera. For people wanting to dive deeper into this, Unreal Engine has a lengthy Cinematic depth of field training video.
Here I’ve tried to demonstrate how shifting the focus plane further back affects the depth of field of the image. This is achieved by lowering the aperture and increasing the focal distance while keeping the same focal length. The extra light entering the camera is compensated by reducing the ISO.
Conclusion, Challenges, and Lessons Learned
This project has been a huge learning experience for me, and it really pushed me out of my comfort zone. This was where having an experienced mentor like Clinton Crumpler really helped. His feedback and guidance proved very useful, and when I’d get stuck on some technical issues he’d help me out to the best of his ability. This was the first time in a personal project where I moved away from using a lot of unique assets and shifted heavily into using tileables, trims, and decals - this shift was certainly made easier by doing his course. However in the end, what you get out of it depends on how much effort you’re willing to put in.
I’d say the biggest challenge for this project and in past projects was to have the perseverance to take something from start to finish. For most artists working full time, this is the biggest obstacle, and a lot of times we start something with great enthusiasm but then lose the motivation to finish it. There were periods when it would get very hectic balancing work and during these times even to find 2-3 hours of free time in a day was a challenge. I’d say this is another area where having that extra accountability of showing weekly progress to a mentor helped push myself to be more productive. The entire project took 10 weeks from concept to finish.
One of the biggest lessons I learned from this project was how to get a natural and organic looking environment without relying on unique assets. Whereas unique assets might look cool and more interesting, often in an actual game production modular workflows are far more useful. I think it’s important to know how to do both, and to achieve the same kind of look using both workflows. This was my main learning goal and I definitely feel more confident now with a modular reusable workflow. Some of the other things I learned are how to use Megascans resources effectively without blowing up the texture or disk space budget. I also learned a lot of the technical aspects of Unreal Engine such as the new ray tracing features, cinematic camera, etc.
There is still a lot more to learn, however, and there are many things about this project that I think could’ve been handled better. Optimization is definitely one of the biggest things I’d want to improve, especially when it comes to real-time ray tracing. Currently, the scene runs at around 25-30 fps on an RTX 2070 which is not the best framerate. Also, since I was heavily focused on a few compositions and polishing around those, some other parts of the level lack polish - which ideally I’d have liked to bring everything to a similar level of quality. But just like with any art, it’s never truly finished and there’s always room to improve. One of the things I’m currently working on is to collaborate with a friend of mine who’s an excellent animator to create a short cinematic sequence using Unreal’s sequencer tools. There’s a major trend in the industry towards using Unreal for film, and this is definitely one area I’m excited to explore.
On a closing note, I’d like to thank Clinton Crumpler for his mentorship and support throughout the project. I’m also grateful to my friends Rudy Lamotte, Cat Yang, and Rahim Rahimi for their valuable feedback. And of course huge thanks to 80 Level for giving me the opportunity to talk about my project!
If you liked my work, please check out my Artstation and other socials linked below.
I’m always eager to connect with other people with a passion for Video Games and Art!