Exemplo n.º 1
0
def SpiralOfPointsStraight(initRadius, endRadius, numberOfPoints, startPoint, endPoint):
	RigTools   = RMRigTools.RMRigTools()
	ShapeCntrl = RMRigShapeControls.RMRigShapeControls()
	distancia  = RMRigTools.RMPointDistance(startPoint,endPoint)
	minLength  = math.sin(math.pi  / (numberOfPoints + 1)) * initRadius #initRadiusdistancia/numberOfPoints/10
	
	print "minLength:%s" % minLength

	if minLength * numberOfPoints < distancia:
		#Locators = RigTools.RMCreateNLocatorsBetweenObjects( startPoint, endPoint, numberOfPoints )
		Locators = RigTools.RMCreateBiasedLocatorsBetweenObjects( startPoint, endPoint , numberOfPoints, minLength)
		Locators.insert(0,startPoint)
		Locators.insert(len(Locators),endPoint)
		parentJoint, jointArray = RigTools.RMCreateBonesAtPoints( Locators )
		resetPnt, control = ShapeCntrl.RMCircularControl(startPoint,radius = initRadius)
		cmds.addAttr (control, longName = "unfold", keyable = True, hasMinValue = True, hasMaxValue = True, maxValue = 10,minValue = -10)
		unfoldStep = 10.0 / float(numberOfPoints+1)
		currentStep = 10.0
		index = 0
		deltaRadius = (initRadius - endRadius) / numberOfPoints
		currentRadius = initRadius
		#jointArray.reverse()
		angle=20
		for joints in jointArray[:-1]:
			#angle = 180 - SegmentAngleInCircle(currentRadius, RMRigTools.lenght_of_bone(joints) )
			
			if index > 0:
				angle = getAngle (currentRadius ,joints,jointArray[index-1])
			else: 
				angle = getAngle (currentRadius ,joints,None)

			#angle = SpiralFunction (index, numberOfPoints, initRadius, endRadius, distancia)
			#angle = SpiralFunctionBiasedPoints (index, numberOfPoints, initRadius, endRadius, distancia, minLength)
			RMRigTools.connectWithLimits ( control + ".unfold", joints + ".rotateY", [[-currentStep, angle], [-(currentStep-unfoldStep), 0], [currentStep-unfoldStep, 0], [currentStep, -angle]])
			currentStep = currentStep - unfoldStep
			print currentRadius
			currentRadius = currentRadius - deltaRadius
			index+=1
Exemplo n.º 2
0
 def __init__(self, NameConv=None):
     if NameConv:
         self.NameConv = NameConv
     else:
         self.NameConv = nameConvention.NameConvention()
     RigTools = RMRigTools.RMRigTools(self.NameConv)