Hi there, I am new to unreal engine. I was doing a course by Hossein Mashayekhi for mastering Unreal Engine for ArchViz. I am facing an error when I export file using datasmith from 3DS(I dont use 3DS, but we got a reference model in 3DS only) and import in unreal I dont see any textures, its just the mapping in black and grey thats visible to me. I am not sure why its happening because I can see the textures in 3ds.
Without a screenshot it is hard to see exactly what is happening…but I am assuming that you are using Datasmith to export.
Many of the shader nodes in 3ds Max do not have an equivalent in Unreal Engine so Datasmith throws them out.
Also, the way that Datasmith generates materials is not very efficient or robust enough for easy end-user changes to simple parameters like “color”.
I recommend creating a generic material library in 3ds max that are named and colorized based on their type.
Such as:
Mat_Steel
Mat_Aluminum
Mat_Plastic_Rough
Mat_Plastic_Smooth
Mat_Wood
Then assign those materials to your objects / subobjects and export using Datasmith.
Now, back in Unreal Engine, I would create a material library that has all the material types I would need and functionality built in to modify them.
Such as a plastic material instance that has the parameter to change the color of the plastic easily.
When importing into Unreal Engine, you can create a “recipe” using Dataprep that will find the name of a Material and replace it with an Unreal Engine material.
Mat_Steel → MI_Steel_Clean
Mat_Aluminum → MI_Aluminum_Dirty
Mat_Plastic_Rough → MI_Plastic_Rough_Grey
Mat_Plastic_Smooth → MI_Plastic_Smooth_Tan
Mat_Wood → MI_Wood_Oak
This recipe can then be used for every project imported.
That way, if your object needs to be plastic, it will always look like the same type of plastic because it is using the same material each project, but you will have the ability to change the color of it as needed.
Yes, there is some upfront cost in terms of time to create this type of system…but it more than pays for itself down the road and it can allow you to win a bid for a contract by coming in at 1/2 the time as your competitors because you have more efficient systems already setup to save time.
One last note on that…
Make sure you are always unwrapping your objects in real-world size. So that your UVs do not change their texel density.
Most of the materials you can get on Megascans are 1 meter x 1 meter or 2 meter x 2 meter. This refers to the texel density. Meaning how many pixels per meter.
The biggest mistake I see people make is changing the materials to match the different sized UVs of objects. Or they try to “cheat” it with a global scale material. That no good…especially if you need to hand work off to another project partner outside of Unreal Engine.
It should be the other way around…
You should have consistent UVs as a standard for all objects.
That way your wood grain material will always look right no matter what object it is placed onto.
If you want to learn more about how to do that let me know…it’s a pretty in-depth topic that has alot of “gotchas”…especially in 3Ds Max where the transforms of scale can affect how 3Ds unwraps using it’s auto-unwrappers.