02b - Animation 2D PDF
02b - Animation 2D PDF
02b - Animation 2D PDF
Présentation et Auteur:
Stéphane Lavirotte
Mail: [email protected]
Web: http://stephane.lavirotte.com/
Université de Nice - Sophia Antipolis
Images dans les Jeux Vidéo
Un peu d’Histoire
Stéphane Lavirotte 5
Des images pour tout…
ou presque
Des images pour tous les éléments du jeu
– Image de fond ou imagettes pour la construction du terrain
– Dessin des plateformes
– Icons pour les objets du jeu
– Dessin des personnages et animation
– Images pour l’écran d’accueil
– Images pour les textures des modèles 3D
Mais aussi éventuellement
– Menus: boutons, décor des fenêtres, des listes, …
– Affichage de données (score, texte, …) même si on préfèrera les
polices de caractères
– Images de transitions dans les séquences de jeu 2D
Donc beaucoup d’images de différents types à gérer
Stéphane Lavirotte 6
Exemples de Jeux 2D
(ou mélange 2D majoritaire/3D)
Jeux « anciens »
– Plus de jeux 2D que de 3D
Jeux récents:
– De nombreux Hits en 2D
Pokémon Platine (2008)
Mario et Luigi : Voyage au centre de Bowser (2009)
Pokémon HeartGold et SoulSilver (2009-2010)
Pokémon Noir et Blanc (2010-2011)
Stéphane Lavirotte 8
Sprite
Représentation visuelle de tous les objets ou éléments
graphique qui peuvent se déplacer à l’écran
– En français: un lutin
– Soit une simple image
– Soit une série d’images que l’on animera par programmation
Usage des Sprites
– Technique fondamentale en jeux vidéo 2D
Stéphane Lavirotte 9
Sprite: On a toujours besoin
d’un plus petit que soi !
Historiques Actuels
Stéphane Lavirotte 10
Sprites pour la 3D aussi
Le terme sprite n’est pas réservé aux petites images 2D
basse-résolution
Se retrouve également dans les jeux 3D
– Traitement de l’interface graphique
– Simplification des objets
– Effets spéciaux
– Systèmes de particules
Stéphane Lavirotte 12
Planches d’images: Sprite Sheet
Sprite Sheet
– « Tile » ou tuile
concernant les
éléments de décor
(cases)
– « Découpage » en
briques élémentaires
– Taille fixée (souvent
une puissance de 2:
32, 64 ou 128)
Stéphane Lavirotte 13
Pourquoi plusieurs Images
en un seul Fichier
Un nombre important d’images pour tous les éléments
du jeu
Si chaque image est un fichier: de nombreux petits
fichiers
– Problème de stockage sur le disque dur
– Problème de vitesse au chargement
Donc la solution est de faire des planches d’images
– Meilleur rapport de compression (suivant le format utilisé)
– Plus rapide à lire sur le disque dur
– Redécouper l’image pour avoir les différents mouvements
– Obligation de choisir une taille fixe à chaque type d’élément
– Dans les langages de bas niveau pour changer d’image, il suffit
de bouger un pointeur sur l’image
Stéphane Lavirotte 14
What is a Sprite Sheet ?
Stéphane Lavirotte 16
Animation
Stéphane Lavirotte 17
Qu’est ce que l’Animation 2D
Donner l’illusion d’un mouvement à partir d’images
fixes
– Découpage en séquences d’images
– Comme pour le mouvement, le temps importe
– Le temps indexe la position courante dans l’animation
Exemple:
– Un personnage qui marche
Stéphane Lavirotte 18
Et pourquoi pas un gif animé ?
Gif animé:
– Image contenant une séquence d’images fixes
– Temps d’attente entre deux images
– Donne l’illusion du mouvement par affichage successif
Mais:
– Nécessite un thread spécifique pour réaliser l’animation
– On n’a pas de contrôle dynamiquement sur l’animation
– Pas de contrôle fin possible sur les enchainements
– Ou nécessite de faire le contrôle de l’affichage manuellement
Stéphane Lavirotte 19
Sprite Sheet: Personnage
Solution: animation
« à la main »
« Découpage »
Problème
– Quelle animation
correspond à quelle
image ?
Système rigide de
règles
Stocker les
informations
nécessaires
Stéphane Lavirotte 20
Qualité de l’Animation
La qualité de l’animation dépend du nombre de dessins
– Un des premiers très bon exemple: Prince of Persia
Ex: boire une fiole: 15 dessins pour la prendre et la boire
– Plus on est proche des 24 images par secondes, plus
l’animation sera fluide
http://www.sparkrift.com/tag/live
Stéphane Lavirotte 22
Contrôle de la Vitesse
d’Animation
Déplacer un objet à chaque frame
Maîtriser la vitesse du déplacement
– On ne déplace pas l’objet d’une valeur fixe à chaque tour de
boucle
– Chaque objet a un paramètre de déplacement (vitesse)
Basé sur l’utilisation d’une horloge
– Evite les problèmes de performances variables des processeurs
– Gère la durée des cycle de boucle inégaux (on peut avoir plus
de choses à faire à certains moments, mais l’animation doit
rester fluide)
– Comptabilisation du temps écoule à chaque tour de boucle
– Déplacement = Vitesse x Temps
Valable tant en 2D qu’en 3D
Stéphane Lavirotte 23
Un Affichage en Couches
Affichage du plus loin au plus près
– Eléments du terrain ou fond d’écran
– Eléments bâtiments, plates-formes
– Objets
– Personnages de premier plan
Utilisation de la notion de calques
– Méthode inspirée de l’animation du dessin animé
– Un ou plusieurs calques pour les décors, un calque pour les
personnages, …
Stéphane Lavirotte 24
Animation sans
Problème d’Affichage
Optimisation pour l’affichage
– Ne redessiner que ce qui a changé:
Dans la mesure du possible, on ne redessine pas, on bouge le
calque
Limite les changements à effectuer sur l’image
– Double Buffering:
Technique utilisée pour minimiser les artéfacts visuels dus au
temps nécessaire pour dessiner
Image entièrement redessinée environ 60 fois par secondes sur le
moniteur
Difficile de ne pas avoir le dessin d’animation sans que l’image soit
complètement modifiée (risque de voir une modification partielle)
Toute la page ou les portions modifiées de la page sont copiés en
une seule opération
Stéphane Lavirotte 25
Organisation de l’Espace
Stéphane Lavirotte 26
Un Espace d’Affichage Limité
Ecran
– Un des principaux vecteurs de communication entre la
machine et l’utilisateur
– Envahissent notre quotidien (tv, téléphone, voiture, …)
– Est très limité en taille en particulier pour un jeu
– Important de se poser des questions pour une bonne gestion
de cet espace d’affichage
Différents types d’utilisation de l’espace que l’on peut
trouver dans les programmes interactifs (jeux ou
autres)
Les interfaces actuelles sont des combinaisons des
différentes techniques de base inventées il y a plus de
40 ans
Stéphane Lavirotte 27
Différents Types d’Affichages
Ecran texte (vers 1955): Zork
Ecran autonome (1972): Pong, Space invaders
Ecran infini (1979): Asteroïd, PacMan
Scrolling sur 1 axe (travelling) (1980): 1942, Defender
Scrolling sur 2 axes: Populous, Sim City
Montage (1980): Berzerk
Scrolling différentiel: Sonic
Axe des Z (profondeur) (1967): Night Driver, Pole
Position
Vues Multiples (split-screen): Ultima 3, Warcraft, …
Perspective: FPS (Doom, Unreal), TPS (Tomb Raider)
Stéphane Lavirotte 28
Texte Autonome Infini
Stéphane Lavirotte 30
Du faux 3D mais du vrai 2D
3D Isométrique
– Fausse 3D
– Représenter en 2D une partie d’un espace en 3D
– Prise de vue, plongeante (à 45°)
– Donne un effet de profondeur
– Le joueur a l'impression de jouer dans un univers en 3D
– Renforcé par l’ajout d’ombre sur les sprites
– Permet de faire des graphismes très travaillés
– Plus simple à gérer que de la vrai 3D
Utilisé dans de nombreux jeu
– Warcraft 2
– Simcity 2000
Stéphane Lavirotte 31
Glossaire
Stéphane Lavirotte 33