That said, we need to look at why joint placement matters, which is going to be a pretty common theme in my posts. I love knowing the gritty details of what I'm working with and that's the kind of information I'm hoping to pass along. So, first lets look at the simplest case possible, a joint and a vert. In the picture below I have a joint with a single vert weighted to it. In both, the joint is rotated close to 30 degrees and I put in a nurbs sphere wireframe to show a quick display of the full path that vert will take as it rotates around the joint.
As you'd expect, changing up the position of the joint relative to that vert gives us drastically different motion. On the left the vert is moving away from the surface of the mesh, on the right it's moving into the mesh. I know this sounds very simple, but we have to look at 2D to understand why it's important. One of the main principles of 2D animation is squash and stretch and a key to squash and stretch is preserving volume. In 2D the animator has full control of their character's volume but this doesn't hold true in 3D. Without specific rig controls the animator has no control over the volume. It's the job of the person weighting the character to make sure that deformation is preserving volume, when the vert is moving away from the surface of the mesh we're gaining volume, when it's moving into the mesh we're loosing volume.
The second principle in how the relationship between a joint and it's verts affects deformation is the distance the joint is from the vertex. In the picture above the joint is exactly the same distance from the vert on both sides, only the relative vertical position has changed. In this next image the weighting is identical between the left and right, as is the vertical position of each joint. The only difference is where the joint chain sits inside of the mesh.
Again the deformation we get is considerably different. The further a vertex sits from a joint the further it will travel with each degree of rotation from that joint. On the left side of the left mesh and the right side of the right mesh there's only a minor change in the spacing between each vertex compared to the un-deformed spacing that you can see at the top and bottom of the cylinder. On the right side of the left mesh we get a fair amount of stretching. On the left side of the right mesh we get very tight compression. The stretching and compression are because of the extra distance that each one of those verts is being moved by the same rotation.
I know these are very simple ideas, but they are the core of what we need to make the circular motion of the animation feel like linear motion on a mesh. Next week I'll start getting into how to make use of these 2 principles to take control of character deformation.

No comments:
Post a Comment