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

Core: Implement USD workflow with global asset/shot contributions plug-in #295

Merged
merged 101 commits into from
Jul 2, 2024
Merged
Show file tree
Hide file tree
Changes from 14 commits
Commits
Show all changes
101 commits
Select commit Hold shift + click to select a range
1be40e7
Initial transfer of logic for usd workflow to Houdini from OpenPype
BigRoy Mar 27, 2024
d25fb4f
Fix refactor from `openpype` to `ayon_core`
BigRoy Mar 27, 2024
02e5c1a
Fix refactor
BigRoy Mar 27, 2024
8306ed8
Fix docstring
BigRoy Mar 27, 2024
152163f
Remove `(experimental)` from settings for Houdini USD creators
BigRoy Mar 27, 2024
3dc8f71
Transfer remaining logic + refactor
BigRoy Mar 27, 2024
70c7e09
Remove debug reloading
BigRoy Mar 27, 2024
d1b0922
Add Husk Standalone Render Submission logic for `usdrender` product type
BigRoy Mar 27, 2024
ba92ee4
Add `usdrender` family
BigRoy Mar 27, 2024
39f329e
Merge branch 'develop' into enhancement/usd_workflow
BigRoy Mar 28, 2024
c9e8894
Add settings for CreateUSDRender default renderer
BigRoy Mar 28, 2024
d93d795
Merge branch 'enhancement/usd_workflow' of https://github.com/BigRoy/…
BigRoy Mar 28, 2024
2ffb672
Support the `followWorkfileVersion` override the USD asset/shot workf…
BigRoy Mar 29, 2024
410fa5e
Merge branch 'develop' into enhancement/usd_workflow
BigRoy Mar 30, 2024
bcbebfd
Update client/ayon_core/hosts/houdini/plugins/create/create_usdrender.py
BigRoy Apr 15, 2024
f38b72e
Merge branch 'develop' of https://github.com/ynput/ayon-core into enh…
BigRoy Apr 15, 2024
f28e486
Merge branch 'enhancement/usd_workflow' of https://github.com/BigRoy/…
BigRoy Apr 15, 2024
f767653
Merge branch 'develop' into enhancement/usd_workflow
BigRoy Apr 30, 2024
5c2a22a
Merge branch 'develop' into enhancement/usd_workflow
BigRoy May 23, 2024
58187b1
Remove redundant typing and import
BigRoy May 23, 2024
00bd27e
Merge branch 'enhancement/usd_workflow' of https://github.com/BigRoy/…
BigRoy May 23, 2024
49c04ae
Merge branch 'develop' into enhancement/usd_workflow
antirotor May 28, 2024
b6609b2
Merge branch 'develop' of https://github.com/ynput/ayon-core into enh…
BigRoy Jun 3, 2024
6a91d14
Fix refactor
BigRoy Jun 3, 2024
64278bd
Remove unused `usdlib.py`
BigRoy Jun 3, 2024
fb4aab7
Bump houdini version
BigRoy Jun 3, 2024
83df588
Correctly move the `husdplugin/outputprocessors`
BigRoy Jun 3, 2024
fdaad64
update imports use base classes from ayon_houdini.api.plugin
MustafaJafar Jun 4, 2024
c0d9b88
Merge pull request #7 from ynput/enhancement/usd_workflow_fix_plugins…
BigRoy Jun 4, 2024
946e996
Add back `usdrender` family - somehow went missing?
BigRoy Jun 4, 2024
3e4d6e6
Refactor `family` to `productType` like currently in `develop`
BigRoy Jun 4, 2024
e980577
Allow submitting along houdini version number to husk
BigRoy Jun 4, 2024
d74fe05
Remove family again because it's handled by dedicated `HoudiniSubmitD…
BigRoy Jun 4, 2024
e2bfa41
Cosmetics, fix new line end of file
BigRoy Jun 4, 2024
35aae03
support different render targets for usdrender product
MustafaJafar Jun 6, 2024
da1ae21
Merge pull request #10 from ynput/enhancement/usd_workflow_implement_…
BigRoy Jun 18, 2024
5e73d38
Merge branch 'develop' of https://github.com/ynput/ayon-core into enh…
BigRoy Jun 18, 2024
7d35eee
Tweak fix implemented by Mustafa, skip validation when not `farm_spli…
BigRoy Jun 18, 2024
0b8613e
Merge branch 'develop' of https://github.com/ynput/ayon-core into enh…
BigRoy Jun 18, 2024
6248838
Bump houdini addon version
BigRoy Jun 18, 2024
40114ef
Merge branch 'develop' into enhancement/usd_workflow
BigRoy Jun 19, 2024
5fd905a
Merge branch 'develop' of https://github.com/ynput/ayon-core into enh…
BigRoy Jun 19, 2024
877e88a
Merge branch 'enhancement/usd_workflow' of https://github.com/BigRoy/…
BigRoy Jun 19, 2024
5c0ad85
Update default enabled state
BigRoy Jun 19, 2024
4990107
Update default `defaultprim` value on create to folder name (logic is…
BigRoy Jun 19, 2024
08171ba
Fix quotes (cosmetics)
BigRoy Jun 24, 2024
b180c5c
Merge branch 'develop' of https://github.com/ynput/ayon-core into enh…
BigRoy Jun 27, 2024
32abe11
Merge branch 'develop' into enhancement/usd_workflow
BigRoy Jun 28, 2024
ef07085
Update server_addon/houdini/client/ayon_houdini/plugins/publish/extra…
BigRoy Jun 28, 2024
018d717
Fix type hints + reduce imports
BigRoy Jun 28, 2024
40c0492
Bump Houdini addon version
BigRoy Jun 28, 2024
a415a83
Fix docstring
BigRoy Jun 28, 2024
b331713
Update client/ayon_core/pipeline/ayon_uri.py
BigRoy Jun 28, 2024
27342f5
Apply suggestions from code review by iLliCiTiT
BigRoy Jun 28, 2024
5d2d6b4
Merge branch 'enhancement/usd_workflow' of https://github.com/BigRoy/…
BigRoy Jun 28, 2024
e0f6cf3
Fix typing
BigRoy Jun 28, 2024
ee1cb86
Refactor function names
BigRoy Jun 28, 2024
299e2cf
Fix dosctrings
BigRoy Jun 28, 2024
207c9e9
Cosmetics
BigRoy Jun 28, 2024
2ce148e
Ayon to uppercase
BigRoy Jun 28, 2024
aa0e796
Ayon to uppercase
BigRoy Jun 28, 2024
f82e968
Fix refactor
BigRoy Jun 28, 2024
068efca
Add docstring
BigRoy Jun 28, 2024
d4d11e8
Remove `tag` because `Layer` init does not take the argument
BigRoy Jun 28, 2024
472868f
Update client/ayon_core/pipeline/ayon_uri.py
BigRoy Jun 28, 2024
3d42b78
Update client/ayon_core/lib/usdlib.py
BigRoy Jun 28, 2024
399eb86
Move `usdlib` to `ayon_core.pipeline`
BigRoy Jun 28, 2024
22a89dc
Refactor `ayon_core.pipeline.ayon_uri to `ayon_core.pipeline.entity_uri`
BigRoy Jun 28, 2024
dca474e
Merge branch 'enhancement/usd_workflow' of https://github.com/BigRoy/…
BigRoy Jun 28, 2024
d49a66e
Refactor functions based on @iLLiCiTiT comments
BigRoy Jun 28, 2024
90eeba0
Refactor and move more functions to better locations
BigRoy Jun 28, 2024
537676d
Opt-out early
BigRoy Jun 28, 2024
2a49e4f
Merge branch 'develop' of https://github.com/ynput/ayon-core into enh…
BigRoy Jun 28, 2024
25ada30
Cosmetics
BigRoy Jun 28, 2024
e1010f9
Fix code
BigRoy Jun 28, 2024
4087e03
Merge branch 'develop' of https://github.com/ynput/ayon-core into enh…
BigRoy Jun 28, 2024
7f94167
Update client/ayon_core/plugins/publish/extract_usd_layer_contributio…
BigRoy Jul 1, 2024
8c89d51
Fix optional support in ValidateUSDRenderProductPaths
BigRoy Jul 1, 2024
e96354b
Disable `ValidateUSDRenderProductPaths` by default because it may be …
BigRoy Jul 1, 2024
0fcb24e
Merge branch 'enhancement/usd_workflow' of https://github.com/BigRoy/…
BigRoy Jul 1, 2024
09a0727
Fix docstring
BigRoy Jul 1, 2024
aa6a2b9
Add validation for default prim when contributing to asset instead of…
BigRoy Jul 1, 2024
6fd809b
Fix optional processing
BigRoy Jul 1, 2024
d85603f
Add todo
BigRoy Jul 1, 2024
e6a1b9e
Remove logging + improve validation message
BigRoy Jul 1, 2024
cea8c96
Do not crash on no ordered rendervars for a render product
BigRoy Jul 1, 2024
61ed277
Expose contribution department layers and strengths to settings
BigRoy Jul 1, 2024
5b55721
Move comment along
BigRoy Jul 1, 2024
d490187
Remove optional/active state because it's all based on the "Enabled" …
BigRoy Jul 1, 2024
2d34073
Support plug-in enabled state
BigRoy Jul 1, 2024
afabfeb
Add comment
BigRoy Jul 1, 2024
5a3b3e1
Improve creator icons
BigRoy Jul 1, 2024
9b82215
Cosmetics
BigRoy Jul 1, 2024
5f9cb3d
Fix contribution layers from settings
BigRoy Jul 1, 2024
2b594f3
Remove `get_template_data_with_names` call as this should already hav…
BigRoy Jul 1, 2024
79c3fae
Clarify the log message and make it a debug message
BigRoy Jul 1, 2024
f45012e
Support publishing USD to another context if original instance has Va…
BigRoy Jul 1, 2024
379d610
Make `ext` argument required but allow `None`
BigRoy Jul 2, 2024
8d37f49
Cosmetics: Move argument order to match function signature
BigRoy Jul 2, 2024
a5e4643
Remove unused imports
BigRoy Jul 2, 2024
31cac8a
Merge branch 'develop' into enhancement/usd_workflow
antirotor Jul 2, 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
22 changes: 22 additions & 0 deletions client/ayon_core/hosts/houdini/api/lib.py
Original file line number Diff line number Diff line change
Expand Up @@ -447,6 +447,28 @@ def maintained_selection():
node.setSelected(on=True)


@contextmanager
def parm_values(overrides):
"""Override Parameter values during the context.
Arguments:
overrides (List[Tuple[hou.Parm, Any]]): The overrides per parm
that should be applied during context.
"""

originals = []
try:
for parm, value in overrides:
originals.append((parm, parm.eval()))
parm.set(value)
yield
finally:
for parm, value in originals:
# Parameter might not exist anymore so first
# check whether it's still valid
if hou.parm(parm.path()):
parm.set(value)


def reset_framerange(fps=True, frame_range=True):
"""Set frame range and FPS to current folder."""

Expand Down
18 changes: 18 additions & 0 deletions client/ayon_core/hosts/houdini/api/plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,7 @@ def create(self, product_name, instance_data, pre_create_data):

instance_data["instance_node"] = instance_node.path()
instance_data["instance_id"] = instance_node.path()
instance_data["families"] = self.get_publish_families()
instance = CreatedInstance(
self.product_type,
product_name,
Expand Down Expand Up @@ -238,6 +239,7 @@ def collect_instances(self):
node_path = instance.path()
node_data["instance_id"] = node_path
node_data["instance_node"] = node_path
node_data["families"] = self.get_publish_families()
if "AYON_productName" in node_data:
node_data["productName"] = node_data.pop("AYON_productName")

Expand Down Expand Up @@ -267,6 +269,7 @@ def imprint(self, node, values, update=False):
values["AYON_productName"] = values.pop("productName")
values.pop("instance_node", None)
values.pop("instance_id", None)
values.pop("families", None)
imprint(node, values, update=update)

def remove_instances(self, instances):
Expand Down Expand Up @@ -308,6 +311,21 @@ def customize_node_look(
node.setUserData('nodeshape', shape)
node.setColor(color)

def get_publish_families(self):
"""Return families for the instances of this creator.

Allow a Creator to define multiple families so that a creator can
e.g. specify `usd` and `usdrop`.

There is no need to override this method if you only have the
primary family defined by the `product_type` property as that will
always be set.

Returns:
List[str]: families for instances of this creator
"""
return []

def get_network_categories(self):
"""Return in which network view type this creator should show.

Expand Down
Loading
Loading