Skip to content

validate_renderable_camera

ValidateRenderableCamera

Bases: InstancePlugin, OptionalPyblishPluginMixin

Validates Renderable Camera

Check if the renderable camera used for rendering

Source code in client/ayon_max/plugins/publish/validate_renderable_camera.py
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
41
42
43
44
45
46
class ValidateRenderableCamera(pyblish.api.InstancePlugin,
                               OptionalPyblishPluginMixin):
    """Validates Renderable Camera

    Check if the renderable camera used for rendering
    """

    order = pyblish.api.ValidatorOrder
    families = ["maxrender"]
    hosts = ["max"]
    label = "Renderable Camera"
    optional = True
    actions = [RepairAction]

    def process(self, instance):
        if not self.is_active(instance.data):
            return
        if not instance.data["cameras"]:
            raise PublishValidationError(
                "No renderable Camera found in scene."
            )

    @classmethod
    def repair(cls, instance):

        rt.viewport.setType(rt.Name("view_camera"))
        camera = rt.viewport.GetCamera()
        cls.log.info(f"Camera {camera} set as renderable camera")
        renderer_class = get_current_renderer()
        renderer = str(renderer_class).split(":")[0]
        if renderer == "Arnold":
            arv = rt.MAXToAOps.ArnoldRenderView()
            arv.setOption("Camera", str(camera))
            arv.close()
        instance.data["cameras"] = [camera.name]