4.14 - Material ID's don't match up anymore?

Hey,

Can anyone confirm this? I have a model, and when I import it into 4.13 the ID’s are correct. In 4.14 the materials don’t match. For instance Material ID 2 is on slot 3 and vise versa. This seems to be a 4.14 bug?

Thanks,
-Wesley

I added an image to illustrate the issue. I will also post a bug report on this asap, the site seems to be down to do this at the moment.

I imported the exact same model in both 4.13.2 and 4.14 and took screenshots to illustrate the issues. As you can see the material order ID’s aren’t matching up anymore. The “highlight” and “isolate” options are also missing in 4.14

Is there a reason this is a problem? I’ve yet to see a need to have a fixed material ID in UE4 be in slot X.

But

Material ID’s are assigned in 3ds Max based on the order they are attached as a single model so if you export as parts and consolidate as a single model in UE4 then UE4 decides and left up to deciding in what order material ID’s are applied.

If you wish to keep the same ID’s and update the model then you should export by selection and use the re-import feature instead. If you have an order that you want to maintain you could attach the model in Max and change the ID order and assigned material no mater how many times you import a new instance.

P.S. look in the LOD section for isolation.

Of course there’s a reason, you don’t want material ID’s changing between versions. This has always worked fine for over a decade in any program or version. If you add a material ID to an asset you’d expect that same ID to work in the same slot of the other software packages. Otherwise you’d be forced to create multiple versions of the same asset over and over again. I’m pretty sure this is a bug.

PS. I know you can see the isolate/highlight in the LOD section, it’s a shame it’s no longer at the top of the screen anymore for easy access.

It’s a huge problem. If my code / blueprint operates on a material instance in slot 0 to change parameters, it’s now trying to change parameters on the wrong material.

Well the reason it’s in the LOD section is UE4.14 now has an auto LOD feature for static mesh so it’s a bit redundant. I figure UE4 would keep the ID’s during the auto process but you can also import a LOD where the object only needs a single ID and material.

It’s not a bug as far as I know as I’ve have and had the same “issue” of roaming material ID’s as far back as 4.0. As exported each object will be set to a surface ID of 1 so when imported and told to combine the parts UE4 will auto generate the ID’s for you so each individual instance imported version could have different ID orders. If you must have your ID’s locked then you need to do it in 3ds Max. I’ve not tried it but you could change the surface ID of all parts of the separate model to a model ID that you want in order of preference.

OK that makes sense but once again the ID’s will need to be fixed at the source level. Import and combine for this reason is a bad thing so the object should be attached in 3ds Max first and the ID’s locked to the desired regions.

I’m not combining anything in UE4. Not sure what you keep getting at. Either way, it’s a big issue and I’m sure it will get fixed soon enough. I posted it here so other people could check and verify it before posting it as a bug. Which I will do as soon as the website will allow me, seems to be down at the moment.

OK

Why not just migrate the model from 4.13 to 4.14?

It’s just the nature of material ID’s that any given application does not know the order of preference when imported so if it is a bug I would be interested in knowing as well.

Any application does know the order when imported, that’s the whole point. For some reason UE4 4.14 now mixes them up. If you make a polygon in any 3D software use the ID 1 it should also be the first in UE4 or Unity, or any other gaming engine for that matter. If you make a poly on that same object ID2 it should be second, and third etc etc… not randomly change them when importing in the gaming engine.

Was finally able to post the bug report:

This is the reason they added the slot names on the materials in 4.14

Name of the slot
The name of the slot is used to match up the material on reimport. When a mesh is reimported it looks for this name in the FBX file to determine which sections should match up to existing materials. Previously this relied on index ordering which was easy to become out of order.
Meshes that were imported before this change will have their material slot set to none. Meshes imported after this change will have their material slot set to the imported material name by default.

Thx for clearing that up! I’m not sure I see the improvement in this though. Before you were able to set quick ID’s, now you need to start typing out their names?

Also, in the LOD0 section, the material ID in 3DSmax is on my prop set to 2 and in UE4 it’s on ID 3… It just doesn’t make sense? If this is the new way of working, you’ll basically never know where you’re ID’s will be located at and you’ll need to guess it, and if you want a clean file setup where you can have a model in 3DSmax set up with it’s materials, you’ll need another mesh with different Id’s to represent what is in UE4? I’m lost for words atm with these changes, sounds very confusing and not efficient at all?

Well as I mentioned it’s not uncommon for any 3ds app to reorder the material index as in

and is not an issue relating to just Unreal 4.

I’m not trying to be a pain but curious as to the need to maintain material ID’s as it is a requirement that is sensitive to becoming out of order during the iteration process. Dealing with asset management though using a set naming convention is a lot more logical than hoping that app B will respect the indexing of app A just because they do things different.

The more logical solution would be to put in a feature request to be able to reorder the ID’s manually.

This is a huge problem for me, since it puts the wrong segments with the wrong element, and it resets in reimport, so I have to reset this every time. I have a large kit of pieces with for example wood in element 0, brick in element 1 and mud in element 2, now it randomly swizzles the segments and IDs on different pieces.