Vous croyiez avoir fait le tour des possibilités de Blender avec la réalisation d'images et d'animations ?
Détrompez-vous mes amis, car Blender ne nous a pas encore livré tous ses secrets. En effet, avec lui, on peut également créer des jeux vidéos !
Bien sûr, il ne s'agit pas ici d'aller concurrencer de grands jeux professionnels, mais plutôt de s'amuser à construire un petit divertissment avec tout ce que l'on a appris dans ce cours.
En plus, vous verrez qu'il est possible, avec ce module de jeu, de générer des simulations physiques comme une tour de Kapla qui s'écroule avec fracas ou bien une chaîne de dominos qui s'effondre.
Ce chapitre n'est qu'un aperçu des possibilités qu'offre le Game Blender. La création de jeux vidéos avec Blender est un domaine si vaste qu'il faudrait sans doute un cours entier pour pouvoir tout vous expliquer !
Moteur physique
Bien, pour commencer à créer notre jeu vidéo, il nous faut un élément essentiel : un moteur de jeu. Ce « moteur » va avoir pour fonction de calculer toute la physique du jeu, les collisions mais également les interactions entre les commandes et les actions des objets, les sons…
Si vous êtes un amateur de jeux vidéos, vous connaissez déjà sûrement quelques moteurs : « UnrealEngine », « CryENGINE », « Unity », « Source »…
Celui de Blender n'a pas réellement de nom, on l'appelle simplement « Game Blender ».
Pour l'activer, il faut remplacer Blender Render
par Blender Game
dans la barre des menus (voir la figure suivante).
Votre fenêtre des boutons a certainement changé (voir figure suivante).
Bon alors, quand est-ce qu'on le teste ce moteur de jeu ? Par où on commence ?
Et comme je vous comprends ! Mais pour avoir un jeu, même simple, il faut au moins placer quelques objets dans la scène.
Commençons par quelque chose de basique : ajoutez un plan et, au dessus, un cube en lévitation, comme illustré à la figure suivante.
Bien, maintenant place au test (voir figure suivante) !
Pour lancer le jeu, vous pouvez cliquer sur le bouton Play
ou bien utiliser la touche P.
Bah, ce n'est pas très beau ! Et pourquoi rien ne bouge ?
Oui, c'est normal, nous verrons plus tard comment rendre les graphismes plus attractifs. Pour ce qui est de l'immobilité des objets, c'est également normal car nous n'avons pas assigné de propriété physique à notre cube ni à notre plan. Blender ne sait pas quel objet doit se comporter comme dans la réalité et quel objet doit rester immobile. Par défaut, comme c'est le cas ici, tous les objets sont statiques dans la scène.
Alors, comment donner un peu de vie à notre cube ?
Il va falloir sélectionner le cube et se rendre dans le menu Physics
.
Nous allons maintenant dire au Game Blender que cet objet va être soumis aux lois de la physique : gravité, collision, etc.
Sélectionnons par exemple Rigid Body
(« corps rigide » en français) dans le menu déroulant (voir figure suivante).
Pour que les collisions se fassent correctement, cochez également Collision Bounds
et laissez l'option Box
.
Pour des objets plus complexes qu'un parallélépipède, il est parfois nécessaire de choisir un autre type, comme Sphere
ou Convex Hull
.
Bien, maintenant, tentons notre chance à nouveau et appuyons sur P. Tadaam, le cube tombe et roule sur le sol avant de s'arrêter… comme dans la réalité !
Ça y est, vous commencez à percevoir tout le potentiel du Game Blender ? Rien ne vous empêche désormais de dupliquer le cube (avec les touches Shift + D) pour construire des formes (une petite maison, une tour gigantesque…) et tout faire s'écrouler.
Également, il y a toujours l'idée de la bonne vieille chaîne de dominos (voir figures suivante et suivante).
Bon, maintenant que nous savons créer un environnement basique pour notre jeu, voyons comment l'embellir un poil.
Pour commencer, mettez-vous en mode d'affichage Textured
avant de lancer le jeu.
Cela nous permettra d'avoir une meilleure gestion des lumières et des textures dans le jeu (voir figure suivante).
Par contre, vous vous rendrez rapidement compte que certaines fonctions (comme le miroir) ne sont pas disponibles car trop gourmandes en ressources pour être calculées en temps réel. L'autre mauvaise nouvelle (décidément !), c'est que le Game Blender ne gère pas les textures procédurales. Si vous refusez de n'avoir que des matériaux unis sur vos objets, il faut donc utiliser l'UV Mapping. C'est assez contraignant (surtout si, comme moi, vous n'appréciez pas vraiment les joies de cette technique !) mais cela a pour avantage de vous forcer à vous appliquer sur le texturage du jeu.
Briques logiques
Bon, voir des objets tomber dans un jeu, c'est rigolo un temps mais, niveau interactivité, on frôle le zéro !
Pour que le joueur puisse réellement interagir avec un objet, il va falloir se servir des briques logiques.
Ces petites briques vont nous permettre de lier des évènements entre eux. Par exemple, on va pouvoir signifier à Blender : « quand le joueur appuie sur A, la voiture doit avancer ».
Cela paraît simple, hein ? Eh bien, ça l'est tout autant dans Blender !
Pour afficher les briques logiques, il faut créer une nouvelle fenêtre du type Logic Editor
(voir figure suivante).
Personnellement, je trouve très pratique de l'afficher à la place de la timeline, en dessous de la fenêtre 3D.
Découvrons maintenant les Sensors
, Controllers
et Actuators
(voir figure suivante), que nous allons assembler pour former les briques logiques.
Sensors
: ce sont les capteurs qui vont déclencher une action. Ce peut être le fait que le joueur appuie sur une touche, la collision d'un objet…Controllers
: c'est lui qui va faire le lien entre le capteur (Sensor
) et l'action (Actuator
).Actuators
: c'est l'évènement lui-même, l'action. Cela peut être un mouvement (objet qui se déplace, tourne sur lui-même), un changement dans le jeu (recommencer, changer de scène…), ou un effet de style.
Gardons notre exemple d'une voiture qui avance tranquillement. Modélisez une voiture ou, si vous êtes pressé, prenez un simple cube.
Avec la voiture sélectionnée dans la fenêtre 3D, nous allons ajouter un Sensor
de type Keyboard
(voir figure suivante).
Ensuite, il faut préciser quelle touche lui commandera d'avancer. Pour ma part, j'ai choisi la flèche directionnelle du haut (oui, très original).
Passons ensuite au Controller
. C'est un lien logique qui va donc unir
notre Sensor
à notre Actuator
. Il en existe plusieurs sortes : AND
, OR
, NOR
, XOR
… (voir figure suivante).
Dans notre exemple, nous allons choisir AND
(c'est le plus commun), il activera notre Actuator
lorsque l'on appuie sur la touche Flèche haut.
Et pour finir, l'Actuator
!
Il en existe également moult sortes. Pour déplacer un objet, c'est Motion
(« mouvement », en français) qu'il faudra choisir (voir figure suivante).
On définit ensuite quelle sorte de mouvement l'objet va subir :
Loc
: translation simple ;Rot
: rotation simple ;Force
: l'objet est poussé par une force ;Torque
: identique àForce
sauf qu'ici, l'objet est mis en rotation.
Ce qui correspond sans doute le plus à l'accélération d'une voiture est Force
. Mettez une valeur de 150 (ou -150 suivant le sens de votre engin) et, pour finir le tout, reliez comme avec les nodes (voir figure suivante).
Vous voyez qu'avec quelques briques logiques, vous pouvez permettre au joueur de contrôler une voiture, un bateau, un avion…
Les quatre règles d'or
Ces quatre règles d'or vous permettront d'éviter les erreurs les plus communes.
Règle 1 - Économisez vos vertices
Lorsque l'on crée un jeu vidéo, il est important de garder en tête que l'ordinateur va devoir faire les calculs en temps réel, c'est-à-dire générer au moins 30 images par seconde pour garder un affichage fluide !
Pour lui alléger la tâche, il est donc important de conserver des maillages aussi légers que possible.
Oubliez donc le SubSurf
, les détails à gogo… tout doit être en low poly (peu de polygones).
Règle 2 - Soignez vos textures
Pour pallier la géométrie forcément un peu pauvre de vos modèles, il va falloir s'appliquer sur les textures. Comme on l'a vu, nous sommes obligés d'utiliser l'UV Mapping dans le Game Blender. Ne laissez donc pas vos objets d'une couleur unie, ce serait dommage ! Même pour le sol, les petits objets, prenez le temps de déplier et de colorier ou d'appliquer une texture fournie, ce sont les détails qui font l'ambiance d'un jeu.
Règle 3 - Ne voyez pas trop grand
L'erreur la plus fréquente des débutants est de commencer par un projet trop gros pour être réalisable tout seul et sans expérience professionnelle.
À titre exemple, le jeu Yo ! Frankie, qui est sans doute le jeu le plus abouti réalisé avec Blender, a demandé plus de huit mois de travail à une équipe d'une dizaine de graphistes et de développeurs professionnels.
Attention : loin de moi l'idée de vouloir vous décourager si vous souhaitez vous engager dans la création d'un jeu un peu complexe.
Seulement pour en venir à bout, il vous faudra un planning précis des tâches à réaliser, une organisation sans faille ainsi qu'une bonne dose de motivation !
Règle 4 - Faites appel à votre créativité
Plus qu'un environnement techniquement irréprochable, les joueurs attendent souvent d'un jeu qu'il soit plaisant et original. Pour preuve, tous les jeux des années 1990 qui ont encore leurs fans (Worms, Half-Life, Mario, Diablo…), tant l'univers et la jouabilité de ces jeux sont indémodables.
Je me souviens encore d'un de mes premiers jeux avec Blender, créé en à peine une heure : quatre joueurs, placés aux coins d'un plan, avaient chacun le contrôle d'une petite voiture. Chaque joueur avait pour mission de protéger sa pile de petits cubes tout en devant détruire celles des voisins. Les graphismes avaient beau rappeler les débuts de l'informatique, ce jeu était extrêmement amusant à jouer à plusieurs, les parties se prolongeant souvent jusque tard le soir !
Généralement, les gens aiment bien casser des objets. Avec le moteur physique de Blender, c'est illimité, profitez-en !
En résumé
- Le Game Blender est un module qui rend possible la création de jeux directement dans Blender.
- Le moteur de jeu est le premier élément de ce module, c'est lui qui a la charge de calculer la physique du jeu. En assignant des objets en
Rigid Body
, ils vont réagir comme dans la réalité en étant soumis à la gravité. Chutes et collisions garanties ! - Pour donner un peu d'interactivité à la scène, on passe par les briques logiques. Il faut assembler les
Sensors
,Controllers
etActuators
pour contrôler un objet, démarrer le jeu, ajouter un effet…