PORTAILS

Les Portails (Portals) sont de petites zones qui permettent non seulement de se téléporter d'une zone à une autre, mais aussi de voir au travers ce qui se trouve dans cette zone, comme s'il se fût agi d'une porte ouverte. Les projectiles passent également par le même chemin. Cette zone de téléport (Warp Zone) est largement utilisée tant dans les niveaux en solo que dans les matchs à mort, mais est assez délicate à réaliser.

Le Portail se compose en fait de deux petites zones identiques dans leur composition, leurs textures, leurs dimensions, qui sont placées dans deux zones différentes et distantes que l'on veut relier. Elles peuvent aussi se trouver à des endroits plus ou moins éloignés d'une même zone. On réservera le nom de portail à la feuille qui limite la zone de téléport et qui constitue pratiquement sa porte d'accès.

La zone de transit peut être placée dans un mur, comme on le ferait d'une porte, mais elle peut aussi être installée au milieu d'un espace, comme un isoloir, un placard.. Elle ne possède donc qu'un accès.

Pour tester le mécanisme, construire deux salles distinctes, de proportions et de textures différentes, éclairées aussi de couleurs différentes, pour que le contraste soit bien visible. Les deux salles doivent être vastes pour qu'on ne soit pas gêné. Placer un point de départ pour le joueur (PlayerStart).

Contruire maintenant une boite dont les dimensions intérieures doivent pouvoir contenir les créatures que l'on veut faire transiter. Pour le joueur lui-même, un cube de 128 sera confortable. Le plus simple est de créer un cube de 160, de l'ajouter sur le sol d'une salle, puis de réduite la FA à un parallélipipède de 128*128*160, qu'on place de telle manière qu'on puisse excaver le premier cube en laissant un côté ouvert. Intersecter la FA dans le premier cube et soustraire.

Redimensionner la FA pour qu'elle englobe cette construction. Intersecter pour obtenir une forme fille qui est une copie parfaite de cette construction. Se placer dans l'autre salle, et ajouter.

Pour transformer ces deux renfoncements en zones, il faut les délimiter par une feuille 2D que l'on va placer à 8 unités du bord pour fermer la paroi qui a été évidée. On ajoute cette feuille en tant que "SpecialBrush"="ZonePortal", dans chacune des deux ouvertures. Peu importe la texture de cette feuille, elle ne sera pas visible puisqu'on verra ce qui se passe dans l'autre pièce. Par contre, il est préférable pour éviter toute erreur que cette texture aie les même dimensions que la feuille sur laquelle elle s'applique. Il est commode de faire du 256*256 ;ces dimensions conviennent aux joueurs comme aux créatures.

Attention : le truc ici est que la feuille 2D est appliquée à la seconde boite après une rotation de 180°. Si on effectue d'emblée cette rotation en plaçant la seconde boite, il ne faut pas bien sûr l'appliquer à la feuille 2D qui sera donc déplacée par simple translation après qu'on ait posé la première porte de zone. Une fois l'opération accomplie, l'angle entre les deux boîtes peut devenir quelconque.

Après avoir recompilé le niveau, on peut vérifier dans la f3d en mode "viewzone" que les zones obtenues ont bien des couleurs différentes.

Pour leur attribuer les propriétés de téléport/télévue, il faut les définir en plaçant dans chacune une icône "WarpZoneInfo" que l'on trouve dans le catalogue à Classes/Info/ZoneInfo/WarpZoneInfo.

Dans la fenêtre de propriétés de cet item dans la première pièce, préciser les valeurs de deux champs :

- OtherSideURL : nom de la destination, par exemple Z2
- ThisTag : nom de cet endroit, par exemple Z1
- destinations : dans le cas où on veut que ce portail donne accès successivement à plusieurs autres (jusqu'à 8 au total), on entre leur "Tag" dans les champs
. Il faut alors une gâchette ayant pour "Event" le "Tag" de ce portail (celui qui se trouve dans "Events/Tag !!) qui actionne ainsi le changement de destination accompagné bien sûr du changement d'affichage correspondant. Le sens se fait du bas de la liste vers le haut, soit de la position 7 à la position 0.

Recompiler, sauver et tester. On doit pouvoir se déplacer tout autour de la cabine, regarder par l'ouverture ce qui se trouve dans l'autre salle, et s'y rendre en entrant dans cette cabine.

 

 

En fait il n'est pas nécessaire, comme je l'ai lu dans certains tutoriaux, de modifier le paramètre "bDirectional" dans les propriétés avancées. De même, il n'est pas nécessaire d'avoir une rotation de 180° d'une cabine par rapport à l'autre. Un angle quelconque fonctionne. En revanche, il est indispensable que les deux cabines aient les mêmes dimensions intérieures et que la feuille de délimitation de zone ait été correctement initialisée avant d'être placée. Il suffit en effet qu'il y ait un alignement de texture différent d'une feuille à l'autre pour que le résultat soit aléatoire. En outre, la surface d'une feuille est inversée par rapport à l'autre. Pour éviter toute erreur, procéder comme suit :

1 - créer un vestibule, le copier dans la FA, construire son double après rotation à 180° (provisoirement).

2 - Placer la feuille qui délimite la zone à l'issue du premier vestibule. En faire autant pour le second, mais SANS opérer de rotation. Les feuilles 2D doivent être en miroir l'une de l'autre.

4 - Placer les "warpzoneinfo" et recompiler.

3 - Sélectionner l'ensemble composé par un vestibule et son portail, et à ce moment là seulement l'orienter comme on veut. Le problème qui se pose, c'est que les formes originelles qui le composent (lorsqu'il n'est pas obtenu par intersection) se dissocient lors de la rotation. Le plus simple est alors d'intersecter chaque boîte séparément, de l'effacer, et de la remplacer par la forme résultante qu'il sera possible d'orienter cette fois sans perdre ses rigoureuses dimensions.

Cela dit, il m'est arrivé, notamment dans CTF-AwazMir (Ued2), d'avoir des "HOM" récurents après des modifications de la carte suivies de recompilations complètes. Après avoir vainement cherché l'erreur, je me suis aperçu que ces anomalies disparaissaient en recompilant après que tout soit terminé, et en sus du processus habituel, seulement la géométrie et les lumières.. et ça marche..

WARPZONES SEQUENTIELLES :

Dans UED2, une WarpZone peut donner successivement accès à une série de WarpZones en activant l'item WarpZoneInfo :
chaque activation du trigger T entraîne un changement de destination de 1 à 8, puis on retourne à la position 1 et la boucle recommence. W0 est la warpzone de départ et Wn les warpzones de destination.


carte de test

CAMERA DE SURVEILLANCE :

Pour la réaliser, il faut construire deux zones comme ci-dessus, de taille plus réduite pour correspondre à celle d'un écran video.

Devant la boîte qui sera du côté de l'écran de contrôle, on placera un ou deux "BlockAll" ou un "InvisibleCollisionHull" pour éviter que les projectiles, voire les joueurs, ne passent à travers !

Et devant la boîte du côté de la caméra, on placera une feuille opaque, non solide, unilatérale, orientée de telle façon que les arrivants ne puissent pas voir ce qui se passe du côté de l'écran ! Cette feuille à un seul côté reste transparente vue par la caméra.

COMPLEMENTS :

Un portail est lié à un autre portail, mais en fait ces relations peuvent être mutilples : plusieurs portails peuvent aboutir à une même terminaison.

Un portail invisible, c'est-à-dire dont on aura rendu toutes les surfaces invisibles outre la feuille 2D, sera :
- Non fonctionnel après recompilation. Si un seul portail est traité ainsi, il peut encore servir de destination.
- Fonctionnel s'il n'y a pas recompilation après qu'on ait traité les surfaces.

Un portail peut être constitué par une zone invisible et non solide. Chacune de ses faces donne alors une vue correspondant à son orientation, et le transfert est orienté lui aussi. Suivant l'orientation, des effets de miroirs curieux peuvent résulter (le joueur se voit lui-même de dos..). Cette zone peut avoir une épaisseur très faible (4 u). Il est alors souhaitable de réduire l'échelle des icônes pour les placer correctement. Le joueur franchit cette mince paroi dans n'importequel sens.

Deux portails liés et placés face à face entraînent un effet de miroir avec vue à l'infini.

Pour que les portails soient utilisés par les robots, il faut placer un "PathNode" à l'intérieur ou mieux à chaque issue devant la sortie. On peut aussi placer des friandises (munitions, armes..) de chaque côté pour les motiver.