Join Adam Crespi for an in-depth discussion in this video Assembling textures and crafting composite maps, part of Unreal Engine: Architectural Visualization.
- Unreal is a game engine known for its look development. There are terrific tools available for developing materials with all kinds of custom properties, and also for lighting and really fine-tuning the way things look, which is fantastic for design visualization. Once we've got all of our different meshes in and positioned in the scene, we can think about the materials that are on each one. What we're seeing right now in this viewport, is that most everything has a material assigned that came in from Maya or 3dsMax. We've got wood on the doors, a white floor, which may need some work, but definitely some kind of white wall with a baseboard in here, and we can see we've even got the signage.
The thing is, depending on how materials are configured in whatever application you make them, determines how they come in. For example, things that are a standard blend shader in Maya come in very nicely with all their textures. Others that are less recognized, like a shade or effects material, for example, from 3dsMax or Maya, will come in as a default white material, a lambert in this case, like we see on the floor. What we can do, is we can pick an object such as this floor, and scroll down and take a look at its different properties.
In this case, we can see that material, slate black, actually is, well, all white. And double clicking on it shows us what's going on with that material. In this case, what we're seeing is that there's a basic material with the name, and then a constant, or vector 3 here, set to 50% gray. It's just a gray lambert at the moment, because this particular material in Maya, was configured as a shade or effects material to better show how it looked. I use that as a tool, for example, in modeling to make sure that as I'm making the surfaces, things really look right.
But, I need a little work here in Unreal to make it look correct. I need to get my materials configured, but I'll take a quick look at what the textures are in PhotoShop that were included with the project so we can see the different possibilities in our materials. Here in PhotoShop, I've got a number of textures open, and these are from the MO2 project in the Chapter 2 Exercise files folder. These are the same ones that should have imported automatically when we brought in all the objects, but they're included again, just to make sure, or if you miss any.
For example, this is our slate: it's a black slate, 12 x 12, with a deep gray grout in a running bond pattern, half offset. In this one, and I've kept my naming here fairly common to all the materials, I've got SlateBlack12x12CS.trga. Slate black, 12 x 12 squares, denoting the size for mapping, color and specular. Where I've used the RGB Channels for the color of the slate and the Alpha Channel to describe the specularity, so I get a variable shine across if needed.
This also has a normal matte. In this case, I've got a Normal with the RGB Channels being the actual Normal, and in the Alpha, I've tucked in the roughness, making use of that fourth channel. So, I can describe in here a variable roughness across that slate to further enhance the quality of that material. There's also room for a composite map, and these may be referred to as different things, composite or multi-purpose, or something similar. When we look at them straight on, it's rather garish, this screaming blue and the slate.
What's actually going on here, is I've used gray scale maps in each of the channels to determine different things. In this case, mhos: metal-ness, height, occlusion, specular, or mask or something similar. Here's our metal-ness, nice and low. At the moment, there's nothing we're going to use here in this composite, but it's there for future use. Here's our height, in case we need a cavity or something similar. In the Blue Channel, for example, is ambient occlusion.
I generated these off the gray scale height in XNormal, but you can use any different program you'd like. Lastly, I've got a repeat of the specular, maybe I can put something different in, depending on the material. Again, we may not use all the slots in our composite map here in the slate, depending on what we need. In games, you may find more esoteric reasons, such as masking and so forth, to use these channels. We can definitely make use of a lot of this. At the very least we'll see things like this with the brick. Here's a brick with the RGB Channels for the color, for the brick in the common, or American bond, and again, specular in the Alpha.
Then, I've got the Normal map, and in the Alpha, the normal ambient occlusion, as the brick is almost always uniformly rough. Now that I've got these in hand, I can go into Unreal, and see where we can start to connect them. Here in Unreal, we can see in our slate here, we need to bring in other textures, and there's a couple of ways to do this. I'll take this Slate_black tab and tear it off. Then, I'll go in my Content browser under Textures, and I can see my different textures in here, and you can jockey windows around as you need.
What I'll do, is look for that slate. And we can see it right here: there's my Slate Black, and I'll drag it right into that material editor, and my slate normal and roughness, and again, I'll pull that down and in. Then, I can bring this tab back up to the top and dock it, and start to arrange this material. What you'll find is that some things come in plugged in automatically, and some things need to be plugged in. I'll take out this 50% gray by selecting that node and hitting delete, and then, I'll take the Texture Sample from this Slate Black and put it into the Base Color.
The Alpha, then, will go into the Specular, and from the Normal, we'll see Normal into the Normal, and in this case, Alpha into Ambient Occlusion. We have a reason to use this on this slate, as it won't really get a lot of occlusion, so we need to add to it. We could also do something like flipping the spec for the roughness, for example, or even trying the ambient occlusion inverted to become the roughness. This looks pretty good, though, and we can see dragging around here, I've got a nice shine across that slate, and we can see that Normal really kicking in.
Now that we've got our basic material in, we can think if there's any other properties we need to bode to put into a material. If there's things like, let's say, additional roughness maps or even an emissive color to make the light look like it's on. Sometimes, we can use a constant value for things. A constant, pressing 1 and clicking anywhere in the work area, and just piping this into whatever value we need. For now, though, I'll leave it alone. I'll go through my materials and hook up at least the basic textures so I start to see things in the right place.
When I'm done, I'll hit Apply and Save, saving out that U Asset. Now, I'll close this tab and we can see here in the scene, I've got my slate. It's definitely, obviously colored by that sky that's around here, as I haven't done anything yet with that blue sky. But if we go outside the scene, we can see our slate more or less in daylight, looking like, well, black slate on the ramp, and stairs at the entry.
I'll run through the rest of the materials again, and hook up all the basic properties, before I start to customize even more, making sure that everything is coming in right, and looking at least reasonable before we deal with the lighting.
- Customizing a player controller
- Importing meshes
- Cloning and placing objects
- Creating sheens, metals, and glass materials
- Placing and adjusting lights
- Adding interactivity with colliders, triggers, and events
- Generating and sculpting terrain
- Placing trees
- Adding details
- Publishing the design