Expand description
AnimPack container file format support.
AnimPacks (.animpack files) are container files that bundle animation-related game
data into a single archive. They are primarily used to organize and distribute animation
assets for units and characters in Total War games.
§File Format
AnimPacks use a simple binary format with a file count header followed by a list of embedded files. Each embedded file includes its path, size, and raw data.
[u32] file_count
For each file:
[u8 + string] file_path (with backslashes)
[u32] file_size
[bytes] file_data§Contained File Types
AnimPacks typically contain:
AnimsTable- Animation table indicesAnimFragmentBattle- Animation fragmentsMatchedCombat- Matched combat definitions- Other animation-related binary files
§File Location
AnimPacks are usually found in:
animations/*.animpack§Usage
ⓘ
use rpfm_lib::files::animpack::AnimPack;
use rpfm_lib::files::{Container, Decodeable};
// Decode an AnimPack from disk
let mut extra_data = DecodeableExtraData::default();
extra_data.set_disk_file_path(Some("animations/unit.animpack"));
extra_data.set_data_size(file_size);
extra_data.set_timestamp(timestamp);
let animpack = AnimPack::decode(&mut reader, &Some(extra_data))?;
// Access contained files
for (path, file) in animpack.files() {
println!("File: {}", path);
}
// Extract a specific file
if let Some(file) = animpack.file_by_path("battle/animations/humanoid01.bin") {
let data = file.encode(&None, false, false, true)?;
}§Version Support
Complete support for all known AnimPack versions across Total War games.
Structs§
- Anim
Pack - Represents an AnimPack file decoded in memory.
Constants§
- EXTENSION
- File extension for AnimPack files.