Mari kita mengambil situasi di mana Anda memiliki RPG dengan mantra dan setiap animasi mantra memiliki jumlah bingkai yang berbeda dan mereka memiliki persyaratan yang sangat berbeda untuk efek suara. Mari kita asumsikan bahwa setiap mantra hanya memiliki 1 animasi berkelanjutan yang terkait dengannya (sebagai lawan dari beberapa potongan modular yang digunakan untuk membentuk animasi penuh) dari game 16-bit Final Fantasy lama.
Satu-satunya cara saya dapat memikirkan untuk memastikan bahwa suara dan animasi disinkronkan adalah dengan:
- Dapatkan jumlah bingkai animasi.
- Dapatkan waktu di antara setiap bingkai animasi. (jika 30 fps maka 1/30 detik per frame.)
- Kemudian buat file suara yang panjangnya persis sama dengan animasi.
Jadi ini berarti bahwa jika animasi berdurasi 5 detik, berjalan pada 30 fps, dengan total 150 frame, file suara juga akan menjadi 5 detik. Jika animasi memiliki suara "benturan" pada bingkai ke-30, itu berarti file suara akan menyertakan suara benturan pada tanda 1,0 detik.
Pada akhirnya, kami memulai animasi dan efek suara pada waktu yang sama dan berharap bahwa frame dan suara sinkron.
Ini terdengar seperti itu dapat menimbulkan masalah ketika bingkai dilewati atau sesuatu terjadi selama animasi dan suara diputar sedikit terlalu cepat atau terlambat, dan akan menyebabkan suara dan animasi menjadi tidak selaras. Apakah ini pendekatan terbaik atau biasanya ada cara yang lebih baik yang tidak saya lihat?
Jawabannya tidak perlu untuk Cocos2D secara khusus jika konseptual, tetapi jika ada solusi spesifik untuk cocos2d, saya ingin mendengarnya.
EDIT: Saya juga baru menyadari bahwa dengan metode ini, jika kita masuk dan menyesuaikan jumlah frame atau waktu animasi nanti, kita juga harus kembali dan mengubah file suara. Ini kedengarannya seperti penyebab mengerikan kesalahan manusia (lupa memperbarui file suara setelah perubahan animasi.) Saya harap ada metode yang lebih baik di luar sana.