Jukebox
La Jukebox es una función integrada en el Pokégear que permite al jugador escuchar y cambiar la música de fondo (BGM) del juego a voluntad. Inspirada en la función homónima de Pokémon Gold, Silver y Crystal, la Jukebox ofrece una forma de personalizar la experiencia auditiva del jugador permitiéndole seleccionar entre las canciones disponibles.
En Pokémon Essentials, la Jukebox viene desactivada por defecto y requiere una configuración específica para habilitarla. Este artículo explica cómo activarla, cómo gestionar la lista de canciones disponibles y cómo personalizar su comportamiento.
Requisitos Previos
Para utilizar la Jukebox, necesitas:
- Tener el Pokégear habilitado en tu juego (el jugador debe haberlo recibido).
- Archivos de música (BGM) en la carpeta
Audio/BGM/de tu proyecto. - Configurar el registro de canciones disponibles en la Jukebox.
Habilitar la Jukebox en el Pokégear
La Jukebox es una de las funcionalidades opcionales del Pokégear. Para activarla, debes registrarla como una página del Pokégear usando el siguiente comando en un evento:
# Habilitar la Jukebox en el Pokégear del jugador
pbPokegearJukeboxOn
Generalmente, este comando se ejecuta en un evento de historia, por ejemplo cuando el jugador recibe el Pokégear o cuando completa cierta misión. También puedes habilitarlo a través de un interruptor global:
# Alternativa: usar un interruptor del juego
# En la configuración del Pokégear, asigna un interruptor que controle la visibilidad
$game_switches[JUKEBOX_SWITCH] = true
Verificar disponibilidad
Puedes comprobar en cualquier momento si la Jukebox está habilitada:
# Devuelve true si la Jukebox está disponible
if pbHasJukebox?
pbMessage("¡La Jukebox está disponible en tu Pokégear!")
end
Configuración de la Lista de Canciones
La Jukebox funciona con una lista predefinida de canciones que el jugador puede seleccionar. Esta lista se configura en los scripts del proyecto y cada entrada asocia un nombre visible para el jugador con el archivo de audio correspondiente.
Formato de la lista
La lista de canciones se define como un array de pares [nombre_visible, nombre_archivo]:
# Definición de canciones disponibles en la Jukebox
JUKEBOX_SONGS = [
["Ciudad Paleta", "Pokemon RZ - Ciudad Paleta"],
["Ruta 1", "Pokemon RZ - Ruta 1"],
["Ciudad Plateada", "Pokemon RZ - Ciudad Plateada"],
["Gimnasio", "Pokemon RZ - Gimnasio"],
["Centro Pokémon", "Pokemon RZ - Centro Pokemon"],
["Tienda Pokémon", "Pokemon RZ - Tienda Pokemon"],
["Cueva", "Pokemon RZ - Cueva"],
["Batalla Salvaje", "Pokemon RZ - Batalla Salvaje"],
["Batalla Entrenador", "Pokemon RZ - Batalla Entrenador"],
["Batalla Líder", "Pokemon RZ - Batalla Lider"],
["Victoria", "Pokemon RZ - Victoria"],
["Sala de la Fama", "Pokemon RZ - Sala de la Fama"]
]
El primer valor del par es el nombre que ve el jugador en la interfaz de la Jukebox. El
segundo valor es el nombre del archivo de audio (sin extensión) ubicado en
Audio/BGM/.
Canciones desbloqueables
Puedes hacer que ciertas canciones solo estén disponibles después de que el jugador cumpla ciertos requisitos (por ejemplo, visitar una ciudad o derrotar un gimnasio). Para ello, añade condiciones a las canciones:
# Lista de canciones con condiciones de desbloqueo
JUKEBOX_SONGS_CONDITIONAL = [
{
name: "Tema del Campeón",
file: "Pokemon RZ - Campeon",
condition: proc { $game_switches[CHAMPION_DEFEATED] }
},
{
name: "Pueblo Lavanda",
file: "Pokemon RZ - Pueblo Lavanda",
condition: proc { $game_variables[STORY_PROGRESS] >= 5 }
}
]
En este caso, la canción solo aparecerá en la lista del jugador si la condición (proc) devuelve
true.
Interfaz de la Jukebox
Cuando el jugador accede a la Jukebox desde el Pokégear, se muestra una interfaz de lista con las canciones disponibles. La interfaz estándar incluye:
- Lista de canciones: Muestra los nombres de todas las canciones desbloqueadas.
- Indicador de canción actual: Resalta la canción que está sonando actualmente.
- Controles: Arriba/Abajo para navegar, A/Enter para seleccionar, B/Escape para salir.
- Opción "Música del mapa": Vuelve a la música original del mapa actual.
Navegación del jugador
El flujo de uso para el jugador es el siguiente:
- Abrir el Pokégear desde el menú de pausa.
- Seleccionar la opción Jukebox.
- Navegar por la lista de canciones usando las flechas de dirección.
- Seleccionar una canción con el botón de confirmación.
- La música de fondo cambia inmediatamente a la canción seleccionada.
- La canción seleccionada se mantiene incluso al cambiar de mapa (hasta que el jugador la cambie o seleccione "Música del mapa").
Comandos de Script
Además de la interfaz visual, puedes controlar la Jukebox desde eventos y scripts:
Abrir la Jukebox directamente
# Abre la interfaz de la Jukebox sin necesidad de pasar por el Pokégear
pbJukebox
Reproducir una canción específica
# Cambia la música de fondo a una canción específica
pbJukeboxPlay("Pokemon RZ - Ciudad Paleta")
# Con volumen personalizado
pbJukeboxPlay("Pokemon RZ - Ruta 1", 80) # 80% de volumen
Detener la Jukebox
# Detiene la reproducción de la Jukebox y vuelve a la música del mapa
pbJukeboxStop
# Comprueba si la Jukebox está reproduciendo algo
if pbJukeboxPlaying?
pbMessage("La Jukebox está sonando.")
end
Añadir canciones en tiempo de ejecución
# Desbloquea una nueva canción para el jugador durante el juego
pbJukeboxUnlock("Tema Secreto", "Pokemon RZ - Secreto")
pbMessage("¡Has desbloqueado una nueva canción en la Jukebox!")
Personalización de la Interfaz
La interfaz visual de la Jukebox puede personalizarse editando los gráficos y el script de la escena:
Gráficos
Los gráficos de la interfaz de la Jukebox se encuentran en la carpeta Graphics/UI/Pokegear/.
Puedes modificar los siguientes archivos:
jukebox_bg.png— Fondo de la pantalla de la Jukebox.jukebox_sel.png— Gráfico del cursor de selección.jukebox_playing.png— Icono que indica la canción en reproducción.
Colores y fuentes
Para cambiar los colores del texto o la fuente utilizada en la lista de canciones, modifica las constantes en la clase de la escena de la Jukebox:
class PokegearScene_Jukebox
TEXT_BASE_COLOR = Color.new(72, 72, 72) # Color del texto normal
TEXT_SHADOW_COLOR = Color.new(168, 168, 168) # Color de la sombra del texto
TEXT_SEL_COLOR = Color.new(24, 24, 120) # Color del texto seleccionado
FONT_NAME = "Power Green" # Fuente utilizada
FONT_SIZE = 22 # Tamaño de la fuente
end
Integración con Eventos del Juego
La Jukebox puede integrarse con otros sistemas del juego para crear experiencias más ricas:
NPC DJ
Puedes crear un NPC que funcione como un DJ, permitiendo al jugador escuchar canciones sin necesidad del Pokégear:
# Evento de NPC DJ
pbMessage("¡Soy el DJ del Centro Pokémon!")
pbMessage("¿Quieres escuchar alguna canción?")
choices = ["Ciudad Paleta", "Ruta 1", "Gimnasio", "No, gracias"]
choice = pbMessage("¿Qué quieres escuchar?", choices, choices.length)
case choice
when 0
pbBGMPlay("Pokemon RZ - Ciudad Paleta")
pbMessage("¡Aquí tienes el tema de Ciudad Paleta!")
when 1
pbBGMPlay("Pokemon RZ - Ruta 1")
pbMessage("¡La Ruta 1! ¡Un clásico!")
when 2
pbBGMPlay("Pokemon RZ - Gimnasio")
pbMessage("¡Hora de luchar!")
when 3
pbMessage("¡Vuelve cuando quieras!")
end
Desbloqueo por colección
Un sistema popular es desbloquear canciones conforme el jugador progresa. Por ejemplo, desbloquear la música de una ciudad cuando la visita por primera vez:
# En un evento de la ciudad (ejecución automática, una vez)
if !$PokemonGlobal.jukeboxSongs.include?("Ciudad Trigal")
pbJukeboxUnlock("Ciudad Trigal", "Pokemon GS - Ciudad Trigal")
pbMessage("♪ La música de Ciudad Trigal se ha añadido a tu Jukebox.")
end
Comportamiento al Cambiar de Mapa
Por defecto, cuando la Jukebox está activa y el jugador cambia de mapa, existen dos comportamientos posibles que puedes configurar:
- Persistente (por defecto): La canción de la Jukebox se mantiene sonando al cambiar de mapa. El jugador escucha su canción seleccionada en todo momento hasta que la desactiva manualmente.
- No persistente: La canción de la Jukebox se detiene al cambiar de mapa y vuelve a sonar la música normal del nuevo mapa. El jugador debe volver a seleccionar una canción si quiere usar la Jukebox.
# Configurar el comportamiento de persistencia
# En Settings o en tu código de configuración:
JUKEBOX_PERSISTENT = true # true = la canción se mantiene entre mapas
# false = se reinicia al cambiar de mapa
Añadir Canciones Personalizadas
Para añadir tus propias canciones a la Jukebox, sigue estos pasos:
-
Prepara el archivo de audio: Convierte tu canción al formato compatible con RPG Maker XP.
Los formatos soportados son
.ogg,.mid,.wavy.mp3(se recomienda.oggpor su equilibrio entre calidad y tamaño). -
Copia el archivo: Coloca el archivo en la carpeta
Audio/BGM/de tu proyecto. -
Registra la canción: Añade una entrada en el array
JUKEBOX_SONGScon el nombre visible y el nombre del archivo (sin extensión). - Prueba: Inicia el juego, abre la Jukebox y verifica que la nueva canción aparece y suena correctamente.
Resolución de Problemas
La Jukebox no aparece en el Pokégear
- Verifica que has ejecutado el comando
pbPokegearJukeboxOnantes de intentar acceder. - Asegúrate de que el Pokégear está habilitado para el jugador.
- Comprueba que el interruptor de la Jukebox (si usas uno) está activado.
Una canción no suena
- Verifica que el archivo de audio existe en
Audio/BGM/con el nombre exacto. - Comprueba que el formato del archivo es compatible (
.ogg,.mid, etc.). - Asegúrate de que el nombre en la lista coincide exactamente con el nombre del archivo (sin extensión).
La canción se corta al cambiar de mapa
- Configura
JUKEBOX_PERSISTENT = truepara que la canción se mantenga entre mapas. - Si usas scripts que cambian la música automáticamente (como eventos de batalla), estos pueden interrumpir la Jukebox. Añade comprobaciones para respetar la Jukebox activa.
El volumen de la Jukebox es diferente al de la música normal
- Normaliza el volumen de tus archivos de audio antes de importarlos.
- Usa el parámetro de volumen al llamar a
pbJukeboxPlaypara ajustar canciones individuales.