Skip to content

gltf

Tools to work with GLTF.

extract_gltf(parent_dir, filename, **kwargs)

Sets GLTF export options from data in the instance.

Source code in client/ayon_maya/api/gltf.py
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
def extract_gltf(parent_dir,
                 filename,
                 **kwargs):

    """Sets GLTF export options from data in the instance.

    """

    cmds.loadPlugin('maya2glTF', quiet=True)
    # load the UI to run mel command
    mel.eval("maya2glTF_UI()")

    parent_dir = parent_dir.replace('\\', '/')
    options = {
        "dsa": 1,
        "glb": True
    }
    options.update(kwargs)

    for key, value in options.copy().items():
        if key not in _gltf_options:
            log.warning("extract_gltf() does not support option '%s'. "
                        "Flag will be ignored..", key)
            options.pop(key)
            options.pop(value)
            continue

    job_args = list()
    default_opt = "maya2glTF -of \"{0}\" -sn \"{1}\"".format(parent_dir, filename) # noqa
    job_args.append(default_opt)

    for key, value in options.items():
        if isinstance(value, str):
            job_args.append("-{0} \"{1}\"".format(key, value))
        elif isinstance(value, bool):
            if value:
                job_args.append("-{0}".format(key))
        else:
            job_args.append("-{0} {1}".format(key, value))

    job_str = " ".join(job_args)
    log.info("{}".format(job_str))
    mel.eval(job_str)

    # close the gltf export after finish the export
    gltf_UI = "maya2glTF_exporter_window"
    if cmds.window(gltf_UI, q=True, exists=True):
        cmds.deleteUI(gltf_UI)