32blogby StudioMitsu

Guía de Audio en Ren'Py: Música, Efectos de Sonido y Voz

Aprende a gestionar BGM, efectos de sonido y voz en Ren'Py 8.5. Cubre selección de formato, mecánica de canales, puntos de bucle y organización de archivos de audio.

7 min read
Contenido

Lo que hace o rompe la inmersión en una novela visual no es el texto ni el arte — es el audio. Un BGM que se corta abruptamente o un efecto de sonido mal colocado te saca de la experiencia por completo.

Esta guía cubre cómo trabajar con BGM, efectos de sonido y voz en Ren'Py 8.5.2 desde cero.

Eligiendo formatos de audio

Ren'Py soporta varios formatos de audio, pero no todos son iguales.

FormatoBucleTamañoUso recomendado
OGG Vorbis (.ogg)Sin cortesPequeñoBGM y SFX (el más probado)
Opus (.opus)Sin cortesMás pequeñoBGM y SFX (alta compresión)
FLAC (.flac)Sin cortesGrandeArchival (no ideal para distribución)
WAV (.wav)GrandeSolo efectos de sonido cortos
MP3 (.mp3)Salto en el buclePequeñoNo recomendado

WAV no tiene compresión, así que los archivos son grandes. Usarlo para BGM infla tu distribución. Está bien para efectos cortos como sonidos de puertas o pasos.

Reproduciendo música, efectos de sonido y voz

Ren'Py tiene tres declaraciones de reproducción.

play music — Reproducir BGM

renpy
# Reproducir BGM (se repite por defecto)
play music "audio/main_theme.ogg"

# Crossfade a una nueva pista
play music "audio/battle.ogg" fadeout 1.0 fadein 0.5

# Reproducir una vez sin repetir
play music "audio/ending.ogg" noloop

# No reiniciar si la misma pista ya está sonando
play music "audio/main_theme.ogg" if_changed

play music usa el canal music. Se repite por defecto.

play sound — Reproducir efectos de sonido

renpy
# Reproducir un efecto de sonido (una vez)
play sound "audio/explosion.ogg"

# Ajustar volumen
play sound "audio/rain.ogg" volume 0.3

# Repetir un efecto de sonido (sonidos ambientales)
play sound "audio/rain.ogg" loop

play sound usa el canal sound. No se repite por defecto.

voice — Reproducir líneas de voz

renpy
voice "voice/001.ogg"
e "Hello."

voice "voice/002.ogg"
e "Nice weather today."

voice usa el canal voice. Se detiene automáticamente en la siguiente interacción (cuando el jugador avanza el texto). Para juegos con voces, escribe una línea voice antes de cada línea de diálogo.

Deteniendo el audio

renpy
# Detener BGM
stop music

# Desvanecer y detener
stop music fadeout 2.0

# Detener efectos de sonido
stop sound

# Detener voz
stop voice

Cómo funcionan los canales

Ren'Py gestiona el audio a través de canales. Cada canal reproduce, detiene y controla el volumen de forma independiente.

Canales por defecto

CanalMezcladorBuclePropósito
musicmusicBGM
soundsfxNoEfectos de sonido
voicevoiceNoActuación de voz (se detiene automáticamente en la siguiente interacción)
audiosfxNoMúltiples sonidos simultáneos (sin queue/stop)

Reproducir una nueva pista en el canal music detiene automáticamente la anterior. Para reproducir dos pistas simultáneamente, crea un canal personalizado.

El canal audio es especial — cada llamada a play audio crea un nuevo canal automáticamente, permitiendo que múltiples sonidos suenen a la vez. Sin embargo, queue audio y stop audio no son compatibles. Si necesitas reproducción simultánea con control de parada, usa un canal personalizado.

Creando canales personalizados

Para controlar sonidos ambientales (lluvia, viento) independientemente del BGM, registra un canal personalizado.

renpy
init python:
    renpy.music.register_channel("ambient", "sfx", loop=True)

label start:
    play music "audio/main_theme.ogg"
    play ambient "audio/rain.ogg"

    "The journey continues through the rain."

    stop ambient fadeout 2.0

    "The rain has stopped."

El segundo argumento de register_channel es el nombre del mezclador. Usar "sfx" significa que el control deslizante de volumen SFX en la pantalla de preferencias controla este canal.

Encolando la siguiente pista

renpy
# Reproducir la siguiente pista cuando termine la actual
play music "audio/intro.ogg" noloop
queue music "audio/main_theme.ogg"

queue inicia la siguiente pista cuando la que está sonando termina. Úsalo para transiciones de intro → tema principal.

Desvanecimientos y puntos de bucle

Fade In y Fade Out

renpy
# Desvanecer BGM actual en 2s, aparecer nuevo BGM en 1s
play music "audio/battle.ogg" fadeout 2.0 fadein 1.0

# Desvanecer y detener BGM en 3s
stop music fadeout 3.0

fadeout se aplica a la pista que está sonando actualmente. fadein se aplica a la nueva pista. Confundir esta distinción lleva a resultados inesperados.

Estableciendo puntos de bucle

Muchas pistas de BGM tienen una estructura "intro → sección de bucle". Establecer un punto de bucle reproduce la intro una vez y luego repite solo la sección de bucle.

renpy
# Repetir desde los 6.333 segundos (todo lo anterior es la intro, se reproduce una vez)
play music "<loop 6.333>audio/main_theme.ogg"

# Reproducir solo una sección específica
play music "<from 5.0 to 30.0>audio/long_track.ogg"

Control dinámico de volumen

renpy
# Cambiar volumen del canal (desvanecer en 1 segundo)
$ renpy.music.set_volume(0.3, delay=1.0, channel="music")

# Establecer volumen relativo para un archivo específico
play sound "audio/loud_explosion.ogg" volume 0.5

renpy.music.set_volume() cambia el volumen general del canal. La palabra clave volume establece el volumen relativo para un archivo individual.

Organizando archivos de audio

A medida que crece la cantidad de archivos, escribir rutas directamente se vuelve tedioso. Crea alias en el espacio de nombres audio con define para una gestión más fácil.

El espacio de nombres audio

renpy
define audio.main_theme = "audio/bgm/main_theme.ogg"
define audio.battle = "audio/bgm/battle.ogg"
define audio.click = "audio/se/click.ogg"
define audio.explosion = "audio/se/explosion.ogg"

label start:
    play music main_theme
    play sound click

    "The adventure begins."

    play music battle fadeout 1.0
    play sound explosion

Los alias definidos en el espacio de nombres audio se pueden usar directamente en las declaraciones play. No necesitas escribir rutas de archivo cada vez, y los errores tipográficos se detectan pronto.

Ejemplo de estructura de carpetas

text
game/
└── audio/
    ├── bgm/
    │   ├── main_theme.ogg
    │   ├── battle.ogg
    │   └── ending.ogg
    ├── se/
    │   ├── click.ogg
    │   ├── explosion.ogg
    │   └── door_open.ogg
    └── voice/
        ├── 001.ogg
        ├── 002.ogg
        └── 003.ogg

Separar BGM, SFX y voz en subcarpetas mantiene todo organizado. Ren'Py detecta automáticamente archivos en game/audio/ y sus subdirectorios.

Conclusión

Lo que cubrimos:

  • Selección de formato: Usa OGG u Opus para BGM. Evita MP3 por los saltos en el bucle
  • Declaraciones de reproducción: play music (BGM), play sound (SFX), voice (líneas de voz)
  • Canales: music / sound / voice / audio — cuatro por defecto. Canales personalizados para sonidos ambientales
  • Desvanecimientos y puntos de bucle: parámetros fadeout/fadein, sintaxis <loop> para intro + bucle
  • Organización de archivos: alias define audio.xxx en el espacio de nombres audio

Para lo básico de Ren'Py, consulta la guía de inicio. Para la visualización de imágenes, consulta la guía básica de imágenes. Para la interfaz de usuario, consulta la guía de screen language.

Recursos oficiales: