Skip to content

collect_renderable_camera

CollectRenderableCamera

Bases: MayaInstancePlugin

Collect the renderable camera(s) for the render layer

Source code in client/ayon_maya/plugins/publish/collect_renderable_camera.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
class CollectRenderableCamera(plugin.MayaInstancePlugin):
    """Collect the renderable camera(s) for the render layer"""

    # Offset to be after renderlayer collection.
    order = pyblish.api.CollectorOrder + 0.02
    label = "Collect Renderable Camera(s)"
    hosts = ["maya"]
    families = ["vrayscene_layer",
                "renderlayer"]

    def process(self, instance):
        if "vrayscene_layer" in instance.data.get("families", []):
            layer = instance.data.get("layer")
        else:
            layer = instance.data["renderlayer"]

        cameras = cmds.ls(type="camera", long=True)
        renderable = [cam for cam in cameras if
                      get_attr_in_layer("{}.renderable".format(cam), layer)]

        self.log.debug(
            "Found renderable cameras %s: %s", len(renderable), renderable
        )

        instance.data["cameras"] = renderable