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

Maya: abc options for Pointcache/Animation family - AY-970 #336

Merged
Merged
Show file tree
Hide file tree
Changes from 224 commits
Commits
Show all changes
236 commits
Select commit Hold shift + click to select a range
e19e7e1
initial working version of abc options.
tokejepsen Jun 21, 2023
d87e64e
Docs
tokejepsen Jun 22, 2023
c07729d
Hound
tokejepsen Jun 22, 2023
e4a7641
Backwards compatibility attributes.
tokejepsen Jun 22, 2023
cda9089
Debug logging
tokejepsen Jun 22, 2023
1a5201a
Remove redundant code.
tokejepsen Jun 22, 2023
0342870
Failsafe
tokejepsen Jun 22, 2023
fab76c6
Ensure includeUserDefinedAttributes gets correct value
tokejepsen Jun 22, 2023
9923328
Update openpype/hosts/maya/plugins/publish/collect_pointcache.py
tokejepsen Jun 23, 2023
b601aa6
Hound
tokejepsen Jun 23, 2023
b63f5c5
Ensure list arguments are valid
tokejepsen Jun 28, 2023
e722fbe
BigRoy feedback
tokejepsen Jun 28, 2023
38be2be
Fix list arguments.
tokejepsen Jul 3, 2023
5aa5215
Working animation family
tokejepsen Jul 4, 2023
2f8dafd
Hound
tokejepsen Jul 4, 2023
e447e6a
Initial working animation family
tokejepsen Jul 6, 2023
db3dac4
Merge branch 'develop' into enhancement/OP-5920_abc-options-for-Point…
tokejepsen Jul 13, 2023
9ac4017
Working pointcache
tokejepsen Jul 14, 2023
c1e771b
Revert post_imprint
tokejepsen Jul 14, 2023
9887035
Combine CreateAnimation and CreatePointCache
tokejepsen Jul 14, 2023
711fe5d
Merge branch 'develop' into enhancement/OP-5920_abc-options-for-Point…
tokejepsen Aug 22, 2023
eafe2d0
Working merge of develop
tokejepsen Aug 22, 2023
7d1f009
Working hidden animation creator
tokejepsen Aug 22, 2023
d8ee0a6
Merge branch 'develop' into enhancement/OP-5920_abc-options-for-Point…
tokejepsen Aug 22, 2023
178f184
Merge branch 'develop' into enhancement/OP-5920_abc-options-for-Point…
tokejepsen Sep 1, 2023
fcf1c1e
Fix writeNormals
tokejepsen Sep 1, 2023
ee8b230
Remove redundant code.
tokejepsen Sep 1, 2023
de5c1ce
Add tooltip to preRollStartFrame
tokejepsen Sep 1, 2023
af6f157
Merge branch 'develop' into enhancement/OP-5920_abc-options-for-Point…
tokejepsen Sep 18, 2023
7f152b9
Sync with develop plugin.py
tokejepsen Sep 18, 2023
99f7191
Merge origin/develop
Minkiu Nov 13, 2023
bb8b4c1
`maya` Define Alembic attributes as enums
Minkiu Nov 13, 2023
14fc3ab
`maya` Display Alembic settings for Animation
Minkiu Nov 14, 2023
f4be711
`maya.api.alembic` Move all the Alembic methods into it's own
Minkiu Nov 14, 2023
38a3ea4
`maya.api.alembic` Alphabetically order arguments
Minkiu Nov 14, 2023
6363064
`maya` Rename Alemebic settings, update `pointcache` creator
Minkiu Nov 14, 2023
3a14c8e
`maya.publish.pointcache` Use the `api.alembic` instead of `lib`
Minkiu Nov 14, 2023
33784f7
`maya.api.alembic` Fix missing `cmds` import
Minkiu Nov 15, 2023
fca2442
`maya.plugin.pointcache` Rework settings names
Minkiu Nov 15, 2023
608c7eb
`maya.extract_pointcache` Adapt to new settings
Minkiu Nov 15, 2023
2427477
Merge branch 'develop' into enhancement/OP-5920_abc-options-for-Point…
Minkiu Nov 15, 2023
70e4883
`maya.api.alembic` Fix missing imports
Minkiu Nov 15, 2023
c379e7f
`maya.create_animation_pointcache` Fix publisher widgets population
Minkiu Nov 15, 2023
b0ab45b
Merge remote-tracking branch 'origin/develop' into enhancement/OP-592…
Minkiu Nov 20, 2023
e700f28
`maya.publish.pointcache` Log out the Alembic argumetns used.
Minkiu Nov 20, 2023
5935ef5
`maya.create_animation_pointcache` Ensure we set defaults
Minkiu Nov 20, 2023
326c210
`schemas.maya.create` Remove `stripNameSpaces` setting
Minkiu Nov 21, 2023
ca7998e
`maya.settings` Add AYON settings for Animation and PointCache
Minkiu Nov 21, 2023
0e905f3
`maya` Fix faulty logic in pointcache creator
Minkiu Dec 12, 2023
cd26a89
Merge branch 'develop' into enhancement/OP-5920_abc-options-for-Point…
Minkiu Dec 12, 2023
f2f8345
`maya.create_animation_pointcache` Ensure there are `maya_cached_subs…
Minkiu Jan 4, 2024
e0e2cb0
Slate support, duration fix, fps fix
Jan 12, 2024
5e309d0
hound
Jan 12, 2024
f6b2b00
Swapping version
Jan 12, 2024
dbe0b9c
revert to conditional handles trim
Jan 12, 2024
749b3b4
`maya.create_animation_pointcache` Fix `_ensure_defaults` logic
Minkiu Jan 15, 2024
afc7967
`maya.creat_pointcache` Fix boolean arguments not being correctly par…
Minkiu Jan 15, 2024
a9fbb68
Merge branch 'develop' into enhancement/OP-5920_abc-options-for-Point…
Minkiu Jan 31, 2024
97e8ccd
`server_addons.maya` Fix creator settings using legacy `Field`
Minkiu Jan 31, 2024
8c999fb
`server_addons.maya` Fix creator settings using legacy `Field`
Minkiu Jan 31, 2024
8e284aa
`settings.maya` Rename Alembic settings
Minkiu Jan 31, 2024
2652397
`maya.plugins.pointcache` Fix togglable flags defaults and adapt to n…
Minkiu Jan 31, 2024
76a6e2e
`maya.plugins` Fix create pointcache and apply format
Minkiu Jan 31, 2024
534bc82
`server_addons.maya.settings` fix missing `Literal` type in creators
Minkiu Feb 1, 2024
43bbf5a
`server_addons.maya.settings` Fix missing `creator` defaults
Minkiu Feb 1, 2024
d64eb3c
refactor: replaced legacy function
r42-jack Feb 1, 2024
895ca1b
feat: implemented new work_file_has_unsaved_changes function on host …
r42-jack Feb 1, 2024
14baeb6
feat: added line to restore menu to 3dsmax default
r42-jack Feb 1, 2024
4999550
fix: hound
r42-jack Feb 1, 2024
87b3d7f
`hosts.maya.create` Ensure we get a `set` in `abc_args_overrides` in …
Minkiu Feb 1, 2024
be70b52
fix: comment using wrong syntax
Sponge96 Feb 2, 2024
f83d0f9
AYON menu would be registered when the workspace has been changed
moonyuet Feb 6, 2024
d502a26
Update CONTRIBUTING.md
mkolar Feb 8, 2024
39f3f77
Update CONTRIBUTING.md
mkolar Feb 8, 2024
f2add8f
Update CONTRIBUTING.md
mkolar Feb 8, 2024
36ae8ad
Merge pull request #6210 from ynput/mkolar-patch-1
mkolar Feb 8, 2024
91917f2
Update README.md
mkolar Feb 8, 2024
4edd103
Merge branch 'develop' into bugfix/OP-7973_camera-product-type-loaded…
jakubjezek001 Feb 9, 2024
e2f447e
Merge pull request #6184 from ynput/bugfix/OP-7973_camera-product-typ…
jakubjezek001 Feb 9, 2024
5c52626
Merge pull request #6183 from ynput/bugfix/OP-8088_validate-write-nod…
jakubjezek001 Feb 9, 2024
f17588b
Fix getting non-existent settings
tokejepsen Feb 9, 2024
f49781a
fix: typo in class function
Sponge96 Feb 9, 2024
b6653fc
Merge branch 'develop' into max_tweaks
Sponge96 Feb 9, 2024
f60857e
Merge pull request #6211 from ynput/bugfix/OP-8164_expose-knobs-backw…
jakubjezek001 Feb 9, 2024
960de70
OP-8165 - fix AE local render doesnt push thumbnail to Ftrack (#6212)
kalisp Feb 9, 2024
20e12d6
Fix exposed knobs validator
tokejepsen Feb 9, 2024
7c45c6c
Merge pull request #6213 from ynput/bugfix/OP-8166_openpype-expose-kn…
64qam Feb 9, 2024
1602fa0
Merge pull request #6200 from ynput/bugfix/OP-8112_AYONOP-menu-disapp…
mkolar Feb 9, 2024
7887db3
[Automated] Merged develop into main
ynbot Feb 10, 2024
0e58b3e
[Automated] Bump version
ynbot Feb 10, 2024
7bc94ee
[Automated] Merged main into develop
ynbot Feb 10, 2024
ecaf8a6
chore(): update bug report / version
github-actions[bot] Feb 10, 2024
cf4bb19
enhancement/OP-7723_hidden_jonts_validator
Feb 11, 2024
7f040bd
enhancement/OP-7723_hidden_jonts_validator
Feb 11, 2024
aecbfa7
Merge pull request #6197 from ynput/enhancement/OP-8103_thumbnail_sub…
mkolar Feb 12, 2024
efef1ff
Merge branch 'develop' into enhancement/OP-7723_hidden_jonts_validator
bradenjennings Feb 12, 2024
ca71b9d
Merge pull request #5837 from BigRoy/chore/maya_shelf_build_cleanup
mkolar Feb 13, 2024
7040ae0
Merge pull request #6214 from ynput/enhancement/OP-7723_hidden_jonts_…
mkolar Feb 13, 2024
acc88a7
Merge branch 'develop' into bugfix/resolve_swapping_versions_fix_offset
jakubjezek001 Feb 13, 2024
65a32ec
Merge pull request #6128 from jrsndl/bugfix/resolve_swapping_versions…
jakubjezek001 Feb 13, 2024
6e74399
[Automated] Merged develop into main
ynbot Feb 14, 2024
858a903
[Automated] Bump version
ynbot Feb 14, 2024
ed2de3f
[Automated] Merged main into develop
ynbot Feb 14, 2024
b15643e
chore(): update bug report / version
github-actions[bot] Feb 14, 2024
93e84b3
Merge branch 'develop' into max_tweaks
Sponge96 Feb 14, 2024
bcd2169
Cast aov_list to set to improve performance
simonebarbieri Feb 14, 2024
6002da8
Added an option to disable composite output
simonebarbieri Feb 14, 2024
e020ca7
Merge pull request #6186 from Sponge96/max_tweaks
moonyuet Feb 14, 2024
ea00109
Expose families transfer setting.
tokejepsen Feb 16, 2024
3520f5c
Add AVALON_DB to Deadline submissions
tokejepsen Feb 16, 2024
89d69f7
Remove redundant instance_skeleton_data code.
tokejepsen Feb 16, 2024
b6f152a
[Automated] Merged develop into main
ynbot Feb 17, 2024
9d612e1
[Automated] Bump version
ynbot Feb 17, 2024
490c332
[Automated] Merged main into develop
ynbot Feb 17, 2024
6657b84
chore(): update bug report / version
github-actions[bot] Feb 17, 2024
6aa534d
fix value lowering in postlaunch hook
iLLiCiTiT Feb 19, 2024
3ad9320
Merge pull request #6221 from ynput/bugfix/ftrack-status-mapping-fix
iLLiCiTiT Feb 19, 2024
1b5d52b
Merge branch 'develop' into enhancement/OP-7120-blender_output-node-exr
LiborBatek Feb 20, 2024
14e8421
Merge pull request #6219 from ynput/chore/OP-8269_Clean-up-Submit-Pub…
iLLiCiTiT Feb 20, 2024
e1f5bdb
Removed redundant option in aov list
simonebarbieri Feb 20, 2024
a52a58d
Merge branch 'develop' into enhancement/OP-7120-blender_output-node-exr
LiborBatek Feb 20, 2024
1091a14
Merge pull request #6086 from ynput/enhancement/OP-7120-blender_outpu…
LiborBatek Feb 20, 2024
7caf3fc
[Automated] Merged develop into main
ynbot Feb 20, 2024
b0499ed
[Automated] Release
ynbot Feb 20, 2024
eb170e7
[Automated] Merged release main into develop
ynbot Feb 20, 2024
f06658a
chore(): update bug report / version
github-actions[bot] Feb 20, 2024
698e5db
Working version of attributes on extractor
tokejepsen Feb 20, 2024
4e8ea03
Tidy up changes.
tokejepsen Feb 20, 2024
70982d9
Backwards compatibility wip
tokejepsen Feb 20, 2024
fe5c93a
[Automated] Merged develop into main
ynbot Feb 21, 2024
7ea09ac
[Automated] Bump version
ynbot Feb 21, 2024
f71b285
[Automated] Merged main into develop
ynbot Feb 21, 2024
51026fb
chore(): update bug report / version
github-actions[bot] Feb 21, 2024
64b366c
Backwards compatibility
tokejepsen Feb 21, 2024
05dd980
Revert AYON settings
tokejepsen Feb 21, 2024
c123e83
revert ayon settings
tokejepsen Feb 21, 2024
9a6bb10
Merge branch 'develop' into enhancement/OP-8268_AOV-filter-for-Ftrack…
moonyuet Feb 22, 2024
4c810af
Merge pull request #6217 from ynput/enhancement/OP-8268_AOV-filter-fo…
moonyuet Feb 22, 2024
8fee7b5
Merge branch 'develop' into enhancement/OP-5920_abc-options-for-Point…
LiborBatek Feb 22, 2024
1f1d7c3
Missing writeNormals flag
tokejepsen Feb 22, 2024
669e0a7
Add OP settings and convert in plugin
tokejepsen Feb 22, 2024
10ec40b
Merge pull request #6110 from ynput/enhancement/OP-7075_Validate-Came…
mkolar Feb 22, 2024
81c6572
Use folderpath when collecting the render instance
simonebarbieri Feb 23, 2024
cb0d705
Merge branch 'develop' into bugfix/OP-8270_Fix-Deadline-environments-…
tokejepsen Feb 26, 2024
d47b066
Merge pull request #6218 from ynput/bugfix/OP-8270_Fix-Deadline-envir…
mkolar Feb 26, 2024
7b47321
Merge pull request #6233 from ynput/bugfix/OP-8348-unreal_render_inst…
simonebarbieri Feb 26, 2024
242ea77
Merge branch 'develop' into enhancement/OP-5920_abc-options-for-Point…
LiborBatek Feb 26, 2024
1dcdb31
Pass correct arguments to function.
JoseCaraballoOS Feb 26, 2024
98deab1
Fix line length.
JoseCaraballoOS Feb 26, 2024
b49e424
Merge pull request #6236 from JoseCaraballoOS/bugfix/OP-6234_action_f…
iLLiCiTiT Feb 26, 2024
dd2c56a
Merge branch 'develop' into bugfix/houdini-default-renderproduct-name
antirotor Mar 4, 2024
57a0a58
Merge pull request #6083 from ynput/bugfix/houdini-default-renderprod…
antirotor Mar 4, 2024
dc2ea2b
Merge branch 'develop' into enhancement/OP-8111_Publishing-of-Workfiles
moonyuet Mar 4, 2024
edfc715
Merge pull request #6203 from ynput/enhancement/OP-8111_Publishing-of…
moonyuet Mar 4, 2024
3a3b535
Fix submit_max_deadline imports (#6235)
tokejepsen Mar 5, 2024
0c40340
Merge branch 'develop' into enhancement/OP-5920_abc-options-for-Point…
LiborBatek Mar 5, 2024
119320b
Merge pull request #6171 from ynput/bugfix/OP-8005_thumbnail_duration
jakubjezek001 Mar 6, 2024
5f5bb7d
Merge pull request #6232 from ynput/bugfix/OP-8338_hiero_Effect-Categ…
jakubjezek001 Mar 6, 2024
427ecdd
Merge branch 'develop' into bugfix/resolve_fix_loader_slate_6124
jakubjezek001 Mar 6, 2024
73bc497
Update openpype/hosts/resolve/api/lib.py
jakubjezek001 Mar 6, 2024
531fd55
Update openpype/hosts/resolve/api/plugin.py
jakubjezek001 Mar 6, 2024
7d2ede8
Update openpype/hosts/resolve/api/plugin.py
jakubjezek001 Mar 6, 2024
4e044ea
Merge pull request #6126 from jrsndl/bugfix/resolve_fix_loader_slate_…
jakubjezek001 Mar 6, 2024
59c0079
Merge branch 'develop' into enhancement/OP-5920_abc-options-for-Point…
tokejepsen Mar 7, 2024
2e76f27
Change labels and export_overrides key
tokejepsen Mar 7, 2024
370e422
Fix plugin
tokejepsen Mar 7, 2024
3def9fe
Validate alembic options defaults
tokejepsen Mar 28, 2024
b645c62
Hound
tokejepsen Mar 28, 2024
766d4d1
Add submodule
tokejepsen Apr 1, 2024
e431785
Merge branch 'develop' into enhancement/AY-970_abc-options-for-Pointc…
tokejepsen Apr 1, 2024
fec4610
Fix publishing and add settings.
tokejepsen Apr 1, 2024
5885d7e
Fix bad merge.
tokejepsen Apr 1, 2024
1eebe2e
Settings for ValidateAlembicOptionsDefaults.
tokejepsen Apr 2, 2024
121ece7
Merge branch 'develop' into enhancement/AY-970_abc-options-for-Pointc…
tokejepsen Apr 2, 2024
a7ee515
BigRoy feedback
tokejepsen Apr 4, 2024
fe92a42
Update server_addon/maya/server/settings/publishers.py
tokejepsen Apr 4, 2024
c78258c
Update client/ayon_core/hosts/maya/plugins/publish/extract_pointcache.py
tokejepsen Apr 4, 2024
316e725
Update client/ayon_core/hosts/maya/plugins/publish/extract_pointcache.py
tokejepsen Apr 4, 2024
517cc39
Update client/ayon_core/hosts/maya/plugins/publish/validate_alembic_o…
tokejepsen Apr 4, 2024
d07b5d5
Update client/ayon_core/hosts/maya/plugins/publish/extract_pointcache.py
tokejepsen Apr 4, 2024
a754435
BigRoy feedback
tokejepsen Apr 4, 2024
b5a5ad4
Update server_addon/maya/server/settings/publishers.py
tokejepsen Apr 5, 2024
aa2e6c9
Update server_addon/maya/server/settings/publishers.py
tokejepsen Apr 5, 2024
0e6aa24
Update server_addon/maya/server/settings/publishers.py
tokejepsen Apr 5, 2024
d169453
Update server_addon/maya/server/settings/publishers.py
tokejepsen Apr 11, 2024
d8e2745
Update client/ayon_core/hosts/maya/plugins/publish/extract_pointcache.py
tokejepsen Apr 11, 2024
7478d87
Update client/ayon_core/hosts/maya/plugins/publish/extract_pointcache.py
tokejepsen Apr 11, 2024
861c2ad
Update client/ayon_core/hosts/maya/plugins/publish/extract_pointcache.py
tokejepsen Apr 11, 2024
9bcc038
Update server_addon/maya/server/settings/publishers.py
tokejepsen Apr 11, 2024
23b162a
Update server_addon/maya/server/settings/publishers.py
tokejepsen Apr 11, 2024
85229ce
Update client/ayon_core/hosts/maya/plugins/publish/extract_pointcache.py
tokejepsen Apr 11, 2024
947b008
Update client/ayon_core/hosts/maya/plugins/publish/extract_pointcache.py
tokejepsen Apr 11, 2024
7dea47f
Update client/ayon_core/hosts/maya/plugins/publish/extract_pointcache.py
tokejepsen Apr 11, 2024
5471cdc
Update client/ayon_core/hosts/maya/api/alembic.py
tokejepsen Apr 11, 2024
14bf441
Merge branch 'develop' into enhancement/AY-970_abc-options-for-Pointc…
tokejepsen Apr 11, 2024
a7450e4
Remove export flags.
tokejepsen Apr 11, 2024
9532384
Update client/ayon_core/hosts/maya/plugins/create/create_animation_po…
tokejepsen Apr 12, 2024
f7d52df
Update client/ayon_core/hosts/maya/plugins/create/create_animation_po…
tokejepsen Apr 12, 2024
0d23dba
Update client/ayon_core/hosts/maya/plugins/publish/validate_alembic_o…
tokejepsen Apr 12, 2024
f14c7bb
Update client/ayon_core/hosts/maya/plugins/publish/validate_alembic_o…
tokejepsen Apr 12, 2024
ec39dd2
Update server_addon/maya/server/settings/publishers.py
tokejepsen Apr 12, 2024
46a0594
Update client/ayon_core/hosts/maya/plugins/publish/extract_pointcache.py
tokejepsen Apr 12, 2024
41ef203
Update client/ayon_core/hosts/maya/plugins/publish/validate_alembic_o…
tokejepsen Apr 12, 2024
f63dda7
Reduce code duplication
tokejepsen Apr 12, 2024
6736c97
Use collect_user_defined_attributes
tokejepsen Apr 12, 2024
9a57800
Rename extract_alembic
tokejepsen Apr 12, 2024
97c7c4e
Account for no overrides.
tokejepsen Apr 12, 2024
85703e1
Update client/ayon_core/hosts/maya/plugins/publish/collect_pointcache.py
tokejepsen Apr 12, 2024
0013982
Update client/ayon_core/hosts/maya/plugins/publish/collect_user_defin…
tokejepsen Apr 12, 2024
0ac7528
Update client/ayon_core/hosts/maya/plugins/create/create_animation_po…
tokejepsen Apr 12, 2024
f27b31d
Update client/ayon_core/hosts/maya/plugins/publish/validate_alembic_o…
tokejepsen Apr 12, 2024
4b6081a
Update server_addon/maya/server/settings/publishers.py
tokejepsen Apr 12, 2024
08a4d48
Update client/ayon_core/hosts/maya/plugins/publish/extract_pointcache.py
tokejepsen Apr 12, 2024
5cb862c
Update client/ayon_core/hosts/maya/plugins/publish/extract_pointcache.py
tokejepsen Apr 12, 2024
cd8ac63
Re-order attributes
tokejepsen Apr 15, 2024
f1bf5a5
Update server_addon/maya/server/settings/publishers.py
tokejepsen Apr 15, 2024
a174f42
Use user attr attributes
tokejepsen Apr 15, 2024
4996b66
Merge branch 'enhancement/OP-5920_abc-options-for-Pointcache-Animatio…
tokejepsen Apr 15, 2024
8dcda0a
Move preRoll
tokejepsen Apr 15, 2024
56faca7
Update server_addon/maya/server/settings/publishers.py
tokejepsen Apr 15, 2024
f670d1a
fix melPostJobCallback
tokejepsen Apr 15, 2024
c9919ec
Missing flags from attributes.
tokejepsen Apr 15, 2024
16d5494
Remove dontSkipUnwrittenFrames
tokejepsen Apr 15, 2024
eb04a8b
Remove noNormals
tokejepsen Apr 15, 2024
affb42e
Update client/ayon_core/hosts/maya/plugins/publish/extract_pointcache.py
tokejepsen Apr 15, 2024
9aff312
Update client/ayon_core/hosts/maya/plugins/create/create_animation_po…
tokejepsen Apr 15, 2024
40eea96
Update client/ayon_core/hosts/maya/plugins/publish/validate_alembic_o…
tokejepsen Apr 15, 2024
f8a8fa4
Split ValidateAlembicOptionsDefaults
tokejepsen Apr 27, 2024
4cb9ee5
Update client/ayon_core/hosts/maya/api/alembic.py
tokejepsen Apr 27, 2024
d730e81
Update client/ayon_core/hosts/maya/api/alembic.py
tokejepsen Apr 27, 2024
838ae0c
Remove writeNormals
tokejepsen Apr 27, 2024
26791c9
Fix instance defs.
tokejepsen Apr 27, 2024
ba5c62b
Update client/ayon_core/hosts/maya/plugins/publish/collect_animation.py
tokejepsen Apr 27, 2024
abd5733
Merge branch 'develop' into enhancement/AY-970_abc-options-for-Pointc…
tokejepsen Apr 27, 2024
636bebc
Increment maya version
tokejepsen Apr 27, 2024
e805338
Merge branch 'enhancement/OP-5920_abc-options-for-Pointcache-Animatio…
tokejepsen Apr 27, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion client/ayon_core/hosts/max/startup/startup.ms
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@
max create mode

python.ExecuteFile startup
)
)
306 changes: 306 additions & 0 deletions client/ayon_core/hosts/maya/api/alembic.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,306 @@
import json
import logging
import os

from maya import cmds # noqa

from ayon_core.hosts.maya.api.lib import evaluation

log = logging.getLogger(__name__)

# The maya alembic export types
ALEMBIC_ARGS = {
"attr": (list, tuple),
"attrPrefix": (list, tuple),
"autoSubd": bool,
"dataFormat": str,
"dontSkipUnwrittenFrames": bool,
tokejepsen marked this conversation as resolved.
Show resolved Hide resolved
"endFrame": float,
"eulerFilter": bool,
"frameRange": str, # "start end"; overrides startFrame & endFrame
"frameRelativeSample": float,
"melPerFrameCallback": str,
"melPostJobCallback": str,
"noNormals": bool,
"preRoll": bool,
"preRollStartFrame": int,
"pythonPerFrameCallback": str,
"pythonPostJobCallback": str,
"renderableOnly": bool,
"root": (list, tuple),
"selection": bool,
"startFrame": float,
"step": float,
"stripNamespaces": bool,
"userAttr": (list, tuple),
"userAttrPrefix": (list, tuple),
"uvWrite": bool,
"uvsOnly": bool,
"verbose": bool,
"wholeFrameGeo": bool,
"worldSpace": bool,
"writeColorSets": bool,
"writeCreases": bool, # Maya 2015 Ext1+
"writeFaceSets": bool,
"writeUVSets": bool, # Maya 2017+
"writeVisibility": bool,
}


def extract_alembic(
file,
attr=None,
attrPrefix=None,
dataFormat="ogawa",
endFrame=None,
eulerFilter=True,
frameRange="",
noNormals=False,
preRoll=False,
preRollStartFrame=0,
Copy link
Collaborator

Choose a reason for hiding this comment

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

Pretty sure this functionality does not work?

I'm seeing this in my extraction logs:

# Warning: Ignoring unsupported flag: -preRollStartFrame
# Warning: Ignoring unsupported flag: 0

Copy link
Collaborator

@BigRoy BigRoy May 1, 2024

Choose a reason for hiding this comment

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

It seems preRollStartFrame is not a job argument but a direct argument to AbcExport. See logic here. So the current implementation here is broken. @tokejepsen that will have to be rewritten a different way then.

renderableOnly=False,
root=None,
selection=True,
startFrame=None,
step=1.0,
stripNamespaces=True,
uvWrite=True,
verbose=False,
wholeFrameGeo=False,
worldSpace=False,
writeColorSets=False,
writeCreases=False,
writeNormals=False,
writeFaceSets=False,
writeUVSets=False,
writeVisibility=False
):
"""Extract a single Alembic Cache.

This extracts an Alembic cache using the `-selection` flag to minimize
the extracted content to solely what was Collected into the instance.

Arguments:

startFrame (float): Start frame of output. Ignored if `frameRange`
provided.

endFrame (float): End frame of output. Ignored if `frameRange`
provided.

frameRange (tuple or str): Two-tuple with start and end frame or a
string formatted as: "startFrame endFrame". This argument
overrides `startFrame` and `endFrame` arguments.

eulerFilter (bool): When on, X, Y, and Z rotation data is filtered with
an Euler filter. Euler filtering helps resolve irregularities in
rotations especially if X, Y, and Z rotations exceed 360 degrees.
Defaults to True.

noNormals (bool): When on, normal data from the original polygon
objects is not included in the exported Alembic cache file.

preRoll (bool): This frame range will not be sampled.
Defaults to False.

renderableOnly (bool): When on, any non-renderable nodes or hierarchy,
such as hidden objects, are not included in the Alembic file.
Defaults to False.

selection (bool): Write out all all selected nodes from the
active selection list that are descendents of the roots specified
with -root. Defaults to False.

uvWrite (bool): When on, UV data from polygon meshes and subdivision
objects are written to the Alembic file. Only the current UV map is
included.

writeColorSets (bool): Write all color sets on MFnMeshes as
color 3 or color 4 indexed geometry parameters with face varying
scope. Defaults to False.

writeFaceSets (bool): Write all Face sets on MFnMeshes.
Defaults to False.

wholeFrameGeo (bool): Data for geometry will only be written
out on whole frames. Defaults to False.

worldSpace (bool): When on, the top node in the node hierarchy is
stored as world space. By default, these nodes are stored as local
space. Defaults to False.

writeVisibility (bool): Visibility state will be stored in
the Alembic file. Otherwise everything written out is treated as
visible. Defaults to False.

writeUVSets (bool): Write all uv sets on MFnMeshes as vector
2 indexed geometry parameters with face varying scope. Defaults to
False.

writeCreases (bool): If the mesh has crease edges or crease
vertices, the mesh (OPolyMesh) would now be written out as an OSubD
and crease info will be stored in the Alembic file. Otherwise,
creases info won't be preserved in Alembic file unless a custom
Boolean attribute SubDivisionMesh has been added to mesh node and
its value is true. Defaults to False.

dataFormat (str): The data format to use for the cache,
defaults to "ogawa"

step (float): The time interval (expressed in frames) at
which the frame range is sampled. Additional samples around each
frame can be specified with -frs. Defaults to 1.0.

attr (list of str, optional): A specific geometric attribute to write
out. Defaults to [].

attrPrefix (list of str, optional): Prefix filter for determining which
geometric attributes to write out. Defaults to ["ABC_"].

root (list of str): Maya dag path which will be parented to
the root of the Alembic file. Defaults to [], which means the
entire scene will be written out.

stripNamespaces (bool): When on, any namespaces associated with the
exported objects are removed from the Alembic file. For example, an
object with the namespace taco:foo:bar appears as bar in the
Alembic file.

verbose (bool): When on, outputs frame number information to the
Script Editor or output window during extraction.

preRollStartFrame (float): The frame to start scene
evaluation at. This is used to set the starting frame for time
dependent translations and can be used to evaluate run-up that
isn't actually translated. Defaults to 0.
tokejepsen marked this conversation as resolved.
Show resolved Hide resolved
"""

# Ensure alembic exporter is loaded
cmds.loadPlugin('AbcExport', quiet=True)

# Alembic Exporter requires forward slashes
file = file.replace('\\', '/')

# Ensure list arguments are valid.
attr = attr or []
attrPrefix = attrPrefix or []
root = root or []

# Pass the start and end frame on as `frameRange` so that it
# never conflicts with that argument
if not frameRange:
# Fallback to maya timeline if no start or end frame provided.
if startFrame is None:
startFrame = cmds.playbackOptions(query=True,
animationStartTime=True)
if endFrame is None:
endFrame = cmds.playbackOptions(query=True,
animationEndTime=True)

# Ensure valid types are converted to frame range
assert isinstance(startFrame, ALEMBIC_ARGS["startFrame"])
assert isinstance(endFrame, ALEMBIC_ARGS["endFrame"])
frameRange = "{0} {1}".format(startFrame, endFrame)
else:
# Allow conversion from tuple for `frameRange`
if isinstance(frameRange, (list, tuple)):
assert len(frameRange) == 2
frameRange = "{0} {1}".format(frameRange[0], frameRange[1])

# Assemble options
options = {
"selection": selection,
"frameRange": frameRange,
"eulerFilter": eulerFilter,
"noNormals": noNormals,
"preRoll": preRoll,
"renderableOnly": renderableOnly,
"uvWrite": uvWrite,
"writeColorSets": writeColorSets,
"writeFaceSets": writeFaceSets,
"wholeFrameGeo": wholeFrameGeo,
"worldSpace": worldSpace,
"writeVisibility": writeVisibility,
"writeUVSets": writeUVSets,
"writeCreases": writeCreases,
"dataFormat": dataFormat,
"step": step,
"attr": attr,
"attrPrefix": attrPrefix,
"stripNamespaces": stripNamespaces,
"verbose": verbose,
"preRollStartFrame": preRollStartFrame
}

# Validate options
for key, value in options.copy().items():

# Discard unknown options
if key not in ALEMBIC_ARGS:
log.warning("extract_alembic() does not support option '%s'. "
"Flag will be ignored..", key)
options.pop(key)
continue

# Validate value type
valid_types = ALEMBIC_ARGS[key]
if not isinstance(value, valid_types):
raise TypeError("Alembic option unsupported type: "
"{0} (expected {1})".format(value, valid_types))

# Ignore empty values, like an empty string, since they mess up how
# job arguments are built
if isinstance(value, (list, tuple)):
value = [x for x in value if x.strip()]

# Ignore option completely if no values remaining
if not value:
options.pop(key)
continue

options[key] = value

# The `writeCreases` argument was changed to `autoSubd` in Maya 2018+
maya_version = int(cmds.about(version=True))
if maya_version >= 2018:
options['autoSubd'] = options.pop('writeCreases', False)

# Format the job string from options
job_args = list()
for key, value in options.items():
if isinstance(value, (list, tuple)):
for entry in value:
job_args.append("-{} {}".format(key, entry))
elif isinstance(value, bool):
# Add only when state is set to True
if value:
job_args.append("-{0}".format(key))
else:
job_args.append("-{0} {1}".format(key, value))

job_str = " ".join(job_args)
job_str += ' -file "%s"' % file

# Ensure output directory exists
parent_dir = os.path.dirname(file)
if not os.path.exists(parent_dir):
os.makedirs(parent_dir)

if verbose:
log.debug("Preparing Alembic export with options: %s",
json.dumps(options, indent=4))
log.debug("Extracting Alembic with job arguments: %s", job_str)

# Perform extraction
print("Alembic Job Arguments : {}".format(job_str))

# Disable the parallel evaluation temporarily to ensure no buggy
# exports are made. (PLN-31)
# TODO: Make sure this actually fixes the issues
with evaluation("off"):
cmds.AbcExport(j=job_str, verbose=verbose)

if verbose:
log.debug("Extracted Alembic to: %s", file)

return file
Loading
Loading