Welcome

Naming Conventions

Motion Naming Conventions

The filename conventions were selected for both human and machine readability.

Motion file name format:
   {z}{src}{tags}_{description}.bvh/fbx

Examples:
   zdmdn_balance_foot.bvh
   zcmu16-06_forward_jump.bvh

where
{z} = optional prefix tag indicating the motion has been resized for multiple-source compability.
{src} = 3-letter identifier for the source of the data. e.g. cmu, dmd
{tags} = id number or single-letter tags specific to the data source
{description} = multiple word description, separated by ‘_’ for OS platform compatibility

The tags are specific to the source.
The DMD tags are currently just: ‘n’ for Noitom, ‘k’ for Kinect
The CMU tag is a numerical identifier in ##-## format from the original dataset.

Motions with the ‘z’ prefix have been made cross-compatible with other sources, which means they can be used interchangeably on the same character rig together without complications. They have been isolated by description, resized to a unit scale (e.g. meters), with bones renamed to a standard convention (Maya HIK). Those without the ‘z’ prefix are the original, raw motion data.

Human Readable
The data source and description can be easily read from the filename.
A file without the short word description is improperly formatted.

Machine Readable
Filenames can be easily processed as follows:
– Identify the optional ‘z’ prefix first
– Find the source as 3-letters following that
– Find the tags after source, up to the first ‘_’
– Find the description after the first ‘_’

C++ code

base = “zdmdn_balance_foot”;
start = ( base.at(0)==’z’ ) ? 1 : 0;
src = base.substr(start, 3);
dpos = base.find_first_of(“_”) + 1;
id = base.substr(start+3, dpos-(start+3)-1 );
desc = base.substr(dpos);
std::replace ( desc.begin(), desc.end(), ‘_’, ‘ ‘ );
// base of filename without .bvh
// start position of src
// source name = 3 characters at start
// position of description text
// id name = all chars after source, up to description
// description = all remaining characters
// make description human-readable