Sites


Blender pour le jeu video

Des animations dans notre jeu

Dans un jeu, nous voulons nous amuser ! Des animations ajoutent de la vie et du fun, et de plus, dans un jeu, il est souvent essentiel de pouvoir déplacer certains objets de façon prédictible (ou « scriptée »).

Blender possède un système d'animation permettant de changer une multitude de propriétés des objets (position, rotation, couleur, etc.), et également un système de rigging (de construction de squelettes) permettant de déformer un mesh (objet maillé) complexe à l'aide d'armatures (ou squelettes). Les deux systèmes sont complètement utilisables en dehors du moteur de jeu et la plupart de ces types d'animations fonctionnent également dans le moteur de jeu, à l'aide de l'actuator Action.

Les images clés d'animation (Keyframe) dans Blender

Dans Blender comme dans la plupart des logiciels d'animation, les animations sont gérées par un système d'images-clés qui enregistre à un instant T la position, l'orientation et la taille des objets (ou des os −bones− dans le cas des armatures). Les images intermédiaires, qui ne sont donc pas définies précisément, sont calculées automatiquement par Blender (ce qui s'appelle du tweening).

L'image courante (frame) est indiquée entre parenthèses en bas à gauche dans le viewport de la vue 3D et elle est colorée en jaune si l'objet sélectionné dispose d'une keyframe (image-clé) sur la frame active. L'image de départ (Start Frame) par défaut est la frame 1, mais il vaut mieux utiliser la frame 0 pour nos animations car, par défaut, l'actuator action prend comme frame de départ 0. Pour changer la frame courante, il nous suffit d'appuyer sur les touches fléchées gauche et droite. Mais pour définir celle de départ il faut aller à la numéro 0 dans la timeline (ligne de temps) et appuyer sur S (pour Start - départ).

Ce qui va définir la vitesse de nos animations est le paramètre Animation Frame Rate (vitesse d'animation par image), défini dans le panneau Rendersous l'onglet Display.

Définir les caractéristiques du monde

Ce Frame Rate est séparé de celui auquel le jeu se rafraîchit (voire le chapitre Définir les caractéristiques du monde de cette même section). L'animation sera jouée dans le jeu en respectant la Frame Rate de l'animation et non celle du jeu, à condition cependant que le jeu soit fluide, sinon la vitesse de l'animation est ralentie proportionnellement au ralentissement du jeu. Par défaut, elle est réglée à 24 image par seconde, qui est le standard que l'on retrouve au cinéma. Nous utiliserons les mêmes techniques d'animation pour faire un court-métrage dans Blender que pour faire un jeu utilisant le Game Engine. Pour plus d'informations sur l'animation par images-clés dans Blender, reportez-vous à un ouvrage dédié. Dans le Blender Store en particulier, il existe un livre de Tony Mullen en anglais Introducing Character Animation, 2.5 edition. Pour apprendre les concepts du rigging, le DVD de Nathan Vegdahl en anglais Humane Rigging est l'une des rares références les explicitant en utilisant Blender. Il est également disponible dans le Blender Cloud.

Relier nos animations à notre jeu avec l'actuator Action

L'actuator possède beaucoup d'options, mais les plus importantes sont :

  1. La sélection de l'action à jouer.
  2. La définition des images de début et de fin de l'animation avec Start Frame et End Frame pour contrôler la plage de lecture de cette action.
  3. Le type d'animation.

Nous allons détailler ces types d'animations un par un.

L'actuator action

Les différents types d'animation

La première liste de l'actuator Action présente les différentes possibilités (ou types d'animations) offertes par Blender pour jouer les animations que nous auront réalisées ou récupérées.

Play

Joue l'animation du début jusqu’à la fin. Déclencher à nouveau l'actuator n'a d'effet que lorsque l'animation est terminée, il faudra donc attendre sa fin pour déclencher une autre animation du même type.

Ping Pong

Permet d'alterner des lectures à l'endroit et à l'envers : le premier déclenchement joue l'animation à l'endroit, le suivant à l'envers, etc. Comme pour le Play, on ne peut pas l'interrompre lorsqu'il est en cours.

Flipper

Joue l'animation tant que l'entrée est active, mais dès que l'entrée est à l'état logique Faux (False), l'animation se joue a l'envers pour revenir à l'état initial. Si l'entrée est réactivée alors que l'animation n'est pas revenue à l'image de départ (Start Frame), alors celle-ci reprend à l'endroit où elle était au moment de la réactivation.

Loop Stop

Tant que l'entrée est active, l'animation est jouée en continu, mais si l'entrée passe à Faux (False), alors l'animation se stoppe à l'image (frame) courante.

Loop End

L'animation se joue en continu du début à la fin tant que l'entrée est active, si l'entrée passe à Faux (False), l'animation ne se stoppe pas tout de suite, elle va jusqu'à la dernière frame d'animation puis s'arrête.

Property

Joue l'animation de l'image (frame) passée en paramètre de l'actuator, via une propriété du jeu Property, qui a été définie par ailleurs.

Notre première animation en jeu

Nous allons créer un objet flottant, avec un mouvement vertical plutôt lent de la forme d'un cycle de montée et descente. Prenons un simple cube avec 3 Keyframes : à 0, 24 et 48. De cette façon, à 24 images par secondes, chaque étape prendra exactement 1 seconde. Sur ces 3 Keyframes, la position ou la rotation peut varier, mais les premières et dernières doivent être identiques pour que l'animation puisse boucler.

  1. Élevons légèrement le cube par défaut et en Edit mode, réduisons de moitié sa largeur et sa profondeur avec les raccourcis claviers SXY.5.
  2. Plaçons un plan au centre du monde et agrandissons-le. Nous percevrons ainsi un peu mieux le mouvement, en particulier grâce aux ombres.
  3. Dans le layout Blender Game, éventuellement, créons une nouvelle vue par le bas dans la fenêtre centrale et choisissons l'éditeur de type Timeline.
  4. Changeons la valeur Start à 0 et End à 48. L'intervalle d'animation apparaît en plus clair dans la ligne de temps. Zoomons dessus en tournant la molette pour qu'elle occupe bien l'espace disponible.
  5. Passons à la première image de l'animation en utilisant le raccourci Maj + flèche gauche :0doit apparaître dans le champ placé à droite de End, et que nous aurions pu renseigner à la main.
    Préparation de l'animation dans Blender
  6. Vérifions que le cube est bien sélectionné, plaçons nous dans la vue 3D et appuyons sur i puis choisissons Location, pour mémoriser l'emplacement du cube à cet instant de l'animation.
  7. Déplaçons la Timeline à l'image 24 et  modifions légèrement la hauteur du cube avec g puis z puis appuyons à nouveau sur i > Location.
  8. À l'image 48, replaçons le cube à sa position initiale et faisons encore i > Location. Pour nous faciliter la tâche nous aurions pu faire l'image 48 avant l'image 24 puisque les deux ont la même position, ou nous aurions aussi pu dupliquer la clé avec Maj + d dans leDopesheet Editor.
  9. Nous pouvons jouer l'animation en faisant Alt + a. Appuyons sur Echap pour sortir.
  10. Pour que notre animation joue en permanence dans le jeu, créons un sensorAlways.
  11. Créons un actuator Actionde type Loop end et dans le champ situé en-dessous sélectionnons l'actionCube Actionautomatiquement généré par Blender.
  12. Enfin, paramétrons le début et la fin des images à montrer :Start Frame doit être à 0 etEnd Frame à 48.

Action Loop de base

Tout peut s'animer ! Animons donc une lampe

Gardez en mémoire que Blender est conçu pour pouvoir tout animer ! Ainsi Blender permet de créer des images clés (Keyframe) sur presque tous les paramètres, et il est possible d'enregistrer la valeur Energy d'une lampe au cours du temps en pressant la touche de capture i lorsque notre curseur de souris survole le paramètre Energy d'une lampe. Une variation très simple de l'exemple d'animation Loop end précédent est d'animer une lampe avec les mêmes briques logiques, afin de la faire clignoter.

Cette option est très pratique pour la création d'atmosphère dans notre jeu, ou permet de mettre en évidence des objets ou des effets. Les animations et les lumières attirent le regard du joueur, combiner les deux est donc très efficace pour capter son attention !

Il y a une erreur de communication avec le serveur Booktype. Nous ne savons pas actuellement où est le problème.

Vous devriez rafraîchir la page.