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

Reply via email to