Fichier d'animation

De WikiPlee.

Un fichier d'animation est un fichier XML décrivant un niveau d'une façon lisible par un humain, ou par l'éditeur d'animations. Les fichiers d'animation portent l'extension .anim. Un tel fichier donnera un fichier à l'extension .canim une fois compilé. Ces animations compilées peuvent être ensuite utilisées dans l'éditeur de niveaux et dans l'éditeur de modèles.

Sommaire

[modifier] Format du fichier

Une animation est définie par une balise <animation>. Ses attributs sont

  • loops='u_integer', nombre de lectures de l'animation ;
  • first_index='u_integer', indice de l'image à laquelle revenir en bouclant ;
  • last_index='u_integer', indice de l'image à laquelle la boucle se termine ;
  • loop_back='bool', indique si l'animation est lue à l'envers en fin de boucle ;
  • mirror='bool', indique si l'animation est retournée horizontalement ;
  • flip='bool', indique si l'animation est retournée verticalement ;
  • angle='real', rotation de l'animation ;
  • opacity='real', opacité de l'animation ;
  • red_intensity='real', l'intensité de la composante rouge des images ;
  • green_intensity='real', l'intensité de la composante verte des images ;
  • blue_intensity='real', l'intensité de la composante bleu des images ;
  • width='u_integer', largeur de l'animation à l'écran ;
  • height='u_integer', hauteur de l'animation à l'écran.

Les nœuds fils sont des nœeuds <frame>, ayant un attribut duration='real' indiquant la durée d'affichage de la frame, en secondes. Ces nœuds ont chacun un fils <sprite>.

[modifier] Sprite

Un sprite est défini par une balise <sprite> et ses attributs :

  • image='string', le chemin de l'image à utiliser ;
  • x='u_integer', abscisse du sprite dans l'image ;
  • y='u_integer', ordonnée du sprite dans l'image ;
  • clip_width='u_integer', largeur du sprite dans l'image ;
  • clip_height='u_integer', hauteur du sprite dans l'image ;
  • mirror='bool', indique si le sprite est retourné horizontalement ;
  • flip='bool', indique si le sprite est retourné verticalement ;
  • angle='real', rotation du sprite ;
  • opacity='real', opacité du sprite ;
  • red_intensity='real', l'intensité de la composante rouge du sprite ;
  • green_intensity='real', l'intensité de la composante verte du sprite ;
  • blue_intensity='real', l'intensité de la composante bleue du sprite ;
  • width='u_integer', largeur du sprite à l'écran ;
  • height='u_integer', hauteur du sprite à l'écran.

[modifier] Intensité et opacité

L'intensité et l'opacité est indiquée deux fois dans les animations. Une fois dans chaque frame et une fois pour l'animation. La valeur utilisée pour le rendu d'une frame est le produit des deux.

[modifier] Exemple

<animation loops='0' first_index='0' last_index='2' loop_back='false' width='64'
 height='32' mirror='false' flip='false' angle='0' opacity='0.25' red_intensity='1' green_intensity='1' blue_intensity='1'>
  <frame duration='0.18'>
    <sprite image='gfx/water.tga' x='0' y='32' clip_width='64' clip_height='32' width='64' height='32' mirror='false' flip='false' angle='0' opacity='1' red_intensity='1' green_intensity='1' blue_intensity='1'/>
  </frame>
  <frame duration='0.18'>
    <sprite image='gfx/water.tga' x='64' y='0' clip_width='64' clip_height='32' width='64' height='32' mirror='false' flip='false' angle='0' opacity='1' red_intensity='1' green_intensity='1' blue_intensity='1'/>
  </frame>
  <frame duration='0.18'>
    <sprite image='gfx/water.tga' x='64' y='32' clip_width='64' clip_height='32' width='64' height='32' mirror='false' flip='false' angle='0' opacity='1' red_intensity='1' green_intensity='1' blue_intensity='1'/>
  </frame>
</animation>

[modifier] Fichier d'animation compilé

Le fichier d'une animation compilée présente les informations dans l'ordre ci-dessous.

nombre de frames

Suivent ensuite les frames.

durée de la frame
fichier du sprite
abscisse dans l'image
ordonnée dans l'image
largeur dans l'image
hauteur dans l'image
largeur à l'écran
hauteur à l'écran
inversion horizontale
inversion verticale
opacité
intensité de la composante rouge
intensité de la composante verte
intensité de la composante bleue
angle

Puis le fichier se termine par les attributs de l'animation

nombre de lectures
lecture inverse
indice de début de boucle
indice de fin de boucle
largeur à l'écran
hauteur à l'écran
inversion horizontale
inversion verticale
opacité
intensité de la composante rouge
intensité de la composante verte
intensité de la composante bleue
angle