aslain.dev
0%
01 Hizmetler 02 Hakkımda 03 Projeler 04 Stack 05 Blog 06 İletişim
← Tüm makaleler Metin2

Metin2 Texturen bearbeiten und DDS-Konvertierung

Metin2 Texture bearbeiten ist der direkteste Weg, deinem Server ein eigenständiges Aussehen zu geben: vom Umfärben eines einzelnen Items bis zum Bau eines völlig neuen Rüstungs-Skins läuft alles darauf hinaus, die DDS-Dateien, die der Client einliest, korrekt vorzubereiten. In dieser Anleitung gehe ich die komplette Pipeline Schritt für Schritt durch — eine Textur aus den Pack-Dateien extrahieren, sie in einem Bildeditor bearbeiten, als DDS mit der richtigen DXT-Kompression speichern und wieder in den Client einpacken.

Warum liegen Metin2-Texturen im DDS-Format vor?

Weil der Metin2-Client auf DirectX läuft, speichert er Texturdaten im GPU-freundlichen, blockkomprimierten Format — nämlich DDS (DirectDraw Surface). Dadurch bleiben Texturen komprimiert im Speicher und beim Zeichnen ist kein zusätzlicher Umwandlungsschritt nötig. In der Praxis begegnen dir drei Kompressionstypen:

  • DXT1 — für Texturen ohne Alpha (oder mit nur 1-Bit-An/Aus-Transparenz). Die kleinste Dateigröße; undurchsichtige Oberflächen wie Boden, Stein oder Holz.
  • DXT3 — für scharfe, nicht verlaufende Transparenz (zum Beispiel Masken mit harten Kanten).
  • DXT5 — für weiches, verlaufendes Alpha. Bevorzugt für Glas, Effekte, halbtransparenten Stoff und die meisten Item-Icons.

Hat eine Textur weiche Transparenzübergänge, wähle DXT5; hat sie gar kein Alpha, wähle DXT1. Das falsche Format erzeugt schmutzige Pixel entlang der Kanten oder unnötig große Dateien.

Die nötigen Werkzeuge

Bevor du anfängst, lege dir dieses Werkzeugset zurecht:

  • Ein Pack-Tool — um die .epk/.eix-Archive des Clients zu öffnen und wieder einzupacken (ein verbreitetes Tool wie EterNexus wird dafür genutzt).
  • Ein Bildeditor mit DDS-Plugin — das Intel/NVIDIA Texture Tools-Plugin für Photoshop oder als kostenlose Alternative der eingebaute DDS-Export von GIMP.
  • texconv — das Kommandozeilen-Tool aus Microsofts DirectXTex-Projekt; äußerst praktisch für Stapelkonvertierung und Mipmap-Erzeugung.

Wichtig: Sichere die originalen Pack-Dateien, an denen du arbeitest. Machst du beim Einpacken einen Fehler, willst du das beschädigte Archiv wiederherstellen können.

Die Textur aus den Pack-Dateien extrahieren

Im Metin2-Client liegen Texturen nicht in einfachen Ordnern; sie sind als Paare aus .eix (Index) und .epk (Paket) komprimiert. Öffne das Pack-Tool, lade das betreffende Archiv (meist Dateien im Ordner pack/), suche im Ordnerbaum die Textur des Items, das du bearbeiten willst, und exportiere sie. Pfade von Item-Texturen folgen meist einer Logik wie:

d:/ymir work/item/weapon/...
d:/ymir work/npc/...
icon/item/...

Um herauszufinden, welche DDS zu welchem Modell gehört, musst du die Definitionsdatei des Modells ansehen. Granny3D-Modelldateien (.gr2) referenzieren die Texturnamen; bekommst du die richtige Datei nicht festgenagelt, ist ein praktischer Trick, eine kleine Änderung an der Textur vorzunehmen und im Spiel zu beobachten, welches Item betroffen ist.

Die Textur bearbeiten

Wenn du die DDS in deinem Editor öffnest, behalte ein paar Punkte im Kopf:

  • Halte die Maße bei einer Zweierpotenz. 64×64, 128×128, 256×256, 512×512 und so weiter. DXT-Kompression arbeitet mit 4×4-Pixel-Blöcken, daher müssen die Kantenlängen durch vier teilbar sein. Ungerade Maße werfen beim Speichern einen Fehler.
  • Erhalte den Alphakanal. Die Transparenz liegt in einem separaten Kanal; achte beim Neueinfärben der Farbe darauf, das Alpha nicht versehentlich zu verflachen. Prüfe die Kanäle in Photoshop, die Ebenenmaske/den Alphakanal in GIMP.
  • Bleib dem UV-Layout treu. Die Textur ist nach dem UV-Unwrap des Modells gemalt. Verschiebst du die Muster, wirken sie auf dem Modell schief; teste so oft wie möglich am Modell im Spiel.

Für einfache Arbeiten wie einen Farbwechsel genügt eine Farbton/Sättigung-Anpassungsebene. Machst du eine umfassendere Neubemalung, bewahre deine Arbeit immer in einer Quelldatei mit Ebenen (.psd/.xcf) auf und betrachte die DDS rein als Export-Ausgabe.

Als DDS speichern und Mipmaps erzeugen

Ist die Bearbeitung fertig, ist das Speichern mit der richtigen Kompression und Mipmap-Einstellung entscheidend. Mipmaps sind vorab berechnete, verkleinerte Kopien der Textur; sie verhindern Flimmern (Shimmer) und Performanceprobleme, wenn der Charakter weit entfernt ist. Im Editor-Plugin wählst du einfach den DXT-Typ und hakst das Kästchen „Generate Mipmaps“ an.

Für Stapel- oder skriptgesteuerte Konvertierung ist texconv deutlich schneller. Um eine Textur mit weichem Alpha als DXT5 mit Mipmaps zu erzeugen:

texconv -f DXT5 -m 0 -o output\ skin.png

Hier legt -f DXT5 die Kompression fest, -m 0 erzeugt die vollständige Mipmap-Kette, und -o gibt den Ausgabeordner an. Für eine undurchsichtige Textur ohne Alpha nutze -f DXT1. Versuche, die resultierende DDS in derselben Größe und im selben Format zu halten wie die Datei, die du aus dem Editor geholt hast; der Client kann für bestimmte Texturen ein bestimmtes Format erwarten.

Zurück in den Client packen

Lade die bearbeitete DDS zurück ins Pack-Tool: öffne das betreffende Archiv, ersetze die Datei unter exakt demselben Pfad und Namen wie das Original, und speichere/packe das Archiv neu. Ändert sich Pfad oder Dateiname, findet der Client die Textur nicht und das Item erscheint weiß/transparent. Beim Testen nach dem Einpacken:

  • Schließe den Client vollständig und öffne ihn neu (die Textur könnte gecacht sein).
  • Prüfe das Item am Charakter, im Inventar und aus verschiedenen Entfernungen.
  • Siehst du schmutzige Pixel entlang der Kanten, überdenke den Kompressionstyp (vermutlich brauchst du DXT5 statt DXT1).

Häufige Fragen

Kann ich PNG verwenden und DDS überspringen?

Nein. Der Metin2-Client erwartet Texturdaten im blockkomprimierten Format der DDS; du kannst die Bearbeitung in PNG machen, musst aber nach DDS konvertieren, um sie ins Spiel zu bringen. Nutze PNG nur als Zwischen-/Quellformat.

Das Item sieht weiß oder transparent aus — warum?

Die zwei häufigsten Ursachen: die Datei wurde unter falschem Pfad/Namen gepackt, oder der Alphakanal ist beschädigt. Vergleiche den Pfad Buchstabe für Buchstabe mit dem Original und stelle sicher, dass du eine Textur mit Alpha als DXT5 und eine ohne Alpha als DXT1 gespeichert hast.

Warum sieht die Textur aus der Ferne kaputt/flimmernd aus?

Höchstwahrscheinlich hast du keine Mipmaps erzeugt. Exportiere die Textur erneut mit einer Mipmap-Kette; mit texconv baut der Parameter -m 0 die vollständige Kette automatisch auf.

Brauchst du individuelle Item- und Rüstungs-Skins für deinen Server? Ich kann den gesamten Prozess übernehmen, von der DDS-Bearbeitung bis zum modellgetreuen UV-Painting — kontaktiere mich und lass uns über dein Projekt sprechen.

Bu kategorideki tüm yazılar →

Devamı için