Best Practices and tips for UV Mapping?

I have been doing some uv unwrapping in 3dsmax with my friends models that come from Revit.

I’m a bit of noob in both programs but just looking if you can share some of your wisdom.

If I create UV maps for the different walls/floors with differing sizes, how can I make the materials look a uniform size? So all bricks/tiles/wood planks look the same size on the different meshes? Is there a way without making a material with a different texturecoordinates for each mesh?

Also does anyone have any good recommendations for any of the auto-unwrapping tools or best practices?

You should always maintain the same UV scale on your meshes to avoid problems with different texture size. What I do is I’ve got all objects in one 3ds Max project and I apply “checker” texture to each object so I can test UV unwrapping.

In other hand you can create a Material which supports UV scaling and change it in your Instances. (it’s just a TextureCoordinate node multiplied by a scalar parameter) The problem with that approach is you would need to have several material instances to get all meshes in a proper scale.

Another solution is “World Aligned Texture” It means your texture is in a world (and not object) coordinate system so every object has the same texture size applied to surface. I use it for details like for dirt or dust layers.

I use 3ds Max for that with no 3rd party tools. There is auto-unwrap feature but it doesn’t work OK every time. I heard about “Unwrella”, but I haven’t tested this yet.

Hope that helps.

Thanks for the reply

How do I go about doing this? and does this make my texture the same size in unreal? I’ve tried advanced UV normalizer (Advanced UV Normalizer | ScriptSpot) which is supposed to make the materials the same size, but I can’t seem to get it working right. I’m probably just being stupid, I know once I have done this once I’ll be able to do it a million times over again, it just getting the process down the first time.

I also saw this tool, looks handy.

This script does exactly what you need to do in order to get the same texture size in UE. This “checker” texture is just for previewing purpose and helps you visualize the scale ratio. If a checker pattern is bigger or smaller on one of objects, it simply won’t match the others. If you would compare this to real life: Think of it as you have a sheet of paper and you want to unwrap 2 presents (2 boxes) for example. You use 2 identical papers. Bigger box needs more paper and smaller box needs less paper. 3D unwrapping is a process where you define a scale ratio between objects so a 3D application knows how big a texture should be. I’m not sure if I’m helping here :slight_smile:

Anyway, I’ve never used this script but it seems a perfect solution to normalize UVs. I suggest you try with some simple meshes and then move to more advanced ones.

Steamroller is a good option. It allows to automatically unwrap and flatten mappings on the channel of your choice on all selected objects. It’s a max script.

I prefer to flatten mapping everything and use overkill lightmaps resolution and lightmass settings to compensate and get great results. Just quicker that way. If a mesh is too complex for a single uv map, I’ll break it into multiple parts and STEAMROLL every single pieces. It’s all automatic so it doesn’t matter if you have to unwrap 1 or 25 objects! This is such a time saver!

I had this problem for ages as well and I’ve been losing my mind trying to learn all this stuff. I’m really new at this so I’m not sure if I’m doing it right but it gives me the results I want.

I apply an Unwrap UVW modifier in channel one, then right click - convert to editable poly to bake it in.
I apply another Unwrap UVW modifier, change to channel 2 and click ‘move’ when I get the prompt. Then right click - convert to editable poly to bake it in again.

After I’m done the walls I select them all and apply a MapScaler modifier to CHANNEL 1:

From there you can just adjust the scale, and export to UE4.