// original script written by cgtoolkit
// the cpCurveJoints proc was written by Cristi Prefac aka PixelMachine
// How to use:
// put this in maya script folder, restart maya then run
// 2006.07.21 enhanced by oglop
// 1.added ability to genertate joint chain from isoparm or curve (multiple)
// 2.link more attrs to controller sphere
// 3.delete dynChain now works on multiple selectionConnection
// 4.make collide now works on multiple hair collision sphere
// 5.make splineIK offset attr the same as nurbsCurve.min
// 1.connect maya fileds to multiple controllers simutaneously
// 2.remove many ugly bugs but there sure comes more of them
// 1.integrated a gradient control
// 2.added more attr to controller sphere
// 3.added some menu
// 1.use message attr to link the shit
// 2.revamp the gradient ui
// 3.add a root loc to constrain the follicle node
// 2009.10.22 / 2.1.1
// 1. add batch create joint chain mode
// 2. add a batch RMB menu to "make dynamic"
// 3. after making multiple joint chains, auto select all the root joints
// future plans :
// 1.make multiple dynChain to share a hairSystem node ,so they can collide with each
// other via self collide.
the stiffness scale ramp area has a RMB context menu, and the Make Joint Chain Button also has a RMB menu.
video demonstration coming soon...
How to use
1. select curve (s), isoparms , then hit make joint chain button. it'll create joint chains. joint chain creations has two modes, gap mode (define the gap of the joint, joint num is determined by the length of the curve ) and joint num mode( define how many joints you want to create)
2. make the joint chain dynamic. by default you don't need to selected end joint. it'll create a hair curve, and use this curve as the spline ik curve.
i'll add more explanations to the options later.
after the ui shows up, it'll create a dynChainGroup and a tmp hair system, just ignore that, this hair system is disabled, it's just use to refresh the hair stiffness scale ramp.
3. tweak the parameters, by default, the parameters will automatically update based on which controller you selected, just like the attribute editor, you could disable this via the window menu , Options.
4. after tweaking , you could bake the joint chain animation
(the connect maya fields and make collide button should work on multiple objects, you can select any number of controllers, any number of fields, and hit this button, they will affect each other..)
this script was written long time ago. so these two button may have some bug, sometimes , the progress dialog doesn't disappear, and the maya cursor is busy. you can ignore this, i'll fix this in the next version.