mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-25 05:14:40 +01:00
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:
commit
0351c05d2e
3 changed files with 58 additions and 26 deletions
|
|
@ -59,16 +59,19 @@ class CollectNukeInstances(pyblish.api.ContextPlugin):
|
||||||
node.end()
|
node.end()
|
||||||
|
|
||||||
family = avalon_knob_data["family"]
|
family = avalon_knob_data["family"]
|
||||||
|
families = [avalon_knob_data["families"]]
|
||||||
if node["render"].value():
|
if node["render"].value():
|
||||||
self.log.info("flagged for render")
|
self.log.info("flagged for render")
|
||||||
family = "render.local"
|
add_family = "render.local"
|
||||||
# dealing with local/farm rendering
|
# dealing with local/farm rendering
|
||||||
if node["render_farm"].value():
|
if node["render_farm"].value():
|
||||||
self.log.info("adding render farm family")
|
self.log.info("adding render farm family")
|
||||||
family = "render.farm"
|
add_family = "render.farm"
|
||||||
instance.data['transfer'] = False
|
instance.data["transfer"] = False
|
||||||
|
families.append(add_family)
|
||||||
else:
|
else:
|
||||||
family = "render.no"
|
# add family into families
|
||||||
|
families.insert(0, family)
|
||||||
|
|
||||||
instance.data.update({
|
instance.data.update({
|
||||||
"subset": subset,
|
"subset": subset,
|
||||||
|
|
@ -76,8 +79,8 @@ class CollectNukeInstances(pyblish.api.ContextPlugin):
|
||||||
"label": node.name(),
|
"label": node.name(),
|
||||||
"name": node.name(),
|
"name": node.name(),
|
||||||
"subset": subset,
|
"subset": subset,
|
||||||
"family": avalon_knob_data["family"],
|
"family": family,
|
||||||
"families": [avalon_knob_data["families"], family],
|
"families": families,
|
||||||
"avalonKnob": avalon_knob_data,
|
"avalonKnob": avalon_knob_data,
|
||||||
"publish": node.knob('publish').value(),
|
"publish": node.knob('publish').value(),
|
||||||
"step": 1,
|
"step": 1,
|
||||||
|
|
|
||||||
|
|
@ -1,25 +1,30 @@
|
||||||
import nuke
|
|
||||||
|
|
||||||
import pyblish.api
|
import pyblish.api
|
||||||
|
|
||||||
|
|
||||||
class CollectWriteLegacy(pyblish.api.ContextPlugin):
|
class CollectWriteLegacy(pyblish.api.InstancePlugin):
|
||||||
"""Collect legacy write nodes."""
|
"""Collect legacy write nodes."""
|
||||||
|
|
||||||
order = pyblish.api.CollectorOrder
|
order = pyblish.api.CollectorOrder + 0.0101
|
||||||
label = "Collect Write Legacy"
|
label = "Collect Write node Legacy"
|
||||||
hosts = ["nuke", "nukeassist"]
|
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() not in ["Group", "Write"]:
|
||||||
if node.Class() != "Write":
|
return
|
||||||
continue
|
|
||||||
|
|
||||||
if "avalon" not in node.knobs().keys():
|
family_knobs = ["ak:family", "avalon:family"]
|
||||||
continue
|
test = [k for k in node.knobs().keys() if k in family_knobs]
|
||||||
|
self.log.info(test)
|
||||||
|
|
||||||
instance = context.create_instance(
|
if len(test) == 1:
|
||||||
node.name(), family="write.legacy"
|
if "render" in node[test[0]].value():
|
||||||
)
|
self.log.info("render")
|
||||||
instance.append(node)
|
return
|
||||||
|
|
||||||
|
instance.data.update(
|
||||||
|
{"family": "write.legacy",
|
||||||
|
"families": []}
|
||||||
|
)
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,9 @@ import os
|
||||||
import nuke
|
import nuke
|
||||||
|
|
||||||
from avalon import api
|
from avalon import api
|
||||||
|
import re
|
||||||
import pyblish.api
|
import pyblish.api
|
||||||
|
from avalon.nuke import get_avalon_knob_data
|
||||||
|
|
||||||
class RepairWriteLegacyAction(pyblish.api.Action):
|
class RepairWriteLegacyAction(pyblish.api.Action):
|
||||||
|
|
||||||
|
|
@ -26,24 +27,47 @@ class RepairWriteLegacyAction(pyblish.api.Action):
|
||||||
instances = pyblish.api.instances_by_plugin(failed, plugin)
|
instances = pyblish.api.instances_by_plugin(failed, plugin)
|
||||||
|
|
||||||
for instance in instances:
|
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["xpos"] = instance[0].xpos()
|
||||||
data["ypos"] = instance[0].ypos()
|
data["ypos"] = instance[0].ypos()
|
||||||
data["input"] = instance[0].input(0)
|
data["input"] = instance[0].input(0)
|
||||||
data["publish"] = instance[0]["publish"].value()
|
data["publish"] = instance[0]["publish"].value()
|
||||||
data["render"] = instance[0]["render"].value()
|
data["render"] = instance[0]["render"].value()
|
||||||
data["render_farm"] = instance[0]["render_farm"].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 = nuke.toNode(data["subset"])
|
||||||
node.setXYpos(data["xpos"], data["ypos"])
|
node.setXYpos(data["xpos"], data["ypos"])
|
||||||
node.setInput(0, data["input"])
|
node.setInput(0, data["input"])
|
||||||
node["publish"].setValue(data["publish"])
|
node["publish"].setValue(data["publish"])
|
||||||
node["render"].setValue(data["render"])
|
node["render"].setValue(data["render"])
|
||||||
node["render_farm"].setValue(data["render_farm"])
|
node["render_farm"].setValue(data["render_farm"])
|
||||||
|
node["review"].setValue(data["review"])
|
||||||
|
|
||||||
|
|
||||||
class ValidateWriteLegacy(pyblish.api.InstancePlugin):
|
class ValidateWriteLegacy(pyblish.api.InstancePlugin):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue