pdjonov edited this page Sep 13, 2010 · 4 revisions
Clone this wiki locally

Welcome to the x42 project wiki.


x42 is the skinned-animation model format (and the accompanying set of runtime library and tools) developed at Hermitworks Entertainment for use in Space Trader. The project was open-sourced very early in its development along with what was, at the time, a related project, maya2q3. Source management for the project switched from Subversion to Git a while ago, and the (much improved) result is now here.

Project Structure

Besides this superproject, which includes most of the standard build files, the project is broken down into several submodules:

  • libx42 is the runtime library. It is written in C (though it also compiles as C++) and provides the basic facilities for reading models, animating their skeleton, blending poses, doing software vertex animation, blending between morph targets (maybe – this has not yet been tested), and even writing model files.
  • libx42pp is a half-started stab at a nice C++ binding to libx42. There’s not much to see here except a bit of a math library (its sole reason for not having been deleted), you probably want to be moving along…
  • libx42sharp is the .NET binding to libx42. It is a mixed-mode C++/CLI module at this point, so it doesn’t work under mono, though a rewrite to fix that is in the early planning stages.
  • libx42make is the model creation library. It is the backend used by DCC exporters, and, since it can load x42 files directly, it can also be integrated into post-export processing tools.
  • x42maya is the x42 exporter for Maya.
  • x42view is a model viewer that offers a raw view of all of the data in a model, as well as several graphical debugging views such as for geometry batching, the skeletal hierarchy, topology (including shading for strip lengths), and bounding data.

Using libx42

Typically, integrating x42 into a project is as simple as grabbing the libx42 project files and including the relevant ones directly into your build (a game, for example, probably doesn’t care for write.c). libx42 itself has no dependencies outside of the standard C library, and it should be simple to quickly get started.

Using the Tools

To use the tools, grab this superproject and build the relevant solutions in build/msvc. You will need a recent version of boost to compile the tools (headers only is fine). You will also need an install of Maya to build the exporter (you will have to update the project targets and include paths for versions other than 8.5).