Review the current material system in scenegraph setting a material is painful

So firstly i wanna say that scenegraph is great I’m getting the hang of it and it truly is a great new system your designing so cudos on that.

In the game I’m making i do a lot of mesh_comp swaps and as many games will have/will include i thought i would add a simple material change on a mesh for like rarity so for example you have a basic tree its default is the default material, Now if i want to change it to gold rarity i have to create an instance of the material (As is expected) but… This is were it goes crazy.

So you have to get the material slot name from some auto generated name normally the material instance assigned to that slot index. So you go to the asset digest to find the material slot name this is the first annoyance secondly if the mesh was created with a different material the slot name becomes confusing for example i had an asset that was a plant with slot named a material that included the word tree.

This when you have 14 tree types and each has 4 versions or mesh can become a nightmare.

I feel this system needs to auto rename material slots at index number like how the SetMaterial() on a bpp works

I can see this current system being a nightmare or at least give us an option to update the material slot name on a bulk edit bases/and or a project setting to enable the use of default material slot names.

Why re invent the wheel the original version worked no matter the material slot name and even had optional types too which what awesome

Please consider something as this the only major annoyance i have come across and it’ll be a pain for many creators.

Thank you for your time reading this

Do you think if accessing the material slots by index is added, it will solve this issue?

This would be an alternative method to accessing the material slot by name.

Yes because the asset would always have the material slot by index number then as a optional you can set the slot index as x material if the slot index doesn’t exists it wont and saves all the messing finding slot names ect.

If you have ever SetMaterial() on a bpp you will understand the pain im explaining above

1 Like