Files
UnheardCity/docs/categories.md

4.5 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 Wwise name (from the community hash list; unnamed IDs 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 in the ITA catalog: Story missions 1993, 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 226, Gameplay & hints 199, DLC 167, Boss fights 150, Cinematics 150, Reactions 108, Interrogations 95. SFX archive: Music 389, Ambience 225, SFX 31, Unknown 6.

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). Mapped by sound name, so labels made on the Italian files apply to every language (the five language WADs have identical names and variation counts). 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,500 lines without a verified speaker, never shown as the speaker. In the editor the character filter matches verified speakers, and optionally inferred ones.

Coverage (every language): 3,366 sounds with a verified speaker, 5,930 more with inferred characters, 1,520 with neither (mostly predator/efforts from unnamed thugs).