-
Notifications
You must be signed in to change notification settings - Fork 37
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 contribution: Set up different default values based on profiles #973
Draft
BigRoy
wants to merge
6
commits into
ynput:develop
Choose a base branch
from
BigRoy:enhancement/attributes_by_families
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+63
−34
Draft
Changes from 8 commits
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
8208bef
Allow to target not only `productType` by default with attributes, bu…
BigRoy 1790f07
Draft to set defaults using `profiles`
BigRoy f7528cd
Merge branch 'develop' into enhancement/attributes_by_families
BigRoy 0d5510a
Merge branch 'develop' of https://github.com/ynput/ayon-core into enh…
BigRoy c427f48
Merge branch 'develop' into enhancement/attributes_by_families
BigRoy 6bc6af2
Merge branch 'develop' into enhancement/attributes_by_families
BigRoy File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To be honest I don't agree with this change. I still think we should not use
families
during create phase, but other data driven workflow. Either it would beis_usd: True
on instance data or more complex structure, but it should be usd specific so it can be targeted and deterministic, with possibly more information, instead of arbitrary list of strings.Example data on instance
If the values would not change during create phase and would be read only, they could be in transient data so we don't overfill stored data to scene.
This is my personal opinion, maybe caused by me not having full view into the issue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Honestly - most of these things I'm explaining here should also 1:1 define whether the plug-in should process the instance. Hence assigning families as tag is the way to go. But yes, there will be edge case where we may want to act on specific metadata and more complex values - but I'd say that's WAY harder to track in consistency, especially across multiple addon repositories instead of just checking "does it have this tag".
However, I just want to state that I'd like to PREFIX all these families, e.g.
traits/reviewable
ortraits/frame_range
ornode/AlembicROP
or whatever to differentiate clearly from the families that are intended as a product type. Also, because it allows us to transition smoother from the legacy system over time.Also wanted to link this Community topic where I mentioned families versus product type as well: https://community.ynput.io/t/difference-between-family-and-product-type/1923
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Be carefull about traits, as that will be new concept in representations, it might be confusin to mix those.
BTW does trait in this case make sense? Shouldn't be traits defined based on set up attributes instead of set up attributes based on traits?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The idea is indeed that traits and attributes would be intertwined - in some case a toggle may enable/disable a trait, but to me that's essentially the same case with these families. A creator attribute may add/remove such a 'family'. But yes, whether traits is the best name for it I'm not sure. I just used it because it clarified the subject since there's huge overlap in that area (a much better overlap than "product type" is)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Like I've said, traits are dangerous, if you want to use
families
then use families, and don't call families traits.BTW if there are families used only during create phase then I have another argument why not use
families
. Wouldn't make sense to addusdTraits
instead offamilies
to the instance data? So it is clear it is related to USD?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The concept I'm trying to portray is that this is not USD specific - the concept expands beyond that and is completely embedded into ayon. E.g. being able to target an instance to be
farm
compatible, or something to have aframerange
or alike so that we can have a generic frame range validation (or something of the sort). The forum post I linked explains that well.I understand your point regarding "traits" and the potential confusion. All I really mean to say is that I really want to differentiate from what 'families' are actually about.
I'd really hate these scattered attributes appearing:
Using e.g.
file/usd
as a family may at least set a standard so that whenever we target something to a filetype, that we prefix at such. So that whenever you seefile/fbx
you know what it's doing and that it is a file type being referred to. Personally I'd even likeproducttype/review
(although bit lengthy) but it's way clearer that "review" family is being targeted based on a product type as opposed to some other scattered data.Anyway, I've requested a discussion/call this week to discuss this more in-depth. Would be good to have you there too! :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did you discuss the concept with anyone else before?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I discussed it with Milan - but more as "my proposal". And I mentioned it to Dee and Ondrej last week in a meeting. But mostly from the perspective that we should discuss this in a brainstorm - which I believe current indicative planning is Thursday morning. So this is indeed "to be discussed"
Also want to mention that to me @MustafaJafar 's PR mentioned here #973 (comment) shows the issue at hand. It's a good fix, but now suddenly we've flooded
families
withopengl
andreview
- not knowing which refers to a product type, which refers to targeting a rop node in houdini, etc. Preferably we 'tag' that clearer so its absolutely obvious from reading the code - which could e.g. also berop/opengl
orrop.opengl
.