cwisbg

stickAndFollow

Dec 2nd, 2015
307
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.05 KB | None | 0 0
  1. from pymel.core import *
  2. # select list, then snap to object
  3. sl = selected()  
  4. startL = spaceLocator(n="startL")
  5. endL = spaceLocator(n="endL")
  6. cp = createNode("closestPointOnMesh",n="snapperCheck")
  7. snapList = sl[:-1]
  8. snapto = sl[-1]
  9.  
  10. snapto.getShape().worldMatrix[0] >> cp.inputMatrix
  11. startL.translate >> cp.inPosition
  12. cp.position >> endL.translate
  13. snapto.getShape().worldMesh[0] >> cp.inMesh
  14.  
  15. for s in snapList:
  16.     print s
  17.     spap = s.listRelatives(p=1)
  18.     l = spaceLocator(n="tempPose")
  19.     pc = parentConstraint(s,l)
  20.     st = l.getTranslation()
  21.     delete(pc)
  22.     move(startL, st)
  23.     pc2 = pointConstraint(endL,s)
  24.     closestVtx = getAttr(cp.closestVertexIndex)
  25.     closestVtx = str(snapto.getShape())+".vtx["+str(closestVtx)+"]"
  26.     target = polyListComponentConversion(closestVtx,fv=1,tuv=1)
  27.     xy = polyEditUV(target,q=1,u=1,v=1)
  28.     pc = pointOnPolyConstraint(target,s,w=1)
  29.     setAttr(pc+"."+snapto+"U0",xy[0])
  30.     setAttr(pc+"."+snapto+"V0",xy[1])
  31.     delete(l,pc2)
  32.     if spap:
  33.         parent(s,spap)
  34. delete(cp,startL,endL,)
Advertisement
Add Comment
Please, Sign In to add comment