Advertisement
yaotungyu

ox op create

Jun 2nd, 2020
1,288
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.64 KB | None | 0 0
  1. def Ox_Create_Operator(target,operator,name=""):
  2.     '''
  3.   Some common operator to us:
  4.  
  5.   - OscillatorNode
  6.   - ChangeWidthNode
  7.   '''
  8.     import maya.mel as mel
  9.     pre_create_op_list = cmds.ls(type=operator)
  10.     mel.eval('OxAddStrandOperator "'+target+'" '+operator)
  11.     post_create_op_list = cmds.ls(type=operator)
  12.     created_op = list(set(post_create_op_list).difference(pre_create_op_list))[0]
  13.     cmds.rename(created_op,name)
  14.    
  15. for h in cmds.ls(type='HairShape'):
  16.     ns = h.split(':')[0]
  17.     Ox_Create_Operator(h,'OscillatorNode',name = ns+'__'+h.split(':')[1].replace('GRMShape','OscillatorNode'))
  18.  
  19. for a in cmds.ls(sl=1):
  20.     grmshape = cmds.listRelatives(a,c=1,shapes=1)[0]
  21.     ns = grmshape.split(':')[0]
  22.     Ox_Create_Operator(grmshape,'OscillatorNode',name=grmshape.replace('GRMShape','OscillatorNode'))
  23. cmds.select(cmds.ls(type='OscillatorNode'))
  24. for a in cmds.ls(sl=1):
  25.     grmshape = cmds.listRelatives(a,c=1,shapes=1)[0]
  26.     Ox_Create_Operator(grmshape,'AnimationCacheNode',name=grmshape.replace('GRMShape','AnimationCacheNode'))
  27.  
  28. import fileTools.default as ft
  29. anim_cache_base = ft.ez.path('elems')+'/'+'ox_anm_caches'
  30. cmds.sysFile(anim_cache_base,md=1)
  31. tmin = cmds.playbackOptions(q=1,min=1)
  32. tmax = cmds.playbackOptions(q=1,max=1)
  33. for a in cmds.ls(type='AnimationCacheNode'):
  34.     cmds.setAttr(a+'.filePath',anim_cache_base+'/'+a.replace(":",'.')+'.abc',type='string')
  35.     cmds.OxRecordAnimation(a,startTime=tmin,endTime=tmax)
  36.  
  37. for a in cmds.ls(type='AnimationCacheNode'):
  38.     mel.eval('OxDeleteStrandOperator "'+a+'"')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement