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

Current Project: Rejuvenation of Hellkeeper.net

Types de brushes

Les brushes sont les briques de base avec lequelles est construite votre map. Ils se regroupent en trois grandes catégories. D'abord les opérateurs CSG (pour constructive solid geometry) qui s'assemblent entre eux pour modéliser la géométrie de votre map et qui sont compilés en arbre BSP lors du rebuild. Viennent ensuite les brushes d'optimisation qui ajoutent des contraintes d'affichage ou de collision. Enfin, les volumes permettent d'appliquer des paramètres spécifiques au sein de l'espace qu'ils occupent, en modifiant la physique, l'éclairage ou en permettant des déclenchements d'événements lors du franchissement de leurs limites.

Chaque type de brush possède une couleur qui permet de l'identifier.

Forme active

Forme active rouge, version sélectionnée à droite.

Il s'agit du brush rouge. Celui-ci n'apparaît pas en jeu et n'a aucune incidence sur la map. C'est en fait un moule sur lequel sont calqués les brushes que vous créez. Lorsqu'un brush est créé, il occupe la position et possède la forme du brush rouge au moment où l'opération est effectuée.

Dans l'éditeur, la forme active est toujours visible même à travers la géométrie. Elle peut être cachée instantanément en appuyant sur la touche B.

Opérateurs CSG

Les opérateurs CSG permettent de construire l'espace jouable. Pour cela, ils définissent des espaces pleins ou vides. Par défaut, le monde d'Unreal est entièrement solide et un espace vide doit y être soustrait afin de permettre aux joueurs d'apparaître. La plupart des actors ne peuvent être placés dans un espace solide et ne fonctionnent pas s'ils y sont amenés après avoir été insérés dans la map.

Parce que les opérateurs CSG peuvent se superposer à l'infini, l'ordre dans lequel ils sont placés n'est pas anodin. Un brush solide dans lequel un creux doit être soustrait doit absolument se trouver dans l'ordre des opérations avant le brush négatif qui soustrait l'espace dans ses limites. À l'inverse, pour ajouter de la matière dans un espace vide, le brush solide ajouté doit se trouver dans l'ordre des opérations après le brush négatif qui le contient. La plupart du temps, cependant, il n'est pas nécessaire de tenir un journal contenant la totalité des opérations dans l'ordre. UnrealEd permet de déplacer un opérateur au début ou à la fin de l'ordre, ce qui est généralement suffisant.

Brush négatif

Brush négatif en marron, version sélectionnée jaune à droite.

Le brush négatif, ou soustrait, apparaît en marron, jaune quand il est sélectionné. Le volume occupé par un tel brush est vide et les joueurs peuvent s'y déplacer. La première étape de création d'une map est presque toujours la soustraction d'un brush de ce type afin de créer un espace jouable. Un brush négatif se comporte comme un brush solide dont les polygones ne seraient visibles que depuis l'intérieur, à l'inverse d'un brush normal.

Brush solide

Brush solide en bleu, version sélectionnée à droite.

Le brush solide apparaît en bleu. Il définit un espace solide qui bloque les joueurs, les projectiles, les lignes de vues, etc. Combinés avec les brushes négatifs, les brushes solides permettent de modéliser l'espace de jeu physique, d'attribuer des textures et des paramètres à leurs surfaces. C'est à partir d'eux que l'arbre BSP de la map est compilé lors du rebuild. Ces brushes sont considérés comme "solides" car leurs faces bloquent tout et occasionnent un découpage des autres surfaces qu'elles touchent afin d'exclure les faces non visibles. Cette phase de découpage est à la base de l'optimisation du BSP mais peut entraîner des erreurs se traduisant par des polygones qui ne s'affichent pas ou par intermittence.

Brush semi-solide

Brush semi-solide en rose, version sélectionnée à droite.

Affiché en rose, le brush semi-solide se comporte comme un brush solide à la différence qu'il n'occasionne pas de découpage BSP sur les brushes solides qu'il touche, tout en étant lui-même découpé. Les brushes semi-solides se découpent entre eux, mais selon d'autres règles: un brush placés plus haut dans l'ordre découpera un brush placés plus bas, mais l'inverse n'est pas vrai. L'absence de découpage sur les brushes solides permet de limiter le nombre de BSP cuts dans la map et donc de diminuer le nombre de polygones affichés dans les scènes denses en géométrie, ce qui diminue le risque de trou BSP et fait baisser le nombre de polygones.

Parce qu'ils ne se découpent pas de manière normale, les brushes semi-solides sont sujets à des problèmes : des faces coplanaires peuvent clignoter lorsqu'elles essayent de s'afficher en même temps à la même position, des faces peuvent disparaître le long d'un BSP cut, etc. Suivant la version du moteur utilisé, les portals peuvent également causer des problèmes s'ils sont en contact avec des semi-solides.

Brush non-solide

Brush non-solide en vert foncé, version sélectionnée à droite.

Les brushes non-solides sont affichés en vert foncé et sont visibles mais n'occasionnent ni collision ni découpage. Joueurs et projectiles peuvent passer à travers.

Movers

Brush mover en violet, version sélectionnée à droite.

Les movers, affichés en violet, sont des brushes qui peuvent être mis en mouvement selon diverses modalités. Ils n'occasionnent pas de découpage BSP. Ces brushes n'existent que sous l'Unreal Engine 1 et sont remplacés définitivement sous l'Unreal Engine 2 par des static-meshes.

Brushes d'optimisation

Portals

Brush portal en vert clair, version sélectionnée à droite.

Les portals, affichés en vert clair, sont généralement utilisés sous forme de feuilles en 2 dimensions mais peuvent être utilisés avec des formes en 3D.
Les portals sont des brushes non-solides et invisibles qui servent à définir des zones qui apparaissent sous des couleurs différentes en mode Zone/Portal. Si une partie de la map est hermétiquement séparée du reste du niveau par des portals, elle est considérée comme une zone séparée et peut alors recevoir un nom, des paramètres de zone (éclairage, bruit ambiant, brouillard, événement lors de l'entrée/sortie). Les zones sont le premier mode d'optimisation de la géométrie d'une map : seule la zone dans laquelle se trouve le joueur est affichée, ainsi que toute partie d'une autre zone visible au moins partiellement à travers un portal. À l'inverse, toute partie d'une autre zone qui n'est pas visible à travers un portal depuis la zone où se trouve le joueur n'est pas affichée, réduisant le nombre d'objets calculés à chaque instant par le moteur.

L'utilisation normale des portals consiste à fermer une partie de la map en plaçant des portals sous forme de feuille 2D dans les ouvertures communiquant avec d'autres zones. Cependant, il est possible d'utiliser un brush 3D comme portal. Tout l'espace contenu par ce brush comptera alors comme une zone séparée. De même, il est possible d'utiliser plusieurs portals sous forme de feuilles mises bout à bout pour définir une zone aux bords irréguliers.

Sous l'Unreal Engine 1, le brush spécial "water" (surface d'eau) est un portal qui a la particularité d'être visible. Couvert avec une texture d'eau, il définit une zone séparée qui peut ensuite recevoir une WaterZoneInfo qui définit la zone comme étant pleine d'eau. Un portal normal peut être substitué au brush Water, mais la surface de l'eau ne sera alors pas visible et la surface devra être représentée autrement.

Antiportals

Brush antiportal en orange, version sélectionnée à droite.

Affichés en orange, les antiportals fonctionnent à l'inverse des portals : tout ce qui est entièrement caché par un antiportal du point de vue du joueur n'est pas affiché. Cela permet notamment d'empêcher l'affichage de la map derrière un obstacle de grande taille lorsqu'une zone ne peut pas être créée. Les antiportals sont par exemple utilisés dans les grandes maps en extérieur, cachés dans les reliefs du terrain pour éviter l'affichage du paysage caché par une montagne.

Invisible collision hull

Affiché dans l'éditeur comme un semi-solid, ce brush n'apparaît pas en jeu mais possède une collision. Il permet de définir des enveloppes de collision simplifiées pour éviter que le joueur ne se coince sur des détails de la géométrie ou n'entre en collision avec un objet donc la collision complexe pourrait occasionner un ralentissement. Parce qu'il s'agit de brushes semi-solides avec leurs propres contraintes, ce type de brush peut-être sujet à des problèmes liés au découpage de la map et au zonage. Ce manque de robustesse fait qu'il est obsolète sous l'Unreal Engine 2 où le BlockingVolume remplit la même fonction sans aucun de ces défauts.

Volumes

Volume en rose pâle, version sélectionnée à droite.

Affichés en rose pâle, invisibles et sans collision, les volumes permettent d'appliquer localement des paramètres de zone à des parties de la map sans les séparer par zonage à l'aide de portals.

Comme la forme active, les volumes sont toujours visible dans l'éditeur, même à travers la géométrie. Ils peuvent être tous cachés instantanément en appuyant sur la touche O.

Volume

Volume de base sans paramètres spécifiques. Permet surtout de nommer et de servir de déclencheur de zone. Tous les autres volumes sont dérivés de celui-ci en ajoutant des paramètres supplémentaires.

BlockingVolume

Le BlockingVolume permet de bloquer le passage du joueur et des projectiles. Il est possible de définir les classes d'objets bloquées par le volume afin d'empêcher le passage d'autres actors que le joueur. Les projectiles hitscan, qui touchent instantanément leur cible sans créer de projectile (tir principal de fusil shock, balles de minigun, etc.) peuvent passer à travers.

Le HitScanBlockingVolume est un dérivé du BlockingVolume qui fonctionne de la même façon, mais qui stoppe également la trajectoire de tir des armes hitscan.

LeavingBattlefieldVolume

Tant qu'un joueur se trouve dans ce volume, il reçoit un message lui indiquant qu'il est en train de quitter la zone de jeu. L'utilisation de ce volume permet de ne pas tuer abruptement un joueur sortant des limites prévues de la map en lui indiquant d'abord qu'il doit faire demi-tour. À charge ensuite pour le créateur du niveau de mettre derrière un volume qui tuera effectivement le joueur ou un moyen de le ramener dans la zone jouable prévue. L'utilisation de ce volume est également une bonne pratique lorsque la limite du niveau est difficilement distinguable, comme dans AS-MotherShip par exemple, ou lorsque rien ne matérialise les limites de la zone prévue.

ASCriticalObjectiveVolume

Utilisé en mode Assault, permet, en conjonction avec un objectif, de définir une zone "critique". Lorsqu'un attaquant pénètre dans cette zone, l'icône d'objectif sur le HUD des joueurs clignote pour signaler que l'objectif est en passe d'être rempli. Lorsque plus aucun attaquant n'est dans la zone, l'icône redevient normale.

LimitationVolume

Permet de supprimer les projectiles et/ou les disques du téléporteur qui rentrent dans le volume. Utile pour empêcher l'explosion des roquettes ou l'impact des balles sur le ciel ou dans les zones inaccessibles.

SnipingVolume

Utilisé en conjonction avec une séquence scriptée, permet d'ordonner à un bot de surveiller une zone précise. Le SnipingVolume est alors la zone surveillée et la séquence scriptée est la position depuis laquelle le bot effectue sa surveillance.

PhysicsVolume et DefaultPhysicsVolume

Le DefaultPhysicsVolume ne peut pas être placé dans la map (il disparaît lors du rebuild), il s'agit des paramètres de base de la physique du jeu. Le PhysicsVolume permet de s'écarter de cette physique normale en modifiant de nombreux paramètres, dont la gravité, les dégâts pris par le joueur s'y trouvant, des effets sonores particuliers. De nombreux types de volumes sont des versions préparamétrées du PhysicsVolume, d'autres en sont dérivés et présentent quelques paramètres supplémentaires :

© 2005-2024, by Hellkeeper.

Valid XHTML 1.1 & CSS 3