Sélectionnez votre langue

"Quoiqu'on fasse, on a toujours contre soi ceux qui font le contraire,
ceux qui font la même chose et ceux qui ne font... rien."

L'objectif de ce tutoriel est de découvrir le détecteur d'évènement Message.
Nous allons d'une part, lorsqu'une sphère détectera une collision, envoyer un message au personnage et supprimer la sphère.
D'autre part, lorsque le personnage détectera l'arrivée d'un message, il émettra un son.
Autrement dit, le message va permettre la communication entre la sphère et le personnage.

***

Version utilisée pour la rédaction de ce tuto (cf barre d'état) :

"UPBGE v0.3 Alpha (based on Blender v2.90.1)"


Conventions :
Les touches du clavier et les boutons de la souris sont indiqués entre '[' et ']'.
Les parcours à suivre dans l'interface utilisent '>' comme séparateur.
Quelques exemples :

[A] : touche 'A'.
[Num .] : '.' sur le pavé numérique.
[BGS] : Bouton Gauche de la Souris.
[BMS] : Bouton du Milieu de la Souris (il est possible de cliquer avec la molette !).
[BDS] : Bouton Droit de la Souris.
[Maj]+[BGS] : maintenir la touche Majuscule enfoncée et cliquer avec le Bouton Gauche de la Souris.
File > Save : menu "File", puis item de menu "Save".


Notre point de départ sera le fichier obtenu à la fin du Tuto 9.
Si vous n'avez pas suivi le Tuto 9, téléchargez le fichier :

collision.blend (754 Kio)

Ouvrez le fichier :
File > Open...

***

Pour enregistrer le fichier, faites dans le menu principal :
File > Save As...,
choisissez le dossier où vous souhaitez enregistrer, puis cliquez dans la ligne de saisie contenant "collision.blend", tapez le nom sous lequel vous souhaitez enregistrer le fichier ("message", par exemple) et validez la saisie avec [Entrée] (l'extension ".blend" est ajoutée automatiquement).
Enfin validez l'enregistrement avec [Entrée].
Par la suite, pensez à enregistrer de temps en temps, il suffira de faire :
File > Save
En fait, la version de UPBGE utilisée ici étant marquée "Alpha", elle est potentiellement instable, il est donc fortement recommandé d'enregistrer souvent (raccourci clavier : [Ctrl]+[S]) !

***

Commençons par supprimer la boite.
Dans la vue 3D, sélectionnez l'objet "Cube" avec [BGS].
Puis supprimez-le :
[Suppr]

Ensuite, nous allons repositionner Suzanne sur le plan, près d'un bord.
Commencez par la sélectionner, dans la vue 3D : [BGS]
Affichez la barre latérale : [N]
Puis, dans Item > Transform > Location, tapez les valeurs suivantes :

Y 9
Z 1


Capture d'écran : Location - YZ


Nous allons maintenant créer une sphère.
Dans le menu de la vue 3D :
Add > Mesh > UV Sphere
Pour lisser ses facettes :
[BDS] > Shade Smooth

Nous devons réduire sa taille, Suzanne ne pourra jamais avaler ça !
Dans la vue 3D, faites :
[S],
puis tapez la valeur 0.2,
et validez avec [Entrée].

Nous allons la repositionner devant Suzanne, posée sur le plan.
Dans la barre latérale, Item > Transform > Location, tapez les valeurs suivantes :

Y 7
Z 0.2


Dans le "Logic Editor" (zone du bas), ajoutez un détecteur d'évènement de type "Collision" :
Add Sensor > Collision

Ajoutez un contrôleur de type "And" :
Add Controller > And

Ajoutez une action de type "Message" :
Add Actuator > Message
Cliquez dans le champ "To" (À, c'est le destinataire), et choisissez "Suzanne" dans la liste.

Ajoutez une deuxième action, de type "Edit Object" :
Add Actuator > Edit Object
Dans la liste déroulante "Edit Object", remplacez "Add Object" par "End Object".

Enfin reliez ces 4 nouveaux blocs :

Capture d'écran : Logic Editor - Sphere

Lorsque la sphère détectera une collision, elle enverra un message à Suzanne et disparaitra.

Maintenant que cette première sphère est au point, nous pouvons la dupliquer.
Dans la vue 3D, faites :
[Alt]+[D] (pour une copie liée),
[Y] (pour un déplacement selon l'axe Y),
et tapez la valeur -1,
[Entrée] pour valider.

Pour les suivantes, il suffit de répéter la dernière opération, faites dans le menu principal :
Edit > Repeat Last
Le menu signale que le raccourci clavier est "Shift R", faites donc de manière répétée :
[Maj]+[R],
jusqu'à atteindre "Sphere.018" (nom de l'objet actif indiqué en haut à gauche de la vue 3D).

Il ne nous reste plus qu'à mettre en place les briques logiques pour Suzanne.
Nous voulons faire en sorte qu'un son soit joué lorsqu'elle reçoit un message.
Vous pouvez utiliser le son que voici (crédit : https://commons.wikimedia.org/wiki/File:En-au-yum.ogg) :

En-au-yum_mod.ogg (9 Kio)

Enregistrez-le dans le dossier contenant le fichier blend ("message.blend").

Masquez la barre latérale : [N]
Puis sélectionnez Suzanne : [BGS]
Dans le "Logic Editor", commencez par replier le capteur "Collision" en cliquant sur son icone "Expanded" en haut à gauche.

Ajoutez tout d'abord un capteur de type "Message" :
Add Sensor > Message

Capture d'écran : Add Sensor - Message


Ensuite ajoutez un contrôleur de type "And" :
Add Controller > And

Enfin ajoutez une action de type "Sound" :
Add Actuator > Sound
Renommez-la "Son".
Cliquez sur "Open" (Ouvrir) pour choisir le fichier son.
Sélectionnez le son "En-au-yum_mod.ogg" et validez avec "Open Sound".
Dans la liste déroulante "Play Mode" (Mode de lecture), remplacez "Play Stop" par "Play End", pour jouer le son en entier.
Puis cochez "3D Sound" (Son spatialisé, vous remarquerez que le son passe d'une oreille à l'autre).

Enfin reliez ces 3 nouveaux blocs :

Capture d'écran : Logic Editor - Suzanne

Lorsque Suzanne recevra un message, elle émettra un son ("yum" est l'équivalent anglais de notre "miam").

Vous pouvez lancer le jeu pour tester :
Properties > Render Properties > Game Resolution > Standalone Start

Attention, la gourmandise peut être fatale !

Voici le fichier final :

message.blend (956 Kio)