Pular para o conteúdo principal

Audio

Camadas de áudio por jogador, zonas ambientes, sequências de sons, vozes de diálogo e um menu de volume.

Privadasv0.1.0Utilitários
RequerTypeWriter0.9GUIProtectionopcional

Criada para a rede BornToCraft. Esta extensão é documentada como referência e não é distribuída.

Visão geral​

O Audio adiciona um pequeno mixer sobre os sons do Minecraft. Todo som tocado pela extensão pertence a uma de cinco camadas: MASTER, MUSIC, AMBIENT, SFX e VOICE. Cada jogador tem um volume para cada camada (de 0.0 a 1.0), e a extensão multiplica o volume da camada pelo volume master ao tocar um som. Os volumes são salvos por jogador, então uma configuração sobrevive a uma reconexão.

Sobre o mixer, você ganha zonas de som ambiente ligadas às regiões do Protection, sequências de sons cronometradas, uma trilha de música dinâmica que reage a um fact, um perfil de "voz de digitação" para diálogos e um menu no jogo em que os jogadores ajustam seus próprios volumes.

A extensão roda na build BTC do TypeWriter (BTC Core, Paper/Folia) e é documentada aqui como referência. As entries de menu são construídas sobre a extensão GUI.

Recursos​

  • Cinco camadas de áudio — MASTER, MUSIC, AMBIENT, SFX e VOICE, cada uma com seu próprio volume por jogador.
  • Volumes salvos — um artifact Player Audio Volume armazena as configurações de cada jogador.
  • Zonas de som ambiente — toque um som enquanto o jogador está em uma região do Protection, com uma prioridade quando as zonas se sobrepõem.
  • Sequências de sons — dispare vários sons com atrasos escolhidos a partir de uma única action.
  • Música dinâmica — inicie uma trilha base e ative e desative camadas extras a partir do valor de um fact.
  • Vozes de diálogo — toque um som por caractere digitado, com sons separados para vogais, pontuação e espaços e uma variação aleatória de tom.
  • Action de volume — defina o volume de uma camada para um jogador, instantaneamente ou com uma mudança progressiva.
  • Menu de configurações — um GUI em que os jogadores aumentam, diminuem ou silenciam cada camada, utilizável como menu próprio ou como botões dentro de qualquer página do GUI.

Instalação​

  1. Instale a extensão GUI: a extensão Audio é compilada contra ela e usa seu sistema de menus para a tela de configurações.
  2. Se quiser zonas de som ambiente, instale a extensão Protection e crie regiões com ela.
  3. Coloque o JAR do Audio em plugins/Typewriter/extensions/ e reinicie o servidor.
  4. Toque seus próprios sons normalmente: os sons personalizados vêm do seu resource pack, e a extensão apenas os toca pelo id do som.

Primeiros passos​

Adicione uma ambientação em estilo de loop a uma região de floresta e dê aos jogadores um menu de volume:

  1. No painel web do TypeWriter, crie uma região com a extensão Protection e anote o ID de sua entry.
  2. Abra uma página static e adicione uma entry Ambient Sound Zone.
  3. Defina protectionRegionId com o ID da entry da região, escolha o sound e mantenha layer em AMBIENT.
  4. Adicione um artifact Player Audio Volume em uma página de manifest, para que os volumes sejam salvos.
  5. Adicione uma action Audio Settings Menu. Construa seu layout em layoutPool, defina mainLayoutId e coloque itens cuja tag seja audio_button:AUDIO_LAYER:MASTER, audio_button:AUDIO_LAYER:MUSIC e assim por diante (o nome da camada é escrito em maiúsculas).
  6. Adicione uma action Open Audio Settings apontando para o menu em menu e dispare-a a partir de uma opção de diálogo de NPC, de um comando ou de um item.
  7. Publique, entre na região e depois abra o menu e teste os volumes.
Sem fades e sem repetição

Fades não são suportados. O Minecraft não consegue alterar o volume de um som que já está tocando, então fadeIn e fadeOut não fazem nada: um som começa com o volume total e para de imediato. Os campos continuam nas zonas, sequências e perfis de diálogo, mas o valor deles não muda nada. Da mesma forma, looping não está implementado: o som toca uma vez e não é repetido, então use um som longo o bastante para a zona.

Como funciona​

As zonas ambiente, as sequências de sons, os perfis de diálogo e a Dynamic Music Track passam todos pelo mixer, então seguem o volume do jogador para a sua camada. Um som começa direto no volume final: o volume do som, vezes o volume da camada (com o volume master), vezes um multiplicador próprio da entry (zoneVolume de uma zona ambiente, volumeOverride de um segmento de sequência). Como o Minecraft não consegue alterar o volume de um som que já está tocando, um volume de camada alterado depois só vale para os sons iniciados após a mudança.

O Audio Settings Menu é uma entry de GUI. Seus campos (inventoryTitle, inventoryRows, guiType, layoutPool, mainLayoutId, audio) funcionam como na extensão GUI. O Audio adiciona botões especiais: dê a um item do layout a tag audio_button: seguida de um tipo de botão.

Tipo de botãoO que faz
AUDIO_LAYER:<LAYER>Mostra a camada (por exemplo AUDIO_LAYER:MASTER) com seu ícone, porcentagem e uma barra de dez passos. O clique esquerdo soma 10 por cento, o clique direito subtrai 10 por cento, Shift + clique esquerdo silencia ou restaura a camada.
AUDIO_CLOSEFecha o menu.

A tag é lida como audio_button:<TYPE>:<LAYER>. Na prática, AUDIO_LAYER:<LAYER> é o botão a usar. Os tipos AUDIO_VOLUME_UP, AUDIO_VOLUME_DOWN e AUDIO_LAYER_MUTE também são reconhecidos, mas só agem quando a camada é informada da mesma forma (por exemplo audio_button:AUDIO_VOLUME_UP:MUSIC), e então são renderizados exatamente como AUDIO_LAYER:MUSIC: os três cliques estão sempre disponíveis.

Os botões são registrados para toda página do GUI, então você pode colocá-los em um menu geral de "Configurações" e não apenas no Audio Settings Menu. Os itens de camada gerados usam nomes de exibição e lore em francês ("Volume general", "Musique", "Clic gauche"); esses textos são fixos na extensão.

Os jogadores alteram os volumes por meio de um comando interno chamado audio_button, registrado na inicialização. Ele não foi feito para ser digitado manualmente e não tem verificação de permissão própria.

Configuração​

A extensão não tem arquivo de configuração. Os volumes são armazenados por meio do artifact Player Audio Volume (artifactId é player_audio_volumes por padrão). As alterações são gravadas cerca de cinco segundos após a última mudança e novamente quando o TypeWriter é descarregado. Sem esse artifact em uma página publicada, os volumes só existem na memória e são perdidos quando o jogador sai.

Entries​

8 entradas, geradas a partir do código-fonte da extensão.

Ações5
Artefatos1
Definições2

Solução de problemas​

A zona ambiente não toca nada. A zona é comparada com protectionRegionId, o ID de uma região da extensão Protection. worldGuardRegionId só é lido quando protectionRegionId está vazio, e exige o plugin WorldGuard; uma zona sem nenhum dos dois nunca corresponde. Verifique também se sound não está vazio e se o jogador realmente cruza uma fronteira de bloco dentro da região, pois as zonas são verificadas quando o jogador se move para outro bloco.

A voz do diálogo nunca toca. O listener só inicia quando o sound do falante aponta para uma entry cujo ID é o ID do perfil e essa entry também é encontrada como uma entry de ID de som. A entry Dialogue Audio Profile é uma entry static simples, então teste-a com um diálogo curto antes de depender dela. Um diálogo com texto vazio ou duração zero é ignorado.

As alterações de volume se perdem após uma reconexão. Adicione um artifact Player Audio Volume a uma página publicada. Sem ele, nada é salvo.

Um botão do menu não faz nada e mostra o item simples. A tag deve começar com audio_button: e terminar com um nome de camada escrito em maiúsculas, por exemplo audio_button:AUDIO_LAYER:SFX. Sem uma camada válida, o item permanece como você o configurou.

O menu de configurações não abre. O menu é construído sobre a extensão GUI. Confirme que ela está instalada e que a action Open Audio Settings tem o campo menu definido.

Extensões relacionadas​

  • GUI — layouts e itens de menu usados pelo menu de configurações.
  • Protection — regiões que conduzem as zonas de som ambiente.