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

Nuke: settings for reformat node in CreateWriteRender node #3143

Merged
Show file tree
Hide file tree
Changes from 18 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
c966bdc
Merge branch 'feature/OP-2833_Expose-write-attributes-to-config' into…
jakubjezek001 May 2, 2022
d0b3cf7
nuke: extracting method for knob types
jakubjezek001 May 2, 2022
4b7f17c
nuke: adding hex and color types to nuke knob schema
jakubjezek001 May 2, 2022
a72aaec
nuke: solving hex and color knob types
jakubjezek001 May 2, 2022
8e7b27c
nuke: change `string` type to `text`
jakubjezek001 May 3, 2022
7903437
nuke: converting schema knobs to template schema
jakubjezek001 May 3, 2022
1c2b640
nuke: refectory imageio settings for plugin nodes
jakubjezek001 May 3, 2022
0dd91e8
Nuke: adding `formatable` to node knob keys
jakubjezek001 May 3, 2022
3ddb464
nuke: updating create_write_node inputs and docs
jakubjezek001 May 3, 2022
3fd5a53
nuke: adding prenodes to settings
jakubjezek001 May 3, 2022
890e108
nuke: updating plugins with new settings with prenodes
jakubjezek001 May 3, 2022
c18abc1
nuke: extracting prenodes creation
jakubjezek001 May 4, 2022
bc07da3
nuke: fixing create write still
jakubjezek001 May 4, 2022
a6ff017
Nuke: fixing lib functions for prenodes
jakubjezek001 May 4, 2022
656ea5d
Merge branch 'develop' into feature/OP-2748_Nuke-CreateWriteRender-re…
jakubjezek001 May 4, 2022
0c8b7e3
nuke: improving add write node function
jakubjezek001 May 4, 2022
6a123fc
nuke: change hex type to color_gui in settings
jakubjezek001 May 6, 2022
d640ea3
nuke: remove redundant code
jakubjezek001 May 6, 2022
e7a1c84
nuke: implementing `color_gui` type
jakubjezek001 May 6, 2022
b374e8e
nuke: returning legacy code for backward compatibility
jakubjezek001 May 6, 2022
89499e9
nuke: skipping override if no node was found
jakubjezek001 May 6, 2022
106c0fb
Merge branch 'develop' into feature/OP-2748_Nuke-CreateWriteRender-re…
jakubjezek001 May 6, 2022
f14cabb
hound
jakubjezek001 May 6, 2022
a0284fd
nuke: adding legacy type
jakubjezek001 May 6, 2022
e87024d
added backwards compatibility for imageio values
iLLiCiTiT May 6, 2022
0659645
fix key access
iLLiCiTiT May 6, 2022
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
416 changes: 258 additions & 158 deletions openpype/hosts/nuke/api/lib.py

Large diffs are not rendered by default.

29 changes: 10 additions & 19 deletions openpype/hosts/nuke/api/plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,6 @@ class OpenPypeCreator(LegacyCreator):

def __init__(self, *args, **kwargs):
super(OpenPypeCreator, self).__init__(*args, **kwargs)
self.presets = get_current_project_settings()["nuke"]["create"].get(
self.__class__.__name__, {}
)
if check_subsetname_exists(
nuke.allNodes(),
self.data["subset"]):
Expand Down Expand Up @@ -605,6 +602,8 @@ class AbstractWriteRender(OpenPypeCreator):
family = "render"
icon = "sign-out"
defaults = ["Main", "Mask"]
knobs = []
prenodes = {}

def __init__(self, *args, **kwargs):
super(AbstractWriteRender, self).__init__(*args, **kwargs)
Expand Down Expand Up @@ -672,29 +671,21 @@ 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
creator_data = {"creator": self.__class__.__name__}
self.data.update(creator_data)
write_data.update(creator_data)

if self.presets.get('fpath_template'):
self.log.info("Adding template path from preset")
write_data.update(
{"fpath_template": self.presets["fpath_template"]}
)
else:
self.log.info("Adding template path from plugin")
write_data.update({
"fpath_template":
("{work}/" + self.family + "s/nuke/{subset}"
"/{subset}.{frame}.{ext}")})

write_node = self._create_write_node(selected_node,
inputs, outputs,
write_data)
write_node = self._create_write_node(
selected_node,
inputs,
outputs,
write_data
)

# relinking to collected connections
for i, input in enumerate(inputs):
Expand Down
21 changes: 13 additions & 8 deletions openpype/hosts/nuke/plugins/create/create_write_prerender.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,22 +12,27 @@ class CreateWritePrerender(plugin.AbstractWriteRender):
n_class = "Write"
family = "prerender"
icon = "sign-out"

# settings
fpath_template = "{work}/render/nuke/{subset}/{subset}.{frame}.{ext}"
defaults = ["Key01", "Bg01", "Fg01", "Branch01", "Part01"]
reviewable = False
use_range_limit = True

def __init__(self, *args, **kwargs):
super(CreateWritePrerender, self).__init__(*args, **kwargs)

def _create_write_node(self, selected_node, inputs, outputs, write_data):
reviewable = self.presets.get("reviewable")
write_node = create_write_node(
# add fpath_template
write_data["fpath_template"] = self.fpath_template

return create_write_node(
self.data["subset"],
write_data,
input=selected_node,
prenodes=[],
review=reviewable,
linked_knobs=["channels", "___", "first", "last", "use_limit"])

return write_node
review=self.reviewable,
linked_knobs=["channels", "___", "first", "last", "use_limit"]
)

def _modify_write_node(self, write_node):
# open group node
Expand All @@ -38,7 +43,7 @@ def _modify_write_node(self, write_node):
w_node = n
write_node.end()

if self.presets.get("use_range_limit"):
if self.use_range_limit:
w_node["use_limit"].setValue(True)
w_node["first"].setValue(nuke.root()["first_frame"].value())
w_node["last"].setValue(nuke.root()["last_frame"].value())
Expand Down
47 changes: 31 additions & 16 deletions openpype/hosts/nuke/plugins/create/create_write_render.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,36 @@ class CreateWriteRender(plugin.AbstractWriteRender):
n_class = "Write"
family = "render"
icon = "sign-out"

# settings
fpath_template = "{work}/render/nuke/{subset}/{subset}.{frame}.{ext}"
defaults = ["Main", "Mask"]
prenodes = {
"Reformat01": {
"nodeclass": "Reformat",
"dependent": None,
"knobs": [
{
"type": "text",
"name": "resize",
"value": "none"
},
{
"type": "bool",
"name": "black_outside",
"value": True
}
]
}
}

def __init__(self, *args, **kwargs):
super(CreateWriteRender, self).__init__(*args, **kwargs)

def _create_write_node(self, selected_node, inputs, outputs, write_data):
# add fpath_template
write_data["fpath_template"] = self.fpath_template

# add reformat node to cut off all outside of format bounding box
# get width and height
try:
Expand All @@ -26,25 +50,16 @@ def _create_write_node(self, selected_node, inputs, outputs, write_data):
actual_format = nuke.root().knob('format').value()
width, height = (actual_format.width(), actual_format.height())

_prenodes = [
{
"name": "Reformat01",
"class": "Reformat",
"knobs": [
("resize", 0),
("black_outside", 1),
],
"dependent": None
}
]

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

return write_node
prenodes=self.prenodes,
**{
"width": width,
"height": height
}
)

def _modify_write_node(self, write_node):
return write_node
56 changes: 33 additions & 23 deletions openpype/hosts/nuke/plugins/create/create_write_still.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

from openpype.hosts.nuke.api import plugin
from openpype.hosts.nuke.api.lib import create_write_node
from openpype.api import (
Logger
)
log = Logger.get_logger(__name__)
jakubjezek001 marked this conversation as resolved.
Show resolved Hide resolved


class CreateWriteStill(plugin.AbstractWriteRender):
Expand All @@ -12,42 +16,48 @@ class CreateWriteStill(plugin.AbstractWriteRender):
n_class = "Write"
family = "still"
icon = "image"

# settings
fpath_template = "{work}/render/nuke/{subset}/{subset}.{ext}"
defaults = [
"ImageFrame{:0>4}".format(nuke.frame()),
"MPFrame{:0>4}".format(nuke.frame()),
"LayoutFrame{:0>4}".format(nuke.frame())
"ImageFrame",
"MPFrame",
"LayoutFrame"
]
prenodes = {
"FrameHold01": {
"nodeclass": "FrameHold",
"dependent": None,
"knobs": [
{
"type": "formatable",
"name": "first_frame",
"template": "{frame}",
"to_type": "number"
}
]
}
}

def __init__(self, *args, **kwargs):
super(CreateWriteStill, self).__init__(*args, **kwargs)

def _create_write_node(self, selected_node, inputs, outputs, write_data):
# explicitly reset template to 'renders', not same as other 2 writes
write_data.update({
"fpath_template": (
"{work}/renders/nuke/{subset}/{subset}.{ext}")})

_prenodes = [
{
"name": "FrameHold01",
"class": "FrameHold",
"knobs": [
("first_frame", nuke.frame())
],
"dependent": None
}
]
# add fpath_template
write_data["fpath_template"] = self.fpath_template

write_node = create_write_node(
return create_write_node(
self.name,
write_data,
input=selected_node,
review=False,
prenodes=_prenodes,
prenodes=self.prenodes,
farm=False,
linked_knobs=["channels", "___", "first", "last", "use_limit"])

return write_node
linked_knobs=["channels", "___", "first", "last", "use_limit"],
**{
"frame": nuke.frame()
}
)

def _modify_write_node(self, write_node):
write_node.begin()
Expand Down
33 changes: 28 additions & 5 deletions openpype/settings/defaults/project_anatomy/imageio.json
Original file line number Diff line number Diff line change
Expand Up @@ -55,36 +55,44 @@
"nukeNodeClass": "Write",
"knobs": [
{
"type": "text",
"name": "file_type",
"value": "exr"
},
{
"type": "text",
"name": "datatype",
"value": "16 bit half"
},
{
"type": "text",
"name": "compression",
"value": "Zip (1 scanline)"
},
{
"type": "bool",
"name": "autocrop",
"value": "True"
"value": true
},
{
"type": "hex",
"name": "tile_color",
"value": "0xff0000ff"
},
{
"type": "text",
"name": "channels",
"value": "rgb"
},
{
"type": "text",
"name": "colorspace",
"value": "linear"
},
{
"type": "bool",
"name": "create_directories",
"value": "True"
"value": true
}
]
},
Expand All @@ -95,36 +103,44 @@
"nukeNodeClass": "Write",
"knobs": [
{
"type": "text",
"name": "file_type",
"value": "exr"
},
{
"type": "text",
"name": "datatype",
"value": "16 bit half"
},
{
"type": "text",
"name": "compression",
"value": "Zip (1 scanline)"
},
{
"type": "bool",
"name": "autocrop",
"value": "False"
"value": true
},
{
"type": "hex",
"name": "tile_color",
"value": "0xadab1dff"
},
{
"type": "text",
"name": "channels",
"value": "rgb"
},
{
"type": "text",
"name": "colorspace",
"value": "linear"
},
{
"type": "bool",
"name": "create_directories",
"value": "True"
"value": true
}
]
},
Expand All @@ -135,32 +151,39 @@
"nukeNodeClass": "Write",
"knobs": [
{
"type": "text",
"name": "file_type",
"value": "tiff"
},
{
"type": "text",
"name": "datatype",
"value": "16 bit"
},
{
"type": "text",
"name": "compression",
"value": "Deflate"
},
{
"type": "hex",
"name": "tile_color",
"value": "0x23ff00ff"
},
{
"type": "text",
"name": "channels",
"value": "rgb"
},
{
"type": "text",
"name": "colorspace",
"value": "sRGB"
},
{
"type": "bool",
"name": "create_directories",
"value": "True"
"value": true
}
]
}
Expand Down
Loading