Esempio n. 1
0
def createCameraUVProj():
    sel = cmds.ls(sl=True)
    if sel:
        for node in sel:
            if cmds.polyEvaluate(node, fc=True) == 0:
                cmds.select(node+'.f[*]', add=True)
        cmds.polyProjection(cmds.ls(sl=True), ch=True, type='Planar', ibd=True, kir=True, md='c')
Esempio n. 2
0
def mkPlanar():
	mkObjListP = cmds.ls (sl = True)
	mkAutoListP = len(mkObjListP)
	mkPlanarV = cmds.textFieldGrp(mkPlanarF,query = True, text = True)
	for i in range (0,mkAutoListP,1):
		cmds.polyProjection(mkObjListP[i],type='Planar',md = mkPlanarV,  ch = True,sf = True)
		mkAuto
Esempio n. 3
0
def select_inside_loop():
	# get selected face loop and one inner face, convert to edges
	get_sel = cmds.ls(os=1,fl=1)
	if _cmds().is_component(get_sel) == "face":
		mesh = cmds.ls(sl=1,fl=1,o=1)
		edge_from_face = cmds.ls(cmds.polyListComponentConversion(get_sel[:-1],te=1,bo=1),fl=1)
		
		# create temp uvset for uv projection
		current_uvset = cmds.polyUVSet(mesh,q=1,cuv=1)[0]
		for uvset in cmds.polyUVSet(mesh,q=1,auv=1):
			if uvset == "af_tmp_select_uvset":
				cmds.polyUVSet(mesh,delete=1,uvSet="af_tmp_select_uvset")
				cmds.polyUVSet(mesh,create=1,uvSet="af_tmp_select_uvset")
				cmds.polyUVSet(mesh,e=1,cuv=1,uvSet="af_tmp_select_uvset")
			else:
				cmds.polyUVSet(mesh,create=1,uvSet="af_tmp_select_uvset")
				cmds.polyUVSet(mesh,e=1,cuv=1,uvSet="af_tmp_select_uvset")
		
		cmds.polyProjection(mesh,ch=0,type="Planar",ibd=1,md="y")
		cmds.polyMapCut(edge_from_face,e=0)
		
		# get inner selection
		cmds.select(cmds.polyListComponentConversion(get_sel[-1],tuv=1),r=1)
		mm.eval("polySelectBorderShell 0;ConvertSelectionToFaces;")
		inner = cmds.ls(sl=1,fl=1)
		
		# cleanup
		cmds.polyUVSet(mesh,e=1,cuv=1,uvSet=current_uvset)
		cmds.polyUVSet(mesh,delete=1,uvSet="af_tmp_select_uvset")
		cmds.delete(mesh,ch=1)
		
		# select fill
		cmds.select((inner+get_sel[:-1]),r=1)
Esempio n. 4
0
def mkcyclinder():
    mkObjListC = cmds.ls(sl=True)
    mkAutoListC = len(mkObjListC)
    for i in range(0, mkAutoListC, 1):
        cmds.polyProjection(mkObjListC[i],
                            type='Cylindrical',
                            ch=True,
                            sf=True)
Esempio n. 5
0
def createCameraUVProj():
    """
    create a UVs projection based on the active camera
    """
    selection = cmds.ls(sl=True)
    for node in selection:
        if cmds.polyEvaluate(node, fc=True) == 0:
            cmds.select(node+'.f[*]', add=True)
    cmds.polyProjection(cmds.ls(sl=True), ch=True, type='Planar', ibd=True, kir=True, md='c')
Esempio n. 6
0
def mkPlanar():
    mkObjListP = cmds.ls(sl=True)
    mkAutoListP = len(mkObjListP)
    mkPlanarV = cmds.textFieldGrp(mkPlanarF, query=True, text=True)
    for i in range(0, mkAutoListP, 1):
        cmds.polyProjection(mkObjListP[i],
                            type='Planar',
                            md=mkPlanarV,
                            ch=True,
                            sf=True)
        mkAuto
Esempio n. 7
0
def proj(*args):
	selected = cmds.ls(sl=True)
	projDir = cmds.radioButtonGrp("projAx", q=True, sl=True)
	faceNum = cmds.polyEvaluate(f=True)

	if(projDir==1):
		dirVar = "x"
	if(projDir==2):
		dirVar = "y"
	if(projDir==3):
		dirVar = "z"
	cmds.polyProjection(selected[0] + ".f" + "[0:" + str(faceNum)+ "]", type="Planar", ibd=True, md=dirVar, ch=True)
Esempio n. 8
0
def unwrapTerrain(sel):
    # unwrap planar Y
    cmds.polyProjection(sel+'.f[*]',
                                    ch=False,
                                    type='Planar',
                                    ibd=True,
                                    isu=1,
                                    isv=1,
                                    md='y')
    # apply unfoldAndRotate x times
    for i in range(4):
        unfoldAndRotate(sel)
Esempio n. 9
0
def proj(*args):
	selected = cmds.ls(sl=True)
	projDir = cmds.radioButtonGrp("projAx", q=True, sl=True)
	faceNum = cmds.polyEvaluate(f=True)

	if(projDir==1):
		dirVar = "x"
	if(projDir==2):
		dirVar = "y"
	if(projDir==3):
		dirVar = "z"
	cmds.polyProjection(selected[0] + ".f" + "[0:" + str(faceNum)+ "]", type="Planar", ibd=True, md=dirVar, ch=True)
Esempio n. 10
0
 def prepare_geo(self, original, smooth, smoothValue, projectUV, scaleUV):
     if smooth:
         print '> smooth normals...'
         cmds.polySoftEdge(a=smoothValue, ch=False) 
     if projectUV:
         print '> project uvs...'
         cmds.polyProjection(original+'.f[*]',
                                 ch=False,
                                 type='Planar',
                                 ibd=True,
                                 isu=scaleUV,
                                 isv=scaleUV,
                                 md='y')
     cmds.select(original, r=True)
Esempio n. 11
0
def layoutUVs():

    selected = cmds.ls(selection=True)
    obj = selected[0]

    totalFaces = cmds.polyEvaluate(obj, face=True)

    oneThird = totalFaces / 3

    startFace = 0
    endFace = oneThird - 1
    cmds.polyProjection(obj + '.f[' + str(startFace) + ':' + str(endFace) +
                        ']',
                        type="planar")

    startFace = oneThird
    endFace = (oneThird * 2) - 1
    cmds.polyProjection(obj + '.f[' + str(startFace) + ':' + str(endFace) +
                        ']',
                        type="cylindrical")

    startFace = (oneThird * 2)
    endFace = totalFaces - 1
    cmds.polyProjection(obj + '.f[' + str(startFace) + ':' + str(endFace) +
                        ']',
                        type="spherical")
Esempio n. 12
0
def create_uv(target, camera_info):
    """ targetに対して、camera_infoの情報をもとにUVを作成する
    """
    face_num = cmds.polyEvaluate(target, face=1)
    face_name = '%s.f[0:%s]' % (target, face_num)

    attr_value = {
        'projectionCenterX': camera_info['tr'][0],
        'projectionCenterY': camera_info['tr'][1],
        'projectionCenterZ': camera_info['tr'][2],
        'rotateX': -camera_info['ro'][0],
        'rotateY': camera_info['ro'][1]+180,
        'rotateZ': -camera_info['ro'][2],
        'projectionHorizontalSweep': camera_info['angle_h'],
        'projectionVerticalSweep': camera_info['angle_v'],
        'imageScaleU': -1
    }

    projection = cmds.polyProjection(
        face_name, ch=1, type='Spherical', pcx=0, pcy=0, pcz=0)[0]

    for attr, value in attr_value.items():
        cmds.setAttr(projection + '.' + attr, value)
Esempio n. 13
0
def layoutUV(obj, type=0):

    totalFaces = cmds.polyEvaluate(obj, face=True)

    oneThird = totalFaces / 3

    if (type == 0):
        startFace = 0
        endFace = oneThird - 1
        cmds.polyProjection(obj + '.f[' + str(startFace) + ':' + str(endFace) +
                            ']',
                            type="planar")

    if (type == 1):
        startFace = oneThird
        endFace = (oneThird * 2) - 1
        cmds.polyProjection(obj + '.f[' + str(startFace) + ':' + str(endFace) +
                            ']',
                            type="cylindrical")

    if (type == 2):
        startFace = (oneThird * 2)
        endFace = totalFaces - 1
        cmds.polyProjection(obj + '.f[' + str(startFace) + ':' + str(endFace) +
                            ']',
                            type="spherical")

    if (type == 3):
        cmds.polyCylindricalProjection(obj + '.f[*]')
        cmds.polyMapCut(
            obj + '.e[17]'
        )  # WARNING: this does not always select a verticle edge as a cut line
        cmds.unfold(obj + '.map[*]',
                    i=5000,
                    ss=0.001,
                    gb=0,
                    gmb=0.5,
                    pub=0,
                    ps=0,
                    oa=2,
                    us=False)
Esempio n. 14
0
mc.polyExtrudeEdge(sx=0, sz=0, ty=0.02 * r)
mc.polyMergeVertex(d=0.001 * r)
nf4 = mc.polyEvaluate(craft_bon, f=1)
mc.delete(craft_bon, ch=1)

# สร้างเบลนด์เชป
mc.select([s.replace(craft_bon, kliao) for s in sl])
for i in range(15):
    mc.polyExtrudeEdge(ty=r * 0.055)
mc.polyExtrudeEdge(sx=0, sz=0, ty=0.02 * r)
mc.polyMergeVertex(d=0.001 * r)
bs = mc.blendShape(kliao, craft_bon)[0]

# สร้าง uv ให้แต่ละส่วนแยกกัน โดยจัดทำ uv ที่โหนดวัตถุเบลนด์เชป แล้วค่อยคัดลอกมาที่วัตถุหลัก
at = 'pcx pcy pcz rx ry rz phs pvs'.split()
ppj1 = mc.polyProjection(kliao + '.f[%d:%d]' % (nf1, nf2 - 1),
                         t='spherical')[0]
ppj2 = mc.polyProjection(kliao + '.f[%d:%d]' % (nf2, nf3 - 1),
                         t='spherical')[0]
for a, k1, k2 in zip(at, [0, 5, 0, 90, 0, 0, 130, 130],
                     [0, -2, 0, -90, 0, 0, 160, 160]):
    mc.setAttr(ppj1 + '.' + a, k1)
    mc.setAttr(ppj2 + '.' + a, k2)
mc.polyAutoProjection(kliao + '.f[%d:%d]' % (nf3, nf4 - 1), ps=0.4)[0]
mc.polyTransfer(craft_bon, uv=1, ao=kliao, ch=0)
mc.delete(kliao)

# ใส่สีให้แต่ละหน้าต่างๆกัน
mc.select(craft_bon + '.f[%d:%d]' % (nf1, nf2 - 1))
mc.hyperShade(a=phiu_nuea_nai)
mc.select(craft_bon + '.f[%d:%d]' % (nf2, nf3 - 1))
mc.hyperShade(a=phiu_thian)
Esempio n. 15
0
def mkSphere():
	mkObjListS = cmds.ls (sl = True)
	mkAutoListS = len(mkObjListS)
	for i in range (0,mkAutoListS,1):
		cmds.polyProjection(mkObjListS[i],type='Spherical', ch = True,sf = True)
Esempio n. 16
0
def mkcyclinder():
	mkObjListC = cmds.ls (sl = True)
	mkAutoListC = len(mkObjListC)
	for i in range (0,mkAutoListC,1):
		cmds.polyProjection(mkObjListC[i],type='Cylindrical', ch = True,sf = True)
Esempio n. 17
0
def mkSphere():
    mkObjListS = cmds.ls(sl=True)
    mkAutoListS = len(mkObjListS)
    for i in range(0, mkAutoListS, 1):
        cmds.polyProjection(mkObjListS[i], type='Spherical', ch=True, sf=True)
Esempio n. 18
0
def createPoEmByShaderAndObjList(includeObjects, shaderList, **kwargs):
    '''{'del_path':'Dynamics/Particles/Emitter/createPoEmByShaderAndObjList()ONLYSE',
'icon':':/emitter.png',
'tip':'指定某些材质的面创建pointEmitter',
'usage':'\
    ########## No creation new uvsets##########\\n\
    objectList = cmds.ls(sl=True)\\n\
    for obj in objectList:\\n\
        fCount = cmds.polyEvaluate(obj,f=True)\\n\
        cmds.polyProjection("%s.f[0:%s]"%(obj,fCount), ch=False, type="Planar", ibd=False, cm=False, md="x")\\n\
    ##########################################\\n\
includeObjects = cmds.ls(sl=True,exactType="transform")\\n\
shaderList = cmds.ls(sl=True,mat=True)\\n\
$fun(includeObjects, shaderList, uvSetName="forEm", plannarMapping=False,mapDirectionValue="x")\\n\\n\
shaderList = cmds.ls(sl=True,mat=True)\\n\
includeObjects = cmds.listRelatives(cmds.ls(sl=True)[0],type="transform")\\n\
$fun(includeObjects, shaderList, uvSetName="forEm", plannarMapping=False,mapDirectionValue="x")'
}
'''
    if isinstance(includeObjects, str) or isinstance(includeObjects, unicode):
        includeObjects = [includeObjects]
    if isinstance(shaderList, str) or isinstance(shaderList, unicode):
        shaderList = [shaderList]


    defalutKwargs = dict(\
                         uvSetName='forEm', \
                         plannarMapping=False,\
                         mapDirectionValue='x'\
                         )

    execStr = __check_kwargs(defalutKwargs, kwargs)
    exec execStr
    print plannarMapping, uvSetName

    cmds.constructionHistory(toggle=False)

    includeObjects += cmds.listRelatives(includeObjects, type='mesh')
    #create ramp for emitter of textureRate
    if not cmds.objExists(
            "uvEmMap"):  #and not cmds.objectType('uvEmMap')=="ramp":
        emitMat = cmds.shadingNode('ramp', asTexture=True, n="uvEmMap")
        cmds.removeMultiInstance(emitMat + '.colorEntryList[2]', b=True)
        cmds.setAttr(emitMat + '.interpolation', 0)
        cmds.setAttr(emitMat + '.colorEntryList[0].color',
                     0,
                     0,
                     0,
                     type='double3')
        cmds.setAttr(emitMat + '.colorEntryList[1].position', 0.05)
        cmds.setAttr(emitMat + '.colorEntryList[1].color',
                     1,
                     1,
                     1,
                     type='double3')
    else:
        emitMat = "uvEmMap"

    for inSideShader in shaderList:
        cmds.hyperShade(objects=inSideShader)
        faceList = cmds.ls(sl=True)

        cmds.select(cl=True)
        emitObjList, faceSet = [], []

        for faceGrp in faceList:
            emitObj = re.split(r'\.f', faceGrp)[0]
            #worldarea = cmds.polyEvaluate( emitObj, wa=True )
            #if emitObj not in emitObjList and worldarea>maxArea:
            if emitObj not in emitObjList and emitObj in includeObjects:
                emitObjList.append(emitObj)
                #print emitObj
                #append list to faceSet List
                faceSet.append([])

            if emitObj in emitObjList:
                faceSetIndex = emitObjList.index(emitObj)
                #add faceGrp to faceSet[]
                faceSet[faceSetIndex].append(faceGrp)

        #create uvSet for pointEmitter and create pointEmitter for emitObj
        for objFaceGrp in faceSet:
            emitObjIndex = faceSet.index(objFaceGrp)

            parEmit = cmds.emitter(emitObjList[emitObjIndex],
                                   type='surf',
                                   nsp=.1,
                                   tsp=1,
                                   srn=1,
                                   n='shtterEmit##')[1]

            if objFaceGrp[0] != emitObjList[emitObjIndex]:
                #Delete uvSetName uvset if it exists
                temp = cmds.polyUVSet(emitObjList[emitObjIndex],
                                      q=True,
                                      allUVSets=True)
                if temp != None and uvSetName in temp:
                    cmds.polyUVSet(emitObjList[emitObjIndex],
                                   delete=True,
                                   uvSet=uvSetName)

                #create new uvsets
                if plannarMapping:
                    cmds.polyProjection(objFaceGrp,
                                        ch=False,
                                        type='Planar',
                                        ibd=False,
                                        cm=True,
                                        uvSetName=uvSetName,
                                        md=mapDirectionValue)
                #copy uv to uvSetName from map1
                else:
                    emitterUVSet = cmds.polyUVSet(emitObjList[emitObjIndex],
                                                  create=True,
                                                  uvSet=uvSetName)[0]
                    cmds.polyCopyUV(objFaceGrp,
                                    uvi='map1',
                                    uvs=emitterUVSet,
                                    ch=False)

                    firstUVSet = cmds.polyUVSet(emitObjList[emitObjIndex],
                                                q=True,
                                                allUVSets=True)[0]
                    cmds.polyUVSet(emitObjList[emitObjIndex],
                                   currentUVSet=True,
                                   uvSet=firstUVSet)

                cmds.setAttr(parEmit + '.enableTextureRate', 1)
                cmds.connectAttr(emitMat + '.outColor',
                                 parEmit + '.textureRate')
                geoConnectNodeList = cmds.ls(cmds.listHistory(
                    emitObjList[emitObjIndex], f=True, levels=1),
                                             exactType='geoConnector')
                if geoConnectNodeList != []:
                    for geoConnectNode in geoConnectNodeList:
                        cmds.setAttr(geoConnectNode + '.guv',
                                     uvSetName,
                                     type='string',
                                     l=True)

    cmds.constructionHistory(toggle=True)