Entités de Romustrike

De Wikiromu

Introduction

Dans le mapping Romustrike, il existe ce que l'on appelle des entités.

Les entités, dans une map sont des objets physiques ou ponctuels, paramétrables, qui permettent de faire diverses choses :

  • Faire des murs transparents ou traversables.
  • Faire des échelles.
  • Placer de l'eau.
  • Placer des points de départ.
  • Placer de la lumière.
  • Placer des drapeaux pour le mode CTF.

La liste des entités qu'on peut créer dans Hammer se trouve dans un fichier d'extension ".fgd". Romustrike a son propre fichier .fgd. Ceci permet d'avoir la liste des entités spécifiques à Romustrike dans Hammer.

Si vous n'avez pas le fichier .fgd de Romustrike sur votre ordinateur, ou que vous ne l'avez pas indiqué à Hammer, les entités suivantes n’apparaîtront pas (ou du moins, pas toutes) dans la liste des entités a créer.

Les entités bloc de Romustrike

Les murs spéciaux

Les entités de murs spéciaux permettent de faire des murs traversables ou/et transparents (on les appellera mur ici, même si on peut faire autre chose que du mur). Leur nom commence toujours par "func_".

Elles sont les suivantes :

  • func_illusionary
  • func_wall

Ces deux entités de mur partagent exactement les mêmes paramètres. La seule différence entre elles, c'est que le func_illusionary est traversable, tandis que le func_wall est bloquant comme n'importe quel bloc normal.

Faire de tels murs permet d'avoir des objets transparents dans la map (vitre, grillage, etc...) mais permet aussi de faire des optimisations, ceci en évitant le découpage qui se produit habituellement entre blocs "normaux". Utiliser les entités de mur permet de "casser" ce mécanisme de découpage. Cela permet au final de gagner en performance si la technique est utilisée intelligemment.

Pour choisir la manière dont une entité mur doit s'afficher, il est nécessaire de préciser un certain nombre de paramètres.

Liste des paramètres :

  • Render mode : détermine le type de transparence du mur à travers plusieurs "modes".
  • Normal : rend le mur complètement opaque.
  • Texture : rend le mur plus ou moins transparente, à utiliser en association avec le paramètre "Opacité".
  • Solid No-Light : ce paramètre est fait pour les entités texturés avec une texture semi-transparente. Les textures semi-transparentes sont des textures qui ont un nom qui commence par une accolade ("{"). Elles ont également une partie coloriée en bleu pur. Ce bleu pur deviendra totalement transparent dans le jeu.
  • Opacité : il faut mettre un nombre entre 0 et 255, plus le nombre est petit, plus l'entité est transparente (et ça ne fonctionne qu'avec un Render Mode en "texture")
  • Light Flags : Par défaut, une entité de mur spécial ne fait pas d'ombre contrairement a tous les blocs normaux, c'est le cas avec la valeur "normal", pour que l'entité fasse de l'ombre, mettez la valeur "Opaque (Blocks Lights)", les autres valeurs n'ont pas beaucoup d'importance.

Exemples d'utilisation :

  • Une vitre
  • Entité : func_wall
  • Render mode : "texture"
  • Opacité : "128"
  • Light Flags : "normal"
  • Une porte traversable ou un faux mur pour un passage secret
  • Entité : func_illusionary
  • Render mode : "normal"
  • Opacité : "255"
  • Light Flags : "Opaque (Blocks Lights)"

Les échelles

L'entité-bloc qui sert a faire des échelles est le func_ladder.

Cette entité ne doit toujours contenir qu'un seul bloc : utiliser un groupe de blocs avec cette entité provoque des bugs.

Le bloc doit être texturé avec la texture "AAAtrigger", cela le rend invisible, sa fonction est de faire monter le joueur pendant qu'il le traverse.

Pour faire des échelles telles qu'on les connaît dans le jeu, il faut d'abord faire l'apparence de l’échelle avec un func_wall (que vous vous chargerez de texturer vous-même avec une texture semi-transparente) avec les paramètres suivants :

  • Échelle

- Render mode : "Solid No-Lights"

- Opacité : "255"

- Lights Flag : "Normal"

Ensuite, créez votre bloc avec la texture AAAtrigger juste devant ce func_wall, de la même taille mais juste devant, transformez ensuite ce bloc en func_ladder.

Ceci suffit a avoir une échelle fonctionnelle, le func_ladder est toujours traversé par le joueur car il est bloqué par le func_wall qui a l’apparence d'une échelle, donc il monte constamment jusqu'à quitter l’échelle.

L'eau

L'entité-bloc à utiliser pour faire de l'eau est le func_water, le func_water se règle de la même manière qu'un func_wall ou un func_illusionary, à la différence que l'entité est aussi affichée de l'intérieur.

Cet affichage à l'intérieur peut provoquer des clignotements gênants, il est donc conseillé de mettre une texture d'eau sur la face du haut du bloc d'eau, et de mettre la texture NULL sur toutes les autres faces du bloc, de sorte à ce qu'on ne voit que la surface de l'eau (ce qui se passe dans la réalité).


Les entités points

A la différence des entités-bloc qui sont des blocs spéciaux, les entités-points sont des points qui ne sont pas directement visibles par les joueurs. Ils servent principalement pour placer les points de départ et les sources de lumière.

Les points de départ

Ces entités servent à placer les points de départ des joueurs, c'est elles qui définissent à quel endroit atterrissent les joueurs quand ils arrivent dans la partie ou quand leur personnage reprend vie.

Elles sont les suivantes :

  • info_player_start
  • info_player_deathmatch
  • spawn_deathmatch


L'entité info_player_start sert à placer un point de départ pour un joueur de l'équipe 1.

L'entité info_player_deathmatch sert à placer un point de départ pour un joueur de l'équipe 2.

L'entité spawn_deathmatch sert à placer un point de départ pour les joueurs de n'importe quelle équipe dans les parties qui ont un mode de jeu normal avec un mode de dégâts normal.

La manière classique de les placer est de faire un "camp" pour l'équipe 1 d'un côté de la map, et un "camp" pour l'équipe 2 de l'autre.

Dans le camp pour l'équipe 1, on placera plusieurs info_player_start et dans le camp de l'équipe 2, on placera plusieurs info_player_deathmatch.

Vous pouvez, si vous souhaitez créer une map particulière, ne mettre qu'un point de départ pour une équipe ou pour les deux, ou aussi en mettre plusieurs mais les éparpiller aux 4 coins de la map de sorte à ne pas vraiment faire de "camp" pour les équipes.

Toutefois, il est conseillé de les placer de manière classique de sorte à pouvoir jouer à tous les modes de jeu de manière optimale.

La lumière

Comme leur nom l'indique, les entités de lumière servent à éclairer les maps, mais chacune d'une manière particulière.

Elles sont les suivantes :

  • light
  • light_environment
  • light_spot


  • L'entité light est simple, comme son nom l'indique, c'est une source de lumière ponctuelle (qui se répand dans toutes les directions à partir d'un point).

Vous pouvez modifier sa couleur et son intensité avec son paramètre "Couleur et intensité", les 3 premiers nombres de ce paramètre définissent la couleur (le 1er nombre donne le taux de rouge, le 2ème donne le taux de vert, et le 3ème donne le taux de bleu et chacun de ces nombres est limité à 255)

Le 4ème nombre, quant à lui, donne l'intensité de la lumière.


  • L'entité light_environment sert à mettre en place la lumière extérieure, si vous avez appris à faire des extérieurs vous devez savoir que partout où on est, on est sensé voir du ciel, on met des blocs avec la texture "sky", c'est à partir de ces blocs que viendra la lumière configurée par le light_environment (avec une couleur et une intensité comme pour l'entité light).

Il n'y a besoin que d'un seul light_environment par map et la lumière extérieure fonctionne quelque soit l'endroit de la map où il est.

La direction des rayons de la lumière extérieure est choisie par le paramètre "Pitch Yaw Roll" utilisant l'unité des degrés.

Le "Pitch" est le 1er nombre, "Yaw", le deuxième, et "Roll", le troisième. Le plus important est le Pitch, il définit l'angle d'inclinaison, il faut savoir que pour une inclinaison totalement verticale vers le bas, il doit être de -90.

Le Yaw définit l'angle d'arrivée des rayon (dans le cas ou l'inclinaison n'est pas totalement verticale), il faut savoir que pour venir du sud, il doit être de 90.

Le dernier paramètre "Roll" quant à lui, n'est pas vraiment utile car les 2 premiers suffisent amplement à choisir la direction des rayons du soleil.


  • L'entité light_spot sert à créer une source de lumière conique qui pointe dans une direction particulière, on peut choisir sa couleur, son intensité, sa direction avec les paramètres précédemment cités.

Le paramètre "angle d'ouverture" sert à définir l'angle du sommet du cône de lumière complète envoyée dans la direction qui a été donnée.

Le paramètre "angle de flou" sert à définir l'angle après lequel plus aucune lumière ne sera envoyée, entre cet angle et "l'angle de d'ouverture" se fera un dégradé de lumière qui passera au noir vers l'extérieur du cercle formé par le spot, en fait, sa fonction est d'adoucir les bords du cercle de lumière, si vous ne voulez pas d'adoucissement, mettez-lui la même valeur que pour "angle d'ouverture".

Cette entité a aussi 2 autres paramètres très intéressants, le 1er étant le paramètre "cible" servant à faire pointer la lumière vers une entité en désignant son nom (choisi avec le paramètre "nom" à la création de l'entité ciblée). Cela est très pratique car on peut faire ainsi la lumière pointer précisément vers un objet sans devoir utiliser le "Pitch Yaw Roll", ce qui est assez pratique puisqu'il est compliqué d'utiliser le "Pitch Yaw Roll" pour choisir une direction précise et "parlante".

Le 2ème est "remplacer le light_env", en y mettant la valeur "oui", vous n'avez plus besoin d'un light_environment pour configurer votre lumière extérieure et le light_spot n'envoie plus de lumière de source conique là où il est (donc "angle d'ouverture" et "angle de flou" ne servent plus à rien). La grande utilité de ce paramètre est de pouvoir combiner les propriétés du light_environment avec le paramètre "Cible", c'est-à-dire qu'on pourra choisir la direction des rayons de soleil en fonction de la direction du vecteur tracé du light_spot jusqu'à l'objet ciblé.

Les flags (ou drapeaux)

Ces entités servent à placer les drapeaux dans la map pour le mode CTF (Capture The Flag ou Capture de drapeau en français).

Elles sont les suivantes :

  • flag_gign
  • flag_gign_rec
  • flag_terro
  • flag_terro_rec

L'astuce pour savoir où placer ces entités en fonction du camp est de s'aider du mot qui arrive après le "flag_". Si ce mot est "gign", le drapeau (ou flag) doit se trouver dans le camp de l'équipe 1, si ce mot est "terro", ce drapeau (ou flag) doit se trouver dans le camp de l'équipe 2.

Les 2 entités "flag" ne finissant pas par un "_rec" servent à placer le drapeau que l'équipe adverse peut attraper, les 2 entités "flag" finissant par un "_rec" servent à placer les récepteurs de drapeau du camp dans lequel elles se trouvent.

(Voir les points de départ pour savoir ce qu'est un "camp")

Cas particulier: L'info_target

L'info_target n'a aucun but particulier, cette entité n'a aucun effet et n'a qu'un paramètre : le nom.

Son but est d’être ciblé, en particulier par un light_spot (Voir "Les lumières")

Exemple d'utilisation : placez un info_target et donnez lui le nom "dir_spot", placez ensuite un light_spot et mettez "dir_spot" dans son paramètre "Cible".

Ainsi, le light_spot pointera vers l'info_target qui s’appelle "dir_spot".