Chapter 3 Binary Format

3-16. AnimList

2. AnimGroup Area

AnimGroupHeader u32 anim_group_tag
u32 this_anim_group_index
u32 anim_group_header_size
u32 anim_group_size
u32 anim_name_index
u32 anim_type
u32 frame_rate
u32 anim_num
u32 anim_loop
u32 anim_rot_mtx_order
u32 nintendo_extension_block_size
u32 user_extension_block_size
Anim(0)
...
Anim(anim_num - 1)
NintendoExtensionBlock
UserExtensionBlock

Figure: AnimGroup Area Memory Map

u32 anim_group_tag Tag indicating AnimGroup. Set the following flag.

TAG_ANIM_GROUP	0x000c0100
u32 this_anim_group_index Index number of this AnimGroup.
u32 anim_group_header_size Size of this AnimGroupHeader.
u32 anim_group_size Size of this AnimGroup.
u32 anim_name_index Index number of AnimGroup name contained in NameList.
u32 anim_type Specifies the animation type. The following are currently defined.


ANIM_TYPE_STATIC	0x00000000
ANIM_TYPE_FULL		0x00000002
ANIM_TYPE_KEY		0x00000003
ANIM_TYPE_BILLBOARD_OBJ	0x00000004

ANIM_TYPE_STATIC converts non-animated data into matrix data like an object. Apply to data for a house or mountain, or a fixed camera view.

ANIM_TYPE_FULL performs full frame animation. Specify to include every frame of the animation data

ANIM_TYPE_KEY performs key frame animation. Specify to include every key frame of the animation data.

ANIM_TYPE_BILLBOARD_OBJ specifies animation that always faces toward a specified object.

u32 frame_rate Specifies the animation frame rate.
u32 anim_num Specifies the number of Anim area.
u32 anim_loop Sets the number of loops the animation will execute. To set an inifinite number of loops, specify the following:

ANIM_LOOP_ENDLESS	0x00000000
u32 anim_rot_mtx_order Specifies the calculation order of X axial, Y axial and Z axial rotation. Use the following flag. The calculation is done backwards. (For example, if ANIM_ROT_ORDER_XYZ is specified, rotation matrix R would be R=Z*Y*X.)


ANIM_ROT_ORDER_XYZ	0x00010203
ANIM_ROT_ORDER_XZY	0x00010302
ANIM_ROT_ORDER_YXZ	0x00020103
ANIM_ROT_ORDER_YZX	0x00030102
ANIM_ROT_ORDER_ZXY	0x00020301
ANIM_ROT_ORDER_ZYX	0x00030201
u32 nintendo_extension_block_size Nintendo extension block size
u32 user_extension_block_size User extension block size
Anim Actual animation data.
NintendoExtensionBlock Nintendo extension block
UserExtensionBlock User extension block