Skip to content

Audio

Las pistas de audio proporcionan música de fondo, efectos de sonido y sonidos ambientales. Pueden ser activadas por directivas de IA, reglas o listas de reproducción automáticas.

Esquema AudioTrack

json
{
  "id": "bgm-tavern",
  "name": "Tavern Theme",
  "type": "bgm",
  "url": "@asset:uuid-here",
  "loop": true,
  "volume": 0.4,
  "fadeIn": 2,
  "fadeOut": 1.5,
  "maxDuration": null
}
CampoTipoDescripción
idstringID único en kebab-case
namestringNombre visible
type"bgm" | "sfx" | "ambient"Tipo de pista
urlstringFuente de audio — @asset:{id} o URL directa
loopbooleanSi se debe repetir (típico: true para BGM/ambient, false para SFX)
volumenumber0.0 a 1.0
fadeInnumber | nullDuración del fade-in en segundos
fadeOutnumber | nullDuración del fade-out en segundos
maxDurationnumber | nullAuto-detener después de N segundos

Directivas de Audio de la IA

La IA activa el audio mediante directivas entre corchetes:

[audio: bgm-tavern play]
[audio: sfx-sword play]
[audio: bgm-tavern stop]
[audio: bgm-battle crossfade 2.5]
[audio: ambient-rain volume 0.3]
[audio: sfx-magic play chain:bgm-ambient]
AcciónDescripción
playIniciar reproducción de la pista
stopDetener la pista
crossfade <seconds>Crossfade del BGM actual a esta pista
volume <0-1>Cambiar el volumen de la pista
play chain:<trackId>Reproducir esta pista, luego reproducir automáticamente la siguiente

Lista de reproducción BGM

Reproducir automáticamente una secuencia de pistas BGM:

json
{
  "bgmPlaylist": {
    "tracks": ["bgm-explore-1", "bgm-explore-2", "bgm-explore-3"],
    "playMode": "shuffle",
    "gapSeconds": 0,
    "autoPlay": true,
    "waitForFirstMessage": true
  }
}
CampoTipoDescripción
tracksstring[]Array de IDs de pistas para ciclar
playMode"loop" | "shuffle" | "sequential"Modo de orden de reproducción
gapSecondsnumberSilencio entre pistas (predeterminado: 0, máx: 30)
autoPlaybooleanEmpezar a reproducir automáticamente (predeterminado: true)
waitForFirstMessagebooleanNo empezar hasta que el jugador envíe su primer mensaje

BGM Condicional

Reproducir pistas específicas cuando se cumplen las condiciones. Soporta verificaciones de variables, coincidencia de palabras clave, conteo de turnos y disparadores de inicio de sesión.

json
{
  "conditionalBGM": [
    {
      "id": "combat-music",
      "name": "Combat Music",
      "targetTrackId": "bgm-battle",
      "triggerType": "variable",
      "conditions": [
        { "variableId": "in-combat", "operator": "eq", "value": true }
      ],
      "conditionLogic": "all",
      "priority": 10,
      "fadeInDuration": 1,
      "fadeOutDuration": 2,
      "stopPreviousBGM": true,
      "fallback": "default"
    }
  ]
}
CampoTipoDescripción
idstringIdentificador único
namestringNombre visible
targetTrackIdstringPista a reproducir cuando se activa
triggerType"variable" | "ai-keyword" | "keyword" | "turn-count" | "session-start"Qué activa el BGM condicional
conditionsCondition[]Condiciones de variables a verificar
conditionLogic"all" | "any"Cómo se combinan múltiples condiciones (predeterminado: "all")
keywordsstring[]Palabras clave a coincidir (para disparadores keyword / ai-keyword)
matchWholeWordsbooleanCoincidir solo palabras completas (para disparadores de palabras clave)
atTurnnumberDisparar en un turno específico (para disparador turn-count)
everyNTurnsnumberDisparar cada N turnos (para disparador turn-count)
prioritynumberLa prioridad más alta gana cuando coinciden múltiples disparadores
fadeInDurationnumberDuración del fade-in en segundos
fadeOutDurationnumberDuración del fade-out en segundos
stopPreviousBGMbooleanDetener primero el BGM que se está reproduciendo
fallback"default" | "previous" | trackId stringQué reproducir cuando la condición se vuelve falsa

Los operadores de condición usan la forma corta: eq, neq, gt, lt, gte, lte, contains.

Cuando la condición se vuelve verdadera, la pista inicia. Cuando es falsa, se detiene (con fade-out si está configurado) y vuelve según la configuración de fallback.