


<h2>
<img SRC="i_anim.gif" > <a NAME="animations">Animations</a></h2>
The animation system in <b>ppModeler</b> is based on skeleton, and a 
skeleton can only be attached to a single object. Use the merge object 
tool if you want to apply animation on multiple objects.<br>
First, the user defines the skeleton itself (a hierarchy of bones).
Then, he/she defines the type of articulation between the bones 
(rotation/translation). 
The vertices are, by default, attached to the root bone. So, the user have
to attached the vertices to the bones, so that the object will deform
properly when moving the bones. A vertex can be attached to multiple bone, 
with a weight. This weight give the influence of a given 
bone on the vertex.<br>
Once the skeleton is defined, the user can create sequences. A sequence
is a single movement, for example, a step or a jump. A sequence a time 
indexed 
serie of keyframes. A keyframe is simply a given position of the skeleton, 
which is related to a given position of the object.<br>
During the skeleton defintion, the object list displays the skeleton hierachy.
During the defintion of sequences, the object list display the sequence list.
During the sequence edition, the object list display the keyframe list.<p>
A bone is displayed as a square diamond, with two local axis <i>x</i> and 
<i>y</i>. The purpule handle is used to select and move the bone. The 
two yellow handles to set the bone orientation.
<br><img src="boneview.gif">
<br>A bone.
<p>
For example, this is a simple skeleton and the associated hierarchy :
<table>
<tr VALIGN=TOP>
<td><img SRC="boneman1.gif" ></td>
<td><img SRC="boneman2.gif" ></td>
</tr>
</table>

<h3><A NAME="skeleton">Editing Skeleton</a></h3>
<table>
<tr VALIGN=TOP>
<td><img SRC="bone.gif" ></td>

<td>
<p><img SRC="i_select.gif" > : <b>Select</b> bones.<br>
Selects bones. There is only one bone selected at a time. The selected bone
is displayed in green. Its father is displayed in yellow, and the others bones
are displayed in blue. A bone can be selected by a click on its selection 
handle, or by a click on the bone hierarchy.<br>
A right click toggle <b>ppModeler</b> in the move bone tool.

<p><img SRC="i_boneed.gif" > : <b>Move</b> bones.<br>
Edits the bone position and direction. The purple handle is used to move the
selected bone. The two yellow handles are used for setting the bone length
and direction. The <b>r</b> key rotates the selected bone around its axis.<br>
A right click toggle <b>ppModeler</b> in the select bone tool.

<p><img SRC="i_bonead.gif" > : <b>Add</b> bones.<br>
Adds a new bone. The father of the added bone is the selected one.
The user draws a line that define the bone main axis.
Then <b>ppModeler</b> asks for the bone's name.

<p><img SRC="i_bonerm.gif" > : <b>Del</b> bones.<br>
Removes the selected bone.

<p><img SRC="i_articu.gif" > : <b>Define</b> bone properties.<br>
Defines the selected bone properties. <b>ppModeler</b> opens the 
following window.<br>
<img src="joindef.gif"><br>
The three radio button in the top define the type of articulation between
the selected bone and its father. The three possible articulations are :
<ul>
<li> <b>None</b> : The bone is not articualted.
<li> <b>Rotation</b> : The bone can rotate around its top point. The constaints
  are defined bellow, in degrees. The z axis is the bone axis.
<li> <b>Translation</b> : The bone can change its length.
</ul>

<p><img SRC="i_bonewt.gif" > : <b>Weights</b> vertices.<br>
This tool allow to define quickly the weights of a group a vertices.
<b>ppModeler</b> switches to the 
<a HREF="vtxweight.html">select vertex by rectangle</a> mode. 
Then, an array with the bones names and the associated weights is
displayed. The user can set the weight of the selected vertices in this array.

<p><img SRC="i_bonatt.gif" > : <b>Attach</b> vertices to bones.<br>
Each time the user click on a vertex, this vertex is added to the list 
of vertices attached to selected bone if it is not, otherwise the vertex is 
removed from the attached vertices list. The vertices attached to 
the selected bone (<i>i.e.</i> with a weight greater than 0) are
marked with yellow boxs.<br>
<b>ppModeler</b> computes a default value for the weight, and the vertices
selected by the user are not detacched from the others bones.

<p><img SRC="i_weight.gif" > : <b>Weight</b> bones.<br>
Defines the weights of the vertices attached to the selected bone.
Each time the user click on an attached vertex <b>ppModeler</b> asks 
for the weights of the vertex. The answers is modified so that the 
sum of the weigths for this vertex remains one.

<p><img SRC="i_anim.gif" > : <b>Animation</b> mode.<br>
Activates the <a HREF="#sequences">sequences edit tool</a>.

<p><img SRC="i_edtpos.gif" > : <b>View</b> bones.<br>
Tests the skeleton. <b>ppModeler</b> switches to 
<a HREF="bonemove.html">position edit</a> tool. When the user comes back to
the Editing skeleton tool box, the skeleton returns to its initial state.
<p><img SRC="i_load.gif" > : <b>Load</b> bones and sequences.<br>
Not done yet.
<p><img SRC="i_save.gif" > : <b>Save</b> bones and sequences.<br>
Not done yet.

</td>
</tr>
</table>

<h3><A NAME="sequences">Editing Sequences</a></h3>
A sequence is a single movement. The list of the defined sequences
are shown in the object list area. <br>
<img SRC="sequence2.gif" ><br>
A sequence is a list of keyframe.
<table>
<tr VALIGN=TOP>
<td><img SRC="sequence1.gif" ></td>

<td>
<img src="i_select.gif"> : <b>Choose</b> a sequence.<br>
By clicking on a sequence of the object list, the user can select a sequence.

<p><img src="i_keyfrm.gif"> : <b>New</b> sequence.<br>
Adds a new sequence. The name of the sequence is asked and then <b>ppModeler</b>
swithes to the <a HREF="#keyframes"> editing keyframes tool box</a>.

<p><img src="i_delete.gif"> : <b>Delete</b> a sequence.<br>
Deletes the selected sequence.

<p><img src="i_edit.gif"> : <b>Edit</b> sequence.<br>
Edits the selected sequence. <b>ppModeler</b>
swithes to the <a HREF="#keyframes"> editing keyframes tool box</a>.

<p>Dup : <b>Dup</b> a sequence.<br>
Duplicates the selected sequence.

<b>ppModeler</b>
swithes to the <a HREF="#keyframes"> editing keyframes tool box</a>.
<p><img src="i_ok.gif"> : <b>End</b> of sequence editing.<br>
Go back to the <a HREF="#skeleton">edit skeleton tool</a>.
</td>
</tr>
</table>


<h3><A NAME="keyframes">Editing Keyframes</a></h3>
A keyframe is the position of the skeleton at a defined time.<br>
<img src="keyframe1.gif"><br>
The object list area displays the keyframes with the associated time. 
The keyframe in yellow is the selected keyframe. 
The name of the sequence is displayed in green.
A right click on a keyframe allows the user to change the keyframe time.
<table>
<tr VALIGN=TOP>
<td><img SRC="anim.gif" ></td>
<td>
<p><img src="i_select.gif"> : <b>Select</b> a keyframe.<br>
Selects the current keyframe in the object list area.

<p><img src="i_keyadd.gif"> : <b>Add</b> a keyframe.<br>
Adds a new keyframe. 
<b>ppModeler</b> switches to 
<a HREF="bonemove.html">position edit</a> tool. The position is set as the 
selected keyframe.
The time of this keyframe is aked when the position editing is finished.

<p><img src="i_edit.gif"> : <b>Edit</b> a keyframe.<br>
Edits the selected keyframe.

<p><img src="i_delete.gif"> : <b>Del</b> a keyframe.<br>
Deletes the selected keyframe.

<p><img src="i_play.gif"> : <b>Play</b> the sequence.<br>
Plays the sequence, in loop.

<p><img src="i_cut.gif"> : <b>Cut</b> a keyframe.<br>
Cuts the selected keyframe into the clipboard.

<p>Cpy : <b>Copy</b> a keyframe.
Copies the selected keyframe into the clipboard.

<p><img src="i_past.gif"> : <b>Paste</b> a keyframe.<br>
Copy the keyframe from the clipboard into the sequence.

<p><img src="i_ok.gif"> : <b>Quit</b> the keyframes editing.<br>
</td>
</tr>
</table>



