Skip to content

Browse by monster, offering only that monster's animations #5

Description

@Darithos

The third of the project's three goals, and the last substantial piece before a UI is worth building.

D2R still runs the original game's animation system beneath the HD renderer: a monster has a three-character token and its clips carry two-letter modes (NU neutral, WL walk, RN run, A1/A2 attack, GH get-hit, BL block, SC cast, S1S8 skills, DT death, DD dead, KB knockback).

That makes this far more tractable than it was for Diablo III, where answering "which animations belong to this model?" needed the Actor → AnimSet → Anim chain reverse engineered across 19,177 files. Sc2SequenceName already maps the modes; what is missing is the catalogue.

Four sources, in this order

The same shape the D3 tool arrived at the hard way — see D3ModelViewer/docs/ANIMATION-ASSOCIATION.md for why ranking them matters.

Source How
This unit the model's token, via monstats.txt and the HD JSON, to its declared modes. Authoritative
This skeleton every clip whose track bone names all exist in this model's skeleton
Name match path or token prefix
All the whole catalogue, filtered

"This skeleton" is nearly free — a name-set comparison over data already loaded — and is worth doing first as it needs no new file formats.

Note

If d2rmv scan reports that models carry their animations inline (it counts this), "This unit" is nearly free too: it is whatever Animations array the file itself contains, and the other sources only matter for shared libraries. Check #1's output before designing the catalogue.

Watch the token-matching boundary: match modes only as delimited tokens. Sc2SequenceName.FindMode already does this — matching NU inside "Nucleus" is the exact bug that made the D3 name matcher unreliable.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions