cwisbg

planeImagePlane_v2_stable

Jun 15th, 2012
307
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.43 KB | None | 0 0
  1. # Plane Image Plane version 2
  2. # cwisbg
  3. from pymel.core import *
  4. sl = selected()
  5. currentSceneScale = currentUnit(q=1, l=1)
  6. tempSceneScale = currentUnit(l = "cm")
  7. resW = getAttr("defaultResolution.width")
  8. resH = getAttr("defaultResolution.height")
  9. camAperatureH = camera(sl[0], hfa = 1, q = 1)
  10. camAperatureV = camera(sl[0], vfa = 1, q = 1)
  11. camAperatureH *= 25.4
  12. camAperatureV *= 25.4
  13. distanceMultiplierH = resH/camAperatureV
  14. distanceMultiplierV = resW/camAperatureH
  15. if distanceMultiplierH > distanceMultiplierV:
  16.     distanceMultiplier = distanceMultiplierH
  17. else:
  18.     distanceMultiplier = distanceMultiplierV
  19. focalLenght = camera(sl[0], fl=1, q=1)
  20. planeOffset = distanceMultiplier * focalLenght
  21. def cleanPlane(s):
  22.     oldPlaneCheck = ls('{0}_planeGrp'.format(s))
  23.     if oldPlaneCheck:
  24.         delete(oldPlaneCheck)    
  25. xx = 0  
  26. for s in sl:
  27.     sPap = listRelatives(s,p=1)
  28.     if sPap:
  29.         parent(s, w=1)
  30.     cleanPlane(s)
  31.     setAttr ("{0}.nearClipPlane".format(s), .01)
  32.     imgPlane = polyPlane(sx = 1,sy = 1, n = "{0}_camPlane".format(s),ch=0)
  33.     parentConstraint(s, imgPlane , n= "tempConstraint")
  34.     delete("tempConstraint")
  35.     rotate(imgPlane, 90,0,0,os=1,r=1)
  36.     scale(imgPlane, resW, 1, resH, r=1)
  37.     move(imgPlane[0], 0, -planeOffset,0, r=1,os=1,wd=1)
  38.     camLocation = s.getTranslation(space = "world")
  39.     plnGrp = group(n='{0}_planeGrp'.format(s), w=1, em=1)
  40.     xform(plnGrp,  piv = (camLocation[0],camLocation[1],camLocation[2]), ws=1)
  41.     parent(imgPlane[0], plnGrp)
  42.     parent(plnGrp, s)
  43.     scale(plnGrp, 0.1,0.1,0.1, r=1)
  44.     nwMatCheck = ls('{0}_mat'.format(s))
  45.     if nwMatCheck:
  46.         pass
  47.     else:    
  48.         nwMat = shadingNode('lambert',asShader=1,n='{0}_mat'.format(s))
  49.         nwMatTexture = shadingNode('file',asShader=1,n='{0}_textureFile'.format(s))
  50.         connectAttr('{0}_textureFile.outColor'.format(s), '{0}_mat.color'.format(s))
  51.     imagePlaneImage = fileDialog2(ds=1, fm = 1 )
  52.     if imagePlaneImage:        
  53.         setAttr('{0}_textureFile.fileTextureName'.format(s),imagePlaneImage)
  54.     planeShader = sets( renderable=True, noSurfaceShader=True, empty=True,name="planeSurfaceShader" )
  55.     connectAttr('{0}.outColor'.format('{0}_mat'.format(s)), planeShader.surfaceShader)
  56.     sets(planeShader, e=True, forceElement = imgPlane[0])
  57.     scale(plnGrp, 0.1,0.1,0.1, r=1)
  58.     if sPap:
  59.         parent(s, sPap)
  60.     refresh(cw=1)
  61.     xx += 1
  62. currentUnit(l = currentSceneScale)
  63. print "done"
Advertisement
Add Comment
Please, Sign In to add comment