EvilEngine/JAW: Difference between revisions

m
Seil moved page JAW to EvilEngine/JAW
No edit summary
m (Seil moved page JAW to EvilEngine/JAW)
 
(One intermediate revision by one other user not shown)
Line 13:
 
==Format==
The asset data starts with an int which defines the amount of entries in the jaw data table, then a directorytable containing each entry's offset and size. Each directorytable entry has the following format:
 
===xJawDataTable===
{| class="wikitable"
! Offset !! Type !! Variable !! Description
|-
| 0x00 || [[AssetID]] || '''soundHashID''' || ([[SND|Sound]]/[[SNDS|Streaming Sound]]) || '''Sound'''
|-
| 0x04 || int || '''OffsetdataStart''' || Offset of jaw data (relative to end of directory)
|-
| 0x08 || int || '''SizedataLength''' || Size of jaw data (in bytes)
|}
 
After the directorytable are the entries themselves. Each entry is 4-byte aligned and padded with null (0) bytes. The offsets in the directorytable are calculated based on this alignment, and the sizes do not include the padding. Each entry has the following format:
 
{| class="wikitable"
! Offset !! Type !! Description
|-
| 0x00 || int || '''Length''' of jaw data in frames (?) (sizedataLength - 4). This is little-endian on all platforms.
|-
| 0x04 || byte[Length] || '''Jaw data'''. Each byte represents the speaker's mouth position at the current point in time, from 0 (fully closed) to 255 (fully open).