View Single Post
Old 20-02-09, 20:02   #1
XNALara Creator
Join Date: Sep 2008
Location: Czech Republic
Posts: 1,346
Default XNALara: Lara realtime posing program

(If you post a large image in this thread, please make sure it's either scaled down to a reasonable size or post a link only so that users with slower internet connection can use this thread too. Thanks )

Hi everyone, this is a program that I've written to allow you all to play around with character models from TRU in realtime.

You DON'T NEED Tomb Raider: Underworld to run this program.

On the other hand, you WILL NEED Microsoft .NET Framework and Microsoft XNA Framework to run it.
(If you have Windows 7 you don't need the .NET framework because it's already there by default.)


download the main program ( - the source codes can also be found at the same location.

download individual data packs (
download ALL data packs as of v7.2 (three zip archives,

^ Unzip these into the XNALara\data folder,
for example: XNALara\data\lara_jungle_shorts.


Useful links:
Recapitulative thread of user-made objects for XNALara
Recapitulative thread of user-made poses for XNALara

And additional utilities (very technical and low-level, not meant for everyone):
- Blender scripts for (boneless) .mesh.ascii import/export
- .mesh.ascii <--> .mesh command-line conversion programs

download the utilities (

And also:
XNALara Manual written by LaraRules81:
English version


Update: version 9.7.8
- it is now possible to move/translate bones further than the three XYZ sliders would allow: you can now use the text boxes below the sliders to manually enter values beyond the default range of +/-180.

Update: version 9.7.7
- new camera control: press both left AND right mouse buttons and drag to pan the camera (the older Shift + LMB also works) - requested by highflyingcar
- should fix the bone selector bug reported by QueRandomNoise

Update: version 9.7.5
- new menu option: Options > Always force culling (requested by Love2Raid)
- if both Back-face culling AND Always force culling are ON, then even the transparent meshes/faces appear one-sided (back-face culling is applied to them as well)

Update: version 9.7
- extended Camera parameters window where it is now possible to manually change/edit all parameters of the camera:
the location of the camera target/pivot, the distance from it, the angles of horizontal and vertical rotation (around the target/pivot) and the field of view

Update: version 9.6.1
- bug fix: XNALara no longer crashes when exporting meshes with no textures applied to them (reported by silviu_raider) - untextured meshes are still unsupported by XNALara but some custom models seem to break the rule for some reason and those lead to the crashes
- two new aliases/synonyms for the map_Kn keyword in .MTL files are now supported/recognized: map_bump and bump (suggested by Decan)

Update: version 9.6
- some models could not be loaded with versions 9.5.x - this is fixed now.
- new mesh groups #28 (opaque) and #29 (transparent) which support metallic reflections AND full bump mapping including mini bump maps
- the new mesh groups expect 6 textures: diffuse, bump, mask, mini bump1, mini bump2, enviroment texture and 3 numeric parameters: the intensity of the metallic/reflective effect (0.0-1.0), intensity of the bump effect, scale of the mini bumps maps (a single value for both textures)
- example:

1 # uv layers
6 # textures
0 # uv layer index
0 # uv layer index
0 # uv layer index
0 # uv layer index
0 # uv layer index
0 # uv layer index

Note that this effect requires shaders v3.0.

Update: version 9.5.5
- new mesh group #27: metallic shader which supports transparency
- the "random" dark/bright pixels in the reflection image can be removed by disabling mipmaps (automatically generated low resolution versions of the environment texture), but then the reflection image looks very aliased (pixelated/noisy) -- so I added a new menu option "Use alternative reflection" which toggles a less accurate, yet anti-aliased AND artefact-free metallic shader; so you can choose whichever of the two possible behaviors of the metallic shader you prefer. Note that if you toggle that option, you need to reload the scene (textures) for the effect to be fully applied.
- the recent problem concerning the parsing of generic item files should be solved now. I didn't have the time to check it myself, though....

Update: version 9.5.1
- fix: improved math behind the metallic shader

Update: version 9.5
- true metallic shader: supported by new mesh group #26
- the shader expects three textures on its input: diffuse, bump and environment texture (a spherical panoramic image of the 3D environment which will be reflected by the surface); plus one numeric parameter which defines the intensity of the metallic/reflective effect (ranging from 0.0 to 1.0)
- so an example of a typical use inside the file generic_item.mesh.ascii may look like this:

1 # uv layers
3 # textures
0 # uv layer index
0 # uv layer index
0 # uv layer index

A sample model:

Plus, this is the corresponding environment texture (shared by all metallic parts of the model):

Update: version 9.4.3
- the program will now "remember" not only the particular size and position of the two main windows but also whether the windows were maximized/minimized (requested by sn00p)

Update: version 9.4.2
- bug fix: OBJ meshes were not rendered correcly (too bright) when the bump texture (map_Kn) was not specified

Update: version 9.4.1
- Lara's handguns now support transparency (so it's possible to make their custom mods with transparency) - requested by Ventrue

Update: version 9.4
1) a major bug fix: for 2 years there had been a very serious bug in bump mapping shaders - bump mapping on posed models had never been rendered correctly at all! I spent basically the whole weekend rewriting everything related to bump mapping from scratch. It's funny that nobody has ever noticed anything . Now it's hopefully corrected...

2) OBJ models now support specular maps (the map_Ks keyword in .mtl files)
Here's a sample OBJ model demonstrating the new functionality plus a corresponding .scene file with a set-up scene.

Update: version 9.3.1
- bug fix (the new mesh groups #22 and #23 didn't show in renders with enabled alpha channel)

Update: version 9.3

1) Specular maps:
- new mesh groups #22 (opaque models) and #23 (with transparency) which expect the following 7 textures on input:
diffuse, lightmap, bump, mask, bump1, bump2 and specular map
- specular maps are textures which define (per pixel) the color and intensity of the light reflected off the given surface
- the global intensity (multiplier) of the gloss/specular effect for the whole mesh part is the same as before: the floating point value in the mesh name, for example 22_jacket_1.0_16_16; so set this value to 1.0 (or even higher) and then modify the per-pixel intensity of the effect with the brightness of pixels in the specular map/texture
- you can use this effect to increase realism of your images, or even to produce crazy effects as shown below
- this effect requires shaders v3.0 (or just a single-light setup with shaders v2.0)

Also, $AtlantiB$ and dizzydoil kindly provided the following models which show the specular maps in action (thanks ):

sample model
a snow plane

2) Multi-bone reset:
The Reset selected bone button now works not only for individual bones: when you click on a group node in the bone tree-view of the left, such as "arm" etc., the entire hierarchy of bones grouped underneath this node will be reset when you press the button. This way you can reset all fingers on one hand, the whole arm, or even both arms etc. - with just a single click.


Update: version 9.2
- new command: File > Reset scene (requested by Sharon_14); removes all models, resets all lights, restores the original window size etc.

Update: version 9.1.5
- texture reloading on the fly (hotkey F8) didn't work when there were multiple copies of the same model in the scene; the program would actually crash (reported by Navid); this is fixed now.

Update: version 9.1
- the color of glow around Lara's gauntlets can be changed (menu Options > Display accessories > Thor's gear glow > Glow left/right color); the color can be set for each hand and also for each model independently; the settings are saved into a .scene file along with the model(s)
- new mesh group #21 which is poseable (supports bones), supports transparency and is shadeless (i.e. not affected by lights)

Update: version 9.0
- if on your computer all bump maps disappeared when you turned the second light on, then this update should fix that (I optimized the pixel shaders)

Update: version 8.9.1
- bug fix release

Update: version 8.9
- new logo (by dizzydoil) -> new icon, new splash screen, new "About..." window
- it is also possible to automatically render the new logo into every saved image (there is a new checkbox in the "Save image..." window)

Update: version 8.8.6
- Lara's modded models will no longer crash if they don't contain the standard accessories: guns, gauntlets etc. (requested by BlueJ97)
- $AtlantiB$ reported that the multi-selection of added models doesn't work for him. So now there's an option to switch back to the old single-selection mode (menu Window > AddModel multi-select). However, I didn't get any feedback from $AtlantiB$ so I don't know if it helped solve his original problem...

Update: version 8.8.5
- it is now possible to add multiple models into the scene at once (use Ctrl+click to multi-select)

Update: version 8.8
- new function: export of posed .mesh.ascii files (a new command in the File menu) - requested by XNAaraL for modding purposes

Update: version 8.7.6
- a minor fix: the program no longer crashes when the Thor's gauntlets are selected in the menu, yet the two bones (called unused072 and unused097) that define the positions of the gauntlets' glow do not exist in the model (pointed out to me by daventry)

Update: version 8.7.5
- another batch of Guardian of Light models
- this release was made possible thanks to H4RR7H and sephiroth99

Poison Minion
Poison Gatekeeper
Shield Demon (new)
Shield Gatekeeper (previously called Shield Demon)

Lara (default outfit)
Lara Biker
Lara Jungle Heavy
Lara Jungle Shorts
Lara Legend

Update: version 8.7
- a batch of 10 Guardian of Light models (data extracted from GoL by H4RR7H):
Brute Minion, Fire Shaman, Fire Lizard, Chompy, Poison Shaman, Poison Lizard, Shield Demon, Small Minion, Totec, and Xolotl
download the models here:
and the updated XNALara program here:

Update: version 8.6.2
- fixed a bug related to the maximum number of bones per mesh part and alpha-channel rendering; bug reported by Sharon_14

Update: version 8.6.1
- the maximum number of bones per any mesh part has been increased from 52 to 59 (actual hardware limit)
- this might be useful for model creators
- also, XNALara will now display a warning when the bone limit is exceeded (up till now it just crashed...)

Update: version 8.6
several minor improvements requested by CarbinT:
- when loading a scene, XNALara no longer crashes if you accidently provide a different file type
- new command: Commands > Flip pose; it swaps the pose of selected pairs of bones from left to right and vice versa
- I fixed a problem with the background color leaking into semi-transparent parts of a mesh which occured in rendered images with transparency enabled
- the numbering of quick-saved images is now more intuitive - a new image always uses such an ID so that it goes after all existing saved images (in the earlier versions, it would use any available slots/gaps as well).
- by default, the rotation of eyeballs controlled by the button Look into camera is constrained in order to look natural; if you want to bypass these constraints and be able to apply any rotation at all, press the Shift key while you click on the button

Update: version 8.5.1
- displays a more detailed error message when the loading of a .mesh model fails

Update: version 8.5
- I fixed this issue (flipped mesh faces when the model is mirrored around one of more axes and the backface culling is enabled)

Update: version 8.4.2
- fixes two issues reported by Navid (a problem with pixel shaders on older graphic cards) and Matty-Croft (a problem involving meshes with no vertices)

Update: version 8.4.1
- enables the split-Thor-gear functionality introduced in v8.4 also for generic meshes
- missing sub-meshes should no longer cause the loading of the entire model to fail

Update: version 8.4
- visibility of Thor's gauntlets and belt as well as of the corresponding glow around them can now be controlled independently for each of them

Update: version 8.3.7
- bug fix: the OBJ models can be rotated and moved... again

Update: version 8.3.6
- I added a shortcut (F8) for the dynamic reloading of textures

Update: version 8.3.5
- new menu command: File > Reload textures of selected model
- this should make life a lot easier for all texture modders (dynamic reload/refresh of textures)

Update: version 8.3
- external static OBJ models now support vertex colors (including vertex color transparency); vertex colors are used in TR Legend for example for static lighting of environments
- I also released a sample level from TRL which makes use of this technology:

Update: version 8.2
- two new global rendering options: menu Options > Enable light maps and Options > Enable bump maps
- (the bump map part was motivated by amaris' technical problems on his computer, the light map part I added for the sake of completeness)
- they are probably not directly useful for rendering as such but together with the existing Options > Display textures these three can serve as helpful "debugging" tools

Update: version 8.1.5
- three new commands: menu Commands > Mirror model X/Y/Z
- this is just a convenience "shortcut", the same can be achieved by entering the appropriate values into the Scale textbox...

Update: version 8.1.1
- bug fix: the mirroring of bones' relative movements (translations) was broken (while rotations have been fine)

Update: version 8.1
- new command: menu Commands > Mirror pose left/right which allows to mirror the pose of the left arm to the right arm, copy the pose of fingers on the right hand to the left hand etc.
- in a dedicated dialog window you select the bones FROM which to copy the pose and the mirroring of their pose to the bones on the opposide side of the body is done automatically
- only the bones for which the left/right mirroring makes sense are listed in the dialog window and the bones are sorted in such a way that it is easy to multi-select all bones belonging to the left arm, right leg, left-hand fingers etc.
- multi-selection is done in a standard way by Shift-clicking or Ctrl-clicking

Update: version 8.0.1
- there is a new checkbox at the bottom of the Lighting parameters window called "force shaders v3.0"
- anyone experiencing problems when the 2nd light source is ON and the 3rd light source is OFF should check this checkbox
- the program will remember your settings (it is stored in the file XNALara.cfg)

Update: version 8.0
- XNALara now supports up to 3 independent light sources
- note that for all 3 lights to work, your graphic card must support vertex and pixel shaders v3.0

Update: version 7.9.1
- the 3D window and the control window now remember their positions (they are stored in the file XNALara.cfg) unless the windows are maximized or minimized

Update: version 7.9
- a cool new feature: Look into camera button in the control window
- when clicked, both eyes of the currently selected model (works for Lara, Natla, Amanda, ...) will be automatically adjusted to look into the camera; I put constraints on the eye rotation angles so that the result looks natural
- make sure that the camera is far enough from the model when you click the button, otherwise you're likely to produce a cross-eyed effect

Update: version 7.8.6
- reset buttons added to the Pos and Scale text boxes (for convenience)

Update: version 7.8.5
- editable Position text box - the model's position can now be set precisely

- cloned models didn't have correctly enabled/disabled accessories (guns etc.) - this is now fixed

Update: version 7.8
- two new DLC outfits/models:

Update: version 7.7
- four new DLC outfits:
- and I also increased the glossiness of LaraDLCDesignerPeoplesChoice outfit...

Update: version 7.6
- seven new DLC outfits:

Update: version 7.5
- Undo command: the shortcuts are Ctrl+Z and NumPad5
- it only works for bone transforms

Update: version 7.4.2
- another bug fix: assigning the background image didn't work

Update: version 7.4.1
- bug fix release

Update: version 7.4
- four image post-processing filters/parameters implemented: Brightness, Gamma, Contrast, Saturation accessible through the menu Options > Post-processing parameters. They influence the whole image (in realtime) and can be used to tweak the rendered image or to create interesting visual effects.

Update: version 7.3.1
- a bug fix: movement transformations of bones were imported incorrectly when loading a scene. It's fixed now. Thanks to Phenyx who pointed out this bug to me.

Update: version 7.3
- new menu command Clone selected model: it will create a clone of the currently selected/active model; the clone will be created on the exactly same position as the original model (use Ctrl+click on the ground to place it somewhere else), with the same scale and pose applied to it

Update: version 7.2.5
Using the Scale textbox, scale of models can now be defined for axes X, Y and Z independently:
If only one scale value is provided, it is applied to all 3 axes:
Scale: 1.5
If three values are provided (separated by a space or a semicolon), they are applied to the corresponding axes:
Scale: -1 1 1
Scale: -1.0; 1.0; 1.0
This can be particularly useful for flipping a model along a particular axis using a negative scale (as in the example above).

Update: version 7.2
- added new options to the Load Scene command, it is now possible to load various components of the scene separately (models, lights, camera etc.)
- some internal changes were made to speed up the process of creating mods (requested by XNAaraL)

Update: version 7.15
- the camera no longer gets unlocked automatically when a model is added to or removed from the scene (requested by Navid)

Update: version 7.1
- new image quick-save command: dramatically speeds up the process of saving series of screenshots. Saving an image is now only a matter of pressing a single key: F5.
All images are saved into the folder "XNALara\images". When the first image is being saved, a dialog window will pop up, allowing the user to set image parameters. These settings will then be used for any subsequently saved images.

Update: version 7.0
- new 3D control: Shift + right mouse drag moves the camera forward/backward, i.e. moves the pivot point around which the camera rotates

Update: version 6.9
- new textbox has been added to the control window which displays the current XYZ coordinates of the selected model

Update: version 6.86
- bug fix release: .mesh.ascii export threw an exception when exporting OBJ models
- "place model in front of camera" option is turned off by default

Update: version 6.85
- models exported in .mesh.ascii format are now exported in the currently set scale
- XNALara now "remembers" the setting of the option "place new models in front of the camera" between different runs of the program

Update: version 6.8
- new menu command: File > Export selected mesh (to the mesh.ascii format)
- the mesh.ascii format can either be converted to binary .mesh format with the MeshAsciiToBin utility or imported to Blender (ignoring the bones) using the script. Both the converter and the script can be downloaded through the links above (see Utilities).

Update: version 6.7
- newly added models are placed in front of the camera (on the ground plane), but you can still use the old behavior (i.e. place models at [0,0,0]) by unticking the checkbox at the bottom of the "Add model" dialog box

Update: version 6.62
- the Dummy object now behaves just like any other object, which means it does appear in the rendered images and it is exported to OBJ files as well.

Update: version 6.61
- fixed the problem with bone dots not positioned properly in some cases, now it works for all scales and all camera field-of-view values

Update: version 6.6
- OBJ export uses the same coordinate system as OBJ import
- texture filenames exported to MTL files don't include full paths
- item combo box in the Control window displays only the type of the currectly selected model instead of the full path (much shorter)

Update: version 6.56
- another bug fix: solves a problem with the skybox

Update: version 6.55
- bug fix: it wasn't possible to load old scenes even if you didn't change the folder structure at all; this is now fixed.
But note that once you change the folder structure, you still won't be able to load the old scenes...

Update: version 6.5
- you can group data folders into subdirectories (e.g. animals, characters, weapons, ...), items being added are no longer displayed as a list but as a tree with the same hierarchical structure as the folders. Note that if you do this, you won't be able to load old scene files any more (they won't be compatible with the new folder structure).
- added a new command Append scene (same as Load scene but doesn't remove all existing models), it can be used to merge multiple scenes together

Update: version 6.4
- new functionality: it's now possible not only to rotate but also to move any bone
- there's no longer the separate Extended Bone Control window, instead there's a new grey button called 'Mode' in the main Control Window which toggles the meaning of the three X/Y/Z sliders: either rotation (X/Y/Z angles) or translation (X/Y/Z distances)

Update: version 6.3
- new model: the back of the Croft Manor from TRA (

Update: version 6.2
- four new models:
Natla's wings (
Alister's hair (
Amanda's hair (
Natla's hair (

Update: version 6.1
- four new models: different types of trees (data pack

Update: version 6.0
- new model: Amanda's Ship (data pack

Note: The ship is huge (200 meters long) so please scale it download to something like 0.2 together with all other models otherwise you won't be able to place the models on the deck correctly (the required height values would be out of supported range).

Update: version 5.91
- addresses bug/crash related to texture internal format (only occurs with some gfx cards)

Update: version 5.9
- models in OBJ format can now use PNG textures with alpha/transparency and XNALara will display they correctly

Update: version 5.86
- fixed a bug in the OBJ importer (mesh triangles flipped the other way round) - back-face culling will now finally work correctly even for OBJ models

Update: version 5.85
- toggle-able back face culling (menu Options)
- extended debug info when the folder Content or the BoneSelector font cannot be found

Update: version 5.8
- new models: albino spider (at the bottom of this post), TRU mirror/fan statues from Thailand
- enabled back face culling

Update: version 5.7
- new models: stand-alone Lara's ponytail (requested) and Shark Greenland
- fixed bug: one part of the glass cage (specimen jar) didn't move together with the rest of the model; you DON'T need to download that data pack again

Update: version 5.6
- new models: Natla's glass cage (glass_cage) plus the entire room (ship_natla_room), they're both packed together in data pack

Update: version 5.5
- new model: the Scion from TRA (3 separate parts)
- the .scene file now also contains the 3D window size (save and restore)
- new keyboard shortcuts to switch between camera targets (look-at):
1, 2, 3, 4, 5, 6, 7, 8, 9, 0

Update: version 5.4
- new model: Lara's glasses from TRA
- new menu command Window > Set 3D canvas size
- new option in the list of rendered image sizes: 50% of the current window size

Update: version 5.3
- fixed two issues with rendering images with alpha channels
(namely the Kraken)
- new link to download all data packs in two self-extracting archives ( only, I haven't been able to upload the same files to for several days...)

Update: version 5.2
- new model: the braid (alone), I also changed its color to match the color of Lara's hair; datapack
- program configuration (menu checkboxes) is automatically saved to and restored from a file XNALara.cfg.
- fixed a bug with ground checkbox not updated correctly after a scene is loaded

Update: version 5.1
- new data packs: (Naga Red, Naga Green) (I finally located the model in the bigfiles)

Update: version 5.05
- added support for non-triangular OBJ meshes as well (no need to manually triangulate the meshes before exporting them).

Update: version 5.0
- displays bone names in 3D window

- support for custom OBJ+MTL static models:
- sample OBJ+MTL model provided:, unzip this to folder data as usual
(material parameters explained in file model.mtl)
- OBJ+MTL features: diffuse maps, normal/bump maps, adjustable specular highlights, shadeless (self-illuminating) materials
- texture transparency is currently not supported

Update: version 4.95
- new models: Jellyfish and Helicopter.

Update: version 4.9
- new model: Kraken
- fixed a minor issue with the 3D bone selector rendering even bones behind the camera

Update: version 4.85
- the yacht model has been updated (you need to re-download the data pack again), it now has one bone and therefore can be rotated
- this also solved the null pointer bug when exporting the yacht meshes
- solved a problem with saving images (incompatible pixel format) that one forum member reported

Update: version 4.8
- new model: (lightmaps edited by tarcairion).
- it's now possible to save images as JPEGs as well (only when alpha channel is disabled).

Update: version 4.7
- new model: the yacht, package
- 3D skydome (coastal Thailand), you need to download package, parameters adjustable via menu Options > Skydome parameters

Update: version 4.6
- new model: Viking Thrall together with viking_thrall.pose for its cloth bones
- added finger (1-5)a extended controls

Update: version 4.5
- new model: Mercenary
- fixed a bug in pose loading

Update: version 4.4
- new outfit: Lara Bathing Suit
- more descriptive error messages and warnings when adding a model or loading a scene fails

Update: version 4.35
- new/updated models:
Amanda_Heavy, Amanda_Light (now moddable)
Natla, Natla_NoWings (now moddable)

Update: version 4.3
- new outfit: Lara Snow Light
- updated models:

(I removed the redundant lower-resolution meshes buried beneath the surface so everything is much cleaner now).

- new, safer way of quitting the application: either using the 'X' button of the Control Window, or the menu File > Exit. There's also a new confirmation dialog when exiting the application.

Update: version 4.2
- new models: shark, panther, grenade (you have to re-download data pack Data_Weapons for this one) and Croft Manor Hall LQ (the original low-end model for those who have problems with the next-gen manor)

- movable jaw (in Extended Face Controls)

- and good news for the modding community:
You can now place your mods to your own custom folders (inside XNALara\data\) and the program will detect them as long as the original .mesh file is preserved and has the original name).

Update: version 4.1
- next-gen Croft Manor Hall (now reacts to lights)
you need to re-download the Croft Manor data pack again
- movable tongue

Update: version 4.0
- two light sources instead of one
- custom light colors


Here's the giant albino spider data pack ...

Some people are arachnophobic and so when posting images featuring spiders post only links to them, not actual images or thumbnails. Thank you.

mirror 1
mirror 2

Last edited by Dusan; 28-09-11 at 07:11.
Dusan is offline   Reply With Quote