#IK follow obj. problem
7 messages in this thread
I have an I problem that is driving me nuts. The scene is simple:
A man walks into a room, picks up a box and puts it up on a shelf.
The box that is carried linked to the left hand — hidden and then unhidden
when the box is picked up (the old trick). I have a dummy object linked to the
box and another linked to the right hand. These align perfectly when the
chracter is bent over to pick up the box. I use the left arm/hand to move the
box around and want the right to follow, staying on the box.
Using "follow object" in IK, the motion looks good until there is any lateral
motion, at which point the shoulder seems to "snap" from one angle limit to the
other (on the Y axis, as if you were turning a screw) — it looks like the snap
that occurs with a camera when it goes directly over the top of a scene. The
box is clearly within reach but the motion is wrong despite all of the motion
limits being set for the objects in the chain. I've tried different joint
precedences and damping but have not found any good combinations. Do you have
any suggestions? Is there a better approach to this?
Any advice would be very helpful. (BTW congrats with MAX — I look forward to
playing with it).
John Mateer
PolyMedia
Hi John,
<< .. at which point the shoulder seems to "snap" from one angle limit to the
other (on the Y axis, as if you were turning a screw) — it looks like the snap
that occurs with a camera when it goes directly over the top of a scene. ..>>
Is your hierarchical chain fully extended or do you have a bit of bend in all
of the joint when the snap occurs? I had a similar problem with my dive
example, until I allowed the knees to stay a bit bent.
jonas[adesk]
Jonas,
Thanks for your note. Having a bend in each of the joints definitely makes a
difference. I had some bend in the intial positions but the follow object
stretched the chain to a nearly straight alignment, which caused problems. As
long as the follow object is within easy reach and the rotation isn't too
great, IK works easily. But if the rotation is fairly large, there can be
problems.
If the motion is broken down into steps it seems to help. The "snap"
definitely appears when objects reach their rotational limits so limits (and
which axes are active) need to be changed for each section to get smooth
lateral motion. I guess my mistake was thinking that IK could solve for this
type of motion in one pass. IKs solutions are technically right but look weird
(so much for computers being intelligent machines <g>).
A wishlist item: it would be very useful to have IK with force control (like
gravity) to allow chains to have more natural motion tendencies with follow
objects. I look forward to the day when I can just tell the models what to do
and they do it <bg>.
Cheers,
John Mateer
PolyMedia
Hi John,
<< wishes..>>
got 'em..
John,
I'm not clear on exactly what you're doing but I think you have two separate
problems:
First, the "snap" you describe when the camera goes directly overhead is
probably caused by the qauternion limitation which will always cause the camera
to go nuts when it goes directly over a scene. There is no real fix for that,
you will have to adjust the roll on each key as the camera moves up and over
the scene.
Second, I don't understand why you are using the IK module to do what appears
to be a simple maneuver. I think you may be able to do what you need by
forgetting the dummy box-linked-to object technique and just use several copies
of the same box instead. In the 3D editor, make a copy of the box and then in
the KF, link it directly to the hand but scale it down to .01 percent so it is
not visible. Then when the hand reaches to pick up another copy of the box,
that sitting box gets hidden and the box linked to the hand gets scaled to 100%
on that Keyframe. (Be sure to set a blocking keyframe immediately before the
100% keyframe and set continuity=0.
The when the box is place on the shelf, the box linked to the hand gets scaled
down to .01 again and the third copy, the box on the shelf gets unhidden.
That's the Cheap but Effective way I would do it.
Alec Jason
Alec,
Thanks for your reply but I think you misunderstood my note. I am not having
camera trouble, that was simply an analogy to describe the strange "snap" in my
IK chain. To clarify, I am using three boxes in the scene, alternately hidden
and unhidden as necessary (similar to what you described although I do not
bother with scaling). The problem is keeping the right hand properly
positioned on the box.
>> I don't understand why you are using the IK module to do what appears to be
>> a simple maneuver.
Since the box can only be directly linked to one hand, in this case the left
hand, the other must be moved properly to insure it stays on the box in the
correct position. Think of it this way, the left arm/hand chain moves the box.
I want the right hand to stay on the box to give the illusion that both arms
are moving it. For simple up and down motion there is no problem. However, I
am looking for fluid, natural motion which includes lots of rotation. I could
go frame by frame and rotate each componant of the right arm/hand hierarchy but
that is time consuming and not always accurate — the right hand could "float".
With IK, the hand should stay anchored to the box. In my case it does, but the
arm motion is wrong, hence my note.
I hope this makes the problem a bit clearer.
Cheers,
John Mateer
PolyMedia
>Using "follow object" in IK, the motion looks good until there is any lateral
motion,<
Hard to say what is causing the problem. If you can u/l a small project file
someone could look at it.