Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Plane Image Plane version 2
- # cwisbg
- from pymel.core import *
- sl = selected()
- currentSceneScale = currentUnit(q=1, l=1)
- tempSceneScale = currentUnit(l = "cm")
- resW = getAttr("defaultResolution.width")
- resH = getAttr("defaultResolution.height")
- camAperatureH = camera(sl[0], hfa = 1, q = 1)
- camAperatureV = camera(sl[0], vfa = 1, q = 1)
- camAperatureH *= 25.4
- camAperatureV *= 25.4
- distanceMultiplierH = resH/camAperatureV
- distanceMultiplierV = resW/camAperatureH
- if distanceMultiplierH > distanceMultiplierV:
- distanceMultiplier = distanceMultiplierH
- else:
- distanceMultiplier = distanceMultiplierV
- focalLenght = camera(sl[0], fl=1, q=1)
- planeOffset = distanceMultiplier * focalLenght
- def cleanPlane(s):
- oldPlaneCheck = ls('{0}_planeGrp'.format(s))
- if oldPlaneCheck:
- delete(oldPlaneCheck)
- xx = 0
- for s in sl:
- sPap = listRelatives(s,p=1)
- if sPap:
- parent(s, w=1)
- cleanPlane(s)
- setAttr ("{0}.nearClipPlane".format(s), .01)
- imgPlane = polyPlane(sx = 1,sy = 1, n = "{0}_camPlane".format(s),ch=0)
- parentConstraint(s, imgPlane , n= "tempConstraint")
- delete("tempConstraint")
- rotate(imgPlane, 90,0,0,os=1,r=1)
- scale(imgPlane, resW, 1, resH, r=1)
- move(imgPlane[0], 0, -planeOffset,0, r=1,os=1,wd=1)
- camLocation = s.getTranslation(space = "world")
- plnGrp = group(n='{0}_planeGrp'.format(s), w=1, em=1)
- xform(plnGrp, piv = (camLocation[0],camLocation[1],camLocation[2]), ws=1)
- parent(imgPlane[0], plnGrp)
- parent(plnGrp, s)
- scale(plnGrp, 0.1,0.1,0.1, r=1)
- nwMatCheck = ls('{0}_mat'.format(s))
- if nwMatCheck:
- pass
- else:
- nwMat = shadingNode('lambert',asShader=1,n='{0}_mat'.format(s))
- nwMatTexture = shadingNode('file',asShader=1,n='{0}_textureFile'.format(s))
- connectAttr('{0}_textureFile.outColor'.format(s), '{0}_mat.color'.format(s))
- imagePlaneImage = fileDialog2(ds=1, fm = 1 )
- if imagePlaneImage:
- setAttr('{0}_textureFile.fileTextureName'.format(s),imagePlaneImage)
- planeShader = sets( renderable=True, noSurfaceShader=True, empty=True,name="planeSurfaceShader" )
- connectAttr('{0}.outColor'.format('{0}_mat'.format(s)), planeShader.surfaceShader)
- sets(planeShader, e=True, forceElement = imgPlane[0])
- scale(plnGrp, 0.1,0.1,0.1, r=1)
- if sPap:
- parent(s, sPap)
- refresh(cw=1)
- xx += 1
- currentUnit(l = currentSceneScale)
- print "done"
Advertisement
Add Comment
Please, Sign In to add comment