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

Metin2 texture bewerken en DDS-conversie

Metin2 texture bewerken is de meest directe manier om je server een unieke uitstraling te geven: van het verkleuren van één enkel item tot het bouwen van een gloednieuwe armor-skin, alles draait om het correct voorbereiden van de DDS-bestanden die de client inleest. In deze gids loop ik de volledige pijplijn stap voor stap door — een texture uit de pack-bestanden halen, hem in een afbeeldingseditor bewerken, opslaan als DDS met de juiste DXT-compressie, en weer inpakken in de client.

Waarom staan Metin2 textures in DDS-formaat?

Omdat de Metin2 client op DirectX draait, slaat hij textuurdata op in het GPU-vriendelijke, blok-gecomprimeerde formaat — namelijk DDS (DirectDraw Surface). Zo blijven textures gecomprimeerd in het geheugen en is er bij het renderen geen extra conversie nodig. In de praktijk kom je drie compressietypes tegen:

  • DXT1 — voor textures zonder alpha (of slechts 1-bit aan/uit-transparantie). De kleinste bestandsgrootte; ondoorzichtige oppervlakken zoals grond, steen of hout.
  • DXT3 — voor scherpe, niet-geleidelijke transparantie (bijvoorbeeld maskers met harde randen).
  • DXT5 — voor zachte, verlopende alpha. De voorkeur voor glas, effecten, halftransparante stof en de meeste item-iconen.

Heeft een texture vloeiende transparantieovergangen, kies dan DXT5; heeft hij helemaal geen alpha, kies dan DXT1. Het verkeerde formaat kiezen levert vuile pixels langs de randen op of onnodig grote bestanden.

De benodigde gereedschappen

Voor je begint, zet deze gereedschapsset klaar:

  • Een pack-tool — om de .epk/.eix-archieven van de client te openen en weer in te pakken (een veelgebruikte tool zoals EterNexus wordt hiervoor ingezet).
  • Een afbeeldingseditor met een DDS-plugin — de Intel/NVIDIA Texture Tools-plugin voor Photoshop, of als gratis alternatief de ingebouwde DDS-export van GIMP.
  • texconv — de command-line tool uit het DirectXTex-project van Microsoft; bijzonder handig voor batchconversie en het genereren van mipmaps.

Belangrijk: maak een back-up van de originele pack-bestanden waaraan je werkt. Maak je een fout bij het opnieuw inpakken, dan wil je het beschadigde archief kunnen herstellen.

De texture uit de pack-bestanden halen

In de Metin2 client staan textures niet in gewone mappen; ze zijn gecomprimeerd als paren van .eix (index) en .epk (pakket). Open de pack-tool, laad het betreffende archief (meestal bestanden in de map pack/), zoek in de mappenboom de texture van het item dat je wilt bewerken en exporteer hem. Paden van item-textures volgen meestal een logica als:

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

Om te achterhalen welke DDS bij welk model hoort, moet je het definitiebestand van het model bekijken. Granny3D-modelbestanden (.gr2) verwijzen naar de textuurnamen; lukt het niet om het juiste bestand vast te pinnen, dan is een praktische truc een kleine wijziging op de texture toepassen en in het spel observeren welk item verandert.

De texture bewerken

Als je de DDS in je editor opent, houd dan een paar punten in gedachten:

  • Houd de afmetingen een macht van twee. 64×64, 128×128, 256×256, 512×512, enzovoort. DXT-compressie werkt op blokken van 4×4 pixels, dus de zijlengtes moeten deelbaar zijn door vier. Vreemde afmetingen geven een fout bij het opslaan.
  • Behoud het alphakanaal. De transparantie zit in een apart kanaal; let er bij het herschilderen van de kleur op dat je het alpha niet per ongeluk platdrukt. Controleer de kanalen in Photoshop, het laagmasker/alphakanaal in GIMP.
  • Blijf trouw aan de UV-layout. De texture is geschilderd volgens de UV-unwrap van het model. Verschuif je de patronen, dan ogen ze scheef op het model; test zo vaak mogelijk op het model in het spel.

Voor eenvoudige klussen zoals een kleurwissel volstaat een tint/verzadiging-aanpassingslaag. Doe je een grondiger overschildering, bewaar je werk dan altijd in een bronbestand met lagen (.psd/.xcf) en zie de DDS puur als exportuitvoer.

Opslaan als DDS en mipmaps genereren

Is het bewerken klaar, dan is opslaan met de juiste compressie en mipmap-instelling cruciaal. Mipmaps zijn vooraf berekende, verkleinde kopieën van de texture; ze voorkomen geflikker (shimmer) en performanceproblemen wanneer het personage ver weg is. In de editor-plugin kies je simpelweg het DXT-type en vink je het vakje "Generate Mipmaps" aan.

Voor batch- of scriptmatige conversie is texconv veel sneller. Om een texture met zachte alpha als DXT5 met mipmaps te maken:

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

Hier stelt -f DXT5 de compressie in, genereert -m 0 de volledige mipmap-keten, en geeft -o de uitvoermap aan. Voor een ondoorzichtige texture zonder alpha gebruik je -f DXT1. Probeer de resulterende DDS op dezelfde grootte en in hetzelfde formaat te houden als het bestand dat je uit de editor haalde; de client kan voor bepaalde textures een specifiek formaat verwachten.

Terug inpakken in de client

Laad de bewerkte DDS terug in de pack-tool: open het betreffende archief, vervang het bestand onder exact hetzelfde pad en dezelfde naam als het origineel, en sla het archief op / pak het opnieuw in. Verandert het pad of de bestandsnaam, dan kan de client de texture niet vinden en verschijnt het item wit/transparant. Bij het testen na het inpakken:

  • Sluit de client volledig af en open hem opnieuw (de texture kan gecachet zijn).
  • Controleer het item op het personage, in de inventaris en op verschillende afstanden.
  • Zie je vuile pixels langs de randen, herzie dan het compressietype (waarschijnlijk heb je DXT5 nodig in plaats van DXT1).

Veelgestelde vragen

Kan ik PNG gebruiken en DDS overslaan?

Nee. De Metin2 client verwacht textuurdata in het blok-gecomprimeerde formaat van DDS; je kunt het bewerken in PNG doen, maar je moet het naar DDS converteren om het in het spel te zetten. Gebruik PNG alleen als tussen-/bronformaat.

Het item ziet er wit of transparant uit — waarom?

De twee meest voorkomende oorzaken: het bestand is onder het verkeerde pad/de verkeerde naam ingepakt, of het alphakanaal is beschadigd. Vergelijk het pad letter voor letter met het origineel, en zorg dat je een texture mét alpha als DXT5 en eentje zónder alpha als DXT1 hebt opgeslagen.

Waarom ziet de texture er van een afstand kapot/flikkerend uit?

Hoogstwaarschijnlijk heb je geen mipmaps gegenereerd. Exporteer de texture opnieuw met een mipmap-keten; met texconv bouwt de parameter -m 0 de volledige keten automatisch op.

Custom item- en armor-skins nodig voor je server? Ik kan het hele proces verzorgen, van DDS-bewerking tot modelgetrouw UV-schilderen — neem contact op en laten we het over je project hebben.

Bu kategorideki tüm yazılar →

Devamı için