The animation of the tiger brought out a few issues when trying to mix constraints and animation ... for example the tiger's stripe needs to be constrained to his head, until he reaches up and pulls it off, at which point it should be constrained to his paw, until he puts it in his mouth when it needs to be constrained to his tongue. This was causing me many problems (mostly with offsets, scaling and rotation) I wasn't able to get them right. Actually, the stripe is the most complex since it also changes shape when it comes off the head, so there is shape animation to mix in as well.
I made a simpler setup to figure out where I was going wrong. Here are the rules that have come out of the simpler setup (although they don't seem so simple ;o):
> constrained objects (to be mixed between different constraining objects) should be immediately beneath the model (not deeper in the hierarchy, else the parent/child relationship will affect the behaviour)
> for constrained objects that are on skinned objects, you need to use a 2 constraint setup ... first use a null as an anchor to a cluster on the skin (null constrained to cluster) .. make the null the child of the closest bone in the skeleton (this will keep the orientation correct .. if you only use the object to cluster you won't get the rotation constraint).. then constrain the object to the null using a pose constraint (or position and orientation if the scaling freaks out using a pose constraint)
> before creating the constraints, make sure the centers of the objects are correctly placed, otherwise you may end up with objects jumping ... if you do, check the location of the centers of your objects (should only happen when there are offsets)
> scale seems to mess up... use position and orientation constraints rather than pose (or possibly freeze the scaling on the constrained object if its not too late)
> don't forget to set extrapolations for the first constraint (to hold before) and for the last constraint, to hold after ...
Tuesday, January 06, 2004
Subscribe to:
Posts (Atom)