Sélectionnez votre langue

"Cesser de fumer est la chose la plus aisée qui soit : je l'ai fait un million de fois."
Mark Twain

L'objectif de ce tutoriel est de découvrir le capteur "Ray" (Rayon).
Nous allons l'utiliser pour déclencher la rotation d'une boite lorsque le personnage coupe un rayon.

***

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

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


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]+[BDS] : maintenir la touche Majuscule enfoncée et cliquer avec le Bouton Droit 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 10.
Si vous n'avez pas suivi le Tuto 10, téléchargez le fichier :

near.blend (755 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 "near.blend", tapez le nom sous lequel vous souhaitez enregistrer le fichier ("ray", 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]) !

***

L'objet "Cube" doit être sélectionné, si ce n'est pas déjà le cas, dans la vue 3D, faites [BGS].

Dans le "Logic Editor" (zone du bas), supprimez le détecteur d'évènement "Near" en cliquant sur la croix en haut à droite du bloc ("Remove Sensor").

Supprimez de la même manière le bloc contrôleur "And" (clic sur la croix "Remove Controller").

Nous allons maintenant créer un cylindre qui portera le capteur "Ray" et qui permettra de visualiser le rayon (celui-ci pourrait tout à fait être invisible, porté par un objet de type "Empty").
Dans le menu de la vue 3D, faites :
Add > Mesh > Cylinder

Pour le redimensionner, faites :
[S],
tapez la valeur 0.1 pour l'axe X,
[Tab] pour passer à l'axe Y, tapez la valeur 0.1,
[Tab] pour passer à l'axe Z, tapez la valeur 10,
et validez avec [Entrée].

Décalez le cylindre de manière à ce qu'il soit posé sur le plan :
[G] pour déplacer,
[Z] pour contraindre le déplacement selon l'axe Z,
tapez la valeur 10,
et validez avec [Entrée].

Passez en vue locale :
[Num /]

Nous allons maintenant décaler l'origine du cylindre (actuellement au centre, visualisée par un petit point orange) de manière à ce qu'elle soit à la base (la position actuelle du curseur 3D) :
Object > Set Origin > Origin to 3D Cursor
C'est en effet l'origine qui sera le point d'émission du rayon.

Pour sortir de la vue locale et revenir à la vue précédente :
[Num /]

Nous allons maintenant mettre le cylindre en place.
[N] pour afficher la barre latérale, puis :
Item > Transform > Rotation > X,
tapez la valeur -90 pour basculer le cylindre à l'horizontale :

Capture d'écran : Rotation

Puis dans la section "Location" juste au-dessus, tapez les valeurs suivantes (vous pouvez passer dans champ à l'autre avec [Tab]) :

X 5
Y -10
Z 1


Pour que le cylindre ne soit pas un obstacle pour notre personnage :
Properties > Physics Properties > Physics > [x] Ghost

Capture d'écran : Ghost


Nous allons à présent poser le capteur sur le cylindre.
Dans le "Logic Editor" (zone du bas), ajoutez un détecteur d'évènement de type Ray :
Add Sensor > Ray

Capture d'écran : Add Sensor - Ray


Pour visualiser les axes du cylindre :
Properties > Object Properties > Viewport Display > [x] Axis

Capture d'écran : Show Axis


Pour que le rayon coure le long de l'axe Z du cylindre :
Dans la liste déroulante "Axis" du bloc "Ray", remplacez "+Y axis" par "+Z axis".

Pour que le rayon coure sur toute la longueur du cylindre :
Dans le champ numérique "Range", tapez la valeur 20.

Capture d'écran : Axis - Range


Il ne reste plus qu'à relier le capteur "Ray" de l'objet "Cylinder" à l'action de rotation de l'objet "Cube".
Il faut tout d'abord rajouter le cube à la sélection :
[Maj]+[BGS]

Ajoutez ensuite un contrôleur de type And sur l'objet "Cylinder" :
Add Controller > And

Pour finir, connectez le capteur "Ray" de "Cylinder" au contrôleur "And", et le contrôleur "And" à l'action "Motion" de "Cube" :

Capture d'écran : Connexions

L'objet "Cube" tournera lorsqu'un objet coupera le rayon.

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

Voici le fichier final :

ray.blend (766 Kio)