[TUTO] Ascenseur sur plusieurs étages

Ce forum regroupe tous les tutoriaux réalisés par des membres de Mapping-Area pour Half-Life 2.

Modérateurs: Co-Admin, Modérateur, Staff

[TUTO] Ascenseur sur plusieurs étages

Messagede Hackrow le 24 Jan 2005, 13:39

Un dilemne se pose lorsque nous désirons faire un ascenseur sur plusieurs niveaux. Voilà, grâce à l'aide d'un illustre inconnu qui nous a fournis un .vmf avec l'intégralité de ce que je vais vous expliquer ici : comment faire un ascenseur. Ce tutorial, bien qu'écris par moi, n'est pas de ma création, je me suis inspiré d'un fichier vmf que m'a fournis Sh4rk sur son site http://sh4rk93.free.fr
Je remercie donc l'auteur de ce vmf très complet et très clair. Si par ailleurs il est disponible je serais heureux de faire sa connaissance (contacte moi par msn).


Tout d'abord commencer par modéliser votre ascenseur que vous mettez en func_tracktrain et que vous nommerez comme vous le désirez.

Vous devez créer ensuite les boutons à chaque étage, là ou vous désirez que votre ascenseur s'arrête. Chacun de ces boutons doivent être une entité func_button que vous régler de façon suivante :

Name : donnez le nom de votre bouton de porte
Delay before reset : mettez entre 3 à 5 secondes sinon votre bouton ne reviendra pas à sa position initiale.
Dans les flags cochez : Don't move et Use activate.

Une fois fait vous devez aussi créer les boutons à l'intérieur de votre ascenseur. commencer par modéliser votre panneau de bouton puis vos boutons, passez ensuite chaque bouton en entité func_button et régler les comme suit :

Name : nom de votre bouton (étage) dans l'ascenseur
Parent : mettez ici le nom de votre ascenseur
Delay before reset : mettez un chiffre de 3 à 5

Créer ensuite autant d'entité path_track que vous avez d'étage. Le sommet de chaque path_track doit être à la même hauteur que le sol de vos étage sinon l'ascenseur s'élèvera au dessus de votre étage créant par la même occasion une marche parfois impossible à franchir. Chaque path_track doit être configuré comme suit :

Name : nommez vos path_track par rapport à vos étages (track01 pour l'étage 1, etc.)
Next stop target : mettez pour chaque path_track le nom du path_track de l'étage supérieur et celui du 1er étage sur le dernier
Orientation type : sélectionner Face direction of motion

Créer enfin les portes coulissantes pour chaque étage (qui ne sont pas reliées à l'ascenseur) et nommez les selon vos étages.


Nous allons maintenant en venir à la partie la plus longue. Vous allez devoir créer tout un tas d'entités qui vous permettrons de gérer votre ascenseur, vos portes et vos boutons. Tout d'abord vous allez commencer par créer une entité logic_compare devant chacune de vos portes, celà afin de gérer l'ouverture des portes selon que l'ascenseur s'arrête à un étage ou pas. Configurez les logic_compare de la manière suivante :

Name : donnez un nom en conséquence de votre étage (doorlogic01 pour l'étage 1, etc)
Initial value : 1
Compare value : 1

Dans les Outputs vous allez ajouter des commandes comme suit :

Output named : OnEqualTo
Target : le nom de votre porte. si vous avez fait 2 portes pensez bien à faire un output pour chaque porte
Via : Open


Créer ensuite pour chaque étage une entité logic_relay que vous configurez de la manière suivante :

Name : nom de votre relay (doorbuttonrelay01 pour l'étage, etc.)

Dans les outputs de chaque logic_relay vous allez ajouter ceci :

Output named : OnTrigger
Target : logic
Via : SetCompareValue
Parameter : X (l'étage de votre relay)

Output named : OnTrigger
Target : EnableInput
Via : SetValueSet

Output named : OnTrigger
Target : logic
Via : Compare
Delay : 0.01

Toujours pour chaque étage, à côté des logic_relay vous allez créer une nouvelle entité logic_branch que vous configurez comme suit :

Name : nommez en fonction des étages (doorbuttonlogic01 pour l'étage 1, etc.)

Dans chaque logic_branch vous allez rajouter les outputs suivants :

Output named : OnFalse
Target : doorbuttonlogicX (ou X est égal à votre étage supérieur, 2 pour l'étage 1, 3 pour l'étage 2, etc. sauf pour le dernier étage que nous verrons plus loin)
Via : Test

Output named : OnTrue
Target : doorbuttonrelayX (ou X est égal à l'étage de votre entité, 1 pour l'étage 1, etc.)
Via : Trigger

Output named : OnTrue
Target : doorbuttonlogicX (ou X est égal à votre étage supérieur, 2 pour l'étage 1, 3 pour l'étage 2, etc. sauf pour le dernier étage que nous verrons plus loin)
Via : Test
Delay : 0.05

Pour le dernier étage vous devez configurer votre logic_branch comme suit :

Output named : OnTrue
Target : doorbuttonrelayX (X étant le dernier étage)
Via : Trigger


Nous allons maintenant nous occuper des boutons et autres concernant la plateforme de l'ascenseur. Vous devez déjà avoir votre panneau de bouton accroché à votre ascenseur avec dessus autant de boutons que d'étage (voyez plus haut pour la configuration de ces boutons). Vous allez créer une entité logic_relay et une entité logic_branch pour chacun de vos boutons que vous configurez comme suit :

pour les logic_relay

Name : nommez le (elevatorbuttonrelay01 pour l'étage 1, etc.)

outputs des logic_relay

Output named : OnTrigger
Target : logic
Via : SetCompareValue
Parameter : 1

Output named : OnTrigger
Target : EnableInput
Via : SetValueTest
Delay : 0.01

Output named : OnTrigger
Target : logic
Via : Compare
Delay : 1.00

pour les logic_branch

suivez le même procédé que pour les logic_branch de chaque étage en faisant bien attention pour le dernier étage qui est un peu différent).


Créez maintenant un logic_compare à côté des autres logic_XXX de votre ascenseur que vous configurerez comme suit :

Name : logic
Initial value : 1
Compare Value : 1

Outputs :

Output named : OnEqualTo
Target : ascenseur (le nom de votre ascenseur)
Via : Stop

Output named : OnEqualTo
Target : doorlogic01 (le nom de votre logic_compare des portes de l'étage 1)
Via : Compare
Delay : 0.50

Output named : OnEqualTo
Target : doorlogic02 (le nom de votre logic_compare des portes de l'étage 2)
Via : Compare
Delay : 0.50

Output named : OnEqualTo
Target : doorlogic03 (le nom de votre logic_compare des portes de l'étage 3 continuez insi pour chaque étage si vous nen avez plus de 3)
Via : Compare
Delay : 0.50

Output named : OnGreaterThan
Target : ascenseur (le nom de votre ascenseur)
Via : StartBackward

Output named : OnLessThan
Target : ascenseur (le nom de votre ascenseur)
Via : StartForward


Passons enfin à la dernière entité. Créez une entité logic_branch que vous placerez proche des dernières que vous venez de créer et que vous configurerez comme suit :

Name : enableInput
Initial value : 1

Outputs :

Output named : OnFalse
Target : elevatorbuttonrelay01
Via : Disable

Ajoutez en autant de fois que d'étage à votre bâtiment en faisant attention à bien nommez vos cibles selon les étages

Output named : OnTrue
Target : elevatorbuttonrelay01
Via : Disable

Ajoutez en autant de fois que d'étage à votre bâtiment en faisant attention à bien nommez vos cibles selon les étages

Output named : OnFalse
Target : doorbuttonrelay01
Via : Disable

Ajoutez en autant de fois que d'étage à votre bâtiment en faisant attention à bien nommez vos cibles selon les étages

Output named : OnTrue
Target : doorbuttonrelay01
Via : Disable

Ajoutez en autant de fois que d'étage à votre bâtiment en faisant attention à bien nommez vos cibles selon les étages

Voilà dans la logique des choses vous devriez réussir à avoir un ascenseur qui monte sur plusieurs étage et surtout qui s'arrête à l'étage désiré par la simple pression sur un bouton. Les portes de chaque étage doivent s'ouvrir selon que l'ascenseur s'arrête ou pas devant elles.

Un tutorial qui n'est pas simple à mettre en oeuvre mais qui permettra à tous d'avoir autrechose que ces satané plateforme sur 2 étages :). Merci encore à Sh4rk pour m'avoir trouvé LA seule personne qui se soit intéressé aux ascenseur (je ne connais malheureusement pas son pseudo mais je le remercie du fond du coeur :D :D :D

Je reste à votre disposition pour d'éventuelles questions d'ordres techniques ;)

Hackrow
tdlboss@hotmail.com
Hackrow
Mapophobe
 
Messages: 18
Inscription: 19 Jan 2005, 13:52

Messagede Dawa le 24 Jan 2005, 15:19

Sympa, mais si tu peux l'aggrémenter de quelques captures d'écrans, c'est toujours mieux :)
Ca sert à fixer les idées.
Avatar de l’utilisateur
Dawa
Concepteur
 
Messages: 526
Inscription: 13 Déc 2004, 23:17

Messagede Gectou4 le 24 Jan 2005, 15:22

enfin du monde pour nous succéder :P

:hiver j'vai bientôt pouvoir partir au sky alors ?

:gg super tuto par contre si tu veux un ftp demande à tarkiss ;)

:read sisi tarkiss c ton devoir c marquer là en tout petit :D
Image
Image
Avatar de l’utilisateur
Gectou4
Administrateur
Administrateur
 
Messages: 3599
Inscription: 01 Jan 1970, 03:00
Localisation: Partout ^^

Messagede Hackrow le 24 Jan 2005, 16:17

merci :) je vais bientôt refaire le tutorial plus complet et mieux expliqué avec des screens pour donner l'exemple visuel. J'ai appris que le créateur du vmf que Sh4rk m'a filé est en fait anglais, aussi je vais en refaire un que je joindrais avec ce nouveau tuto.

J'espère que ça sera utile.
Hackrow
Mapophobe
 
Messages: 18
Inscription: 19 Jan 2005, 13:52

Messagede Dawa le 24 Jan 2005, 16:17

:gg
Avatar de l’utilisateur
Dawa
Concepteur
 
Messages: 526
Inscription: 13 Déc 2004, 23:17

Messagede cerruti le 25 Jan 2005, 15:07

Sur une map de type CS source, lorsque le joueur est dans l'ascenseur celui-ci monte ou descent de manière sacadée ! Alors que lorsque l'ascenseur est il se déplace normalement ? Idem pour les caisses (physicbox) même au mini de leur masse elle bouge a peine. Moteur physique bridé pour CS source ?
cerruti
Mapophobe
 
Messages: 24
Inscription: 19 Jan 2005, 01:21

Messagede NykO18 le 25 Jan 2005, 21:22

Je serais tenté de dire que c'est à cause du lag. Le joueur ou le serveur (je ne sais pas) déplace l'ascenceur, mais le temps que l'autre réagisse, tes pieds ne sont plus au niveau du sol de l'ascenceur, et ainsi de suite.. C'est poru ca que dans *presque* tous les jeux en réseau, les ascenceurs, véhicules, et autres trucs qui se déplacent paraissent saccadés (enfin je crois :D)
Avatar de l’utilisateur
NykO18
VIP
VIP
 
Messages: 8253
Inscription: 19 Jan 2005, 22:16
Localisation: Cergy, France

Messagede Hackrow le 01 Fév 2005, 17:19

voilà déjà le .vmf pour y voir plus clair

http://mediacorp.free.fr/Tuto_Ascenseurs.vmf
Hackrow
Mapophobe
 
Messages: 18
Inscription: 19 Jan 2005, 13:52

Messagede KMi le 02 Fév 2005, 17:44

Merci pour ce tuto bien complet :D

Je le lirait des que cella me sera utile :)

:lu
fini !
Avatar de l’utilisateur
KMi
VIP
VIP
 
Messages: 3295
Inscription: 06 Juil 2004, 23:55
Localisation: Belgique : Genval

Messagede Hackrow le 02 Fév 2005, 19:23

salut et merci :)

pour ce qui est de CS je n'ai pas testé, j'ai fait le vmf sur HL² DM. J'ai pas essayé sur CS. Par contre je sais que ça fonctionne en mode solo aussi.

Pour K-Mi, je te conseille plus de matter le vmf que le tuto, il me semble que des choses m'avaient échappé et je dois le refaire pour que ce soit plus complet et plus clair (j'ai peu de temps en fait mais je vais trouver un moment pour le refaire) ;)
Hackrow
Mapophobe
 
Messages: 18
Inscription: 19 Jan 2005, 13:52

Messagede KMi le 02 Fév 2005, 19:43

Okaych :D

J'ai dl le vmf et c/c le tuto :)

Merci a toi :P
fini !
Avatar de l’utilisateur
KMi
VIP
VIP
 
Messages: 3295
Inscription: 06 Juil 2004, 23:55
Localisation: Belgique : Genval

Messagede Link8888 le 10 Juin 2005, 22:47

euh , ya un truc qui me tracasse , ya un super model d'ascenseur et esque quelqu'un sai comment on peu sen servir comme un ascenseur ?
Image
Avatar de l’utilisateur
Link8888
Mapophile
 
Messages: 214
Inscription: 21 Mai 2005, 16:03
Localisation: royaume d'Hyrule

Messagede *KillerMapper* le 10 Juin 2005, 23:01

tu "parente"le model avec le "train" qui constitue l'ascenceur.
Mappeur du mod Mario Kart Source et Far Crab
Image Image
Avatar de l’utilisateur
*KillerMapper*
VIP
VIP
 
Messages: 2820
Inscription: 14 Oct 2003, 18:15
Localisation: Paris 15

Messagede D@rK-EyE le 11 Juin 2005, 09:13

personnelement j'ai tout essayer meme avec les output :

j'aun une porte que je veut qu'elle aille vers le haut ... donc je l'ai mis en track train et j'ai mis les deux path_track j'ai configurer bien et j'ai mis deux boutons que j'ai mius des output a :

onpressed
resum
door

mais lorsque j'appuis sur le bouton rien ne se passe :( :'( :( :'(
Un bon mappeur crée lui même ses models et ses textures, parce que cela forme un tout, une harmonie qui ne peux être réalisé que par une seule personne.
Avatar de l’utilisateur
D@rK-EyE
 
Messages: 3672
Inscription: 15 Aoû 2004, 18:54
Localisation: Corse

Suivante

Retourner vers Cours & astuces

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité