Esempio n. 1
0
def addGizmosFromAsset(asst):
    gizmos = False
    a = ueAssetUtils.getElements(ueSpec.Spec(asst[0], asst[1], asst[2]))
    if "giz" in a:
        for n in a["giz"]:
            for p in a["giz"][n]:
                spec = ueSpec.Spec(asst[0], asst[1], asst[2], "giz", n, p)
                versions = ueAssetUtils.getVersions(spec)
                version = versions[len(versions) - 1]
                menu = "%s:%s:%s/%s/%s" % (spec.proj, spec.grp, spec.asst, n,
                                           p)
                # Add a 'ueGizVers' knob to hold the version of the gizmo
                # we're bringing in. This can be used for version control later.
                # When you add a custom knob, Nuke makes the User tab active,
                # so a hack around that is to add the node with the prefs panel
                # disabled, add the custom knobs, then show the prefs.
                command = str('n = nuke.createNode("' + version["file_name"] +
                              '", \
                           "name ' + p + '", inpanel=False); \
                           n.addKnob(nuke.Int_Knob("ueGizmoVers", "gizmo version")); \
                           n.knob("ueGizmoVers").setValue(' +
                              str(len(versions)) + '); \
                           n.showControlPanel()')
                nuke.toolbar("Nodes").addCommand("ueTools/" + menu, command)
                nuke.menu("Nuke").addCommand("ueTools/gizmos/" + menu, command)
                gizmos = True
    if gizmos:
        nuke.toolbar("Nodes").addCommand("ueTools/-", "")
Esempio n. 2
0
def listAssets():
    for asset in sorted(ueAssetUtils.getAssetsList(settings["spec"])):
        settings["spec"].asst = asset
        asset = ueAssetUtils.getAsset(settings["spec"])
        printLine = asset["name"]
        if "paths" in settings:
            printLine += " -> %s" % asset["path"]
        print printLine
Esempio n. 3
0
    def load(self):
        nodes = []
        for sequence in self.parent.edit["sequences"]:
            for shot in self.parent.edit[sequence]["shots"]:
                editShot = self.parent.edit[sequence][shot]
                storyboard = []
                animatic = []

                spec = ueSpec.Spec(os.getenv("PROJ"), sequence, shot, "sb",
                                   "storyboard", "master")

                storyboard = ueAssetUtils.getVersions(spec)

                if storyboard:
                    path = os.path.join(storyboard[-1]["path"],
                                        storyboard[-1]["file_name"] + ".jpg")
                    spec.eltype = "animatic"
                    spec.elclass = "an"
                    animatic = ueAssetUtils.getVersions(spec)
                    if animatic:
                        path = os.path.join(
                            animatic[-1]["path"],
                            animatic[-1]["file_name"] + ".####.jpeg")
                elif shot == "black":
                    path = os.path.join(os.getenv("UE_PATH"), "lib",
                                        "placeholders", "black.png")
                elif shot == "white":
                    path = os.path.join(os.getenv("UE_PATH"), "lib",
                                        "placeholders", "white.png")
                else:
                    path = os.path.join(os.getenv("UE_PATH"), "lib",
                                        "placeholders", "nuke.png")

                commands.addSource(path, None)

                sourceNode = commands.nodesOfType("RVSourceGroup")[-1]

                if storyboard and not animatic:
                    retimeNode = commands.newNode(
                        "RVRetimeGroup", "%s_%sRetime" % (sequence, shot))
                    commands.setNodeInputs(retimeNode, [sourceNode])
                    time = float(editShot["endFrame"]) - float(
                        editShot["startFrame"]) + 1
                    commands.setFloatProperty(
                        "%s_retime.visual.scale" % retimeNode, [float(time)],
                        False)
                    node = retimeNode
                else:
                    node = sourceNode

                nodes.append(node)

        commands.setNodeInputs("defaultSequence", nodes)
        commands.setViewNode("defaultSequence")
Esempio n. 4
0
def printInfo():
    if "spec" not in info:
        print "ERROR: Spec not set"
        sys.exit(2)

    spec = ueSpec.Spec(info["spec"])

    if spec.grp == None:
        # Project info
        assetType = "project"
        assetInfo = ueAssetUtils.getProject(spec)
    elif spec.asst == None:
        # Group info
        assetType = "group"
        assetInfo = ueAssetUtils.getGroup(spec)
    elif spec.elclass == None and \
         spec.eltype == None and \
         spec.elname == None:
        # Asset info
        assetType = "asset"
        assetInfo = ueAssetUtils.getAsset(spec)
    elif spec.vers == None:
        # Element info
        assetType = "element"
        assetInfo = ueAssetUtils.getElement(spec)
        assetInfo = assetInfo[spec.elclass][spec.eltype][spec.elname]
    elif spec.elpass == None:
        # Version info
        assetType = "version"
        assetInfo = ueAssetUtils.getVersions(spec)[int(spec.vers) - 1]
    else:
        print "ERROR: Could not identify spec as a valid element"
        sys.exit(2)

    print "Information on %s:\n%s\n" % (assetType, str(info["spec"]))

    for a in sorted(assetInfo):
        # Get a padding value so the key/value columns will be neatly aligned
        spacePadding = 28 - len(a)

        # Parse the version and datetime info correctly
        if a == "versions":
            assetInfo[a] = len(assetInfo[a])
        elif a in ["created_at", "updated_at"]:
            assetInfo[a] = ueCore.formatDatetime(str(assetInfo[a]))

        # Get rid of the keys with _id because they're database stuff
        if not re.match(".*_id$", a):
            print "%s:%s%s" % (a, " " * spacePadding, str(assetInfo[a]))

    print ""
Esempio n. 5
0
File: ueInfo.py Progetto: hdd/ue
def printInfo():
    if "spec" not in info:
        print "ERROR: Spec not set"
        sys.exit(2)

    spec = ueSpec.Spec(info["spec"])

    if spec.grp == None:
        # Project info
        assetType = "project"
        assetInfo = ueAssetUtils.getProject(spec)
    elif spec.asst == None:
        # Group info
        assetType = "group"
        assetInfo = ueAssetUtils.getGroup(spec)
    elif spec.elclass == None and \
         spec.eltype == None and \
         spec.elname == None:
        # Asset info
        assetType = "asset"
        assetInfo = ueAssetUtils.getAsset(spec)
    elif spec.vers == None:
        # Element info
        assetType = "element"
        assetInfo = ueAssetUtils.getElement(spec)
        assetInfo = assetInfo[spec.elclass][spec.eltype][spec.elname]
    elif spec.elpass == None:
        # Version info
        assetType = "version"
        assetInfo = ueAssetUtils.getVersions(spec)[int(spec.vers)-1]
    else:
        print "ERROR: Could not identify spec as a valid element"
        sys.exit(2)

    print "Information on %s:\n%s\n" % (assetType, str(info["spec"]))

    for a in sorted(assetInfo):
        # Get a padding value so the key/value columns will be neatly aligned
        spacePadding = 28-len(a)

        # Parse the version and datetime info correctly
        if a == "versions":
            assetInfo[a] = len(assetInfo[a])
        elif a in ["created_at", "updated_at"]:
            assetInfo[a] = ueCore.formatDatetime(str(assetInfo[a]))

        # Get rid of the keys with _id because they're database stuff
        if not re.match(".*_id$", a):
            print "%s:%s%s" % (a, " "*spacePadding, str(assetInfo[a]))

    print ""
Esempio n. 6
0
def createElement(spec, dbMeta={}):
    element = ueAssetUtils.getElement(spec)

    if element:
        return element

    element["created_by"] = getpass.getuser()

    for m in dbMeta:
        element[m] = dbMeta[m]

    ueClient.client.saveElement(spec, element)

    return ueAssetUtils.getElement(spec)
Esempio n. 7
0
File: Create.py Progetto: hdd/ue
def createElement(spec, dbMeta={}):
    element = ueAssetUtils.getElement(spec)

    if element:
        return element

    element["created_by"] = getpass.getuser()

    for m in dbMeta:
        element[m] = dbMeta[m]

    ueClient.client.saveElement(spec, element)

    return ueAssetUtils.getElement(spec)
Esempio n. 8
0
File: Create.py Progetto: hdd/ue
def createProject(spec, dbMeta={}):
    project = ueAssetUtils.getProject(spec)

    if project:
        return project

    project["name"] = spec.proj
    project["created_by"] = getpass.getuser()

    for m in dbMeta:
        project[m] = dbMeta[m]

    ueClient.client.saveProject(spec, project)

    return ueAssetUtils.getProject(spec)
Esempio n. 9
0
def createProject(spec, dbMeta={}):
    project = ueAssetUtils.getProject(spec)

    if project:
        return project

    project["name"] = spec.proj
    project["created_by"] = getpass.getuser()

    for m in dbMeta:
        project[m] = dbMeta[m]

    ueClient.client.saveProject(spec, project)

    return ueAssetUtils.getProject(spec)
Esempio n. 10
0
def createAsset(spec, asstType="default", dbMeta={}):
    asset = ueAssetUtils.getAsset(spec)

    if asset:
        return asset

    asset["name"] = spec.asst
    asset["asset_type"] = asstType
    asset["created_by"] = getpass.getuser()

    for m in dbMeta:
        asset[m] = dbMeta[m]

    ueClient.client.saveAsset(spec, asset)

    return ueAssetUtils.getAsset(spec)
Esempio n. 11
0
def createGroup(spec, grpType="default", dbMeta={}):
    group = ueAssetUtils.getGroup(spec)

    if group:
        return group

    group["name"] = spec.grp
    group["group_type"] = grpType
    group["created_by"] = getpass.getuser()

    for m in dbMeta:
        group[m] = dbMeta[m]

    ueClient.client.saveGroup(spec, group)

    return ueAssetUtils.getGroup(spec)
Esempio n. 12
0
 def loadLayerLists(self):
     elements = ueAssetUtils.getElements(ueSpec.Spec(proj, grp, asst))
     self.layerListPickerBox.clear()
     if __layerClass__ in elements:
         if __layerType__ in elements[__layerClass__]:
             for layerList in sorted(elements[__layerClass__][__layerType__]):
                 self.layerListPickerBox.addItem(layerList)
Esempio n. 13
0
 def loadElements(self):
     global asst, elements
     asst = str(self.asstMenu.currentText())
     elements = ueAssetUtils.getElements(ueSpec.Spec(proj, grp, asst))
     self.animationTab.reload()
     self.backgroundTab.reload()
     self.renderTab.reload()
Esempio n. 14
0
File: __init__.py Progetto: hdd/ue
def ueNewScriptSetup():
    context = ueSpec.Context()
    spec = context.spec

    asset = ueAssetUtils.getAsset(spec)

    # Set up renderer - default to Mental Ray
    loadPlugin("Mayatomr.so")
    maya.cmds.setAttr("defaultRenderGlobals.currentRenderer", "mentalRay", type="string")

    # Set up the timeline
    maya.cmds.playbackOptions(animationStartTime=float(asset["startFrame"]),
                              animationEndTime=float(asset["endFrame"]),
                              minTime=float(asset["startFrame"]),
                              maxTime=float(asset["endFrame"]))

    x = int(asset["xRes"])+int(asset["xPad"])
    y = int(asset["yRes"])+int(asset["yPad"])

    # Set up renderGlobals
    maya.cmds.setAttr("defaultRenderGlobals.outFormatControl", 0)
    maya.cmds.setAttr("defaultRenderGlobals.animation", 1)
    maya.cmds.setAttr("defaultRenderGlobals.startFrame", float(asset["startFrame"]))
    maya.cmds.setAttr("defaultRenderGlobals.endFrame", float(asset["endFrame"]))
    maya.cmds.setAttr("defaultResolution.pixelAspect", float(asset["aspectRatio"]))
    maya.cmds.setAttr("defaultResolution.deviceAspectRatio", float(x)/float(y))
    maya.cmds.setAttr("defaultResolution.width", x)
    maya.cmds.setAttr("defaultResolution.height", y)

    os.environ["FRAME_RATE"] = asset["frameRate"]
    os.environ["FIRST_FRAME"] = asset["startFrame"]
    os.environ["LAST_FRAME"] = asset["endFrame"]
Esempio n. 15
0
File: ueAddFiles.py Progetto: hdd/ue
def addFiles():
    if not "files" in config:
        print "ERROR: No files given"
        sys.exit(2)

    if not "spec" in config:
        print "ERROR: Spec not set"
        sys.exit(2)

    e = ueAssetUtils.getElement(config["spec"])
    if e == {}:
        e = ueCreate.createElement(config["spec"])

    v = ueCreate.createVersion(config["spec"])

    config["spec"].vers = v["version"]

    files = glob.glob(config["files"])

    path = v["path"]
    name = v["file_name"]
    ext = files[0].split(".")[-1]

    if len(files) == 1:
        dest = os.path.join(path, "%s.%s" % (name, ext))
        ueFileUtils.copyFile(files[0], dest)
    else:
        for f in sorted(files):
            dest = os.path.join(path, "%s.%04d.%s" % (name, files.index(f)+1, ext))
            ueFileUtils.copyFile(f, dest)
Esempio n. 16
0
def addFiles():
    if not "files" in config:
        print "ERROR: No files given"
        sys.exit(2)

    if not "spec" in config:
        print "ERROR: Spec not set"
        sys.exit(2)

    e = ueAssetUtils.getElement(config["spec"])
    if e == {}:
        e = ueCreate.createElement(config["spec"])

    v = ueCreate.createVersion(config["spec"])

    config["spec"].vers = v["version"]

    files = glob.glob(config["files"])

    path = v["path"]
    name = v["file_name"]
    ext = files[0].split(".")[-1]

    if len(files) == 1:
        dest = os.path.join(path, "%s.%s" % (name, ext))
        ueFileUtils.copyFile(files[0], dest)
    else:
        for f in sorted(files):
            dest = os.path.join(path,
                                "%s.%04d.%s" % (name, files.index(f) + 1, ext))
            ueFileUtils.copyFile(f, dest)
Esempio n. 17
0
def getUeConstant():
    n = nuke.thisNode()

    spec = ueSpec.Spec(
        n.knob("proj").value(),
        n.knob("grp").value(),
        n.knob("asst").value(),
        n.knob("elclass").value(),
        n.knob("eltype").value(),
        n.knob("elname").value(),
        n.knob("vers").value())

    if not spec.proj == "" and not spec.grp == "" and \
       not spec.asst == "" and not spec.elclass == "" and \
       not spec.eltype == "" and not spec.elname == "" and \
       not spec.vers == "":
        versions = ueAssetUtils.getVersions(spec)
        if int(spec.vers) > len(versions):
            return
        v = versions[int(spec.vers) - 1]
        if v:
            layerFile = os.path.join(v["path"], "%s.col" % v["file_path"])
            if os.path.exists(layerFile):
                f = open(layerFile)
                palette = json.loads(layerfile.read())
                f.close()
                if spec.elname in palette:
                    colour.knob("color").setValue(palette[spec.elname][0], 0)
                    colour.knob("color").setValue(palette[spec.elname][1], 1)
                    colour.knob("color").setValue(palette[spec.elname][2], 2)
                    colour.knob("color").setValue(1.0, 3)
Esempio n. 18
0
File: __init__.py Progetto: hdd/ue
def ueNewScriptSetup():
    root = nuke.root()

    context = ueSpec.Context()
    spec = context.spec

    asset = ueAssetUtils.getAsset(spec)

    formatName = "ueProjectRes"

    root.knob("fps").setValue(int(asset["frameRate"]))
    root.knob("first_frame").setValue(int(asset["startFrame"]))
    root.knob("last_frame").setValue(int(asset["endFrame"]))

    x = int(asset["xRes"])+int(asset["xPad"])
    y = int(asset["yRes"])+int(asset["yPad"])

    nuke.addFormat("%i %i %s" % (x, y, formatName))
#    nuke.addFormat("%i %i %i %i %i %i %d %s" % (x, y, int(config["xPad"]), int(config["yPad"]),
#                                                int(config["xRes"]), int(config["yRes"]),
#                                                float(config["aspectRatio"]), formatName))
    root.knob("format").setValue(formatName)

    os.environ["FRAME_RATE"] = asset["frameRate"]
    os.environ["FIRST_FRAME"] = asset["startFrame"]
    os.environ["LAST_FRAME"] = asset["endFrame"]
Esempio n. 19
0
 def loadElements(self):
     global asst, elements
     asst = str(self.asstMenu.currentText())
     elements = ueAssetUtils.getElements(ueSpec.Spec(proj, grp, asst))
     self.animationTab.reload()
     self.backgroundTab.reload()
     self.renderTab.reload()
Esempio n. 20
0
File: __init__.py Progetto: hdd/ue
def getUeConstant():
    n = nuke.thisNode()

    spec = ueSpec.Spec(n.knob("proj").value(),
                       n.knob("grp").value(),
                       n.knob("asst").value(),
                       n.knob("elclass").value(),
                       n.knob("eltype").value(),
                       n.knob("elname").value(),
                       n.knob("vers").value())

    if not spec.proj == "" and not spec.grp == "" and \
       not spec.asst == "" and not spec.elclass == "" and \
       not spec.eltype == "" and not spec.elname == "" and \
       not spec.vers == "":
        versions = ueAssetUtils.getVersions(spec)
        if int(spec.vers) > len(versions):
            return
        v = versions[int(spec.vers)-1]
        if v:
            layerFile = os.path.join(v["path"], "%s.col" % v["file_path"])
            if os.path.exists(layerFile):
                f = open(layerFile)
                palette = json.loads(layerfile.read())
                f.close()
                if spec.elname in palette:
                    colour.knob("color").setValue(palette[spec.elname][0], 0)
                    colour.knob("color").setValue(palette[spec.elname][1], 1)
                    colour.knob("color").setValue(palette[spec.elname][2], 2)
                    colour.knob("color").setValue(1.0, 3)
Esempio n. 21
0
    def updateVersInfo(self):
        try:
            ver = self.versions[int(vers) - 1]
            spec = ueSpec.Spec(proj, grp, asst, elclass, eltype, elname, vers, elpass)

            self.verCreatedBy.setText(ver["created_by"])
            self.verCreatedAt.setText(ueCore.formatDatetime(ver["created_at"]))

            files = glob.glob(os.path.join(ver["path"], ver["file_name"] + "*"))
            self.verFilesList.clear()
            for f in sorted(files):
                self.verFilesList.addItem(QtGui.QListWidgetItem(os.path.basename(f)))

            if "comment" in ver:
                self.verComment.setText(ver["comment"])
            else:
                self.verComment.setText("N/A")

            if "thumbnail" in ver:
                spec = ueSpec.Spec(proj, grp, asst, elclass, eltype, elname, vers)
                f = ueAssetUtils.getThumbnailPath(spec)
                img = QtGui.QImage(f)
                imgs = img.scaled(200, 80, aspectRatioMode=QtCore.Qt.KeepAspectRatio)
                self.verThumb.setPixmap(QtGui.QPixmap.fromImage(imgs))
            else:
                img = QtGui.QImage(os.path.join(os.getenv("UE_PATH"), "lib", "placeholders", "thumbnail.png"))
                imgs = img.scaled(200, 80, aspectRatioMode=QtCore.Qt.KeepAspectRatio)
                self.verThumb.setPixmap(QtGui.QPixmap.fromImage(imgs))
        except IndexError:
            pass
Esempio n. 22
0
File: Create.py Progetto: hdd/ue
def createGroup(spec, grpType="default", dbMeta={}):
    group = ueAssetUtils.getGroup(spec)

    if group:
        return group

    group["name"] = spec.grp
    group["group_type"] = grpType
    group["created_by"] = getpass.getuser()

    for m in dbMeta:
        group[m] = dbMeta[m]

    ueClient.client.saveGroup(spec, group)

    return ueAssetUtils.getGroup(spec)
Esempio n. 23
0
File: __init__.py Progetto: hdd/ue
def getReadGeoPath():
    n = nuke.thisNode()

    spec = ueSpec.Spec(n.knob("proj").value(),
                       n.knob("grp").value(),
                       n.knob("asst").value(),
                       n.knob("elclass").value(),
                       n.knob("eltype").value(),
                       n.knob("elname").value(),
                       n.knob("vers").value())

    p = os.path.join(os.getenv("UE_PATH"), "lib",
                     "placeholders", "nuke.obj")

    if not spec.proj == "" and not spec.grp == "" and \
       not spec.asst == "" and not spec.elclass == "" and \
       not spec.eltype == "" and not spec.elname == "" and \
       not spec.vers == "":
        versions = ueAssetUtils.getVersions(spec)
        if int(spec.vers) > len(versions):
            return p
        v = versions[int(spec.vers)-1]
        if v:
            files = glob.glob(os.path.join(v["path"], v["file_name"]+"*.obj"))
            if len(files) < 1:
                return p
            ext = files[0].split(".")[-1]
            if len(files) == 1:
                p = os.path.join(v["path"], v["file_name"]+"."+ext)
            else:
                p = os.path.join(v["path"], v["file_name"]+".%04d."+ext)
#                p = os.path.join(v["path"], elpassDir,
#                                 v["file_name"]+elpassFile+".%04d."+ext)

    return p
Esempio n. 24
0
    def loadElements(self):
        global asst
        asst = str(self.asstMenu.currentText())
        spec = ueSpec.Spec(proj, grp, asst)
        self.elements = ueAssetUtils.getElements(spec)
#        self.eltypeList.clear()
        self.loadTypes()
Esempio n. 25
0
 def loadElements(self):
     global asst
     asst = str(self.asstMenu.currentText())
     spec = ueSpec.Spec(proj, grp, asst)
     self.elements = ueAssetUtils.getElements(spec)
     #        self.eltypeList.clear()
     self.loadTypes()
Esempio n. 26
0
def ueNewScriptSetup():
    root = nuke.root()

    context = ueSpec.Context()
    spec = context.spec

    asset = ueAssetUtils.getAsset(spec)

    formatName = "ueProjectRes"

    root.knob("fps").setValue(int(asset["frameRate"]))
    root.knob("first_frame").setValue(int(asset["startFrame"]))
    root.knob("last_frame").setValue(int(asset["endFrame"]))

    x = int(asset["xRes"]) + int(asset["xPad"])
    y = int(asset["yRes"]) + int(asset["yPad"])

    nuke.addFormat("%i %i %s" % (x, y, formatName))
    #    nuke.addFormat("%i %i %i %i %i %i %d %s" % (x, y, int(config["xPad"]), int(config["yPad"]),
    #                                                int(config["xRes"]), int(config["yRes"]),
    #                                                float(config["aspectRatio"]), formatName))
    root.knob("format").setValue(formatName)

    os.environ["FRAME_RATE"] = asset["frameRate"]
    os.environ["FIRST_FRAME"] = asset["startFrame"]
    os.environ["LAST_FRAME"] = asset["endFrame"]
Esempio n. 27
0
File: Create.py Progetto: hdd/ue
def createAsset(spec, asstType="default", dbMeta={}):
    asset = ueAssetUtils.getAsset(spec)

    if asset:
        return asset

    asset["name"] = spec.asst
    asset["asset_type"] = asstType
    asset["created_by"] = getpass.getuser()

    for m in dbMeta:
        asset[m] = dbMeta[m]

    ueClient.client.saveAsset(spec, asset)

    return ueAssetUtils.getAsset(spec)
Esempio n. 28
0
    def updateVersInfo(self):
        try:
            ver = self.versions[int(vers)-1]
            spec = ueSpec.Spec(proj, grp, asst, elclass, eltype, elname, vers, elpass)

            self.verCreatedBy.setText(ver["created_by"])
            self.verCreatedAt.setText(ueCore.formatDatetime(ver["created_at"]))

            files = glob.glob(os.path.join(ver["path"], ver["file_name"]+"*"))
            self.verFilesList.clear()
            for f in sorted(files):
                self.verFilesList.addItem(QtGui.QListWidgetItem(os.path.basename(f)))

            if "comment" in ver:
                self.verComment.setText(ver["comment"])
            else:
                self.verComment.setText("N/A")

            if "thumbnail" in ver:
                spec = ueSpec.Spec(proj, grp, asst, elclass, eltype, elname, vers)
                f = ueAssetUtils.getThumbnailPath(spec)
                img = QtGui.QImage(f)
                imgs = img.scaled(200, 80, aspectRatioMode=QtCore.Qt.KeepAspectRatio)
                self.verThumb.setPixmap(QtGui.QPixmap.fromImage(imgs))
            else:
                img = QtGui.QImage(os.path.join(os.getenv("UE_PATH"), "lib", "placeholders", "thumbnail.png"))
                imgs = img.scaled(200, 80, aspectRatioMode=QtCore.Qt.KeepAspectRatio)
                self.verThumb.setPixmap(QtGui.QPixmap.fromImage(imgs))
        except IndexError:
            pass
Esempio n. 29
0
File: Create.py Progetto: hdd/ue
def createVersion(spec, dbMeta={}, layer=None):
    version = {}

    spec.vers = len(ueAssetUtils.getVersions(spec))+1

    version["version"] = spec.vers
    version["created_by"] = getpass.getuser()

    for m in dbMeta:
        version[m] = dbMeta[m]

    if not layer == None:
        p = os.path.join(version["path"])

    ueClient.client.saveVersion(spec, version)

    return ueAssetUtils.getVersions(spec)[spec.vers-1]
Esempio n. 30
0
def loadGizmosFromAsset(asst):
    path = []
    a = ueAssetUtils.getElements(ueSpec.Spec(asst[0], asst[1], asst[2]))
    if "giz" in a:
        for n in a["giz"]:
            for p in a["giz"][n]:
                path.append(a["giz"][n][p]["path"])
    return path
Esempio n. 31
0
 def loadLayerLists(self):
     elements = ueAssetUtils.getElements(ueSpec.Spec(proj, grp, asst))
     self.layerListPickerBox.clear()
     if __layerClass__ in elements:
         if __layerType__ in elements[__layerClass__]:
             for layerList in sorted(
                     elements[__layerClass__][__layerType__]):
                 self.layerListPickerBox.addItem(layerList)
Esempio n. 32
0
def createVersion(spec, dbMeta={}, layer=None):
    version = {}

    spec.vers = len(ueAssetUtils.getVersions(spec)) + 1

    version["version"] = spec.vers
    version["created_by"] = getpass.getuser()

    for m in dbMeta:
        version[m] = dbMeta[m]

    if not layer == None:
        p = os.path.join(version["path"])

    ueClient.client.saveVersion(spec, version)

    return ueAssetUtils.getVersions(spec)[spec.vers - 1]
Esempio n. 33
0
 def loadAssets(self):
     global grp
     grp = str(self.grpMenu.currentText())
     spec = ueSpec.Spec(proj, grp)
     al = sorted(ueAssetUtils.getAssetsList(spec))
     self.asstMenu.clear()
     for a in al:
         self.asstMenu.addItem(a)
     self.loadElements()
Esempio n. 34
0
 def loadElements(self):
     self.elements = ueAssetUtils.getElements(self.spec)
     if "arc" in self.elements:
         spec = copy.deepcopy(self.spec)
         spec.elclass = "arc"
         for eltype in self.elements["arc"]:
             spec.eltype = eltype
             self.libraryWidgets.append(LibraryWidget(self.elements["arc"][eltype], parent=self))
         self.drawLibraryWidgets()
Esempio n. 35
0
 def loadGroups(self):
     global proj
     proj = str(self.projMenu.currentText())
     spec = ueSpec.Spec(proj)
     gl = sorted(ueAssetUtils.getGroupsList(spec))
     self.grpMenu.clear()
     for g in gl:
         self.grpMenu.addItem(g)
     self.loadAssets()
Esempio n. 36
0
 def open(self):
     spec = ueCommonOpen.getValues()
     version = ueAssetUtils.getVersions(spec)[spec.vers - 1]
     maya.cmds.file(os.path.join(version["path"],
                                 version["file_name"] + ".ma"),
                    o=True,
                    f=True)
     print "Opened %s" % spec
     self.close()
Esempio n. 37
0
File: Save.py Progetto: hdd/ue
 def loadAssets(self):
     global grp
     grp = str(self.grpMenu.currentText())
     spec = ueSpec.Spec(proj, grp)
     al = sorted(ueAssetUtils.getAssetsList(spec))
     self.asstMenu.clear()
     for a in al:
         self.asstMenu.addItem(a)
     self.loadElements()
Esempio n. 38
0
File: Save.py Progetto: hdd/ue
 def loadGroups(self):
     global proj
     proj = str(self.projMenu.currentText())
     spec = ueSpec.Spec(proj)
     gl = sorted(ueAssetUtils.getGroupsList(spec))
     self.grpMenu.clear()
     for g in gl:
         self.grpMenu.addItem(g)
     self.loadAssets()
Esempio n. 39
0
File: EditUI.py Progetto: hdd/ue
 def loadEdits(self):
     elements = ueAssetUtils.getElements(self.spec)
     self.editMenu.clear()
     if self.spec.elclass in elements:
         if self.spec.eltype in elements[self.spec.elclass]:
             for name in elements[self.spec.elclass][self.spec.eltype]:
                 self.editMenu.addItem(name)
             self.spec.elname = str(self.editMenu.currentText())
             self.loadEditVersions()
Esempio n. 40
0
 def loadEdits(self):
     elements = ueAssetUtils.getElements(self.spec)
     self.editMenu.clear()
     if self.spec.elclass in elements:
         if self.spec.eltype in elements[self.spec.elclass]:
             for name in elements[self.spec.elclass][self.spec.eltype]:
                 self.editMenu.addItem(name)
             self.spec.elname = str(self.editMenu.currentText())
             self.loadEditVersions()
Esempio n. 41
0
 def loadVersions(self):
     self.elname = str(self.backgroundList.currentItem().text())
     self.versList.clear()
     spec = ueSpec.Spec(proj, grp, asst, __bgClass__, __bgType__, self.elname)
     vers = ueAssetUtils.getVersions(spec)
     for v in sorted(range(len(vers)), reverse=True):
         item = QtGui.QListWidgetItem("%04d" % int(v + 1))
         self.versList.addItem(item)
     self.versList.setCurrentItem(self.versList.item(0))
Esempio n. 42
0
    def createScript(self):
        job = {}

        if self.run == "nuke":
            ext = "nk"

        proj = ueAssetUtils.getProject(self.destSpec)
        asst = ueAssetUtils.getAsset(self.destSpec)

        versions = ueAssetUtils.getVersions(self.sourceSpec)
        version = versions[len(versions) - 1]

        p = os.path.join(version["path"], version["file_name"] + "." + ext)

        for f in range(self.frame_start, self.frame_end + 1):
            frame = {}
            if self.run == "nuke":
                frame["cmd"] = "nuke -x -V -f -X %s -F %i-%i %s" % (",".join(
                    self.options["writeNode"]), f, f, p)
            frame["proj"] = self.destSpec.proj
            frame["grp"] = self.destSpec.grp
            frame["asst"] = self.destSpec.asst
            frame["proj_root"] = proj["path"]
            frame["asst_root"] = asst["path"]
            job[f] = frame

        versions = ueAssetUtils.getVersions(self.destSpec)
        version = versions[len(versions) - 1]

        p = os.path.join(
            asst["path"], "tmp", "drQueue",
            version["file_name"] + "." + str(int(time.time())) + ".dq")

        if not os.path.exists(os.path.dirname(p)):
            import ueCore.FileUtils as ueFileUtils
            ueFileUtils.createDir(os.path.dirname(p))

        try:
            f = open(p, "w")
            f.write(json.dumps(job, sort_keys=True, indent=4))
            f.close()
        except IOError, e:
            print "ERROR: Creating job script '%s' (%s)" % (p, e)
            sys.exit(2)
Esempio n. 43
0
File: EditUI.py Progetto: hdd/ue
    def load(self):
        nodes = []
        for sequence in self.parent.edit["sequences"]:
            for shot in self.parent.edit[sequence]["shots"]:
                editShot = self.parent.edit[sequence][shot]
                storyboard = []
                animatic = []

                spec = ueSpec.Spec(os.getenv("PROJ"), sequence, shot, "sb", "storyboard", "master")

                storyboard = ueAssetUtils.getVersions(spec)

                if storyboard:
                    path = os.path.join(storyboard[-1]["path"], storyboard[-1]["file_name"]+".jpg")
                    spec.eltype = "animatic"
                    spec.elclass = "an"
                    animatic = ueAssetUtils.getVersions(spec)
                    if animatic:
                        path = os.path.join(animatic[-1]["path"], animatic[-1]["file_name"]+".####.jpeg")
                elif shot == "black":
                    path = os.path.join(os.getenv("UE_PATH"), "lib", "placeholders", "black.png")
                elif shot == "white":
                    path = os.path.join(os.getenv("UE_PATH"), "lib", "placeholders", "white.png")
                else:
                    path = os.path.join(os.getenv("UE_PATH"), "lib", "placeholders", "nuke.png")

                commands.addSource(path, None)

                sourceNode = commands.nodesOfType("RVSourceGroup")[-1]

                if storyboard and not animatic:
                    retimeNode = commands.newNode("RVRetimeGroup", "%s_%sRetime" % (sequence, shot))
                    commands.setNodeInputs(retimeNode, [sourceNode])
                    time = float(editShot["endFrame"])-float(editShot["startFrame"])+1
                    commands.setFloatProperty("%s_retime.visual.scale" % retimeNode, [float(time)], False)
                    node = retimeNode
                else:
                    node = sourceNode

                nodes.append(node)

        commands.setNodeInputs("defaultSequence", nodes)
        commands.setViewNode("defaultSequence")
Esempio n. 44
0
 def loadElements(self):
     global asst
     asst = str(self.asstMenu.currentText())
     spec = ueSpec.Spec(proj, grp, asst)
     self.elements = ueAssetUtils.getElements(spec)
     if elclass in self.elements:
         self.loadTypes()
     else:
         self.eltypeMenu.clear()
         self.elnameMenu.clear()
Esempio n. 45
0
File: Save.py Progetto: hdd/ue
 def loadElements(self):
     global asst
     asst = str(self.asstMenu.currentText())
     spec = ueSpec.Spec(proj, grp, asst)
     self.elements = ueAssetUtils.getElements(spec)
     if elclass in self.elements:
         self.loadTypes()
     else:
         self.eltypeMenu.clear()
         self.elnameMenu.clear()
Esempio n. 46
0
 def loadVersions(self):
     self.elname = str(self.backgroundList.currentItem().text())
     self.versList.clear()
     spec = ueSpec.Spec(proj, grp, asst, __bgClass__, __bgType__,
                        self.elname)
     vers = ueAssetUtils.getVersions(spec)
     for v in sorted(range(len(vers)), reverse=True):
         item = QtGui.QListWidgetItem("%04d" % int(v + 1))
         self.versList.addItem(item)
     self.versList.setCurrentItem(self.versList.item(0))
Esempio n. 47
0
File: Job.py Progetto: hdd/ue
    def createScript(self):
        job = {}

        if self.run == "nuke":
            ext = "nk"

        proj = ueAssetUtils.getProject(self.destSpec)
        asst = ueAssetUtils.getAsset(self.destSpec)

        versions = ueAssetUtils.getVersions(self.sourceSpec)
        version = versions[len(versions)-1]

        p = os.path.join(version["path"], version["file_name"]+"."+ext)

        for f in range(self.frame_start, self.frame_end+1):
            frame = {}
            if self.run == "nuke":
                frame["cmd"] = "nuke -x -V -f -X %s -F %i-%i %s" % (",".join(self.options["writeNode"]),
                                                                    f, f, p)
            frame["proj"] = self.destSpec.proj
            frame["grp"] = self.destSpec.grp
            frame["asst"] = self.destSpec.asst
            frame["proj_root"] = proj["path"]
            frame["asst_root"] = asst["path"]
            job[f] = frame

        versions = ueAssetUtils.getVersions(self.destSpec)
        version = versions[len(versions)-1]

        p = os.path.join(asst["path"], "tmp", "drQueue", version["file_name"]+"."+str(int(time.time()))+".dq")

        if not os.path.exists(os.path.dirname(p)):
            import ueCore.FileUtils as ueFileUtils
            ueFileUtils.createDir(os.path.dirname(p))

        try:
            f = open(p, "w")
            f.write(json.dumps(job, sort_keys=True, indent=4))
            f.close()
        except IOError, e:
            print "ERROR: Creating job script '%s' (%s)" % (p, e)
            sys.exit(2)
Esempio n. 48
0
 def getLayers(self):
     layer = str(self.layerListPickerBox.currentText())
     element = ueAssetUtils.getVersions(ueSpec.Spec(proj, grp, asst, __layerClass__, __layerType__, layer))
     fileName = os.path.join(element[-1]["path"], "%s.lay" % element[-1]["file_name"])
     if os.path.exists(fileName):
         f = open(fileName)
         layers = json.loads(f.read())
         f.close()
     else:
         layers = {}
     return layers
Esempio n. 49
0
 def loadVersions(self):
     self.elname = str(self.nameList.currentItem().text())
     spec = ueSpec.Spec(proj, grp, asst, self.elclass, self.eltype, self.elname)
     self.versList.clear()
     vers = ueAssetUtils.getVersions(spec)
     if vers:
         for v in sorted(range(len(vers)), reverse=True):
             item = QtGui.QListWidgetItem("%04d" % int(v + 1))
             self.versList.addItem(item)
         self.versList.setCurrentItem(self.versList.item(0))
         self.loadPasses()
Esempio n. 50
0
 def loadVersions(self):
     self.elname = str(self.nameList.currentItem().text())
     spec = ueSpec.Spec(proj, grp, asst, self.elclass, self.eltype,
                        self.elname)
     self.versList.clear()
     vers = ueAssetUtils.getVersions(spec)
     if vers:
         for v in sorted(range(len(vers)), reverse=True):
             item = QtGui.QListWidgetItem("%04d" % int(v + 1))
             self.versList.addItem(item)
         self.versList.setCurrentItem(self.versList.item(0))
         self.loadPasses()
Esempio n. 51
0
def listElements():
    elements = ueAssetUtils.getElements(settings["spec"])

    for e in sorted(elements):
        for t in sorted(elements[e]):
            for n in sorted(elements[e][t]):
                a = ueSpec.Spec(settings["spec"].proj, settings["spec"].grp,
                                settings["spec"].asst, e, t, n)
                element = str(a)
                if "paths" in settings:
                    element = "%s -> %s" % (element, n["path"])
                print element
Esempio n. 52
0
def getReadPath():
    n = nuke.thisNode()

    elpass = n.knob("elpass").value()
    if elpass == "":
        elpass = None

    spec = ueSpec.Spec(
        n.knob("proj").value(),
        n.knob("grp").value(),
        n.knob("asst").value(),
        n.knob("elclass").value(),
        n.knob("eltype").value(),
        n.knob("elname").value(),
        n.knob("vers").value(), elpass)

    p = os.path.join(os.getenv("UE_PATH"), "lib", "placeholders", "nuke.png")

    if not spec.proj == "" and not spec.grp == "" and \
       not spec.asst == "" and not spec.elclass == "" and \
       not spec.eltype == "" and not spec.elname == "" and \
       not spec.vers == "":
        versions = ueAssetUtils.getVersions(spec)
        if int(spec.vers) > len(versions):
            return p
        v = versions[int(spec.vers) - 1]
        if v:
            elpassDir = ""
            elpassFile = ""
            if not spec.elpass == None:
                elpassDir = spec.elpass
                elpassFile = "_" + spec.elpass
            files = glob.glob(
                os.path.join(v["path"], elpassDir,
                             v["file_name"] + elpassFile + "*"))
            if len(files) > 0:
                ext = files[0].split(".")[-1]

                if len(files) == 1:
                    p = os.path.join(v["path"], elpassDir,
                                     v["file_name"] + elpassFile + "." + ext)
                else:
                    p = os.path.join(
                        v["path"], elpassDir,
                        v["file_name"] + elpassFile + ".%04d." + ext)

                nuke.thisNode().knob("first").setValue(1)
                nuke.thisNode().knob("last").setValue(len(files))
                nuke.thisNode().knob("origfirst").setValue(1)
                nuke.thisNode().knob("origlast").setValue(len(files))

    return p
Esempio n. 53
0
 def getLayers(self):
     layer = str(self.layerListPickerBox.currentText())
     element = ueAssetUtils.getVersions(
         ueSpec.Spec(proj, grp, asst, __layerClass__, __layerType__, layer))
     fileName = os.path.join(element[-1]["path"],
                             "%s.lay" % element[-1]["file_name"])
     if os.path.exists(fileName):
         f = open(fileName)
         layers = json.loads(f.read())
         f.close()
     else:
         layers = {}
     return layers
Esempio n. 54
0
def ueOpen():
    p = nukescripts.registerWidgetAsPanel("ueCommonOpen.Open", "ueOpen",
                                          "ue.panel.ueOpen", create=True)
    p.setMinimumSize(600, 940)
    ueCommonOpen.setClasses(__ueclasses__)

    if p.showModalDialog():
        spec = ueCommonOpen.getValues()
        version = ueAssetUtils.getVersions(spec)[spec.vers-1]
        nuke.scriptOpen(os.path.join(version["path"], version["file_name"]+".nk"))
        nuke.tprint("Opened %s" % spec)

    nukescripts.unregisterPanel("ue.panel.ueOpen", lambda: "return")
Esempio n. 55
0
File: __init__.py Progetto: hdd/ue
def getReadPath():
    n = nuke.thisNode()

    elpass = n.knob("elpass").value()
    if elpass == "":
        elpass = None

    spec = ueSpec.Spec(n.knob("proj").value(),
                       n.knob("grp").value(),
                       n.knob("asst").value(),
                       n.knob("elclass").value(),
                       n.knob("eltype").value(),
                       n.knob("elname").value(),
                       n.knob("vers").value(),
                       elpass)

    p = os.path.join(os.getenv("UE_PATH"), "lib",
                     "placeholders", "nuke.png")

    if not spec.proj == "" and not spec.grp == "" and \
       not spec.asst == "" and not spec.elclass == "" and \
       not spec.eltype == "" and not spec.elname == "" and \
       not spec.vers == "":
        versions = ueAssetUtils.getVersions(spec)
        if int(spec.vers) > len(versions):
            return p
        v = versions[int(spec.vers)-1]
        if v:
            elpassDir = ""
            elpassFile = ""
            if not spec.elpass == None:
                elpassDir = spec.elpass
                elpassFile = "_"+spec.elpass
            files = glob.glob(os.path.join(v["path"], elpassDir,
                                           v["file_name"]+elpassFile+"*"))
            if len(files) > 0:
                ext = files[0].split(".")[-1]

                if len(files) == 1:
                    p = os.path.join(v["path"], elpassDir,
                                     v["file_name"]+elpassFile+"."+ext)
                else:
                    p = os.path.join(v["path"], elpassDir,
                                     v["file_name"]+elpassFile+".%04d."+ext)

                nuke.thisNode().knob("first").setValue(1)
                nuke.thisNode().knob("last").setValue(len(files))
                nuke.thisNode().knob("origfirst").setValue(1)
                nuke.thisNode().knob("origlast").setValue(len(files))

    return p
Esempio n. 56
0
def listElements():
    elements = ueAssetUtils.getElements(settings["spec"])

    for e in sorted(elements):
        for t in sorted(elements[e]):
            for n in sorted(elements[e][t]):
                a = ueSpec.Spec(settings["spec"].proj,
                                settings["spec"].grp,
                                settings["spec"].asst,
                                e, t, n)
                element = str(a)
                if "paths" in settings:
                    element = "%s -> %s" % (element, n["path"])
                print element
Esempio n. 57
0
File: EditUI.py Progetto: hdd/ue
    def __init__(self, spec=ueSpec.Context().spec, parent=None):
        QtGui.QDockWidget.__init__(self, parent)

        self.parent = parent
        self.spec = spec

        self.assetsWidget = QtGui.QTreeWidget()

        self.mainWidget = QtGui.QWidget()
        self.mainWidget.setLayout(QtGui.QVBoxLayout())
        self.mainWidget.layout().addWidget(self.assetsWidget)

        self.setWidget(self.mainWidget)
        self.setWindowTitle("Assets")

        for group in ueAssetUtils.getGroupsList(self.spec):
            groupItem = QtGui.QTreeWidgetItem(self.assetsWidget)
            groupItem.setText(0, group)
            self.spec.grp = group
            for asset in ueAssetUtils.getAssetsList(self.spec):
                assetItem = QtGui.QTreeWidgetItem(groupItem)
                assetItem.setText(0, asset)
                self.spec.asst = asset