%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%>
![]() |
![]() |
||
|
SKELETON CONTROLS Time for the rough stuff. In this section, I'll explain the basic controls placed in the character. I'll cover the advanced controls, along with the controllers used, in the next tutorial. So, let's take a look again at our skeleton.
Try rotating one of the helpers. You should see the bone rotate with it. Now,
select the neck bone. Got to the motion panel. Create another helper (I
use a 'translator' helper object), and align it with the top bone. In
the motion panel, with the bone selected, click on the link button and
select the translator (I'll refer to these helper objects by their name
from now on. You can use your own developed objects, non-renderable geometry,
or dummies). Now, in the position section of the panel, click on the create
button. This will create an end effector at the position of the translator,
automatically linked to it. If you move the translator, the bone should
follow. I have limits set on the root neck bone, so that the neck won't
rotate to much in any direction. My character's helmet is directly linked
to the topmost bone, NOT the translator. This way, no matter what happens,
the head won't come off. Here's a view of the finished setup, along with
the schematic view.
First,
create a rotator and position it precisely at the root of the arm chain.
Now, create a null (another one of my scripted objects), and position
it exactly in the center of the rotator you just created (I use a pivot-to-pivot
align for this). Now, move it into the back of the character, taking care
not to move it in any other direction (use your transform gizmo). Now,
assign a look-at controller to the shoulder rotator, and pick the null
as the target. Now, you have a simulated up-vector constraint. Link the
root bone of the arm chain to the shoulder rotator. The difference between
a real up-vector constraint and the faked one ( by the way, I borrowed
this technique from Adam
Baroody, taking his concepts on these constraints, and developing
them further), is that a real up-vector/pole-vector constraint has only
one degree of freedom, whereas the faked approach has three degrees of
freedom. In some instances, this is an advantage. Ok. Back to our business.
Now, select the forearm bone (the last bone in the chain), and repeat
the steps taken before in the motion panel, but with one difference. Create
a translator, position it exactly at the pivot (end) of the bone, and
create the end effector. Now, assign a link controller to the translator.
I'll explain in the next tutorial why this is needed. You should have
the link controller with a PRS sub-controller. Now, link the bone's end
effector to the translator. That's it. Move the translator, and the arm
will move. Move the null, and the elbow will change its orientation. Use
the logical axis constraints and limits for each bone in the chain. I'm
not posting my particular settings since these change depending on the
character's physique, so use the ones you feel are right for your character.
Here's what you should have now.
Now,
let's get to the legs. The legs have controls very similar to those found
in the arms. In fact, the setups are extremely similar. Just create a
rotator at the pivot point of the root of the chain (the red terminator
bone), and create a null in the same position. Move the null behind the
rotator, assign a look-at controller to the rotator, and pick the null
as the target. As for the ankle, create a translator at the calf bone
position, create a position end effector for the bone, assign a link controller
to the ankle translator, and link the end effector to the translator.
You're done.
And
to end up this tutorial, here's what you should have so far. If you're
happy with the control this setup provides, you might start animating.
I'll cover the advanced controls in the next tut, but they're only meant
for power-hungry, flexibility-needing users. Hope you've found some valuable
info so far. See ya soon!
|
|||