L'édition de textures Metin2 est le moyen le plus direct de donner une identité unique à ton serveur : du simple recolorage d'un objet à la création d'un tout nouveau skin d'armure, tout repose sur la préparation correcte des fichiers DDS que le client lit. Dans ce guide je détaille toute la chaîne étape par étape — extraire une texture des fichiers pack, l'éditer dans un logiciel d'image, l'enregistrer en DDS avec la bonne compression DXT, puis la réintégrer dans le client.
Pourquoi les textures Metin2 sont-elles au format DDS ?
Comme le client Metin2 fonctionne sous DirectX, il stocke les données de texture dans le format compressé par blocs que le GPU comprend directement — à savoir le DDS (DirectDraw Surface). Les textures restent ainsi compressées en mémoire et aucune conversion supplémentaire n'est nécessaire au moment du rendu. En pratique tu rencontreras trois types de compression :
DXT1— pour les textures sans canal alpha (ou avec une transparence on/off de 1 bit). La plus petite taille de fichier ; surfaces opaques comme le sol, la pierre ou le bois.DXT3— pour une transparence nette, sans dégradé (par exemple des masques à bords francs).DXT5— pour un alpha doux en dégradé. Privilégié pour le verre, les effets, les tissus semi-transparents et la plupart des icônes d'objets.
Si une texture présente des transitions de transparence douces, choisis DXT5 ; si elle n'a aucun alpha, choisis DXT1. Un mauvais format produit des pixels sales sur les bords ou des fichiers inutilement lourds.
Les outils nécessaires
Avant de commencer, prépare cet ensemble d'outils :
- Un outil de pack — pour ouvrir et réempaqueter les archives
.epk/.eixdu client (un outil courant comme EterNexus sert à cela). - Un éditeur d'image avec un plugin DDS — le plugin Intel/NVIDIA Texture Tools pour Photoshop, ou comme alternative gratuite l'export DDS intégré de GIMP.
- texconv — l'outil en ligne de commande du projet DirectXTex de Microsoft ; très pratique pour la conversion par lot et la génération de mipmaps.
Important : sauvegarde les fichiers pack originaux sur lesquels tu vas travailler. Si tu fais une erreur lors du réempaquetage, tu voudras restaurer l'archive endommagée.
Extraire la texture des fichiers pack
Dans le client Metin2, les textures ne sont pas dans de simples dossiers ; elles sont compressées sous forme de paires .eix (index) et .epk (paquet). Ouvre l'outil de pack, charge l'archive concernée (généralement des fichiers du dossier pack/), trouve la texture de l'objet à éditer dans son arborescence et exporte-la. Les chemins de textures d'objets suivent généralement une logique du type :
d:/ymir work/item/weapon/...
d:/ymir work/npc/...
icon/item/...
Pour savoir quel DDS appartient à quel modèle, il faut consulter le fichier de définition du modèle. Les fichiers de modèle Granny3D (.gr2) référencent les noms de textures ; si tu n'arrives pas à identifier le bon fichier, une astuce pratique consiste à appliquer une petite modification à la texture et à observer en jeu quel objet est affecté.
Éditer la texture
Quand tu ouvres le DDS dans ton éditeur, garde quelques points à l'esprit :
- Garde des dimensions en puissance de deux. 64×64, 128×128, 256×256, 512×512, etc. La compression DXT travaille sur des blocs de 4×4 pixels, donc les longueurs de côté doivent être divisibles par quatre. Des dimensions étranges provoquent une erreur à l'enregistrement.
- Préserve le canal alpha. La transparence se trouve dans un canal séparé ; en repeignant la couleur, fais attention à ne pas aplatir l'alpha par accident. Vérifie les couches dans Photoshop, le masque de calque/canal alpha dans GIMP.
- Reste fidèle au dépliage UV. La texture est peinte selon le dépliage UV du modèle. Si tu décales les motifs, ils paraîtront déformés sur le modèle ; teste sur le modèle en jeu aussi souvent que possible.
Pour des travaux simples comme un changement de couleur, un calque de réglage teinte/saturation suffit. Pour un repeint plus poussé, conserve toujours ton travail dans un fichier source à calques (.psd/.xcf) et considère le DDS uniquement comme un export.
Enregistrer en DDS et générer les mipmaps
Une fois l'édition terminée, enregistrer avec la bonne compression et le bon réglage de mipmaps est crucial. Les mipmaps sont des copies réduites précalculées de la texture ; ils évitent le scintillement et les problèmes de performance quand le personnage est loin. Dans le plugin de l'éditeur, il suffit de choisir le type DXT et de cocher la case « Generate Mipmaps ».
Pour une conversion par lot ou scriptée, texconv est bien plus rapide. Pour produire une texture à alpha doux en DXT5 avec mipmaps :
texconv -f DXT5 -m 0 -o output\ skin.png
Ici -f DXT5 définit la compression, -m 0 génère la chaîne complète de mipmaps, et -o indique le dossier de sortie. Pour une texture opaque sans alpha, utilise -f DXT1. Essaie de garder le DDS résultant à la même taille et au même format que le fichier sorti de l'éditeur ; le client peut attendre un format précis pour certaines textures.
Réintégrer dans le client
Recharge le DDS édité dans l'outil de pack : ouvre l'archive concernée, remplace le fichier au chemin et nom exactement identiques à l'original, puis enregistre/réempaquette l'archive. Si le chemin ou le nom change, le client ne trouve pas la texture et l'objet apparaît blanc/transparent. Lors du test après réempaquetage :
- Ferme complètement et rouvre le client (la texture a pu être mise en cache).
- Vérifie l'objet sur le personnage, dans l'inventaire et à différentes distances.
- Si tu vois des pixels sales sur les bords, revois le type de compression (il te faut probablement DXT5 au lieu de DXT1).
Questions fréquentes
Puis-je utiliser du PNG et me passer du DDS ?
Non. Le client Metin2 attend les données de texture au format compressé par blocs du DDS ; tu peux éditer en PNG, mais tu dois convertir en DDS pour l'intégrer au jeu. N'utilise le PNG que comme format intermédiaire/source.
L'objet apparaît blanc ou transparent — pourquoi ?
Les deux causes les plus fréquentes : le fichier a été empaqueté sous un mauvais chemin/nom, ou le canal alpha est corrompu. Compare le chemin lettre par lettre avec l'original, et assure-toi d'avoir enregistré une texture avec alpha en DXT5 et une sans alpha en DXT1.
Pourquoi la texture paraît-elle dégradée/scintillante de loin ?
Tu n'as très probablement pas généré de mipmaps. Réexporte la texture avec une chaîne de mipmaps ; avec texconv, le paramètre -m 0 construit automatiquement la chaîne complète.
Besoin de skins d'objets et d'armures sur mesure pour ton serveur ? Je peux prendre en charge tout le processus, de l'édition DDS à la peinture UV fidèle au modèle — contacte-moi et parlons de ton projet.