Afficher du texte à l'écran

Je vais vous expliquer ici 3 techniques pour afficher du texte et des messages :) .

Le game_text

Entité

Type

Description

game_text

Point

Permet d'afficher une portion de texte à l'écran

Image utilisateur

L'entité game_text permet d'afficher une portion de texte à l'écran du ou des joueurs. Ça peut être pratique pour afficher un petit "Have fun" avant de commencer une partie ^^ . Vous pouvez aussi, dans une partie solo, l'utiliser pour donner des informations au joueur.

Pour utiliser l'entité, il suffit de la placer où vous voulez, de lui donner un nom et de l'appeler au moment voulu, au moyen de son input Display. Voici d'ailleurs une vue d'ensemble de ses propriétés :

  • Message Text : c'est le message à afficher. C'est très simple comme texte, pas de retours à la ligne, d'alinéas... Vous devez éviter de mettre des apostrophes typographiques ( " ) et des anti-slash ( \ ), car ça peut provoquer des crash lors de la compilation ou de l'exécution de la map (c'est Valve qui le dit, je fais confiance moi ^^ ). Mais vous pouvez utiliser des apostrophes typographiques gauche et droite (? et ?).

  • X : c'est la position horizontale, en partant de la gauche. Mettez -1 si vous voulez que le texte soit centré.

  • Y : c'est la position verticale, en partant du haut. Mettez -1 si vous voulez que le texte soit centré.

  • Text Effect : c'est l'effet avec lequel le texte sera affiché

    • Fade In/Out : le texte apparaît progressivement et disparait progressivement. Je vous recommande fortement cette option.

    • Credits : ressemble au Fade In/Out.

    • Scan Out : les lettres apparaissent les unes après les autres en ayant un effet de Fade In et en clignotant. C'est très moche ^^ .

  • Fade In Time : c'est le temps qu'il faut pour que le texte soit complètement affiché.

  • Fade Out Time : le temps qu'il faut au texte pour disparaître.

  • Hold Time : le temps que le texte reste affiché (sans compter l'apparition et la disparition).

  • Scan Time : si vous avez choisi l'effet Scan Out, c'est le temps nécessaire au scanning des différentes lettres

Pensez à cocher ou non le flag All players, si vous souhaitez ou non que tous les joueurs voient le texte ;) .

L'env_message

Entité

Type

Description

env_message

Point

Permet d'afficher un texte contenu dans un fichier .txt à l'écran

L'env_message est en quelque sorte l'évolution du game_text. Le game_text ne permet que d'afficher une phrase, alors que l'env_message permet d'afficher vrai texte, avec des retours à la ligne. Seulement, cette entité est un brin plus complexe à mettre en ?uvre car il faut créer un fichier .txt qui contiendra le texte à afficher. Mais avant, si vous n'avez encore jamais vu ce que peut donner un env_message, voici le premier message d'information qui s'affiche dans le mod solo Combine Destiny :

Image utilisateur

Le fichier texte

Le fichier texte se nomme titles.txt et se trouve dans le répertoire votremod/scripts/. Ce fichier contient des messages pouvant être affichés durant le jeu. Les messages sont écrits à la suite, et un nom leur est attribué, comme ceci :

NOM_DU_MESSAGE1
{
Contenu de ce premier message
Et hop, line-break :)
}
NOM_DU_MESSAGE2
{
Contenu de ce 2e message
Gordon est barbu
}

Le problème est qu'il ne peut y avoir qu'un seul fichier titles.txt, ce qui fait que ce système est tout à fait inadapté pour les maps multi et même les maps solo pour HL². Ce système est à utiliser par exemple si vous développez votre propre mini-mod. Imaginez si plusieurs mappeurs définissaient chacun leur titles.txt : à chaque installation de map, l'ancien fichier .txt serait écrasé et son contenu ne correspondrait plus.

Cela dit, si vous faites une map pour HL², vous pouvez vous servir du fichier titles.txt du jeu original et l'utiliser pour afficher les messages qui y sont enregistrés, comme par exemple :

Citation : Half-Life² - Game Over - Try again, if you can ^^

ASSIGNMENT: TERMINATED

SUBJECT: FREEMAN

REASON: FAILURE TO PRESERVE MISSION-CRITICAL PERSONNEL

L'entité

Insérez l'entité env_message, et ouvrez ses propriétés. Dans la propriété Message Text, vous devez mettre le nom du message à afficher. Par exemple, si je veux afficher le deuxième message de mon exemple ci-dessus, je mets NOM_DU_MESSAGE2. Si vous voulez afficher un message d'HL², reportez-vous à la page de l'env_message sur le Wiki de Valve , il y a un tableau avec le nom des messages et leur contenu.

L'input pour afficher le message n'est plus Display comme pour le game_text, mais bien ShowMessage (allez comprendre la logique de Valve ^^ ). Notez aussi que cette entité vous permet de jouer un son en même temps que l'affichage du message. C'est bien entendu facultatif.

Le point_message

Entité

Type

Description

point_message

Point

Permet d'afficher une portion de texte à un endroit de la map

Image utilisateur

Le game_text permet d'afficher du texte à l'écran, et le point_message permet, tenez-vous bien, d'afficher du texte dans la map. Le texte affiché est positionné à l'endroit où se trouve l'entité, et est toujours face au joueur (un peu comme un sprite, qui s'oriente en fonction du joueur qui le regarde). Regardez, voici un exemple, encore tiré de Combine Destiny. Les point_message sont utilisés pour définir l'utilité des consoles (consoles qui servent de boutons).

Image utilisateur

Le point_message n'a pas besoin d'être affiché, il peut s'afficher automatiquement à partir d'une certaine distance (propriété Show Message Radius). Ça évite au joueur qui se trouve à 200 mètres du texte de l'apercevoir ^^ .

Le contenu du message doit bien sur être rédigé dans la propriété Entity Message.