BlenderPeople Development

Tracking the development of the BlenderPeople script suite.

Friday, April 16, 2004

Pinned Bone NLA Feature Explained

Here's a repost (slightly modified: I removed my plea for help at the end, as I've decided to try to do it myself, and changed a couple of terms) of my comments on, regarding the "pinned bone" system feature talked about in the previous post. BTW, this doesn't just affect BlenderPeople - it affects everyone who does character animation in Blender. Hopefully this will give you a better idea of what I'm talking about:

I don't know how many of you have actually tried to use the NLA system to do the things it was intended to do. It doesn't work.

Ideally, you should be able to create a list of actions for your armature, then layer and sequentialize them in the NLA window, and have your character smoothly animate between them. Here's the problem, and for simplicity's sake, I'm using only a static pose in my actions, but the effect with full motion is the same:

Pose 1:

Pose 2:

When put into the NLA, you get this (small animation, only 96k, please watch):

The problem is obvious. When animating characters, any difference in foot position leads to ice skating. Bad. The only solutions are to either keyframe the armature object itself to move in correspondence with the slide so that the anchor foot stays in the same place in world coordinates, or to have your anchor foot appear in the exact same location relative to the centerpoint of the armature in actions that will be stripped together.

The first solution is incredibly difficult to pull off and defeats the purpose of having NLA. What good is it to chain actions together in NLA, only to have go in and keyframe things by hand at each and every transition?

Likewise, the second method also defeats the purpose of NLA. You should be able to animate within each action with freedom, not hitting prespecified starting and ending points.

This is why you do not see good, long character animation done with Blender. I've tried, and I'm no hack. The system just isn't useful at this point.

Solution: a new NLA Strip parameter called pinBone. It works like this...

Any NLA strip can have a pinBone set. pinBone refers to any bone in the armature that has been keyed in the Action for this strip. A reverse transform is generated based on the difference between the orientation of the pinBone in the action strip and the current orientation of the bone in world space, and used to transform all the bones (gradually, if blendin is used) of the armature into a position so that the pinned bone position in both world space and the keys in the NLA strip are the same.

Here's a sample of what this would look like, if the pinBone parameter of the second pose were set to the bone Foot.Right in the first example(128k):

Beautiful. This is a useful character animation tool.

posted by Roland  # 6:14 AM


02/01/2004 - 02/29/2004   04/01/2004 - 04/30/2004   05/01/2004 - 05/31/2004   06/01/2004 - 06/30/2004   07/01/2004 - 07/31/2004   08/01/2004 - 08/31/2004   09/01/2004 - 09/30/2004   11/01/2004 - 11/30/2004   12/01/2004 - 12/31/2004   01/01/2005 - 01/31/2005   02/01/2005 - 02/28/2005   06/01/2005 - 06/30/2005   09/01/2005 - 09/30/2005   10/01/2005 - 10/31/2005   11/01/2005 - 11/30/2005   12/01/2005 - 12/31/2005   01/01/2006 - 01/31/2006   03/01/2006 - 03/31/2006   04/01/2006 - 04/30/2006   05/01/2006 - 05/31/2006   06/01/2006 - 06/30/2006   07/01/2006 - 07/31/2006   08/01/2006 - 08/31/2006   09/01/2006 - 09/30/2006   10/01/2006 - 10/31/2006   11/01/2006 - 11/30/2006  

This page is powered by Blogger. Isn't yours?