Merged in feature/nuke-validate-write-legacy (pull request #374)

Nuke Validate Write Node Lekacy

Approved-by: Milan Kolar <milan@orbi.tools>
This commit is contained in:
Jakub Ježek 2019-11-21 17:39:52 +00:00 committed by Milan Kolar
commit 0351c05d2e
3 changed files with 58 additions and 26 deletions

View file

@ -59,16 +59,19 @@ class CollectNukeInstances(pyblish.api.ContextPlugin):
node.end()
family = avalon_knob_data["family"]
families = [avalon_knob_data["families"]]
if node["render"].value():
self.log.info("flagged for render")
family = "render.local"
add_family = "render.local"
# dealing with local/farm rendering
if node["render_farm"].value():
self.log.info("adding render farm family")
family = "render.farm"
instance.data['transfer'] = False
add_family = "render.farm"
instance.data["transfer"] = False
families.append(add_family)
else:
family = "render.no"
# add family into families
families.insert(0, family)
instance.data.update({
"subset": subset,
@ -76,8 +79,8 @@ class CollectNukeInstances(pyblish.api.ContextPlugin):
"label": node.name(),
"name": node.name(),
"subset": subset,
"family": avalon_knob_data["family"],
"families": [avalon_knob_data["families"], family],
"family": family,
"families": families,
"avalonKnob": avalon_knob_data,
"publish": node.knob('publish').value(),
"step": 1,

View file

@ -1,25 +1,30 @@
import nuke
import pyblish.api
class CollectWriteLegacy(pyblish.api.ContextPlugin):
class CollectWriteLegacy(pyblish.api.InstancePlugin):
"""Collect legacy write nodes."""
order = pyblish.api.CollectorOrder
label = "Collect Write Legacy"
order = pyblish.api.CollectorOrder + 0.0101
label = "Collect Write node Legacy"
hosts = ["nuke", "nukeassist"]
def process(self, context):
def process(self, instance):
self.log.info(instance[:])
node = instance[0]
for node in nuke.allNodes():
if node.Class() != "Write":
continue
if node.Class() not in ["Group", "Write"]:
return
if "avalon" not in node.knobs().keys():
continue
family_knobs = ["ak:family", "avalon:family"]
test = [k for k in node.knobs().keys() if k in family_knobs]
self.log.info(test)
instance = context.create_instance(
node.name(), family="write.legacy"
)
instance.append(node)
if len(test) == 1:
if "render" in node[test[0]].value():
self.log.info("render")
return
instance.data.update(
{"family": "write.legacy",
"families": []}
)

View file

@ -4,8 +4,9 @@ import os
import nuke
from avalon import api
import re
import pyblish.api
from avalon.nuke import get_avalon_knob_data
class RepairWriteLegacyAction(pyblish.api.Action):
@ -26,24 +27,47 @@ class RepairWriteLegacyAction(pyblish.api.Action):
instances = pyblish.api.instances_by_plugin(failed, plugin)
for instance in instances:
data = toml.loads(instance[0]["avalon"].value())
if "Write" in instance[0].Class():
data = toml.loads(instance[0]["avalon"].value())
else:
data = get_avalon_knob_data(instance[0])
self.log.info(data)
data["xpos"] = instance[0].xpos()
data["ypos"] = instance[0].ypos()
data["input"] = instance[0].input(0)
data["publish"] = instance[0]["publish"].value()
data["render"] = instance[0]["render"].value()
data["render_farm"] = instance[0]["render_farm"].value()
data["review"] = instance[0]["review"].value()
nuke.delete(instance[0])
# nuke.delete(instance[0])
task = os.environ["AVALON_TASK"]
sanitized_task = re.sub('[^0-9a-zA-Z]+', '', task)
subset_name = "render{}Main".format(
sanitized_task.capitalize())
Create_name = "CreateWriteRender"
creator_plugin = None
for Creator in api.discover(api.Creator):
if Creator.__name__ != Create_name:
continue
creator_plugin = Creator
# return api.create()
creator_plugin(data["subset"], data["asset"]).process()
family = "render{}".format(os.environ["AVALON_TASK"].capitalize())
api.create(data["subset"], data["asset"], family)
node = nuke.toNode(data["subset"])
node.setXYpos(data["xpos"], data["ypos"])
node.setInput(0, data["input"])
node["publish"].setValue(data["publish"])
node["render"].setValue(data["render"])
node["render_farm"].setValue(data["render_farm"])
node["review"].setValue(data["review"])
class ValidateWriteLegacy(pyblish.api.InstancePlugin):