wiki:AnimationEngine

AnimationEngine

Gesture binding

TODO

Configuring restposes

The configuration of restposes is handled in the gesture binding.

Definition of a shift to a static pose.

Restposes can be designed with the MURMLKeyframeEditor, using "Export current pose". For example, the default pose for Billie at the fire is in AsapRealizerDemo/resource/billie_fire_sit.xml. New poses could be designed by importing this one and editing it a bit.

In the gesturebinding:

<gesturebinding>
<RestPoseSpec>
  <constraints>
    <constraint name="stance" value="SITTING"/>                
    <constraint name="ARMS" value="ARMS_FORWARD"/>
  </constraints>
  <RestPose type="SkeletonPose" file="Humanoids/armandia/restposes/sitting.xml"/>
</RestPoseSpec>
...
</gesturebinding>

file refers to a SkeletonPose.

BML to use this pose:

<bml xmlns="http://www.bml-initiative.org/bml/bml-1.0"  id="bml1">
<postureShift id="pose1">
  <stance type="SITTING"/>
  <pose part="ARMS" lexeme="ARMS_FORWARD"/>
</postureShift>	
...
</bml>

Priorities

Gestures with a higher priority override those with lower priority. Priority might change during execution (for example to allow gestures retraction phase overriding). The default priority is 100; retraction priority is 25 (retraction priority change is currently only implemented in GestureTMU).

Priority can be set through BML (currently only implemented for MURML gestures). e.g.

<murmlgesture xmlns:bmla="http://www.asap-project.org/bmla" bmla:priority="50" id="gesture1" start="2" xmlns="http://www.techfak.uni-bielefeld.de/ags/soa/murml">
<murml-description>
...
</murml-description>
</murmlgesture>

or, using the MURML description extension

<gesture xmlns:bmla="http://www.asap-project.org/bmla" bmla:priority="50" id="g1" mode="LEFT_HAND" lexeme="BEAT" start="2">
<description priority="1" type="murmlgesture">
<murmlgesture xmlns="http://www.techfak.uni-bielefeld.de/ags/soa/murml" id="g1">
<murml-description>

</murml-description>
</murmlgesture>
</description>
</gesture>

(the priority attribute in description has another meaning: it indicates the preference of that specific description over possible alternative descriptions (no alternatives are provided in the example)).