ynput / OpenPype

OpenPype has been surpassed by AYON and is now read only.
https://ayon.ynput.io
MIT License
286 stars 129 forks source link

Bug: 3dsmax usd plugin validator should run only when needed #5602

Open antirotor opened 1 year ago

antirotor commented 1 year ago

Is there an existing issue for this?

Current Behavior:

Currently USD plugin validator is bound to model family and will run always, no matter if "Extract Geometry (USD)" is enabled on the Instance or not. When you are missing usdexport.dle in your 3ds max, this validator will always fail even when not needed.

Expected Behavior:

Model creator should have "Extract Geometry (USD)" defined on itself. Additional collector should add it to the model instance if this is enabled and validator and extractor should only have usd family on them.

Version

3.16.6-nightly.1

What platform you are running OpenPype on?

Windows

Steps To Reproduce:

  1. Run 3ds max without usdexport.dle available
  2. Try to publish model without Extract Geometry (USD) enabled.

Are there any labels you wish to add?

Relevant log output:

No response

Additional context:

No response

[cuID:OP-6800]

moonyuet commented 1 year ago

this one is only valid when the user installs the USD for 3dsMax, (as well as USD extractor), maybe we should intead check in the USD extractor rather than having validator?

antirotor commented 1 year ago

I think the validator is OK, imagine additional plugin in the future needed just for USD part - some validator that will validate only USD specific stuff, not just presence of the 3ds max plugin. It is similar to BGEO in Houdini. There are two ways to handle this, all with their caveats:

Way of the plugin attributes That is the current way. When adding new plugin, it would have to have model family, but additionaly some check to determine if the Extract USD is enabled or not. Or you would have that on the model creator itself and those additional plugins would have to check it manually against the instance.

The Way of the Families Attribute Extract USD will move to the creator. Creator (or new collector) will add family USD to instance and the validator will run only on usd family.

I vote for the latter.