Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def Ox_Create_Operator(target,operator,name=""):
- '''
- Some common operator to us:
- - OscillatorNode
- - ChangeWidthNode
- '''
- import maya.mel as mel
- pre_create_op_list = cmds.ls(type=operator)
- mel.eval('OxAddStrandOperator "'+target+'" '+operator)
- post_create_op_list = cmds.ls(type=operator)
- created_op = list(set(post_create_op_list).difference(pre_create_op_list))[0]
- cmds.rename(created_op,name)
- for h in cmds.ls(type='HairShape'):
- ns = h.split(':')[0]
- Ox_Create_Operator(h,'OscillatorNode',name = ns+'__'+h.split(':')[1].replace('GRMShape','OscillatorNode'))
- for a in cmds.ls(sl=1):
- grmshape = cmds.listRelatives(a,c=1,shapes=1)[0]
- ns = grmshape.split(':')[0]
- Ox_Create_Operator(grmshape,'OscillatorNode',name=grmshape.replace('GRMShape','OscillatorNode'))
- cmds.select(cmds.ls(type='OscillatorNode'))
- for a in cmds.ls(sl=1):
- grmshape = cmds.listRelatives(a,c=1,shapes=1)[0]
- Ox_Create_Operator(grmshape,'AnimationCacheNode',name=grmshape.replace('GRMShape','AnimationCacheNode'))
- import fileTools.default as ft
- anim_cache_base = ft.ez.path('elems')+'/'+'ox_anm_caches'
- cmds.sysFile(anim_cache_base,md=1)
- tmin = cmds.playbackOptions(q=1,min=1)
- tmax = cmds.playbackOptions(q=1,max=1)
- for a in cmds.ls(type='AnimationCacheNode'):
- cmds.setAttr(a+'.filePath',anim_cache_base+'/'+a.replace(":",'.')+'.abc',type='string')
- cmds.OxRecordAnimation(a,startTime=tmin,endTime=tmax)
- for a in cmds.ls(type='AnimationCacheNode'):
- mel.eval('OxDeleteStrandOperator "'+a+'"')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement