Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

El audio en Cave está diseñado para ser muy simple: importas un archivo de audio, lo previsualizas en el editor y lo reproduces desde tu juego cuando sucede algo.

En esta lección, aprenderás:

  • Cómo funcionan los activos de audio en el Navegador de Activos.
  • Cómo previsualizar un archivo de audio.
  • Cómo exportar o reemplazar audio como .ogg.
  • Cómo reproducir audio desde Python.
  • Qué significan el volumen y el tono.
  • Para qué se puede usar el manejador de audio devuelto.
  • Cómo la pestaña de Monitor de Audio ayuda a depurar el audio.

No necesitas una configuración compleja para empezar. Si puedes importar un sonido y reproducirlo cuando sucede una acción de botón, puerta, recogida o personaje, ya entiendes el flujo de trabajo básico.

Importando Audio

Cave puede importar archivos de audio en el proyecto como activos de audio. Como viste en la sección de Importar Activos, Cave soporta archivos de audio .ogg.

Una vez que el audio está importado, aparece en el Navegador de Activos igual que tu otro contenido del proyecto. Desde allí, puedes usarlo en scripts, callbacks de UI, Logic Bricks, eventos de la línea de tiempo, o cualquier otro sistema que necesite reproducir un sonido.

Por ejemplo, tu proyecto puede tener activos de audio como:

  • Clic de Botón
  • Puerta Abierta
  • Recoger Moneda
  • Paso
  • Ambiente del Bosque

Nombres legibles son muy útiles aquí porque el audio suele ser referenciado por nombre en Python.

Previsualizando Activos de Audio

Después de importar un archivo de audio, puedes previsualizarlo directamente dentro de Cave.

Hay dos maneras simples de hacerlo:

  • Haz doble clic en el activo de audio en el Navegador de Activos para reproducir rápidamente una previsualización.
  • Haz clic izquierdo una vez para seleccionarlo y mostrar sus propiedades, donde puedes usar los controles de previsualización para reproducirlo.

La vista de propiedades es útil porque te da más control mientras previsualizas. Por ejemplo, puedes probar cómo suena el audio con diferentes valores de tono antes de usar ese sonido en el juego.

Esto es especialmente útil para efectos como pasos, impactos, clics de UI y sonidos de criaturas. Un pequeño cambio de tono puede hacer que los sonidos repetidos se sientan menos idénticos.

Exportando o Reemplazando Audio

Los activos de audio también pueden ser exportados de vuelta como archivos .ogg. Esto es útil cuando deseas editar el audio en una herramienta externa, por ejemplo.

También puedes reemplazar el activo de audio con otro archivo .ogg. Esto es práctico cuando la lógica ya hace referencia a un nombre de activo, pero deseas cambiar el sonido real.

Por ejemplo, tu juego puede estar utilizando un activo llamado Puerta Abierta. Si reemplazas el audio dentro de ese activo, los scripts que reproducen Puerta Abierta pueden seguir funcionando sin necesidad de ser renombrados.


Reproduciendo Audio usando Componente de Audio

A veces quieres reproducir un sonido simple que se repita para un ambiente, música para el menú principal, etc. En este caso, el componente de audio será suficiente:

image.png

Reproducirá indefinidamente el audio que le especifiques, y te permite controlar el volumen, el tono, si el sonido es 3D, y la distancia máxima. Ten en cuenta que no expone más opciones, como cuántas veces queremos que se repita el audio, etc. Si necesitas más personalización, debes reproducir el audio a través del código.

Reproduciendo Audio desde Python

La forma más simple de reproducir un activo de audio desde Python es con cave.playSound().

cave.playSound("Clic de Botón")

Esto reproduce el activo de audio llamado Clic de Botón.

También puedes pasar un valor de volumen:

cave.playSound("Puerta Abierta", volume=0.8)

El volumen por defecto es 1.0, lo que significa volumen normal. Los valores más bajos hacen que el sonido sea más suave.

Por ejemplo:

Volumen Significado
2.0 Volumen extra alto.
1.0 Volumen normal.
0.5 Volumen a la mitad.
0.0 Silencio.

La mayoría de las veces, comenzarás con 1.0 y ajustarás a partir de ahí.

Volumen y Tono

  • Volumen controla cuán alto es el sonido.
  • Tono controla cuán alto o bajo se siente el sonido. También cambia la velocidad de reproducción, por lo que un tono más alto suena más rápido y agudo, mientras que un tono más bajo suena más lento y profundo.

El valor por defecto para ambos, volumen y tono, es 1.0.

Por ejemplo:

Valor Resultado de Volumen Resultado de Tono
1.0 Volumen normal. Tono normal.
0.5 Más suave. Más bajo y más lento.
1.5 Más alto si se usa como volumen. Más alto y más rápido.

Al usar cave.playSound(), el volumen se pasa directamente cuando el sonido comienza. El tono generalmente se cambia a través del manejador de audio devuelto por la función.

El Manejador de Audio

Cuando llamas a cave.playSound(), Cave devuelve un manejador de audio.

Este manejador representa la instancia de sonido que se está reproduciendo actualmente.

sound = cave.playSound("Paso en Piedra", volume=0.8)
sound.pitch = 1.0

Puedes usar este manejador para controlar el sonido después de que comienza.

Por ejemplo:

sound = cave.playSound("Ambiente de Cave", volume=0.6, loop=True)

# Alternativamente, puedes usar el getter y setter:
sound.setPitch(0.9)
sound.setVolume(0.4)

El manejador puede ser utilizado para cosas como:

  • Cambiar volumen.
  • Cambiar tono.
  • Pausar el sonido.
  • Reanudar el sonido.
  • Detener el sonido.
  • Comprobar el progreso.
  • Hacer que el sonido provenga de una entidad 3D.

Por ejemplo, si un sonido de puerta debe provenir de la entidad puerta:

sound = cave.playSound("Puerta Abierta", volume=1.0)
sound.setSource3D(self.entity, maxDistance=20)

No necesitas este manejador para cada sonido. Si solo quieres reproducir un clic rápido de botón, esto es suficiente:

cave.playSound("Clic de Botón")

Usa el manejador cuando necesites control adicional.

Incluso es posible aleatorizar un poco el paso, dando más variedad sin requerir más sonidos:

sd = cave.playSound("Paso en Piedra")

# Estableciendo su fuente 3D para ser la entidad que lo reproduce:
sd.setSource3D(entity, 20)

# Aleatorizando tono y volumen:
sd.pitch  = cave.random.uniform(0.5, 1.5)
sd.volume = cave.random.uniform(0.1, 0.3)

El código anterior es muy similar al que encontrarás en el callback de animación de Caminar y Correr del personaje Proto por defecto, al crear un nuevo Proyecto de Cave.


La Pestaña de Monitor de Audio

Cave también incluye una pestaña de Monitor de Audio para depurar audio mientras tu juego está en ejecución.

image.png

Puedes abrirla desde el menú de Pestañas en la parte superior izquierda del editor.

El Monitor de Audio muestra información sobre el audio que se está reproduciendo actualmente, incluido el progreso de reproducción. Puedes expandir entradas para inspeccionar más detalles, lo cual es muy útil cuando un proyecto comienza a tener muchos sonidos reproduciéndose al mismo tiempo.

Por ejemplo, el Monitor de Audio puede ayudarte a responder preguntas como:

  • ¿Se está reproduciendo realmente este sonido?
  • ¿Se está reproduciendo el mismo sonido demasiadas veces?
  • ¿Sigue activa una ambientación en bucle?
  • ¿Qué tan avanzado está el sonido?

Probablemente no necesitarás el Monitor de Audio constantemente en un prototipo pequeño, pero se vuelve muy útil al depurar escenas más complejas.

Lo Que Debes Recordar

El audio en Cave es simple: importa un archivo de audio, prévisualo en el Navegador de Activos y reprodúcelo desde Python con cave.playSound().

Usa el volumen para controlar la intensidad, el tono para controlar cuán alto o bajo se siente el sonido, y guarda el manejador devuelto cuando necesites controlar el sonido después de que comienza.

Cuando el audio se vuelve más difícil de rastrear, abre la pestaña de Monitor de Audio desde el menú de Pestañas e inspecciona qué se está reproduciendo.