Author Topic: Unity 2018.3b04 – MissingMethodException (CompressTexture)  (Read 2975 times)

I'm new to substance materials in general and I really want to give them a chance, but so far working with this plugin was somewhat tedious. To say the plugin has a few issues is a bit of an understatement.

From the top of my head, I could rattle off a bunch of my favourite error messages which pop up at times (mostly stuff about being forbidden to initialize things in constructors), but so far, they've been mostly harmless – at worst I had to restart the Editor.
The occasional forced reimports of all assets whenever the importer crashes and having to keep tracks of where certain materials are being used in case their connection is lost is already in the frustration zone but still, most of the time, the plugin worked fine served its purpose.

Today, I installed two updates. Beta#3 → Beta#4 and Substance Plugin 2.0.2 → 2.1.0.
This caused a reimport of some assets (as it happens when updating the Editor version).
In previous versions of Unity (and the substance plugin), importing a large number of SBSAR files at once took forever after which the Editor crashed – today it took forever and became stuck at the same material for an hour, after which I had to quit the Editor via Task Manager. Repeating the experiment yielded the same result.

So I had to manually remove all SBSAR files from the project, but the new version now not only does not import my old materials, even when trying to download the free samples from Substance Source (leather_fine_touch.sbsar), the Editor always crashes (Runtime Error – so there's not even a proper crash log).



I don't intend to be another one-star reviewer on the Asset Store (very few assets genuinely deserve the one-star rating and this one certainly isn't there yet) but I somewhat do understand their frustration. After wasting a whole day on fiddling with files and waiting through several import attempts, I'm tempted to just remove the substance materials from my project altogether.

From what I witnessed for the past few months:
Do they have incredible possibilities? Absolutely! Are they reliable? Hell no.



Now that I'm done with the rant, for something more constructive:

As I said, I'm currently using Unity 2018.3b04 and Substance Plugin 2.1.0. I'm not sure which update broke the substance materials, but before, it worked (mostly) all right. My build platform is WebGL, but the 'Include Platforms' checkbox on the plugin files doesn't really make any difference. It still crashes.

From the Editor.log (as attached – contains the whole process of opening the project and trying to import an SBSAR file):
It seems it can't find the UnityEditor.EditorUtility.CompressTexture() method.
Strangely, the other new beta topic by 'kelly4d3d' doesn't seem to encounter this problem, so I guess it's not like the method was removed in between the betas. I followed the update guide, so hopefully, the plugin was updated correctly.

For the record, starting a new blank project with just the substance plugin and PC build platform causes the same exact crash when I open the Substance Source and try to download a material. (Or if I simply right-click an older material in Project window and click 'Reimport').

Any ideas?  :-\

"In previous versions of Unity (and the substance plugin), importing a large number of SBSAR files at once took forever after which the Editor crashed – today it took forever and became stuck at the same material for an hour, after which I had to quit the Editor via Task Manager. Repeating the experiment yielded the same result."

The current beta versions of unity are bugged when importing assets, it crashes on assets that worked fine before until they are removed. (pbrflower pack for example, unity knows of the problem since I gave them a bug report on it).

In terms of import time, again actually a unity problem it takes a lot memory when importing and begins to cache to disk, honestly it's very annoying and I'm hoping the new changes coming fix the asset loading and importing. I've had reimports of projects take 36 hours before... then crash :'(

The rest don't know much about but substance doesn't work for me at all in the latest beta 3b04, but I'm avoiding the current crop of betas like the plague until assets/terrain/shaders become more stable as presently it's like building a house on sand, that crashes  ???

Hello,

Thanks very much for posting this information and feedback. This is exactly what we need to improve the beta. We are in beta and so the plugin will be rough until we can get the issues ironed out.

One issue is that we have a beta plugin and you are also using a beta version of Unity : ) I would definitely expect there to be issues. In this case you are introducing issues that could be happening on both fronts (plugin and editor). For our development, we are focusing on the official releases of Unity and we are not working on the beta builds. We have to focus our efforts on the official builds. I don't want to sound like I am pushing this off as a Unity 2018.3 beta issue. Development wise, these beta builds change rapidly and we can't patch issues that are introduced in these builds as they just like our plugin are not complete. Once the build is more stable, we then move it into our development cycle. 

With that said, we are looking at all issues and working to produce stable releases. With 2018.2 and the 2.1 update, you shouldn't be having these import issues. We understand this is frustrating. In many ways, we are in the same boat with you development wise : ) We understand just how you feel and what you are experiencing.

Cheers,
Wes
Head of Substance Demo Art Team
the3dninja@adobe.com
Twitter: The3DNinja

Hello,

thank you, I'm grateful for the response and the version tips.
Personally, I'll probably stick to the Unity beta at this point, as I have already done some work with its new features/changes, but I absolutely understand your reasons for not supporting these versions ahead of time.

Just in case if you'll be looking at this issue sometime in the future; the offending missing method seems to still be in 2018.3 documentation and testing it in the Editor works – but since the error seems to be related to reflection and as you noted, Unity is still in beta (which comes with a new compiler, prefab workflows and a bunch of deprecated methods) – I wouldn't dare to guess the exact possible cause.

Thank you for listening to user feedback.  :)

If I had to highlight my two biggest pet peeves with the plugin currently (Unity 2018.2 / Substance Plugin 2.0.2):
  • (Re)importing multiple substance materials
    I wrote about this in the original post, so briefly: when the importer tries to import more than, say, five or six materials, it runs out of memory, crashes and because of the crash, everything has to be imported again. So the user is eventually forced to pull out all SBSAR files and put them back in in small groups of 4-6 (depends on how much of a gambler you are) just to get Unity to open and the materials in working order again. Doing this with 2GB / 50 materials isn't exactly fun.
    But you say it might already be fixed in 2.1 update.
  • No global settings
    Unless I missed some setting somewhere, I don't think it's currently possible to make new materials e.g. always import in 1k resolution; or change the common settings of multiple of them at once.
    In fact, I logged two crash bug reports with Unity related to this (because Unity automatically asks after each crash).
    Selecting multiple SubstanceGraphs (t:substancegraph search in the Project window) crashes the editor with another Runtime Exception – I don't have the editor logs anymore, but I suspect it was yet another memory issue.
    Creating a SubstanceGraph preset: create a preset, attempt to select it – instant crash.
    Some global setting could not only speed up the imports, but also be great e.g. for some sort of an in-game Graphics Quality selector.
Except for some occasional quirk, I'm quite happy with the rest of the plugin. Perhaps it'd be nice to be able to rename a new version of a material when it's created (the "plus button" under Substance) but overall stability is certainly much more important.

Hello,

thank you, I'm grateful for the response and the version tips.
Personally, I'll probably stick to the Unity beta at this point, as I have already done some work with its new features/changes, but I absolutely understand your reasons for not supporting these versions ahead of time.

Just in case if you'll be looking at this issue sometime in the future; the offending missing method seems to still be in 2018.3 documentation and testing it in the Editor works – but since the error seems to be related to reflection and as you noted, Unity is still in beta (which comes with a new compiler, prefab workflows and a bunch of deprecated methods) – I wouldn't dare to guess the exact possible cause.

Thank you for listening to user feedback.  :)

If I had to highlight my two biggest pet peeves with the plugin currently (Unity 2018.2 / Substance Plugin 2.0.2):
  • (Re)importing multiple substance materials
    I wrote about this in the original post, so briefly: when the importer tries to import more than, say, five or six materials, it runs out of memory, crashes and because of the crash, everything has to be imported again. So the user is eventually forced to pull out all SBSAR files and put them back in in small groups of 4-6 (depends on how much of a gambler you are) just to get Unity to open and the materials in working order again. Doing this with 2GB / 50 materials isn't exactly fun.
    But you say it might already be fixed in 2.1 update.
  • No global settings
    Unless I missed some setting somewhere, I don't think it's currently possible to make new materials e.g. always import in 1k resolution; or change the common settings of multiple of them at once.
    In fact, I logged two crash bug reports with Unity related to this (because Unity automatically asks after each crash).
    Selecting multiple SubstanceGraphs (t:substancegraph search in the Project window) crashes the editor with another Runtime Exception – I don't have the editor logs anymore, but I suspect it was yet another memory issue.
    Creating a SubstanceGraph preset: create a preset, attempt to select it – instant crash.
    Some global setting could not only speed up the imports, but also be great e.g. for some sort of an in-game Graphics Quality selector.
Except for some occasional quirk, I'm quite happy with the rest of the plugin. Perhaps it'd be nice to be able to rename a new version of a material when it's created (the "plus button" under Substance) but overall stability is certainly much more important.

Hi,

We are working on a settings menu. It will be appearing in a future update and will allow you to access global settings. For the crashes, this is due to the 2018.2.3 beta. We do not yet support 2018.2.3 and we are seeing some stability issues we will get ironed out.

So glad to hear you've been happy with the plugin and we greatly appreciate your feedback. We also have renaming of materials coming in the next update.

Cheers,
Wes
Head of Substance Demo Art Team
the3dninja@adobe.com
Twitter: The3DNinja

Hi Wes,

I understand you would not want to invest too much time in supporting Unity 2018.3 while still in beta, but nevertheless, this is a pretty major issue which kind of renders the use of Substance worthless for many developers who also need to use the latest PhysX plugin in the Unity Engine. Surely your team could spare a moment and take a look at this to at least evaluate the effort required to fix it. From what I can surmise, this looks like an invalid function call - either due to a name change or signature change - and that should be a relatively simple bug to fix assuming the integration was working with a previous build of 2018.3 beta. After all, migrating back from 2018.3 to 2018.2 is not something we can really do without breaking our projects. Also, from what I see in previous discussions, the plugin was working on and off with 2018.2, so there is no guarantee a rollback would do any good, even if it was possible.

At the very least, we would be happy for a workaround until this bug is finally fixed.

Regards,
Boris

Hi Wes,

I understand you would not want to invest too much time in supporting Unity 2018.3 while still in beta, but nevertheless, this is a pretty major issue which kind of renders the use of Substance worthless for many developers who also need to use the latest PhysX plugin in the Unity Engine. Surely your team could spare a moment and take a look at this to at least evaluate the effort required to fix it. From what I can surmise, this looks like an invalid function call - either due to a name change or signature change - and that should be a relatively simple bug to fix assuming the integration was working with a previous build of 2018.3 beta. After all, migrating back from 2018.3 to 2018.2 is not something we can really do without breaking our projects. Also, from what I see in previous discussions, the plugin was working on and off with 2018.2, so there is no guarantee a rollback would do any good, even if it was possible.

At the very least, we would be happy for a workaround until this bug is finally fixed.

Regards,
Boris

Hi Boris,

You have very valid comments. We greatly appreciate your feedback. While we are in beta with the plugin, we are having to focus on official builds. After the plugin releases from beta, we will then be able to look at future beta builds of Unity.

With that said, we are internally looking at the beta releases and are tracking issues that appear so that they will be fixed. We will have this issue resolved for 2018.3, but unfortunately, we can't supply a fix while it's in beta. It's tough as we want to support it, but the beta versions and official builds for that matter are rapidly changing and we are in a state of constantly trying to catch up to changes made between point releases. We fix one issue, unity changes it in the next release. It's been a pretty wild ride for us as well : )

Cheers,
Wes

Head of Substance Demo Art Team
the3dninja@adobe.com
Twitter: The3DNinja

Hi Wes,

I realize this might be a tough question, but do you have any sense of where you guys expect to be, with respect to supporting Unity releases, in 6 months? In a year?

My main concern with Substance right now, despite the Unity plugin generally working for me in 2018.2, is that Substance will become the reason I can't upgrade Unity. Because the plugin is in Beta, you're still recommending that people stay on Unity 2017. I'm curious if you know when that guidance will change. It's obviously unreasonably in the long run for Substance use in a project to require me to forego many major releases of Unity. To put this into more manageable questions:
  • The beta for the plugin has been going on for 8-9 months now? Do you have a sense of when you'll drop the "beta" tag and consider this production ready? And at that point, do you plan to be production-ready with the then-current release of Unity? Or will there always be some lag where using Substance requires holding off on Unity updates for long periods?
  • Do you eventually plan to be caught-up enough with plugin development that it is possible to track Unity Betas? It's unfortunate that Substance is the only reason I can't try out the Unity 2018.3 beta on my existing project right now.

Hi Wes,

I realize this might be a tough question, but do you have any sense of where you guys expect to be, with respect to supporting Unity releases, in 6 months? In a year?

My main concern with Substance right now, despite the Unity plugin generally working for me in 2018.2, is that Substance will become the reason I can't upgrade Unity. Because the plugin is in Beta, you're still recommending that people stay on Unity 2017. I'm curious if you know when that guidance will change. It's obviously unreasonably in the long run for Substance use in a project to require me to forego many major releases of Unity. To put this into more manageable questions:
  • The beta for the plugin has been going on for 8-9 months now? Do you have a sense of when you'll drop the "beta" tag and consider this production ready? And at that point, do you plan to be production-ready with the then-current release of Unity? Or will there always be some lag where using Substance requires holding off on Unity updates for long periods?
  • Do you eventually plan to be caught-up enough with plugin development that it is possible to track Unity Betas? It's unfortunate that Substance is the only reason I can't try out the Unity 2018.3 beta on my existing project right now.

HI,

Thanks very much for posting these questions. Although I can't give any exact dates, I want to provide you with some input as openly as I can. We are currently working to get the plugin out of beta. The dev sprints for features/bugs are being prioritized so that we can move out of the beta state of the plugin ASAP. Our main goal is to get out of beta with a stable plugin that can be used in production.

Once the plugin is officially out of beta, we will then be able to look supporting beta versions of Unity and we will place a high priority on 2019. We are not focusing on the beta versions now as they have been moving targets with various API changes, which often can break the plugin. Also, we thought it best to focus all our attention on officially supported versions of Unity as our goal is to get the plugin to a production level quality.

I hope this information is helpful. I know I haven't given any concrete answers, but I want you to know I understand exactly where you are coming from. Please know, we solely focused on getting out of beta : )

Cheers,
Wes
Head of Substance Demo Art Team
the3dninja@adobe.com
Twitter: The3DNinja