Chargement en cours

Chargement de l'heure

Créer un escalator avec Blender

Pour : Blender
< Retour
Informations
Créé parpanierAvide
LicenceGNU FDL
Lu2152 fois

Description

Aujourd'hui nous allons voir comment élaborer un escalator, notamment pour l'utilisation dans un jeu en temps réel ;) C'est sûr qu'il faut en avoir besoin de l'escalator, on s'en sert pas tous les jours, mais si vous regardez ce tuto c'est que vous en avez besoin donc allez hop' c'est parti =D

Prérequis

Pour mener à bien ce tuto, il vous faut :
-Blender (ici j'utilises la version 2.49b, si vous êtes sur une version antérieure pensez à faire une mise à niveau, le Game engine est plus performant dans cette version. Si vous avez une version au dessus de celle-ci, c'est que ce tuto commence à se faire vieux ^^)
-Un peu de maîtrise de celui-ci, meme si les manipulations seront (très) détaillées c'est plus simple quand on s'y connait un peu déjà

[parag=C'est parti !]
Commencez par ouvrir Blender, vous voyez son interface apparaitre :
Image indisponible

Nous allons effacer la caméra et le cube (Nous gardons la lampe afin que l'escalator ne soit pas dans le noir complet lors des tests). Pour cela, sélectionnez le cube (clic-gauche de la souris sur le cube) puis la lampe (Appuyez sur la touche majuscule et cliquez gauche sur la lampe simultanément). Appuyez sur "X" pour les effacer.

Nous allons maintenant ajouter la "base" de l'escalator qui nous permettra d'avoir un repère pour le nombre de marches, la largeur... Appuyez sur la touche 7 (Dans la partie numérique du clavier) pour passer en vue de dessus, ajoutez un plan (Touche espace, puis "Add/Mesh/Plane"), puis passez en mode Edit (Touche tabulation). Déplacez les points du plan (Touche B puis souris pour sélectionner, Touche G pour déplacer) pour en faire un rectangle assez étendu, ce sera la future pente de l'escalator (ajustez donc à vos besoins, quitte à modifier par la suite).

Une fois la longueur et largeur de l'escalator determinée, passez en vue de coté (Touche 1 du clavier numérique), selectionnez tous les points (Touche A), puis faites tourner le plan (Touche R) de façon à ce qu'il fasse une pente d'environ 45° (une diagonale). Vous devez avoir quelque chose comme ceci :
Image indisponible

L'inclinaison de l'escalator est bien évidemment changeable, mais pour votre premier escalator une pente à 45° faciliteras le travail par la suite (notamment pour le déplacement des marches).

Maintenant que nous avons fait l'inclinaison, on va faire une petite "entrée" des étages (afin que l'on ne tombe pas dans le vide en haut de l'escalator, ceci n'est pas obligatoire ). Désélectionnez tous les points (Touche A), puis sélectionnez les points du haut (Touche B) puis "extrudez" un peu (Touche E, déplacez les points avec la souris). Vous devez avoir un nouveau plan à la suite du premier en haut. Faites de même pour les points du bas. Sortez du mode Edit (touche Tabulation).
La base de notre escalator doit ressembler à peu près à ça :
Image indisponible

Nous allons commencer à faire la première marche (juste la première, les autres viendront ensuite ).
Placez le curseur en bas de l'escalator (clic gauche) puis ajoutez un Cube (Espace puis Add/Mesh/Cube). Passez en mode Edit (Tab). Sélectionnez tous les points (A), puis redimmensionnez le cube (Touche S) de façon à ce qu'il ait une hauteur correcte (la taille de la marche est aussi déterminante que la taille de la base pour la taille générale de l'escalator, des petites marches donneront l'impression d'un escalator très long et large, des grandes marches un escalator étroit et court). Sélectionnez ensuite les points situés sous l'escalator, puis supprimez-les. En effet dans les jeux en temps-réel, moins on a de points, plus les performances sont améliorées. Etant donné que ces points sont inutiles, hop' on vire On va refaire les faces des côtés de la marche. Sélectionnez les trois points puis appuyez sur F. Faites en de même pour l'autre côté.

Une fois ceci fait, sortez du mode Edit et faites "Object/transform/Center New", puis déplacez la marche (touche G) juste en dessous du sol de l'étage inférieur (de façon à ce que le déroulement de l'escalator paraisse plus fluide.
Vous devez avoir pour l'instant ceci (la base et la marche) :
Image indisponible

Maintenant on va passer à la partie plus "Programmation" de l'escalator Nan ne partez pas vous allez voir c'est assez simple
En mode objet, sélectionnez la marche. Appuyez sur F4 pour passer dans la partie Game logic.
Mais avant, repèrons les emplacements des boutons du game logic pour que vous ne soyez pas perdu :
1) Panneaux des attributs physiques (Physical attributes en anglais)
2) Ajouter un "Sensor" (C'est à dire un déclencheur)
3) Ajouter un Controlleur
4) Ajouter un "Actuator" (Bloc qui définit l'action à effectuer par l'objet)
Image indisponible

Les parties "Sensors", "Controllers" et "Actuators" peuvent vous sembler obscures, mais leur fonctionnement est simple. C'est basé sur le système "Action : Réaction" (Oui comme dans les choristes ^^). Lorsque l'on appuie sur Add, on ajoute une "brique".
Dans les "Sensors", ces briques servent de déclencheurs, c'est à dire que si la condition inscrite dans la brique est remplie (par exemple, la colision avec un objet ayant une propriété "prop"), votre jeu effectuera les actions des "Actuators" (briques tout à droite) associées au Controller. Le sensor est relié à ce controlleur (qui permet de simplifier la liaison entre déclencheurs et actions) et les Actuators sont égalements reliés au controlleur. Les actuators sont eux les actions à effectuer lorsque c'est nécessaire, comme ici lorsque la marche atteindra le sommet de l'escalator, l'actuator "Constraint" lui dira de se positionner tout en bas.
La partie game logic étant plus compliquée que le reste, si vous avez besoin d'aide n'hésitez pas à posez vos questions sur le forum, j'y répondrait avec plaisir D'ailleurs vous pouvez aussi poser des questions pour le reste ^^
Revenons à notre marche Commencez par ajouter un sensor (Cliquez sur Add sous la partie sensor). Il nous faut le sensor "Always" (c'est celui ajouté par défaut, que l'on peut modifier si besoin ). Cliquez dans le bloc sur la case ''' (la case la plus à gauche) afin que la condition soit toujours vérifiée (et ici vu que c'est la condition always, qu'elle soit toujours valable).
Ajoutez un controller, le controller par défaut est le "AND" (c'est à dire que pour effectuer les actions, toutes les conditions qui y sont reliées doivent êtres vraies), reliez ensuite à l'aide de la souris le sensor always au controller.
Ajoutez un actuator, par défaut Motion (bloc qui fait bouger l'objet, la 1e ligne de chiffres correspond au mouvement, la 2e ligne à la rotation. La 1e colonne correspond au mouvement ou rotation sur l'axe X, 2e colonne sur Y et 3e sur Y). Reliez l'actuator au controller. Dans le bloc motion, changez la valeur du mouvement sur X en -0.01, puis la valeur de mouvement sur Z pour 0.01 (Ces valeurs correspondent pour un angle de 45° où le mouvement est en diagonale, si la pente est différente il faudra jouer sur la valeur de x ou z).

Si vous appuyez sur P (la touche qui sert à lancer un jeu, appuyez sur Echap pour en sortir), vous verrez la marche se déplacer le long de la base de l'escalator. Si elle s'enfonce ou s'élève de trop, modifiez les valeurs de x ou z comme indiqué si dessus.
Votre marche monte Mais elle ne reviens pas en bas une fois en haut C'est tout à fait normal, en effet personne ne lui dit de revenir à sa place d'origine. Nous allons lui dire, toujours dans le panneau game logic, mais cette fois-ci en utilisant également un objet qui nous servira de déclencheur de façon indirecte .

Placez le curseur (Clic gauche) en haut de l'escalator, puis ajoutez un plan (Espace puis Add/Mesh/Plane). Tournez-le (R) de façon à ce qu'il soit à la verticale. Réduisez-le (S) à un taille assez petite, mais pas trop quand même. Il faut avoir quelque chose équivalent à ceci :
Image indisponible

Notre déclencheur étant prêt, on retourne dans le game logic

Cliquez-droit sur le plan fraîchement créé, puis appuyez sur F4. Nous allons modifier ses attributs physiques (partie 1, voir image 5). Dans le menu déroulant, choisissez Dynamic (Dynamic permet qu'un objet soit soumis à la pesanteur, mais ici ce ne sera pas le cas), cochez Actor (intervient dans le game engine), ghost (ne subit pas les colisions) et invisible. Dans la case "Radius", indiquez 0.01. Pour Damp et Rotdamp, mettez la valeur 1 (Damp et rotdamp sont la résistance à l'air, ici la résistance étant au maximum, même si l'objet est en dynamic il ne bougera pas). Cochez également "Bounds" et dans le menu déroulant choisissez "Box" (C'est à dire que le game engine calculeras les colisions comme si l'objet était un cube ou un pavé). Pour finir avec le déclencheur, cliquez sur le bouton "Add Property", puis changez le nom de propriété "prop" par "stop" par exemple (qui est davantage explicite ).

Votre déclencheur doit avoir ces attributs physique ainsi :
Image indisponible

Maintenant que notre déclencheur est fini, revenons à la marche, qui vas bientôt revenir en bas de l'escalator
Cliquez-droit sur la marche, puis sur F4. Dans le game logic nous allons indiquer à la marche quand et comment faire pour revenir en bas de l'escalator. Ajoutez un sensor "Colision", dans ce bloc, cochez la case ''' tout à gauche, et dans la case Property indiquez "stop" (ou le nom que vous aviez choisis tout à l'heure). Ajouter un controller. Reliez le sensor collision au 2e controller (celui que vous venez d'ajouter) avec la souris. Ajouter ensuite un Actuator "Constraint". Reliez-le au 2e controller.

Avant, nous avons besoin des coordonées de la première marche, pour savoir où elle devra revenir. Sélectionnez la marche puis appuyez sur la touche N. Vous verrez un petit panneau apparaître :
Image indisponible

Notez les valeur de Loc X, Loc Y et Loc Z quelque part. Revenons à notre bloc constraint : Indiquez dans le menu déroulant en bas à gauche "Loc X", puis dans Min et Max indiquez la valeur de Loc X que vous venez de noter. Ajouter un autre actuator constraint, reliez-le au 2e controller, indiquez Loc Y et sa valeur dans Min et Max.
Renouvellez la manoeuvre pour Loc Z. Vérfiez que les valeurs que vous avez notés pour ces 3 blocs sont bien restées, car des fois les valeurs s'effacent (c'est un petit bug de Blender, personne n'est parfait ). Voilà, votre marche sait normalement qu'elle doit revenir en bas de l'escalator. Pour vous assurer que tout marche bien, appuyez sur P. La marche va monter, puis arrivé au niveau du déclencheur, elle reviendra en bas à sa place. Si elle ne s'arrete pas, vérifiez que votre panneau game logic de la marche correspond à ceci :
Image indisponible

Notre marche est fonctionelle, nous allons la dupliquer en plusieurs exemplaires. Pour plus de précision, nous n'allons pas la copier directement (via Maj+D), mais en utilisant un "Modifier Array". Appuyez sur F9 pour passer dans le panneau edit. Tout à droite, vous avez un onglet "modifiers". Cliquez sur "Add modifiers" puis choisissez "Array". Ce modifier va dupliquer la marche en un certain nombre d'exemplaires, selon les besoins de l'escalator.
Mais avant de choisir un nombre, on va dire au modifier où doit il placer les nouvelles marches par rapport à la première, c'est le "relative offset". Ici nous devons mettre sous relative offset comme valeur pour x -1, pour y 0 et pour z +1. Bien sûr adaptez ces valeurs à votre escalator. Ensuite, changez la valeur de "Count" (Nombre de duplication) pour une valeur où votre escalator sera recouvert de marches. Vous devez avoir quelque chose semblable à ceci :
[img]fichiers/contenus/tb1_10.jpg[/img]

Pour appliquer ces modifications, cliquez sur "Apply". Si vous appuyez sur P, vos marches ne bougeront pas car elles sont "fixées" entre elles. Nous allons les désouder Cliquez-droit sur les marches, puis passez en mode Edit (Tab). Sélectionnez toutes les marches puis appuyez sur P, puis dans le petit menu, choisissez "All loose part". Vos marches sont maintenant toutes des objets différents.
Sortez du mode Edit, puis séléctionnez toutes les marches (En restant appuyé sur la touche majuscule et en cliquant droit sur chaque marche). Une fois les marches sélectionnées, cliquez sur Object/Transform/Center New. Ceci fera que le centre de gravité de chaque marche sera bien placé, au lieu d'être à l'endroit de la marche de base. Pour finir, sélectionnez la marche tout en haut de l'escalator (clic droit), puis supprimez tout les blocs dans le panneau Game Logic (F4), puis passez là en "Ghost" dans les attributs physiques. Ceci permettra d'améliorer légèrement l'arrivée de l'escalator, mais bien sûr il y a moyen de faire quelque chose de plus propre
Si vous lancez le jeu, votre escalator fonctionnera Vous pouvez désormais vous en servir pour vos jeux, le rendre un peu plus beau, etc...

J'avais par exemple fait y a un petit bout de temps ceci, un escalator assez réussi je trouve (téléchargeable ci-dessous), avec le Ragdoll qui va bien ^^ :
[img]fichiers/contenus/tb1_12.jpg[/img]

[url=fichiers/contenus/escalator.zip]Fichier blender fini du tutoriel[/url]
[url=fichiers/contenus/escalator2.zip]Fichier blender d'exemple (Ragdoll inside )[/url]
[/parag]
[parag=Conclusion]
Voilà, vous avez appris à faire un escalator simple. Maintenant que vous avez la technique, vous pouvez aller plus loin en faisant un escalator qui descend, voir même un escalator réversible
[/parag]

Besoin d'aide ?

Une question ? Quelque chose qui n'est pas clair ? Si vous avez besoin d'aide, vous pouvez soit contacter l'auteur du tutoriel via la messagerie privé (vous devez être connecté), soit envoyer un message sur le forum.