cwisbg

# Transforms to instance

Jan 15th, 2019
420
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.30 KB | None | 0 0
  1. # Transforms to instance
  2.  
  3. from pymel.core import *
  4. sl = selected()
  5. InstancePos = sl[:-1]
  6. InstanceObj = sl[-1]
  7.  
  8. TransformToArrayCheck = ls(InstanceObj+"_TrToArray")
  9. if not TransformToArrayCheck:
  10.     TransformToArrayNode = soup().create('transformsToArrays')
  11.     rename(TransformToArrayNode, InstanceObj+"_TrToArray")
  12.     TransformToArrayNode = ls(InstanceObj+"_TrToArray")[0]
  13. i = 0
  14. for pos in InstancePos:
  15.     pos.worldMatrix[0] >> TransformToArrayNode.inTransforms[i].inMatrix
  16.     i+=1
  17.  
  18. # position_arrayToDynArrays Node
  19. posArray = ls(InstanceObj+"_position_arrayToDynArrays")
  20. if not posArray:
  21.     posArray = createNode("arrayToDynArrays")
  22.     rename(posArray, InstanceObj+"_position_arrayToDynArrays")
  23.     posArray = ls(InstanceObj+"_position_arrayToDynArrays")
  24.     TransformToArrayNode.outPositionPP >> posArray[0].inArray
  25.     setAttr(InstanceObj+"_position_arrayToDynArrays"+".name","position",type="string")
  26. # rotate_arrayToDynArrays Node
  27. rotateArray = ls(InstanceObj+"_rotate_arrayToDynArrays")
  28. if not rotateArray:    
  29.     rotateArray = createNode("arrayToDynArrays")
  30.     rename(rotateArray, InstanceObj+"_rotate_arrayToDynArrays")
  31.     rotateArray = ls(InstanceObj+"_rotate_arrayToDynArrays")
  32.     TransformToArrayNode.outRotationPP >> rotateArray[0].inArray
  33.     rotateArray[0].outDynamicArrays >> posArray[0].inDynamicArrays
  34.     setAttr(InstanceObj+"_rotate_arrayToDynArrays"+".name","rotation",type="string")  
  35. # scale_arrayToDynArrays Node
  36. scaleArray = ls(InstanceObj+"_scale_arrayToDynArrays")
  37. if not scaleArray:    
  38.     scaleArray = createNode("arrayToDynArrays")
  39.     rename(scaleArray, InstanceObj+"_scale_arrayToDynArrays")
  40.     scaleArray = ls(InstanceObj+"_scale_arrayToDynArrays")
  41.     TransformToArrayNode.outScalePP >> scaleArray[0].inArray
  42.     scaleArray[0].outDynamicArrays >> rotateArray[0].inDynamicArrays
  43.     setAttr(InstanceObj+"_scale_arrayToDynArrays"+".name","scale",type="string")  
  44.  
  45. # Instancer Node
  46. instancerNode = ls(InstanceObj+"_instancerNode")
  47. if not instancerNode:
  48.     instancerNode = createNode("instancer")
  49.     rename(instancerNode, InstanceObj+"_instancerNode")
  50.     instancerNode = ls(InstanceObj+"_instancerNode")
  51.     posArray[0].outDynamicArrays >> instancerNode[0].inputPoints
  52.     InstanceObj.matrix >> instancerNode[0].inputHierarchy[0]
Advertisement
Add Comment
Please, Sign In to add comment