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
Got another major bug, trying to import any preset file in a graph will fail and cause an infinite spam of these two error messages:
ArgumentException: Value does not fall within the expected range.
Adobe.Substance.SubstanceNativeHandler..ctor (System.String filePath) (at Assets/Adobe/Substance3DForUnity/Runtime/Scripts/SubstanceNativeHandler.cs:51)
Adobe.Substance.Engine.OpenFile (System.String path) (at Assets/Adobe/Substance3DForUnity/Runtime/Scripts/Engine.cs:103)
Adobe.SubstanceEditor.SubstanceEditorEngine.InitializeInstance (Adobe.Substance.SubstanceGraphSO substanceInstance, System.String instancePath) (at Assets/Adobe/Substance3DForUnity/Editor/Scripts/SubstanceEditorEngine.cs:338)
Adobe.SubstanceEditor.SubstanceEditorEngine.LoadAllSbsarFiles () (at Assets/Adobe/Substance3DForUnity/Editor/Scripts/SubstanceEditorEngine.cs:521)
Adobe.SubstanceEditor.SubstanceEditorEngine.Update () (at Assets/Adobe/Substance3DForUnity/Editor/Scripts/SubstanceEditorEngine.cs:118)
UnityEditor.EditorApplication.Internal_CallUpdateFunctions () (at <5f40cdb07bd44d76a23dad985a4ec283>:0)
Unable to instantiate substance material with null assetPath.
UnityEngine.Debug:LogError (object)
Adobe.SubstanceEditor.SubstanceEditorEngine:InitializeInstance (Adobe.Substance.SubstanceGraphSO,string) (at Assets/Adobe/Substance3DForUnity/Editor/Scripts/SubstanceEditorEngine.cs:334)
Adobe.SubstanceEditor.SubstanceEditorEngine:LoadAllSbsarFiles () (at Assets/Adobe/Substance3DForUnity/Editor/Scripts/SubstanceEditorEngine.cs:521)
Adobe.SubstanceEditor.SubstanceEditorEngine:Update () (at Assets/Adobe/Substance3DForUnity/Editor/Scripts/SubstanceEditorEngine.cs:118)
UnityEditor.EditorApplication:Internal_CallUpdateFunctions ()
Reproducible in 2021.3.8f1 / Windows 10.
Copy link to clipboard
Copied
Hi, We are currently working on a fix for this issue. A new update will be available soon on the Unity asset store. Thanks for your patience.
Copy link to clipboard
Copied
I'm trying out this plugin right now. It seems like some settings are not imported correctly I have downloaded the SBSAR file of Earthenware Wall Tiles from the Substance library. Even though I can adjust all sliders and such, the height doesn't seem to work properly. The tile height variation doesn't do a thing in Unity 2021.3.8f1 HDRP version. I'm using DirectX with shader HDRP/Lit.
As you can see in the file with library there is a real variation in the tile heights, etc. As you can see in the material preview in Unity, there is NO variation whatsoever and in the editor there is a VERY SLIGHT variation, hardly noticeable.
This is with the graph settings exactly as they are in the library webplayer.
Oh, and I have this error:
Assertion failed on expression: 'i->previewArtifactID == found->second.previewArtifactID'
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)
Copy link to clipboard
Copied
Thanks for reporting this issue. We'll investigate this further.
Copy link to clipboard
Copied
Hi,
Any updates with this one?
Copy link to clipboard
Copied
Copy link to clipboard
Copied
Hi @adalgise , to best see height displacement it is recommended that you use the HDRP/Lit Tesseleation shader for the material. After that, change the Displacement Mode to Tesselation Displacement. Tesselation Factor can be set as high as needed. After that, set Parameterization to Amplitude and Adjust the Amplitude value higher to see greater displacement. Attaching a screenshot example here. Let us know if this helps.
Copy link to clipboard
Copied
Thank you for the information, even if I must use URP for mobile development, I took my notes for future.
Copy link to clipboard
Copied
Please give us an option to disable this automatic updating.
It makes development impossible once you have more than 20 or so sbars in your project since you have to stop and wait anytime you do anything. Changed a line in your code? Wait 30 seconds. Want to enter play mode to test it? That takes another 30 seconds. Want to open a different scene? That's another 30 seconds even though I have changed nothing related to substance in any of these cases. I would also like to mention I'm running a 5950X with 32GB and an enterprise SSD, so if it's that bad for me I can't even imagine what kind of nightmare it must be on lower end hardware.
I had to resort to isolate the plugin in a separate project that I only dare to open when I have to modify graph settings and then manually copy the generated materials and textures over to my main project. It's very painful but at least I don't lose around 3 hours each day just waiting for these pointless updates.
I wish I could just go back to the old plugin but that has become so broken in modern Unity versions that it's incapable of putting the roughness texture into the alpha channel of albedo or metal in the builtin RP which means I would have to manually fix that in photoshop for every single material which would be even more painful.
Please stop making developers choose between broken deprecated and broken preview versions of your products. I know that's the example Unity is setting but I just can't take it anymore.
Copy link to clipboard
Copied
Hi, thank you for your feedback. We'll investigate this further.
Copy link to clipboard
Copied
Copy link to clipboard
Copied
The old native integration had this, so the new plugin should probably have this as well. Be warned that adjusting the $time input live would require a new texture render every frame so it would not be very performant. It could be useful for offline rendering with Timeline though.
Copy link to clipboard
Copied
Hi, We are currently looking into this. I'm not sure what $time property is. If it is just a simple input then you can assign the value to it using SetInputFloat("time", Time.deltaTime) using the SubstanceRuntimeGraph component.
Copy link to clipboard
Copied
@Shinichi.S, Here are the steps for how to work with the $time property:
1 - Add a SubstanceRuntimeGraph component to your scene.
2 - Assign the SubstanceGraph to the SubstanceRuntimeGraph property.
3 - Use references to the SubstanceRuntimeGraph to call runtimeGraph.SetInputFloat("$time", Time.time) and runtimeGraph.Render() on every Update().
Please let us know if this helps.
Copy link to clipboard
Copied
Hi!
The latest version of the plugin removes the class SubstanceRuntimeMaterial used for modify the material using scripting
The documentation has no working sample about how to modify this on scripting. Would be possible to see a example/video about howto change parameters in real time ? Like change the amount of rust, dirt or whatever? Thanks!
Copy link to clipboard
Copied
Hi, Thanks for your feedback. We are currently looking into updating the documentation and adding an example to explain how the component works. We appreciate your patience.
Copy link to clipboard
Copied
Old vs. New
In the old plugin I was able to update my SD sbsar with added or removed parameters and then reimport them into Unity and all the graphs associated with that SBSAR would update with those changes.
In the new plugin those added or removed parameters ONLY update IF I create a new graph from the SBSAR; and the changes are ONLY on the newly created graph. Previously created graphs DO NOT update with the changes.
We just switched over to Unity 2021 and urgently need this plugin updating correctly.
Thanks,
-Don
Copy link to clipboard
Copied
Hi, Thanks for reporting this issue. This seems to be a bug in the Unity plugin. We'll investigate this further and reach out to you if we need more information.
Copy link to clipboard
Copied
Thank you all for your attention to this matter!!
Copy link to clipboard
Copied
Hi There,
Thanks for the updates. I'm using the former plugin version 2.6.0 from which I have tens off configured substances and materials. How should I migrate to the 3.3.0 version that you released ?
When I tried, it updated all the *.sbsar.meta files but lost all the configured materials. I did a rollback so no work lost.
This is quite an urgent matter though.
Copy link to clipboard
Copied
I mean, is this production ready, or should we stick with the former version meanwhile this new one is stabilising ?
Copy link to clipboard
Copied
I feel your pain!! I'm forced to have to use this version of the plug-in because the company I work for made the switch to a new version of Unity that can only use the newer version. 🙁. So IMO I would absolutely hold off if you can...
It doesn't seem like anyone monitors this forum either... I have yet to get a reply or anything based on my previous post. However there is a Discord Substance channel that more people monitor and the community is really helpful there. I have a pretty in-depth thread on there discribing some of the other issues I've found with this unfinished plug-in if you care to investigate further. I don't have the link with me at the moment but if you can't find it I'll post it when I get into work today.
Good luck!!
Copy link to clipboard
Copied
Substance 3D Discord server
Credit to @Synthoid for directions over to Discord!
Copy link to clipboard
Copied
Well, we just migrated to 2021 LTS, and the 2.6.0 still seems to work (the very latests of allegorithmic). However for futur proofing being able to use the new version without loosing work/flow is eagerly sought. Thanks for the discord link, it'll be helpfull in the future.
Copy link to clipboard
Copied
Hi, We recently did some refactoring that might have caused this issue. Let me get back to you on the best way to update the plugin version without losing the configuration to the substance materials.