Animation Flashcards

1
Q

Sur quel principe de base fonctionne l’animation 2D dans les jeux vidéo?

A

L’animation 2D fonctionne sur le même principe qu’un dessin animé. La pose est modifiée à intervalles réguliers pour créer l’illusion du mouvement.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quelles sont les deux sources principales des poses utilisées dans l’animation 2D?

A

Les poses peuvent provenir de textures individuelles ou être extraites d’une texture “globale” communément appelée spritesheet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Qu’est-ce qu’une spritesheet?

A

Une spritesheet est une texture globale contenant plusieurs images (ou poses) d’animation. Le sprite n’utilise qu’une partie spécifique de cette texture à la fois, définie par un rectangle.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Quelle classe SFML est utilisée pour définir la région d’une texture à afficher?

A

La classe sf::IntRect est utilisée pour définir un rectangle qui spécifie quelle partie de la texture sera affichée.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Quelle méthode de la classe Sprite permet de spécifier un rectangle spécifique d’une texture?

A

La méthode setTextureRect de la classe Sprite permet de spécifier quelle partie de la texture sera utilisée pour l’affichage.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Par défaut, quel rectangle est utilisé lorsqu’on affiche une texture avec un Sprite?

A

Par défaut, le rectangle utilisé correspond à la texture au complet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Comment crée-t-on une impression de mouvement avec une spritesheet?

A

Pour créer une impression de mouvement, il suffit de changer le rectangle (avec setTextureRect) à intervalles fixes ou en réaction à une action du joueur.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Quelle est la caractéristique idéale du découpage d’une spritesheet?

A

Idéalement, toutes les images devraient avoir la même taille et le découpage devrait être le plus égal possible.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Que doit faire le programmeur si les dessins d’une spritesheet sont de tailles différentes?

A

Si les dessins sont clairement différents en taille, il est nécessaire d’utiliser le rectangle correspondant à la taille du plus grand dessin.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Quel problème peut survenir avec la détection de collision pour un acteur animé?

A

Un acteur animé dispose souvent de pixels non utilisés (transparents) autour de lui. L’utilisation d’un rectangle englobant via getGlobalBounds risque d’être imprécise pour la gestion des collisions.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Quelles sont deux alternatives possibles pour une meilleure gestion des collisions avec un acteur animé?

A
  1. Les acteurs peuvent utiliser une technique particulière pour détecter les collisions.
  2. Pour une précision maximale, on peut utiliser les collisions “pixel-perfect”.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Qu’est-ce qu’une animation linéaire?

A

L’animation linéaire est l’animation de base où, une fois les images animées (animated frames) chargées, on spécifie l’image choisie au moment opportun, généralement en suivant une séquence de 0 à n-1.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Comment peut-on gérer le temps dans une animation linéaire?

A

Le temps peut être géré de façon uniforme (le temps d’affichage d’une image est celui de l’animation complète divisé par le nombre d’images) ou non uniforme (chaque image peut avoir sa propre durée).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Qu’est-ce qu’une animation cyclique?

A

L’animation cyclique est une variation de l’animation linéaire où seulement la moitié des images animées sont présentes. Ces images sont affichées de 0 à n-1 puis de n-1 à 0, créant un effet d’aller-retour.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Donnez un exemple d’utilisation d’une animation cyclique.

A

Un exemple serait un joueur qui saute puis redescend. Les images de la descente pourraient être les mêmes que celles de la montée, mais affichées dans l’ordre inverse.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Comment implémenter une animation basée sur le temps en SFML?

A

On peut utiliser un chronomètre (sf::Clock) pour mesurer le temps écoulé, puis changer l’image affichée lorsqu’un certain temps s’est écoulé, en utilisant setTextureRect avec le rectangle correspondant à la nouvelle frame.

17
Q

Quelle est la relation entre la fréquence d’images (framerate) et la fluidité d’une animation?

A

Plus la fréquence d’images est élevée, plus l’animation paraîtra fluide. Généralement, une animation à 24-30 images par seconde est considérée comme fluide pour l’œil humain.

18
Q

Comment peut-on gérer plusieurs animations différentes pour un même personnage?

A

On peut créer une classe Animation qui gère les différentes séquences d’animation (marche, course, saut, etc.) et qui permet de passer d’une séquence à l’autre en fonction des actions du joueur.

19
Q

Quelle structure de données pourrait être utilisée pour stocker les rectangles d’une animation?

A

Un tableau ou un vecteur (std::vector<sf::IntRect>) pourrait être utilisé pour stocker les rectangles correspondant à chaque frame de l’animation.

20
Q

Comment pourrait-on améliorer une animation pour la rendre plus réaliste?

A

Pour rendre une animation plus réaliste, on peut:

Ajouter plus de frames pour une transition plus fluide
Utiliser des durées différentes pour chaque frame (certaines poses peuvent être plus importantes)
Ajouter des effets de “squash and stretch” (compression et étirement)
Inclure des frames d’anticipation et de récupération
Synchroniser l’animation avec des effets sonores