[Bf-funboard] Armature Object Center Proposal
Roland Hess
bf-funboard@blender.org
Mon, 12 Jan 2004 09:44:56 -0500
This document can be found as formatted html at:
http://harkyman.home.comcast.net/armature.html
Proposal for Armature Character Animation
Premise
After careful consideration and many frustrating experiments, I have
come to believe that in-Action translation of an armature's object
center in the above-mentioned way would make Blender's character
animation system of Actions and NLA Strips both simpler and more
powerful.
The Problem
I don't know if this is feasible. The math may not work, or some
implementation or method already in place may invalidate this idea.
But if not, it could solve a long-standing
problem/inconvenience/difficulty in Blender's character animation
suit.
The problem is the difficulty of combining character motion (armature
action keys) with object motion to produce a pleasing effect without
artifacts. Currently, the animator must you two separate systems to
produce realistic character motion. For a character to jump from a
ledge, for example, then get up and begin to walk away afterward is
nearly impossible to do in Blender.
The animator must keyframe the jumping motion of the limbs and the
transfer of center of gravity in pose mode. Then, at the appropriate
time, the animator must switch out of pose mode, keying the motion of
the whole rig in exact sync with the jumping motion of the legs so
that the feet stay exactly planted. Repeat this procedure for the
landing, once again keeping the object keyframes in exact sync with
the leg keyframes. Then, you transition to a walk cycle, key the
object motion again. No - this is not impossible. I've done it. But
it's very difficult, and could be much easier.
To get around this difficulty, some animators choose to key the
entire sequence, including moving the whole rig, within an action.
This leaves the actual center of the armature object in its original
position, negating your ability to make this a useful part of the NLA
system and cutting off much of the power that Blender already has
built in.
Solution
After trying several different approaches and making mockups of
systems, I have come to a conclusion. Most of these problems can be
solved, and the animators job made significantly easier by the
implementation of an "Object" bone within the armature system.
Features of the "Object" bone:
- translation of the Object bone translates the object center of the
armature in world space
- although the object center is translated, it does NOT translate any
other bones relative to world space. Of course, any bones translated
and keyframed along with the Object bone would translate as
designated.
- Object bone would appear in the Actions window, for use in Actions
and therefore as strips in NLA
Effects
Rethinking the previous example with an Object bone in mind:
1. Keyframe the leaping motion within a single Action. As it
crouches, the Object, head and hand bones are all keyframed toward
the ground, while the foot IK bones hold them in place. All bones,
including Object bone are keyframed until the character is airborn,
in a neutral pose.
2. Descending motion from the ledge can be keyframed with just the
Object bone, as it's own Action.
3. Landing motion is keyframed as another Action. Once again, the
ability to move and keep track of the object center within pose mode
makes sticking the feet on the landing much easier.
4. Base (standing) pose, as a Standing action.
5. Walk cycle. One full left-right cycle, with the forward motion
built in due to forward translation of the Object bone.
All of these can then be sequenced in the NLA, without worries about
the location of the object center. The walk cycle can be repeated,
generating forward motion for the character. Of course, the armature
object itself could be keyframed with rotations, turning the
direction of the characters progress.
Questions
Is this do-able? What hurdles would there be to implementing this?
Would it break something already in place? What other ideas could
solve these problems? What coder would be most appropriate for such a
task? As there has been much serious discussion about this between
several people on elsYiun, could a bounty be raised to entice a
developer to tackle this next?
Conclusion
Use if Blender's character animation system has indicated a distinct
shortcoming in the area of pose-object motion interation. The
addition of an Action-aware control for the object center of an
armature could fill in those blanks, making Blender's Action/NLA
system simultaneously simpler and more powerful.
--
Roland Hess
Digital Prepress/Network Administrator
Reed & Witting Company
412-682-1000
rolandh@reed-witting.com