Maya: abc options for Pointcache/Animation family - OP-5920
Changelog Description
Add all options for alembic extraction on pointcache and animation families.
Testing notes:
- Create pointcache and/or animation (by loading a rig) in Maya
- Experiment with different publishing options.
Dependencies:
#5297 #5303
Are we sure about exposing ALL of this to the artist? I believe @mkolar recommended against this some time ago?
Its been requested by a client.
Additionally, I'd say this effort is better spent doing this against the new publisher too since this will basically break / be lost once that's merged.
I agree, but I dont think we can wait for the merge of the new publisher.
It's also backwards incompatible. I care less about existing project settings (an admin can fix that once) but all legacy instances using the old attribute names for write_color_sets or the other legacy attributes will now use the new name and lose their original (possibly tweaked) value of that scene for that option.
I understood from @antirotor that there's a big push to get maya on the new publisher for OP 3.16 so it might be coming soon too?
It's also backwards incompatible. I care less about existing project settings (an admin can fix that once) but all legacy instances using the old attribute names for write_color_sets or the other legacy attributes will now use the new name and lose their original (possibly tweaked) value of that scene for that option.
Cool, we can account for that.
Gives me errors for both animation and pointcache instances during publish
@LiborBatek could you run it again and post what the second logging call is? Starts with {"selection"...
Ok I hope this one will help you out more
here is pointcache params too (basically untouched)
and its content in Outliner
// pyblish.ExtractThumbnailFromSource : Thumbnail source not filled. Skipping.
b'Processing Extract Pointcache (Alembic)'
# INFO - Extracting pointcache..
// pyblish.ExtractAlembic : Extracting pointcache..
# INFO - {'selection': True, 'eulerFilter': True, 'noNormals': False, 'preRoll': False, 'renderableOnly': False, 'uvWrite': True, 'writeColorSets': False, 'writeFaceSets': False, 'wholeFrameGeo': False, 'worldSpace': True, 'writeVisibility': True, 'writeUVSets': True, 'writeCreases': False, 'dataFormat': 'ogawa', 'step': 1.0, 'stripNamespaces': True, 'verbose': False, 'preRollStartFrame': 0}
// pyblish.ExtractAlembic : {'selection': True, 'eulerFilter': True, 'noNormals': False, 'preRoll': False, 'renderableOnly': False, 'uvWrite': True, 'writeColorSets': False, 'writeFaceSets': False, 'wholeFrameGeo': False, 'worldSpace': True, 'writeVisibility': True, 'writeUVSets': True, 'writeCreases': False, 'dataFormat': 'ogawa', 'step': 1.0, 'stripNamespaces': True, 'verbose': False, 'preRollStartFrame': 0}
# DEBUG - ['|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:Rt_shoe', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:hairGEO', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:Lf_eye', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:button|rayman_rigMain_01_:buttonShape', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:NailsGEO', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:innerMouth', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:Rt_shoe|rayman_rigMain_01_:Rt_shoeShape', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:innerMouth|rayman_rigMain_01_:innerMouthShape', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:teethLower|rayman_rigMain_01_:teethLowerShape', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:hairGEO|rayman_rigMain_01_:hairGEOShape', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:RayGEO|rayman_rigMain_01_:RayGEOShape', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:NailsGEO|rayman_rigMain_01_:NailsGEOShape', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:Rt_eye', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:EyeLashes|rayman_rigMain_01_:EyeLashesShape', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:Lf_eye|rayman_rigMain_01_:Lf_eyeShape', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:RayGEO', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:button', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:BrowGEO', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:teethUpper|rayman_rigMain_01_:teethUpperShape', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:teethLower', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:Lf_shoe|rayman_rigMain_01_:Lf_shoeShape', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:EyeLashes', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:GroomGEO|rayman_rigMain_01_:GroomGEOShape', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:GroomGEO', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:teethUpper', 'pointcacheMain_proxy_SET', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:BrowGEO|rayman_rigMain_01_:BrowGEOShape', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:Lf_shoe', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:Rt_eye|rayman_rigMain_01_:Rt_eyeShape']
// pyblish.ExtractAlembic : ['|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:Rt_shoe', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:hairGEO', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:Lf_eye', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:button|rayman_rigMain_01_:buttonShape', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:NailsGEO', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:innerMouth', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:Rt_shoe|rayman_rigMain_01_:Rt_shoeShape', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:innerMouth|rayman_rigMain_01_:innerMouthShape', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:teethLower|rayman_rigMain_01_:teethLowerShape', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:hairGEO|rayman_rigMain_01_:hairGEOShape', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:RayGEO|rayman_rigMain_01_:RayGEOShape', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:NailsGEO|rayman_rigMain_01_:NailsGEOShape', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:Rt_eye', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:EyeLashes|rayman_rigMain_01_:EyeLashesShape', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:Lf_eye|rayman_rigMain_01_:Lf_eyeShape', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:RayGEO', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:button', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:BrowGEO', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:teethUpper|rayman_rigMain_01_:teethUpperShape', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:teethLower', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:Lf_shoe|rayman_rigMain_01_:Lf_shoeShape', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:EyeLashes', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:GroomGEO|rayman_rigMain_01_:GroomGEOShape', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:GroomGEO', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:teethUpper', 'pointcacheMain_proxy_SET', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:BrowGEO|rayman_rigMain_01_:BrowGEOShape', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:Lf_shoe', '|rayman_rigMain_01_:_GRP|rayman_rigMain_01_:ray|rayman_rigMain_01_:ray_DO_NOT_TOUCH|rayman_rigMain_01_:ray_geometry|rayman_rigMain_01_:Rt_eye|rayman_rigMain_01_:Rt_eyeShape']
# # ERROR - Traceback (most recent call last):
# File "D:\REPO\OpenPype\.venv\lib\site-packages\pyblish\plugin.py", line 522, in __explicit_process
# runner(*args)
# File "D:\REPO\OpenPype\openpype\hosts\maya\plugins\publish\extract_pointcache.py", line 99, in process
# File "D:\REPO\OpenPype\openpype\hosts\maya\api\lib.py", line 1276, in extract_alembic
# raise TypeError("Alembic option unsupported type: "
# TypeError: Alembic option unsupported type: None (expected (<class 'list'>, <class 'tuple'>))
# Traceback (most recent call last):
# File "D:\REPO\OpenPype\.venv\lib\site-packages\pyblish\plugin.py", line 522, in __explicit_process
# runner(*args)
# File "<string>", line 99, in process
# File "D:\REPO\OpenPype\openpype\hosts\maya\api\lib.py", line 1276, in extract_alembic
# raise TypeError("Alembic option unsupported type: "
TypeError: Alembic option unsupported type: None (expected (<class 'list'>, <class 'tuple'>))
// Error: pyblish.plugin : Traceback (most recent call last):
// File "D:\REPO\OpenPype\.venv\lib\site-packages\pyblish\plugin.py", line 522, in __explicit_process
// runner(*args)
// File "D:\REPO\OpenPype\openpype\hosts\maya\plugins\publish\extract_pointcache.py", line 99, in process
// File "D:\REPO\OpenPype\openpype\hosts\maya\api\lib.py", line 1276, in extract_alembic
// raise TypeError("Alembic option unsupported type: "
// TypeError: Alembic option unsupported type: None (expected (<class 'list'>, <class 'tuple'>))
// Traceback (most recent call last):
// File "D:\REPO\OpenPype\.venv\lib\site-packages\pyblish\plugin.py", line 522, in __explicit_process
// runner(*args)
// File "<string>", line 99, in process
// File "D:\REPO\OpenPype\openpype\hosts\maya\api\lib.py", line 1276, in extract_alembic
// raise TypeError("Alembic option unsupported type: "
// TypeError: Alembic option unsupported type: None (expected (<class 'list'>, <class 'tuple'>))
b'Processing Transcode color spaces'
# DEBUG - No profiles present for color transcode
// pyblish.ExtractOIIOTranscode : No profiles present for color transcode
b'Processing Transcode color spaces'
# DEBUG - No profiles present for color transcode
// pyblish.ExtractOIIOTranscode : No profiles present for color transcode
b'Processing Extract Colorspace data'
# INFO - No representations at instance : `pointcacheMain`
// pyblish.ExtractColorspaceData : No representations at instance : `pointcacheMain`
b'Processing Extract Colorspace data'
# DEBUG - __ ext: `ma`
// pyblish.ExtractColorspaceData : __ ext: `ma`
# DEBUG - Extension 'ma' is not in allowed extensions.
// pyblish.ExtractColorspaceData : Extension 'ma' is not in allowed extensions.
@LiborBatek try again now. Should be fixed.
Did another test go but the outcome is pretty much the same. I took special care to checkout and Pull the PR precisely, also changed the workfile scene / shot and recreated the pointcache instance from scratch.
Also tested on different geometries....
@LiborBatek could you try once more?
@BigRoy what do you think of the code?
@BigRoy I've revised how we expose the attributes to the user, where we can enable attributes to expose along with studio defaults for those attributes. Before I continue with this solution, could you look at the animation family part of this PR and let me know if you think this will work?
@BigRoy I've revised how the settings are exposed to the studio admin from the conversation here. While doing it, I found imprinting all the settings attributes on the object set to work better, but instead of exposing the user to the attributes through the channelbox, we hide them and also lock the attributes. This would make the attributes available in a pinch but the user will need to go out of their way (attribute editor and unlock) to edit the values.
@BigRoy also I've not completed the PR yet, as I wanted feedback on the direction of the animation family first.
@BigRoy when you get a chance, could you review the approach for the animation family?
I've opted for always imprinting all attributes, but hiding (from channelbox) and locking disabled attributes in a post_imprint class method. Think it'll cover what we want, as the exposed (in channelbox and unlocked) attributes are backwards compatible.
@BigRoy could you have another look at this now?
@tokejepsen should there be more of those attribs? or as they are shown on preceding scrngrabs?
@tokejepsen should there be more of those attribs? or as they are shown on preceding scrngrabs?
You can choose which ones you expose to the artist in the settings, these are just there by default
Just wanted to say about the screenshot in this comment that Start frame for preroll is an odd label. Is it the case that if you put in 5 there that it prerolls FROM frame 5 to the start frame because that how it reads/sounds.
To me Preroll before start frame or just Preroll frames would make more sense as a setting but as seen in my comment here maybe this is just how Alembic export was designed and it is actually intended to actually start all the way from frame five up to the start frame. Which I suppose for simulations make sense in a way.
How about relabeling them:
- Use preroll start frame
- Preroll Start Frame
Also, the tooltip can elaborate on how they work in more detail.
Have we considered maybe moving some of these settings from the Creator to the Extractor as get_attribute_defs? Mostly because some of the attributes are so linked to the Alembic extractor even though Animation family might just as well output e.g. USD files?
Have we considered maybe moving some of these settings from the Creator to the Extractor as
get_attribute_defs? Mostly because some of the attributes are so linked to the Alembic extractor even though Animation family might just as well output e.g. USD files?
That could be one of the solutions. Knowing that there are so many just on/off options as far as I see, maybe it is a good idea if we can put these attributes into EnumDef with multi-selections? Once the users choose the attributes in the settings, these would be set to True and being added into the playblast options. Something done similarly in tycache ticket in Max too where the tycache attributes selected and they would be part of the channel data to be exported with the caches. https://github.com/ynput/OpenPype/blob/9c7ce75eea842ed60e53b70ba89a466c10049116/openpype/hosts/max/plugins/publish/collect_tycache_attributes.py#L63-L67
Have we considered maybe moving some of these settings from the Creator to the Extractor as get_attribute_defs? Mostly because some of the attributes are so linked to the Alembic extractor even though Animation family might just as well output e.g. USD files?
This absolutely needs to be the case. Those options are not animation specific, they are alembic specific and so should be extractor provided.
maybe it is a good idea if we can put these attributes into EnumDef with multi-selections?
That's also the only way I see this being at least half reasonable to not overwhelm the artist completely. To be honest this is one where we need to go back to the requester and try to convince them it's not a great idea. It completely beats the purpose on consistent publishes and just duplicates what maya does out of the box at the end of the day. If there is such and edge case that I need to be explicit with these settings per product, then the problem might be somewhere else actually
Hey everyone,
I pushed some changes more in line with the latest comments on the PR: Screencast from 2023-11-13 18-00-52 (trimmed).webm
I'm in the process of figuring out why now the CreateAnimation doesn't show the alembic settings even tho they are defined (and have defaults) in the json(s), any clue as to why is most welcome.
The "Alembic Editable Flags" setting allows the person to select all the attributes that are editable but the person publishing, if they are a boolean they will be available in the "Alembic Export Flags" multi select (that's why the list is shorter in the publish view); any other type will be added below and disabled if not allowed to edit.
Please bear with me while I figure out the rest.
So I finally got it to a working state; could you take it for a spin @LiborBatek ?
I removed some no longer needed keys from the settings, let me know if its bes to keep them around as "deprecated"; but most of them are now in the EnumDef, and correcly passed to the extract_alembic;
next up is: a) Ensure we reset attributes to default in case they become non overrideable later on. b) Look into moving these settings into the Extractor; c) Recreate settings for ayon
I did tested and I can see the refactored settings for both animation and pointcache in OP Settings and
also on pointcache instance (I suppose for animation family its not exposed in maya publisher as before)
but when succesfully Published I have just got pointcache product and not animation.
So it seems broken when speaking of animation publish.
I also enclosing my full JSON log file as attachement...for u to check.
Thanks for testing it @LiborBatek , the animation not showing was a mistake on my part... so please take it for a spin again when you can!
In the last commits I implemented the logic that if an attribute becomes non override-able, we make sure to set it's value to the defaults instead of what the person might have set it in a previous state when it was override-able.
Added AYON settings, I think moving things to the Extractor should be treated as it's own PR since it will trigger changes in more publisers.
If everyone agrees, and code is approved, we could merge this one as is.
I tired to test it on AYON + Maya but the settings do not seem to show in the Publisher, they do show in the backend tho.
@Minkiu could we resolve Libor's issue?
I pushed a fix, I believe I deleted my maya install (container) so will take a bit till I can test it myself.
Feel free to give it a go @LiborBatek
Spin it for another test and that error no longer being present, but when closing the Publish window there remains another error msg: (update> This error also pops up when trying to Publish the pointcache)
Another issue I guess being some publish instance' s options arent propagated from OP Settings?!
Here are also my OP Settings for pointcache and its Alembic Arguments Overrides
Not sure if an issue but I cant choose most of them from the list when inspecting pointcache publish instance' s options
From those OP Settings just Write FaceSets being listed and not the rest of the arguments.
Thanks for bearing with me @LiborBatek , it should now be fixed, whenever you have a sec give it another go please