Porte automatique dans le GE

Document sans nom


Créer une porte automatique pour Game Blender Engine



Introduction

Ce tutoriel va vous expliquer comment créer très facilement, et sans script python, une porte qui s'ouvre à votre approche, un peu comme celles que vous pouvez rencontrer en allant dans votre supermarché préféré. Le procédé, simplissime, va même vous permettre de concevoir de nouvelles manières d'interagir avec vos objets dans le moteur de jeux de Blender...

Étape 1 : Notre décors

La première étape sera, logiquement, de créer notre décor. Pour notre exemple, nous allons partir d'un couloir au milieu duquel s’élèveront un mur et notre porte automatique. Je vous passe les détails de la construction d'un tel décor, aussi simpliste soit-il, car il existe moult tutoriaux pour le faire très rapidement et, de plus, pour les fainéants, je joindrais ci-après un fichier .blend tout prêt à utiliser.

Partons du principe que notre couloir ressemble à ça :



Étape 2 : Notre personnage

Nous allons créer un petit personnage qui va se déplacer dans notre scène et qui nous permettra de vérifier l'ouverture automatique de la porte à son approche.

Commençons par créer un petit bloc qui nous servira de personnage. Veillez donc que ce dernier soit proportionnel au gabarit global de votre décor...



Ensuite, nous allons définir des actions à ce cube afin de pouvoir le déplacer comme s'il était un personnage à part entière. Pour ce faire, commencez par vous rendre dans le sous-contexte "Logic".



Ensuite, nous allons le définir comme étant un objet physique de notre scène. Cliquez sur le boutron "Actor" et "Dynamic". L'option "Actor" permet de dire que notre personnage aura une utilité dans la scène et l'option "Dynamic" indique qu'il sera soumis aux lois de la physique. Je passe sur les détails de cette option car d'autres tutoriaux subsistent là dessus. Je vous invite d'ailleurs à les lire afin d'en apprendre plus sur le sujet. Ne vous souciez pas des autres boutons, nous n'en aurons pas besoin pour notre exemple.



A présent, il va falloir paramétrer ce que l'on appelle des "Brick Logic". Ces briques vont servir de commandes pour attribuer des actions à notre objet. En l'occurrence, ils vont nous servir à définir les touches du clavier qui vont permettre de déplacer notre personnage dans un sens ou dans un autre.

Vous remarquerez sur la droite trois blocs nommés : "Sensors", "Controllers" et "Actuators". Ces trois blocs vont nous permettre de gérer les actions dans ce sens : "SI j'appuis sur la touche « Flèche avant », ALORS, il se passera CETTE ACTION".

Je me permets de vous présenterz cela sous forme de conditions pour que ce soit plus clair.
Le "Sensors" va définir la condition, le "Controllers" va lui définir la façon dont cette condition sera interprétée et, enfin, le "Actuators" va définir l'action qui se passera quand la condition sera remplie.

Commencez par cliquez sur le bouton "ADD" du "Sensors".



Ouvrez la liste déroulante et choisissez "Keyboard" ce qui signifie que la condition fera appel au clavier. Cliquez dans la zone "Key" et tapez sur une touche de votre clavier. Dans notre exemple se sera la "Flèche du haut".

Ensuite, cliquez sur le bouton "ADD" du "Controllers" et laissez "AND" par défaut.

Cliquez enfin sur le bouton "ADD" du "Actuators" et laissez "MOTION" par défaut.

Bien. Nous venons de préparer le terrain pour paramétrer une première touche de déplacement de notre personnage. Cependant, ce que nous venons de faire n'a aucun sens si on ne relie pas ces informations entre elles. En effet, pour que les différents blocs communiquent entre eux, il faut les relier via les petites pastilles jaunes à droite des blocs. Tirez un lien jusqu'au bloc de droite et ainsi de suite.



Voilà, maintenant notre suite logique va fonctionner mais il faut encore terminer notre paramétrage. Rendez-vous dans la partie "Actuators" et observez bien le tableau qui s'y trouve. Vous remarquerez qu'il y a toute une série d'options et de chiffres à zéro. En faîte, nous allons définir ici ce qui va se passer quant on appuiera sur la touche "Flèche du haut". Dans notre logique nous allons dire que la flèche du haut va faire avancer notre personnage. Nous allons nous intéresser dans notre exemple à la ligne "DLoc" qui permet le déplacement suivant les axes X,Y ou Z. Pour faire avancer notre personnage il va donc falloir renseigner l'axe Y. Mettez lui comme valeur 0.10.



Voilà, si vous testez votre scène en appuyant sur la touche "P" (ECHAP pour sortir), vous remarquerez que votre personnage avance quand vous appuyez sur la flèche du haut. A présent il faut faire la même chose pour les trois autres positions.



Pour aller plus loin, vous pouvez rajouter à votre personnage une vision à 360° grâce à un petit script python qui permet de donner un effet genre FPS ("Half-Life" par exemple). Vous pourrez trouver ce script en cliquant sur le lien suivant mais je vous invite à chercher un tutoriel sur internet pour apprendre à vous en servir correctement.
- Script python : CLIQUEZ ICI

Étape 3 : Création de la porte

Maintenant que nous avons notre personnage et notre décor, nous allons réaliser notre porte. Je ne vais pas vous expliquer comment faire, c'est un exercice simplissime mais je vais vous aider à la paramétrer correctement.

NOTE : Pensez à nommer cet objet afin de vous faciliter la tâche un peu plus tard. Appelez cet objet... "Porte".

Pour créer notre effet d'ouverture automatique, nous allons assigner à notre objet une petite animation qui sera appelée quand notre personnage s'en approchera. Pour cela, nous allons devoir faire appel aux courbes IPO.



Concrètement, les courbes IPO permettent de créer un mouvement dans le temps à l'aide d'images clés. Les utilisateurs de Flash connaissent ce système d'interpolation de mouvement qui est employé ici. Très simplement, nous allons assigner deux images clés à notre porte. La première à son état d'origine et la seconde dans sa position ouverte. Entre ces deux images clés, une courbe IPO sera créé (interpolation de mouvement) et donnera l'illusion du mouvement.

Pour commencer, ouvrez le panneau IPO en divisant votre scène en deux.



C'est dans ce panneau que va se définir notre courbe. A présent, revenez sur le panneau de notre scène et, si ce n'est pas déjà fait, sélectionnez notre porte en mode Objet. Tapez sur la touche "I" de votre clavier afin de faire,apparaître une petite fenêtre volante et sélectionnez "Loc".



Cette fenêtre, qui se nomme "Insert Key" a pour objectif de nous permettre de choisir un type d'image clé. L'option "Loc", quand à elle, récupère la position X,Y et Z de l'objet sélectionné.
Bien, à présent que nous avons notre première image clé, retournez dans le panneau des courbes IPO et observez le changement apparent. Vous remarquerez que trois lignes existent à présent, chacune d'une couleur bien distincte. Vous remarquerez également que dans la liste à droite, trois coordonnées possèdent également une couleur... Vous l'aurez
compris, il s'agit de nos trois coordonnées récupérées grâce à l'option "Loc", X,Y et Z.



Pour notre exemple, nous n'avons pas besoin de garder ces trois coordonnées et c'est pourquoi nous allons en supprimer deux. Notre porte ne devant effectuer qu'un mouvement horizontal, nous n'allons garder que la coordonnée X. En vous aidant de la légende à droite, sélectionnez les deux coordonnées superflues et faîte la touche "X" pour les supprimer. Il ne doit vous rester que la coordonnée X symbolisée par une ligne rouge.



Bien, nous avons donc définit notre première position. Nous allons donc nous occuper de la seconde mais avant cela, il va nous falloir nous intéresser à un autre paramètre, le temps !
En effet, nous venons de définir que notre porte avait, à cet instant précis, une position déterminée. Que se passe-t-il si je donne une autre position tout de suite? Et bien rien car vous ne pouvez pas superposer deux positions dans le même temps... Regardez en bas de la scène, vous allez trouver un petit cadre avec un chiffre entouré de deux flèches : il s'agit de notre position dans le temps.



Ce temps est représenté par des "frames" ou si vous préférez, des "Images Par Secondes".
Vous devez sans doute savoir que la plupart des animations, films ou dessins animés, sont en 25 Images Par Secondes car c'est la fréquence qui permet à l'œil humain de ne pas remarquer le défilement des images. Une vidéo sera fluide si elle respecte cette fréquence. D'autres supports, comme par exemple les animations de type Flash sur internet; sont de 12 Images Par Secondes car il existe une contrainte évidente de poids que nous n'avons pas avec les autres types de vidéos traditionnelles...

Revenons à notre scène et à notre panneau de frames. Par défaut, vous devriez vous trouvez sur la frame 1. A présent réfléchissez au temps que vous voulez que prenne votre porte pour s’ouvrir. Si cette dernière doit s'ouvrir en une seconde, vous devrez poser votre nouvelle position à la frame 25 (25 Images Par Secondes, vous vous souvenez?). Si elle doit s'ouvrir en deux secondes, se sera à la frame 50 et ainsi de suite...

Pour ma part j'ai choisi de me positionner à la frame 60 qui me paraît être un bon compromis pour notre exemple. Cliquez donc dans la petite fenêtre et changez le nombre jusqu'à 60. Voilà, nous sommes transportez 2 seconde 10 plus tard et nous sommes fin prêt à définir la position ouverte de notre porte.



Maintenant que nous avons avancé dans le temps, il va falloir bouger notre porte. Sélectionnez la et déplacer sur l'axe X grâce à la combinaison de touches "G" (pour le déplacement) et "X" (pour forcer à suivre l'axe X) jusqu’à ce qu'elle atteigne la position que vous voulez qu'elle prenne une fois ouverte.



A présent, et comme la première fois, nous allons définir une nouvelle image clé pour sauvegarde notre position sur la courbe IPO : Touche "I" et choisissez l'option "Loc".

Regardez à présent dans le panneau des courbes IPO. Vous remarquerez que la courbe à prit une nouvelle forme qui symbolise le mouvement de la porte dans le temps, entre la frame 1 et 60. Vous pouvez vérifier votre animation en déplaçant la ligne de temps (la verte verticale verte) ou en appuyant sur la combinaison de touche : "ALT+A" (la ligne de temps verte doit se trouver sur la frame 1 pour fonctionner) et "ECHAP" pour arrêter l'animation.

Vous remarquerez également que, comme la première fois, l'option "Loc" à sauvegardée les trois coordonnées X, Y et Z. Vous pouvez supprimer la Y et Z en les sélectionnant et en appuyant sur la touche "X". Voilà à présent notre courbe IPO et notre animation terminée.



Vous devez probablement vous demander pourquoi nous ne définissons pas une animation de "retour" de la porte. La raison vous sera expliquée un peu plus tard mais ne vous inquiétez pas, la porte se refermera...

Étape 4 : Un peu de "Logic"


Nous allons maintenant nous attaquer à la partie la plus délicate de ce tutoriel à savoir les actions elles-mêmes. Cette nouvelle partie va vous apprendre à utiliser autrement les Briques logique comme nous l'avons fait pour les actions de notre personnage.

Il existe probablement plusieurs méthode pour réaliser ce que nous allons faire mais j'ai passez des jours à chercher la meilleure : plus simple et à mon sens plus efficace. Là ou d'autres auraient créez tout un tissage de logiques entre différentes propriétés, moi j'ai choisi de n'utiliser qu'un bloc de déclenchement...

Vous allez comprendre !

Pour déclencher notre porte, nous allons créer un bloc qui servira de zone de déclenchement.
Je m'explique : quand vous passez devant les portes automatiques de votre supermarché préféré, vous avez sans doute remarqué que celles-ci se déclenchées quand vous vous trouviez à une certaine distance. Si elle ne se déclenche qu'à une certaine distance justement c'est parce qu'elles sont reliées à des capteurs qui peuvent "voir" jusqu'à une certaine distance. Au delà de celle-ci, ils ne vous voient pas et donc n'enclenchent pas l'ouverture des portes.

Ici c'est pareil, on va se servir d'un bloque qui permettre de définir une zone dans laquelle les portes vous "verront" et donc se déclencheront.

Vous allez don créer un bloque sur votre scène qui va englober votre porte du sol au plafond et prendre toute la largeur du couloir. Je vous laisse le soin de définir la longueur de cette "zone de déclenchement" mais veillez à ce qu'elle soit égale de part et d'autre de la porte (vous devez pouvoir ouvrir la porte de chaque côté de celle-ci).

NOTE : Pensez à nommer cet objet afin de vous faciliter la tâche un peu plus tard. Appelez cet objet... "Déclencheur".



Ceci sera donc la zone de déclenchement. A présent nous allons devoir régler un certain nombre de points. Premièrement, il va falloir définir ce bloque comme transparent sinon il sera visible et vous taperez dedans comme dans un mur... Pour ce faire, nous allons de nouveau nous intéressez au sous-contexte "Logic". Comme pour notre personnage, nous allons définir notre bloque comme étant un "Actor" de notre scène sauf que, cette fois-ci, il va également être un "Ghost". Cette nouvelle option va nous permettre de le rendre fantomatique et donc de passer à travers.



A présent nous allons nous intéresser à ces actions. Vous vous rappelez sans doute des "Sensors", "Controllers" et "Actuators" que nous avons vu lors du paramétrage de notre personnage? J'espère que oui car nous allons les utiliser de nouveau...

Nous allons commencer par régler un second point important. Nous avons vu que notre zone de déclenchement était à présent "traversable" par notre personnage mais malheureusement, il est toujours visible. Pour y remédier, nous allons faire ceci : "Sensors : Always > Controllers : AND > Actuators : Visibility (Invisible)".



Ce que nous venons de réaliser est très simple. Le "Sensors : Always permet de dire que l'action que nous allons définir ce déroulera tout au long de l'animation. Le "Controllers : AND" définit la condition de cette action et, enfin, le "Actuators : Visibility (Invisible)" permet de dire que l'action sera d'être invisible.

Vous pouvez dors et déjà vérifier que votre zone de déclenchement est invisible en testant votre animation grâce à la touche "P" (ECHAP pour sortir).

Bien. A présent, le final, nous allons dire à notre bloque d'ouvrir la porte quand le personnage entrera dans la zone. Pour ce faire, vous allez sélectionner sur la scène nos deux objets, la zone de déclenchement et la porte.



En regardant de nouveau dans le sous-contexte "Logic", vous remarquerez que les bloques des deux objets sont apparent. Heureusement car c'est grâce à cela que nous allons pouvoir les lier ensemble. La prochaine étape sera très simple car nous allons dire que : SI quelque chose entre dans la zone, ALORS, je déclenche l'animation de la porte.

Je ne vous cache pas que d'interagir entre plusieurs objets demande une certaine logique et une certaine réflexion qui peut s'avérer longue et fastidieuse si on se retrouve avec une dizaine d'objets. Pour notre exemple cema restera relativement simple.

Vous remarquerez que les bloques portent les noms de vos objets (si vous avez suivis mes conseils en renommer vos objets, vous apprécierez la facilité pour vous y retrouver).

Faîte ceci pour les bloques du Déclencheur : "Sensors : Collision > Controllers : AND".
Et enfin, faîte cela pour la porte : "Actuators : IPO (Flipper)".

Vous remarquerez que vous avez liés les objets "Declencheur" et "Porte" grâce aux blocs logiques. Il me reste à vous expliquer l'action que nous venons de définir à notre porte.
L'action "IPO" permet de déclencher notre petite animation d'ouverture de la porte. L'option "Flipper" permet quant à elle de dire que quand la condition n'est plus remplie, l'IPO sera lue en sens inverse... Magique non?



Comme je vous le disiez tout à l'heure, cette option nous permet de ne pas créer d'animation de fermeture de la porte. Cela nous simplifie le travail et allège notre animation au final...

A présent vous pouvez tester votre animation avec la touche "P" (ECHAP pour sortir). Vous remarquerez que quand votre joueur entre dans la zone invisible, la porte s'ouvre et qu'elle se referme aussitôt que vous la quittez grâce à l'option "Flipper".

Conclusion


Et voilà, ce tutoriel touche à sa fin. Cependant je vous invite à complexifier cette animation en créant, par exemple, une seconde, chacune s'ouvrant de son côté ou bien en déclenchant des sons... A partir de maintenant, tout est imaginable grâce aux briques logique, il vous suffit de bien penser à l'avance ce que vous voulez faire et de bien définir vos actions pour que ce soit le plus simple et le plus clair possible.

Voilà, j'espère avoir pu vous être utile et vous remercie d'avoir lu ce tutoriel.
Vous pourrez trouver d'autres tutoriels sur http://www.laforgegraphique.com

Fichier Blender sans l'animation : CLIQUEZ ICI
Fichier Blender finale : CLIQUEZ ICI

Tutoriel rédigé pour le Blender Clan par Kenru, 08-08-08


    


Les commentaires appartiennent à leurs auteurs. Nous ne sommes pas responsables de leur contenu.
Auteur Conversation
timeman13
Fou Furieux du Clan


Inscrit le: 27/4/2011
De: la 604ème dimension.
Envois: 275
 Re: Porte automatique dans le GE 10/7/2011 18:51  Mis à jour: 10/7/2011 18:51

Pratique ce tutoriel!
CA m'a permis d'anticiper le game engine!

 

Sujets récemment répondus
Forums Sujets Réponses Lus Dernières contributions
Questions & Réponses [non résolu] Blender et OBJ 0 9 Aujourd'hui 11:09:31
stigmamax 
Mes premières images sous Blender (débutants) 2.80 ---> 3.00 ? 2 67 Hier 15:27:50
HarDrive 
The Blender Clan 'tchat Buy (50 Pieces) New Samsung Galaxy Z Flip4 128GB Unlocked $17,450 0 63 26/01 07:44:35
emailychang01 
The Blender Clan 'tchat Buy (30 Pcs) New Mac mini M2 (2023) 256GB SSD $8,970: www.cutebitelectronics.com 0 32 25/01 11:02:28
emailychang01 
The Blender Clan 'tchat Buy (50 Pcs) New iMac M1 24-inch (2021) 512GB SSD $44,950 Website: www.cutebitelectronics.com 0 46 24/01 09:21:49
emailychang01 
The Blender Clan 'tchat Buy (50 Pcs) Macbook Air M2 13.6-inch 512GB SSD $54,950 Website: www.cutebitelectronics.com 0 68 23/01 09:20:38
emailychang01 
Questions & Réponses circuit avec dévers 3 97 22/01 18:42:26
moonboots 
The Blender Clan 'tchat Buy (50 Pcs) MacBook Pro M2 14-inch 512GB SSD $79,950 0 59 21/01 10:19:51
emailychang01 
The Blender Clan 'tchat Buy (50 Pieces) New Apple iPad Air 10.9-inch (2022) 256GB Wi-Fi + Cellular $24,950 0 91 20/01 08:43:41
emailychang01 
The Blender Clan 'tchat Buy (50 Pcs) New Mac mini M2 (2023) 256GB SSD $9,950 Website: www.cutebitelectronics.com 0 90 19/01 08:19:28
emailychang01 
The Blender Clan 'tchat Buy (50 Pieces ) New Apple iPad Mini 8.3-inch (2021) 256GB Wi-Fi + Cellular $22,450 0 66 18/01 08:46:54
emailychang01 
Hors Sujet !! Victime de piratage 0 122 18/01 00:01:38
Lylo 
The Blender Clan 'tchat Buy (50 Pieces) New Apple iPad Pro 12.9-Inches 2021 1TB Wifi + Cellular $69,950 0 83 17/01 09:54:03
emailychang01 
The Blender Clan 'tchat Buy (50 Pieces) New Apple iPad Pro 11-Inches 2021 2TB Wifi + Cellular $79,950 0 86 14/01 19:23:01
emailychang01 
Questions & Réponses [non résolu] Material preview et résolution 0 78 13/01 10:13:25
zeromeetsinfinity 
The Blender Clan 'tchat Buy (50 Pieces) New Original Unlocked Apple iPhone 13 Pro Max 5G 1TB $54,950 0 82 12/01 09:21:35
emailychang01 
Hors Sujet !! Verifpro.net - paypal, ebay, banks, crypto, docs and more! 0 62 11/01 18:57:13
julien_costa 
The Blender Clan 'tchat Buy (50 Pieces) New Original Unlocked Apple iPhone 12 Pro 5G 512GB $24,950 0 87 11/01 07:45:50
emailychang01 
Questions & Réponses [non résolu] Soucis de pivots et rotations à l'import dans un fichier fbx avec parents/enfants 0 3917 10/01 16:32:57
Brice_Willus 
The Blender Clan 'tchat Buy (30 Pieces) New Meta - Quest Pro Virtual Reality Headset - 256GB $29,970 0 83 10/01 10:34:12
emailychang01 

Qui est en ligne
237 utilisateur(s) en ligne (dont 1 sur Tutoriels)

Membre(s): 0
Invité(s): 237


plus...
Nouveaux membres
MathiasFul 18/8/2022
VicenteZcl 18/8/2022
OlivaL1007 18/8/2022
Adrian8943 18/8/2022
NorbertoGe 18/8/2022
VeronaKais 18/8/2022
BettieSile 18/8/2022
DarylTier 18/8/2022
BretParkhi 18/8/2022
LeoTrotter 18/8/2022
Dernier Ajout
2020-09-24.jpg

Evènements à venir
Fev 15
Anniversaire de Dany
Fev 23
anniversaire de windspirit
Mar 14
Anniversaire de AMV12
plus 229 plus d'élément(s)
 Par Mickaël Guédon [ebrain] © 2003-2021 The Blender Clan - hébergé par TuxFamily - Site déclaré à la CNIL sous le numéro 1155445