Expand description
Animation table file format support.
This module handles animation table files (*_tables.bin) which define animation
sets and their associated fragments for unit skeletons in Total War games. These
files act as indices that map skeleton types to their animation fragment files.
§File Format
Animation tables use a binary format (version 2) containing:
- List of animation table entries
- Each entry maps a skeleton type to animation fragments
- Fragment references with metadata
§File Naming Convention
Animation table files must end with _tables.bin to be recognized by RPFM.
This is a library-specific requirement for disambiguation, not a game limitation.
Common naming patterns:
humanoid01_tables.bin- Human skeleton animationscavalry_tables.bin- Mounted unit animationsmonster_tables.bin- Large creature animations
§File Organization
Animation tables are stored in:
animations/animation_tables/{skeleton_type}_tables.bin§Structure
Each table contains entries that define:
- Animation table name (logical identifier)
- Skeleton type (which skeleton this applies to)
- Mount table reference (for mounted units)
- List of animation fragments with metadata
§Supported Versions
Currently only version 2 is supported, used in modern Total War games (Warhammer 2, Three Kingdoms, Warhammer 3, etc.).
§Usage
ⓘ
use rpfm_lib::files::anims_table::AnimsTable;
use rpfm_lib::files::Decodeable;
// Decode an animation table
let table = AnimsTable::decode(&mut data, &None)?;
// Access entries
for entry in table.entries() {
println!("Table: {} for skeleton: {}",
entry.table_name(),
entry.skeleton_type()
);
// List fragments
for fragment in entry.fragments() {
println!(" Fragment: {}", fragment.name());
}
}Structs§
- Anims
Table - Represents an animation table file (
*_tables.bin). - Entry
- Represents a single animation table entry mapping a skeleton to fragments.
- Fragment
- Represents a reference to an animation fragment file.