File formats
Home Up Derivable balls Derivable cushion Other derivebles Seat trigger Transparency File formats Anim8or Pose editor Clean up tool Texture Template tool XRF tool Ball mesh generator Removing seats Quick Icons for products Updates

 

XMF File format
XSF Skeleton format
XRF file format
XAF file format
XPF Morph format
Rotations

Object file formats used for IMVU designs

Disclaimer: The following information has been obtained by examining samples of files, and has not been fully confirmed against the CAL3D file specification at http://home.gna.org/cal3d/

Most of the files that make up IMVU objects use formats based on the XML format, and are given extensions beginning with "X"

For most of these files there is a corresponding compressed format e.g. XMF <=> CMF. At the present time I understand that IMVU previewer will not import the compressed forms.

INDEX.XML (read only)
This is a unix format text file containing configuration information. It is generated and modified by the previewer and cannot be replaced. Other files are usually Windows format.
XSF
Skeleton file. Objects have a skeleton, a list of subsections ("bones") which may control sections of the mesh. The skeleton also contains any seat nodes or furniture nodes.
XMF
Mesh file, a list of the vertices (points) and triangles that make up the surface of the object.
XRF
Material file. A set of lighting definitions stored as numbers and the filenames of a texture and optionally an opacity/transparency map. Note that for objects the lighting numbers appear to be ignored, however the file must contain them in order to be recognised.
JPG
Jpeg format image file. It is not clear if formats other than jpeg are supported, but it does appear as if the image type is stored in the XRF file.
XAF
Animation file. This contains a list of bones, times and positions for the bones. The position information in the XAF file replaces the position information in the skeleton causing the object to move. 
XPF
Morph target. I have no data on this format at all, but I suspect it will be similar to XMF. At last I have a sample file!! Structurally it looks much more like an XAF, but it requires extra information to be included in the original mesh.

Notes:

XML: A data file format resembling HTML. All data fields are enclosed in pairs of tags describing the data. The very first line contains a tag that states that the rest of the file is XML. Tags must either appear in pairs <TAG> ... </TAG> or solitary: <TAG />. In properly formed XML one root tag encloses the entire document. In the CAL3D file formats used by IMVU there is a solitary "header" tag in front of the document body, making it not strictly compliant and difficult to parse. Newer versions of the format appear to lack the header and may be considered well-formed. Another lesser deviation concerns mixed content tags, those that have attributes but enclose content e.g.

<TAG ID=0>1.00</TAG>

CAL3D puts these on one line whereas the "XML::Structured" Perl module splits them across three lines. The two forms are interchangeable but some weaker XML parsers may have problems processing a tag in an unexpected form, for example one Gamemaker parser handles single line and multi-line tags differently.

Note: I am seeing one instance where the presence of a comment line before a mesh header breaks an IMVU object. For this reason I would advise removing the comment.

Unix format: Lines in a text file end in a single LF (Line feed) character. Windows Notepad displays these files incorrectly but Wordpad converts them to Windows format.

Windows format: Lines in a text file end in two characters CR (Carriage return), LF (Line feed). These files are often misinterpreted by Unix or Linux systems as the CR is treated as part of the text.

Other text formats, less commonly seen:

CR only: This format was used on 8 bit home computers in the 1980s that either interpreted CR as "New Line" or inserted an automatic line feed character.

LF, CR: This was not a proper text format but often resulted from capturing the text output of a program on systems with automatic line feed.

 

Home Up Derivable balls Derivable cushion Other derivebles Seat trigger Transparency File formats Anim8or Pose editor Clean up tool Texture Template tool XRF tool Ball mesh generator Removing seats Quick Icons for products Updates