Material display scale after fbx import from Blender

Using Blender 2.78 and UE4.15…

I’ve been trying to import models from Blender to UE4. Everything is working correctly except for one thing. The models are of the size and shape, the normals are fine, everything is properly oriented, but when I try to apply a material from the starter pack in UE4 (namely the M_Clay_Brick_New) the size is incredibly exaggerated (literally 10 times the size of materials displayed on meshes from the starter pack or that I converted from brushes).

I have tried a number of different things ranging from scaling the UV in Blender to 10x (it makes the material display correctly in UE4 but gives overlapping UV errors/warnings when I build) to trying every single combination of scale manipulation throughout the export/import process by factors of 10 with no luck.

I also realize that I can just make a material for it that will display correctly but I was hoping to save aesthetics for last.

As explained, I can “make it work” but I cannot help but think there is/are better ways. It just seems like I am still missing something… a setting, a step… Any help appreciated.

If you texture the object in Blender and import the texture into UE4, and sample it in a basic material (just a Texture Sample going into Base Color for example), does the texture align with the mesh like it does in Blender?

If the above test works as expected, you might just need to crank up the texture tiling on the UE4 material. If you look at M_Brick_Clay_New you should see some TexCoord nodes going into the TextureSamples. This node lets you control the density of tiling. You can select a TexCoord node and adjust its UTiling and VTiling to your liking. Note however that this will affect everything that uses the material, so I would recommend a more flexible approach: copy the material into your project, multiply every TexCoord by a scalar value (default 1), and make that scalar value a Parameter so that it can be adjusted on any material instance. That way you won’t alter the Starter Content, and you can have different tiling per-object.

If even a basic texturing test doesn’t work, I would sanity check that the UV’s getting imported to UE4 match up with what you’re seeing in Blender. If you go to the model viewer in UE4 (double click your FBX asset) there’s a button in there (along the top ribbon) to show UVs. That way you can eliminate the possibility that something is going wrong during export/import.

Exporting FBX from Blender can be a bit of a black box. As a general rule, I recommend always exporting your models at a scale of 1.0. Also, if you scale a model in Object mode, make sure to hit Ctrl-A and apply scale. If you scale the model in Edit mode you don’t need to do this. Having an unapplied scale can lead to unexpected results in Blender.

Thank you for your reply. Your time is appreciated.

I have been studying on this for about a week now. I have watched several videos and read about 20 tutorials along with much experimentation.

To save on keystrokes addressing your points individually; I am aware of the things you mentioned. I am new to it but have a firm understanding that just awaits experience. As I said in my OP, I have everything working correctly BUT this one thing. I can use any of several “work around’s” such as building a custom material in UE4 or copying the material I wish to use, converting it to use parameters, and then adjust it as needed through a material instance, etc…

What I wanted to know is “The Right Way”. What do I have to do in Blender so that I can make assets for UE4 that will act like UE4 supplied native meshes when it comes to material application and the scaling of the material display?

I realize that Blender is not affiliated with UE4 and there may, as of yet, not be an actual “Right Way” but in hopes that there is, my OCD would really like to know. It’s just bugging the crap out of me that I can’t get this to line up correctly (figuratively speaking).

I’m a little confused if your question is about how to use Blender, or just how to set up your UV’s in general. To me it doesn’t sound like you are missing a step in Blender, you just want your UV’s to be set up so that Unreal materials will look good on your meshes by default. If that’s the case, I would recommend opening up some of the meshes in Starter Content and seeing how the Epic artists did their UV’s. Usually it’s very dependent on the type of object being modeled and it’s more of a weird art than a science.

Materials are sometimes created to look good on a specific mesh and won’t look good on other meshes by default. Others are created to be more reusable on many different meshes through the use of material instancing. Some of the materials in Starter Content are probably more bespoke than others. AFAIK, the main purpose of Starter Content is to serve as reference material or a starting point.

Overlapping UV’s should be fine on your base UV channel. Unreal warns you about them because overlapping UV’s will cause problems with lightmaps (you will likely see light/shadow glitches after you bake your lighting). I think you just need to make sure in Unreal that you’re using a second lightmap UV channel that does not have overlapping UV’s. You can generate said UV’s in Unreal (it just repacks the UV islands so they don’t overlap) or make them yourself in Blender, either way you just have to make sure the islands in your second channel don’t overlap and the mesh is using the second channel for the lightmap. Alternatively, if you use fully dynamic lighting I don’t think you need to worry about lightmap UVs (which can be a pain).

Yes, I have addressed those things. I make separate UVMaps and Lightmaps for each mesh. I also know how to open an asset and look at the UV, Collision, and whatnot once in UE4. I do have a decent understanding of the process as every time something didn’t work the way I wanted I would go find out why and fix it. This material display is really the only issue left that I am aware of. Everything else is now working perfectly.

You mentioned it maybe being a Blender question. Perhaps you are right. It would seem that I need a way to “apply” the scale to the UVMap in much the same way we must “apply” location, rotation, and scale before we export it to UE4. Scaling the UVMap by 10 resolves the display issue but creates a HUGE UVMap when you look at it in UE4 and generates the overlapping UV warnings. If I could “apply” the scale it might fix it. I even ticked “Restrain Image to Bounds” but it didn’t help.

Oh well. I have let this hold up progress for about a week now. I am much wiser for it after all the research but it is time to move on. If you know of a way to solve the issue directly in Blender or a setting in UE4 that can fix it I would love to hear it but for now I am going to post a couple of questions at the Blender site and continue just using the custom material work around. I will be creating all original material for this project anyway. I was just hoping to not have to juggle that among the other stages of development I am currently engaged in and save it for last.

Thanks again. I appreciate your time and interest.

Hi, I am experiencing exactly the same issue. Did you find a “proper” way of doing this? If not, would you be so kind as to explain your work-arounds, or could you point me in the direction of the tutorials you used to learn?

Thanks

Hi, I am experiencing exactly the same issue. Did you find a “proper” way of doing this? If not, would you be so kind as to explain your work-arounds, or could you point me in the direction of the tutorials you used to learn?

Thanks

Hey, I have the same problem. Did you found an answer?

I understand your problem fully, it’s not about fixing materials for the mesh out of blender in UE4.
The problem is, we want that starter content like the brick-metrical has the same scale on blender imports in UE4 as on any brush default created in UE4.

I think we have to change in blender something to the mesh, before export, but I did not found something. Result should be, that assigned basic material on blender-meshes in UE4 have the same UV scale as on default UE4-brushes? (With default UV scale 1/1) How it is working?

Edit: Beside UV Scale I have a second Problem. Material (starter content brick for example) is 90 degree rotated when I assign it to my blender imported mesh. Of course, I have not rotated the mesh, then it would be no problem. The mesh is shown in viewport with rotation 0, it’s just drag and droped in the game. And when I assign the brick starter content material, the bricks are 90 degree rotated. What I have to change in blender to set ob the mesh UVs, that UE4 default material are aligned, scaled and rotated as default like on simple UE4 brushes/bsp?

Edit2: To make it very clear:
On brushes in UE4 we have these options:

219141-2017-11-04-22-05-45-project-kronos-1-unreal-editor.png

And we are looking for exactly these options, of course perhaps with other names or other functions in blender, but with same outcome. With these options we can set scale, rotation an alingnment, when adding a material to the brush/bsp (and to a static mesh generated in ue4 out of the brush).We are looking for that kind of options in blender, to get and fbx mesh where we can set default scale, alaigment and rotation for the material. Same as the options in the brush in UE4.

I think the correct workflow is to apply UVWs in your program such as blender/3DS Max, apply your material and ensure it is correct there, and then export it to UE4.

I’m in the same dilemma, I wanted the creation of UV should be a little more “mathematical” and not so artistic only, in order to facilitate a standardization or equalization in sizes, provisions and so on.

Anyway, did anyone get any good solutions to this? @Copyright8081972?

Hey all. Have to test this now, but based on the fact we all have the same problem. I’m thinking the issue and difference is the default pixel width of our UV maps.

Blenders default image size is puny when you generate the UV.
I think I noticed a change when importing an fbx that was assigned a 2k sized UV. I might edit this post in a few minutes to confirm. If you still read this then… I men… if you are texturing your meshes you should be using 4k uvs anyway, so its not a horrible suggestion, is it?

I’ve found solution, if you’ll open asset in UE4 and view UV channels, you’re gonna see that UE4 generated second UV channel, so if you’ll remove this channel everything will become perfect )