v
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.