Skip to content

collect_backdrop

CollectBackdrops

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))