Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - scott_22

Pages: [1]
With version 2.4.4 of the Substance Unity plugin and Unity 2019.3.1f1, I am receiving the following error in the editor console upon exit from Play mode:

NullReferenceException: Object reference not set to an instance of an object
Substance.Editor.EntryPoint.NeedsReImport (System.String pPath) (at <c84dad347d4b4c7c97bcf77c1e11b982>:0)
Substance.Editor.EntryPoint.HandleAssignedTextures () (at <c84dad347d4b4c7c97bcf77c1e11b982>:0)
Substance.Editor.EntryPoint.StateChange (UnityEditor.PlayModeStateChange state) (at <c84dad347d4b4c7c97bcf77c1e11b982>:0)
UnityEditor.EditorApplication.Internal_PlayModeStateChanged (UnityEditor.PlayModeStateChange state) (at <c10752821eec4acbb89ccd53fbbc5e27>:0)

Double-clicking the message does not link to anything in the hierarchy or project tabs, so this seems to be something global to the plugin rather than triggered by a specific object. All of my materials seem to be unaffected by the error, so if it's trying to tell me one of them needs to be reimported, I am not sure which one.

This bug occurs 100% repeatably for me in Unity 2019.3.1f1 with the latest Substance for Unity plugin as of about last Friday.


On reloading a Unity project where there was a Subtance Source window or tab open as Unity exited and that page expected a Substance login session, the Substance Source window will loop endlessly. It complains that a login is required but will not stop refreshing to allow the login to happen. Furthermore, it seems that window or tab is impossible to close without fully exiting Unity. Even rapid-fire clicks on the window close button are ineffective (although I suspect there is some very tiny window of time during each refresh when the close button might work if I could hit it just then).

Steps to reproduce:
  • Create an empty Unity project.
  • Import Substance Plugin from the Asset Store.
  • Open a Substance Source window or tab in Unity and login.
  • In Substance Source, navigate to something that would require a login, for example, a page showing your purchased Substances
  • Exit Unity editor back to the desktop without closing that Substance Source tab.
  • Wait long enough for session cookies to expire (not sure if this step is required or not)
  • Reopen the Unity project

Level of bug:

Critical failure of Substance Source plugin; no apparent effect on SBSAR file support in the Unity project

Known workarounds:
  • With Unity closed, delete the subdirectory containing the Substance Source plugin (but not the rest of the Allegorithmic plugin directory tree), and be sure to delete the metadata file associated with the Substance Source subfolder from its parent folder. Reopen Unity, and it will function normally without Substance Source.
  • When importing Substance for Unity plugin, omit the Substance Source subfolder and its contents from the import.

With either of these workarounds, obtain Substance Source materials by directly downloading them with a standalone browser session.

Additional notes:

I attempted to report this bug through the formal Tech Support ticketing system, but the web form failed to post because it expected a Captcha to be completed, but my browser (latest version of Chrome, on Windows) did not display any Captcha fields. Captcha fields generally work fine for me, including the one on these forums. I attempted to refresh the page with my ad blocker disabled, but that also did not display the Captcha at all.

Furthermore, the error page showed my bug report text but would not allow me to copy it to the clipboard so I could resubmit the form. Please consider this note a request to fix the web form so an error page allows the text that failed to submit to be clipboarded by the user. I even used the page source view in my browser to try to recover my text to avoid retyping it by hand, but apparently the site uses some AJAX JavaScript thing and the form contents are not actually in traditional HTML sent to the browser.

FWIW, I'm copying this bug report to my system clipboard before I attempt to preview or post it.

As you can see from the fact that I'm typing this, my login credentials work if I login at and select the main menu link to go to the forums.

However, as of today if I click on "Feedback" from the Substance Source web area, or from the main web site, it appears to go to a different forum (or at least a different skin around this one), and the login is completely broken. Attempting to submit a feedback item is refused with a message "please sign in with a provider". When I activate the button to do so, the Account Profile page from the main web site is displayed inside a popup window that presumably was supposed to be for a login prompt. So it appears the Feedback system is not gracefully handling the case where one is already logged in.

This was on Chrome version 78.0.3904.108, on Windows 64 bit.

First, thank you thank you THANK YOU for adding the text node in the new Substance Designer, and I'm glad SD6 support finally made it into the Unity 2017.2 beta! I was one of the people originally requesting that node, and I'm already putting it to good use in an archviz project.

I did notice a couple of limitations and would like to request they be considered as features for the next version:
  • In Substance Designer, it's possible to enter a multiline value for the displayed text. In the Unity plugin, however, the field in the Inspector is a plain text field that doesn't allow line breaks. I think all you would need to do is change the field type in the Inspector to make this work correctly. Check out the MultilineAttribute in the Unity C# scripting docs ( as one alternative.
  • Ideally, there should be a way to have the typeface size change so the text auto-fits the map output of the node, with a parameter for the desired border in X and Y directions. Perhaps this is already possible now, and I just haven't found it yet?
  • This is a long shot, but is there any way the selection of font could be an exposable input parameter? I can't actually think how to implement that, so maybe it's not feasible. Maybe accept the font name as an input and resolve it to a TTF at runtime?
Thanks for listening, and again thanks for implementing my #1 priority feature request! I'm a happy camper!

I currently have perpetual Indie licenses for SD 5, SP 1, and B2M 3. Since I want to upgrade to SD 6 soon, and also SP 2 now, I'm strongly considering going with Substance subscription on the 6 month for $10/month deal. Having access to Substance Source would be a real time-saver. I love creating my own custom Substances in Designer for things that are specific to my project, but for me to re-invent things like wood grain and sand is not a good use of my time. :)

Since I am working in Unity, however, I can't upgrade to SD 6 quite yet because as far as I know Unity doesn't yet support .sbsar from version 6. Painter and B2M aren't a problem because their outputs are just standard bitmaps, of course.

If I go ahead and get the subscription now, can I upgrade my Painter but retain SD 5 until the Unity folks update their embedded Substance engine to support SD 6?

I'm working with the scifi crate model from Allegorithmic, working through the tutorials for Painter (which I just recently purchased). I'm loving it so far, but I have a visual anomaly happening in one specific location.

I imported a Substance Designer fabric material into Painter and applied that to the two handles on the top of the SF container. It works fine in regular UV projection mode, but (as the tutorial notes), there are some rotations and warps that happen because of the UV projection. If I follow the tutorial's suggestion to switch to triplanar projection, all is well with respect to texture orientation, but there are two angled black lines on the top of the model, as if someone slashed the fabric with a knife. The lines are visually jaggy, like interpolated pixels (but the jagged edges are much larger than one physical pixel or one pixel in the texture's map).

I tried every available parameter to remove the artifacts, without success, but I do find that the artifacts change as I modify the tiling factors on that material.

Am I doing something wrong, or is this just a glitch in the triplanar shader?

I know this is not as important as an application crash, but I noticed several grammatical errors in the Plugins page of Substance Painter's online manual.


Existing text:

Substance Painter has a dedicated Scripting API that allow to create custom plugins to add custom functionalities and behavior.

The plugin are wrote in Javascript and can be combined with the QML language to create custom interface inside the application. For more details on what is available in the API, take a look at the scripting documentation (available from the help menu of the application).

Recommended corrections:

Substance Painter has a dedicated Scripting API that allows you to create custom plugins to add custom functionalities and behavior.

The plugin are written in JavaScript and can be combined with the QML language to create a custom interface inside the application. For more details on what is available in the API, take a look at the scripting documentation (available from the help menu of the application).

Thanks for reading, and have a nice day. :)

Hi, folks!

I actually have this working in my project now, but it took a lot of complex masking logic and I feel there must be a better way.

What I need is something that combines a TileGenerator with a MultiSwitch (both greyscale), and in just one dimension rather than an array.

To clarify, I have a texture that has from 1 to 4 separate rectangular zones in the X dimension. I need to fill each one of those zones with a different pattern. The only part of this that is tricky is that the number of zones is an exposed integer parameter.

Getting the zones is easy enough with a TileGenerator, but it only accepts a single image pattern input. A TileSampler can do the multiple inputs, but I don't see any way to make that non-randomized.

Thinking of it another way, imagine a MultiSelect that chooses from its inputs not globally, but locally according to a quantized greyscale input map (e.g., 0-24% grey chooses input 1, 25-49% chooses input 2, and so on).

As I say, I actually have the multiplexor logic working, but it made for some extra complexity in my project, and I can't help feeling that I've overlooked a better way. Anyone have a suggestion? Thanks!

I'm in the process of learning Substance Designer in a Unity workflow, and I have a question about "best practices" for this combination. I'm using a metallic/roughness material model.

Is it better, in general, to have SD output the base color along with all the other maps, and leave Unity's "Albedo" setting as pure white? Or should I go the other way, and have SD produce a greyscale base color map normalized to full-white at its top end, then adjust the albedo in Unity?

I can see pros and cons for each:
  • If I let Unity control the color, it's very intuitive for users who are used to working with traditional textures.
  • If I let Substance Designer control the color, it's easier for me to visually test my materials directly in SD's 3D viewer.
  • If I let Substance Designer control the color, I can more easily produce multicolored objects.
That third point seems to override the others, to me, but I wanted to ask "the experts" for advice here. Any hints welcome, and thanks!

I have the following situation using Substance Designer 5.4.0 and (coincidentally) Unity 5.4.0:

My Substance project contains a number of graphs that each generate one output material, using Metallic/Roughness workflow.

Within one particular graph, there is an input parameter that changes the count of a horizontally-placed array of features in my texture. The input is an integer ranging from 1 to 4. Its main use is to control the "Number X" parameter of several TileGenerator nodes. However, I also use several function graphs to calculate the "Crop Left" and "Crop Right" values for a number of Blend nodes. Basically, what I'm doing is adjusting the crop area in response to how many instances of the design pattern are in use.

All of this works flawlessly in Substance's 3D view as I change the integer input for the graph.

In Unity, I import the SBAR and create a Unity Material, then apply it to some geometry. I then inspect the SBAR asset and, from its list of materials, instantiate a new Material either with the "+" or Duplicate buttons below the icons for existing materials. I make a total of four Materials, corresponding to the four values of my input parameter, and name them uniquely.

I can change the integer input parameter and the texture resolutions for each Material, and the results are reflected in the generated outputs.

What I have found is that my function for calculating the Crop values appears not to be computed separately for each Material in Unity, although the functions that compute the positions and interstices for the TileGenerator are separately computed and generating different outputs as they should.

It appears as if the functions for the Crop values behave as if their input is the default value and don't see the changes I make. That is, the calculation is correct for the one material instance that has the default value for the input parameter.

Any suggestions what I may be doing wrong? Thanks!

I'm trying to make some fabric Substances in SD, and I'm having issues with the 3D viewer showing everything as shiny. This is true even though I have the Specular and Glossiness both mapped to solid black.

I'm fairly new to SD, so I'm sure this is pilot error on my part, but what could I be doing wrong?

Thanks for any hints. I can upload my SBS if that would be helpful, but it's really just a base material with a fabric-like diffuse and normal map plus hardwired glossiness and specular at black.

Incidentally, I've tried switching to metal/roughness workflow, and setting the roughness to max (white), but I get the same result.

Are the specular, normal, or glossiness maps' *alpha* channels involved here somehow?

Pages: [1]