Normal Maps to Unreal Engine: Unreal Engine Import and Final Setup

Photo of John Burdock

Instructor John Burdock

Share this video
  • Duration: 11:00
  • Views: 3886
  • Made with Release: 18
  • Works with Release: 16 and greater

Setting up textures and your object in Unreal engine.

In this video, we bring everything together, and put are textures on our finished object in Unreal Engine, to finish up this course.



- In this video, we're going to take everything we learned throughout this entire course and bring it all together. That means we're going to be importing in our FBX and texture maps into Unreal engine to create our finished object. Before we do that, though, I want to quickly talk about my own Unreal Engine scene I have right here. First off, I'm using a default blank scene with no starter content and I'm also using Unreal Engine version 4.14.3. So I'm using the most up to date latest version of Unreal Engine that I can get my hands on to really push this technique to its limits. Now that we understand all that, though, let's begin by importing in our FBX and texture maps by simply going over here and selecting Import. After we've navigated to Location where files are stored we can drag our mouse over all our files and do a batch import which is really handy. Before I do that, though, I want to point out I am importing in my object space normal map. The reason that I'm doing this is I simply want to use this as demonstration purposes only to show how it looks compared to a tangent space normal map. So in my typical workflow, I will not usually be bringing in an object space normal map at all and will be only bring in the tangent. Now that we understand that, though, all we have to do is select Open and it'll start the import process. The first thing we're going to be greeted with is the FBX import options dialog. Now, by default, we really don't need to change anything in here as far as normal maps are concerned. For your model though, you may have to adjust some things in here depending on what needs your model may have. But as far as normal maps are concerned, again, you may not have to really adjust to anything here at all except for these three settings here. Now you may not be able to see all of them at first, you have to select Show Advanced right here. Once we've done that, it will reveal the Invert Normal Maps button here and this is the guy I really want to talk about. If we have him checked on and we have texture set to import materials and import textures, the textures here means a normal map, or color map, or any other texture map that may be inside our material that we're also importing. This will invert that so the Y or green value will be flipped and as mentioned in previous videos, this is what we need to do inside Unreal engine to make our normal map fully compatible. Now, we do not have any textures inside our object because we did not export them out with that. We made sure to keep export textures and materials unchecked because of our xNormals workflow. So that all said, we don't need to really worry about this. I'm just bringing this up to your attention just in case you're using a technique or workflow that may be bringing textures in inside of your FBX object. So now that we understand all that, we can leave this unchecked at the default, leave everything as it is and select Import. Now we are going to have a whole bunch of error messages pop up and it can look a little scary, but don't worry. This is all just a misunderstanding with Unreal Engine thinking there's a problem when there really is not. To help explain this let's start at the top and work our way down. First up, no smoothing group information was found in this FBX scene. This is just Unreal Engine not fully understanding that we did bake our normals into our object when we exported out because we made sure to keep Keep Normals. We made sure to keep that checkbox on. This just means Unreal Engine doesn't understand that we did that so it thinks our object won't be smoothing correctly. That is absolutely not the case and our object will look just fine. So we don't have to worry about this whatsoever. Next up is face material index inconsistency. This really isn't an error at all. This is just Unreal Engine letting us know that we do not have a material applied to our object. It's forcing its index level to zero. We're not going to go into full detail about this. Just realize that all of this means there is no issues with our object whatsoever and it's just giving us a reading of what's happening. So we don't need to be concerned about this and we can simply click X. Now that we have done all that, all we have to do is left-click on our object and drag it into the scene right here. Then after we release it will hop into the scene and we can grab this blue arrow here and pull it up just we can set it on the floor quite nicely. Let's navigate our camera to different position so we can get a little better view of this and now we're ready to create our first material. Let's just drag him up a little bit higher, right about there. So to create our first material for our object to apply our texture maps to, we need to just right-click down here and then select material. Let's give this material a name. Let's just call this test_material. Now we are using underscores and so spaces because our Unreal engine does not like spaces and we now have our new test material. Now you may be confused when you try and drag your material onto your object it will not go. That's because when we imported our object it had no materials applied to it so Unreal Engine did not create a material slot by default for that. That's quite okay though. All we have to do is double-click on our test object and then navigate right up here where we can click this plus button right here under Material Slots and we'll create our own material slot. Now that we have that, all we have to do is click Save, then click the X right here to close this, and if we drag our material onto our object, it will now be applied. And if we select our object and go down here under materials, we see we now have an element zero material slot and our test material has been applied to it. So everything is ready to go for us now. All we have to do is start adding our image textures here into our test material. To do this, all we have to do is double-click on test material and this will open up the material node editor inside of Unreal Engine. Now if you've never opened this before, Unreal Engine uses a node based system to edit their textures. All this really means is we have a series of boxes that we connect cables to to build our textures and materials inside of Unreal Engine. This is an extremely simple example of kind of how it works but don't worry. Once we start building this you really start to understand it. What I'm going do is I'm going to right-click and just move my camera over a little bit to give us some space and move the whole thing over here. So now we have some room to work. What we're going to do is we're going to drag our texture maps here into this material. We're simply going to left- click, drag them in, and drop them there. It's literally that simple. Let's get our color map and let's get our object space map right here. Now that we've done that, let's just kind of organize these and what we need to do is we need to take our RGB values and plug them into the corresponding area in the texture material where they need to go. For example, we have red, green, blue, and alpha on every one of these maps and what we want to do is let's say our color map let's grab all these values by grabbing this top one up here. This is every single value in one line and plug this into our base color and then if we click Save, it will apply that and we can now see that our object has the color on it. You'll notice though it's very flat and smooth and this is because we need to add a normal map. As demonstration purposes, I'm going to apply the object space normal map and save even though it's not going to give very good results at all and in fact, look how bad this looks. Not like how it should be in Cinema 4D. So now let's take a look at our tangent space normal map and see how much this fixes it up. Let's grab this top line for all of them and plug this into normals right here and click save and let's take a look at what we get by default. Already this looks much, much better. We still have some visible seams. Now again, with tangent space normal maps, you are going to get seams. There is no way to 100% remove them. That said, we can fix this to make them much less visible than they already are. To do that, we need to do the last final step of the process and that is to flip the Y or green channel on our tangent space normal map. To do that is extremely easy. All we have to do is double-click on our tangent space normal map and then navigate over here. I'm going to pull this over for you guys a little bit. Navigate down to texture, and then select Show Advanced, and then simply click Flip Green Channel. Check this box on and it will give us a very nice visual example letting us know that our green has been flipped and you can see in this thumbnail down here is also updated. But let's take a look at our object. Look how much better this is. I'm going to pull this over. Look how these seams have been removed so much more. They're almost invisible to the eye at this distance. Now they still are there, they're just much harder to see. So that's very important to realize. I'm going to uncheck Flip Green Channel so we can see what it was before, see how hard these lines are, how noticeable these seams are, and let's flip it back to what it was. Let's do a green flip and look how much nicer this is. We still can find them though, if we look hard enough. They are here somewhere. I promise you they are there and this is a good problem to have. So to help see them, let's flip this off. There we go. Tet's find where they're at and let's check this back on. There we go. Now we can get idea where it's at. So this is a good problem to have. I had a little bit trouble finding the seams, but here they are on this object. I don't know if this is showing up in the recording, but we still do have seams. So now you're probably wondering, but what if I want to have an object where a player is going to be looking this close and I want no seams to be visible at this distance. To do that, you're going to have to have a higher resolution texture map. Right now, we're using a 2K.texture map. We're going to need to go to something like a 4K or 8K if a player is going to be this close to this object in order to have no seams visible. So if they're going to say "see no seams here," but then you get in about twice as close and they do see seams, you're going to have to double the size of that normal map and texture map in order to get rid of that. So that is a work around. This all said, at this distance on a 2K texture map, these seams are the least of your worries because your texture now has become extremely grainy and very low detailed. But after doing all this work, we have now come to the conclusion of this course and you now know how to bake normal maps out of Cinema 4D and make them fully compatible with Unreal Engine using this technique. Thank you so much for attending this course and it was an honor to be your teacher. Now to finish everything up, all we're going to do is just do a quick overview of everything that we just learned here. So to finish up, what did we just learn? We just learned how to import FBX file into a UE4, how to add a material slot to an object, how to import normal maps and texture maps into Unreal Engine, how to use texture maps inside the Unreal Engine texture interface, and finally, how to flip the Y or green channel on a normal map to make it fully compatible with Unreal Engine.
Resume Auto-Scroll?