5.6 KiB
Categories and characters
Implemented in ackit/classify.py; used both when building the shipped catalog (tools/build_catalog.py)
and when a game build is not in the catalog (runtime scan), so every language/build gets the same scheme.
Groups and categories
Every sound has a group and a finer category, derived from its name (taken from the game files: the
soundbank names in CookedBanks.txt and the Wwise event names; the 3 SFX entries no name reaches show as hex).
First matching rule wins:
| name starts with | group | category |
|---|---|---|
CHR_RadioScanner, PSO_CarRadio, Speech_RADIO, Speech_TV, Speech_CAMERAS, DIA_ |
Speech | Radio & TV |
Speech_TAPE_ |
Speech | Interview tapes |
Speech_INTERROGATION_ |
Speech | Interrogations |
Speech_CINEMATIC_, Speech_New_ |
Speech | Cinematics |
Speech_Boss_ / Speech_BOSS_ |
Speech | Boss fights |
Speech_RIDDLER_, Speech_RIDDLES_ |
Speech | Riddler |
Speech_SIDE_ |
Speech | Side missions |
Speech_DLC_ |
Speech | DLC |
Speech_PRED_ |
Speech | Predator chatter |
Speech_COMBAT_, Speech_Bully_ |
Speech | Combat barks |
Speech_EMOTE_ |
Speech | Efforts & emotes |
Speech_REACT_ |
Speech | Reactions |
Speech_STREETS_, Speech_ZONES_, Speech_OUTCAST_, Speech_Vertical_ |
Speech | Open-world chatter |
Speech_CHAR_ |
Speech | Character lines |
Speech_CH_, Speech_SEQUENCE_, Speech_STEEL_, _MUSEUM_, _CHURCH_, _COURT_, _UNDER_, _GCPD_, _ZP1_ |
Speech | Story missions |
Speech_GAME_, Speech_MAP_, Speech_AUGMENTED_, Speech_FORENSICS_, Speech_TEMP_ |
Speech | Gameplay & hints |
NPC_...Crowd... |
Ambience | Crowds |
other Speech_ |
Speech | Other speech |
media of the Music / Music_PDLC stream packs, Music*, MUS_ |
Music | Music / Music (DLC) |
AMB_, PSA_ |
Ambience | Ambience |
PSO_ (flies, drips, fans, lights) |
Ambience | Ambient emitters |
WND_ |
Ambience | Wind |
WTR_ |
Ambience | Weather |
VOL_, PVOL_ |
Ambience | Room tone |
anything containing Footstep |
SFX | Footsteps |
CHR_/NPC_ containing Combat, BoneBreak, Bodyfall |
SFX | Combat |
SEQ_, MTN_ |
SFX | Scripted sequences |
OBJ_ |
SFX | Objects |
PX_, PHY_ |
SFX | Physics |
WPN_ |
SFX | Weapons |
DVC_ |
SFX | Gadgets |
GUI_, SBJ_ |
SFX | Interface |
VFX_ |
SFX | Visual effects |
other NPC_ |
SFX | Enemies & NPCs |
CHR_, GEN_ |
SFX | Character foley |
Global |
SFX | Global |
| anything else (e.g. unnamed hex IDs) | Unknown | Unknown |
BANK sounds (in-memory, docs/formats/banks.md) are classified by the name of their soundbank (e.g.
CHR_CatwomanFoleySuit, Speech_EMOTE_Batman), which is more systematic than their event names.
Counts per voice language (identical in all 5): Story missions 1996, Predator chatter 1796, Character lines 1537, Open-world chatter 1295, Side missions 808, Combat barks 801, Efforts & emotes 616, Interview tapes 514, Riddler 360, Radio & TV 223, Gameplay & hints 199, DLC 167, Boss fights 150, Cinematics 150, Reactions 108, Interrogations 95. SFX archive: Music 389, Ambience 225, SFX 31, Unknown 6. BANK (all languages): Combat barks 4360, Character foley 3051, Other speech 2590, Footsteps 1256, Ambient emitters 705, Weapons 494, Combat 412, Objects 401, ...
Characters
Two separate fields, because Wwise names describe a scene, not the speaker of each variation (a conversation
alternates speakers between NAME_1, NAME_2, ...):
- character - the verified speaker, only from the curated lists in
data/catalog/source/<lang>/*.txt(one file per character, listening-based; the lists so far were made on the Italian voices,source/ita/). A list names sounds by their position in its language's WAD (wemscan names); positions differ between languages, so each listed recording is found at its position in that language and the label goes to its line (characters.csv, keyed by the line's name), i.e. to the same recording in every language. A label applies to exactly the listed recordings (not to other versions of the same event). Checked byackit verify --catalogagainst the speaker field of the game's dialogue objects: 2,766 labelled lines agree (spelling aside: Mister Freeze, Bruce Wayne, TwoFace, Mysterious_stranger = Azrael), 25 listed as Unknown are named there, 19 differ (to listen to:Batman_sword_raised_01-04game: Ra's al Ghul,ENCRYPTION_CARD2_02game: Hugo Strange,thug1_heckle_01_3game: Thug 01,SIDE_CAT_TF_intro1_03game: Thug 06; the 12 Wonder City lines say "Announcement"). Display names: Calendar -> Calendar Man, Croc -> Killer Croc, Freeze -> Mr. Freeze, Ivy -> Poison Ivy, Madhatter -> Mad Hatter, Quinn -> Harley Quinn, Ras -> Ra's al Ghul, Strange -> Hugo Strange, Talia -> Talia al Ghul, Twoface -> Two-Face, Vicky -> Vicki Vale, Zsazz -> Victor Zsasz, Unknown -> Unknown (speaker checked but not identified). A line in two lists gets both ("A; B"). - characters_inferred - characters and roles mentioned by the name (token rules in
classify._TOKENS, e.g.BM/BATMAN-> Batman,PENG-> Penguin,TF-> Two-Face,THUG*/GENTHUG*-> Thug,TYGER-> TYGER guard; interview tapes add Hugo Strange). A hint for the ~7,400 lines without a verified speaker, never shown as the speaker. In the editor the character filter matches verified speakers, and optionally inferred ones.
Coverage of the 10,811 WAD voice lines (every voice language, the same lines): 3,366 with a verified speaker, 6,258 more with inferred characters, 1,187 with neither (combat barks 407, story missions 267, open-world chatter 228, radio & TV 122, ...).