Now Playing Tracks

Le Custom Hud pour les Nuls

Plutôt que de faire un tutorial complet sur les custom huds, il m’a semblé plus intéressant d’expliquer comment “arranger simplement à sa sauce” un custom hud, déjà fait soit par vos soins, avec l’excellent soft online Visual Hud, soit directement telechargé. Vous pouvez même trouver le pack CFG + HUD des colwn, récents vainqueurs de la DreamHack : CLIC !

Ce tuto est donc très loin d’être complet, il s’agit juste d’une approche genre “les Custom Hud pour les Nuls”.

N’hésitez pas à me contacter sur irc (Dewaere) si vous avez des questions ou des problèmes avec vos huds.

 

 

 

Le(s) hud(s) par default :

 

Quake Live propose 3 huds de base, accessibles via la commande “cg_hudFiles”.

Le hud par defaut est “hud.txt”, situé dans le dossier “ui” du pak0. La commande pour l’afficher est donc “cg_hudFiles ui/hud.txt”.

Deux huds supplémentaires sont directement accessibles : hud2.txt et hud3.txt

 

 

Un custom hud? KEZAKO?

 

Un hud custom est donc une sorte d’ “add on” que l’on va rajouter dans son baseq3, afin d’afficher un hud totalement ou partiellement personnalisé.

Un custom hud se décompose en deux fichiers : un hud.cfg et un hud.menu.

Notez que je les nomme ici “hud” mais vous pouvez bien sûr les renommer comme bon vous semble : par exemple, mon custom hud est composé de deux fichiers que j’ai nommé “dewaere.cfg” et de “dewaere.menu”.

Ces deux fichiers doivent être placés dans un dossier “ui” (qu’il faudra créer au besoin) dans quakelive/home/baseq3.

Il faut ouvrir ces deux fichiers avec un éditeur de texte. Wordpad marche très bien par exemple. Mais je vous conseille personnellement d’utiliser Quake Live Demo Tools, qui en plus d’être un lecteur de demos tiptop, propose un éditeur de configs sympathoche.

 

Pour charger un hud ingame, il faut taper dans la console le nom du hud:

  • /cg_hudFiles ui/superhudquirox.cfg

et le charger :

  • /loadhud

Vous pouvez bien sûr vous faire des binds dans votre config QL si vous utilisez plusieurs hud, perso j’utilise un hud pour le ctf et un autre pour le tdm :

  • bind o “cg_hudFiles ui/ctf.cfg;print ^3CTF HUD;wait 100;loadhud”
  • bind p “cg_hudFiles ui/tdm.cfg;print ^4TDM HUD;wait 100;loadhud”

 

 

Le hud.cfg:

 

Le .cfg est le fichier qui va “charger” le fichier .menu

Pour que cela fonctionne, il faudra changer la valeur de la commande “cg_hudFiles” dans votre config QL (qui par defaut, je le rappelle, est “ui/hud.txt”) par le nom du fichier .cfg de votre custom hud.

J’écris dans ma config QL : seta cg_hudFiles “ui/dewaere.cfg”. Elle va donc charger le dewaere.cfg, qui va charger mon dewaere.menu.

Lorsque l’on ouvre le “hud.cfg”, on va voir un truc du genre :

  • loadMenu { “ui/intro.menu” }
  • loadMenu { “ui/dewaere.menu” } <—— c’est donc ici que vous écrivez le nom de votre hud.menu, ce qui va permettre à Quake Live de charger le bon fichier.

Faites attention de ne pas effacer les “}” sous peine de sanction : plus rien ne fonctionnera !

 

 

Le hud.menu:

 

C’est là que tout se passe :)

Comme pour le hud.cfg, faites attention de ne pas effacer les “}”.

La première ligne, en haut, est la même pour TOUS les custom hud:

#include “ui/menudef.h”

On y touche pas donc!

 

En dessous vous allez avoir tout un tas de “paragraphes” ou “blocs”, plus ou moins longs et super compliqués (mais pas trop en fait :)

Si vous avez réalisé votre custom hud avec “Visual hud”, ces paragraphes sont séparés par des espaces et, surtout, ils sont nommés (timer, armor, health etc…)

Je vous parle de ça parce qu’il arrive fréquemment, si vous telechargez un custom hud, que vous vous retrouviez avec un paté de code limite incompréhensible.

Comme dans une config QL, lorsque vous voulez écrire du texte qui ne sera pas pris en compte (des mémos par exemple), il faut commencer la ligne par un slash “/

.

Chaque bloc va correspondre a un élément de votre custom hud, il est composé d’un “menuDef” et d’un ou plusieurs “itemDef”.

Je ne vais pas m’étendre sur les rôles de chacun mais en gros, le “menuDef” va vous servir à déplacer votre élément sur votre écran tandis que l’”itemDef” va plutôt vous servir a tweaker en profondeur l’élément en question. Un exemple concret :

/* —- health—- */

menuDef {

name “heath”

fullScreen MENU_FALSE

visible MENU_TRUE

rect 415 159 61 22 <- le 1er nombre (415) permet de déplacer l’élément horizontalement, le 2ème (159) est l’axe vertical.

La résolution d’un hud ql, custom ou pas, est 640*480. 640 étant le nombre de pixels sur l’axe horizontal, 480 sur l’axe vertical. En ce qui concerne l’axe horizontal, on part de la gauche. Donc dans notre exemple, 415 = 415 pixel à partir de la gauche.

Ce qui signifie que si vous choisissez 0, l’élément sera placé totalement à gauche.

En ce qui concerne l’axe vertical, ça fonctionne de la même façon, mis a part que 0 = en haut (donc 480 = tout en bas) :

visible 1 <- pas sorcier, 1 ou 0, visible ou pas donc :)

textstyle 6 <- 0 = texte normal / 3 = texte avec ombre simple / 6 = texte avec big shadow

forecolor 1 1 1 1 <- Couleur et transparence: de 0 à 1 (0.1, 0.2 etc…). Les 3 premiers chiffres permettent de tweaker la couleur (RGB) :

  • Le premier chiffre: quantité de rouge
  • Le deuxième : quantité de vert
  • Le troisième: quantité de bleu
  • Le quatrième: transparence (1 = pas de transparence, 0 = full transparent, invisible quoi :)

1 1 1 1 = BLANC

0 0 0 1 = NOIR

textscale 0.6 <- taille du texte

Un exemple “Armor” avec du color range, ce qui permet de choisir la couleur de la police selon la “quantité d’armure”.

Avec Visual hud vous pouvez choisir maximum 3 color range, rien ne vous empèche d’en ajouter:

/* —- Armor indicator —- */

menuDef {

name “armorIndicator”

fullScreen MENU_FALSE

visible MENU_TRUE

rect 397 459 55 19

itemDef {

name “armorIndicatorIcon”

rect 0 0 0 0

visible 1

decoration

style 1

backcolor 1 1 1 1

background “ui/assets/hud/armor.tga”

}

itemDef {

name “armorIndicatorCounter”

rect 0 0 55 19

visible 1

textalign 0

decoration

textstyle 6

forecolor 0.6 0.2 0 1

textscale 0.9

ownerdraw CG_PLAYER_ARMOR_VALUE

addColorRange -999 0 0 0 0 0 <- de -999 à 0 (quand vous êtes sans armure donc, le chiffre ne sera pas affiché puisque j’ai mis la transparence sur 0)

addColorRange 1 49 1 0 0 1 <- de 1 à 49 j’ai choisi du rouge

addColorRange 50 79 0.8 0.5 0 1 <- de 50 à 79 une sorte de jaune

addColorRange 80 99 0.6 0.2 0 1 etc….

addColorRange 100 144 0.5 1 0.9 1

addColorRange 145 999 0.3 .5 1 1

}

Vous pouvez bien sûr ajouter ou enlever des lignes mais pensez bien a faire correspondre les chiffres qui à la quantité d’armure (de 1 à 49 le suivant sera de 50 à 79 etc…)

Ici un exemple avec l’élément “POWER UP”:

/* —- powerup indicator —- */

menuDef {

name “powerupIndicator”

fullScreen MENU_FALSE

visible MENU_TRUE

rect 4 457 42 24 <- comme expliqué plus haut, 4 = axe horizontal, 457 = axe vertical (je vois donc les PU que je prends en bas à gauche)

itemDef {

name “powerupIndicatorArea”

rect 0 0 30 20 <- ici ce sont les deux derniers nombres qui nous intéressent, il s’agit de la taille de l’icone du PU (30 pixels de large sur 20 pixels de haut)

visible 1

decoration

textscale 0.5

forecolor 1 1 1 1

textstyle 6 <- la taille du texte du temps restant du PU

ownerdraw CG_AREA_POWERUP

special 22

align HUD_HORIZONTAL <- Lorsque vous ramassez 2 PU’s, ils s’afficheront sur un axe horizontal, si vous preferez l’un au dessus de l’autre, il suffit de changez cette ligne par “align HUD_VERTICAL” easy!

}

}

C’est tout pour l’instant!

 

Votre envoyé spécial, Dewaere.

To Tumblr, Love Pixel Union