Ativa o menu
Alternar menu de preferências
Alternar menu pessoal
Não autenticado(a)
Your IP address will be publicly visible if you make any edits.

SNDSEQ é usado para criar sequências de sons para serem usadas por portas e plataformas, ou em scripts. Se você quiser usá-las com portas e plataformas, em formatos de mapa antigos você deve usar o sound sequence thing nos setores afetados com o primeiro argumento definido para o índice da sequência; já em mapas UDMF, você pode definir a propriedade soundsequence do setor diretamente com o nome da sequência. Para tocá-las em um script, você pode usar a função SoundSequence.

A sintaxe é a seguinte:

:NomeDaSoundSequence
     comandos
     ...
end

O nome define o identificador interno desta sequência de som. Atualmente isso é usado apenas por ACS e por SeqNode em ZScript, ou por algumas sequências de som predefinidas.

Os seguintes comandos podem ser usados em uma definição de sound sequence:

  • play <soundname>
    Toca o som especificado.
  • playuntildone <soundname>
    Toca o som especificado e espera até ele terminar.
  • playtime <soundname> <delay>
    Toca o som especificado e espera pelo período informado. O atraso é especificado em tics (1/35 de segundo).
  • playrepeat <soundname>
    Toca o som repetidamente em um loop infinito.
  • playloop <soundname> <delay>
    Toca o som repetidamente com um atraso especificado entre cada repetição. O tempo é especificado em tics e corresponde ao tempo entre o início de cada loop.
  • delay <time>
    Espera pelo período informado. O atraso é especificado em tics.
  • delayonce <time>
    Espera pelo período informado após o início do nível para começar a tocar. O atraso é especificado em tics.
  • delayrand <min> <max>
    Espera por um período aleatório. O mínimo e o máximo são especificados em tics.
  • volume <volume>
    Define o volume em que todos os sons seguintes serão tocados.
  • volumerel
    descrição ausente.
  • volumerand <min> <max>
    Define o volume mínimo e máximo entre os quais todos os sons seguintes serão tocados. O valor exato é escolhido aleatoriamente para cada som, toda vez que ele é tocado.
  • attenuation <mode>
    Define o tipo de atenuação do som. Existem os seguintes modos:
    • normal
      Som “normal”. Este é o padrão.
    • idle
      descrição ausente.
    • static
      Este som é mais localizado. Ele se dissipa bem mais rápido conforme a distância aumenta.
    • none
      O som é tocado em volume total no nível inteiro.
    • surround
      O som é tocado em volume total no modo surround.
  • door <index>
    Define o índice da sound sequence para uso como sequência de porta. “Porta”, neste contexto, é qualquer movimento de setor por um tipo “Door” ou por um polyobject. O índice determina qual sound sequence thing você precisa colocar no setor da porta para ouvir essa sequência. Note que Hexen predefine as primeiras 10 sequências, então para sequências customizadas em Hexen o índice deve ser maior que 10. O índice deve estar no intervalo de 0 a 4095.
  • platform <index>
    Define o índice da sound sequence para uso como sequência de plataforma. “Plataforma”, neste contexto, é qualquer movimento de setor feito por um tipo “Ceiling”, “Floor”, “Elevator” ou “Plat”. Veja door para uma descrição mais detalhada de como isso funciona.
  • environment <index>
    Define o índice da sound sequence para uso como sequência de ambiente. Sequências de ambiente são usadas em Heretic.
  • stopsound <soundname>
    Especifica o som que é tocado quando a sound sequence é interrompida.
  • nostopcutoff
    Não encerra um som que esteja tocando no momento em que a sound sequence é interrompida.
  • end
  • slot <slot>
  • randomsequence
  • restart

Exemplos:

// toca um som repetidamente
:CeilingNormal
   playrepeat plats/pt1_mid
end
// toca um som quando a sequência é interrompida
:CeilingSemiSilent
   stopsound plats/pt1_stop
end
// toca um som uma vez e não o encerra
// quando a sequência é interrompida
:DoorOpenNormal
   play doors/dr1_open
   nostopcutoff
end
// toca um som repetidamente e
// outro som quando ela é interrompida
:Floor
   playrepeat plats/pt1_mid
   stopsound plats/pt1_stop
end
// inicia um som; quando terminar, entra em loop com outro;
// e toca um terceiro som quando a sequência é interrompida.
// também usa isto como sequência 0 para portas
:Seq1Door
   door 0
   playuntildone Door1BEG
   playrepeat Door1MID
   stopsound Door1END
end
// Igual ao acima, mas usa como sequência 1
// para plataformas
:Seq2Plat
   platform 1
   playuntildone Plat1BEG
   playrepeat Plat1MID
   stopsound Plat1END
end

Hexen não permitia usar mais de uma sound sequence para uma porta, então ela fazia o mesmo som ao abrir e ao fechar. A sintaxe a seguir permite múltiplos sons para uma porta, mantendo compatibilidade com o sistema do Hexen de definir sound sequences usando coisas e argumentos de polyobject.

Aqui está o exemplo do Doom:

[DoorNormal
 0 DoorOpenNormal
 1 DoorCloseNormal
 2 DoorOpenBlazing
 3 DoorCloseBlazing
]

Todas as portas em Doom recebem a sound sequence DoorNormal (a menos que você sobrescreva). No entanto, existem quatro sons diferentes de porta usados por Doom. Uma sound sequence “normal” só conseguiria tocar um deles. Então, em vez de tocar algo com DoorNormal, ela é definida como uma “mini-sound sequence” que apenas lista as quatro sequências reais a tocar, dependendo de como a porta está se movendo. Além de redirecionar para as sequências reais, a única outra coisa que você pode fazer com uma mini-sound sequence é especificar um ID para os sound sequence things:

[DoorMine
 Door 1
 0 MyDoorOpen
 1 MyDoorClose
 2 MyDoorFastOpen
 3 MyDoorFastClose
]

Para usar a definição acima, você também precisa definir previamente as sequências MyDoorOpen, MyDoorClose, MyDoorFastOpen e MyDoorFastClose da forma normal.

A “mini sequence” acima foi alocada com o índice 1 (usando Door 1). Se um sound sequence thing que aloca o índice 1 for colocado em um setor de porta, a porta usará as seguintes sound sequences: MyDoorOpen ao abrir em velocidade normal, MyDoorClose ao fechar em velocidade normal, MyDoorFastOpen ao abrir em velocidade blazing e MyDoorFastClose ao fechar em velocidade blazing.

Se você não quiser que uma porta toque sons diferentes dependendo da velocidade, você pode fazer as sequências 2 e 3 serem as mesmas de 0 e 1:

[DoorMine
 Door 1
 0 MyDoorOpen
 1 MyDoorClose
 2 MyDoorOpen
 3 MyDoorClose
]

Ver também

Tópicos no fórum