Exemple #1
0
 def createUv(self,mesh):
     cmds.polyForceUV(mesh, unitize = True)
     edges = cmds.polyEvaluate(mesh, e = True)
     cmds.select('%s.e[2:%s]' %(mesh, (edges-1)), r=True)
     cmds.StitchTogether()
     bbox = cmds.polyEvaluate(mesh, bc2 = True)
     if bbox[0]>bbox[1]:
         cmds.polyEditUV (mesh, r = True, a = 90)
     cmds.polyNormalizeUV(mesh,normalizeType = 1, pa = True, cot = False, nd = 1)
     cmds.unfold(mesh, i = 5000, ss=0.001, gb = 0, pub = False, ps = False, oa = 1, us = False)
     cmds.select(cl=True)
Exemple #2
0
def main(log=None):

    if not log:
        import logging
        log = logging.getLogger()
    
    allObj = cmds.ls(dag=True,type = 'mesh')
    for x in allObj:
        try:
            cmds.polyNormalizeUV(x, nt = 1, pa = False)
            #log.debug("normalize %s uv to 0-1 range successful" %x)
        except:
            log.warning("normalize %s uv to 0-1 range error" %x)
Exemple #3
0
def main(log=None):

    if not log:
        import logging
        log = logging.getLogger()

    allObj = cmds.ls(dag=True, type='mesh')
    for x in allObj:
        try:
            cmds.polyNormalizeUV(x, nt=1, pa=False)
            #log.debug("normalize %s uv to 0-1 range successful" %x)
        except:
            log.warning("normalize %s uv to 0-1 range error" % x)
Exemple #4
0
def ImportToMaya(vertexArray, polygonConnects, uvArray, texturePath, texture):
    global g_Mesh_Index

    printMessage("Creating mesh...")
    polygonCounts = OpenMaya.MIntArray(polygonConnects.length() / 3, 3)
    mesh = OpenMaya.MFnMesh()
    transform = mesh.create(vertexArray.length(), polygonCounts.length(),
                            vertexArray, polygonCounts, polygonConnects)

    printDebug("connects cnt {}".format(polygonConnects.length()))
    printDebug("cnt {}".format(polygonCounts.length()))
    printDebug("u cnt {}".format(uvArray[0].length()))
    printDebug("v cnt {}".format(uvArray[1].length()))

    # UV map.
    printMessage("Mapping UVs...")
    mesh.setUVs(uvArray[0], uvArray[1])

    try:
        mesh.assignUVs(polygonCounts, polygonConnects)
    except RuntimeError:
        printDebug("mesh.assignUVs() failed. Assign manually...")
        for i in range(0, polygonConnects.length()):
            try:
                mesh.assignUV(i / 3, i % 3, polygonConnects[i])
            except RuntimeError:
                printMessage("AssignUV failed: " +
                             "[{}] = {}".format(i, polygonConnects[i]))

    # Rename mesh.
    printMessage("Renaming mesh...")
    transformDagPath = OpenMaya.MDagPath()
    OpenMaya.MDagPath.getAPathTo(transform, transformDagPath)
    meshName = cmds.rename(transformDagPath.fullPathName(),
                           "NinjaMesh_{}".format(g_Mesh_Index))
    g_Mesh_Index = g_Mesh_Index + 1

    # Apply textures.
    printMessage("Applying textures...")
    shader = cmds.shadingNode("lambert",
                              name="NinjaTexture_{}".format(g_Mesh_Index),
                              asShader=True)

    cmds.select(meshName)
    cmds.hyperShade(assign=shader)

    colorMap = cmds.shadingNode("file",
                                name="{}_colorMap".format(texture),
                                asTexture=True)

    cmds.connectAttr("{}.outColor".format(colorMap), "{}.color".format(shader))
    cmds.setAttr("{}.fileTextureName".format(colorMap),
                 "{}/{}".format(texturePath, texture),
                 type='string')

    # Set vertex color to White.
    printMessage("Forcing vertex color to white...")
    cmds.select(meshName)
    cmds.polyColorPerVertex(cdo=True, rgb=[1, 1, 1])

    # Apply transformations.
    printMessage("Applying transformations...")
    cmds.setAttr("{}.rotateX".format(meshName), g_ninjarotX)
    cmds.setAttr("{}.rotateY".format(meshName), g_ninjarotY)
    cmds.setAttr("{}.rotateZ".format(meshName), g_ninjarotZ)
    cmds.setAttr("{}.scaleX".format(meshName), mdlscaler)
    cmds.setAttr("{}.scaleY".format(meshName), mdlscaler)
    cmds.setAttr("{}.scaleZ".format(meshName), mdlscaler)

    # Freeze transformations.
    printMessage("Zeroing new transform values...")
    cmds.makeIdentity(apply=True, t=1, r=1, s=1, n=0, pn=1)

    # Scale UVs.
    printMessage("Scaling UVs...")
    uvs = cmds.polyListComponentConversion(meshName, tuv=True)
    cmds.select(uvs)
    cmds.polyEditUV(su=uvscaler, sv=uvscaler * g_flipUV)

    # Normalize UV.
    if g_normalizeUV:
        printMessage("Normalizing UVs...")
        cmds.polyNormalizeUV(nt=1, pa=True, centerOnTile=True)

    # Merge duplicates.
    printMessage("Removing duplicate vertex...")
    cmds.select(cl=True)
    cmds.select(meshName)
    cmds.polyMergeVertex(d=0.01, am=True, ch=1)
    cmds.polyMergeUV(d=0.01, ch=True)

    # Reverse normals (First met in MWR)
    if g_reverseNormals:
        printMessage("Reversing normals...")
        cmds.select(cl=True)
        cmds.select(meshName)
        cmds.polyNormal(meshName, ch=1)

    cmds.select(cl=True)
    print("Import done for mesh '{}'".format(meshName))
Exemple #5
0
def polyNormalizeUV(*args, **kwargs):
    res = cmds.polyNormalizeUV(*args, **kwargs)
    if not kwargs.get('query', kwargs.get('q', False)):
        res = _factories.maybeConvert(res, _general.PyNode)
    return res
def ImportToMaya(vertexArray, polygonConnects, uvArray, texturePath, texture):
    global g_Mesh_Index

    printMessage("Creating mesh...")
    polygonCounts = OpenMaya.MIntArray(polygonConnects.length() / 3, 3)
    mesh = OpenMaya.MFnMesh()
    transform = mesh.create(
        vertexArray.length(), polygonCounts.length(), vertexArray,
        polygonCounts, polygonConnects
    )

    printDebug("connects cnt {}".format(polygonConnects.length()))
    printDebug("cnt {}".format(polygonCounts.length()))
    printDebug("u cnt {}".format(uvArray[0].length()))
    printDebug("v cnt {}".format(uvArray[1].length()))

    # UV map.
    printMessage("Mapping UVs...")
    mesh.setUVs(uvArray[0], uvArray[1])

    try:
        mesh.assignUVs(polygonCounts, polygonConnects)
    except RuntimeError:
        printDebug("mesh.assignUVs() failed. Assign manually...")
        for i in range(0, polygonConnects.length()):
            try:
                mesh.assignUV(i / 3, i % 3, polygonConnects[i])
            except RuntimeError:
                printMessage("AssignUV failed: " + 
                            "[{}] = {}".format(i, polygonConnects[i]))

    # Rename mesh.
    printMessage("Renaming mesh...")
    transformDagPath = OpenMaya.MDagPath()
    OpenMaya.MDagPath.getAPathTo(transform, transformDagPath)
    meshName = cmds.rename(
        transformDagPath.fullPathName(), "NinjaMesh_{}".format(g_Mesh_Index)
    )
    g_Mesh_Index = g_Mesh_Index + 1

    # Apply textures.
    printMessage("Applying textures...")
    shader = cmds.shadingNode(
        "lambert", name="NinjaTexture_{}".format(g_Mesh_Index), asShader=True
    )

    cmds.select(meshName)
    cmds.hyperShade(assign=shader)

    colorMap = cmds.shadingNode(
        "file", name="{}_colorMap".format(texture), asTexture=True
    )

    cmds.connectAttr(
        "{}.outColor".format(colorMap), "{}.color".format(shader)
    )
    cmds.setAttr(
        "{}.fileTextureName".format(colorMap),
        "{}/{}".format(texturePath, texture), type='string'
    )

    # Set vertex color to White.
    printMessage("Forcing vertex color to white...")
    cmds.select(meshName)
    cmds.polyColorPerVertex(cdo=True, rgb=[1, 1, 1])

    # Apply transformations.
    printMessage("Applying transformations...")
    cmds.setAttr("{}.rotateX".format(meshName), g_ninjarotX)
    cmds.setAttr("{}.rotateY".format(meshName), g_ninjarotY)
    cmds.setAttr("{}.rotateZ".format(meshName), g_ninjarotZ)
    cmds.setAttr("{}.scaleX".format(meshName), mdlscaler)
    cmds.setAttr("{}.scaleY".format(meshName), mdlscaler)
    cmds.setAttr("{}.scaleZ".format(meshName), mdlscaler)

    # Freeze transformations.
    printMessage("Zeroing new transform values...")
    cmds.makeIdentity(apply=True, t=1, r=1, s=1, n=0, pn=1)

    # Scale UVs.
    printMessage("Scaling UVs...")
    uvs = cmds.polyListComponentConversion(meshName, tuv=True)
    cmds.select(uvs)
    cmds.polyEditUV(su=uvscaler, sv=uvscaler*g_flipUV)

    # Normalize UV.
    if g_normalizeUV:
        printMessage("Normalizing UVs...")
        cmds.polyNormalizeUV(nt=1, pa=True, centerOnTile=True)

    # Merge duplicates.
    printMessage("Removing duplicate vertex...")
    cmds.select(cl=True)
    cmds.select(meshName)
    cmds.polyMergeVertex(d=0.01, am=True, ch=1)
    cmds.polyMergeUV(d=0.01, ch=True)

    # Reverse normals (First met in MWR)
    if g_reverseNormals:
        printMessage("Reversing normals...")
        cmds.select(cl=True)
        cmds.select(meshName)
        cmds.polyNormal(meshName, ch=1)

    cmds.select(cl=True)
    print("Import done for mesh '{}'".format(meshName))
Exemple #7
0
def cachedObjToTransform(*args):
    '''{'ath':'Animation/Transform/cachedObjToTransform( )',
'ath':'Dynamics/RBD',
'icon':':/transform.svg',
'usage':"""
#将缓存物体bake成关键帧物体。
$fun(  )""",
}
'''
    if len(args):
        cachedObj = qm.checkArg(args[0], nodeType='mesh', tryToShape=True)
    else:
        cachedObj = qm.checkArg(nodeType='mesh', tryToShape=True)

    cmds.constructionHistory(toggle=False)
    #cachedObj = cmds.ls(sl=True,l=True)[0]
    #sepratate cachedObj
    minTime = int(cmds.playbackOptions(q=True, min=True))
    cmds.currentTime(minTime)
    temp = cmds.polySeparate(cachedObj, ch=True)[0]
    rbdGrp = cmds.listRelatives(temp, p=True, f=True)[0]
    childGrp = cmds.duplicate(rbdGrp, rr=True)[0]
    parentList = cmds.listRelatives(rbdGrp, type='transform', f=True)
    childList = cmds.listRelatives(childGrp, type='transform', f=True)
    cmds.delete(cmds.listRelatives(childGrp, f=True), ch=True)

    forRemove = []
    for obj in parentList:
        meshNode = cmds.listRelatives(obj, type='mesh', f=True)
        if meshNode == [] or cmds.getAttr(meshNode[0] +
                                          '.intermediateObject') == 1:
            forRemove.append(obj)
    if obj in forRemove:
        parentList.remove(obj)

    forRemove = []
    for obj in childList:
        meshNode = cmds.listRelatives(obj, type='mesh', f=True)
        if meshNode == [] or cmds.getAttr(meshNode[0] +
                                          '.intermediateObject') == 1:
            forRemove.append(obj)
    if obj in forRemove:
        childList.remove(obj)
    cmds.delete(forRemove)

    unfreeze(childList)

    folGrp = cmds.group(em=True, n=rbdGrp + '_FoGrp')

    for papa in parentList:
        index = parentList.index(papa)
        child = childList[index]
        meshShape = cmds.listRelatives(papa, type='mesh', f=True)[0]

        faceCount = cmds.polyEvaluate(papa, f=True) - 1
        if faceCount > 10:
            faceCount = 10

        newFace = '%s.f[0:%s]' % (papa, faceCount)
        cmds.select(newFace)
        mel.eval('polySplitTextureUV')

        mel.eval('PolySelectConvert 4')
        map = cmds.ls(sl=True)

        cmds.polyNormalizeUV(map, normalizeType=0, preserveAspectRatio=False)

        cmds.polyEditUV(map, pu=.5, pv=.5, su=2, sv=2)

        #create follicle and set attribute
        folShape = cmds.createNode("follicle")

        folTransform = cmds.listRelatives(folShape, p=True, f=True)[0]
        cmds.setAttr(folTransform + '.intermediateObject', 1)

        cmds.setAttr(folShape + '.parameterU', .5, l=True)
        cmds.setAttr(folShape + '.parameterV', .5, l=True)
        cmds.setAttr(folShape + ".simulationMethod", 0)
        cmds.setAttr(folShape + ".collide", 0)
        cmds.setAttr(folShape + ".degree", 1)
        cmds.setAttr(folShape + ".sampleDensity", 0)

        #connection follicles
        cmds.connectAttr(meshShape + '.worldMatrix[0]',
                         folShape + '.inputWorldMatrix',
                         f=True)
        cmds.connectAttr(meshShape + '.outMesh',
                         folShape + '.inputMesh',
                         f=True)
        cmds.connectAttr(folShape + '.outRotate',
                         folTransform + '.rotate',
                         f=True)
        cmds.connectAttr(folShape + '.outTranslate',
                         folTransform + '.translate',
                         f=True)

        parentConNode = cmds.parentConstraint(folTransform, child, mo=True)[0]

        cmds.parent(folTransform, folGrp)

    minTime = int(cmds.playbackOptions(q=True, min=True))
    maxTime = int(cmds.playbackOptions(q=True, max=True))
    cmds.bakeResults(childList,simulation=True, t=(minTime,maxTime),sampleBy=1,\
                    disableImplicitControl=True, preserveOutsideKeys=True, sparseAnimCurveBake=False, removeBakedAttributeFromLayer=False, \
                    bakeOnOverrideLayer=False,at=['tx','ty','tz','rx','ry','rz'])

    cmds.delete([folGrp, rbdGrp])
    cmds.delete(cmds.listRelatives(childGrp, f=True), ch=True)

    cmds.constructionHistory(toggle=True)