Hi! My name is Viacheslav Bushuev.
I have been working in the CG industry since 2004. In the beginning, I was a level designer and then got into level art and lighting. I spent the past 10 years at the company Mail.ru working on Allods Online, Skyforge, and Armored Warfare. I also released my own game Rabbit Story on Steam and share the making-of with 80.lv (you can find the article here).
At the moment, I devote my time to teaching students and self-education.
Demon Inside Me: Inspiration
I began this scene in class with my students. Before the quarantine, we worked on it at school, and then I continued the project at home recording the process. The idea was to make a small playable location. I also wanted to try out Megascans and make the scene as detailed as possible without compromising the engine performance.
Initially, the level was planned to be bigger. I wanted to add a spiralling corridor but then decided that the apartment itself would be enough. In total, the project took about 30 hours.
As for the references, I used artworks from Artstation. The room with crosses caught my eye immediately, I think the idea is really cool! Basically, that's what I started from - I made a blockout with cubes and set up the lighting in the engine.
The rooms were the only part I modeled myself. The rest of the objects were taken from various packs, which I combined together trying to make them fit each other in the scene.
There are two ways to assemble an indoor scene:
- Use a kit
- Make a single mesh
The first method is suitable when you don't know how to use modeling software. It’s quite simple, you just switch on the grid and join the pieces together. The drawback of this method is that you depend on the size of the models in the kit. For example, if your floor is 2x2 meters, you can make a hall 2 or 4 m wide. The same with walls. If the wall height is 3 meters, you can’t make a room 4 m high. Stair flights are a real pain, in that sense, as well as the doorjambs. If a doorjamb is 20 cm wide, you have to switch the grid scale from the convenient 1:50 to 1:10.
For sure, you can create 2, 1.5, 1, 0.5-meter pieces, for all occasions. That's exactly what our artists did when working on Skyforge. As a result, our kits contained up to 400 details. The problem is, the more details are in the kit, the more your work resembles solving a jigsaw puzzle.
It'll be even harder to use a kit if your location has a slant. Remember that magnificent lopsided half-ruined tower from The Last of Us? Assembling it from pieces would be quite an adventure.
Of course, you can scale the models, place them off the grid and inside each other, and cover joints and Z-fighting with some junk - Unreal Engine deals with it quite well. But I personally think the second method is better.
In that case, you simply model the walls in any available software. To get the right sizes for doorjambs and windows, just export the models from Unreal Engine and cut the holes in your mesh based on them. I used 3ds Max. When the model is ready, assign different material IDs to the walls, floor, and ceiling (plus a multi-material with the necessary number of slots). In the end, I simply unwrapped the model with Box Mapping.
I like the second method for its speed and quite clean geometry in the result, and more importantly, it allows you to work with any size and topology. Adjusting the final size often requires a few iterations, and with this method, editing is quite easy. Just change the model, re-export it, and that’s it. All you need is to recalculate the light.
Using Pre-Made Assets
The assets from stores look good only in screenshots. When you open the pack, you usually find many "surprises". For example, there could be materials without Normal Maps, over-detailed meshes, distorted UVs, and so on. This mess happens when the author of the pack works without a Tech Artist.
To prove the point, I want to show you a few examples that would make the creator of the infamous 1,300-pixel arrow from Daikatana jealous.
Here the author was probably going to use the world’s most precise Vertex Paint.
My favorite one. I have no idea what this material has been through.
In short, when working with models from the Asset Stores, don't forget to refine and adjust them.
I usually add a Multiply Node to Color to adjust Albedo. I also adjust the Roughness, it helps the material to respond to the lighting better and makes the picture more like AAA.
I adjust the Roughness even for those materials that are supposed to be matte - after all, they might be covered with polish or water, for example. If it looks good, why not? After all, we are artists and this is the way we see the world.
Assets from Megascans require additional adjustments, too. Luckily, it can be done through Master Material. Almost every asset needs some changes in Albedo and Roughness. In addition to that, I personally don’t see the point of downloading textures larger than 2K because they have enough details.
And of course, we need to set up the LODs for all assets. A chair with 20k triangles is certainly cool but the world of video games is not ready for this level of detalization yet.
Quixel Bridge, and Megascans in general, are very convenient to use. I mainly used decals, all kinds of cracks, leaks, rubbish, - they are great. And a few 3D assets.
One of the drawbacks of their library is that some of the assets are quite old and as a result irrelevant. They are also not modular, and some scanned assets have huge holes in them which makes it virtually impossible to assemble them properly.
Let me wander off the point a little. Holes in models is another painful issue.
Some people cut out the backside of the cupboards. They think: “Anyway, it stays near the wall, no one will see the back.” Great, you saved two polygons but at the same time, you'll make the level artist will suffer when he/she needs to put this cupboard sidelong or use it as a cover.
I had to use a shelf to cover the hole.
Here is another good example. The author of the scene tried really hard to put the objects inside each other to cover the holes.
What admires me is that the artist hadn’t given up until the end.
All of that started with a desire to save 4 polygons. That probably totals up to no more than 50 "saved" polygons in the whole scene.
It looks as if you were saving on matches while driving a Ferrari like John Carmack.
The first thing I did when I started working with these assets was to cover the holes.
By the way, at first, I thought that it was a trim sheet but it turned it was not.
I had to stick these beams together, luckily they are close to the ceiling and difficult to notice.
Coming back to Megascans, there are a lot of assets with holes in the library. I understand that it is difficult to take photos of a curb from every angle without getting into vandalism. But there are so many advanced tools today, neural networks and so on. I am sure it is possible to make assets without any holes.
But despite these disadvantages, Megascans assets are great and interesting to work with. Deep respect to Epic Games and Quixel for allowing UE4 users to use them for free.
Special thanks to the creator of the cool pack Abandoned School. It contains neat assets, mesh decals, and good materials. I used this pack a lot.
I love setting up the lighting. This part of the production is really interesting.
On the one hand, I wanted to make the light as diverse as possible. On the other hand, I didn’t want it to look like a disco party.
I placed a yellow-green lamp in the hall to create an ill atmosphere. The light intensity was adjusted to shine within a small radius.
In the bathroom, I used a cold light from a flashlight. I checked it at home, that’s exactly how it looks in real life.
In the living room, there is a ceiling lamp. Generally speaking, Point Lights are the worst of all evils in lighting. Firstly, both static and dynamic Point Lights are usually quite expensive in terms of performance. Secondly, from the artistic point of view, a Point Light placed in the middle of the room is just boring.
For variety, I added a small amount of streetlight coming into the room. The ceiling lamp itself is set up in such a way as to not reach the corners of the room. That produced some gradients which are very important in lighting.
The ceiling lamp has two Point Lights. The first one is static, with a big Source Radius to get dispersed shadows. The second one is a movable Point Light for Volumetric Fog.
The room with the monster has aggressive red lighting with high Volumetric Fog intensity in the lamp. To enhance the atmosphere, I made a second post-process pass with Grain and Chromatic Aberrations.
Even if the sun isn’t shining through the windows directly, the light still gets inside the room. I tried a lot of ways to make the dispersed light come from the windows: invisible planes with emissive material, invisible white planes reflecting the light from the Spotlight, and others.
Epic Games recommends placing a Lightmass Portal inside the window and using the Static or Stationary Skylight. The problem is that such light is weak and barely noticeable. Increasing the intensity will result in terrible overlighting.
In this case, the best solution is to use a Rectangle Light. You can make it static to create dispersed shadows or use a stationary one and switch off the shadows for better reflections.
The Skylight is movable, for a slight Ambient effect.
To make the floor gleam, I used an additional Rectangle Light.
Since my Skylight is movable and barely visible, it isn't enough for the street lighting. Here, I added a few Rectangle Lights to imitate the skylight.
Simple Indirect Lighting from the lamps is often not enough. That is why for Ambient, I use static Point Lights with a big Source Radius. They do not produce sharp shadows and softly enlighten dark places in the scene.
The mirror has a Planar Reflection. It creates a realistic reflection and doesn't require a card with ray-tracing support.
Advice to the Asset Pack Creators
To be honest, I want to give a few pieces of advice specifically to those who are going to create assets for stores but they will also work for everyone in general.
1. Please, name all items properly.
2. Place the pivot point at the base of each object. This way, the object will not sink into the ground when you drag it into the scene from the content browser.
3. Don’t make a ton of different versions of one asset. Trust me, three will be enough. That’s a rule of thumb. For example, three big trees, three medium-sized trees, and three bushes are enough for a nature scene. Do less but with higher quality.
4. Do not reinvent the wheel. Let me explain it. This bicycle model was cut into 19 pieces, exported into the engine, and assembled again via blueprint.
5. Don't make overly complicated materials, especially if the final result looks like a draft texture made from a photo.
6. When working on an asset pack, ask yourself who you make it for. It will be also useful to check how many similar packs are already in the store and what their quality is. I'm only guessing, but perhaps it's not worth the effort and time to make it after all.
7. Set up proper collision. In most cases, it will take you a minute. Don’t add collision to the bushes.
8. Make baking tests for all objects.
9. Don’t save on polygons by cutting holes in the models. Make the life of your Level Artist easier.
10. Prepare all the necessary texture maps. After all, you make assets for Unreal Engine 4, not Half-Life 1.
11. Don’t make your Albedo too dirty or contrasting. Objects with bad Albedo will look bad in any lighting. Try to make it closer to mid-gray. In Unreal Engine, it corresponds to the Base Color value 0.18.
12. Make Master and Instance Materials. Firstly, it is good for performance optimization. Secondly, adjusting the materials via Instance Material is easier, you don’t need to wait until the shader compilation is ready each time you make a change.