I took some time over the Labor Day weekend to finalize Seña’s eye rigging. As you can see from the image to the right, the rigging itself is made up of something like 25 bones. Crazy but awesome.
A particularly pleasing aspect of finishing this rig is, it satisfies all of the requirements that I set forth in my previous post about Eye Detail. This means that I wasn’t forced to compromise with the features I wanted… I was able to figure it all out.
While rigging the “eye petals” (the four sun shades around the outside of the eye), I ran into another peculiarity of blender‘s armature system. Let me describe the setup… The eye petals each have a vertex group (upper petal, lower petal, left petal, right petal) and each vertex group has an associated bone in the armature (they’re the largest ones in the image above). Whenever I’d rotate a petal, though, it’d deform in very peculiar ways. Below is a simple rig that reproduces the problem…
For the first say, 20 degrees of rotation everything looks fine. You’ll notice though as the bone is rotated, the box it rotates starts to get smaller and no longer seems to follow the track of rotation. Grrr… what’s causing that??!
Before I present the solution, I need to show you how the vertex groups are set up so that I can explain what it is we’re seeing here…
You can see that I have two vertex groups… “Upper Box” represents the box we’re trying to move and “All Boxes” is a group containing both the upper and lower box. “All Boxes” is associated with the parent bone (behind blue one) and “Upper box” is associated with only the box that we’re moving.
Because the upper box is being influenced by two different bones at the same time, their overlapping influence on the vertexes of the box causes the strange behavior. The solution is to remove the upper box from the “All Boxes” vertex group. Once I removed the overlap in bone influence everything works as expected.