So I've run into an odd issue and I wondered if there's a solution or if I should just work around it.
I started a project with an .obj (this created a texture set called DefaultMaterial). I did some work on this, nothing significant, and decided I wanted to switch over to an FBX version of my mesh to have various parts separated into different texture sets. I figured this would work fine since updating the .obj to a newer obj worked fine, but when I try I get this message:
[Paint editor] The document contains data for a material that is not present in the loaded scene. This material name is [DefaultMaterial]. You should update your scene materials names to be able to see and edit those data.
I named one of my materials in the new fbx DefaultMaterial in modo, but it seems that Substance Painter re-names my fbx DefaultMaterial to DefaultMaterial1. So it is like SP thinks there's some difference between an OBJ's 'DefaultMaterial' (Which must be it now that I think about it, since OBJ has no material information itself) and an FBX material named after the OBJ's texture set name as seen in SP.
So is there some fix, or should I just bake down what I want to keep from the .obj project, which isn't much in this case, and begin again? Is there some way to do the same thing as texture sets (Show/hide parts of the mesh) based on maybe mesh continuity, UV Island, or colour id?
Oh and, whats with Painter expanding every group in a project when the project is opened?
Apart from that, I haven't used this much since beta ended and the changes are all excellent.
From which application are you exporting your FBX ?
You could try to export an ASCII FBX file just to check that your material is properly named "DefaultMaterial" in it and not "DefaultMaterial1".
We also read the material names from an OBJ file if you export it with the "mtl" file too. Otherwise we will apply a default name.
Modo 701sp4, using FBX 2013. I re-imported the file I exported into modo and it read it as DefaultMaterial; Substance Painter did not when loading it into a new/blank project though..
And I just did what you suggested, and it is definitely called DefaultMaterial within the FBX file itself. It's just changed to DefaultMaterial1 when imported into substance painter. Since it happens in a blank project too maybe DefaultMaterial is a special name within substance..?
Exporting as an OBJ w/ mtl works though imported to a blank scene and DefaultMaterial shows up correctly, and re-projecting works but I'm not sure how to get everything under DefaultMaterial to apply to all the different texture sets. Maybe I'm expecting too much flexibility here though. No big loss though, I only had one piece completed so I can just bake it down and start anew. Or send the exploded lowpoly into SP and just work with that.
Is there any way to mask and paint at the same time?
Or at least can I mask height channel easily? For example I paint bolts over leather material and its height affects bolts too and I have to mask them out individually which is time consuming.
Make sure you set the blending mode of the height channel on your bolt layer to Replace. Default is Linear Dodge, which adds the new height data to the existing one.
When an asset is updated, the old one will show as outdated. You can choose to keep this version or replace it by the new one, hopefully we will make this process easier in future updates.
The default blending mode for the height allows you to paint height detail easily, but the in the case of a material layering workflow, normal would be a better default, maybe we could add this as a preference item.
Will Substance Painter allow you to create a custom shelf and read content from your folders like Substance Designer? Like looking for files with "Env_" prefix for environments instead of placing them in SP directory.
We will probably go for a more standard approach where you'll be able to create your own directory structure and browse through it in the shelf/library.
1. Just wondering is tga export still broken with roughness/metal map orientation? I use Unity5 for work and our default format is tga. The reason is because I would like to export my painter files to sync straight with Unity, rather than having to copy paste and rename them all.
2. Also is there some way to change the naming conventions of the files? I want to remove default material.
3. Is there some way I can keep my 1:2 ratio textures the same in painter? It'll export a 2048x2048 when the original normal map source was 2048x1024. I've had to resize all the exported files in Photoshop. It becomes a bit tedious.
You can modify the Export presets in the Configuration tab in the export dialog.
Copy the Unity 5 template, rename it and customize it. Remove the $textureset to get rid of the material name.
TGA should work fine, and to get the right resolution, make sure your document resolution is set right in your TextureSet settings window, the export will export at the same resolution.
im not sure if this has been requested as a feature before, but itd be incredibly awesome if as you swap through the material channels (C hotkey) in the viewport, your layers would update the group to match the current view, so if you were looking at your roughness map, you by default see your roughness layer set.
im not sure if this has been requested as a feature before, but itd be incredibly awesome if as you swap through the material channels (C hotkey) in the viewport, your layers would update the group to match the current view, so if you were looking at your roughness map, you by default see your roughness layer set.
I was thinking this exact same thing too, but I then realised that if this were the case, pressing C would (sometimes) come with a significant delay. Maybe I'm just low on VRAM but changing between layer channels takes ~10-15 seconds on my current project. So if they were linked I wouldn't be able to cycle through channels in the viewport quickly.
So as a compromise, what about the option to enable what you suggest (as a non default behaviour), and/or have the GUI update when the current viewport solo channel does not match the active layer channel, and the layer channel text gets a red background colour or something. So it is obvious when you're not working with what you're seeing in the viewport.
Also worth mentioning; why isn't the active mask included in the list of solo channels you can cycle through with C? I can select it from the dropdown, but using C would be more convenient.
It makes a lot of sense to be able to export baked textures using export all channels dialog. Currently I'm forced to use external programs to duplicate something that already does SP.
Feature request: Ability to export the baked Ambient Occlusion map somehow, preferably using the Export All Channels dialog.
This is already possible through adding custom channels, although it's by no means a great workflow. Here's a quick pic of how I tend to set it up in one of my projects. The maps aren't actually baked in SP but that's hardly relevant. (Team and Paint channels are custom unrelated stuff)
Like I said, it's not great but it's certainly possible. I'd definitely like to just have the baked maps as additional options on the list of Input maps.
Related to the custom channel stuff btw, I do have a feature request of my own: Being able to save project presets so I don't have to configure my channels every time I make a new project for an asset. For example all of my props and level assets use the same shader setup with a bunch of custom channels (mostly masks). Being able to save that as a preset would be nice.
Edit: Just to clarify, custom channels allow you to export out anything you bake in SP or bring into the program and make edits. Think baking AO, then hand-editing it in 3D etc. Or whatever you could possibly think of.
Is there a trick to getting Tri-Planar Projection to work properly? I always get seams on 90 degree corners even when I bake all my maps in painter (Bsphere position map, worldspace normal etc). I really want to use this feature, wudup?
Triplanar will only work on meshes with smooth angles. It can't do anything for sharp 90 degrees angles like this. You'll have to paint manually on those to remove seams.
The eraser can't be used per channel. What you can do though is paint with a brush that has only the height activated and set to 0, it will act as a height eraser.
Small request to the Allegorithmic team: Allow us to dock the paint properties between the Layer Stack and the Viewport/Shelf. I use a 21:9 monitor and I have enough horizontal space to afford a dedicated column to the layer stack(which gets huge as the project goes on), one for the properties and still have a split 2D/3D view.
Are we going to get some way to paint directly inside masks that are affected by generators/fill layers/etc? The inability to do this is making our current workflow (we're relying heavily on using fill layers with masks) very clumsy and convoluted. Having a paintable mask on top of your stack of generators/filters/etc would also work for this.
I'm currently documenting our process before we hit full production mode, so if this is something I can count on coming down the pipe before too long I'd love to know.
Replies
I started a project with an .obj (this created a texture set called DefaultMaterial). I did some work on this, nothing significant, and decided I wanted to switch over to an FBX version of my mesh to have various parts separated into different texture sets. I figured this would work fine since updating the .obj to a newer obj worked fine, but when I try I get this message:
I named one of my materials in the new fbx DefaultMaterial in modo, but it seems that Substance Painter re-names my fbx DefaultMaterial to DefaultMaterial1. So it is like SP thinks there's some difference between an OBJ's 'DefaultMaterial' (Which must be it now that I think about it, since OBJ has no material information itself) and an FBX material named after the OBJ's texture set name as seen in SP.
So is there some fix, or should I just bake down what I want to keep from the .obj project, which isn't much in this case, and begin again? Is there some way to do the same thing as texture sets (Show/hide parts of the mesh) based on maybe mesh continuity, UV Island, or colour id?
Oh and, whats with Painter expanding every group in a project when the project is opened?
Apart from that, I haven't used this much since beta ended and the changes are all excellent.
You could try to export an ASCII FBX file just to check that your material is properly named "DefaultMaterial" in it and not "DefaultMaterial1".
We also read the material names from an OBJ file if you export it with the "mtl" file too. Otherwise we will apply a default name.
And I just did what you suggested, and it is definitely called DefaultMaterial within the FBX file itself. It's just changed to DefaultMaterial1 when imported into substance painter. Since it happens in a blank project too maybe DefaultMaterial is a special name within substance..?
Exporting as an OBJ w/ mtl works though imported to a blank scene and DefaultMaterial shows up correctly, and re-projecting works but I'm not sure how to get everything under DefaultMaterial to apply to all the different texture sets. Maybe I'm expecting too much flexibility here though. No big loss though, I only had one piece completed so I can just bake it down and start anew. Or send the exploded lowpoly into SP and just work with that.
Or at least can I mask height channel easily? For example I paint bolts over leather material and its height affects bolts too and I have to mask them out individually which is time consuming.
Get it here
Is there any reason why it's not default setting in Height layer?
Also what does "outdated" means in the viewport?
The default blending mode for the height allows you to paint height detail easily, but the in the case of a material layering workflow, normal would be a better default, maybe we could add this as a preference item.
Cheers,
~Tung
2. Also is there some way to change the naming conventions of the files? I want to remove default material.
3. Is there some way I can keep my 1:2 ratio textures the same in painter? It'll export a 2048x2048 when the original normal map source was 2048x1024. I've had to resize all the exported files in Photoshop. It becomes a bit tedious.
Copy the Unity 5 template, rename it and customize it. Remove the $textureset to get rid of the material name.
TGA should work fine, and to get the right resolution, make sure your document resolution is set right in your TextureSet settings window, the export will export at the same resolution.
So as a compromise, what about the option to enable what you suggest (as a non default behaviour), and/or have the GUI update when the current viewport solo channel does not match the active layer channel, and the layer channel text gets a red background colour or something. So it is obvious when you're not working with what you're seeing in the viewport.
Also worth mentioning; why isn't the active mask included in the list of solo channels you can cycle through with C? I can select it from the dropdown, but using C would be more convenient.
This is already possible through adding custom channels, although it's by no means a great workflow. Here's a quick pic of how I tend to set it up in one of my projects. The maps aren't actually baked in SP but that's hardly relevant. (Team and Paint channels are custom unrelated stuff)
Like I said, it's not great but it's certainly possible. I'd definitely like to just have the baked maps as additional options on the list of Input maps.
Related to the custom channel stuff btw, I do have a feature request of my own: Being able to save project presets so I don't have to configure my channels every time I make a new project for an asset. For example all of my props and level assets use the same shader setup with a bunch of custom channels (mostly masks). Being able to save that as a preset would be nice.
Edit: Just to clarify, custom channels allow you to export out anything you bake in SP or bring into the program and make edits. Think baking AO, then hand-editing it in 3D etc. Or whatever you could possibly think of.
http://allegorithmic.uservoice.com/forums/261284-substance-painter/suggestions/7126545-baker-and-output-for-cavity-ao-map
I made this shader which does Diffuse+Normal+Emissive with Fresnel control.
undo changes in generators
duplicating filters, generators and fills which are added to a layer
http://gamedevelopment.tutsplus.com/articles/use-tri-planar-texture-mapping-for-better-terrain--gamedev-13821
Though these edges aren't 90 degrees, still the blend between planes is softened out a bit, though it might be using the vertices to do that.
It would be nice if substance designer graphs that have custom icons, retained those custom icons once imported into painter.
Are we going to get some way to paint directly inside masks that are affected by generators/fill layers/etc? The inability to do this is making our current workflow (we're relying heavily on using fill layers with masks) very clumsy and convoluted. Having a paintable mask on top of your stack of generators/filters/etc would also work for this.
I'm currently documenting our process before we hit full production mode, so if this is something I can count on coming down the pipe before too long I'd love to know.
Thanks!
It's not ideal, but it might hold you until they support it natively.
This is a pretty decent work around... It only allows for subtractive changes, but it does help a bit. Thanks for the tip:)
Very cool, Thanks for keeping us informed!