model_animations

🚧 This article is a stub. You can help expand it by submitting content in pull requests or issues in this wiki's source repo.

...

Structure and fields #

Field Type Comments
objects Block?
Field Type Comments
animation Index (animations)
function enum
Option Value Comments
a out 0x0
b out 0x1
c out 0x2
d out 0x3
function controls enum
Option Value Comments
frame 0x0
scale 0x1
pad(2)
pad(12)
units Block?
Field Type Comments
label char[32]
right yaw per frame Angle: f32
left yaw per frame Angle: f32
right frame count u16
left frame count u16
down pitch per frame Angle: f32
up pitch per frame Angle: f32
down pitch frame count u16
up pitch frame count u16
pad(8)
animations Block?
Field Type Comments
animation Index (animations)
ik points Block?
Field Type Comments
marker char[32]
attach to marker char[32]
weapons Block?
Field Type Comments
name char[32]
grip marker char[32]
hand marker char[32]
right yaw per frame Angle: f32
left yaw per frame Angle: f32
right frame count u16
left frame count u16
down pitch per frame Angle: f32
up pitch per frame Angle: f32
down pitch frame count u16
up pitch frame count u16
pad(32)
animations Block?
Field Type Comments
animation Index (animations)
ik point Block?
Field Type Comments
marker char[32]
attach to marker char[32]
weapon types Block?
Field Type Comments
label char[32]
pad(16)
animations Block?
Field Type Comments
animation Index (animations)
weapons Block?
Field Type Comments
pad(16)
animations Block?
Field Type Comments
animation Index (animations)
vehicles Block?
Field Type Comments
right yaw per frame Angle: f32
left yaw per frame Angle: f32
right frame count u16
left frame count u16
down pitch per frame Angle: f32
up pitch per frame Angle: f32
down pitch frame count u16
up pitch frame count u16
pad(68)
animations Block?
Field Type Comments
animation Index (animations)
suspension animations Block?
Field Type Comments
mass point index Index: u16
animation Index (animations)
full extension ground depth f32
full compression ground depth f32
pad(8)
devices Block?
Field Type Comments
pad(84)
animations Block?
Field Type Comments
animation Index (animations)
unit damage Block?
Field Type Comments
animation Index (animations)
first person weapons Block?
Field Type Comments
pad(16)
animations Block?
Field Type Comments
animation Index (animations)
sound references Block?
Field Type Comments
pad(4)
limp body node radius f32
flags bitfield(16)
Flag Mask Comments
compress all animations 0x1
force idle compression 0x2
pad(2)
nodes Block?
Field Type Comments
name char[32]
next sibling node index Index (nodes)
first child node index Index (nodes)
parent node index Index (nodes)
pad(2)
node joint flags bitfield(32)
Flag Mask Comments
ball socket 0x1
hinge 0x2
no movement 0x4
base vector
Vector3D
  • i: f32
  • j: f32
  • k: f32
vector range f32
pad(4)
animations Block?
Field Type Comments
name char[32]
type enum
Option Value Comments
base 0x0
overlay 0x1
replacement 0x2
frame count u16
frame size u16
frame info type enum
Option Value Comments
none 0x0
dx dy 0x1
dx dy dyaw 0x2
dx dy dz dyaw 0x3
node list checksum u32
node count u16
loop frame index Index: u16
weight Fraction: f32
key frame index Index: u16
second key frame index Index: u16
next animation Index (animations)
flags bitfield(16)
Flag Mask Comments
compressed data 0x1
world relative 0x2
25hz pal 0x4
sound Index (sound references)
sound frame index Index: u16
left foot frame index i8
right foot frame index i8
main animation index u16 (little endian?)
  • Only set when the tag is compiled into a map cache.
relative weight f32 (little endian?)
  • Only set when the tag is compiled into a map cache.
frame info
TagDataOffset
  • size: u32
  • external: u32
  • file offset: u32
  • pointer: u64
node transform flag data u32 x2
pad(8)
node rotation flag data u32 x2
pad(8)
node scale flag data u32 x2
pad(4)
offset to compressed data u32
default data
TagDataOffset
  • size: u32
  • external: u32
  • file offset: u32
  • pointer: u64
frame data
TagDataOffset
  • size: u32
  • external: u32
  • file offset: u32
  • pointer: u64

This information was partially generated using Invader tag definitions.

Acknowledgements

Thanks to the following individuals for their research or contributions to this topic:

  • Kavawuvi (Invader tag definitions)
  • MosesOfEgypt (Tag structure research)