Skip to main content

A library to handle the 3D data format XBF from the game Emperor: Battle for Dune.

Project description

xanlib

Run tests PyPI

A Python library to handle the 3D data format XBF of the Xanadu engine, used in the game Emperor: Battle for Dune.
It may be used to load and save all 1521 XBF files from the game.

Installation

The library can be installed with pip:
pip install xanlib

Examples

Console Usage

The following commands entered into a python console will edit the sidebar to move it to the left:

from xanlib import load_xbf, save_xbf
scene = load_xbf('Data/UI0001/SIDEBAR/SIDEBAR1.XBF')
scene['~~0hide#'].transform = tuple(v - 100 if i == 12 else v for i, v in enumerate(scene['~~0hide#'].transform))
save_xbf(scene, 'Output/SIDEBAR1.XBF')

Explanation:

  1. Import the load and save functions
  2. Load the sidebar file
  3. Subtract 100 from the x-coordinate of the translation component of the transformation matrix. It is a flat tuple in column-major order, thus need to modify the element at index 12. Because it is a tuple, it has to be entirely replaced.
  4. Save to a new file.

Put the new file in a UI/SIDEBAR folder in the game's DATA folder to override the original and view the change in-game.

blender_import.py

A script that can be run within Blender to import the meshes of a XBF file. missile_tank_blender

extract_animations.py

A script that extracts animation info from the FX Data Header of an xbf file, provided as a command line argument.
Currently stand-alone, the code has yet to be integrated into the library.

Example usage:

python extract_anim_info.py Data/3DDATA0001/Buildings/AT_MGT_H0.xbf

will produce:

Stationary: 104-133, 0-50, 51-104, 133-163, 163-193
Idle 0: 200-240
Fire 0: 193-275

xbf_viewer.py

A rudimentary vertex animation viewer made with pygame. It highlights the normals in these animations.
(A more functional viewer is under development) pygame_viewer_animation

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xanlib-0.1.1.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

xanlib-0.1.1-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file xanlib-0.1.1.tar.gz.

File metadata

  • Download URL: xanlib-0.1.1.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.13.0 Linux/5.15.0-124-generic

File hashes

Hashes for xanlib-0.1.1.tar.gz
Algorithm Hash digest
SHA256 a0eabd019aeff441c9235843ca6b26535d34d32de7376478039326b08d611a40
MD5 5ad4a03c5c68cacf1e56cb1e6591a49c
BLAKE2b-256 95b5e4eb51ff44c8457d2d51bb5b1b47a2bc71b48520e400740f5efba764f5ba

See more details on using hashes here.

File details

Details for the file xanlib-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: xanlib-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 10.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.13.0 Linux/5.15.0-124-generic

File hashes

Hashes for xanlib-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c659881219e4a131fa819a645ffe599fdc664105c50b4dd29ff3f1747db30508
MD5 623454e313b5f0dbf22de5fc95bdbab2
BLAKE2b-256 e82efcbf8a03c9cfb7e5b46545fd66d37dd7d958b28886f14fec646e3e74114e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page