Mapping channels in the export template and some other export related questions

Hello,

Could you help me with some more questions related to data export, please.

  1. Small feature request: It would be nice if we could create virtual folders on the Package Management tab for sorting imported resources.

2.How to properly handle transparency export? In our case alpha is a separate texture in textureset. I see Opacity in possible export outputs, but no Opacity among Channels on the Layering Project Editor panel and no among predefined "Add Channel " options (area 1 on screenshot). Probably transparency is stored in BaseColor.alpha?

But I do’t see how to map BaseColor.alpha to red green and blue channels of my alpha output.

I probably also need to invert alpha value in export template. Is it possible?

  1. When I add a new custom channel on the Layering Project Editor it takes name “Custom 0”. Can I rename it?

  2. How to control what material textures will be exported for each material? Often material has no emissive or alpha texture, or creature has alpha texture on head material and don’t have it on body. In this case no sense to export blank textures for certain materials.
    UI section on the screenshot below allows me to set what materials will be exported, but I don’t see how to control what textures to export for each material.


    Another use case for such control - I tweaked normal map and need to export normal map only.

  3. In the other post you recommended to use zuk_{OUTPUT.NAME} as naming template and it works well for that creature with one material. But now I have a scene with 4 materials and this scheme doesn’t work (export overrides textures for different materials). Looks like InstaMAT really needs template naming variable {MATERIALNAME}.

Thank you in advance,

Sergei S.

1 Like

Thanks for creating another post!

  1. That’s a great idea. I have created a feature-request for this. It should not be difficult for us to add this to the package manager.

  2. I would recommend adding grayscale channel to it. Here is an example, it’s the last row:


    Mapping alpha into a color channel is not yet supported, I’ve created a ticket for it as well.

  3. Custom channels cannot be renamed internally yet, it should be available soon. (Edit: This was not correct, it is actually implemented but there is a bug in the UI - it will be available soon again) However, on export, you can easily control the final name of it. On the “Template Window” simply click the “+” next to “Output Templates” and add an output called “Custom0” you can now specify a default color that is used if channel data is not available but referenced in a texture that has at least one active export. Here you can see how that would look if it’s done end-to-end:


    In this example you can see my fill layer only writes data to “Custom0” and the channel is assigned to an output called “MyChannel”

  4. MAT will not export outputs from a template that have no active layer channel! In my template above you can see that I have an emissive output in the template, but my project does not have emissive, so the file is not created. For a multi-material project it’s a bit tricky to solve, we’d need to be able to disable a layer-channel for particular material section. I’ll create a feature-request, I think it would be nice to have this.

  5. Indeed, in that case it’s tricky! As I’ve mentioned, I’m sure that we will have this on the launch version.

On a side note, there’s is a pretty nice workflow in MAT. It’s called “Unified Multi Material” layering:

Here we bringing what people love about the UDIM workflow used in VFX to realtime/game-dev workflows. You can create a single layer-steck that spans all of your materials, so you can paint across them and don’t need to switch back and forth. You can simply work on all of it at once!

1 Like

A bit more infromation on the opacity workflow. You can simply add a “Mask” channel to your layering project:

Then in the output dialog you can map that in any way that you want. On the layer stack I first make everything black:

And then I add a multi-channel brush layer above that, and paint only into that channel:

You can also use masks and other features to blend your paint, here I’m using a tri-planar mask to mask my paint strokes with the MAT logo:

In the output dialog I can now assign my Mask channel:

And it gets created:
image

On a side note, you can also export BaseColor.Alpha as Greyscale opacity channel. I’ve demoed that in the inital post.

3 Likes

I’ll create another post to explain the workflow for how easily you convert your data on export. It’s pretty awesome!

3 Likes

Thank you for answers.

Multi-Material painting is really good feature.

Mask channel is the thing I was looking for. Opacity mask is binary in your exmple, but I suppose the same way we can create semi-transparent zones on materials.

Best Regards,

Sergei S.

1 Like

Indeed, you’re not limited to using B/W, the viewport is binary currently - but I think we can easily add support for this as well!

On a side note, I’ve created a tutorial for output converters here: Workflow: Modifying or Converting Data on Export

3 Likes

Quick follow-up; the internal build now supports Opacity rendering in the viewport and in the layer stack:

Layerstack:

2 Likes

@jagexshcherbakov a quick follow up here, this is actually already possible in the build. But it seems to be a regression that went undetected. You should be able to simply rename any custom channel! This will be fixed in the final build.

RE #5, I’m happy to report that this has already been added:


We now have two new variables available that we can use! The issue with the capitalization of an output channel has also been resolved internally already.

2 Likes