Documentation of the storage of frame properties in the plain RTM format
Last updated
This page is meant to supplement and clarify certain informations written on the community wiki about the plain RTM file format, prior knowledge of that article is required.
Introduction
While frame properties are documented on in the binarized RTM format, there is no reference for their possible storage in the plain RTM format.
Data blocks
The format specifications on the community wiki decribe the plain RTM format as a singular data block, with a header signature (RTM_0101) similar to other Arma 3 file formats. However, after inspecting the animation dialogs of the Object Builder application, it is clear that the format should be able to store frame properties in some form.
After setting up a basic animation, and adding a (supposedly) frame property to it at the 0.5 time mark with the StepSound name (this is the only frame property name currently found in Arma 3 animations), the data could be exported to a plain RTM file.
Inspecting the saved file reveales that the frame properties are stored in a separate data block, stored before the transformation data. This block has a signature of RTM_MDAT. After some experimenting, the data structure of the block is the following:
struct lascii {
byte length; // max length is 255, Object Builder seems to overflow the number
char value[length];
};
struct FrameProp {
float phase;
lascii name;
lascii value;
};
struct RTM_MDAT {
char signature[8]; // "RTM_MDAT"
ulong padding; // 0
ulong nProps;
FrameProp props[nProps];
};
With this, the complete structure of the plain RTM format is the following: