Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

USD ROP allow remapping explicit layer save paths to be remapped to AYON Entity URI #80

Merged

Conversation

BigRoy
Copy link
Contributor

@BigRoy BigRoy commented Aug 27, 2024

Changelog Description

Allow remapping to AYON Entity URI instead of resolved publish filepath for layer save paths directly written out from the USD ROP that also turn into their own publishable instance.

Additional info

Testing notes:

Enable Extract USD attribute use_ayon_entity_uri in settings.

  1. Create a Solaris stage that generates an additional layer save path (explicit layer save path)
  2. This layer save path will introduce an additional publish instance.
  3. With the setting enabled that instance should be remapped to an AYON Entity URI
  4. With the setting disabled that instance should be remapped to the resolved publish path (same as before this PR)

*When using Merge LOP to merge multiple explicit layer save paths (e.g. separate SOP imports with explicit layer save paths) keep in mind that Merge LOP default merge mode "Simple merge" will discard them. More details, see here

Due to a limitation of the Publisher UI the attribute definitions for the `usdrop` family won't be shown in the Publisher UI. The Publisher UI only shows attribute definitions for the main primary product type, not for the other "families" on the Created Instance. Because `usd` is the primary product type, and not `usdrop` the attributes would never show.
@BigRoy BigRoy added the type: enhancement Improvement of existing functionality or minor addition label Aug 27, 2024
@BigRoy BigRoy self-assigned this Aug 27, 2024
Copy link

@Lypsolon Lypsolon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

im not sure what is happening but it dose not create the output i would have expected.

i belive its only extracting 1 of the explicit save paths

here is an image to what i see not sure how i would test or debug things here.
Screenshot from 2024-08-29 14-40-50

@BigRoy
Copy link
Contributor Author

BigRoy commented Aug 29, 2024

im not sure what is happening but it dose not create the output i would have expected.

i belive its only extracting 1 of the explicit save paths

here is an image to what i see not sure how i would test or debug things here. Screenshot from 2024-08-29 14-40-50

What a test! :) Can you share a scene file?

@Lypsolon
Copy link

im not sure what is happening but it dose not create the output i would have expected.
i belive its only extracting 1 of the explicit save paths
here is an image to what i see not sure how i would test or debug things here. Screenshot from 2024-08-29 14-40-50

What a test! :) Can you share a scene file?

here is the scene used for testing.

but i will also say i dont think this is part of the current USD epic so im gonna postpone further testing for the next epic.

UB_ep2_layout_v002.zip

@BigRoy BigRoy marked this pull request as draft September 5, 2024 15:04
Copy link
Contributor

@MustafaJafar MustafaJafar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here you are some test runs..
I don't have the resolver yet, but I can at least validate if the PR works as expected.

No idea if the URI is correct or not. But, I'll assume it's correct.

So, I loaded few published products using different loaders.
here you are the different URIs I got:

  • ayon+entity://Robo/Assets/Character/moco&product=usdSphere&version=v006&representation=usd
    image

  • ayon+entity://Robo/Assets/Character/moco&product=usdAsset_model&version=v005&representation=usd
    image


Another test, I used all the loaders to load the exact same asset:
They all point to my usdSphere mentioned at the top.
image
image
image
image
image

…enhancement/usd_rop_save_layers_entity_uri

# Conflicts:
#	server/settings/publish.py
@BigRoy
Copy link
Contributor Author

BigRoy commented Sep 20, 2024

@MustafaJafar your specific test run confirms the loading, but not this PRs saving of explicit layer save paths and embedding that in the published USD file.


@Lypsolon I've checked your scene files just now - and your scene actually behaves correctly. It saves only one explicit layer save path. This is due to the MERGE node.

See here:
image

At the merge, there's only one layer still in my Scene Graph Layers. This is due to the default being a "Simple merge".
When I change the merge style:

image

Then I get this:
image

That's when the publisher should pick that up.
image

So I'd say - please test again with that knowledge.

@BigRoy BigRoy marked this pull request as ready for review September 20, 2024 05:38
@Lypsolon
Copy link

ahh sorry rucky mistake i will test again.
the merge node is getting me every now and then.

Copy link

@Lypsolon Lypsolon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

after fixing the merge settings (Roocky mistake)
it now works.
Tested on Houdin 20.0 Almalinux 9 with 200Explicit Save Paths

@Lypsolon
Copy link

One small note.
something is printing the following

>>> We have preset for LOPLoadAssetLoader
  - setting `use_ayon_entity_uri`: `True`
>>> We have preset for LOPLoadShotLoader
  - setting `use_ayon_entity_uri`: `True`
>>> We have preset for USDSublayerLoader
  - setting `use_ayon_entity_uri`: `True`
>>> We have preset for USDReferenceLoader
  - setting `use_ayon_entity_uri`: `True`
>>> We have preset for SopUsdImportLoader
  - setting `use_ayon_entity_uri`: `True`

@BigRoy
Copy link
Contributor Author

BigRoy commented Sep 23, 2024

One small note. something is printing the following

>>> We have preset for LOPLoadAssetLoader
  - setting `use_ayon_entity_uri`: `True`
>>> We have preset for LOPLoadShotLoader
  - setting `use_ayon_entity_uri`: `True`
>>> We have preset for USDSublayerLoader
  - setting `use_ayon_entity_uri`: `True`
>>> We have preset for USDReferenceLoader
  - setting `use_ayon_entity_uri`: `True`
>>> We have preset for SopUsdImportLoader
  - setting `use_ayon_entity_uri`: `True`

Correct - this is the discovery of the plugins in the Create Context and how it applies the project settings. It's verbose yes - but shouldn't be an issue for now.

@BigRoy BigRoy merged commit c3ab366 into ynput:develop Sep 23, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: enhancement Improvement of existing functionality or minor addition
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants