Skip to content
This repository has been archived by the owner on Sep 20, 2024. It is now read-only.

Commit

Permalink
nuke: adding knob overrides
Browse files Browse the repository at this point in the history
  • Loading branch information
jakubjezek001 committed May 2, 2022
1 parent a625d94 commit 8196fda
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 5 deletions.
25 changes: 25 additions & 0 deletions openpype/hosts/nuke/api/lib.py
Original file line number Diff line number Diff line change
Expand Up @@ -858,6 +858,7 @@ def create_write_node(name, data, input=None, prenodes=None,
Return:
node (obj): group node with avalon data as Knobs
'''
knob_overrides = data.get("knobs", [])

imageio_writes = get_created_node_imageio_setting(**data)
for knob in imageio_writes["knobs"]:
Expand Down Expand Up @@ -1061,6 +1062,30 @@ def create_write_node(name, data, input=None, prenodes=None,
tile_color = _data.get("tile_color", "0xff0000ff")
GN["tile_color"].setValue(tile_color)

# overrie knob values from settings
for knob in knob_overrides:
knob_type = knob["type"]
knob_name = knob["name"]
knob_value = knob["value"]
if knob_name not in GN.knobs():
continue
if not knob_value:
continue

# set correctly knob types
if knob_type == "string":
knob_value = str(knob_value)
if knob_type == "number":
knob_value = int(knob_value)
if knob_type == "decimal_number":
knob_value = float(knob_value)
if knob_type == "bool":
knob_value = bool(knob_value)
if knob_type in ["2d_vector", "3d_vector"]:
knob_value = list(knob_value)

GN[knob_name].setValue(knob_value)

return GN


Expand Down
4 changes: 3 additions & 1 deletion openpype/hosts/nuke/api/plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -605,6 +605,7 @@ class AbstractWriteRender(OpenPypeCreator):
family = "render"
icon = "sign-out"
defaults = ["Main", "Mask"]
knobs = []

def __init__(self, *args, **kwargs):
super(AbstractWriteRender, self).__init__(*args, **kwargs)
Expand Down Expand Up @@ -672,7 +673,8 @@ def process(self):
"nodeclass": self.n_class,
"families": [self.family],
"avalon": self.data,
"subset": self.data["subset"]
"subset": self.data["subset"],
"knobs": self.knobs
}

# add creator data
Expand Down
8 changes: 4 additions & 4 deletions openpype/hosts/nuke/plugins/create/create_write_render.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ class CreateWriteRender(plugin.AbstractWriteRender):
family = "render"
icon = "sign-out"
defaults = ["Main", "Mask"]
knobs = []

def __init__(self, *args, **kwargs):
super(CreateWriteRender, self).__init__(*args, **kwargs)
Expand All @@ -38,13 +39,12 @@ def _create_write_node(self, selected_node, inputs, outputs, write_data):
}
]

write_node = create_write_node(
return create_write_node(
self.data["subset"],
write_data,
input=selected_node,
prenodes=_prenodes)

return write_node
prenodes=_prenodes
)

def _modify_write_node(self, write_node):
return write_node

0 comments on commit 8196fda

Please sign in to comment.