Skip to content

Reading string values of annotation tracks for "hkaSplineCompressedAnimation" returns empty because of nonexistent LocalFixup in localmap #6

@Monitor221hz

Description

@Monitor221hz

The library seems to mistakingly skip over the bone names for animation tracks in spline compressed animations, because reading string value returns empty when it cannot find a corresponding local fixup.

You can see here that the track names are blank in the deserialized xml files except when unpacking uncompressed animations.

compressedtest.txt
compressedtest2.txt
uncompressedtest.txt

From what I could discern this seems to be because the local and global fixup offsets are both 0 when initialising headers for compressed animation files.

compressed test 1 (blank track name):

Class Section
Section ID: 0 Step In: 400 AbsoluteDataStart: 208 LocalFixupsOffset 192
Section ID: 0 Step In: 400 AbsoluteDataStart: 208 GlobalFixupsOffset 192
Type Section
Section ID: 1 Step In: 400 AbsoluteDataStart: 400 LocalFixupsOffset 0
Section ID: 1 Step In: 400 AbsoluteDataStart: 400 GlobalFixupsOffset 0
Data Section
Section ID: 2 Step In: 28832 AbsoluteDataStart: 400 LocalFixupsOffset 28432
Section ID: 2 Step In: 28944 AbsoluteDataStart: 400 GlobalFixupsOffset 28544

uncompressed test 1 (working):

Class Section
Section ID: 0 Step In: 448 AbsoluteDataStart: 208 LocalFixupsOffset 240
Section ID: 0 Step In: 448 AbsoluteDataStart: 208 GlobalFixupsOffset 240
Type Section
Section ID: 1 Step In: 15216 AbsoluteDataStart: 448 LocalFixupsOffset 14768
Section ID: 1 Step In: 17696 AbsoluteDataStart: 448 GlobalFixupsOffset 17248
Data Section
Section ID: 2 Step In: 619168 AbsoluteDataStart: 18896 LocalFixupsOffset 600272
Section ID: 2 Step In: 620848 AbsoluteDataStart: 18896 GlobalFixupsOffset 601952

compressed test 2 (blank track names):

Class Section
Section ID: 0 Step In: 432 AbsoluteDataStart: 208 LocalFixupsOffset 224
Section ID: 0 Step In: 432 AbsoluteDataStart: 208 GlobalFixupsOffset 224
Type Section
Section ID: 1 Step In: 432 AbsoluteDataStart: 432 LocalFixupsOffset 0
Section ID: 1 Step In: 432 AbsoluteDataStart: 432 GlobalFixupsOffset 0
Data Section
Section ID: 2 Step In: 9776 AbsoluteDataStart: 432 LocalFixupsOffset 9344
Section ID: 2 Step In: 10688 AbsoluteDataStart: 432 GlobalFixupsOffset 10256

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