Upload Custom Materials in the New Material Service Beta

To give you a peek behind the curtain as to why we’re being vague, we’ve found every aspect of this project has more nuance than you could imagine. For example, defining the internal structures we use to reference material variants seemed obvious at first but as we worked through key use cases (per-part materials, materials in packages, materials in models), we found that each option for something that we thought would be simple had pros and cons: there’s no one solution that worked for every need. Figuring out the right approach adds unexpected time to our schedule. And we picked one way to do these references initially, but we think we need to switch approaches to support per-part variants. Because this beta is Studio-only, we can make that change with minimal impact to you. That’s just a hint of the nuance :slight_smile:

But please do know we are working hard, and we know you’re excited to use this in production experiences!

13 Likes

I know this is a bit off-topic but while we have you here do you happen to know any information on what happened with this update and why it was never finished? I know you weren’t apart of the team who worked on that update but I’m curious why it was abandoned at its current stage?

5 Likes

A new Vector3 property has recently been added to workspace (this week’s update, in fact) called GlobalWind. So, hopes up that it’s being worked on!

6 Likes

image
Finally!!!

6 Likes

Also an another feature
image

5 Likes

Correct me if I am wrong but the current implementation of Material Service does not support normal-based texture mapping?


Most smooth terrain maps rely on using the alternative normal based texture that Roblox materials use. As the implementation stands right now its still useless to us.

13 Likes

This, we can’t even do things like this with the current amount of materials given to us.

3 Likes

Thank you for the detailed feedback, we really appreciate it.

As noted, we are currently working on applying Terrain MaterialColor to UGC terrain materials. As you correctly pointed out, one of the complications is the different colorization scheme between Part (tint) and Terrain (hue shift).

For UGC terrain materials, we are thinking to apply the material color as tint so this will be consistent with UGC part materials. We can’t really do hue-shift because it assumes the texture has only one color tone and we can’t really guarantee this in UGC world.

Yes, you are right there’s “tint-mask” that’s present in the base materials. We understand that this is important feature for developer and rest assured this is on our radar (including SurfaceAppearance tinting).

Sometimes we do not talk about what we are planning to do not because we don’t want to collaborate as closely as possible with the community, but because there are fundamental questions about our architecture that we have not figured out, and we don’t want to show plans and features that we don’t have yet a reasonable commitment to. We also recognize that the process on UGC materials has been slow, but we cannot promise it will get better in the near future, because materials are a very core, foundational concept in Roblox, so we have to ensure we get them right - after our first full release, adding more features for materials will get much easier.

16 Likes

MaterialVariant supports normal map and it should be applied to terrain. I’ll send you DM to get more detailed information.

5 Likes

I believe what they are referring to here is the ability to specify another material for the sides of terrain cliffs. A lot of terrain materials do this to aide in realism. Without this, a whole material slot is required and developers must manually paint the sides of mountains and cliffs. For games already using every material available, it is not possible for them to override another material for the sides of cliffs because they are already using that material elsewhere in their game.

This is probably solved down the road with adding new materials, but I don’t remember if this was something Roblox wanted to do.

7 Likes

Thanks for the response! I really appreciate it. It’s great to hear Roblox is interested in providing access to the tint-mask feature.

I understand that it’s difficult to publicly bring up long-term plans and it is very unfortunate. However, I think the correct way to do this without making promises is to bring it up through surveys to judge community sentiment around ideas or to gather detailed developer use-cases/needs (e.g. like these). I believe Roblox has an internal process for this, but I don’t think the sentiment it gathers is broad enough.

Hoping that it gets easier to iterate on materials after release. I understand that this is a ludicrously complicated concept to tinker with and I really appreciate all that Roblox is doing to get it right.


It does seem like that solution (tinting UGC terrain materials) is cleaner, but then it sounds like it will still be impossible for developers to match parts to (recolored) terrain with the default materials. They would be required to override the materials.

With respect to this, UGC materials are developer-authored.

If they don’t want the behavior that comes with a hue shift, they can make their albedo greyscale or single-toned to avoid it, or not use the proposed feature at all. I think offering the ability for developers to hue shift the albedo of the material (i.e. this would be API on the Part instance) in addition to controlling part color would be the nicest way to bridge this behavior inconsistency.

E.g. to match a part to recolored terrain, the developer would set the part color to pure white, and then hue shift the part’s albedo to match the terrain material hue.

Then when Roblox provides access to the tint-mask feature, this automatically affords developers a way to have materials that take advantage of both colors for increased material reusability (important for memory optimization).

In practice I’m not sure how clean this is as far as API design + usability goes, but this functionality would be very powerful.

9 Likes

Ah I see, now I understand better, thanks @PeZsmistic for clarifying. Noted for the request to customize side/bottom layers of terrain materials.

This is probably solved down the road with adding new materials, but I don’t remember if this was something Roblox wanted to do.

Yes we will be adding new materials as part of Material Library Expansion.

13 Likes

How do we get this global wind feature you’re speaking of, it sounds very cool and very interesting or is this not a feature that is currently beta but works with studio mods?

3 Likes

I’m glad that Roblox has listened to the community and managed to add proper tiling for custom materials.

I hope this isn’t too much to ask, but PLEASE let us add different textures on certain sides of a part. If they don’t plan to add this, I hope it’ll be added in with per-part material customization as previously stated in the post. It would give us so much more freedom with materials.

image

12 Likes

there’s a reason why custom materials are not published in-game yet. Roblox is finding a way to make it more performance-friendly.

2 Likes

Yes i hope they add something like this, would help me to avoid the problem of the limit of the textures,

5 Likes

I’m not sure if material is the answer here since a material is generally meant to apply to an entire surface, not to individual faces.

This use case might be better solved with MeshParts, and then requesting a feature where you can tile the texture over the surface of each face. The texture face would show more studs as the size of the MeshPart grows. That way you can also have that kind of flexibility for objects that don’t have strictly 6 faces.

5 Likes

why can’t we replace surface appearances by fusing the properties of surface appearances with those of texture and mesh, here’s an example for clarification:

For meshes:

for textures:

If they added this in roblox tere will be no need for surface apperances and we will have the ability to change the tiling, transperency and on wich side of a part it shows up.

yes i hope they add this feature

8 Likes

Yes, you are right about not being able to exactly match parts to terrain for the base materials. There’s always the UGC route if this doesn’t work.

Internally, we have some ideas surrounding colorization scheme but we are currently prioritizing on completing what has been outlined here (ugc part/terrain, material upgrade, expansion, etc). One step at a time :slight_smile:

8 Likes

I still can’t get over how beautiful this feature is!
Thank you to everyone who worked on this! :purple_heart:


18 Likes