Bender/Documentation/2.0/Modules/Armatures: Difference between revisions

From KitwarePublic
Jump to navigationJump to search
 
(22 intermediate revisions by 2 users not shown)
Line 7: Line 7:
==Module Description==
==Module Description==


The Armatures module creates, edits and animates (poses) bone armatures using forward kinematic.
The [[../Armatures|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.  
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.  
Line 22: Line 22:
==Use Cases==
==Use Cases==
{|
{|
|[[Image:Armatures-2012_10_15.png|thumb|right|300px|Armature of a skeleton]]
|[[Image:Armatures-v1_1.png|thumb|right|300px|Armature of a skeleton]]
|[[Image:BenderArmaturesPanel_Representation.png|thumb|300|Armature representations side to side]]
|}
|}


==Tutorials==
==Tutorials==
==Panels and their use==


==Panels: Overall==
{| width="100%"
{| width="100%"
| valign="top"|
| valign="top"|
===Overall===
This sections describes the top part of the '''Armatures''' modules.
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.
* '''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:
* '''Armature Mode''': Choose the mode of the armature. An armature can be in two modes:
Line 42: Line 48:


* '''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.
* '''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.
| align="right"|
| align="right"|
|[[Image:BenderArmaturesPanel.png|thumb|300px|Overall armature panel]]
|[[Image:BenderArmaturesPanel-2.0.png|thumb|300px|Overall armature panel]]
|}
|}


==Panels: Armature==
{| width="100%"
{| width="100%"
| valign="top"|
| valign="top"|
===Armature===
This sections describes the '''Armature''' part of the modules.
This sections describes the '''Armature''' part of the modules.


* '''Armature Display'''
* '''Armature Display'''
[[Image:BenderArmaturesPanel_Representation.png|thumb|left|100px|Armature representations side to side]]
** '''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.  
** '''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).
** '''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).
Line 61: Line 64:


** '''Advanced'''
** '''Advanced'''
*** '''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.


* '''Envelopes'''
* '''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.
| align="right"|
| align="right"|
|[[Image:BenderArmaturesPanel_ArmatureSection.png|thumb|300px|Armature section]]
|[[Image:BenderArmaturesPanel-ArmatureSection-2.0.png|thumb|300px|Armature section]]
|}
|}


==Panels: Bones==
{| width="100%"
{| width="100%"
| valign="top"|
| valign="top"|
===Bones===
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.


| align="right"|
| align="right"|
Line 77: Line 87:
|}
|}


==Panels: Bone==
{| width="100%"
{| width="100%"
| valign="top"|
| valign="top"|
===Bone===
This section allows to finely tweak the bone's properties. Most of these options are only available in '''Rest Mode'''.


* '''Hierarchy'''
** ''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.
* '''Positions'''
** '''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.
** '''Advanced'''
*** '''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.


| align="right"|
| align="right"|
Line 87: Line 107:


==Similar Modules==
==Similar Modules==
* Bender modules: [[Bender/Documentation/1.0/Modules/Workflow|Workflow]]
* Bender modules: [[../FEMWorkflow|Workflow]]
* Slicer modules: [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Modules/Annotations Annotations]
* Slicer modules: [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Modules/Annotations Annotations]
==References==
==References==
Skeletal animation: http://en.wikipedia.org/wiki/Skeletal_animation
Skeletal animation: http://en.wikipedia.org/wiki/Skeletal_animation


==Information for Developers==
==Information for Developers==

Latest revision as of 01:48, 19 March 2014

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

Module Description

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.

Use Cases

Armature of a skeleton
Armature representations side to side

Tutorials

Panels: Overall

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.
Overall armature panel

Panels: Armature

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.
    • Advanced
      • 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.
Armature section

Panels: Bones

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.
Bones section

Panels: Bone

This section allows to finely tweak the bone's properties. Most of these options are only available in Rest Mode.

  • Hierarchy
    • 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.
  • Positions
    • 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.
    • Advanced
      • 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.
Bone section

Similar Modules

References

Skeletal animation: http://en.wikipedia.org/wiki/Skeletal_animation

Information for Developers