Las dos cosas que veremos en este tutorial son sonidos y música y voces, LAS TRES cosas que veremos en este tutorial son sonidos, música y voces y un extra sobre listas, LAS CUATRO… eh… entre las cosas que veremos en este tutorial… déjenme empezar de nuevo.
Ya tenemos una Visual Novel que muestra diálogos y quien dice que cosa, que guarda información del juego y que muestra imágenes… pero todavía no tenemos sonido de ningún tipo, así que resolvamos eso hoy.
Ren’Py acepta los formatos básicos de audio, .wav, .mp3 y .ogg. Estos se pueden reproducir en uno de varios canales, los canales son básicamente el «espacio» del programa donde se reproduce el audio, estos pueden tener alguna configuración especifica entre ellos, pero su motivo principal de existir en «espacios» diferentes es que si algo se empieza a reproducir en un canal otra cosa puede reproducirse en paralelo en otra.
Creo que lo entenderán mejor de este modo, los tres canales de audio por defecto de Ren’Py son:
El canal de música (music), reproduce el sonido provisto en loop hasta que se detenga o cambie de archivo. Es el usado para la música de fondo.
El canal de sonidos (sound), reproduce el archivo provisto una vez sin importar si algo está sonando de música de fondo. Es el usado para efectos de sonido.
Y finalmente el canal de voces (voice), es similar al canal de sonidos pero tiene soporte para un sistema de tags relativo al personaje que habla. Es el usado (Obviamente) para reproducir ruido blanco ultrasónico.
También pueden hacer su propio canal personalizado, pero no lo veremos ahorita.
Indiferentemente del canal los comandos usados en cada caso son:
Para reproducir el archivo decimos: play [canal] [archivo], por ejemplo:
play music "baby_dropping.mp3"
Para detener el archivo le decimos: stop [canal], por ejemplo:
stop music
Y para poner en cola un archivo que se reproducirá luego de que el actual termine decimos: queue [canal] [archivo], por ejemplo:
play sound "frandrescherslaugh.mp3"
queue sound "frandrescherslaugh.mp3"
Un detalle divertido es que no necesariamente tenemos que nombrar el archivo en cada ocasión, si queremos ahorrarnos tener que escribir varias veces…
play sound "audio/sounds/frandrescherslaugh.mp3"
…solo debemos escribir…
define hell = "audio/sounds/frandrescherslaugh.mp3"
…y lo único que debemos hacer luego es escribir:
play sound hell
Notese como al declarar el sonido coloqué una ruta. Esta ruta buscará la carpeta audio dentro de game y luego la carpeta sounds dentro de audio. Con esto pueden organizar sus recursos dentro del juego de modo más cómodo.
Pero mejor veamos con más detalle cada canal.