Introduction and Acknowledgement
Author: Johan Andruejol, Kitware
Contributor #1: Julien Finet, Kitware
Acknowledgements: This work is supported by the Air Force Research Laboratories.
Contact: Julien Finet
The Armatures module creates, edits and animates (poses) bone armatures using forward kinematic.
A bone is defined by its head (start point) and its tail (end point). Bones are organized in an armature structure that handles interaction between bones.
An armature has two modes:
- Rest mode: bones are added, edited or removed.
- Pose mode: bones are animated with forward kinematic. In this mode, the user can only rotate the bones around their head.
The module is split in three parts:
- The panel Armature controls the properties of all the bones of the armature.
- The panel Bones lists the bones hierarchy of the current armature.
- The last panel Bone controls the properties of the currently selected bone.
Armature representations side to side
This sections describes the top part of the Armatures modules.
- Armature: The armature selection combobox allows to create, rename or delete any armature. The currently selected armature in this combobox will be display in the Bones view with all its bones. The checkbox next to the Armature label controls the visibility of the armature and all its bones.
- Select a Preset: Load one of the default armature packaged with Bender. These armatures allow a faster prototyping as they only need to be fitter to the new models.
- Adult-armature: Armature roughly the size of an adult. It is quite simple as it doesn't have detailed bones (like fingers). This armature has no particular pose.
- Arm-armature: Detailed armature of a left arm. This armature has no particular pose.
- Child-armature: Child-size version of the Adult-armature. This armature has no particular pose.
- StickMan-armature: Mostly for demonstration purposes, this armatures has no function but to illustrate how the module works. In pose mode, the stickman jumps in the air with its arm extended.
- Load armature from file: Allow the user to load directly an armature from file.
- Armature Mode: Choose the mode of the armature. An armature can be in two modes:
- Rest Mode: The rest mode is the edit mode. This is were the bones can be created, removed and modified to create the full desired armature.
- Pose Mode: The pose mode is the mode for forward kinematic. Once the armature created and tweaked in rest mode, this mode allows the user set the armature in a pose position by interacting with the bones. In this mode, the armature structure cannot be modified. By default, the first pose is the same as the rest positions.
- Reset Pose: The Reset Pose allows the user to restore the current armature pose to its original (i.e rest) position. This is often useful for creating a new pose.
This sections describes the Armature part of the modules.
- Armature Display
- Representation:Change the representation of all the bones of the current Armature. Three representations available are Octohedron, Cylinder and Line. In case of the Octhohedron representation (default), the bone's head is always on the side of the small pyramid. For both the Cylinder and Octohedron representations, their diameter is proportionnal to the bone's length.
- Color: Change the current armature's bones display color. The bone's selected color and interaction color will automatically be lighter color from the display color (respectively 50% and 80% lighter).
- Bone Opacity: Change the current armature's bones opacity. This will automatically adjusts the envelopes' opacity as envelopes cannot be more opaque than the bones.
- X-Ray mode: In X-Ray mode, the bones are overlayed on top of every object of the scene. This is very useful when posing surfaces as the bone can be easily interacted with even if they should have been hidden by the object.
- Show Axes: Show the bones' world to bone transform in the form of axes. Bones' are always aligned with their world to bone transform's Y axis. This option is mostly used for debugging although it can be give a sense of how a bone is represented in its parent coordinate system.
- Show Parenthood: Show the bones' parent origin location. If the bone has a parent, this should point to its parent's tail. For root bones, this does nothing.
- Armature Pose
- Import animation: Load a BVH file that contains a sequence of poses and apply it to the armature. Please note that the number of bones and their names in the BVH must be the same than in the armature.
- Slider: Select a specific frame in the loaded sequence of poses.
This section allows to view and modify the armature structure. Addition and deletion should only be performed in Rest Mode.
- Add bone: Add a bone children to the currently selected bone. If the armature is selected, the bone will be added as a new top-level bone. Bones can also be added by using the shortcut in the annotation toolbar.
- Rename: Rename the currently selected bone.
- Delete bone(s): Delete the current bone and all its children. If it is the armature that is selected, this deletes all the bones of the armature.
This section allows to finely tweak the bone's properties. Most of these options are only available in Rest Mode.
- Linked to Parent': Set if the currently selected bone is automatically moved with its parent tail. Toggling this to off allows to move the bone independently from its parent.
- Head: Position of the currently selected bone's head. This cannot be modified if a the selected bone has a parent since its head position depends on the parent's tail position. This is of course if the bone is Linked to its Parent.
- Tail: Position of the currently selected bone's tail.
- Length: The selected bone's length. When modifying the bone's length, the bone's tail position will be recomputed from its current head position, direction and the new length.
- Coordinate: Change if the bones coordinates above (Head and Tail) are displayed in their world coordinate or their coordinate in their parent's referential.
- Direction: The current bone normalized directional vector. Modifying the direction will change the bone's tail position using the current head position and length.
Skeletal animation: http://en.wikipedia.org/wiki/Skeletal_animation
Information for Developers