Here's a "flow chart" of the script:
Mind you, there are some things that are just filler code until I figure out how I really want to code it, or learn to code it :).
Setup for facial curve with joint controls
setup window with:
1) how many locators which determine loop number
2) base name for curves, joints, etc.
import maya.cmds as mc
create window UI
Attach locator to motion path c=userCurve created by user, perhaps force user to select the curve
No need to disconnect rotates, as they aren't connected this way
Instead, break connections of uValue in the input channel of the motionPath(1)
Set value of uValue for each time of loop. index[0,.50,1.0] for 3 points on curve, index [0,.25,.50,.75,1.0]for 5 points
create joint (Offset)
Parent offset joint to locator
Zero out offset joint's transforms 0,0,0
mc.setAttr(.tx = 0)
mc.setAttr(.ty = 0)
mc.setAttr(.tz = 0)
Create joint (Control)
Parent control joint under offset joint
Create Nurbs curve(circle, sphere, whatever)
Parent sphere's shape node under control joint created.
pathAnimation( [objects] , [bank=boolean], [bankScale=float], [bankThreshold=angle], [curve=string], [endTimeU=time], [endU=float], [follow=boolean], [followAxis=string], [fractionMode=boolean], [inverseFront=boolean], [inverseUp=boolean], [name=string], [startTimeU=time], [startU=float], [upAxis=string], [useNormal=boolean], [worldUpObject=name], [worldUpType=string], [worldUpVector=[float, float, float]])