Copy link to clipboard
Copied
Hi everyone!
We are excited to announce that we've released a soft launch of the newly revamped Substance 3D plugin for Unity. The plugin lets users load, apply, and tweak Substance 3D parametric materials directly in Unity.
If you're interested in testing out the plugin, you can download it directly from the Unity asset store: Substance 3D in Unity.
Stay tuned for the official release.
If you have questions or comments, please reach out to us here. Thanks!
Copy link to clipboard
Copied
Thank you, wouldn't be bad if the process of migration was somewhere in the documentation. I believe a lot of studios are still shipping with 2019 LTS and will need the migration steps sooner or later.
Copy link to clipboard
Copied
After looking into this for some time, it doesn't seem like there is a way to migrate projects from older versions to a new ones. We will try our best to avoid these types of changes going forward that might not provide a smooth way to migrate from one version to another.
Did you have any luck with trying a solution that was posted on the discord channel?
Copy link to clipboard
Copied
Someone has suggested saving the material presets and load them back in the new plugin. Not sur how to do this though.
Copy link to clipboard
Copied
Hey @baliv ,
BM_Cregs is me on Discord. If you follow the discussion we're having over there with "m_dev" you might get some better insight on how to follow the process I've discribed. But if you have any question jump onto discord and maybe I can help you out. I'm just trying to find work arounds to make this migration possible since the plugin doesn't work yet like it should.
Copy link to clipboard
Copied
@baliv, You will be able to export presets from your materials and then use those presets to configure the inputs in the updated project. However, I believe there is nothing you can do about changing the material references in the scene.
We'll investigate this further into how we can resolve the issue with upgrading. That said, it will take some time to come up with a solution for this.
Copy link to clipboard
Copied
I apparently see the process clearer following the discord answers, although we'd loose all material links. So while I'm not ready to create a migration script we'll probably stick with the 2.6 version while it's workable.
Copy link to clipboard
Copied
Sorry to hear that you'll not be able to upgrade to the latest version. We'll investigate further into how we can provide a way to update from the older versions to the new one smoothly.
Copy link to clipboard
Copied
I'm starting to see a nasty issue with the plugin using 2021.3.15f1. I'm noticing that there are certain .sbsar materials that outright cause the entire editor to crash with no error report or messages. I can't find any rhyme or reason, and the materials that I'm importing have worked in the past, and can be opened in substnace designer and player without issue. I've tried updating the source .sbs files and re-exporting with the latest substance version, but that doesn't seem to make a difference.
Copy link to clipboard
Copied
To follow up with some findings;
- I've isolated one material in particular that is troublesome, and attempted to load it into the editor. The first attempt outright crashes the editor after attempting to import. It's able to half-create the plugin files before the editor dies. If I let those files remain and attempt to reopen the editor, I can open the editor this time, but I get this error when I click on the substance, and I the inspector screen is empty:
NullReferenceException: Object reference not set to an instance of an object
Adobe.SubstanceEditor.SubstanceEditorEngine.InitializeInstance (Adobe.Substance.SubstanceGraphSO substanceInstance, System.String instancePath) (at Assets/Adobe/Substance3DForUnity/Editor/Scripts/SubstanceEditorEngine.cs:343)
Adobe.SubstanceEditor.SubstanceGraphSOEditor.OnEnable () (at Assets/Adobe/Substance3DForUnity/Editor/Scripts/SubstanceGraphSOEditor.cs:85)
UnityEditor.Editor:CreateEditor(Object)
Adobe.SubstanceEditor.Importer.SubstanceImporterEditor:DrawSelectedInstanceProperties(SubstanceGraphSO) (at Assets/Adobe/Substance3DForUnity/Editor/Scripts/Importer/SubstanceImporterEditor.cs:324)
Adobe.SubstanceEditor.Importer.SubstanceImporterEditor:DrawMainUI() (at Assets/Adobe/Substance3DForUnity/Editor/Scripts/Importer/SubstanceImporterEditor.cs:151)
Adobe.SubstanceEditor.Importer.SubstanceImporterEditor:OnInspectorGUI() (at Assets/Adobe/Substance3DForUnity/Editor/Scripts/Importer/SubstanceImporterEditor.cs:127)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&) (at /Users/bokken/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:189)
- I attempted to walk back the editor to 2021.3.6f1 (Mid-july 2022), and this exact issue persists. Given that I'm using unchanged substances and the editor that was previously working, the only variable here is the latest subtance 3.4.0 version.
- Comparing the problematic material with one that works, there is no palpable difference between them. They all use the same input types (int2, int, float, bool). The problematic one even has fewer inputs than another that works fine.
- Opening up the Unity Editor.log doesn't even show a palpable error. When the editor crashes and I have full editor logs turned on, it looks like the crash happens halfway through importing the problematic material:
Registering precompiled user dll's ...
Registered in 0.001453 seconds.
Start importing ProjectSettings/ProjectSettings.asset using Guid(00000000000000004000000000000000) Importer(-1,00000000000000000000000000000000) -> (artifact id: '38a39000ec82f1f2a41f747cc34ec812') in 0.001933 seconds
Start importing Assets/LayeredIcyCliff_graph_0 using Guid(26c851950bfb74e5590d960cc6fb26bc) Importer(-1,00000000000000000000000000000000)
Copy link to clipboard
Copied
Root Cause: The Voronoi Fractal Node! A note from the node description itself:
Generates a fractal 3D Voronoi noise mapped to a 2D image using a Z-down orthographic projection.
Note
This noise is meant to be used with the GPU engine only (i.e., Direct3D or OpenGL). Go to Tools > Switch engine... or press the F9 key to select the desired engine.
After removing the occurence of this node I was able to get the plugin to load my material in Unity. I suspect it has something to do with the GPU engine requirement. What confuses me about this though is that the node seemed to work in previous versions of the plugin. Is this a regression, or was a change made to disable this? If it's purposeful, it would be useful if it could at least be gracefully handled and an error could be displayed in the editor to alert users that the material isn't compatable. Thanks!
Copy link to clipboard
Copied
Hi @andrew22696707bn0e , sorry to hear about this editor crash! Could you provide some info as to how the Voronoi Fractal node is being used in your graph? And are there any steps taken in the editor that can reproduce the crash? You should be able to attach screenshots here. In a quick test on my end it looks like simply having the node connected to base color and exposing the Distortion Intensity isn't enough to triggering the editor crash in 2021.3, so it would be great to have the additional info to be able to reproduce this. If possible, could you attach the sbs as well?
Copy link to clipboard
Copied
Certainly! I'm using the Chebychev distance node on teh voronoi fractal with an Add blend node and non-square expansion set to true. I hook that into a blend and later a few histograms with sliders exposed. I've attatched an sbs and sbsar of the substance that can minimally reproduct this issue for me. To get the crash to occur, I only have to open up a project in Unity (with latest substance plugin installed) and import the .sbsar.
If it's possibly a hardware issue, my specs are:
2.9 GHz i9
32GB ram
Radeon Pro Vega 20 4GB
macOS Monterey version 12.6
I've exported the sbsar from the steam edition of Substance designer version 12.3.1 and imported the substance into Unity version 2021.3.15f1
Hopefully this helps!
Copy link to clipboard
Copied
Are you going to support terrain material generation? Right now it's pretty much impossible to use substances with terrain.
The main problem is that Unity expects the height data to be in the blue channel of the mask file instead of a separate file. Manually copying the height data to the blue channel of the mask for each output material is a complete pain and not even worth considering if you're working with more than a few of them.
Ideally changing the shader to the HDRP/URP terrain shader in the substance graph would generate this output configuration, but if you do that currently there simply is no output at all.
Copy link to clipboard
Copied
Hi,
We are currently not planning to add support for terrain material generation. Could you provide more information about your use case and how critical this feature is for it?
Thanks!
Copy link to clipboard
Copied
Material previews in the graph editor are busted in the latest release when Probe Volumes are enabled.
Copy link to clipboard
Copied
Hi @ebaender , thanks for reporting this. I can reproduce the blank material preview in the inspector after enabling Probe Volumes in the HDRP Global Settings. We'll track this as a new bug. Since Probe Volumes are an experimental settings things may brake as it develops, but we will be keeping an eye on this.
Copy link to clipboard
Copied
@ebaender: I just wanted to check if you're still encountering this issue.
Copy link to clipboard
Copied
The plugin is completely unusable in the 2021.3 and 2022.2 editor as of version 3.5.0. Every time you close the project after importing the plugin all of your substances will be broken and not display any of their graphs the next time you open the project again.
Unexpected recursive transfer of scripted class. 'Adobe.SubstanceEditor.Importer.SubstanceImporter' is being transferred while trying to transfer 'graph_0'
SubstanceException: The operation failed to complete
Adobe.Substance.SubstanceNativeGraph.ApplyPreset (System.String presetXML) (at Assets/Adobe/Substance3DForUnity/Runtime/Scripts/SubstanceNativeGraph.cs:145)
Adobe.SubstanceEditor.SubstanceEditorEngine.SetStateFromSerializedData (Adobe.Substance.SubstanceGraphSO substanceInstance, System.String data) (at Assets/Adobe/Substance3DForUnity/Editor/Scripts/SubstanceEditorEngine.cs:419)
Adobe.SubstanceEditor.EditorTools.UpdateSubstanceInstance (Adobe.Substance.SubstanceGraphSO instanceAsset, Adobe.Substance.SubstanceFileRawData newFileData) (at Assets/Adobe/Substance3DForUnity/Editor/Scripts/Utilities/EditorTools.cs:44)
Adobe.SubstanceEditor.Importer.SubstanceImporter.UpdateSubstanceFile (UnityEditor.AssetImporters.AssetImportContext ctx) (at Assets/Adobe/Substance3DForUnity/Editor/Scripts/Importer/SubstanceImporter.cs:215)
Adobe.SubstanceEditor.Importer.SubstanceImporter.OnImportAsset (UnityEditor.AssetImporters.AssetImportContext ctx) (at Assets/Adobe/Substance3DForUnity/Editor/Scripts/Importer/SubstanceImporter.cs:164)
UnityEditor.AssetImporters.ScriptedImporter.GenerateAssetData (UnityEditor.AssetImporters.AssetImportContext ctx) (at <7fef092428a04dc89d2aa6ad3ce5d856>:0)
Copy link to clipboard
Copied
Hi, What platform are you using and could you share the SBSAR file that you are using?
Copy link to clipboard
Copied
Hi, this issue has been fixed in v3.6. Please update the plugin to get the latest build.
You can download the plugin from the Unity asset store here: https://assetstore.unity.com/packages/tools/utilities/substance-3d-for-unity-213208#reviews
Copy link to clipboard
Copied
hello and welcome back to unity
This is David from Amplify Shader Editor support and i like to ask if you wish to regain support for your asset
please recah out to me when your ready.
cheers
David amplify support
Copy link to clipboard
Copied
Hi David,
What do you mean by "regaining support"? Some of our team members are no longer with Adobe, so it would be helpful to get some context here.
Copy link to clipboard
Copied
It says on update 3.9.0: "Fixed an issue where the Unity plugin was not functional on Android."
But the update is still not functional on Android for me.
I get this error still. (Which is the exact same error I got before Android was "Fixed".)
Error:
AndroidPlayer "samsung_SM-N960U" A scripted object (probably Adobe.Substance.SubstanceGraphSO?) has a different serialization layout when loading. (Read 1552 bytes but expected 7628 bytes)
Did you #ifdef UNITY_EDITOR a section of your serialized properties in any of your scripts?"
I've tried various things like disabling libsubstance_linker.so.9 plugin because it complained about that when building for Android, as well as other similar plugins. No luck. Still busted no matter what I do. No documentation saying any other special steps are required to make it work on Android.