All pastes #458741 Raw Edit

Stuff

public text v1 · immutable
#458741 ·published 2007-04-26 01:19 UTC
rendered paste body
#make a leg!
def SetUpLeg(prefix):
	#make maya commands available
	import maya.cmds as mc
	
	#set up IK
	#ankle IK
	mc.ikHandle(n=prefix + 'legIKHandle', sj=prefix + 'hip', ee=prefix + 'ankle', sol='ikRPsolver')
	#mc.poleVectorConstraint(prefix + 'kneeControl', prefix + 'legIKHandle')
	#ball IK
	mc.ikHandle(n=prefix + 'ballIKHandle', sj=prefix + 'ankle', ee=prefix + 'ball', sol='ikSCsolver')
	#toe IK
	mc.ikHandle(n=prefix + 'toeIKHandle', sj=prefix + 'ball', ee=prefix + 'toe', sol='ikSCsolver')
	
	
	#create empty groups and move their pivots to the correct locations
	mc.group(em=True, w=True, n=prefix + 'liftHeelPivot')
	c = mc.pointConstraint(prefix + 'ball',prefix + 'liftHeelPivot') #position the group at the correct joint
	mc.delete(c) #delete the constraint after it's placed the pivot
	mc.group(em=True, w=True, n=prefix + 'toeTapPivot')
	c = mc.pointConstraint(prefix + 'ball',prefix + 'toeTapPivot')
	mc.delete(c)
	mc.group(em=True, w=True, n=prefix + 'tipToePivot')
	c = mc.pointConstraint(prefix + 'toe',prefix + 'tipToePivot')
	mc.delete(c)
	mc.group(em=True, w=True, n=prefix + 'swivelPivot')
	c = mc.pointConstraint(prefix + 'ball',prefix + 'swivelPivot')
	mc.delete(c)
	mc.group(em=True, w=True, n=prefix + 'anklePivot')
	c = mc.pointConstraint(prefix + 'ball',prefix + 'anklePivot')
	mc.delete(c)
	mc.group(em=True, w=True, n=prefix + 'anklePivotOffset')
	c = mc.pointConstraint(prefix + 'ball',prefix + 'anklePivotOffset')
	mc.delete(c)
	
	#setup group hierarchy
	mc.parent(prefix + 'legIKHandle', prefix + 'liftHeelPivot')
	mc.parent(prefix + 'toeIKHandle', prefix + 'toeTapPivot')
	mc.parent(prefix + 'ballIKHandle', prefix + 'toeTapPivot')
	mc.parent(prefix + 'toeTapPivot', prefix + 'tipToePivot')
	mc.parent(prefix + 'liftHeelPivot', prefix + 'tipToePivot')
	mc.parent(prefix + 'tipToePivot', prefix + 'swivelPivot')
	mc.parent(prefix + 'swivelPivot', prefix + 'anklePivot')
	mc.parent(prefix + 'anklePivot', prefix + 'anklePivotOffset')
	
	#setup knee control
	mc.poleVectorConstraint(prefix + 'kneeControl', prefix + 'legIKHandle')
	
	#parent (constraint) foot control to leg groups
	mc.parentConstraint(prefix + 'footControl', prefix + 'anklePivotOffset')
	
	#add attributes to foot control
	mc.select(prefix + 'footControl')
	mc.addAttr(k=True, ln='ToeTap')
	mc.addAttr(k=True, ln='TipToe')
	mc.addAttr(k=True, ln='Ankle')
	mc.addAttr(k=True, ln='Swivel')