Skip to main content

Module animpack

Module animpack 

Source
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:

§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§

AnimPack
Represents an AnimPack file decoded in memory.

Constants§

EXTENSION
File extension for AnimPack files.