Aller au contenu

🎨 Textes ,langues et ressources

Ce chapitre a pour but d'apprendre à utiliser les données contenues dans le dossier «Ressource» du mod, ces fichiers correspond beaucoup où sont placés les textes, dans quelle police.

Le dossier resource/ contient tous les éléments de l'interface utilisateur de votre mod :

  • 🎨 Apparence : Couleurs, polices, styles
  • 🖼️ Disposition : Position des éléments HUD
  • 📝 Textes : Traductions, dialogues, sous-titres
  • 🎮 Menus : Configuration du menu principal
  • ⚙️ Options : Configuration des paramètres

Pourquoi c'est important ? Une bonne interface utilisateur peut :

✅ Améliorer l'expérience joueur ✅ Renforcer l'identité visuelle de votre mod ✅ Faciliter l'accessibilité (langues, sous-titres) ✅ Rendre votre mod plus professionnel

🗂️ Structure des fichiers de ressources

Arborescence complète

resource/
├── 📄 ClientScheme.res          ← Apparence globale (couleurs, polices)
├── 📄 GameMenu.res              ← Boutons du menu principal
├── 📄 SourceScheme.res          ← Thème de l'interface
├── 📄 HudLayout.res             ← Position des éléments HUD
├── 📄 HudAnimations.txt         ← Animations du HUD
├── 📄 ChatScheme.res            ← Apparence du chat (MP)
│
├── 📁 fonts/                    ← Polices personnalisées
│   ├── CustomFont.ttf
│   └── AnotherFont.otf
│
├── 📁 flash/                    ← Interface Scaleform (avancé)
│
├── 📁 ui/                       ← Images de l'interface
│   ├── logo.vmt
│   ├── logo.vtf
│   └── menu_background.vtf
│
├── 📄 closecaption_english.txt  ← Sous-titres anglais
├── 📄 closecaption_french.txt   ← Sous-titres français
├── 📄 gameui_english.txt        ← Textes UI anglais
└── 📄 gameui_french.txt         ← Textes UI français

Tableau de référence des fichiers

Fichier Description Modification fréquente
ClientScheme.res Couleurs, polices, styles de l'interface ⭐⭐⭐
GameMenu.res Boutons et options du menu principal ⭐⭐⭐
HudLayout.res Position et taille des éléments HUD ⭐⭐⭐
HudAnimations.txt Animations des éléments HUD ⭐⭐
SourceScheme.res Thème visuel général ⭐⭐
closecaption_*.txt Sous-titres par langue
gameui_*.txt Traductions de l'interface

Changer la police du jeu

Étape 1 : Placer le fichier de police

Copiez votre fichier .ttf ou .otf dans :

resource/fonts/MaPolice.ttf

Étape 2 : Déclarer la police

Éditez resource/ClientScheme.res et ajoutez votre police dans la section CustomFontFiles :

"Scheme"
{
    "Fonts"
    {
        // Polices définies plus bas
    }

    "CustomFontFiles"
    {
        "1" "resource/HALFLIFE2.ttf"
        "2" "resource/HL2EP2.ttf"
        "3" "resource/fonts/MaPolice.ttf"     ← Votre police
        "4" "resource/fonts/AutrePolice.ttf"
    }
}

Ajouter votre police dans la liste, vous pouvez changer maintenant utiliser cette police, nous pouvons changer la police du titre du jeu

ClientTitleFont

{

    "1"

    {

        "name" "MaPolice"

        "tall" "32"

        "tall_hidef" "46"

        "weight" "0"

        "additive" "0"

        "antialias" "1"

        "custom" "1" [$OSX]

    }
}

Changer le menu

⚠️ Important : - Les numéros doivent être uniques - Chemins relatifs à partir de la racine du mod - Extensions supportées : .ttf, .otf

Étape 3 : Utiliser la police

Définissez la police dans la section Fonts :

"Fonts"
{
    // Police du titre du jeu
    "ClientTitleFont"
    {
        "1"
        {
            "name"      "MaPolice"           ← Nom exact du fichier
            "tall"      "48"                 ← Taille (pixels)
            "weight"    "700"                ← Épaisseur (400=normal, 700=gras)
            "antialias" "1"                  ← Anti-aliasing (1=oui)
            "additive"  "0"                  ← Mode additif
            "custom"    "1" [$OSX]           ← Sur Mac uniquement
        }
    }

    // Police pour le HUD
    "HudNumbers"
    {
        "1"
        {
            "name"      "MaPolice"
            "tall"      "32"
            "weight"    "700"
            "antialias" "1"
        }
    }

    // Police pour les menus
    "MenuFont"
    {
        "1"
        {
            "name"      "MaPolice"
            "tall"      "24"
            "weight"    "400"
            "antialias" "1"
        }
    }
}

Paramètres des polices

Paramètre Type Description Valeurs
name String Nom de la police Nom du fichier sans extension
tall Integer Hauteur en pixels 8-128 (typiquement)
weight Integer Épaisseur 100-900 (400=normal, 700=gras)
antialias Boolean Lissage des contours 0=non, 1=oui
additive Boolean Mode additif (glow) 0=non, 1=oui
outline Boolean Contour 0=non, 1=oui
dropshadow Boolean Ombre portée 0=non, 1=oui
blur Integer Flou 0-10
scanlines Integer Lignes de scan 0-10
custom Boolean Police personnalisée 0=non, 1=oui

Exemple : Créer une police avec effet

"TitleFontGlow"
{
    "1"
    {
        "name"      "Impact"
        "tall"      "56"
        "weight"    "900"
        "antialias" "1"
        "additive"  "1"        ← Effet lumineux
        "outline"   "1"        ← Contour
        "dropshadow" "1"       ← Ombre
        "blur"      "2"        ← Léger flou
    }
}

Polices système vs personnalisées

Polices système (installées sur Windows) :

"name" "Arial"
"name" "Times New Roman"
"name" "Courier New"

Polices personnalisées (fichier .ttf) :

"name" "MaPolice"
"custom" "1"

⚠️ Attention : Les polices système peuvent varier selon l'OS du joueur. Préférez toujours des polices personnalisées pour la cohérence !


Le fichier resource/GameMenu.res définit les boutons du menu principal.

Structure de base

"GameMenu"
{
    "1"
    {
        "label"      "#GameUI_GameMenu_ResumeGame"
        "command"    "ResumeGame"
        "OnlyInGame" "1"
    }

    "2"
    {
        "label"      "#GameUI_GameMenu_NewGame"
        "command"    "OpenNewGameDialog"
        "notmulti"   "1"
    }

    "3"
    {
        "label"      "#GameUI_GameMenu_LoadGame"
        "command"    "OpenLoadGameDialog"
        "notmulti"   "1"
    }
}

Paramètres des boutons

Paramètre Description Exemple
label Texte affiché (ou clé de traduction) "Nouvelle Partie" ou "#GameUI_NewGame"
command Commande exécutée au clic "ResumeGame", "map dm_test"
OnlyInGame Visible uniquement en jeu "1" = oui
OnlyAtMenu Visible uniquement au menu "1" = oui
notmulti Caché en multijoueur "1" = oui
notsingle Caché en solo "1" = oui

Interface utilisateur

https://developer.valvesoftware.com/wiki/HudLayout.res

L'interface utilisateur est codé en C++ avec la bibliothèque VGUI qui permet de définir les priorités de la fenêtre, c'est ensuite à nous de modifier les variables avec le fichier scripts/hudlayout.res et définir les animations avec hudanimation.txt.

(0,0) ──────────────────────► X
  │
  │         ┌────────────────┐
  │         │   Élément HUD  │
  │         │   xpos, ypos   │
  │         │   wide × tall  │
  │         └────────────────┘
  │
  ▼
  Y

Positionnement relatif :

"xpos"  "r100"   → 100 pixels depuis la DROITE
"ypos"  "r50"    → 50 pixels depuis le BAS
"xpos"  "c-50"   → 50 pixels à gauche du CENTRE
"ypos"  "c+20"   → 20 pixels sous le CENTRE

Le fichier scripts/HudLayout.res définit la position et l'apparence de tous les éléments du HUD.

Structure d'un élément HUD

"Resource/HudLayout.res"
{
    HudHealth
    {
        "fieldName"   "HudHealth"       ← Nom unique de l'élément
        "xpos"        "16"              ← Position X (pixels depuis la gauche)
        "ypos"        "432"             ← Position Y (pixels depuis le haut)
        "wide"        "102"             ← Largeur
        "tall"        "36"              ← Hauteur
        "visible"     "1"               ← Visible (1=oui, 0=non)
        "enabled"     "1"               ← Activé (1=oui, 0=non)

        "PaintBackgroundType" "2"       ← Type de fond (0=aucun, 2=avec bord)

        "text_xpos"   "8"               ← Position texte X (relatif)
        "text_ypos"   "20"              ← Position texte Y (relatif)
        "digit_xpos"  "50"              ← Position chiffres X
        "digit_ypos"  "2"               ← Position chiffres Y
    }
}

🌈 Personnalisation des couleurs

Dans resource/ClientScheme.res, section BaseSettings :

Structure des couleurs

"BaseSettings"
{
    // Couleur au format RGBA (Rouge, Vert, Bleu, Alpha)
    // Valeurs : 0-255 pour chaque canal

    "FgColor"        "255 255 255 255"   ← Blanc opaque
    "BgColor"        "0 0 0 128"         ← Noir semi-transparent
    "Panel.FgColor"  "200 200 200 255"   ← Gris clair
    "Panel.BgColor"  "50 50 50 200"      ← Gris foncé
}

Format RGBA expliqué

"255 0 0 255"     → Rouge vif opaque
 │   │ │ │
 │   │ │ └─ Alpha (opacité) : 0=transparent, 255=opaque
 │   │ └─── Bleu  : 0-255
 │   └───── Vert  : 0-255
 └───────── Rouge : 0-255

Couleurs principales du HUD

"BaseSettings"
{
    // Texte
    "FgColor"              "255 255 255 255"   ← Texte normal
    "BrightFg"             "255 220 0 255"     ← Texte surligné

    // Arrière-plans
    "BgColor"              "0 0 0 76"          ← Fond normal
    "DamagedBg"            "180 0 0 200"       ← Fond quand blessé
    "DamagedFg"            "180 0 0 230"       ← Texte quand blessé
    "BrightDamagedFg"      "255 0 0 255"       ← Texte critique

    // Sélection d'armes
    "SelectionNumberFg"    "255 255 255 255"   ← Numéro arme
    "SelectionTextFg"      "255 255 255 255"   ← Nom arme
    "SelectionEmptyBoxBg"  "0 0 0 80"          ← Slot vide
    "SelectionBoxBg"       "0 0 0 80"          ← Slot avec arme
    "SelectionSelectedBoxBg" "0 0 0 80"        ← Arme sélectionnée

    // Zoom (sniper, etc.)
    "ZoomReticleColor"     "255 220 0 255"     ← Couleur réticule

    // Style HL1 (optionnel)
    "Yellowish"            "255 160 0 255"     ← Jaune orangé
    "Normal"               "255 208 64 255"    ← Jaune normal
    "Caution"              "255 48 0 255"      ← Rouge prudence
}

Modifier une fenêtre VGUI

Mettre votre souris sur une fenêtre et faire SHIFT+CTRL+ALT+B. Vous ouvrez le VGUI Build Mode Editor permettant de modifier une fenêtre.

Dans le fichier «ressource/clientscheme.res» nous pouvons modifier où est affiché le logo du jeu dans le menu.

On modifie sa position en X et Y les chiffres correspondent au pixel.

// Top-left corner of the  /"Half-Life 2 /" on the main screen

"Main.Title1.X" "53"

"Main.Title1.Y" "190"

"Main.Title1.Y_hidef" "184"

"Main.Title1.Color" "255 255 255 255"

Pour Changer la couleur des menus, dans le fichier «ressource/clientscheme.res».

///////////////////// BASE SETTINGS ////////////////////////

//

// default settings for all panels

// controls use these to determine their settings

BaseSettings

{

    "FgColor" "0 255 0 100"

    "FgColor_vrmode" "0 255 0 200"

    "BgColor" "0 0 0 76"

    "Panel.FgColor" "0 255 0 100"

    "Panel.BgColor" "0 0 0 76"

    "BrightFg" "0 255 0 255"

    "DamagedBg" "180 0 0 200"

    "DamagedFg" "180 0 0 230"

    "BrightDamagedFg" "255 0 0 255"

    // weapon selection colors

    "SelectionNumberFg" "0 255 0 255"

    "SelectionTextFg" "0 255 0 255"

    "SelectionEmptyBoxBg" "0 0 0 80"

    "SelectionBoxBg" "0 0 0 80"

    "SelectionSelectedBoxBg" "0 0 0 80"

    "ZoomReticleColor" " 255 220 0 255"

    // HL1-style HUD colors

    "Yellowish" "0 255 0 255"

    "Normal" "255 208 64 255"

    "Caution" "255 48 0 255"