I would think about it like this: for each point/joint along the curve, you should have some sort of 'up vector'. You could get that a number of ways - a start/end 'twist' amount, an array of 'up' target objects for each joint, etc. The end result is that each point along the curve should have a vector to some other target to help determine the twist.
Next, you'll need to know what your joint's aim-axis is. The built-in spline ik node assumes an 'x' aim axis (which blows), but you could have an input attr for the aim axis. Zero out whichever axis is the aim-axis in your 'up vector', then convert that vector into an MMatrix. Now you have a matrix you can multiply your existing aimed-joint-matrix by to twist it. I think it would be nice to have an array of world matrices for up-objects, which you would plug the controls for the spline into. You could get the closest point along the curve for each and treat a particular axis as the 'up vector' for that point along the curve, then interpolate between them. On Mon, Nov 12, 2012 at 7:13 AM, Roy Nieterau <roy_niete...@hotmail.com>wrote: > Hey JP, > > Actually I know how to get the point on the curve. Aiming at the next > joint is also a relatively easy step. > > On the other hand knowing/calculating the up vector for the aim is > something I'm unaware of how to do it. How did you solve/calculate the up > vector for the aim constraint? > > I'm especially interested in allowing a twisting motion along the curve. > > -Roy > > ------------------------------ > CC: python_inside_maya@googlegroups.com > From: jspatr...@gmail.com > Subject: Re: [Maya-Python] API: Custom Spline IK (or Motion Path) > Date: Mon, 12 Nov 2012 07:08:48 -0800 > To: python_inside_maya@googlegroups.com > > > Hey Roy, > > I've done a sort of 'manual' setup like this by writing a 'pointAtArclen' > node and then wiring the rest with existing nodes. In my case I used aim > constraints for each joint, but you can do something similar within your > solver- get the orientation by figuring out where each joint needs to be on > the curve and what the vector would be if you were aiming each joint at the > next. > > -JP > > Sent from my iPhone > > On Nov 12, 2012, at 2:00 AM, Roy Nieterau <royniete...@gmail.com> wrote: > > Hey Guys, > > I'm looking into creating a custom Stretchy Spline IK setup that doesn't > pop (over & under extends in extreme situations). > But I seem to be unable to wrap my head around how to calculate > orientations on points on the curve. > Since the points on the curve don't have any orientation (well, they do > have tangents or something like that?) I have no clue on how to actually > start with this. > > My main references of tools in Maya would be the Motion Path and the > Spline IK (with Advanced Twist controlled by a start and end object). > If anybody has any starting points for this it would be greatly > appreciated! > > Thanks in advance. > > Regards, > Roy > > -- > view archives: http://groups.google.com/group/python_inside_maya > change your subscription settings: > http://groups.google.com/group/python_inside_maya/subscribe > > > -- > view archives: http://groups.google.com/group/python_inside_maya > change your subscription settings: > http://groups.google.com/group/python_inside_maya/subscribe > > -- > view archives: http://groups.google.com/group/python_inside_maya > change your subscription settings: > http://groups.google.com/group/python_inside_maya/subscribe > -- John Patrick 404-242-2675 jspatr...@gmail.com http://www.canyourigit.com -- view archives: http://groups.google.com/group/python_inside_maya change your subscription settings: http://groups.google.com/group/python_inside_maya/subscribe