The Longest Journey CIR
From XentaxWiki
Back to index | Edit this page
Contents
CIR
- Format type: Mesh
- Endianness: Little-endian
Format Specifications
uint32 {4} - identifier (4)
uint32 {4} - format version (16 or 256 allowed)
uint32 {4} - Unknown (only in version 256)
uint32 {4} - unused (0xdeadbabe)
float {4} - Unknown
uint32 {4} - number of materials
// for each material
- uint32 {4} - length of material name
- char {x} - material name
- uint32 {4} - Unknown
- uint32 {4} - length of texture name
- char {x} - texture name
- float {4} - red colour component
- float {4} - green colour component
- float {4} - blue colour component
uint32 {4} - number of unknown entries (usually zero)
// for each unknown entry
- float {4} - Unknown
- float {4} - Unknown
- float {4} - Unknown
- float {4} - Unknown
uint32 {4} - number of joints
// for each joint
- uint32 {4} - length of joint name (usually zero)
- char {x} - joint name
- float {4} - Unknown (usually near 1.0)
- uint32 {4} - number of child joints
- // for each child joint
- uint32 {4} - child joint index
- uint32 {4} - child joint index
uint32 {4} - number of mesh groups (usually one)
// for each mesh group
- uint32 {4} - length of mesh group name
- char {x} - mesh group name (usually "-noselgroup-")
- uint32 {4} - number of faces
- // for each face
- uint32 {4} - material index
- uint32 {4} - number of vertices
- // for each vertex
- float {4} - X coordinate relative to first joint
- float {4} - Y coordinate relative to first joint
- float {4} - Z coordinate relative to first joint
- float {4} - X coordinate relative to second joint
- float {4} - Y coordinate relative to second joint
- float {4} - Z coordinate relative to second joint
- float {4} - X component of vertex normal vector
- float {4} - Y component of vertex normal vector
- float {4} - Z component of vertex normal vector
- float {4} - S texture coordinate
- float {4} - T texture coordinate
- uint32 {4} - index of first joint
- uint32 {4} - index of second joint
- float {4} - weight of first joint
- float {4} - X coordinate relative to first joint
- uint32 {4} - number of triangles
- // for each triangle
- uint32 {4} - first vertex index
- uint32 {4} - second vertex index
- uint32 {4} - third vertex index
- uint32 {4} - first vertex index
- uint32 {4} - material index
- uint32 {4} - number of unknown entries (usually zero)
- // for each unknown entry
- float {4} - Unknown
- float {4} - Unknown
- float {4} - Unknown
- float {4} - Unknown
- uint32 {4} - Unknown
- float {4} - Unknown
- uint32 {4} - number of unknown entries (usually zero)
- // for each unknown entry
- uint32 {4} - length of unknown string
- char {x} - Unknown
- float {4} - Unknown
- float {4} - Unknown
- float {4} - Unknown
- float {4} - Unknown
- float {4} - Unknown
- float {4} - Unknown
- float {4} - Unknown
- float {4} - Unknown
- uint32 {4} - Unknown
- uint32 {4} - length of unknown string
Notes and Comments
- CIR files contain 3D meshes including skeletal definitons and material libraries. Since there are no joint positions and rotations given, an animation file is needed to properly display the model.
- The original game engine utilizes Direct3D, thus the model is prepared for a left-handed coordinate system.
- Depending on the representation of the texture in memory, the T coordinate might have to be changed to 1 - T to correctly apply the texture.
- The material colours (probably ambient and diffuse) should only be used if no texture is given (i. e. the texture name is empty).
MultiEx BMS Script
None written yet.
Supported by Programs
Links
None