Sites


Blender pour le jeu video

Réaliser un menu

Démarrer une nouvelle partie, quitter le jeu, consulter les crédits : ce type d'actions passe souvent par des boutons regroupés dans un menu.

Nous découvrirons dans ce chapitre quelques techniques pour créer un menu grâce aux briques logiques. Notez que nous détaillerons le fonctionnement des options communes à tous les sensors(Tap, Level, Invert, Pulse) dans le chapitre suivant.

Un bouton fonctionnel

Les menus classiques fonctionnent généralement avec la souris. Nous devons détecter si une souris survole un objet et détecter un événement souris. La première nécessité est d'afficher le cursor: Properties > Render > Display > Mouse Cursor.

Pour notre premier bouton, nous ajoutons un plan, sur lequel nous mettrons une texture de bouton avec du texte indiquant son rôle, dans cet exemple ce sera quitter le jeu. Nous ajouterons un actuatorde type Game, le but étant de l'activer avec la souris.

Le premier sensor Mouse  configuré enMouse Over envoie True lorsque l'objet (ici le bouton) est survolé par la souris. Le deuxième sensorMouse, configuré en Left Button, envoie Truelorsqu'il détecte l’événement clic gauche de la souris.  Le contrôleur logique lié aux deux sensors Mouse est ici de type And : parce qu'il faut que tous ses sensors soient True pour que les actuators auxquels il est connecté soient activés. Ces deux conditions sont en effet nécessaires pour que cela corresponde à un clic du bouton.  L'actuator termine le jeu.

Nous pouvons ensuite dupliquer ce plan (changer sa texture) et modifier l'actuator pour choisir une autre action, par exemple changer la scène courante vers une scène appelée Options.

Embellir le menu

Nous souhaitons améliorer l'aspect visuel du menu et le rendre plus interactif, avec par exemple des boutons qui changent d'aspect lorsqu'on les survole ou qui jouent des animations (ils sautillent, tournent, grossissent, etc.). La façon la plus économe et de faire un bouton qui change de couleur est de placer deux plans dos à dos, et faire tourner l'ensemble de 180° lorsqu'il est survolé par la souris. Pour obtenir une rotation précise et reproductible, nous utiliserons une animation.

Notons que nous avons choisi l'interpolation constante de sorte que le flip soit instantané sans étape intermédiaire.

Le BGE tourne avec un fps de 60, soit bien plus que le fps habituel de 24 ou 25 des animations en cinéma ou vidéo. Pour que les animations se jouent néanmoins à la vitesse normale, le BGE affiche des frames intermédiaires. Avec une interpolation de type Bézier, nous verrions le bouton brièvement tourner, ce qui n'est pas l'effet recherché.

Ensuite avec une brique Action en mode Flipper, nous connectons simplement cet actuator au sensor Mouse Over.

Vous pouvez télécharger cette demo ici: [menu_bouton_flip.blend]

L'explication courte est la suivante : le modeFlipper joue l'animation dans le sens normal lors de l'activation par le controller et dans le sens inverse lors de la désactivation : le bouton retrouve sa rotation normale lorsque la souris quitte le bouton. Dans le chapitre suivant nous décrirons comment faire la même chose avec Python après avoir expliqué la mécanique interne du moteur logique.

Faire apparaître un menu pendant le jeu

Comme nous l'avons vu dans le chapitre précédent avec la gestion de plusieurs scènes, il suffit d'ajouter une scène en Overlay (la scène menu) et de mettre en pause la scène courante. Ensuite, lorsqu'on supprime le menu, il ne faut pas oublier de faire un resume scene pour relancer la scène courante mise en pause précédemment.

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.