PHY
Jump to navigation
Jump to search
PHY is the extension for Source's proprietary collision model data format. It stores data for the rigid or jointed (ragdoll) collision model used by the MDL. In addition, it stores prop_data information about a model such as which gib-models to use if destroyed.
File Format
In brief, a PHY file is formed by:
- A main header, which specifies the number of solids
- A series of VPHY/collision data sections, one per solid
- A series of textual data sections, one per solid
Main header
The first bytes of the file form the main header:
struct phyheader_t
{
int size; // Size of this header section (generally 16)
int id; // Often zero, unknown purpose.
int solidCount; // Number of solids in file
long checkSum; // checksum of source .mdl file (4-bytes)
}
Collision data sections
There will be a series of these sections, back-to-back, numbering the same as the header's [code]solidCount[/code].
Todo: Document headers for each solid
Todo: Document "old format" if VPHY is not seen
Text sections
Todo: Document key-value data for each solid