- Ticaret Puanı
- 0
- Katılım
- 19 Ocak 2026
- Mesajlar
- 277
- Tepkime puanı
- 225
- Puanları
- 0
- Web sitesi
- www.youtube.com
- Discord
- ayzekk.
- Mevcut Bakiye
- 4605 ₺
1. Giriş ve Karakter Varlık Kompozisyonu (Composite Entity Architecture)
Silkroad Online istemci motorunda (
sro_client.exe) ekranda yürüyen, savaşan veya zırh kuşanan bir oyuncu karakteri monolitik tek bir 3D model değildir. Doğrudan Joymax BSR (Binary Scene Resource) hiyerarşisi üzerinden çalışma zamanında dinamik olarak birleştirilen çok parçalı (composite) bir varlık grafiğidir.Tek bir karakterin görsel olarak oluşturulabilmesi için şu bağımsız varlık katmanları eşzamanlı olarak devreye girer:
- Karakter Kök Kaynağı (
res/char/*.bsr): Karakterin temel tanımını içerir (Type1 = 0). 9 temel vücut meşini, ortak iskeleti (.bsk), temel materyalleri (.bmt) ve silahsız/silahlı ~160 adet animasyon dosyasını (.ban) referanslar.- Zırh Kaynakları (
res/item/*/man_item/*.bsr): Kuşanılan zırh parçalarını tanımlar. Kendi iskeletleri yoktur; karakter iskeletine göre ağırlıklandırılmış ikame meşlerdir.- Silah / Kalkan Kaynakları (
res/item/*/weapon/*.bsr): Yerel iskeletlerine sahip bağımsız nesnelerdir; karakter kemiklerine soket mantığıyla bağlanırlar.---
2. Temel İskelet Hiyerarşisi ve Vücut Meşlerinin Bölünmesi
Çinli ve Avrupalı, kadın ve erkek tüm karakter modelleri 3ds Max Biped standartlarına dayanan Bip01 kemik hiyerarşisini temel alır:
Bu gizli bloğun içeriği yalnızca şu üyeler tarafından görülebilir. Bu İçerik Premium Üyelere Özeldir. Engelsiz Tüm Gizli İçerikleri Görmek İçin Premium Üyelik satın alabilirsiniz. Ücretli Üyelikler
Bir karakterin çıplak gövdesi sabit 7 genel parça ve 2 karaktere özgü parçadan (
.bms) oluşur:-
man_torso_upper.bms & man_torso_lower.bms: Üst ve alt gövde.-
man_arm_upper.bms & man_arm_lower.bms: Kollar ve eller.-
man_thigh.bms & man_calf.bms & man_pelvis.bms: Bacaklar, baldırlar ve kalça.-
*_face.bms & *_hair.bms: Yüz ve saç meşleri (Karakter görünümüne göre özelleşir).---
3. İkili Ekipman Montaj Mimarisi (Dual Attachment Architecture)
Joymax motorunda kuşanılabilir eşyalar, nesnenin kendi iskeletinin bulunup bulunmamasına göre iki temel yöntemle işlenir:
A. Zırhlar: İskeletsel İkame Meşler (Skinned Replacement)
Zırh parçaları (göğüslük, pantolon, bot, eldiven, omuzluk, kask) kendi iskeletine (
.bsk) sahip DEĞİLDİR. Bu parçaların meşleri, karakterin Bip01 iskeletine birebir uyumlu olarak ağırlıklandırılmıştır. Karakter bir zırh giydiğinde, motor ilgili vücut meşini gizler ve aynı kemik matrisleriyle zırh meşini çizer:
Bu gizli bloğun içeriği yalnızca şu üyeler tarafından görülebilir. Bu İçerik Premium Üyelere Özeldir. Engelsiz Tüm Gizli İçerikleri Görmek İçin Premium Üyelik satın alabilirsiniz. Ücretli Üyelikler
B. Silahlar ve Aksesuarlar: Rijit Kemik Montajı (Bone Attachment)
Silahlar, kalkanlar, kanatlar ve sırt aksesuarları katı (rigid) nesnelerdir. Kendi yerel iskeletlerine sahiptir (Örn:
Bone01, ai_start, ai_end). Bu nesneler BSR Section 2 içerisinde tanımlanan attach_bone dizesi ile karakter iskeletindeki hedef kemiğe çalışma zamanında hiyerarşik olarak bağlanır:
Bu gizli bloğun içeriği yalnızca şu üyeler tarafından görülebilir. Bu İçerik Premium Üyelere Özeldir. Engelsiz Tüm Gizli İçerikleri Görmek İçin Premium Üyelik satın alabilirsiniz. Ücretli Üyelikler
---
4. GPU Skinning ve Vertex Harmanlama (Dual-Weight Pipeline)
Karakter meşleri çizilirken her tepe noktası Direct3D 9 Vertex Shader register'larına aktarılan kemik dönüşüm matrisleri ile dönüştürülür:
Bu gizli bloğun içeriği yalnızca şu üyeler tarafından görülebilir. Bu İçerik Premium Üyelere Özeldir. Engelsiz Tüm Gizli İçerikleri Görmek İçin Premium Üyelik satın alabilirsiniz. Ücretli Üyelikler
---
5. Direct3D 9 Çizim Sırası ve Kompozisyon (Draw Order & Compositing)
Tam donanımlı bir karakterin doğru görsel derinlik ve alfa geçirgenliği ile render edilmesi için istemci motoru şu deterministik çizim sırasını takip eder:
1. İskelet Pozunun Hesaplanması: Aktif
.ban dosyasındaki anahtar kareler zaman aşımına göre Slerp (küresel rotasyon) ve Lerp (konum) enterpolasyonu ile çözümlenerek Bip01 kemik matrisleri güncellenir.2. Silah Soket Güncellemesi:
attach_bone dünya matrisi okunur ve kuşanılmış silahın kök matrisine aktarılır.3. Opak Vücut Meşlerinin Çizimi: Gizlenmemiş çıplak vücut meşleri için materyal (
.bmt) ve dokular (.ddj) bağlanarak DrawIndexedPrimitive çağrılır.4. Zırh Meşlerinin Çizimi: Kuşanılmış zırh parçaları aynı kemik matris havuzu kullanılarak opak modda çizilir.
5. Silah ve Kalkan Meşlerinin Çizimi: Soket matrisi ile konumlandırılan silah meşleri çizilir.
6. Alfa Testli ve Şeffaf Malzemeler: Saç (
*_hair.bms), pelerinler ve kanatlar Z-buffer yazma bayrağı açık tutularak opak geometrilerin ardından çizilir (BMT.flags & 0x0341 alfa test denetimi).7. Parçacık ve Ses Tetikleyicileri: BSR
Section 6 içerisindeki görsel efektler (.efp) ve sesler (.wav) animasyon tick zamanına göre senkronize tetiklenir.---
6. Sonuç
Silkroad Online karakter render mimarisi, dinamik donanım değiştirme ve rijit kemik montajını başarıyla harmanlayan hibrit bir sistemdir. Vücut parçalarının meş düzeyinde ayrılması ve slot bitmaskleri ile kontrol edilmesi, geometri çakışmalarını (clipping) önlerken donanım bant genişliğini koruyan zarif bir mühendislik çözümüdür.
Silkroad Geliştirici Camiasına Teşekkür ve Saygı
Bu kapsamlı teknik dokümantasyon, tersine mühendislik mimarisi ve protokol analizlerinin gün ışığına çıkmasında Silkroad ekosistemine yıllardır karşılıksız devasa emekler veren ve bu mirası ileriye taşımaya devam eden öncü geliştiricilerimize en içten teşekkürlerimizi sunarız:
DaxterSoul — Paket filtreleme, proxy mimarileri ve sunucu güvenliğindeki temel çalışmaları ve topluluğa kazandırdığı standartlar için,
florian0 — İstemci (Client) ve GameServer ikili (binary) tersine mühendisliği, hook ve assembly düzeyindeki rehber niteliğindeki araştırmaları için,
JellyBitz — Açık kaynak Silkroad araçları, paket analiz kütüphaneleri ve geliştirici ekosistemine sunduğu paha biçilmez açık kaynak yazılımlar için,
ferdoran — İstemci-sunucu protokol analizlerinin, opcode referanslarının ve teknik dokümantasyonun derlenip topluluğa kazandırılmasındaki büyük gayretleri için.
Silkroad geliştirici topluluğuna kattığınız değer, paylaştığınız bilgi birikimi ve sunduğunuz vizyon için sonsuz teşekkürler. İyi ki varsınız!




