Intermediário - Bancos de Som Personalizados
Guia sobre como criar bancos de áudio personalizados com o Wwise.
Ferramentas necessárias:
Wwise 2022.1.3Baixe pela Audiokinetic. Use a versão 2022.1.3. Os bancos atuais do League são gerados com o Wwise 2022.1, e bancos de outras versões podem não carregar.
Materiais úteis:
Wwise 101Curso oficial para iniciantes. Assista para aprender a usar o Wwise.
Wwise 201Curso oficial avançado.
League Wwise Hierarchy ReferenceVeja como os bancos oficiais são estruturados e o que você pode reaproveitar para deixar seus sons melhores.
Custom Announcer Template por aurecueil e JessibeeTemplate gratuito. Coloque seus sons nele para montar um banco de narrador totalmente personalizado.
Este guia mostra como montar bancos personalizados que funcionam dentro do sistema de áudio do League. Para o básico do Wwise, comece pelo Wwise 101 acima.
Estrutura dos bancos e exportação separada
O League divide o áudio em dois arquivos separados:
audio.bnk/audio.wpk: contém só mídia (os arquivos de áudio.wembrutos).events.bnk: contém a hierarquia de lógica (eventos, sequências de ações, containers, switches e roteamento de buses).
A hierarquia do Wwise é plana. Cada elemento tem um ID e um ParentID. Isso permite injetar novos elementos que se ligam a pais já existentes na hierarquia do League, sem substituir a árvore inteira.
Separando áudio e eventos nos bancos personalizados
Na hora de gerar os SoundBanks, o Wwise pode juntar estrutura e mídia em um único banco. Se quiser, você pode separar o áudio dos eventos e da estrutura. Separar permite que outras pessoas editem seus bancos personalizados depois com o Quartz.
Se for separar, gere:
- Um
_audio.bnksó com a mídia. - Um
_events.bnkcom a estrutura e as definições de eventos.
Se não for separar, gere:
- Um
_events.bnkcom a mídia, a estrutura e as definições de eventos. Resumindo, tudo.
Boas práticas na hierarquia do projeto
Evite colocar objetos de som direto abaixo de um Work Unit:
❌ Ruim:
Work Unit -> Sound SFX
✅ Bom:
Work Unit -> Actor-Mixer -> Random / Sequence Container -> Sound SFXPor que usar Actor-Mixers?
Um Actor-Mixer funciona como um controle central para o kit de um personagem ou um grupo de feitiços. Você define os padrões no Actor-Mixer uma vez só:
- Roteamento do bus de saída (
daad0rhmpara SFX) - Sharesets de atenuação
- Prioridade de reprodução
- Make-up Gain base
Os containers filhos herdam essas configurações automaticamente. Se um som precisar de um comportamento especial, ative Override parent nesse filho específico.
Ajuste o volume com o Make-up Gain
Na hora de equilibrar os níveis no Wwise, ajuste o Make-up Gain em vez do Voice Volume. O Voice Volume interage com os faders em tempo de execução e a margem de ducking. O Make-up Gain dá um ganho estático limpo e previsível, sem clipping.
Adicionando variação aleatória de pitch
A Riot costuma aplicar uma pequena variação aleatória de pitch em ações repetitivas para que soem naturais (por exemplo, as variações do W do Sett ou os procs de Aperto dos Mortos-Vivos):
- Selecione seu container ou objeto de som.
- Clique com o botão direito no ícone à direita de Pitch.
- Defina um intervalo, por exemplo de
-100a+100cents.
Roteamento de áudio: buses de saída
Você não pode modificar nem substituir os buses existentes do jogo. Mas pode rotear direto para eles ou criar seus próprios buses filhos abaixo deles.
| Uso | Nome do bus |
|---|---|
| SFX de campeão (conjuração de feitiços padrão, impactos e ataques básicos) | daad0rhm |
| VO de campeão | vo_champions |
| Avisos do narrador | vo_announcer_default |
| Música tema do campeão (crie um bus filho personalizado abaixo deste) | mus_champion |
| Música de fundo / do mapa | mus_map |
| Notificações e áudio de interface | sfx_hud |
| Pings táticos | sfx_pings |
| Sons de ambiente | sfx_environment |
| Música do Teamfight Tactics | tft_mus_default |
Os sons de combate dos campeões devem sempre ir para o daad0rhm. Os buses
wet passam pela reverberação e pelos filtros de distorção globais do ambiente
(como a distorção de som da passiva da Evelynn). Rotear para o daad0rhm
mantém seus SFX limpos.
Auto-ducking dos buses oficiais
Se o seu som precisar abaixar o áudio de fundo (por exemplo, uma fala especial na ultimate ou uma música personalizada):
- Roteie seu som por um bus filho personalizado.
- Na aba Auto-Ducking do seu bus, adicione o bus oficial alvo (por exemplo,
mus_map). - Configure o bus alvo para fazer ducking por Bus Volume, nunca por Voice Volume. Fazer ducking no Voice Volume pode cortar por completo os sons que já estão tocando.
Posicionamento e atenuação
A atenuação controla como o som diminui com a distância. Sem atenuação, os sons tocam no mapa inteiro com volume máximo.
Configurações principais
- Unidades de distância: As unidades de distância do Wwise correspondem direto às unidades de alcance do League (o alcance do Flash é 400; ataques básicos à distância ficam entre 500 e 650).
- Desative o Height Spread: O League é jogado em um plano com câmera isométrica. Sempre desative o Height Spread no posicionamento 3D para evitar falhas de pan vertical.
- Reproduzindo as curvas oficiais: Não dá para referenciar os assets de atenuação oficiais por ID. Em vez disso, consulte a League Wwise Hierarchy Reference para ver a distância máxima, as curvas de roll-off e os cones usados pelos campeões base, e depois recrie curvas equivalentes nos sharesets de atenuação do seu projeto.
Ordem de carregamento e overrides pelo .bin
No League, o primeiro a carregar vence. Se dois bancos definirem o mesmo elemento, o do segundo é descartado sem aviso.
Você define a ordem de carregamento no arquivo .bin da skin:
bankPath: list[string] = {
"ASSETS/Sounds/Wwise2016/VO/en_US/Characters/Yone/Skins/Base/Yone_Custom_VO_audio.bnk" ← O banco personalizado carrega primeiro
"ASSETS/Sounds/Wwise2016/VO/en_US/Characters/Yone/Skins/Base/Yone_Base_VO_audio.bnk"
"ASSETS/Sounds/Wwise2016/VO/en_US/Characters/Yone/Skins/Base/Yone_Base_VO_audio.wpk"
"ASSETS/Sounds/Wwise2016/VO/en_US/Characters/Yone/Skins/Base/Yone_Base_VO_events.bnk"
}Regras de nome dos bancos
- Sobrescrevendo eventos oficiais: Se você só substitui eventos que já existem no jogo base, seu banco não precisa ter
_eventsno nome do arquivo. O motor já registrou esses nomes de eventos pelo banco do jogo, então seu banco os intercepta desde que carregue primeiro. - Adicionando eventos novos: Se você adicionar eventos novos que o campeão base não tem, o nome do arquivo do seu banco precisa conter
_events(por exemplo,Yone_Custom_events.bnk). O carregador de som do League só lê definições de eventos de bancos que têm_eventsno nome. - States e switches personalizados: Criar states ou switches personalizados exige gerar e carregar um
Init.bnk. (Injetar ou renomear umInit.bnkpersonalizado no League é experimental e não verificado. Use os states e switches oficiais existentes sempre que puder.)
Dica extra: configurações de conversão
Você pode usar configurações de conversão personalizadas no seu projeto do Wwise (compressão Vorbis, qualidade ou taxa de amostragem menores) para reduzir bastante o tamanho final dos arquivos .bnk e .wem exportados.
Guia por aurecueil
