Skip to content

extract_model

ExtractModel

Bases: Extractor, AYONPyblishPluginMixin

Extract PolyMesh(.fbx, .abc, .obj) in Zbrush

Source code in client/ayon_zbrush/plugins/publish/extract_model.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
class ExtractModel(publish.Extractor,
                   AYONPyblishPluginMixin):
    """
    Extract PolyMesh(.fbx, .abc, .obj) in Zbrush
    """

    order = pyblish.api.ExtractorOrder - 0.05
    label = "Extract Model"
    hosts = ["zbrush"]
    families = ["model"]

    def process(self, instance):
        creator_attrs = instance.data["creator_attributes"]
        subd_level = creator_attrs.get("subd_level")
        export_format = creator_attrs.get("exportFormat")
        stagingdir = self.staging_dir(instance)
        filename = f"{instance.name}.{export_format}"
        filepath = os.path.join(stagingdir, filename)

        if "representations" not in instance.data:
            instance.data["representations"] = []

        export_tool(filepath, subd_level)
        representation = {
            "name": export_format,
            "ext": export_format,
            "files": filename,
            "stagingDir": stagingdir,
        }

        instance.data["representations"].append(representation)
        self.log.info(
            "Extracted instance '%s' to: %s" % (instance.name, filepath)
        )