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

Metin2 Texture Düzenleme ve DDS Dönüştürme Rehberi

Metin2 texture düzenleme, kendi sunucuna özgün bir görünüm kazandırmanın en doğrudan yoludur: bir eşyanın rengini değiştirmekten yepyeni bir zırh kaplaması üretmeye kadar her şey, istemcinin okuduğu DDS dosyalarını doğru biçimde hazırlamaktan geçer. Bu rehberde dokuyu pack dosyalarından çıkarma, bir görüntü editöründe düzenleme, doğru DXT sıkıştırmasıyla DDS olarak kaydetme ve istemciye geri paketleme adımlarını sırayla anlatıyorum.

Metin2 dokuları neden DDS formatında?

Metin2 istemcisi DirectX tabanlı çalıştığı için doku verisini doğrudan GPU'nun anlayacağı sıkıştırılmış blok formatında — yani DDS (DirectDraw Surface) — tutar. Bu sayede dokular bellekte sıkıştırılmış halde durur ve çizim sırasında ekstra bir dönüştürme gerekmez. Pratikte üç sıkıştırma türüyle karşılaşırsın:

  • DXT1 — alfa kanalı olmayan (veya yalnızca 1-bit on/off saydamlık) dokular için. En küçük dosya boyutu; zemin, taş, ahşap gibi opak yüzeyler.
  • DXT3 — keskin, kademesiz saydamlık için (örneğin sert kenarlı maskeler).
  • DXT5 — yumuşak, geçişli alfa için. Cam, efekt, yarı saydam kumaş ve çoğu eşya ikonunda tercih edilir.

Bir dokunun yumuşak saydamlık geçişleri varsa DXT5, hiç alfası yoksa DXT1 seç. Yanlış format seçmek kenarlarda kirli pikseller veya gereksiz büyük dosyalar üretir.

Gerekli araçlar

Çalışmaya başlamadan önce şu araç setini hazırla:

  • Pack aracı — istemcinin .epk/.eix arşivlerini açıp tekrar paketlemek için (EterNexus gibi yaygın bir araç bu iş için kullanılır).
  • Görüntü editörü + DDS eklentisi — Photoshop için Intel/NVIDIA Texture Tools eklentisi, ya da ücretsiz bir alternatif olarak GIMP'in dahili DDS dışa aktarımı.
  • texconv — Microsoft'un DirectXTex projesinden gelen komut satırı aracı; toplu dönüştürme ve mipmap üretimi için çok kullanışlıdır.

Önemli: Üzerinde çalışacağın orijinal pack dosyalarının yedeğini al. Geri paketleme sırasında bir hata yaparsan bozulan arşivi geri yüklemek isteyeceksin.

Dokuyu pack dosyalarından çıkarma

Metin2 istemcisinde dokular düz klasörlerde durmaz; .eix (indeks) ve .epk (paket) çiftleri halinde sıkıştırılmıştır. Pack aracını açıp ilgili arşivi (genellikle pack/ klasöründeki dosyalar) yükle, içindeki klasör ağacında düzenlemek istediğin eşyanın dokusunu bul ve dışarı aktar. Eşya dokularının yolu çoğunlukla şu mantığı izler:

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

Hangi DDS dosyasının hangi modele ait olduğunu bulmak için modelin tanım dosyasına bakman gerekir. Granny3D model dosyaları (.gr2) doku adlarını referans tutar; doğru dosyayı bulamıyorsan dokuyu küçük bir değişiklikle test edip oyunda hangi eşyanın etkilendiğini gözlemlemek pratik bir yöntemdir.

Dokuyu düzenleme

DDS dosyasını editöre açtığında dikkat etmen gereken birkaç nokta var:

  • Boyutu ikinin kuvveti tut. 64×64, 128×128, 256×256, 512×512 gibi. DXT sıkıştırması 4×4 piksellik bloklar üzerinden çalışır, dolayısıyla kenar uzunluklarının dörde bölünmesi şarttır. Garip boyutlar kaydetme sırasında hata verir.
  • Alfa kanalını koru. Saydamlık bilgisi ayrı bir kanalda durur; rengi boyarken alfayı yanlışlıkla düzleştirmemeye dikkat et. Photoshop'ta kanalları, GIMP'te katman maskesini/alfa kanalını kontrol et.
  • UV düzenine sadık kal. Doku, modelin UV açılımına göre boyanmıştır. Desenleri kaydırırsan model üzerinde yamuk görünür; mümkünse modeli oyunda sık sık test et.

Renk değişimi gibi basit işler için tonlama (hue/saturation) katmanı yeterli olur. Daha kapsamlı bir yeniden boyama yapıyorsan, çalışmanı her zaman katmanlı bir kaynak dosyada (.psd/.xcf) sakla ve DDS'i yalnızca dışa aktarım çıktısı olarak gör.

DDS olarak kaydetme ve mipmap üretimi

Düzenleme bitince doğru sıkıştırma ve mipmap ayarıyla kaydetmek kritik. Mipmaplar, dokunun küçülerek hesaplanmış kopyalarıdır; karakter uzaktayken titreşim (shimmer) ve performans sorunlarını önler. Editör eklentisinde DXT türünü seçip "Generate Mipmaps" kutusunu işaretlemen yeterli.

Toplu iş ya da betikle dönüştürme yapıyorsan texconv çok daha hızlıdır. Yumuşak alfalı bir dokuyu mipmaplı DXT5 olarak üretmek için:

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

Burada -f DXT5 sıkıştırmayı, -m 0 tam mipmap zinciri üretmeyi, -o ise çıktı klasörünü belirtir. Alfası olmayan opak bir doku için -f DXT1 kullan. Çıkan DDS'i editöründen aldığın dosyayla aynı boyut ve formatta tutmaya çalış; istemci bazı dokularda belirli bir format bekleyebilir.

İstemciye geri paketleme

Düzenlenmiş DDS'i pack aracına geri yükle: ilgili arşivi aç, dosyayı orijinaliyle birebir aynı yol ve isimle değiştir, ardından arşivi kaydet/yeniden paketle. Yol veya dosya adı değişirse istemci dokuyu bulamaz ve eşya beyaz/şeffaf görünür. Paketlemeden sonra test ederken:

  • İstemciyi tamamen kapatıp yeniden aç (doku önbelleğe alınmış olabilir).
  • Eşyayı karakter üzerinde, envanterde ve farklı uzaklıklardan kontrol et.
  • Kenarlarda kirli pikseller görürsen sıkıştırma türünü gözden geçir (muhtemelen DXT1 yerine DXT5 gerekiyordur).

Sık Sorulan Sorular

PNG kullanıp DDS'i atlayabilir miyim?

Hayır. Metin2 istemcisi doku verisini DDS'in blok-sıkıştırılmış formatında bekler; düzenlemeyi PNG'de yapabilirsin ama oyuna mutlaka DDS olarak dönüştürerek koymalısın. PNG'yi yalnızca ara/kaynak format olarak kullan.

Eşya beyaz veya saydam görünüyor, sebebi ne?

En sık iki neden: dosya yanlış yola/isimle paketlenmiş ya da alfa kanalı bozulmuş olabilir. Yolu orijinaliyle harf harf karşılaştır ve alfası olan dokuyu DXT5 ile, alfasızı DXT1 ile kaydettiğinden emin ol.

Doku neden uzaktan bozuk/titrek görünüyor?

Büyük olasılıkla mipmap üretmemişsindir. Dokuyu mipmap zinciriyle yeniden dışa aktar; texconv ile -m 0 parametresi tam zinciri otomatik kurar.

Sunucun için özgün eşya ve zırh kaplamaları mı gerekiyor? DDS düzenlemeden modele uygun UV boyamaya kadar tüm süreci üstlenebilirim — benimle iletişime geç ve projeni konuşalım.

Bu kategorideki tüm yazılar →

Devamı için