- Penjelasan tentang mod yang dibuat pada 2021 untuk meningkatkan lip-sync dan animasi berkedip di Deus Ex 1
- Pengembang menemukan bahwa implementasi lip-sync pada game asli tidak pernah berfungsi dengan benar sejak pertama dirilis
- Ia menganalisis bahwa metode ekstraksi fonem dan pemetaan bentuk mulut yang mirip dengan Half-Life 2 milik Valve juga diterapkan di Deus Ex
- Dengan memperbaiki masalah pemeriksaan frame rate yang keliru dan timing blending di dalam kode Unrealscript, ia berhasil mewujudkan animasi yang lebih alami
- Untuk implementasi yang benar-benar sempurna, masih diperlukan penyelesaian tambahan pada masalah frekuensi pembaruan fonem
Pengantar dan latar belakang
- Mod ini adalah proyek untuk meningkatkan lip-sync dialog karakter dan animasi kedipan mata di Deus Ex 1
- Di game asli, perilaku lip-sync dan kedipan mata diimplementasikan secara tidak normal sejak peluncuran
- Penulis merangkum dan memperkenalkan pekerjaan yang sebelumnya dipublikasikan di Twitter pribadinya
- Unduhan mod disediakan melalui tautan terpisah (ModDB)
Penyelidikan implementasi lip-sync lama
- Saat bermain, ia mengidentifikasi masalah pergantian bentuk mulut pada lip-sync dan fenomena animasi yang aneh
- Mengacu pada wawancara Chris Norden (pengembang Deus Ex): sistem lip-sync awalnya canggih, tetapi disederhanakan karena alasan performa
- Ia meninjau sejauh mana implementasinya ada di bagian Unrealscript dan apakah bisa diperbaiki
- Kode sumber tidak tersedia, dan hanya skrip yang dapat diakses
Cara kerja lip-sync
- Penulis sebelumnya sudah memiliki pengalaman menganalisis sistem lip-sync Half-Life 2
- Valve menggunakan metode mengekstrak fonem dari file suara, lalu menambahkan informasi bahasa itu ke akhir file .wav, dan saat runtime mengganti bentuk mulut (viseme) sesuai timing tersebut
- Metode ini memiliki keunggulan mengurangi beban saat berjalan berkat ekstraksi fonem sebelumnya
Masalah struktural di Deus Ex
- Di Deus Ex, informasi fonem tampaknya tidak disimpan di mana pun, sehingga kemungkinan diekstrak secara real time saat runtime
- Hasil analisis Unrealscript menunjukkan bahwa sistem ini berbasis vertex animation, bukan skeletal animation, dan hanya menyediakan total 7 bentuk mulut serta 1 animasi kedipan mata
- Dari sistem audio eksternal, nextphoneme diatur ke A, E, F, M, O, T, U, atau X (keadaan mulut tertutup), lalu skrip karakter mengganti bentuk mulut sesuai nilai itu
Bug dan pekerjaan perbaikan
- Pada kode asli, logika penentuan frame rate bekerja terbalik, sehingga bentuk mulut langsung berganti bahkan pada frame rate tinggi
- Durasi blending (tweentime) disetel terlalu singkat (0,1 detik) sehingga kesan perpindahan alami hilang
- Ia mengabaikan kondisi pemeriksaan frame rate dan menyesuaikan tweentime menjadi cukup panjang (0,35 detik)
- Hasilnya, lip-sync tersambung lebih mulus
Penanganan mulut tertutup dan kedipan mata
- Ia menambahkan logika ekstra agar blending alami juga diterapkan saat mulut menutup setelah dialog selesai
- Sebelumnya logika animasi hanya memeriksa bIsSpeaking, tetapi kini diperbaiki agar animasi lip-sync selalu berjalan
- Kecepatan kedipan mata juga disesuaikan agar tetap bisa terus dikenali oleh pengguna
Batasan struktural dan kekurangan
- Frekuensi pembaruan nextphoneme sendiri tidak teratur, dan ada batasan struktural karena tidak diperbarui pada setiap tick
- Akibatnya, sekalipun semua blending diterapkan dengan benar, pengalaman lip-sync yang sempurna tetap tidak mungkin
- Jika pembaruannya berlangsung pada frekuensi yang konsisten, kecepatan blending bisa dioptimalkan mengikuti itu, tetapi dengan struktur saat ini hal tersebut tidak bisa dilakukan
- Ada juga inefisiensi kode, seperti logika yang sama diimplementasikan secara duplikat pada kelas NPC dan karakter pemain
Contoh kode akhir hasil perbaikan
- Di bagian bawah artikel, disediakan seluruh kode fungsi lip-sync yang telah ditingkatkan
- Poin perbaikan utama: mengabaikan penentuan frame rate, memperbesar tweentime secara signifikan, penutupan mulut yang halus setelah dialog selesai, serta penyesuaian frekuensi dan kecepatan kedipan mata
Kesimpulan
- Dengan mod ini, pengguna dapat merasakan animasi lip-sync dan kedipan mata yang jauh lebih alami dan lebih baik dibanding versi asli
- Karena keterbatasan struktural, lip-sync yang sepenuhnya sempurna masih sulit dicapai, tetapi ini adalah solusi terbaik yang dapat diakses saat ini
Belum ada komentar.