Konunuzu takip ederken ilgiyle takip ediyorum, çünkü gerçekten yeni ve farklı bir şeyler yapıyorsunuz alışılagelmişin dışında bir şeyler katmaya çalışıyorsunuz. Bu nedenle gerçekten tebrik ediyorum.
- Kesinlikle belirtmek isterim, bu yorumu kesin bir bilgiyle yazmıyorum. Metin2 oyunu ve kaynak koduna hakim değilim.
Zannımca: Metin2 oyununda özel bir FX ile parçacık sistemi ve kütüphanesi kullanılmadığını tahmin ediyorum. 2000 yılı öncesi bir programlama yapısı olduğundan günümüz tool setleri o sıralarda kullanılmıyordu. Haliyle programcılar o zamanın koşullarına göre muhtemeldir ki state's yönetmek için bir yapı oluşturmuş olmalılar. Bana kalırsa ilk yorumumdan yine yola çıkarak bu kadar eski bir mimaride HDRP sisteme sahip olmak zor görünse de particle sisteminde olası bir değişime gidilebilir.
Yine tekrar belirtmek istiyorum ki, Metin2 kaynak koduna hakim değilim. Fakat biraz araştırdığım zaman .MSE, .MSA formatlarında animasyonları, stateleri ve parçacıkları yönetmek için bir dizi hareket betiği yapısı oluşturulmuş. Bu tür bir betik, genellikle bir karakter animasyonları veya hareketleri tanımlamak için kullanılır. Örnek bir datayı incelediğimde aldığım sonuç;
- "ScriptType": Emin değilim ancak bu betiğin tamamen tipini belirliyor gibi görünüyor.
- "MotionFileName": Hareket verisinin dosya yolunu gösteriyor ve bbu dosya, karakterin belirli bir animasyonunu içeriyor.
- "MotionDuration": Hareketin süresini saniye cinsinden belirtiyor
- "Group LoopData": Hareket döngüsünü tanımlamış. Hareketin belirli bir aralıkta sürekli olarak tekrarlanmasını veya döngüsünü sanırım burada kontrol ediyor.
- "Group MotionEventData": Hareket sırasında özel olayları veya ona benzer bişeyleri tetikliyor. Bazılarında görmüştüm misal, bir ses efekti veya özel bir efektin tetiklenmesi gibi.
Şimdi bu yapıya göz attığımızda tekniğin ve call'in çok eski olduğunu görüyoruz, bu yüzden benim tavsiyem biraz da macera sevdiğinizi de düşünürsek, CharacterRaceState yapısını Webzen'in yazdığı MotionData ile kullanmak yerine daha gelişmiş ve açık kaynaklı bir kütüphane ile değiştirmek olabilir.
Peki nasıl?
Örneğin burada en iyi önerim Disney tarafından sağlanan ve açık kaynaklı
Partio ile değiştirmeye çalışabilirsiniz.
Source:
Partio tavsiye nedenlerimden biride, Python API desteği bulunmasıdır. Bu ara katmanda kolaylıkla C++ kaynağıyla eşleştirebileceğinizi düşündürdü bana. Eğer yanılmıyorsam Metin2 oyunu kaynak kodunda Python taraflı çok fazla bağlam var.
Belirtmek istiyorum ki tekrar, bu tür bir library Metin2 oyununun modability için uygun mudur değil midir gerçekten bilemiyorum. Ben çalışmanıza katkı sağlayacak middleware kaynak sağlamaya çalışıyorum ve bilgim dahilinde yardımcı olmaya çalışıyorum. Yaptığınız şeyi gerçekten takdir ediyorum.
Sonucu veya değerlendirmenizi yazarsanız eğer bende bilgi edinmiş olurum.
İyi çalışmalar.