Divine Skins
Divine Skins Wiki

Intermediate - Banques de sons custom

Guide pour créer des banques audio custom avec Wwise.

Outils requis :

Wwise 2022.1.3

À télécharger chez Audiokinetic. Utilise la version 2022.1.3. Les banques actuelles de League sont générées avec Wwise 2022.1, et celles d'autres versions risquent de ne pas charger.

Ressources utiles :

Wwise 101

Le cours officiel pour débutants. Regarde-le pour apprendre à utiliser Wwise.

Wwise 201

Le cours officiel avancé.

League Wwise Hierarchy Reference

Regarde comment les banques officielles sont structurées et ce que tu peux réutiliser pour améliorer tes sons.

Custom Announcer Template par aurecueil et Jessibee

Template gratuit. Dépose tes sons dedans pour construire une banque d'annonceur entièrement custom.

Info

Ce guide explique comment construire des banques custom qui fonctionnent dans le système audio de League. Pour les bases de Wwise, commence par Wwise 101 ci-dessus.


Structure des banques et exports séparés

League sépare l'audio en deux fichiers distincts :

  • audio.bnk / audio.wpk : contient uniquement les médias (les fichiers audio .wem bruts).
  • events.bnk : contient la hiérarchie logique (events, séquences d'actions, containers, switches et routage des bus).

La hiérarchie de Wwise est plate. Chaque élément a un ID et un ParentID. Ça permet d'injecter de nouveaux éléments qui se rattachent à des parents existants dans la hiérarchie de League, sans remplacer tout l'arbre.

Séparer l'audio et les events dans tes banques custom

Quand tu génères des SoundBanks, Wwise peut regrouper la structure et les médias dans une seule banque. Tu peux, si tu veux, séparer l'audio des events et de la structure. Séparer permet aux autres d'éditer plus tard tes banques custom avec Quartz.

Si tu sépares, génère :

  1. Un _audio.bnk qui contient uniquement les médias.
  2. Un _events.bnk qui contient la structure et les définitions d'events.

Si tu ne sépares pas, génère :

  1. Un _events.bnk qui contient les médias, la structure et les définitions d'events. Bref, tout.

Bonnes pratiques pour la hiérarchie du projet

Évite de placer des objets sonores directement sous un Work Unit :

❌ Mauvais :
Work Unit -> Sound SFX

✅ Bon :
Work Unit -> Actor-Mixer -> Random / Sequence Container -> Sound SFX

Pourquoi utiliser des Actor-Mixers ?

Un Actor-Mixer sert de contrôleur central pour le kit d'un personnage ou un groupe de sorts. Tu définis les valeurs par défaut une seule fois sur l'Actor-Mixer :

  • Routage du bus de sortie (daad0rhm pour les SFX)
  • Sharesets d'atténuation
  • Priorité de lecture
  • Make-up Gain de base

Les containers enfants héritent automatiquement de ces réglages. Si un son a besoin d'un comportement spécial, active Override parent sur cet enfant précis.

Règle le volume avec le Make-up Gain

Pour équilibrer les niveaux dans Wwise, ajuste le Make-up Gain plutôt que le Voice Volume. Le Voice Volume interagit avec les faders au runtime et la marge de ducking. Le Make-up Gain te donne un gain statique propre et prévisible, sans saturation.

Ajouter une variation aléatoire du pitch

Riot applique souvent un léger changement de pitch aléatoire aux actions répétitives pour qu'elles sonnent naturelles (par exemple les variantes du W de Sett ou les procs de Poigne de l'immortel) :

  1. Sélectionne ton container ou ton objet sonore.
  2. Fais un clic droit sur l'icône à droite de Pitch.
  3. Règle une plage, par exemple de -100 à +100 cents.

Routage audio : les bus de sortie

Tu ne peux pas modifier ni remplacer les bus existants du jeu. Par contre, tu peux router directement vers les bus existants ou créer tes propres bus enfants en dessous.

UtilisationNom du bus
SFX de champion (lancers de sorts standards, impacts et auto-attaques)daad0rhm
VO de championvo_champions
Annonces de l'annonceurvo_announcer_default
Musique thème du champion (crée un bus enfant custom en dessous)mus_champion
Musique de fond / de la cartemus_map
Notifications et audio de l'UIsfx_hud
Pings tactiquessfx_pings
Sons d'ambiance et d'environnementsfx_environment
Musique de Teamfight Tacticstft_mus_default
Info

Les sons de combat des champions doivent toujours passer par daad0rhm. Les bus wet passent par la reverb et les filtres de distorsion globaux de l'environnement (comme la distorsion sonore du passif d'Evelynn). Router vers daad0rhm garde tes SFX clairs.


Auto-ducking des bus officiels

Si ton son custom doit baisser l'audio de fond (par exemple une réplique spéciale sur l'ultime ou une musique custom) :

  1. Route ton son via un bus enfant custom.
  2. Dans l'onglet Auto-Ducking de ton bus custom, ajoute le bus officiel ciblé (par exemple mus_map).
  3. Règle le bus ciblé pour qu'il duck via Bus Volume, jamais via Voice Volume. Ducker le Voice Volume peut couper complètement les sons en cours de lecture.

Positionnement et atténuation

L'atténuation contrôle la façon dont le son diminue avec la distance. Sans atténuation, les sons jouent sur toute la carte à plein volume.

Réglages de positionnement dans Wwise Réglages d'atténuation dans Wwise

Réglages clés

  • Unités de distance : Les unités de distance de Wwise correspondent directement aux unités de portée de League (la portée du Flash est de 400, les attaques à distance de base font entre 500 et 650).
  • Désactive Height Spread : League se joue sur un plan plat avec une caméra isométrique. Désactive toujours Height Spread dans le positionnement 3D pour éviter les bugs de panoramique vertical.
  • Reproduire les courbes officielles : Tu ne peux pas référencer les assets d'atténuation officiels par ID. À la place, consulte la League Wwise Hierarchy Reference pour voir la distance max, les courbes de roll-off et les cônes utilisés par les champions de base, puis recrée des courbes équivalentes dans les sharesets d'atténuation de ton projet.

Ordre de chargement et overrides via le .bin

Dans League, le premier chargé gagne. Si deux banques définissent le même élément, celui de la deuxième est ignoré sans avertissement.

Tu définis l'ordre de chargement dans le fichier .bin du skin :

bankPath: list[string] = {
    "ASSETS/Sounds/Wwise2016/VO/en_US/Characters/Yone/Skins/Base/Yone_Custom_VO_audio.bnk"  ← La banque custom charge en premier
    "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"
}

Règles de nommage des banques

  • Remplacer des events officiels : Si tu remplaces seulement des events qui existent déjà dans le jeu de base, ta banque custom n'a pas besoin de _events dans son nom de fichier. Le moteur a déjà enregistré ces noms d'events depuis la banque de base, donc ta banque les intercepte tant qu'elle charge en premier.
  • Ajouter de nouveaux events : Si tu ajoutes des events qui n'existent pas sur le champion de base, le nom de fichier de ta banque doit contenir _events (par exemple Yone_Custom_events.bnk). Le loader audio de League ne lit les définitions d'events que dans les banques qui ont _events dans leur nom.
  • States et switches custom : Créer des states ou des switches custom demande de générer et de charger un Init.bnk. (Injecter ou renommer un Init.bnk custom dans League est expérimental et non vérifié. Utilise les states et switches officiels existants quand c'est possible.)

Astuce : réglages de conversion

Tu peux utiliser des réglages de conversion custom dans ton projet Wwise (compression Vorbis, qualité ou fréquence d'échantillonnage plus basses) pour réduire fortement la taille finale de tes fichiers .bnk et .wem exportés.


Guide par aurecueil