5,389
edits
m (typo) |
m (typos and such) |
||
Line 189: | Line 189: | ||
;Eight-bit frame counts and limiting consequences thereof | ;Eight-bit frame counts and limiting consequences thereof | ||
:Frame counts in Oni's TRAM are either absolute frame counts since the beginning of the animation, or intervals between events or keyframes. Mostly they are 16-bit integer fields (allowing for a range of either 65535 frames = 1092.25 seconds, or 32767 frames = 546.1333... seconds, depending on whether it's interpreted as signed or unsigned by the engine). In some contexts, though, 8-bit integers (bytes) are used instead, which | :Frame counts in Oni's TRAM are either absolute frame counts since the beginning of the animation, or intervals between events or keyframes. Mostly they are 16-bit integer fields (allowing for a range of either 65535 frames = 1092.25 seconds, or 32767 frames = 546.1333... seconds, depending on whether it's interpreted as signed or unsigned by the engine). In some contexts, though, 8-bit integers (bytes) are used instead, which reduces the range to 255 frames = 4.25 seconds (or 127 frames = 2.11666... seconds if the engine reads the byte as signed). | ||
:The following contexts involve 8-bit frame counts: | :The following contexts involve 8-bit frame counts: | ||
*[[OBD:TRAM/raw0x1C|Motion blur]]: | *[[OBD:TRAM/raw0x1C|Motion blur]]: | ||
Line 198: | Line 198: | ||
**Intervals between a bone's keyframes are 8-bit fields, meaning that keyframes cannot be more than 4.25 seconds apart. (LIMITATION SEVERITY: MINOR) | **Intervals between a bone's keyframes are 8-bit fields, meaning that keyframes cannot be more than 4.25 seconds apart. (LIMITATION SEVERITY: MINOR) | ||
*"Extent info" (main TRAM file, see above): | *"Extent info" (main TRAM file, see above): | ||
**The "attack frame offset from the attack with index 0" is an 8-bit frame interval, meaning that attacks belonging to a same TRAM cannot be more than 4.25 seconds apart, or | **The "attack frame offset from the attack with index 0" is an 8-bit frame interval, meaning that attacks belonging to a same TRAM cannot be more than 4.25 seconds apart, or the extent of the later attacks may not be taken into account properly by the AI. (LIMITATION SEVERITY: Can be an issue for very long special moves or throws, where damage is dealt both at the beginning and at the end of the animation.) | ||
*"Invulnerable" range (main TRAM file, see above): | *"Invulnerable" range (main TRAM file, see above): | ||
**The invulnerability range is a pair of 8-bit frame indices, meaning that the invulnerability range cannot extend past 4.25 seconds. (LIMITATION SEVERITY: Can be an issue for very long crowd-clearing moves, like a much longer "Whirling Dervish" (ELICOMpunch_heavy) or long versions of Muro's "Breakdancer" or "Helicopter" moves) | **The invulnerability range is a pair of 8-bit frame indices, meaning that the invulnerability range cannot extend past 4.25 seconds. (LIMITATION SEVERITY: Can be an issue for very long crowd-clearing moves, like a much longer "Whirling Dervish" (ELICOMpunch_heavy) or long versions of Muro's "Breakdancer" or "Helicopter" moves) |