closing a hand with one slider
This is a somewhat rigorous example, and it's questionable if
you will ever need it exactly like this, but it does illustrate
the power of the nodes. In a real-life example, you would probably
not want to use just one slider to close a whole hand, but use
a combination of sliders, one for each finger, as well as the
method illustrated by the spine example so the fingers bend evenly.
But for now, we're going to close a whole hand with just one slider.
Open up the file 'hand_before.c4d'. This file is the same as
the result of the previous example with limiting the movement
of an elbow. It features a very basic hand (just three fingers
and just three bones per finger) and a small cube floating above
it. We need to link every bone in the hand to that slider, and
there are quite a few bones, so some planning is preferred. For
each bone, we'll need a Puppeteer tag that points to the little
cube object. This is best done by the Custom method, as that means we can simply copy the tag around, which
can't be done with any of the relative methods. Also, we want
the source's Y position to drive the destination's H, P and B
rotation. This can be either done by using the Averaged linking method, or using the Patchbay method. Also, we'll want to limit the hand's movement so that
it won't close or open more than neccesary, since that would just
look plain weird! Finally, we could turn off the tag before making
the settings, but that would mean that we would have to turn on
each and every tag by hand after copying! If we simply turn off
expressions altogether, it's much more simple!
There's no escaping the fact that we will have to set the nodes
for each and every bone in the hand, simply because there won't
be a single bone that rotates similar to another one. We might
alleviate our work a bit by adding a 'rotate like parent' Puppeteer
tag to the final bones of the fingers, but that might not really
look as good. However, since we already planned out all identical
settings above, this shouldn't be too much work. Here we go.
First, turn off expressions (turn off the Use Expressions item in Cinema4D's Edit menu). Next, add a Puppeteer tag to the first bone next to the
cube object (the object called '+close hand'). Set it's Source
object to Previous object, and press the Set custom button. Next, turn of all the source's channels, except for the
Y position (the second channel from the top). In the destination
object's Filter, turn off all the position and scale channels, leaving the bottom
three active. Now let's use the Patchbay, just for the fun of
it. Set the linking method to Patchbay with the popup menu in the lower left section of the interface,
and drag three cables, one from each active rotation channel,
to the source's single active Y position channel. Finally, set
both the limits to End.
Now, you need to copy this Puppeteer tag to each and every bone
of the hand. For certainty, press Apply once, then start copying the tag around. Once you have a Puppeteer
tag on each bone in the hand, you need to set the first nodes
to the current shape. One by one, open up each tag and press both
the top C buttons (the source node 1 C and the destination node 1 C). Done? Okay then, drag the little cube upwards (Y position,
remember?) and, using just the rotate tool, model the hand bones
into a fist shape. Take care not to use too much wild re-modelling,
especially if you're using quaternion rotation (ie the yellow
rotation circle) as this might mean that you rotate a bone 360
degrees too much around an axis, and will result in some unpleasant
movement when the hand is linked to the cube-slider. Just bend
all the fingers inwards, maybe bend the roots of the index and
middle finger a bit upwards, untill you have the fist you want.
Done? Has the cube been moved upwards as well? Okay, then we need
to set all the tags' second nodes, both for source and destination
object. So, open up each tag in turn again, and press the bottom
2 C buttons. That's it! Turn on expressions again, and drag the cube
object up and down. If all went okay, the hand is now opening
and closing. But the cube object is not really behaving as a slider!
I guess you forgot to turn on Feedback, didn't you? So does this mean that you need to turn on Feedback
in each and every Puppeteer tag? Not at all. Since all tags have
the same settings, even the same source nodes, you can simply
choose one of the tags and turn on Feedback there. Whallah! Done.
Have a look at 'hand_after.c4d' for the result.
|