- 2021'de hazırlanan bu mod, Deus Ex 1 için dudak senkronunu ve göz kırpma animasyonlarını iyileştiriyor
- Geliştirici, orijinal oyundaki dudak senkronu uygulamasının çıkıştan beri düzgün çalışmadığını fark ediyor
- Valve'ın Half-Life 2'de kullandığına benzer bir fonem çıkarımı ve ağız şekli eşleme yönteminin Deus Ex'te de uygulandığını analiz ediyor
- Unrealscript kodu içindeki hatalı kare hızı kontrolü ve blending zamanlaması sorunları düzeltilerek daha doğal animasyonlar elde ediliyor
- Kusursuz bir uygulama için fonem güncelleme sıklığı sorununu çözmek hâlâ gerekiyor
Giriş ve arka plan
- Bu mod, Deus Ex 1 karakterlerinin diyalog sırasındaki dudak senkronu ve göz kırpma animasyonlarını iyileştiren bir proje
- Orijinal oyunda dudak senkronu davranışı ve göz kırpma animasyonları çıkış anından itibaren hatalı uygulanmış
- Yazar, daha önce Twitter'da paylaştığı çalışma sürecini derleyip burada tanıtıyor
- Mod indirme bağlantısı ayrı bir sayfada sunuluyor: ModDB
Mevcut dudak senkronu uygulamasının incelenmesi
- Oyun sırasında dudak senkronundaki ağız şekli geçiş sorunları ve tuhaf animasyon davranışları tespit ediliyor
- Chris Norden'ın (Deus Ex geliştiricisi) röportajına göre, ilk dudak senkronu sistemi oldukça gelişmişti ancak performans gerekçeleriyle sadeleştirildi
- Unrealscript tarafında ne kadarının gerçekten uygulanmış olduğu ve bunun ne ölçüde düzeltilebileceği inceleniyor
- Kaynak kodu yok; yalnızca script'lere erişilebiliyor
Dudak senkronunun çalışma mantığı
- Yazarın daha önce Half-Life 2 dudak senkronu sistemini analiz etmiş olması nedeniyle bu konuda deneyimi bulunuyor
- Valve, ses dosyalarındaki fonemleri (phoneme) çıkarıp dil bilgisini
.wav dosyasının sonuna ekliyor; çalışma anında da uygun zamanlarda ağız şekilleri (viseme) arasında geçiş yapıyor
- Bu yaklaşım, fonemleri önceden çıkararak çalışma sırasındaki yükü azaltma avantajı sağlıyor
Deus Ex'in yapısal sorunları
- Deus Ex'te fonem bilgilerinin herhangi bir yerde saklanmadığı, bu yüzden çalışma anında gerçek zamanlı çıkarım yapılıyor olabileceği düşünülüyor
- Unrealscript analizi sonucunda sistemin skeletal animation yerine vertex animation tabanlı olduğu ve toplam 7 ağız şekli ile 1 göz kırpma animasyonu sunduğu görülüyor
- Harici ses sistemi
nextphoneme değerini A, E, F, M, O, T, U veya X (ağzın kapalı olduğu durum) olarak belirliyor; karakter script'i de buna göre ağız şeklini değiştiriyor
Hatalar ve iyileştirme çalışmaları
- Orijinal kodda kare hızı değerlendirme mantığı ters çalışıyor, bu yüzden yüksek kare hızında bile ağız şekilleri anında değişiyor
- Blending süresi (
tweentime) fazla kısa (0.1 saniye) ayarlandığı için doğal geçiş hissi kayboluyor
- Kare hızı kontrol koşulu görmezden gelinerek
tweentime yeterince uzun olacak şekilde (0.35 saniye) ayarlanıyor
- Sonuç olarak dudak senkronu çok daha akıcı şekilde bağlanıyor
Ağzı kapatma ve göz kırpma işlemleri
- Replik bittikten sonra ağzı kapatırken de doğal blending uygulanması için ek mantık ekleniyor
- Animasyon mantığı daha önce yalnızca
bIsSpeaking değişkenini kontrol ederken, artık dudak senkronu animasyonunun sürekli çalışması sağlanıyor
- Göz kırpma hızı da kullanıcı tarafından sürekli fark edilebilir olacak şekilde ayarlanıyor
Yapısal sınırlar ve eksikler
nextphoneme güncelleme sıklığı düzensiz ve her tick'te güncellenmiyor; bu da yapısal bir sınır oluşturuyor
- Bu yüzden tüm blending düzgün uygulansa bile kusursuz bir dudak senkronu deneyimi mümkün olmuyor
- Eğer güncellemeler sabit aralıklarla yapılsaydı blending hızı buna göre optimize edilebilirdi, ancak mevcut yapıda bu mümkün değil
- NPC ve oyuncu karakter sınıflarında aynı mantığın tekrarlı biçimde uygulanması gibi kod verimsizlikleri de mevcut
Son düzeltmeye ait örnek kod
- Yazının alt kısmında iyileştirilmiş dudak senkronu fonksiyonunun tam kodu paylaşılıyor
- Başlıca iyileştirmeler: kare hızı kontrolünün yok sayılması,
tweentime değerinin ciddi ölçüde artırılması, replik sonrasında yumuşak ağız kapama, göz kırpma sıklığı ve hızının ayarlanması
Sonuç
- Bu mod sayesinde orijinal sürüme kıyasla çok daha doğal ve geliştirilmiş dudak senkronu ile göz kırpma animasyonları elde edilebiliyor
- Yapısal kısıtlar nedeniyle tam anlamıyla kusursuz dudak senkronu zor olsa da, şu anda erişilebilir en iyi çözüm bu
Henüz yorum yok.