Last updated: 06/10/2024, 02:17

Current Project: Rejuvenation of Hellkeeper.net

Téléporteurs

Un téléporteur déplace le joueur d'une position à une autre. Il se crée avec l'actor Teleporter, sous-classe du SmallNavigationPoint, lui-même sous-classe du NavigationPoint.

Téléporteur dans l'actor browser

Utilisation

Le téléporteur est un actor extrêmement simple à paramétrer pour un fonctionnement de base.

Propriétés du téléporteur

Le paramètre le plus important est le champ URL. Il permet d'indiquer la cible, qui doit être le tag d'un autre téléporteur. Si le téléporteur de destination n'est pas lui-même lié au premier, la téléportation sera à sens unique. En les liant deux à deux, on crée un système à double sens. C'est le système le plus commun, utilisé par exemple dans CTF-Face3 pour relier entre eux les étages sans solution de continuité.

Deux téléporteurs liés

Les téléporteurs sont immédiatements fonctionnels une fois ajoutés et paramétrés, mais un rebuild du pathing est nécessaire pour que les bots soient capables de les utiliser. Après le rebuild, on peut visualiser quels téléporteurs sont liés entre eux en affichant les chemins : une ligne rose relie chaque téléporteur à sa cible.

Deux téléporteurs utilisables par les bots

Si l'URL de destination est un tag partagé par plusieurs téléporteurs, la cible de la téléportation sera aléatoirement choisie parmi les destinations possibles à chaque fois que le joueur empruntera le téléporteur source. L'éditeur n'affichera la ligne rose que vers une seule destination, mais dans le jeu, toutes fonctionneront. De même, plusieurs téléporteurs peuvent avoir la même cible s'ils ont pour URL de destination le tag d'un même téléporteur.

Situation à téléporteurs multiples

On peut également cibler un téléporteur dans une map différente. Pour cela, il faut donner à l'URL le format "map#téléporteur", où "map" est le nom du fichier de la map visée (avec ou sans l'extension .ut2). Ainsi, si l'on cherche à envoyer le joueur dans une map intitulée level2 qui contient un téléporteur avec le tag Destination1, on écrira "level2#Destination1" (ou "level2.ut2#Destination1").

Téléporteur vers une autre map

Lors du passage sur le téléporteur, le jeu affichera l'écran de chargement de map et reprendra dans la map suivante. Cette fonction permet d'enchaîner les niveaux lors d'une aventure solo et c'est ainsi que sont faites les transitions de map dans Unreal et Unreal 2. Notez que la seconde map compte comme une nouvelle partie : si la téléportation a lieu d'une map de DeathMatch à une autre, les joueurs entrant dans le second niveau ne poursuivent pas le même match dans la seconde map mais en commencent un nouveau.

Il est même possible d'expédier le joueur sur un téléporteur précis dans une map spécifique sur un serveur donné. Dans ce cas, l'adresse doit être au format "Unreal://serveur:port/map#téléporteur". La partie "serveur" peut être aussi bien l'adresse IP du serveur visé que son nom.

Le paramètre ProductRequired peut être entièrement ignoré. Il permet aux studios professionels de s'assurer que les joueurs possèdent un jeu ou une extension spécifique pour que le téléporteur fonctionne.

Notez enfin que tous les téléporteurs ajoutés à la map sont par défaut réglés en bEnabled = Vrai et fonctionnent dès le début du jeu, mais on peut régler ce paramètre sur Faux pour préparer des téléporteurs non-fonctionnels qui ne seront utilisables qu'à un moment précis. Il est en effet possible d'activer et désactiver les téléporteurs à l'aide de Triggers. Un téléporteur désactivée peut toujours servir de cible à un autre, mais il ne téléporte pas lui-même.

Direction et vitesse de sortie

La direction que regarde un joueur en sortant d'un téléporteur dépend de l'orientation des deux actors utilisés comme source et comme cible. Le téléporteur est en effet un actor directionnel et une flèche indique son orientation lorsqu'il est sélectionné.

Flèche directionnelle du téléporteur

Comme pour les warpzones, l'orientation du joueur, qui est calculée par rapport à celle du téléporteur lui-même, est inversée à la sortie. En d'autres termes, si le joueur rentre dans un téléporteur par "l'avant" (en faisant face à la flèche et en se dirigeant vers elle), il ressortira également par l'avant en sortie (en tournant le dos à la flèche et en s'éloignant d'elle dans sa direction).

En considérant que chaque téléporteur pointe vers son propre "nord" arbitraire, un joueur entrant dans le téléporteur par exemple par l'ouest du premier téléporteur sortira du second par son propre ouest également. C'est pourquoi deux téléporteurs qui doivent communiquer l'un avec l'autre font généralement tous les deux face à la direction par laquelle les joueurs rentrent dedans.

Orientation en entrée et en sortie

Ce comportement est permis par le paramètre bChangesYaw, qui est réglé sur Vrai par défaut. Si ce paramètre est Faux dans le téléporteur de destination, l'orientation des téléporteurs est ignorée et l'orientation absolue du joueur (par rapport à la map) est conservée.

Les autres paramètres permettent de jouer sur la vitesse du joueur en sortie. On peut ainsi régler bChangesVelocity sur Vrai et définir un vecteur dans le champ TargetVelocity en spécifiant sur les trois axes la vitesse du joueur lorsqu'il émerge du téléporteur. Il faut tenir compte que si le joueur franchit le téléporteur en marchant (ou du moins en touchant le sol), la friction du sol suffit à annuler toute vitesse que ce vecteur peut lui appliquer. Il faut donc le forcer à franchir le téléporteur en étant dans les airs, soit en mettant un trou sous l'actor pour que le joueur soit en pleine chute, soit en le positionnant assez haut pour que le joueur doive sauter pour l'atteindre.

Les trois derniers paramètres, bReversesX, bReversesY et bReversesZ, permettent d'inverser la vitesse du joueur sur chaque axe au moment où il sort du téléporteur. Ainsi, s'il chute verticalement vers le téléporteur d'entrée (donc que sa vitesse est négative sur l'axe Z), il sortira de l'autre côté propulsé vers le haut (vitesse positive sur Z). De même sur l'axe X (est-ouest) et l'axe Y (nord-sud). Notez que ces trois paramètres ne fonctionnent que si bChangesVelocity est Faux car ils se contentent d'inverser la vitesse du joueur sans la changer.

Tous ces changements d'orientation et de vitesse du joueur se règlent au niveau du téléporteur de sortie. Un téléporteur changeant l'orientation et la vitesse du joueur ne fera rien s'il est utilisé comme téléporteur source mais appliquera ses paramètres à l'utilisateur lorsqu'il sera utilisé comme destination.

© 2005-2025, by Hellkeeper.

Valid XHTML 1.1 & CSS 3