コード例 #1
0
 def middle2(self, s):
     middleL = []
     #use input field data to determine flat uv set
     flatUvSet = self.findFlatUvSet(s)
     #get tips of geo and split to top and bottom pairs
     pair1, pair2 = self.findTips(s, flatUvSet)
     #select edges going the length on the cards and list as vertices
     pm.polyUVSet(s, currentUVSet =1, uvSet=flatUvSet)
     side1Edge = pm.polySelect(s, ass = 1, shortestEdgePathUV = (pair1[0].getUVIndices(str(flatUvSet))[0], pair1[1].getUVIndices(str(flatUvSet))[0]))
     side1 = pm.ls(pm.polyListComponentConversion(side1Edge, fe =1, tv =1), fl = 1)
     if len(side1) > 2:
         side2Edge = pm.polySelect(s, ass = 1, shortestEdgePathUV = (pair2[0].getUVIndices(str(flatUvSet))[0], pair2[1].getUVIndices(str(flatUvSet))[0]))
         side2 = pm.ls(pm.polyListComponentConversion(side2Edge, fe =1, tv =1), fl = 1)
         #select bottom verts and walk(traverse) to the middle of the geo on both sides
         mid1 = pm.ls(self.traverse(start = pair1[0], listToWalk  = side1, multiplyBy = 0.5 ))
         mid2 = pm.ls(self.traverse(start = pair2[0], listToWalk  = side2, multiplyBy = 0.5 ))
         #select shortest path between the 2 middle points and add to the middleL list
         MidLine = pm.polySelect(s, ass = 1, shortestEdgePathUV = (mid1[0].getUVIndices(str(flatUvSet))[0], mid2[0].getUVIndices(str(flatUvSet))[0]))
         middleL.append(MidLine)
         pm.select(cl = 1)
         if len(side1) % 2 == 0:
             mid3 = pm.ls(self.traverse(start = pair1[-1], listToWalk  = side1, multiplyBy = 0.5 ))
             mid4 = pm.ls(self.traverse(start = pair2[-1], listToWalk  = side2, multiplyBy = 0.5 ))
             MidLine2 = pm.polySelect(s, ass = 1, shortestEdgePathUV = (mid3[0].getUVIndices(str(flatUvSet))[0], mid4[0].getUVIndices(str(flatUvSet))[0]))
             middleL.append(MidLine2)
             pm.select(cl = 1)
     return pm.ls(	middleL,    fl = True)
コード例 #2
0
 def prefixUV(self):
     #查询对象的所有UV,返回状态值和错误值,用于和其他方法交互
     err = u'初始化错误'
     state = False
     try:
         if self.selection is None:
             raise NoChoosedError
             return
         for obj in self.selection:
             stateUV, err = self.__checkUV(obj)
             if stateUV is False:
                 continue
             #指定当前UV为self.UV
             pm.polyUVSet(obj, currentUVSet=True, uvSet=self.UV)
     except NoChoosedError:
         d = u'可能为无选择导致的程序错误'
         pm.warning(d)
         state = False
         err = d
         return state, err
     else:
         d = u'完成操作,运行时 %s' % err
         pm.warning(d)
         state = True
         return state, err
コード例 #3
0
 def copyUV(self, uv2):
     #强制设定当前UV为工作UV,无法设定则不继续执行
     state, err = self.prefixUV()
     print u'完成预设操作'
     if state is True and err == self.preErr:
         try:
             if self.UV == uv2:
                 raise SameUVError
         except SameUVError:
             d = u'无法将 UV 集复制到自身'
             pm.warning(d)
             return
         else:
             self.UV = uv2
             print self.UV
     else:
         d = u'工作UV错误或不存在,无法继续执行'
         print(d)
         pm.warning(d)
         return
     for obj in self.selection:
         state = self.__checkUV(obj)
         if not state:
             d = u'基础UV错误或不存在,无法继续执行'
             print(d)
             pm.warning(d)
             return
     #将工作UV复制到当前UV
         pm.polyUVSet(obj, copy=True, nuv=uv2)
コード例 #4
0
 def __delUniformedUV(self, obj):
     #删除工作中尝试的临时UV
     allUV = pm.polyUVSet(obj, query=True, allUVSets=True)
     if 'mwi_showUV' in allUV:
         pm.polyUVSet(obj, delete=True, uvSet='mwi_showUV')
     if 'mwi_refUV' in allUV:
         pm.polyUVSet(obj, delete=True, uvSet='mwi_refUV')
コード例 #5
0
ファイル: pbUV.py プロジェクト: aaronfang/pbUV
 def delete_set(self, *args):
     uvset = self.uvs.getSelectItem()[0].split(' | ')
     try:
         pm.polyUVSet(uvset[0], delete=True, uvSet=uvset[1])
         self.update_sets()
     except RuntimeError:
         pm.warning('The defualt uv set cannot be deleted.')
         self.update_sets()
コード例 #6
0
def uvsettool(arg):
	#拷贝uvset到默认uvset
	sel =pm.ls(sl=1)
	for i in range(len(sel)):
		cruv =  pm.getAttr(sel[i].getShapes()[0]+".currentUVSet")
		if cruv!="map1":
			alluvset=pm.polyUVSet(sel[i],q=1,allUVSets=1)
			pm.polyUVSet(sel[i],copy=True,uvSet=cruv,nuv="map1")
		else:
			alluvset=pm.polyUVSet(sel[i],q=1,allUVSets=1)
			if len(alluvset)>=1:
				uvrightset = [u for u in alluvset if u=="UVChannel_1"]
				if uvrightset!=[]:
					pm.setAttr(sel[i].getShapes()[0]+".currentUVSet",uvrightset[0],type="string")
					cruv =  pm.getAttr(sel[i].getShapes()[0]+".currentUVSet")
					pm.polyUVSet(sel[i],copy=True,uvSet=cruv,nuv="map1")
	for i in range(len(sel)):
		pm.select(sel[i],r=1)
		alluvset=pm.polyUVSet(sel[i],q=1,allUVSets=1)
		print sel[i],alluvset
		for n in range(len(alluvset)):
			if len( alluvset)!=1:
				if alluvset[n]!="map1":
					pm.setAttr(sel[i].getShapes()[0]+".currentUVSet",alluvset[n],type="string")
					try:
						pm.polyUVSet(delete=True)
					except:
						pass
コード例 #7
0
ファイル: pbUV.py プロジェクト: aaronfang/pbUV
 def dup_set(self, *args):
     uvset = self.uvs.getSelectItem()[0].split(' | ')
     bdialog = pm.promptDialog(title='Duplicate UVSet',
                               message='Enter New UVSet Name:',
                               button=['OK', 'Cancel'],
                               defaultButton='OK',
                               cancelButton='Cancel',
                               dismissString='Cancel')
     if bdialog == 'OK':
         pm.polyUVSet(uvset[0], copy=True, uvSet=uvset[1], newUVSet=pm.promptDialog(q=True, text=True))
         self.update_sets()
コード例 #8
0
 def __checkUV(self, obj):
     state = True
     print('----------------------------------------------')
     print u'预处理程序,正在检查UV'
     #查询对象的所有UV
     allUV = pm.polyUVSet(obj, query=True, allUVSets=True)
     #检查指定的UV是否存在
     if type(self.UV) == type(None):
         state = False
         err = '无UV'.decode('utf-8')
         raise NoChoosedError
         return state, err
     try:
         if self.UV not in allUV:
             d = u'UV:%s不存在于对象UV集中' % (self.UV)
             pm.warning(d)
             state = False
             err = u'有不存在的UV,请通过控制台检查日志'
             return state, err
     except TypeError:
         d = u'UV:%s不存在于对象UV集中' % (self.UV)
         pm.warning(d)
         state = False
         err = u'有不存在的UV,请通过控制台检查日志'
         return state, err
     print u'UV:%s存在于对象UV集中,当前对象%s' % (self.UV, str(obj))
     err = self.preErr
     return state, err
コード例 #9
0
    def _get_overlapping_uvs(cls, node):
        """ Check if mesh has overlapping UVs.

            :param node: node to check
            :type node: str
            :returns: True is has overlapping UVs, False otherwise
            :rtype: bool
        """
        ovl = GetOverlappingUVs()

        overlapping_faces = []
        for i, uv in enumerate(pm.polyUVSet(node, q=1, auv=1)):
            pm.polyUVSet(node, cuv=1, uvSet=uv)
            overlapping_faces.extend(ovl._getOverlapUVFaces(str(node)))

        return overlapping_faces
コード例 #10
0
 def get_current_uv_set(shape):
     uv_sets = pm.polyUVSet(shape,
                            q=True,
                            currentUVSet=True)
     if uv_sets:
         return uv_sets[0]
     else:
         return 'map1'
コード例 #11
0
ファイル: modeling.py プロジェクト: ElonGame/anima
    def fix_uvsets(cls):
        """Fixes uvSets (DiffuseUV -> map1)
        """
        for node in pm.selected():
            shape = node.getShape()

            # get current uvset
            uvset_names = pm.polyUVSet(shape, query=True, allUVSets=True)

            if 'DiffuseUV' in uvset_names:
                if len(uvset_names) == 1:
                    # Copy values of uvset "DiffuseUV" to "map1"
                    pm.polyUVSet(shape,
                                 copy=True,
                                 nuv='map1',
                                 uvSet='DiffuseUV')

                    # set current uvset to map1
                    pm.polyUVSet(shape, currentUVSet=True, uvSet='map1')

                    # delete uv set
                    # pm.polyUVSet( shape, delete=True, uvSet='DiffuseUV')
                else:
                    if 'map1' in uvset_names:
                        # set current uvset to map1
                        uvs = shape.getUVs(uvSet='map1')

                        if len(uvs[0]) == 0:
                            # Copy values of uvset "DiffuseUV" to "map1"
                            pm.polyUVSet(shape,
                                         copy=True,
                                         nuv='map1',
                                         uvSet='DiffuseUV')
コード例 #12
0
 def middle(self,s):
     
     if self.midCtrlCheckBox.getValue() == 1:
         number = self.randSliderT.getValue()/10
     else: number = 0.5
     #use input field data to determine flat uv set
     flatUvSet = self.findFlatUvSet(s)
     #get tips of geo and split to top and bottom pairs
     pair1, pair2 = self.findTips(s, flatUvSet)
     #select edges going the length on the cards and list as vertices
     pm.polyUVSet(s, currentUVSet =1, uvSet=flatUvSet)###not sure that I need it
     side1Edge = pm.polySelect(s, ass = 1, shortestEdgePathUV = (pair1[0].getUVIndices(str(flatUvSet))[0], pair2[0].getUVIndices(str(flatUvSet))[0]))
     side1 = pm.ls(pm.polyListComponentConversion(side1Edge, fe =1, tv =1), fl = 1)
     side2Edge = pm.polySelect(s, ass = 1, shortestEdgePathUV = (pair1[1].getUVIndices(str(flatUvSet))[0], pair2[1].getUVIndices(str(flatUvSet))[0]))
     side2 = pm.ls(pm.polyListComponentConversion(side2Edge, fe =1, tv =1), fl = 1)
     #select bottom verts and walk(traverse) to the middle of the geo on both sides
     mid1 = pm.ls(self.traverse(start = pair1[0], listToWalk  = side1, multiplyBy = number ))
     mid2 = pm.ls(self.traverse(start = pair1[1], listToWalk  = side2, multiplyBy = number ))
     #select shortest path between the 2 middle points and add to the middleL list
     MidLine = pm.polySelect(s, ass = 1, shortestEdgePathUV = (mid1[0].getUVIndices(str(flatUvSet))[0], mid2[0].getUVIndices(str(flatUvSet))[0]))
     pm.select(cl = 1)
     return MidLine
コード例 #13
0
ファイル: uvPublish.py プロジェクト: leocadaval/lcPipe
def noMultipleUVsets(*arg):
    # Check meshList
    meshList = pm.ls(type='mesh')
    if not meshList:
        return []

    # Check Multiple UV Sets
    for mesh in meshList:
        if mesh.isIntermediate():
            continue

        UVsets = pm.polyUVSet(mesh, q=True, allUVSets=True)
        if not UVsets:
            continue

        if len(UVsets) > 1:
            return True
コード例 #14
0
 def transfer(self):
     haircap = self.capName.getText()
     oldSel = pm.ls(sl = 1)
     pm.select(pm.ls(o=1, sl=1))
     selected = pm.ls(sl = 1)
     pm.select(cl = 1)
     myCurrentUvSet =  pm.polyUVSet(selected[0], q = True , currentUVSet = True )[0]
     if pm.objExists(haircap) and self.transferCheckBox.getValue() == 1:
         for object in selected:
             pm.transferAttributes(haircap, object, sampleSpace=0,transferUVs=1, transferColors=0, sourceUvSet = 'map1',targetUvSet = 'map1')
     elif len(selected) > 1 and self.transferCheckBox.getValue() == 0:
         last = selected.pop(-1)
         for object in selected:
             if pm.polyEvaluate(object, v = 1) ==  pm.polyEvaluate(last, v = 1):
                 pm.select([last, object])
                 pm.transferAttributes(sampleSpace=5,transferUVs=1, transferColors=0,sourceUvSet = myCurrentUvSet, targetUvSet = myCurrentUvSet )
     else: pm.error( "assign hair cap geo, or select more than one object with same topology")
     pm.select(oldSel)
コード例 #15
0
 def _check_indiv_UVSets(self,chkNode=None):
     u"""
     >>Start Pipeline Check: check the mesh objects that has multiple uvsets
                             检查物体是否有多个uvset
     注意:如果当前有选择物体,将仅作用于选择的物体
     """
     msgAttr = '_iffyMsg_dags'
     chk_trns = self.get_chk_nodes(chkNode)
     kMoreThanOneUVSet = []
     for i in chk_trns:
         i_shp = i.getShape(ni=True)
         kUVSets = pm.polyUVSet(i, query=True, allUVSets=1)
         if len(kUVSets) > 1:
             kMoreThanOneUVSet.append(i)
     if kMoreThanOneUVSet:
         self.update_msgs(msgAttr,">>IFFY--Multiple UVsets Objects",kMoreThanOneUVSet)
     else:
         om.MGlobal.displayInfo(u">>>mesh的没有2个以上的uvset ")
     return kMoreThanOneUVSet
コード例 #16
0
 def checkUV(self, obj):
     state = True
     print(u'正在检查UV')
     #查询对象的所有UV
     allUV = pm.polyUVSet(obj, query=True, allUVSets=True)
     #检查指定的UV是否存在
     try:
         if self.baseUV not in allUV:
             print u'基础UV:%s不存在于对象UV中,跳过当前对象%s' % (self.baseUV, str(obj))
             state = False
             return state
         if self.workUV not in allUV:
             print u'工作UV:%s不存在于对象UV中,跳过当前对象%s' % (self.workUV, str(obj))
             state = False
             return state
     except TypeError:
         d = u'UV有错误'
         pm.warning(d)
         state = False
         return state
     return state
コード例 #17
0
ファイル: uvPublish.py プロジェクト: leocadaval/lcPipe
def selMultipleUVsets(*arg):

    # Check meshList
    meshList = pm.ls(type='mesh')

    if not meshList:
        return []

    # Check Multiple UV Sets
    multipleUVsets = []
    for mesh in meshList:
        if mesh.isIntermediate():
            continue

        UVsets = pm.polyUVSet(mesh, q=True, allUVSets=True)
        if not UVsets:
            continue
        if len(UVsets) > 1:
            multipleUVsets.append(mesh)

    pm.select(multipleUVsets)
コード例 #18
0
 def UVFix(self):
     oldSel = pm.ls(sl = 1)
     selected = pm.ls(sl = 1, o = 1)
     pm.select(cl = 1)
     for s in selected:
         #############get info from other nodes
         myCurrentUvSet =  pm.polyUVSet(s, q = True , currentUVSet = True )[0]
         pair1, pair2 = self.findTips(s, myCurrentUvSet)
         ###############select and store roots and tips
         tipsUV = []
         rootEdges =  pm.ls(    pm.polySelect(    s, ass = 1 ,shortestEdgePath = (pair2[0].index(), pair2[1].index()    )    ), fl = 1)
         tipsUV.append(  pm.ls(  pm.polyListComponentConversion(  rootEdges, fe =1, tuv =1), fl = True  )    )
         tipEdges =  pm.ls(    pm.polySelect(    s,  ass = 1 ,shortestEdgePath = (pair1[0].index(), pair1[1].index()    )    ), fl = 1)
         tipsUV.append(  pm.ls(  pm.polyListComponentConversion(  tipEdges, fe =1, tuv =1),  fl = True )    )
         #########select and unfold the middle part of the mesh
         pm.select(  pm.ls(tipsUV, fl = 1), replace = True  )
         pm.runtime.InvertSelection()
         if self.squareCheckBox.getValue() == 1:
             pm.unfold(ps=0, us=False, i=4312, gmb=0.9457, pub=0, oa=1, ss=15.5797, gb=0.7597)
             ###########selecting length boarders
             side1 = pm.ls(pm.polySelect(ebp = [  tipEdges[0].index(), rootEdges[0].index()], ass = True ), fl = 1)
             side1 = [n for n in side1 if n not in rootEdges and n not in tipEdges]
             side2 = pm.ls(pm.polySelect(ebp = [  tipEdges[-1].index(), rootEdges[-1].index()], ass = True ), fl = 1)
             side2 = [n for n in side2 if n not in rootEdges and n not in tipEdges]
             ##########calculate all the averages
             boarder1Avg = self.tupleAvg([pair1[0].getUV(uvSet = myCurrentUvSet), pair2[0].getUV(uvSet = myCurrentUvSet)])
             boarder2Avg = self.tupleAvg([pair1[1].getUV(uvSet = myCurrentUvSet), pair2[1].getUV(uvSet = myCurrentUvSet)])
             islandAvg = self.tupleAvg([boarder1Avg, boarder2Avg])
             #########straighten length boarders
             for x in side1:
                 pm.polyEditUV(x,  u = boarder1Avg[0], r = False, uvSetName = myCurrentUvSet)
             for x in side2:
                 pm.polyEditUV(x,  u = boarder2Avg[0],  r = False, uvSetName = myCurrentUvSet)
             ##########get the perimeter of the uv island
             borderUVs = ['{}.map[{}]'.format(s,x.getUVIndices()[0]) for x in pm.ls(s.vtx, fl = 1) if x.isOnBoundary()]
             pm.select(borderUVs)
             pm.runtime.InvertSelection()
             pm.Unfold3D(pm.selected(),rs=2, ite=0, bi=1, p=0, u=1, ms=1024, tf=1)
         else: pm.Unfold3D(pm.selected(),rs=2, ite=0, bi=1, p=0, u=1, ms=1024, tf=1)
     pm.select(oldSel)
コード例 #19
0
ファイル: uvPublish.py プロジェクト: leocadaval/lcPipe
def delMultipleUVsets(*arg):
    # Check meshList
    meshList = pm.ls(type='mesh')
    if not meshList:
        return []

    # Check Multiple UV Sets
    for mesh in meshList:
        if mesh.isIntermediate():
            continue

        UVsets = pm.polyUVSet(mesh, q=True, allUVSets=True)
        if not UVsets:
            continue

        if len(UVsets) > 1:
            current = pm.polyUVSet(mesh, q=True, currentUVSet=True)[0]
            if current != UVsets[0]:
                pm.polyUVSet(mesh, copy=True, uvSet=current, nuv=UVsets[0])

            for UV in UVsets[1:]:
                pm.polyUVSet(mesh, delete=True, uvSet=UV)
                pm.delete(mesh, ch=True)
コード例 #20
0
ファイル: lcGeometry.py プロジェクト: kotchin/mayaSettings
 def removeExtraSets(cls, obj, *args, **kwargs):
   """ remove all uv sets except for the default one """
   for i in pm.polyUVSet(obj, query=True, allUVSetsIndices=True)[1:]:
     name = pm.getAttr(obj+'.uvSet['+str(i)+'].uvSetName')
     pm.polyUVSet(obj, delete=True, uvSet=name)
コード例 #21
0
    def __uniformUV(self, obj):
        #查询对象的所有UV
        #另一种风格写法:allUV=obj.getUVSetNames()
        allUV = pm.polyUVSet(obj, query=True, allUVSets=True)
        #强制指定当前UV为self.baseUV
        pm.polyUVSet(obj, currentUVSet=True, uvSet=self.baseUV)
        #创建新UV为mwi_showUV
        if 'mwi_showUV' in allUV:
            pm.polyUVSet(obj, delete=True, uvSet='mwi_showUV')
        ##另外一种风格写法:obj.createUVSet('mwi_showUV')
        pm.polyUVSet(obj, create=True, uvSet='mwi_showUV')
        #复制当前UV到mwi_showUV
        pm.polyUVSet(obj, copy=True, nuv='mwi_showUV')

        #判断是否存在self.workUV的传入UV,不存在着创建self.workUV的传入UV
        if self.workUV not in allUV:
            pm.polyUVSet(obj, create=True, uvSet=self.workUV)

        #创建新UV为mwi_refUV
        if 'mwi_refUV' in allUV:
            pm.polyUVSet(obj, delete=True, uvSet='mwi_refUV')
        pm.polyUVSet(obj, create=True, uvSet='mwi_refUV')
        #复制self.workUV到mwi_refUV
        pm.polyUVSet(obj, copy=True, nuv='mwi_refUV', uvSet=self.workUV)
        print u'UV统一完毕'
        state = True
        return state
コード例 #22
0
ファイル: pbUV.py プロジェクト: aaronfang/pbUV
 def select_set(self, *args):
     uvset = self.uvs.getSelectItem()[0].split(' | ')
     pm.polyUVSet(uvset[0], currentUVSet=True, uvSet=uvset[1])
コード例 #23
0
def make_lightmap():
    sel = pm.ls(sl=True)
    for s in sel:
        pm.polyUVSet(s, copy=True, uvSet='map1', newUVSet='lightmap')
コード例 #24
0
 def findFlatUvSet(self, s):
     sub = self.UvSetSearchName.getText().lower()
     flatUvSet = [n for n in pm.polyUVSet(s, q = True, allUVSets = True) if sub in n.lower()]
     if len(flatUvSet)>=1:
         return flatUvSet[0]
     else:pm.error('no matching UV set')
コード例 #25
0
 def grabUV(self):
     uv = pm.polyUVSet(cuv = 1, q = 1)[0]
     self.UvSetSearchName.setText(uv)
コード例 #26
0
def get_uv_sets():
    sel = pm.ls(sl=True)
    for s in sel:
        print(pm.polyUVSet(query=True, allUVSets=True))
コード例 #27
0
def copy_uv_sets():
    sel = pm.ls(sl=True)
    for s in sel:
        pm.polyUVSet(s, copy=True, uvSet='map1', newUVSet='lightmap')
コード例 #28
0
ファイル: lcGeometry.py プロジェクト: kotchin/mayaSettings
 def getUVSets(cls, *args, **kwargs):
   """ """
   return pm.polyUVSet(query=True, allUVSets=True)
コード例 #29
0
    def UpdateUVs(self):
        z = self.uvZ()
        xy = self.uvXY()
        print uv
        self.original.setUV(z, uvSet="Z")
        self.original.setUV(xy, uvSet="XY")


test = PivotPoint(selected[0])
test.UpdateUVs()
print test.locator.getTransform().getTranslation()
print test.vPosition

#Setup UVSets for storing Pivots
mesh = pm.ls(sl=True)[0].getShape()
while len(pm.polyUVSet(mesh, auv=True, query=True)) < 4:
    #Pivots are encoding into UV2 UV3
    pm.polyUVSet(mesh, copy=True)

set = pm.polyUVSet(mesh, auv=True, query=True)
setXY = set[2]
setZ = set[3]

pm.polyUVSet(mesh, rename=True, newUVSet='XY', uvSet=setXY)
pm.polyUVSet(mesh, rename=True, newUVSet='Z', uvSet=setZ)

selection = pm.polyListComponentConversion(pm.ls(sl=True), tv=True)

pivot = pm.spaceLocator('PivotPoint')

#Clear out existing XY.Z UVs
コード例 #30
0
 def getUVSets(cls, *args, **kwargs):
     """ """
     return pm.polyUVSet(query=True, allUVSets=True)
コード例 #31
0
 def removeExtraSets(cls, obj, *args, **kwargs):
     """ remove all uv sets except for the default one """
     for i in pm.polyUVSet(obj, query=True, allUVSetsIndices=True)[1:]:
         name = pm.getAttr(obj + '.uvSet[' + str(i) + '].uvSetName')
         pm.polyUVSet(obj, delete=True, uvSet=name)
コード例 #32
0
ファイル: cleanup_FBX.py プロジェクト: creuter23/tools
import pymel.core as pm
sel=pm.ls(sl=True)
for obj in sel:
	if obj.getShape().type()=='mesh':
		pm.polyQuad(obj,kgb=True,ws=True,khe=False,ktb=False)
		pm.polySoftEdge(obj,a=180)
	if pm.polyUVSet(obj,auv=True,q=True):
		if 'UVW' in pm.polyUVSet(obj,auv=True,q=True):
			pm.polyCopyUV(obj,uvSetNameInput="UVW", uvSetName="map1", ch=0)
			pm.polyUVSet(obj,uvs="UVW",delete=True)
	pm.delete(obj,ch=True)
pm.select(sel,r=True)


shaders=pm.ls(type='phong')
for shader in shaders:
	if len(shader.split('_'))>1:
		name=shader.split('_')[1]
	else:
		name=shader
	shader.rename(name+'_MTL')
	
	
	
コード例 #33
0
ファイル: UVCopyModi.py プロジェクト: smsyes/pythonWorkSpace
	


sl=pm.ls(l=1, sl=1)
orig = ""
sh = ""
uvmap = []

slSz=len(sl)

sc=sl[0]
tg=sl[1:]
i = 0
for i in xrange(len(tg)):
	sh=FindShMesh(sl[i])
	uvmap=pm.polyUVSet(sh, q=1, cuv=1)
	orig=FindOrigMesh(sl[0])
	if orig == "None":
		orig=FindShMesh(sl[0])
		pm.select(orig,tg[i])
		
		pm.transferAttributes(fuv=0, uvs=2, pos=0, clb=1, sus=str(uvmap[0]), sm=3, spa=1, nml=0, col=2)
		pm.delete(tg[i],ch=1)
		
	
	else:
		pm.setAttr((orig + ".intermediateObject"), 
			0)
		pm.select(sl[i])
		pm.select(orig, add=1)
		pm.transferAttributes(fuv=0, uvs=2, pos=0, clb=1, sus=uvs[0], sm=3, spa=1, nml=0, col=2)