Bases: InstancePlugin
Collect Backdrop node instance and its content
Source code in client/ayon_nuke/plugins/publish/collect_backdrop.py
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 | class CollectBackdrops(pyblish.api.InstancePlugin):
"""Collect Backdrop node instance and its content
"""
order = pyblish.api.CollectorOrder + 0.22
label = "Collect Backdrop"
hosts = ["nuke"]
families = ["nukenodes"]
settings_category = "nuke"
def process(self, instance):
transient_data: dict = instance.data["transientData"]
backdrop_node: nuke.BackdropNode = transient_data["node"]
child_nodes: list[nuke.Node] = [
node for node in lib.get_backdrop_nodes(backdrop_node)
# exclude viewer
if node.Class() != "Viewer"
]
# get all connections from outside of backdrop
connections_in, connections_out = lib.get_dependent_nodes(child_nodes)
transient_data["childNodes"] = child_nodes
transient_data["nodeConnectionsIn"] = connections_in
transient_data["nodeConnectionsOut"] = connections_out
# make label nicer
instance.data["label"] = "{0} ({1} nodes)".format(
backdrop_node.name(),
len(child_nodes)
)
self.log.debug("Backdrop instance collected: `{}`".format(instance))
|