Skip to content

create_look

CreateLook

Bases: MayaCreator

Shader connections defining shape look

Source code in client/ayon_maya/plugins/create/create_look.py
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
class CreateLook(plugin.MayaCreator):
    """Shader connections defining shape look"""

    identifier = "io.openpype.creators.maya.look"
    label = "Look"
    product_type = "look"
    icon = "paint-brush"

    make_tx = True
    rs_tex = False
    include_texture_reference_objects = False

    def create(self, product_name, instance_data, pre_create_data):
        creator_attributes = instance_data.setdefault(
            "creator_attributes", dict())
        for key in [
            "maketx",
            "rstex",
            "includeTextureReferenceObjects"
        ]:
            if key in pre_create_data:
                creator_attributes[key] = pre_create_data[key]
        return super().create(product_name, instance_data, pre_create_data)

    def get_instance_attr_defs(self):

        return [
            # TODO: This value should actually get set on create!
            TextDef("renderLayer",
                    # TODO: Bug: Hidden attribute's label is still shown in UI?
                    hidden=True,
                    default=lib.get_current_renderlayer(),
                    label="Renderlayer",
                    tooltip="Renderlayer to extract the look from"),
            BoolDef("maketx",
                    label="MakeTX",
                    tooltip="Whether to generate .tx files for your textures",
                    default=self.make_tx),
            BoolDef("rstex",
                    label="Convert textures to .rstex",
                    tooltip="Whether to generate Redshift .rstex files for "
                            "your textures",
                    default=self.rs_tex),
            BoolDef("includeTextureReferenceObjects",
                    label="Texture Reference Objects",
                    tooltip=(
                        "Whether to include texture reference objects "
                        "with the published look to reconnect to geometry "
                        "when assigning the look."
                    ),
                    default=self.include_texture_reference_objects)
        ]

    def get_pre_create_attr_defs(self):
        # Show same attributes on create but include use selection
        defs = list(super().get_pre_create_attr_defs())
        defs.extend(self.get_instance_attr_defs())
        return defs