Esta página se tradujo automáticamente del inglés. Lee el original en inglés.

Blog

Compón música de juego con IA — SuperCollider dentro de AI Game Developer

Compón música y efectos de sonido para tu juego con IA en SuperCollider, del tema de menú a stems en bucle, y exporta WAV a Unity, Godot o Unreal.

Compón música de juego con IA — SuperCollider dentro de AI Game Developer

La música y el sonido suelen ser la última parte de un prototipo de juego y lo primero que notan los jugadores. El paquete Music de AI Game Developer te permite componer música de juego con IA: el agente escribe partituras de SuperCollider contigo, las renderiza a WAV, te deja escucharlas en la app y exporta el audio terminado a tu proyecto de Unity, Godot o Unreal.

Esto no es un generador de canciones de caja negra. La música es código que puedes leer, versionar y cambiar, así que puedes pedir «el mismo tema, más lento y con menos reverb» y obtener exactamente eso. En este artículo componemos el tema de menú de nuestro juego de demostración, Skyward Keep, en una sola sesión, y después veremos stems en bucle, efectos de sonido a partir de tus propias muestras y la exportación al juego. El vídeo es una grabación real de la app: las respuestas del agente están guionizadas para la demo y cada llamada a herramienta que aparece se ejecutó de verdad. El clip de esta página se reproduce sin sonido; el tema en sí es una pieza tranquila de caja de música que puedes renderizar en tu propio proyecto con la misma petición.

Un tema de menú de 24 segundos compuesto, renderizado, escuchado y exportado en una sola sesión.

Por qué SuperCollider para el audio de juegos

SuperCollider es una plataforma de código abierto madura para la síntesis de sonido y la composición algorítmica. Cada sonido proviene de una partitura, un archivo de texto que describe los instrumentos y cuándo suenan. Eso encaja bien con un agente de IA:

  • El agente escribe y edita texto, que es exactamente lo que es una partitura.
  • Un cambio es preciso y repetible: el tempo, la tonalidad, los instrumentos, los efectos y la duración son explícitos.
  • Los archivos fuente viven en tu proyecto y se pueden versionar en Git como el código, mientras que el audio renderizado es una salida desechable.

Cada render registra los hashes de su fuente, la semilla y los ajustes antes de ejecutarse, así que puedes rastrear cualquier WAV hasta la partitura que lo generó.

Paso 1: Activar la música para la sesión

Music llega con la app como un paquete. Se instala por defecto y lo activas para las sesiones en las que lo quieras desde la fila Tools de la sesión. Cuando abres una sesión conectada a un editor de Unity, Godot o Unreal, un breve consejo te ofrece activar Music y luego componer un tema de muestra de ocho segundos o describir tu propia idea. No se instala, renderiza ni envía nada hasta que elijas.

La primera vez que lo usas de verdad, el paquete configura el entorno de ejecución de SuperCollider que necesita, una versión fijada y verificada. Escribe /supercollider en cualquier momento para ver su estado y una breve guía. Hoy el entorno de ejecución está disponible en Windows y macOS.

Paso 2: Componer un tema de menú

Describe la música como se lo explicarías a un compositor: el ambiente, la duración, cómo se va a usar y cualquier material musical sobre el que deba construirse. La petición de la demo es:

«Compón el tema de menú de Skyward Keep: tranquilo y cálido, de unos 20 segundos, construido sobre nuestro keep motif. Déjame escucharlo y luego añádelo al juego.»

El agente primero consulta las notas de audio del proyecto en la Knowledge Base, donde está escrito el keep motif, y decide una versión tranquila de caja de música del mismo. Crea un proyecto AudioSource portable en la carpeta del juego y luego escribe la partitura: una caja de música que toca el motivo de cuatro notas D, A, B, F sostenido, un pad suave sobre los acordes de D, A, B menor y G, un bajo redondo y una reverb compartida, a 90 BPM.

El mensaje del agente describiendo la partitura de SuperCollider que está escribiendo para el tema de menú
El agente describe la partitura mientras la escribe

La partitura se renderiza en local y el agente abre una vista previa para que puedas escucharla directamente en la app, con la forma de onda y un reproductor. El resultado son dos archivos: menu-theme.scd, el código fuente editable de SuperCollider que se mantiene en el control de versiones, y menu-theme.wav, un render estéreo de 48 kHz y 24 segundos con la cola de reverb.

El tema de menú renderizado reproduciéndose en la vista previa de audio de la app con su forma de onda
Escucha el render directamente en la app

Los renders son WAV de 16 bits en mono o estéreo a 44,1, 48 o 96 kHz, de hasta diez minutos de duración. El agente también puede analizar un render e informar de su duración, sus niveles de pico y RMS y cualquier saturación, lo que ayuda cuando una mezcla suena demasiado baja o demasiado alta.

Itera como lo harías con un compositor

Escucha y luego pide cambios concretos:

  • «Baja la melodía una octava y dale a los pads un ataque más lento.»
  • «Añade una capa de percusión ligera en la segunda mitad.»
  • «Acórtalo a 16 compases y mantén el final.»

Como la partitura es código, cada cambio mantiene el resto de la pieza tal como estaba. Si te gusta más una versión anterior, Git la tiene.

Paso 3: Stems en bucle para música adaptativa

A menudo los juegos necesitan la música en capas que puedan entrar y salir con la acción. Pide stems que compartan la misma duración y el mismo tempo:

«Divide el tema del nivel en tres stems, batería, bajo y melodía, con la misma duración y tempo, para que se reproduzcan en bucle juntos.»

Los stems se renderizan con la misma duración, frecuencia de muestreo y semilla, y se recortan al número exacto de frames, de modo que coinciden muestra a muestra y se reproducen en bucle sin cortes. Después, en el motor, puedes subir la batería cuando empieza el combate y bajarla cuando termina.

Paso 4: Efectos de sonido a partir de tus propias muestras

SuperCollider es igual de bueno para los efectos de sonido. Puedes importar tus propias grabaciones WAV como muestras: PCM mono o estéreo a 16, 24 o 32 bits, entre 8 y 192 kHz. La importación registra el hash de cada muestra, así el proyecto sabe exactamente de qué audio depende una partitura.

«Importa footstep.wav como muestra y crea cuatro variaciones para grava: cada una con un tono y una duración ligeramente distintos, y con una cola corta.»

Variaciones como estas evitan que los sonidos repetidos suenen mecánicos, y no cuestan nada una vez que existe la partitura.

Paso 5: Exportar al juego

Cuando un render está listo, el agente lo exporta al proyecto del juego con el nombre que elijas:

  • Unity: en Assets/Audio, conservando el archivo .meta y el GUID cuando se reemplaza un archivo, para que las referencias de tus escenas no se rompan.
  • Godot: en res://Audio/, con la carpeta de autoría excluida de la importación de Godot.
  • Unreal: se importa como SoundWave en /Game/Audio a través de la conexión con el editor.
  • Carpetas simples: en la carpeta de exportaciones de AudioSource.

Al reemplazar una exportación se comprueba que el archivo que estás sustituyendo es el que esperas, así nunca se sobrescribe un archivo más nuevo por accidente.

En qué destaca hoy

El paquete Music funciona mejor para el audio de prototipos y juegos indie: temas de menú y de nivel, fondos ambientales, stingers de victoria y derrota, sonidos de interfaz y variaciones de efectos. Las partituras se renderizan sin conexión en lugar de como síntesis en vivo, y el resultado depende de lo bien descrita que esté la pieza, así que empieza con piezas cortas y ve construyendo.

Music llegó en la versión 0.20.0 y, desde la 0.23.0, permanece instalado pero solo se une a una sesión nueva cuando lo activas (https://ai-game.dev/releases/0.23.0). Para probarlo, descarga la app en ai-game.dev/download, abre tu proyecto de juego y pide un tema de muestra. Para el resto del flujo de trabajo, el tutorial de ai-game.dev/blog/build-game-with-ai-claude-code muestra cómo el mismo agente construye la escena en la que suena esta música.

Más del blog

Todas las entradas