0

I'm working on a script that would export the file as an fbx. This script is a part of a python package. When I'm launching it, it errors out with a message:

Error: ValueError: file C:/Users/Valeriya/Documents/maya/scripts\CreatureExport\CreatureAnimBakeProcess.py line 11: empty separator

I think that this is because of the way I have the attributes at the start of my script. But I don't know how to format it properly. What am I doing wrong?

presetPathName = "C:\Users\Valeriya\Documents\maya\scripts\CreatureExport\AnimExportFBXpreset.fbxexportpreset"


filePathName = cmds.file(query=True, sceneName=True)
fileName = filePathName.split('/')[-1]
newFileName = fileName.split('.')[0]
DIRECTORY = newFileName.split(fileName)[0]
newDIRECTORY = os.path.join(DIRECTORY, 'Export')


def createDirectory(directory = newDIRECTORY):
        """

        Creates a given Directory if it doesn't exist
        Args:
            directory(str):The directory to create
        """
        if not os.path.exists(directory):
            os.mkdir(directory)
        return


class CreatureExport(dict):

    def imprtRef(self):
        all_ref_paths = cmds.file(q=True, reference=True) or []
        for ref_path in all_ref_paths:
            if cmds.referenceQuery(ref_path, isLoaded=True):
                cmds.file(ref_path, importReference=True)

                new_ref_paths = cmds.file(q=True, reference=True)
                if new_ref_paths:
                    for new_ref_path in new_ref_paths:
                        if new_ref_path not in all_ref_paths:
                            all_ref_paths.append(new_ref_path)

        return imprtRef

    def rmvNameSp(self):
        all_namespaces = [x for x in cmds.namespaceInfo(listOnlyNamespaces=True, recurse=True) if
                          x != "UI" and x != "shared"]

        if all_namespaces:
            all_namespaces.sort(key=len, reverse=True)
            for namespace in all_namespaces:
                if cmds.namespace(exists=namespace) is True:
                    cmds.namespace(removeNamespace=namespace, mergeNamespaceWithRoot=True)
        return rmvNameSp

    def bakeProcess(self):
        defSet = 'DeformSet'
        set = cmds.sets(defSet, q=True)

        cmds.select(set, hi=True)

        allSelected = cmds.ls(sl=True)

        startTime = cmds.playbackOptions(query=True, minTime=True)
        endTime = cmds.playbackOptions(query=True, maxTime=True)

        cmds.bakeResults(allSelected, simulation=True, t=(startTime, endTime))
        if cmds.objExists('Position') == 1:
            cmds.parent('Position', world=True)
        if cmds.objExists('Position') == 0:
            cmds.select(cl=True)
            cmds.joint(n='Position')
            cmds.parent('Root_M','Position')
        cmds.showHidden(above=True)

        return bakeProcess

    def fbxExp(self):
        cmds.loadPlugin("fbxmaya")
        mel.FBXLoadExportPresetFile(f=presetPathName)

        cmds.select('Position')
        sel = cmds.listRelatives('Position', c=True, ad=True)
        for obj in sel:
            shortName = obj.split("|")[-1]

            children = cmds.listRelatives(obj, c=True, f=True) or []
            if len(children) == 1:
                child = children[0]
                objType = cmds.objectType(child)
            else:
                objType = cmds.objectType(obj)

            if objType == "mesh":
                cmds.delete(obj)
            if objType == "locator":
                cmds.delete(obj)
            if objType == "parentConstraint":
                cmds.delete(obj)
            else:
                pass
        cmds.select('Position', hierarchy=True)

        nameExport = newDIRECTORY + '/' + newFileName + '.fbx'
        mel.FBXExport(s=True, f=nameExport, force=True, options=True)

        return fbxExp

    def expProcess(self):
        createDirectory()
        imprtRef()
        rmvNameSp()
        bakeProcess()
        fbxExp()
        return prepProcess
mkrieger1
  • 19,194
  • 5
  • 54
  • 65

0 Answers0